예제 #1
0
    def __init__(self, connection):
        GObject.GObject.__init__(self)
        self.connection = connection

        self.set_policy(Gtk.PolicyType.NEVER, Gtk.PolicyType.AUTOMATIC)
        vbox = Gtk.VBox()
        self.add_with_viewport(vbox)
        self.get_child().set_shadow_type(Gtk.ShadowType.NONE)

        self.joinedList = TextImageTree("gtk-remove")
        self.joinedList.connect("activated", self.onRemove)
        self.joinedList.connect("selected", self.onSelect)
        vbox.pack_start(self.joinedList, True, True, 0)

        expander = Gtk.Expander.new(_("More channels"))
        vbox.pack_start(expander, False, True, 0)
        self.channelsList = TextImageTree("gtk-add")
        self.channelsList.connect("activated", self.onAdd)
        self.channelsList.fixed_height_mode = True
        expander.add(self.channelsList)

        expander = Gtk.Expander.new(_("More players"))
        vbox.pack_start(expander, False, True, 0)
        self.playersList = TextImageTree("gtk-add")
        self.playersList.connect("activated", self.onAdd)
        self.playersList.fixed_height_mode = True
        glock_connect(connection.cm,
                      "privateMessage",
                      self.onPersonMessage,
                      after=True)
        glock_connect(connection.cm, "channelsListed", self.onChannelsListed)
        expander.add(self.playersList)
        self.channels = {}
예제 #2
0
 def load(self, gmwidg):
     self.chatView = ChatView()
     self.chatView.disable("Waiting for game to load")
     self.chatView.connect("messageTyped", self.onMessageSent)
     self.gamemodel = gmwidg.gamemodel
     glock.glock_connect(self.gamemodel, "game_started", self.onGameStarted)
     return self.chatView
예제 #3
0
파일: ChatWindow.py 프로젝트: btrent/knave
 def __init__ (self, connection):
     gtk.ScrolledWindow.__init__(self)
     self.connection = connection
     
     self.set_policy(gtk.POLICY_NEVER, gtk.POLICY_AUTOMATIC)
     vbox = gtk.VBox()
     self.add_with_viewport(vbox)
     self.child.set_shadow_type(gtk.SHADOW_NONE)
     
     self.joinedList = TextImageTree("gtk-remove")
     self.joinedList.connect("activated", self.onRemove)
     self.joinedList.connect("selected", self.onSelect)
     vbox.pack_start(self.joinedList)
     
     expander = gtk.Expander(_("More channels"))
     vbox.pack_start(expander, expand=False)
     self.channelsList = TextImageTree("gtk-add")
     self.channelsList.connect("activated", self.onAdd)
     self.channelsList.fixed_height_mode = True
     expander.add(self.channelsList)
     
     expander = gtk.Expander(_("More players"))
     vbox.pack_start(expander, expand=False)
     self.playersList = TextImageTree("gtk-add")
     self.playersList.connect("activated", self.onAdd)
     self.playersList.fixed_height_mode = True
     glock_connect(connection.cm, "privateMessage", self.onPersonMessage, after=True)
     expander.add(self.playersList)
예제 #4
0
 def load (self, gmwidg):
     self.chatView = ChatView()
     self.chatView.disable("Waiting for game to load")
     self.chatView.connect("messageTyped", self.onMessageSent)
     self.gamemodel = gmwidg.gamemodel
     glock.glock_connect(self.gamemodel, "game_started", self.onGameStarted)
     return self.chatView
예제 #5
0
 def __init__ (self, connection):
     gtk.ScrolledWindow.__init__(self)
     self.connection = connection
     
     self.set_policy(gtk.POLICY_NEVER, gtk.POLICY_AUTOMATIC)
     vbox = gtk.VBox()
     self.add_with_viewport(vbox)
     self.child.set_shadow_type(gtk.SHADOW_NONE)
     
     self.joinedList = TextImageTree("gtk-remove")
     self.joinedList.connect("activated", self.onRemove)
     self.joinedList.connect("selected", self.onSelect)
     vbox.pack_start(self.joinedList)
     
     expander = gtk.Expander(_("More channels"))
     vbox.pack_start(expander, expand=False)
     self.channelsList = TextImageTree("gtk-add")
     self.channelsList.connect("activated", self.onAdd)
     self.channelsList.fixed_height_mode = True
     expander.add(self.channelsList)
     
     expander = gtk.Expander(_("More players"))
     vbox.pack_start(expander, expand=False)
     self.playersList = TextImageTree("gtk-add")
     self.playersList.connect("activated", self.onAdd)
     self.playersList.fixed_height_mode = True
     glock_connect(connection.cm, "privateMessage", self.onPersonMessage, after=True)
     expander.add(self.playersList)
예제 #6
0
 def __init__ (self, connection):
     GObject.GObject.__init__(self)
     self.connection = connection
     
     self.set_policy(Gtk.PolicyType.AUTOMATIC, Gtk.PolicyType.AUTOMATIC)
     vbox = Gtk.VBox()
     self.add_with_viewport(vbox)
     self.get_child().set_shadow_type(Gtk.ShadowType.NONE)
     
     self.joinedList = TextImageTree("gtk-remove")
     self.joinedList.connect("activated", self.onRemove)
     self.joinedList.connect("selected", self.onSelect)
     vbox.pack_start(self.joinedList, True, True, 0)
     
     expander = Gtk.Expander.new(_("More channels"))
     vbox.pack_start(expander, False, True, 0)
     self.channelsList = TextImageTree("gtk-add")
     self.channelsList.connect("activated", self.onAdd)
     self.channelsList.fixed_height_mode = True
     expander.add(self.channelsList)
     
     expander = Gtk.Expander.new(_("More players"))
     vbox.pack_start(expander, False, True, 0)
     self.playersList = TextImageTree("gtk-add")
     self.playersList.connect("activated", self.onAdd)
     self.playersList.fixed_height_mode = True
     glock_connect(connection.cm, "privateMessage", self.onPersonMessage, after=True)
     glock_connect(connection.cm, "channelsListed", self.onChannelsListed)
     expander.add(self.playersList)
     self.channels = {}
