Esempio n. 1
0
    def get_tabcontent(self, chessfile):
        tabcontent = createAlignment(0, 0, 0, 0)
        hbox = Gtk.HBox()
        hbox.set_spacing(4)
        hbox.pack_start(createImage(pgn_icon), False, True, 0)

        close_button = Gtk.Button()
        close_button.set_property("can-focus", False)
        close_button.add(createImage(gtk_close))
        close_button.set_relief(Gtk.ReliefStyle.NONE)
        close_button.set_size_request(20, 18)
        close_button.connect("clicked", self.close)
        hbox.pack_end(close_button, False, True, 0)

        name, ext = os.path.splitext(chessfile.path)
        basename = os.path.basename(name)
        info = "%s.%s" % (basename, ext[1:])
        tooltip = _("%(path)s\ncontaining %(count)s games") % (
            {
                "path": chessfile.path,
                "count": chessfile.count
            })
        tabcontent.set_tooltip_text(tooltip)

        label = Gtk.Label(info)
        hbox.pack_start(label, False, True, 0)

        tabcontent.add(hbox)
        tabcontent.show_all()
        return tabcontent, close_button
Esempio n. 2
0
    def get_tabcontent(self, chessfile):
        tabcontent = createAlignment(0, 0, 0, 0)
        hbox = Gtk.HBox()
        hbox.set_spacing(4)
        hbox.pack_start(createImage(pgn_icon), False, True, 0)

        close_button = Gtk.Button()
        close_button.set_property("can-focus", False)
        close_button.add(createImage(gtk_close))
        close_button.set_relief(Gtk.ReliefStyle.NONE)
        close_button.set_size_request(20, 18)
        close_button.connect("clicked", self.close)
        hbox.pack_end(close_button, False, True, 0)

        name, ext = os.path.splitext(chessfile.path)
        basename = os.path.basename(name)
        info = "%s.%s" % (basename, ext[1:])
        tooltip = "%s\ncontaining %s games" % (chessfile.path, chessfile.count)
        tabcontent.set_tooltip_text(tooltip)

        label = Gtk.Label(info)
        hbox.pack_start(label, False, True, 0)

        tabcontent.add(hbox)
        tabcontent.show_all()
        return tabcontent, close_button
Esempio n. 3
0
    def initTabcontents(self):
        tabcontent = createAlignment(0, 0, 0, 0)
        hbox = Gtk.HBox()
        hbox.set_spacing(4)
        hbox.pack_start(createImage(light_off), False, True, 0)
        close_button = Gtk.Button()
        close_button.set_property("can-focus", False)
        close_button.add(createImage(gtk_close))
        close_button.set_relief(Gtk.ReliefStyle.NONE)
        close_button.set_size_request(20, 18)

        self.cids[close_button] = close_button.connect(
            "clicked", self.on_game_close_clicked)

        hbox.pack_end(close_button, False, True, 0)
        text_hbox = Gtk.HBox()
        white_label = Gtk.Label(label="")
        text_hbox.pack_start(white_label, False, True, 0)
        text_hbox.pack_start(Gtk.Label(label=" - "), False, True, 0)
        black_label = Gtk.Label(label="")
        text_hbox.pack_start(black_label, False, True, 0)
        gameinfo_label = Gtk.Label(label="")
        text_hbox.pack_start(gameinfo_label, False, True, 0)
        #        label.set_alignment(0,.7)
        hbox.pack_end(text_hbox, True, True, 0)
        tabcontent.add(hbox)
        tabcontent.show_all()  # Gtk doesn't show tab labels when the rest is
        return tabcontent, white_label, black_label, gameinfo_label
