Exemple #1
0
 def __init__(self, parent):
     super(FindWordsDialog, self).__init__(parent, u"Find words")
     self.wordlists = parent.wordlists
     self.sort_option = 0
     self.pattern = None
     self.pack(create_label(u"Use ? for an unknown letter and * for zero or more unknown letters."))
     def on_entry_changed(widget):
         glib.source_remove(self.timer)
         self.launch_pattern(widget.get_text().strip())
     self.pack(create_entry(f_change=on_entry_changed), False)
     # word path score
     self.store, self.tree, s_window = create_tree((str, str, int)
         , [(u"Word", 0), (u"Word list", 1), (u"Score", 2)]
         , window_size=(-1, 300)
     )
     self.tree.get_column(0).set_sizing(gtk.TREE_VIEW_COLUMN_FIXED)
     self.tree.get_column(0).set_fixed_width(250)
     self.pack(s_window)
     self.n_label = create_label("")
     self.set_n_label(0)
     self.pack(self.n_label, False)
     sort_hbox = gtk.HBox(False, 6)
     sort_hbox.pack_start(create_label(u"Sort by:"), False, False, 0)
     def on_sort_changed(combo):
         self.sort_option = combo.get_active()
         self.launch_pattern(self.pattern)
     sort_hbox.pack_start(create_combo(["Alphabet", "Length", "Score"]
         , active=self.sort_option, f_change=on_sort_changed))
     self.pack(sort_hbox, False)
     self.add_button(gtk.STOCK_OK, gtk.RESPONSE_OK)
     self.launch_pattern(None)
Exemple #2
0
 def __init__(self, parent, puzzle):
     super(AccidentalWordsDialog, self).__init__(parent, u"View accidental words")
     self.puzzle = puzzle
     self.wordlists = parent.wordlists
     self.index = 0
     self.collapse = True
     self.timer = None
     wlist_hbox = gtk.HBox(False, 0)
     wlist_hbox.pack_start(create_label(u"Check for words in list:"), True, True, 0)
     def on_wordlist_changed(widget):
         self.index = widget.get_active()
         self.launch_accidental(self.puzzle.grid)
     combo = create_combo([w.name for w in self.wordlists]
         , active=self.index, f_change=on_wordlist_changed)
     wlist_hbox.pack_start(combo, False, False, 0)
     self.main.pack_start(wlist_hbox, False, False, 0)
     self.store, self.tree, s_window = create_tree((str, str)
         , [(u"Word", 0)], window_size=(300, 300))
     self.tree.get_selection().connect("changed", self.on_selection_changed)
     self.main.pack_start(s_window, True, True, 0)
     self.main.pack_start(create_label(u"Click to highlight the word(s) in the grid."), False, False, 0)
     def collapse_callback(button):
         self.collapse = button.get_active()
         self.launch_accidental(self.puzzle.grid)
     button = gtk.CheckButton("Collapse multiple occurrences into one item.")
     button.connect("toggled", collapse_callback)
     button.set_active(self.collapse)
     self.main.pack_start(button, False, False, 0)
     self.add_button(gtk.STOCK_OK, gtk.RESPONSE_OK)
     destroy = lambda w: highlight_cells(self.pwindow, self.puzzle, clear=True)
     self.connect("destroy", destroy)
     self.launch_accidental(puzzle.grid)