예제 #7
0
 def players_changed(self, gamemodel):
     log.debug("GameWidget.players_changed: starting %s" % repr(gamemodel))
     for player in gamemodel.players:
         self.name_changed(player)
         # Notice that this may connect the same player many times. In
         # normal use that shouldn't be a problem.
         glock_connect(player, "name_changed", self.name_changed)
     log.debug("GameWidget.players_changed: returning")
예제 #8
0
 def players_changed (self, gamemodel):
     log.debug("GameWidget.players_changed: starting %s" % repr(gamemodel))
     for player in gamemodel.players:
         self.name_changed(player)
         # Notice that this may connect the same player many times. In
         # normal use that shouldn't be a problem.
         glock_connect(player, "name_changed", self.name_changed)
     log.debug("GameWidget.players_changed: returning")
예제 #9
0
파일: ICLogon.py 프로젝트: btrent/knave
 def onConnected (self, connection):
     self.lounge = ICLounge(connection, self.helperconn, self.host)
     self.hide()
     self.lounge.show()
     self.lounge.connect("logout", lambda iclounge: self.onDisconnected(None))
     glock.glock_connect(self.lounge, "autoLogout", lambda iclounge: self.onAutologout(None))
     
     self.showNormal()
     self.widgets["messagePanel"].hide()
예제 #10
0
    def __init__(self, gamemodel=None):
        gtk.DrawingArea.__init__(self)

        if gamemodel == None:
            gamemodel = GameModel()
        self.model = gamemodel
        glock_connect(self.model, "game_started", self.game_started)
        glock_connect_after(self.model, "game_started",
                            self.game_started_after)
        glock_connect_after(self.model, "game_changed", self.game_changed)
        glock_connect_after(self.model, "moves_undoing", self.moves_undoing)
        glock_connect_after(self.model, "game_loading", self.game_loading)
        glock_connect_after(self.model, "game_loaded", self.game_loaded)
        glock_connect_after(self.model, "game_ended", self.game_ended)

        self.connect("expose_event", self.expose)
        self.connect_after("realize", self.on_realized)
        conf.notify_add("showCords", self.on_show_cords)
        conf.notify_add("faceToFace", self.on_face_to_face)
        self.set_size_request(350, 350)

        self.animationStart = time()
        self.lastShown = None
        self.deadlist = []

        self.autoUpdateShown = True

        self.padding = 0  # Set to self.pad when setcords is active
        self.square = 0, 0, 8, 1  # An object global variable with the current
        # board size
        self.pad = 0.13  # Padding applied only when setcords is active

        self._selected = None
        self._hover = None
        self._active = None
        self._redarrow = None
        self._greenarrow = None
        self._bluearrow = None

        self._shown = self.model.ply
        self._showCords = False
        self.showCords = conf.get("showCords", False)
        self._showEnpassant = False
        self.lastMove = None
        self.matrix = cairo.Matrix()
        self.matrixPi = cairo.Matrix.init_rotate(pi)
        self.cordMatricesState = (0, 0)
        self._rotation = 0

        self.drawcount = 0
        self.drawtime = 0

        self.gotStarted = False
        self.animationLock = RLock()
        self.rotationLock = Lock()

        self.draggedPiece = None  # a piece being dragged by the user
예제 #11
0
 def __init__(self, gamemodel=None):
     gtk.DrawingArea.__init__(self)
     
     if gamemodel == None:
         gamemodel = GameModel()
     self.model = gamemodel
     glock_connect(self.model, "game_started", self.game_started)
     glock_connect_after(self.model, "game_started", self.game_started_after)
     glock_connect_after(self.model, "game_changed", self.game_changed)
     glock_connect_after(self.model, "moves_undoing", self.moves_undoing)
     glock_connect_after(self.model, "game_loading", self.game_loading)
     glock_connect_after(self.model, "game_loaded", self.game_loaded)
     glock_connect_after(self.model, "game_ended", self.game_ended)
     
     self.connect("expose_event", self.expose)
     self.connect_after("realize", self.on_realized)
     conf.notify_add("showCords", self.on_show_cords)
     conf.notify_add("faceToFace", self.on_face_to_face)
     self.set_size_request(350,350)
     
     self.animationStart = time()
     self.lastShown = None
     self.deadlist = []
     
     self.autoUpdateShown = True
     
     self.padding = 0 # Set to self.pad when setcords is active
     self.square = 0, 0, 8, 1 # An object global variable with the current
                              # board size
     self.pad = 0.13 # Padding applied only when setcords is active
     
     self._selected = None
     self._hover = None
     self._active = None
     self._redarrow = None
     self._greenarrow = None
     self._bluearrow = None
     
     self._shown = self.model.ply
     self._showCords = False
     self.showCords = conf.get("showCords", False)
     self._showEnpassant = False
     self.lastMove = None
     self.matrix = cairo.Matrix()
     self.matrixPi = cairo.Matrix.init_rotate(pi)
     self.cordMatricesState = (0, 0)
     self._rotation = 0
     
     self.drawcount = 0
     self.drawtime = 0
     
     self.gotStarted = False
     self.animationLock = RLock()
     self.rotationLock = Lock()
     
     self.draggedPiece = None  # a piece being dragged by the user