Esempio n. 4
0
    def initButtons(self, board):
        align = createAlignment(4, 0, 4, 0)
        toolbar = Gtk.Toolbar()

        firstButton = Gtk.ToolButton(Gtk.STOCK_MEDIA_PREVIOUS)
        firstButton.set_tooltip_text(_("Jump to initial position"))
        toolbar.insert(firstButton, -1)

        prevButton = Gtk.ToolButton(Gtk.STOCK_MEDIA_REWIND)
        prevButton.set_tooltip_text(_("Step back one move"))
        toolbar.insert(prevButton, -1)

        mainButton = Gtk.ToolButton(Gtk.STOCK_REDO)
        mainButton.set_tooltip_text(_("Go back to the main line"))
        toolbar.insert(mainButton, -1)

        nextButton = Gtk.ToolButton(Gtk.STOCK_MEDIA_FORWARD)
        nextButton.set_tooltip_text(_("Step forward one move"))
        toolbar.insert(nextButton, -1)

        lastButton = Gtk.ToolButton(Gtk.STOCK_MEDIA_NEXT)
        lastButton.set_tooltip_text(_("Jump to latest position"))
        toolbar.insert(lastButton, -1)

        filterButton = Gtk.ToolButton(Gtk.STOCK_FIND)
        filterButton.set_tooltip_text(_("Find postion in current database"))
        toolbar.insert(filterButton, -1)

        self.saveButton = Gtk.ToolButton(Gtk.STOCK_SAVE)
        self.saveButton.set_tooltip_text(_("Save arrows/circles"))
        toolbar.insert(self.saveButton, -1)

        def on_clicked(button, func):
            # Prevent moving in game while lesson not finished
            if self.gamemodel.lesson_game and not self.gamemodel.solved:
                return
            else:
                func()

        self.cids[firstButton] = firstButton.connect("clicked", on_clicked, self.board.view.showFirst)
        self.cids[prevButton] = prevButton.connect("clicked", on_clicked, self.board.view.showPrev)
        self.cids[mainButton] = mainButton.connect("clicked", on_clicked, self.board.view.backToMainLine)
        self.cids[nextButton] = nextButton.connect("clicked", on_clicked, self.board.view.showNext)
        self.cids[lastButton] = lastButton.connect("clicked", on_clicked, self.board.view.showLast)
        self.cids[filterButton] = filterButton.connect("clicked", on_clicked, self.find_in_database)
        self.cids[self.saveButton] = self.saveButton.connect("clicked", on_clicked, self.save_shapes_to_pgn)

        self.on_shapes_changed(self.board)
        self.board.connect("shapes_changed", self.on_shapes_changed)

        tool_box = Gtk.Box()
        tool_box.pack_start(toolbar, True, True, 0)

        align.add(tool_box)
        return align
Esempio n. 5
0
    def initButtons(self, board):
        align = createAlignment(4, 0, 4, 0)
        toolbar = Gtk.Toolbar()

        firstButton = Gtk.ToolButton(Gtk.STOCK_MEDIA_PREVIOUS)
        firstButton.set_tooltip_text(_("Jump to initial position"))
        toolbar.insert(firstButton, -1)

        prevButton = Gtk.ToolButton(Gtk.STOCK_MEDIA_REWIND)
        prevButton.set_tooltip_text(_("Step back one move"))
        toolbar.insert(prevButton, -1)

        mainButton = Gtk.ToolButton(Gtk.STOCK_REDO)
        mainButton.set_tooltip_text(_("Go back to the main line"))
        toolbar.insert(mainButton, -1)

        nextButton = Gtk.ToolButton(Gtk.STOCK_MEDIA_FORWARD)
        nextButton.set_tooltip_text(_("Step forward one move"))
        toolbar.insert(nextButton, -1)

        lastButton = Gtk.ToolButton(Gtk.STOCK_MEDIA_NEXT)
        lastButton.set_tooltip_text(_("Jump to latest position"))
        toolbar.insert(lastButton, -1)

        filterButton = Gtk.ToggleToolButton(Gtk.STOCK_FIND)
        filterButton.set_tooltip_text(_("Find postion in current database"))
        toolbar.insert(filterButton, -1)

        def on_clicked(button, func):
            func()

        self.cids[firstButton] = firstButton.connect("clicked", on_clicked,
                                                     self.board.view.showFirst)
        self.cids[prevButton] = prevButton.connect("clicked", on_clicked,
                                                   self.board.view.showPrev)
        self.cids[mainButton] = mainButton.connect(
            "clicked", on_clicked, self.board.view.backToMainLine)
        self.cids[nextButton] = nextButton.connect("clicked", on_clicked,
                                                   self.board.view.showNext)
        self.cids[lastButton] = lastButton.connect("clicked", on_clicked,
                                                   self.board.view.showLast)
        self.cids[filterButton] = filterButton.connect("clicked", on_clicked,
                                                       self.find_in_database)

        tool_box = Gtk.Box()
        tool_box.pack_start(toolbar, True, True, 0)

        align.add(tool_box)
        return align
