Пример #1
0
    def handle_connect(self):
        self._logger.info('handle_connect')
        common.socket.handle_connect(self)
        self.on_connect[:], on_connect = funcs.Delegate([]), funcs.Delegate(
            self.on_connect[:])

        on_connect()
Пример #2
0
    def __init__(self,
                 group=None,
                 target=None,
                 name=None,
                 args=(),
                 kwargs=None,
                 verbose=None):
        threading.Thread.__init__(self, group, target, name, args, kwargs,
                                  verbose)

        self.BeforeRun = funcs.Delegate()
        self.AfterRun = funcs.Delegate()
Пример #3
0
    def __init__(self, **options):
        self.post_ach_all = options.setdefault('post_ach_all',
                                               self.default('post_ach_all'))
        self.informed_ach = options.setdefault('informed_ach',
                                               self.default('informed_ach'))

        self.ach_lock = threading.RLock()
        self.achievements_paused = True
        self.achievements_stored = funcs.Delegate()
Пример #4
0
    def handle_close(self):
        if self._closed:
            return

        self._closed = True
        self._logger.info('handle_close')
        self.close()

        common.socket.handle_close(self)
        on_close, self.on_close[:] = funcs.Delegate(
            self.on_close[:]), funcs.Delegate()

        self.clear_delegates()

        if not self.killed:
            # We don't want to run close callbacks *and* error callbacks - some of them perform similar tasks
            # or are mutually exclusive
            on_close()
Пример #5
0
    def __init__(self):
        self.frames = {}
        self.values = {}
        self.check()
        self.timer = util.RepeatTimer(30, self.check)
        self.start = self.timer.start
        self.stop = self.timer.stop

        self.on_fullscreen = funcs.Delegate()
Пример #6
0
    def handle_error(self, e, force_close=False):
        self.killed = True
        if (not force_close) and self._closed:
            return

        self._closed = True
        self._logger.info('handle_error: %r', e)
        self.on_error[:], on_error = funcs.Delegate([]), funcs.Delegate(
            self.on_error[:])
        on_error()
        self.clear_delegates()

        if force_close:
            # Do it early in this case.
            self.close()

        common.socket.handle_error(self, e)

        if not force_close:
            self.close()
Пример #7
0
    def __init__(self, sock, collect, on_close, on_error, on_connect, **k):
        self.socket = None
        self.term = 0
        self.tls = None
        self._collector = collect
        self._logger = logging.getLogger(type(self).__name__)

        self.on_close = funcs.Delegate()
        self.on_close += on_close

        self.on_error = funcs.Delegate()
        self.on_error += on_error

        self.on_connect = funcs.Delegate()
        self.on_connect += on_connect

        self.lastbuffer = ''
        self._closed = False

        common.socket.__init__(self, sock)
        self.set_terminator(self.term)

        self.killed = False
Пример #8
0
    def __init__(self, parent=None):
        wx.Frame.__init__(self, parent, -1,
                          title=_('Digsby Setup Wizard'))

        self.SetFrameIcon(skin.get('AppDefaults.TaskbarIcon'))
        self.Bind(wx.EVT_CLOSE, self.on_close)
        big_panel = wx.Panel(self)

        # header
        header = wx.Panel(big_panel)
        header.SetBackgroundColour(wx.Colour(244, 249, 251))
        hdr1 = wx.StaticText(header, -1, _('Welcome to Digsby!'))
        set_font(hdr1, 18, True)

        elems = \
        [(False, 'All your '),
         (True, 'IM'),
         (False, ', '),
         (True, 'Email'),
         (False, ' and '),
         (True, 'Social Network'),
         (False, ' accounts under one roof.')]

        txts = []
        for emphasis, text in elems:
            txt = wx.StaticText(header, -1, text)
            set_font(txt, 12, bold=emphasis, underline=False)
            txts.append(txt)

        txt_sizer = wx.BoxSizer(wx.HORIZONTAL)
        txt_sizer.AddMany(txts)

        icon = skin.get('AppDefaults.TaskBarIcon').PIL.Resized(48).WXB
        bind_paint(header, lambda dc: dc.DrawBitmap(icon, 5, 3, True))
        icon_pad = icon.Width + 6

        header.Sizer = sz = wx.BoxSizer(wx.VERTICAL)
        sz.AddMany([(hdr1, 0, wx.EXPAND | wx.LEFT, 6 + icon_pad),
                    (3, 3),
                    (txt_sizer, 0, wx.EXPAND | wx.LEFT, 6 + icon_pad)])

        # accounts panel
        panel = wx.Panel(big_panel)
        panel.BackgroundColour = wx.WHITE

        panel.Sizer = sizer = wx.BoxSizer(wx.VERTICAL)
        self.exithooks = utilfuncs.Delegate()
        pg_accounts.panel(panel, sizer, None, self.exithooks)

        # paint the background + line
        def paint(e):
            dc = wx.AutoBufferedPaintDC(big_panel)
            dc.Brush = wx.WHITE_BRUSH
            dc.Pen = wx.TRANSPARENT_PEN
            r = big_panel.ClientRect
            dc.DrawRectangleRect(r)
            dc.Brush = wx.Brush(header.BackgroundColour)

            y = header.Size.height + 19
            dc.DrawRectangle(0, 0, r.width, y)
            dc.Brush = wx.Brush(wx.BLACK)
            dc.DrawRectangle(0, y, r.width, 1)

        big_panel.BackgroundStyle = wx.BG_STYLE_CUSTOM
        big_panel.Bind(wx.EVT_PAINT, paint)

        # Done button
#        button_sizer = wx.BoxSizer(wx.HORIZONTAL)
#        button_sizer.AddStretchSpacer(1)
#        done = wx.Button(panel, -1, _('&Done'))
#        done.Bind(wx.EVT_BUTTON, lambda e: self.Close())
#        button_sizer.Add(done, 0, wx.EXPAND)
#        sizer.Add(button_sizer, 0, wx.EXPAND | wx.TOP, 10)

        big_panel.Sizer = sz = wx.BoxSizer(wx.VERTICAL)
        sz.Add(header, 0, wx.EXPAND | wx.ALL, 8)
        sz.Add((5, 5))
        sz.Add(panel, 1, wx.EXPAND | wx.ALL, 12)

        self.SetMinSize(self.MIN_SIZE)
        self.SetSize(self.MIN_SIZE)