예제 #12
0
    def onConnected(self, connection):
        self.lounge = ICLounge(connection)
        self.hide()
        self.lounge.show()
        self.lounge.connect("logout",
                            lambda iclounge: self.onDisconnected(None))
        glock.glock_connect(self.lounge, "autoLogout",
                            lambda iclounge: self.onAutologout(None))

        self.showNormal()
        self.widgets["messagePanel"].hide()
예제 #13
0
 def __init__ (self, widgets, connection):
     self.connection = connection
     self.window = None
     
     widgets["show_chat_button"].connect("clicked", self.showChat)
     glock_connect(connection.cm, "privateMessage",
                   self.onPersonMessage, after=False)
     glock_connect(connection, "disconnected",
                   lambda c: self.window and self.window.hide())
     
     self.viewspanel = ViewsPanel(self.connection)
     self.channelspanel = ChannelsPanel(self.connection)
     self.infopanel = InfoPanel(self.connection)
     self.panels = [self.viewspanel, self.channelspanel, self.infopanel]
예제 #14
0
파일: ChatWindow.py 프로젝트: btrent/knave
 def __init__ (self, widgets, connection):
     self.connection = connection
     self.window = None
     
     widgets["show_chat_button"].connect("clicked", self.showChat)
     glock_connect(connection.cm, "privateMessage",
                   self.onPersonMessage, after=False)
     glock_connect(connection, "disconnected",
                   lambda c: self.window and self.window.hide())
     
     self.viewspanel = ViewsPanel(self.connection)
     self.channelspanel = ChannelsPanel(self.connection)
     self.infopanel = InfoPanel(self.connection)
     self.panels = [self.viewspanel, self.channelspanel, self.infopanel]
예제 #15
0
    def load(self, gmwidg):
        self.boardview = gmwidg.board.view
        self.plot = ScorePlot(self.boardview)
        self.sw = __widget__ = Gtk.ScrolledWindow()
        __widget__.set_policy(Gtk.PolicyType.NEVER, Gtk.PolicyType.AUTOMATIC)
        port = Gtk.Viewport()
        port.add(self.plot)
        port.set_shadow_type(Gtk.ShadowType.NONE)
        __widget__.add(port)
        __widget__.show_all()

        self.plot.connect("selected", self.plot_selected)
        self.boardview.connect('shown_changed', self.shown_changed)
        glock_connect(self.boardview.model, "game_changed", self.game_changed)
        glock_connect(self.boardview.model, "moves_undoing",
                      self.moves_undoing)
        glock_connect(self.boardview.model, "analysis_changed",
                      self.analysis_changed)

        # Add the initial board
        glock_connect(self.boardview.model, "game_started", self.game_changed)

        uistuff.keepDown(__widget__)

        return __widget__
예제 #16
0
파일: ICLogon.py 프로젝트: fowode/pychess
 def onConnectClicked (self, button):
     self.canceled = False
     self.widgets["messagePanel"].hide()
     
     if self.widgets["logOnAsGuest"].get_active():
         username = self.widgets["nameEntry"].get_text()
         password = ""
     else:
         username = self.widgets["nameEntry"].get_text()
         password = self.widgets["passEntry"].get_text()
     
     if port:
         ports = (port,)
     else:
         ports = self.widgets["portsEntry"].get_text()
         ports = list(map(int, re.findall("\d+", ports)))
         if not 5000 in ports: ports.append(5000)
         if not 23 in ports: ports.append(23)
     self.showConnecting()
     self.host = host if host is not None else "freechess.org"
     self.connection = FICSMainConnection(self.host, ports, username, password)
     self.helperconn = FICSHelperConnection(self.connection, self.host, ports)
     self.helperconn.start()
     for signal, callback in (("connected", self.onConnected),
                              ("error", self.onConnectionError),
                              ("connectingMsg", self.showMessage)):
         self.cids[self.connection].append(
             glock_connect(self.connection, signal, callback))
     self.connection.start()
예제 #17
0
    def onConnectClicked(self, button):
        self.canceled = False
        self.widgets["messagePanel"].hide()

        if self.widgets["logOnAsGuest"].get_active():
            username = self.widgets["nameEntry"].get_text()
            password = ""
        else:
            username = self.widgets["nameEntry"].get_text()
            password = self.widgets["passEntry"].get_text()

        if port:
            ports = (port, )
        else:
            ports = self.widgets["portsEntry"].get_text()
            ports = list(map(int, re.findall("\d+", ports)))
            if not 5000 in ports: ports.append(5000)
            if not 23 in ports: ports.append(23)
        self.showConnecting()
        self.host = host if host is not None else "freechess.org"
        self.connection = FICSMainConnection(self.host, ports, username,
                                             password)
        self.helperconn = FICSHelperConnection(self.connection, self.host,
                                               ports)
        self.helperconn.start()
        for signal, callback in (("connected", self.onConnected),
                                 ("error", self.onConnectionError),
                                 ("connectingMsg", self.showMessage)):
            self.cids[self.connection].append(
                glock_connect(self.connection, signal, callback))
        self.connection.start()