Esempio n. 6
0
    def initBoardAndClock(self, gamemodel):
        boardvbox = Gtk.VBox()
        boardvbox.set_spacing(2)
        infobar = InfoBarNotebook("gamewidget_infobar")

        ccalign = createAlignment(0, 0, 0, 0)
        cclock = ChessClock()
        cclock.setModel(gamemodel.timemodel)
        ccalign.add(cclock)
        ccalign.set_size_request(-1, 32)
        boardvbox.pack_start(ccalign, False, True, 0)

        actionMenuDic = {}
        for item in ACTION_MENU_ITEMS:
            actionMenuDic[item] = widgets[item]

        board = BoardControl(gamemodel, actionMenuDic)
        boardvbox.pack_start(board, True, True, 0)
        return boardvbox, board, infobar, cclock
Esempio n. 7
0
    def init_layout(self):
        perspective_widget = Gtk.Box(orientation=Gtk.Orientation.VERTICAL)
        perspective_manager.set_perspective_widget("database",
                                                   perspective_widget)

        self.notebooks = {"gamelist": new_notebook()}
        self.main_notebook = self.notebooks["gamelist"]
        for panel in self.sidePanels:
            self.notebooks[panel.__name__] = new_notebook(panel.__name__)

        self.spinner = Gtk.Spinner()
        self.spinner.set_size_request(50, 50)
        self.progressbar0 = Gtk.ProgressBar(show_text=True)
        self.progressbar = Gtk.ProgressBar(show_text=True)

        self.progress_dialog = Gtk.Dialog(
            "", mainwindow(), 0, (Gtk.STOCK_CANCEL, Gtk.ResponseType.CANCEL))
        self.progress_dialog.set_deletable(False)
        self.progress_dialog.get_content_area().pack_start(
            self.spinner, True, True, 0)
        self.progress_dialog.get_content_area().pack_start(
            self.progressbar0, True, True, 0)
        self.progress_dialog.get_content_area().pack_start(
            self.progressbar, True, True, 0)
        self.progress_dialog.get_content_area().show_all()

        # Initing headbook

        align = createAlignment(4, 4, 0, 4)
        align.set_property("yscale", 0)

        self.headbook = Gtk.Notebook()
        self.headbook.set_name("headbook")
        self.headbook.set_scrollable(True)
        align.add(self.headbook)
        perspective_widget.pack_start(align, False, True, 0)
        self.headbook.connect_after("switch-page", self.on_switch_page)

        # The dock

        self.dock = PyDockTop("database", self)
        align = Gtk.Alignment()
        align.show()
        align.add(self.dock)
        self.dock.show()
        perspective_widget.pack_start(align, True, True, 0)

        self.docks["gamelist"] = (Gtk.Label(label="gamelist"),
                                  self.notebooks["gamelist"], None)
        for panel in self.sidePanels:
            self.docks[panel.__name__][1] = self.notebooks[panel.__name__]

        self.load_from_xml()

        # Default layout of side panels
        if not os.path.isfile(self.dockLocation):
            leaf = self.dock.dock(self.docks["gamelist"][1], CENTER,
                                  self.docks["gamelist"][0], "gamelist")
            leaf.setDockable(False)

            leaf = leaf.dock(self.docks["OpeningTreePanel"][1], EAST,
                             self.docks["OpeningTreePanel"][0],
                             "OpeningTreePanel")
            leaf = leaf.dock(self.docks["FilterPanel"][1], CENTER,
                             self.docks["FilterPanel"][0], "FilterPanel")
            leaf.dock(self.docks["PreviewPanel"][1], SOUTH,
                      self.docks["PreviewPanel"][0], "PreviewPanel")

        def unrealize(dock):
            dock.saveToXML(self.dockLocation)
            dock._del()

        self.dock.connect("unrealize", unrealize)

        self.dock.show_all()
        perspective_widget.show_all()

        perspective_manager.set_perspective_menuitems("database",
                                                      self.menuitems)

        perspective_manager.set_perspective_toolbuttons(
            "database", [self.import_button, self.save_as_button])