Exemple #3
0
    def create(self):
        img = gtk.Image()
        img.set_from_file(get_real_filename("resources/icon1.png"))

        def on_button_toggled(self, button):
            self.show_intersect = button.get_active()
            self.display_words()

        toggle_button = gtk.ToggleButton()
        toggle_button.set_property("image", img)
        toggle_button.set_tooltip_text(u"Show only words with intersecting words")
        toggle_button.connect("toggled", lambda b: on_button_toggled(self, b))

        img = gtk.Image()
        img.set_from_file(get_real_filename("resources/icon2.png"))

        def on_button2_toggled(self, button):
            self.show_used = not button.get_active()
            self.display_words()

        toggle_button2 = gtk.ToggleButton()
        toggle_button2.set_property("image", img)
        toggle_button2.set_tooltip_text(u"Show only unused words")
        toggle_button2.connect("toggled", lambda b: on_button2_toggled(self, b))

        buttons = gtk.HButtonBox()
        buttons.set_layout(gtk.BUTTONBOX_START)
        buttons.add(toggle_button)
        buttons.add(toggle_button2)

        self.main = gtk.VBox(False, 0)
        self.main.set_spacing(9)
        self.main.pack_start(buttons, False, False, 0)

        self.view = EditorWordWidget(self.parent)
        sw = gtk.ScrolledWindow(None, None)
        sw.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC)
        sw.add_with_viewport(self.view)
        self.main.pack_start(sw, True, True, 0)

        show_hbox = gtk.HBox()
        show_hbox.pack_start(create_label(u"Sort words by:"))

        def on_show_changed(widget):
            self.show_order = widget.get_active()
            self.display_words()

        show_combo = create_combo(WORD_DISPLAY_OPTIONS, active=self.show_order, f_change=on_show_changed)
        show_hbox.pack_start(show_combo)
        self.main.pack_start(show_hbox, False, False, 0)

        hbox = gtk.HBox(False, 0)
        hbox.set_border_width(6)
        hbox.set_spacing(6)
        hbox.pack_start(self.main, True, True, 0)
        return hbox
Exemple #4
0
 def create_blacklist(self, parent):
     vbox = gtk.VBox()
     vbox.set_border_width(9)
     vbox.set_spacing(9)
     self.blacklist_combo = create_combo([''] + [w.name for w in self.wordlists])
     for i, wlist in enumerate(self.wordlists):
         if preferences.prefs[constants.PREF_BLACKLIST] == wlist.path:
             self.blacklist_combo.set_active(i + 1)
             break
     vbox.pack_start(create_label(u"Word list to be used as blacklist:"), False, False, 0)
     vbox.pack_start(self.blacklist_combo, False, False, 0)
     return vbox
Exemple #5
0
    def __init__(self, parent, size=None):
        super(GridEditor, self).__init__(parent, u"Grid editor", horizontal=True)
        self.size = size if size else (15, 15)

        table = gtk.Table(2, 2, False)

        radio = gtk.RadioButton(None, u"Tile from: ")
        radio.connect("toggled", self.on_option_toggle, "tile")
        self.tile_starts = [(p, q) for q in xrange(2) for p in xrange(2)]
        self.tile_combo = gtk.combo_box_new_text()
        self.tile_combo.append_text(u"")
        for x, y in self.tile_starts:
            content = str(''.join(["(", str(x + 1), ",", str(y + 1), ")" ]))
            self.tile_combo.append_text(content)
        self.tile_combo.connect("changed", self.on_tile_changed)
        table.attach(radio, 0, 1, 0, 1)
        table.attach(self.tile_combo, 1, 2, 0, 1)

        radio = gtk.RadioButton(radio, u"Fill with: ")
        radio.connect("toggled", self.on_option_toggle, "fill")
        self.fill_combo = create_combo([u"", u"Block"], f_change=self.on_fill_changed)
        table.attach(radio, 0, 1, 1, 2)
        table.attach(self.fill_combo, 1, 2, 1, 2)

        self.preview = GridPreview()
        self.preview.set_size_request(384, 384)

        alignment = gtk.Alignment()
        alignment.add(table)
        vbox2 = gtk.VBox(False, 6)
        vbox2.pack_start(create_label(u"<b>Options</b>"), False, False, 0)
        vbox2.pack_start(alignment, False, False, 0)
        self.pack(vbox2, False)
        self.pack(self.preview, False)

        self.add_button(gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL)
        self.ok_button = self.add_button(gtk.STOCK_OK, gtk.RESPONSE_OK)
        self.ok_button.set_sensitive(False)
        self._select_option("tile")
        self.display_pattern(None)