예제 #18
0
    def __init__ (self, widgets, connection):
        self.connection = connection

        self.window = Gtk.Window()
        self.window.set_border_width(12)
        self.window.set_icon_name("pychess")
        self.window.set_title("FICS Console")
        self.window.connect("delete-event", lambda w,e: w.hide() or True)
        
        uistuff.keepWindowSize("consolewindow", self.window, defaultSize=(700,400))

        self.consoleView = ConsoleView(self.connection)
        self.window.add(self.consoleView)
        
        widgets["show_console_button"].connect("clicked", self.showConsole)
        connection.com.connect("consoleMessage", self.onConsoleMessage)
        glock_connect(connection, "disconnected",
                      lambda c: self.window and self.window.hide())
예제 #19
0
 def __init__ (self, id, text, chatView, connection):
     gtk.Alignment.__init__(self, xscale=1, yscale=1)
     self.add(gtk.Label(_("Loading player data")))
     
     self.fm = connection.fm
     self.handle_id = glock_connect(self.fm, "fingeringFinished",
                                    self.onFingeringFinished, text)
     
     self.fm.finger(text)
예제 #20
0
파일: ICLogon.py 프로젝트: fowode/pychess
 def onConnected (self, connection):
     self.lounge = ICLounge(connection, self.helperconn, self.host)
     self.hide()
     self.lounge.show()
     self.lounge.connect("logout", lambda iclounge: self.onLogout(connection))
     self.cids[self.lounge].append(glock_connect(self.lounge, "autoLogout",
         lambda lounge: self.onAutologout(connection)))
     
     self.showNormal()
     self.widgets["messagePanel"].hide()
예제 #21
0
        def __init__ (self, id, text, chatView, connection):
            GObject.GObject.__init__(self, xscale=1, yscale=1)
            self.add(Gtk.Label(label=_("Loading player data")))

            playername = get_playername(text)            
            self.fm = connection.fm
            self.handle_id = glock_connect(self.fm, "fingeringFinished",
                                           self.onFingeringFinished, playername)
            
            self.fm.finger(playername)
예제 #22
0
    def __init__(self, widgets, connection):
        self.connection = connection

        self.window = Gtk.Window()
        self.window.set_border_width(12)
        self.window.set_icon_name("pychess")
        self.window.set_title("FICS Console")
        self.window.connect("delete-event", lambda w, e: w.hide() or True)

        uistuff.keepWindowSize("consolewindow",
                               self.window,
                               defaultSize=(700, 400))

        self.consoleView = ConsoleView(self.connection)
        self.window.add(self.consoleView)

        widgets["show_console_button"].connect("clicked", self.showConsole)
        connection.com.connect("consoleMessage", self.onConsoleMessage)
        glock_connect(connection, "disconnected",
                      lambda c: self.window and self.window.hide())
예제 #23
0
        def __init__(self, id, text, chatView, connection):
            GObject.GObject.__init__(self, xscale=1, yscale=1)
            self.add(Gtk.Label(label=_("Loading player data")))

            playername = get_playername(text)
            self.fm = connection.fm
            self.handle_id = glock_connect(self.fm, "fingeringFinished",
                                           self.onFingeringFinished,
                                           playername)

            self.fm.finger(playername)
예제 #24
0
    def onConnected(self, connection):
        self.lounge = ICLounge(connection, self.helperconn, self.host)
        self.hide()
        self.lounge.show()
        self.lounge.connect("logout",
                            lambda iclounge: self.onLogout(connection))
        self.cids[self.lounge].append(
            glock_connect(self.lounge, "autoLogout",
                          lambda lounge: self.onAutologout(connection)))

        self.showNormal()
        self.widgets["messagePanel"].hide()
예제 #25
0
 def load (self, gmwidg):
     self.plot = ScorePlot()
     __widget__ = gtk.ScrolledWindow()
     __widget__.set_policy(gtk.POLICY_NEVER, gtk.POLICY_AUTOMATIC)
     port = gtk.Viewport()
     port.add(self.plot)
     port.set_shadow_type(gtk.SHADOW_NONE)
     __widget__.add(port)
     __widget__.show_all()
     
     self.boardview = gmwidg.board.view
     
     self.plot.connect("selected", self.plot_selected)
     self.boardview.connect('shown_changed', self.shown_changed)
     glock_connect(self.boardview.model, "game_changed", self.game_changed)
     glock_connect(self.boardview.model, "moves_undoing", self.moves_undoing)
     
     # Add the initial board
     glock_connect(self.boardview.model, "game_started", self.game_changed)
     
     def changed (vadjust):
         if not hasattr(vadjust, "need_scroll") or vadjust.need_scroll:
             vadjust.set_value(vadjust.upper-vadjust.page_size)
             vadjust.need_scroll = True
     __widget__.get_vadjustment().connect("changed", changed)
     
     def value_changed (vadjust):
         vadjust.need_scroll = abs(vadjust.value + vadjust.page_size - \
                 vadjust.upper) < vadjust.step_increment
     __widget__.get_vadjustment().connect("value-changed", value_changed)
     
     return __widget__
예제 #26
0
    def load (self, gmwidg):
        # Specify whether the panel should have a horizontal layout:
        horizontal = True

        if horizontal:
            self.box = Gtk.HBox()
        else:
            self.box = Gtk.VBox()
        __widget__ = self.box

        # Use two engine output widgets for each player color:
        self.output_white = EngineOutput(True)
        self.output_black = EngineOutput(False)
        if horizontal:
            self.output_separator = Gtk.VSeparator()
        else:
            self.output_separator = Gtk.HSeparator()

        self.output_noengines = Gtk.TextView()
        self.output_noengines.get_buffer().set_text(
        _("No chess engines (computer players) are participating in this game."))
        self.output_noengines.set_editable(False)
        self.output_noengines.set_wrap_mode(Gtk.WrapMode.WORD_CHAR)

        __widget__.pack_start(self.output_noengines, True, True, 0)
        __widget__.show_all()
        
        self.boardview = gmwidg.board.view
        
        glock_connect(self.boardview.model, "game_changed", self.game_changed)
        glock_connect(self.boardview.model, "players_changed", self.players_changed)
        glock_connect(self.boardview.model, "game_started", self.game_changed)
        
        return __widget__