Esempio n. 8
0
    def init_layout(self):
        perspective_widget = Gtk.Box(orientation=Gtk.Orientation.VERTICAL)
        perspective_manager.set_perspective_widget("database", perspective_widget)

        self.notebooks = {"gamelist": new_notebook()}
        self.main_notebook = self.notebooks["gamelist"]
        for panel in self.sidePanels:
            self.notebooks[panel.__name__] = new_notebook(panel.__name__)

        self.spinner = Gtk.Spinner()
        self.spinner.set_size_request(50, 50)
        self.progressbar0 = Gtk.ProgressBar(show_text=True)
        self.progressbar1 = Gtk.ProgressBar(show_text=True)

        self.progress_dialog = Gtk.Dialog("", mainwindow(), 0, (
            Gtk.STOCK_CANCEL, Gtk.ResponseType.CANCEL))
        self.progress_dialog.set_deletable(False)
        self.progress_dialog.get_content_area().pack_start(self.spinner, True, True, 0)
        self.progress_dialog.get_content_area().pack_start(self.progressbar0, True, True, 0)
        self.progress_dialog.get_content_area().pack_start(self.progressbar1, True, True, 0)
        self.progress_dialog.get_content_area().show_all()

        # Initing headbook

        align = createAlignment(4, 4, 0, 4)
        align.set_property("yscale", 0)

        self.headbook = Gtk.Notebook()
        self.headbook.set_name("headbook")
        self.headbook.set_scrollable(True)
        align.add(self.headbook)
        perspective_widget.pack_start(align, False, True, 0)
        self.headbook.connect_after("switch-page", self.on_switch_page)

        # The dock

        self.dock = PyDockTop("database", self)
        align = Gtk.Alignment()
        align.show()
        align.add(self.dock)
        self.dock.show()
        perspective_widget.pack_start(align, True, True, 0)

        self.docks["gamelist"] = (Gtk.Label(label="gamelist"), self.notebooks["gamelist"], None)
        for panel in self.sidePanels:
            self.docks[panel.__name__][1] = self.notebooks[panel.__name__]

        self.load_from_xml()

        # Default layout of side panels
        if not os.path.isfile(self.dockLocation):
            leaf = self.dock.dock(self.docks["gamelist"][1], CENTER, self.docks["gamelist"][0], "gamelist")
            leaf.setDockable(False)

            leaf = leaf.dock(self.docks["OpeningTreePanel"][1], EAST, self.docks["OpeningTreePanel"][0], "OpeningTreePanel")
            leaf = leaf.dock(self.docks["FilterPanel"][1], CENTER, self.docks["FilterPanel"][0], "FilterPanel")
            leaf.dock(self.docks["PreviewPanel"][1], SOUTH, self.docks["PreviewPanel"][0], "PreviewPanel")

        def unrealize(dock):
            dock.saveToXML(self.dockLocation)
            dock._del()

        self.dock.connect("unrealize", unrealize)

        self.dock.show_all()
        perspective_widget.show_all()

        perspective_manager.set_perspective_menuitems("database", self.menuitems)

        perspective_manager.set_perspective_toolbuttons("database", [
            self.import_button, self.save_as_button])