예제 #27
0
파일: ICLogon.py 프로젝트: btrent/knave
    def onConnectClicked (self, button):
        if self.widgets["logOnAsGuest"].get_active():
            username = "******"
            password = ""
        else:
            username = self.widgets["nameEntry"].get_text()
            password = self.widgets["passEntry"].get_text()
        
        if port:
            ports = (port,)
        else:
            ports = self.widgets["portsEntry"].get_text()
            ports = map(int, re.findall("\d+", ports))
            if not 5000 in ports: ports.append(5000)
            if not 23 in ports: ports.append(23)
        self.showConnecting()

        self.host = host if host is not None else "freechess.org"
        
        self.connection = FICSConnection(self.host, ports, username, password)
        self.helperconn = FICSConnection(self.host, ports, "guest", "", conn=self.connection)
        self.helperconn.start()

        glock.glock_connect(self.connection, "connected", self.onConnected)
        glock.glock_connect(self.connection, "error", self.showError)
        glock.glock_connect(self.connection, "connectingMsg", self.showMessage)
        
        self.connection.start()
예제 #28
0
 def __init__ (self, id, text, chatView, connection):
     GObject.GObject.__init__(self, xscale=1, yscale=1)
     self.cm = connection.cm
     self.add(Gtk.Label(label=_("Receiving list of players")))
     
     chatView.connect("messageAdded", self.onMessageAdded)
     self.store = Gtk.ListStore(object, # (r,g,b) Color tuple
                                str,    # name string
                                bool    # is separator
                                )
     
     self.handle_id = glock_connect(self.cm, "recievedNames",
                                    self.onNamesRecieved, id)
     self.cm.getPeopleInChannel(id)
예제 #29
0
 def __init__ (self, id, text, chatView, connection):
     gtk.Alignment.__init__(self, xscale=1, yscale=1)
     self.cm = connection.cm
     self.add(gtk.Label(_("Receiving list of players")))
     
     chatView.connect("messageAdded", self.onMessageAdded)
     self.store = gtk.ListStore(object, # (r,g,b) Color tuple
                                str,    # name string
                                bool    # is separator
                                )
     
     self.handle_id = glock_connect(self.cm, "recievedNames",
                                    self.onNamesRecieved, id)
     self.cm.getPeopleInChannel(id)
예제 #30
0
  def load (self, gmwidg):
      self.boardview = gmwidg.board.view
      self.plot = ScorePlot(self.boardview)
      self.sw = __widget__ = Gtk.ScrolledWindow()
      __widget__.set_policy(Gtk.PolicyType.NEVER, Gtk.PolicyType.AUTOMATIC)
      port = Gtk.Viewport()
      port.add(self.plot)
      port.set_shadow_type(Gtk.ShadowType.NONE)
      __widget__.add(port)
      __widget__.show_all()
      
      self.plot.connect("selected", self.plot_selected)
      self.boardview.connect('shown_changed', self.shown_changed)
      glock_connect(self.boardview.model, "game_changed", self.game_changed)
      glock_connect(self.boardview.model, "moves_undoing", self.moves_undoing)
      glock_connect(self.boardview.model, "analysis_changed", self.analysis_changed)
      
      # Add the initial board
      glock_connect(self.boardview.model, "game_started", self.game_changed)
 
      uistuff.keepDown(__widget__)     
      
      return __widget__
 def init (cls, discoverer):
     assert not hasattr(cls, "widgets"), "Show can only be called once"
     cls.widgets = uistuff.GladeWidgets("discovererDialog.glade")
     
     #=======================================================================
     # Clear glade defaults
     #=======================================================================
     for child in cls.widgets["enginesTable"].get_children():
         cls.widgets["enginesTable"].remove(child)
     
     #=======================================================================
     # Connect us to the discoverer
     #=======================================================================
     glock_connect(discoverer, "discovering_started", cls._onDiscoveringStarted)
     glock_connect(discoverer, "engine_discovered", cls._onEngineDiscovered)
     glock_connect(discoverer, "all_engines_discovered", cls._onAllEnginesDiscovered)
     cls.finished = False
예제 #32
0
 def init (cls, discoverer):
     assert not hasattr(cls, "widgets"), "Show can only be called once"
     cls.widgets = uistuff.GladeWidgets("discovererDialog.glade")
     
     #=======================================================================
     # Clear glade defaults
     #=======================================================================
     for child in cls.widgets["enginesTable"].get_children():
         cls.widgets["enginesTable"].remove(child)
     
     #=======================================================================
     # Connect us to the discoverer
     #=======================================================================
     glock_connect(discoverer, "discovering_started", cls._onDiscoveringStarted)
     glock_connect(discoverer, "engine_discovered", cls._onEngineDiscovered)
     glock_connect(discoverer, "all_engines_discovered", cls._onAllEnginesDiscovered)
     cls.finished = False
     cls.throbber = None
예제 #33
0
    def onConnectClicked(self, button):
        if self.widgets["logOnAsGuest"].get_active():
            username = "******"
            password = ""
        else:
            username = self.widgets["nameEntry"].get_text()
            password = self.widgets["passEntry"].get_text()

        ports = self.widgets["portsEntry"].get_text()
        ports = map(int, re.findall("\d+", ports))
        if not 23 in ports: ports.append(23)
        if not 5000 in ports: ports.append(5000)
        self.showConnecting()

        self.connection = FICSConnection("freechess.org", ports, username,
                                         password)
        glock.glock_connect(self.connection, "connected", self.onConnected)
        glock.glock_connect(self.connection, "error", self.showError)
        glock.glock_connect(self.connection, "connectingMsg", self.showMessage)

        self.connection.start()
예제 #34
0
 def addItem (self, id, name, type, chatView):
     chatView.connect("messageTyped", self.onMessageTyped, id, name, type)
     glock_connect(self.connection.cm, "channelMessage",
                   self.onChannelMessage, id, chatView)
     glock_connect(self.connection.cm, "privateMessage",
                   self.onPersonMessage, get_playername(name), chatView)
     
     if type == TYPE_CHANNEL:
         glock_connect(self.connection.cm, "channelLog",
                       self.onChannelLog, id, chatView)
         self.connection.cm.getChannelLog(id)
         if not self.connection.cm.mayTellChannel(id):
             chatView.disable(_("Only registered users may talk to this channel"))
     
     elif type == TYPE_PERSONAL:
         if name in self.messageBuffer:
             for title, isadmin, messagetext in self.messageBuffer[name]:
                 chatView.addMessage(name, messagetext)
             del self.messageBuffer[name]
     
     self.addPage(chatView, id)
예제 #35
0
 def addItem (self, id, name, type, chatView):
     chatView.connect("messageTyped", self.onMessageTyped, id, name, type)
     glock_connect(self.connection.cm, "channelMessage",
                   self.onChannelMessage, id, chatView)
     glock_connect(self.connection.cm, "privateMessage",
                   self.onPersonMessage, name, chatView)
     
     if type == TYPE_CHANNEL:
         glock_connect(self.connection.cm, "channelLog",
                       self.onChannelLog, id, chatView)
         self.connection.cm.getChannelLog(id)
         if not self.connection.cm.mayTellChannel(id):
             chatView.disable(_("Only registered users may talk to this channel"))
     
     elif type == TYPE_PERSONAL:
         if name in self.messageBuffer:
             for title, isadmin, messagetext in self.messageBuffer[name]:
                 chatView.addMessage(name, messagetext)
             del self.messageBuffer[name]
     
     self.addPage(chatView, id)
예제 #36
0
    def load(self, gmwidg):
        # Specify whether the panel should have a horizontal layout:
        horizontal = True

        if horizontal:
            self.box = Gtk.HBox()
        else:
            self.box = Gtk.VBox()
        __widget__ = self.box

        # Use two engine output widgets for each player color:
        self.output_white = EngineOutput(True)
        self.output_black = EngineOutput(False)
        if horizontal:
            self.output_separator = Gtk.VSeparator()
        else:
            self.output_separator = Gtk.HSeparator()

        self.output_noengines = Gtk.TextView()
        self.output_noengines.get_buffer().set_text(
            _("No chess engines (computer players) are participating in this game."
              ))
        self.output_noengines.set_editable(False)
        self.output_noengines.set_wrap_mode(Gtk.WrapMode.WORD_CHAR)

        __widget__.pack_start(self.output_noengines, True, True, 0)
        __widget__.show_all()

        self.boardview = gmwidg.board.view

        glock_connect(self.boardview.model, "game_changed", self.game_changed)
        glock_connect(self.boardview.model, "players_changed",
                      self.players_changed)
        glock_connect(self.boardview.model, "game_started", self.game_changed)

        return __widget__
예제 #37
0
    def load(self, gmwidg):
        __widget__ = Gtk.ScrolledWindow()
        __widget__.set_policy(Gtk.PolicyType.AUTOMATIC, Gtk.PolicyType.ALWAYS)
        __widget__.add(self.textview)

        self.boardview = gmwidg.board.view
        self.boardview.connect("shown_changed", self.shown_changed)

        self.gamemodel = gmwidg.board.view.model
        glock_connect(self.gamemodel, "game_loaded", self.update)
        glock_connect(self.gamemodel, "game_changed", self.game_changed)
        glock_connect(self.gamemodel, "game_started", self.update)
        glock_connect(self.gamemodel, "game_ended", self.update)
        glock_connect(self.gamemodel, "moves_undoing", self.moves_undoing)
        glock_connect(self.gamemodel, "opening_changed", self.update)
        glock_connect(self.gamemodel, "players_changed", self.players_changed)
        glock_connect(self.gamemodel, "variation_added", self.variation_added)
        glock_connect(self.gamemodel, "variation_extended", self.variation_extended)
        glock_connect(self.gamemodel, "analysis_changed", self.analysis_changed)

        # Connect to preferences
        self.fan = conf.get("figuresInNotation", False)
        def figuresInNotationCallback(none):
            self.fan = conf.get("figuresInNotation", False)
            self.update()
        conf.notify_add("figuresInNotation", figuresInNotationCallback)
        
        # Elapsed move time
        self.showEmt = conf.get("showEmt", False)
        def showEmtCallback(none):
            self.showEmt = conf.get("showEmt", False)
            self.update()
        conf.notify_add("showEmt", showEmtCallback)

        # Blunders
        self.showBlunder = conf.get("showBlunder", False)
        def showBlunderCallback(none):
            self.showBlunder = conf.get("showBlunder", False)
            self.update()
        conf.notify_add("showBlunder", showBlunderCallback)

        # Eval values
        self.showEval = conf.get("showEval", False)
        def showEvalCallback(none):
            self.showEval = conf.get("showEval", False)
            self.update()
        conf.notify_add("showEval", showEvalCallback)

        return __widget__