Esempio n. 9
0
    def initButtons(self, board):
        align = createAlignment(4, 0, 4, 0)
        toolbar = Gtk.Toolbar()

        image1 = get_pixbuf("glade/first.png")
        firstButton = Gtk.ToolButton.new(Gtk.Image.new_from_pixbuf(image1))
        firstButton.set_tooltip_text(_("Jump to initial position"))
        toolbar.insert(firstButton, -1)

        image2 = get_pixbuf("glade/prev.png")
        prevButton = Gtk.ToolButton.new(Gtk.Image.new_from_pixbuf(image2))
        prevButton.set_tooltip_text(_("Step back one move"))
        toolbar.insert(prevButton, -1)

        image3 = get_pixbuf("glade/mainline.png")
        mainButton = Gtk.ToolButton.new(Gtk.Image.new_from_pixbuf(image3))
        mainButton.set_tooltip_text(_("Go back to the main line"))
        toolbar.insert(mainButton, -1)

        image4 = get_pixbuf("glade/parent.png")
        upButton = Gtk.ToolButton.new(Gtk.Image.new_from_pixbuf(image4))
        upButton.set_tooltip_text(_("Go back to the parent line"))
        toolbar.insert(upButton, -1)

        image5 = get_pixbuf("glade/next.png")
        nextButton = Gtk.ToolButton.new(Gtk.Image.new_from_pixbuf(image5))
        nextButton.set_tooltip_text(_("Step forward one move"))
        toolbar.insert(nextButton, -1)

        image6 = get_pixbuf("glade/last.png")
        lastButton = Gtk.ToolButton.new(Gtk.Image.new_from_pixbuf(image6))
        lastButton.set_tooltip_text(_("Jump to latest position"))
        toolbar.insert(lastButton, -1)

        image7 = get_pixbuf("glade/find.png")
        filterButton = Gtk.ToolButton.new(Gtk.Image.new_from_pixbuf(image7))
        filterButton.set_tooltip_text(_("Find position in current database"))
        toolbar.insert(filterButton, -1)

        image8 = get_pixbuf("glade/save.png")
        self.saveButton = Gtk.ToolButton.new(Gtk.Image.new_from_pixbuf(image8))
        self.saveButton.set_tooltip_text(_("Save arrows/circles"))
        toolbar.insert(self.saveButton, -1)

        def on_clicked(button, func):
            # Prevent moving in game while lesson not finished
            if self.gamemodel.lesson_game and not self.gamemodel.solved:
                return
            else:
                func()

        self.cids[firstButton] = firstButton.connect("clicked", on_clicked,
                                                     self.board.view.showFirst)
        self.cids[prevButton] = prevButton.connect("clicked", on_clicked,
                                                   self.board.view.showPrev)
        self.cids[mainButton] = mainButton.connect(
            "clicked", on_clicked, self.board.view.backToMainLine)
        self.cids[upButton] = upButton.connect(
            "clicked", on_clicked, self.board.view.backToParentLine)
        self.cids[nextButton] = nextButton.connect("clicked", on_clicked,
                                                   self.board.view.showNext)
        self.cids[lastButton] = lastButton.connect("clicked", on_clicked,
                                                   self.board.view.showLast)
        self.cids[filterButton] = filterButton.connect("clicked", on_clicked,
                                                       self.find_in_database)
        self.cids[self.saveButton] = self.saveButton.connect(
            "clicked", on_clicked, self.save_shapes_to_pgn)

        self.on_shapes_changed(self.board)
        self.board.connect("shapes_changed", self.on_shapes_changed)

        tool_box = Gtk.Box()
        tool_box.pack_start(toolbar, True, True, 0)

        align.add(tool_box)
        return align