예제 #38
0
    def load(self, gmwidg):

        widgets = gtk.glade.XML(addDataPrefix("sidepanel/history.glade"))
        __widget__ = widgets.get_widget("panel")
        __widget__.unparent()

        self.board = gmwidg.board.view

        glock_connect(self.board.model, "game_changed", self.game_changed)
        glock_connect(self.board.model, "game_started", self.game_changed)
        glock_connect(self.board.model, "moves_undoing", self.moves_undoing)
        self.board.connect("shown_changed", self.shown_changed)

        # Initialize treeviews

        self.numbers = widgets.get_widget("treeview1")
        self.left = widgets.get_widget("treeview2")
        self.right = widgets.get_widget("treeview3")

        def fixList(list, xalign=0):
            list.set_model(gtk.ListStore(str))
            renderer = gtk.CellRendererText()
            renderer.set_property("xalign", xalign)
            list.append_column(gtk.TreeViewColumn(None, renderer, text=0))
            list.get_selection().set_mode(gtk.SELECTION_SINGLE)

        fixList(self.numbers, 1)
        fixList(self.left, 0)
        fixList(self.right, 0)

        self.left.get_selection().connect('changed', self.on_selection_changed,
                                          self.left, 0)
        self.right.get_selection().connect('changed',
                                           self.on_selection_changed,
                                           self.right, 1)

        widgets.signal_autoconnect({
            "on_treeview2_key_press_event":
            lambda w, e: self.key_press_event(1, e),
            "on_treeview3_key_press_event":
            lambda w, e: self.key_press_event(2, e)
        })

        # Lock scrolling

        scrollwin = widgets.get_widget("panel")

        def changed(vadjust):
            if not hasattr(vadjust, "need_scroll") or vadjust.need_scroll:
                vadjust.set_value(vadjust.upper - vadjust.page_size)
                vadjust.need_scroll = True

        scrollwin.get_vadjustment().connect("changed", changed)

        def value_changed(vadjust):
            vadjust.need_scroll = abs(vadjust.value + vadjust.page_size - \
                        vadjust.upper) < vadjust.step_increment

        scrollwin.get_vadjustment().connect("value-changed", value_changed)

        # Connect to preferences

        def figuresInNotationCallback(none):
            game = self.board.model
            for board, move in zip(game.boards, game.moves):
                if conf.get("figuresInNotation", False):
                    notat = toFAN(board, move)
                else:
                    notat = toSAN(board, move, True)
                row, col, other = self._ply_to_row_col_other(board.ply + 1)
                iter = col.get_model().get_iter((row, ))
                col.get_model().set(iter, 0, notat)

        conf.notify_add("figuresInNotation", figuresInNotationCallback)

        # Return

        return __widget__
예제 #39
0
    def load(self, gmwidg):

        widgets = Gtk.Builder()
        widgets.add_from_file(addDataPrefix("sidepanel/history.glade"))
        __widget__ = widgets.get_object("panel")
        __widget__.unparent()

        self.boardview = gmwidg.board.view

        glock_connect(self.boardview.model, "game_changed", self.game_changed)
        glock_connect(self.boardview.model, "game_started", self.game_changed)
        glock_connect(self.boardview.model, "moves_undoing",
                      self.moves_undoing)
        self.boardview.connect("shown_changed", self.shown_changed)

        # Initialize treeviews

        self.numbers = widgets.get_object("treeview1")
        self.left = widgets.get_object("treeview2")
        self.right = widgets.get_object("treeview3")

        def fixList(list, xalign=0):
            list.set_model(Gtk.ListStore(str))
            renderer = Gtk.CellRendererText()
            renderer.set_property("xalign", xalign)
            list.append_column(Gtk.TreeViewColumn(None, renderer, text=0))
            list.get_selection().set_mode(Gtk.SelectionMode.SINGLE)

        fixList(self.numbers, 1)
        fixList(self.left, 0)
        fixList(self.right, 0)

        self.left.get_selection().connect('changed', self.on_selection_changed,
                                          self.left, 0)
        self.right.get_selection().connect('changed',
                                           self.on_selection_changed,
                                           self.right, 1)

        # Lock scrolling

        scrollwin = widgets.get_object("panel")

        def changed(vadjust):
            if not hasattr(vadjust, "need_scroll") or vadjust.need_scroll:
                vadjust.set_value(vadjust.get_upper() -
                                  vadjust.get_page_size())
                vadjust.need_scroll = True

        scrollwin.get_vadjustment().connect("changed", changed)

        def value_changed(vadjust):
            vadjust.need_scroll = abs(vadjust.get_value() + vadjust.get_page_size() - \
                        vadjust.get_upper()) < vadjust.get_step_increment()

        scrollwin.get_vadjustment().connect("value-changed", value_changed)

        # Connect to preferences

        def figuresInNotationCallback(none):
            game = self.boardview.model
            for board, move in zip(game.variations[0], game.moves):
                if conf.get("figuresInNotation", False):
                    notat = toFAN(board, move)
                else:
                    notat = toSAN(board, move, True)
                row, col, other = self._ply_to_row_col_other(board.ply + 1)
                iter = col.get_model().get_iter((row, ))
                col.get_model().set(iter, 0, notat)

        conf.notify_add("figuresInNotation", figuresInNotationCallback)

        # Return

        return __widget__
예제 #40
0
 def load (self, gmwidg):
     
     widgets = Gtk.Builder()
     widgets.add_from_file(addDataPrefix("sidepanel/history.glade"))
     __widget__ = widgets.get_object("panel")
     __widget__.unparent()
     
     self.boardview = gmwidg.board.view
     
     glock_connect(self.boardview.model, "game_changed", self.game_changed)
     glock_connect(self.boardview.model, "game_started", self.game_changed)
     glock_connect(self.boardview.model, "moves_undoing", self.moves_undoing)
     self.boardview.connect("shown_changed", self.shown_changed)
     
     # Initialize treeviews
     
     self.numbers = widgets.get_object("treeview1")
     self.left = widgets.get_object("treeview2")
     self.right = widgets.get_object("treeview3")
     
     def fixList (list, xalign=0):
         list.set_model(Gtk.ListStore(str))
         renderer = Gtk.CellRendererText()
         renderer.set_property("xalign",xalign)
         list.append_column(Gtk.TreeViewColumn(None, renderer, text=0))
         list.get_selection().set_mode(Gtk.SelectionMode.SINGLE)
     
     fixList(self.numbers, 1)
     fixList(self.left, 0)
     fixList(self.right, 0)
     
     self.left.get_selection().connect('changed', self.on_selection_changed,
                                       self.left, 0)
     self.right.get_selection().connect('changed', self.on_selection_changed,
                                        self.right, 1)
     
     # Lock scrolling
     
     scrollwin = widgets.get_object("panel")
     
     def changed (vadjust):
         if not hasattr(vadjust, "need_scroll") or vadjust.need_scroll:
             vadjust.set_value(vadjust.get_upper()-vadjust.get_page_size())                
             vadjust.need_scroll = True
     scrollwin.get_vadjustment().connect("changed", changed)
     
     def value_changed (vadjust):
         vadjust.need_scroll = abs(vadjust.get_value() + vadjust.get_page_size() - \
                     vadjust.get_upper()) < vadjust.get_step_increment()
     scrollwin.get_vadjustment().connect("value-changed", value_changed)
     
     # Connect to preferences
     
     def figuresInNotationCallback (none):
         game = self.boardview.model
         for board, move in zip(game.variations[0], game.moves):
             if conf.get("figuresInNotation", False):
                 notat = toFAN(board, move)
             else: notat = toSAN(board, move, True)
             row, col, other = self._ply_to_row_col_other(board.ply+1)
             iter = col.get_model().get_iter((row,))
             col.get_model().set(iter, 0, notat)
     conf.notify_add("figuresInNotation", figuresInNotationCallback)
     
     # Return
     
     return __widget__
 def load (self, gmwidg):
     
     widgets = gtk.glade.XML(addDataPrefix("sidepanel/history.glade"))
     __widget__ = widgets.get_widget("panel")
     __widget__.unparent()
     
     self.board = gmwidg.board.view
     
     glock_connect(self.board.model, "game_changed", self.game_changed)
     glock_connect(self.board.model, "game_started", self.game_changed)
     glock_connect(self.board.model, "moves_undoing", self.moves_undoing)
     self.board.connect("shown_changed", self.shown_changed)
     
     # Initialize treeviews
     
     self.numbers = widgets.get_widget("treeview1")
     self.left = widgets.get_widget("treeview2")
     self.right = widgets.get_widget("treeview3")
     
     def fixList (list, xalign=0):
         list.set_model(gtk.ListStore(str))
         renderer = gtk.CellRendererText()
         renderer.set_property("xalign",xalign)
         list.append_column(gtk.TreeViewColumn(None, renderer, text=0))
         list.get_selection().set_mode(gtk.SELECTION_SINGLE)
     
     fixList(self.numbers, 1)
     fixList(self.left, 0)
     fixList(self.right, 0)
     
     self.left.get_selection().connect('changed', self.on_selection_changed,
                                       self.left, 0)
     self.right.get_selection().connect('changed', self.on_selection_changed,
                                        self.right, 1)
     
     widgets.signal_autoconnect ({
         "on_treeview2_key_press_event":lambda w,e:self.key_press_event(1,e),
         "on_treeview3_key_press_event":lambda w,e:self.key_press_event(2,e)
     })
     
     # Lock scrolling
     
     scrollwin = widgets.get_widget("panel")
     
     def changed (vadjust):
         if not hasattr(vadjust, "need_scroll") or vadjust.need_scroll:
             vadjust.set_value(vadjust.upper-vadjust.page_size)
             vadjust.need_scroll = True
     scrollwin.get_vadjustment().connect("changed", changed)
     
     def value_changed (vadjust):
         vadjust.need_scroll = abs(vadjust.value + vadjust.page_size - \
                     vadjust.upper) < vadjust.step_increment
     scrollwin.get_vadjustment().connect("value-changed", value_changed)
     
     # Connect to preferences
     
     def figuresInNotationCallback (none):
         game = self.board.model
         for board, move in zip(game.boards, game.moves):
             if conf.get("figuresInNotation", False):
                 notat = toFAN(board, move)
             else: notat = toSAN(board, move, True)
             row, col, other = self._ply_to_row_col_other(board.ply+1)
             iter = col.get_model().get_iter((row,))
             col.get_model().set(iter, 0, notat)
     conf.notify_add("figuresInNotation", figuresInNotationCallback)
     
     # Return
     
     return __widget__