コード例 #1
0
    def __init__(self):
        wx.Frame.__init__(self, None, -1, _('Past Chat Browser'), name = 'Past Chat Browser')
        self.SetFrameIcon(skin.get('appdefaults.taskbaricon'))

        sz = self.Sizer = wx.BoxSizer(VERTICAL)
        self.pastbrowser = PastBrowserPanel(self)
        sz.Add(self.pastbrowser, 1, EXPAND)

        persist_window_pos(self, defaultPos = wx.Point(150, 150), defaultSize = wx.Size(700, 500))
        snap_pref(self)
コード例 #2
0
ファイル: feed_trends.py プロジェクト: sgricci/digsby
    def __init__(self, parent=None):
        wx.Frame.__init__(self, parent, title=_('Feed Trends Debug'))

        from gui.browser.webkit.webkitwindow import WebKitWindow
        debug_html = path(__file__).parent / 'feed_trends_debug.html'
        assert debug_html.isfile()
        self.wk = WebKitWindow(self, url=debug_html.url())

        from gui.toolbox import persist_window_pos
        persist_window_pos(self)
コード例 #3
0
ファイル: feed_trends.py プロジェクト: AlexUlrich/digsby
    def __init__(self, parent=None):
        wx.Frame.__init__(self, parent, title=_('Feed Trends Debug'))

        from gui.browser.webkit.webkitwindow import WebKitWindow
        debug_html = path(__file__).parent / 'feed_trends_debug.html'
        assert debug_html.isfile()
        self.wk = WebKitWindow(self, url=debug_html.url())

        from gui.toolbox import persist_window_pos
        persist_window_pos(self)
コード例 #4
0
def show_prefs_window(parent, tab=0):
    win = PrefsDialog.RaiseExisting()
    if win is not None:
        win.show_tab(tab)
        return win

    # Show the dialog (NOT modal)
    pdiag = PrefsDialog(None, initial_tab=tab)
    persist_window_pos(pdiag, position_only=True)
    wx.CallAfter(pdiag.Show)
    wx.CallAfter(pdiag.ReallyRaise)
    return pdiag
コード例 #5
0
ファイル: prefsdialog.py プロジェクト: AlexUlrich/digsby
def show_prefs_window(parent, tab = 0):
    win = PrefsDialog.RaiseExisting()
    if win is not None:
        win.show_tab(tab)
        return win

    # Show the dialog (NOT modal)
    pdiag = PrefsDialog(None, initial_tab = tab)
    persist_window_pos(pdiag, position_only = True)
    wx.CallAfter(pdiag.Show)
    wx.CallAfter(pdiag.ReallyRaise)
    return pdiag
コード例 #6
0
ファイル: prefsgui.py プロジェクト: AlexUlrich/digsby
    def __init__(self, prefs, defaults, parent=None, id=-1, title="Advanced Preferences", name = 'Advanced Preferences'):
        wx.Frame.__init__(self, parent, id, title,
                          style = wx.DEFAULT_FRAME_STYLE & ~(wx.MINIMIZE_BOX | wx.MAXIMIZE_BOX))

        self.prefs_viewer = PrefsViewer(self, prefs, defaults)

        from gui.toolbox import persist_window_pos, snap_pref
        persist_window_pos(self, unique_id = 'PrefsFrame',
                           defaultPos = wx.Point(100, 100),
                           defaultSize = wx.Size(600, 500),
                           position_only = True)
        snap_pref(self)
コード例 #7
0
ファイル: jabbergui.py プロジェクト: AlexUlrich/digsby
    def __init__(self, connection):
        wx.Frame.__init__(self, None, -1, 'XML Console for %s' % connection.username, name = 'XML Console')

        self.SetBackgroundStyle(wx.BG_STYLE_CUSTOM)

        self.panel = XMLConsole(self, connection)
        self.Bind(wx.EVT_CLOSE, self.panel.on_close)

        self.Sizer = wx.BoxSizer(wx.VERTICAL)
        self.Sizer.Add(self.panel, 1, wx.EXPAND | wx.ALL)

        persist_window_pos(self, nostack = True)
        snap_pref(self)
コード例 #8
0
ファイル: filetransferlist.py プロジェクト: AlexUlrich/digsby
    def __init__(self, parent, xferlist):
        wx.Frame.__init__(self, parent, title = _('File Transfers'), name = 'File Transfers')
        self.SetFrameIcon(skin.get('AppDefaults.TaskbarIcon'))

        with traceguard:
            from gui.toolbox import snap_pref
            snap_pref(self)

        s   = self.Sizer = wx.BoxSizer(wx.VERTICAL)
        ftp = FileTransferPanel(self, xferlist)
        s.Add(ftp, 1, wx.EXPAND)

        persist_window_pos(self, defaultPos = wx.Point(200, 200), defaultSize = wx.Size(450, 300))

        self.Bind(wx.EVT_CLOSE, self.__OnClose)
コード例 #9
0
def addebug():
    '''a debugging info frame for ad rotaters'''

    f = wx.Frame(None, size=(870, 200), title='Ad Info', name='Ad Info')
    from gui.toolbox import persist_window_pos
    persist_window_pos(f)

    f.BackgroundStyle = wx.BG_STYLE_CUSTOM

    def paint(e):
        dc = wx.AutoBufferedPaintDC(f)
        dc.Brush = wx.WHITE_BRUSH
        dc.Pen = wx.TRANSPARENT_PEN
        dc.DrawRectangleRect(f.ClientRect)
        font = f.Font
        font.PointSize = 12
        dc.Font = font

        x = y = 10
        found_rotater = False

        for win in wx.GetTopLevelWindows():
            try:
                rotater = win._ad_rotater
            except AttributeError:
                pass
            else:
                found_rotater = True
                dc.DrawText('%s: %r' % (win.Title, rotater), x, y)
                y += 20

        if not found_rotater:
            import gui.imwin.imwin_ads as imwin_ads
            secs = imwin_ads.secs_since_last_close()
            msg = 'seconds since last close: %s' % secs
            if imwin_ads.should_clear_cookies():
                msg += ' (will clear cookies on next imwin open)'
            dc.DrawText(msg, x, y)
            y += 20

    f.Bind(wx.EVT_PAINT, paint)
    f.Show()
    f.OnTop = True
    f.timer = wx.PyTimer(lambda: f.Refresh()
                         if not wx.IsDestroyed(f) else None)
    f.timer.StartRepeating(307)
コード例 #10
0
ファイル: jabbergui.py プロジェクト: sgricci/digsby
    def __init__(self, connection):
        wx.Frame.__init__(self,
                          None,
                          -1,
                          'XML Console for %s' % connection.username,
                          name='XML Console')

        self.SetBackgroundStyle(wx.BG_STYLE_CUSTOM)

        self.panel = XMLConsole(self, connection)
        self.Bind(wx.EVT_CLOSE, self.panel.on_close)

        self.Sizer = wx.BoxSizer(wx.VERTICAL)
        self.Sizer.Add(self.panel, 1, wx.EXPAND | wx.ALL)

        persist_window_pos(self, nostack=True)
        snap_pref(self)
コード例 #11
0
ファイル: commandline.py プロジェクト: AlexUlrich/digsby
def addebug():
    '''a debugging info frame for ad rotaters'''

    f=wx.Frame(None, size=(870, 200), title='Ad Info', name='Ad Info')
    from gui.toolbox import persist_window_pos
    persist_window_pos(f)

    f.BackgroundStyle=wx.BG_STYLE_CUSTOM
    def paint(e):
        dc = wx.AutoBufferedPaintDC(f)
        dc.Brush = wx.WHITE_BRUSH
        dc.Pen = wx.TRANSPARENT_PEN
        dc.DrawRectangleRect(f.ClientRect)
        font = f.Font
        font.PointSize = 12
        dc.Font = font

        x = y = 10
        found_rotater = False

        for win in wx.GetTopLevelWindows():
            try:
                rotater = win._ad_rotater
            except AttributeError:
                pass
            else:
                found_rotater = True
                dc.DrawText('%s: %r' % (win.Title, rotater), x, y)
                y += 20

        if not found_rotater:
            import gui.imwin.imwin_ads as imwin_ads
            secs = imwin_ads.secs_since_last_close()
            msg = 'seconds since last close: %s' % secs
            if imwin_ads.should_clear_cookies():
                msg += ' (will clear cookies on next imwin open)'
            dc.DrawText(msg, x, y)
            y += 20

    f.Bind(wx.EVT_PAINT, paint)
    f.Show()
    f.OnTop = True
    f.timer = wx.PyTimer(lambda: f.Refresh() if not wx.IsDestroyed(f) else None)
    f.timer.StartRepeating(307)
コード例 #12
0
ファイル: filetransferlist.py プロジェクト: sgricci/digsby
    def __init__(self, parent, xferlist):
        wx.Frame.__init__(self,
                          parent,
                          title=_('File Transfers'),
                          name='File Transfers')
        self.SetFrameIcon(skin.get('AppDefaults.TaskbarIcon'))

        with traceguard:
            from gui.toolbox import snap_pref
            snap_pref(self)

        s = self.Sizer = wx.BoxSizer(wx.VERTICAL)
        ftp = FileTransferPanel(self, xferlist)
        s.Add(ftp, 1, wx.EXPAND)

        persist_window_pos(self,
                           defaultPos=wx.Point(200, 200),
                           defaultSize=wx.Size(450, 300))

        self.Bind(wx.EVT_CLOSE, self.__OnClose)
コード例 #13
0
    def __init__(self, parent):
        wx.Frame.__init__(self, parent, title = _('Javascript Console'), name = 'JavaScript Console')

        with traceguard:
            from gui.toolbox import persist_window_pos, snap_pref
            persist_window_pos(self,
                               defaultPos  = wx.Point(50, 50),
                               defaultSize = wx.Size(400, 300),
                               nostack     = True)
            snap_pref(self)

            from gui import skin
            self.SetFrameIcon(skin.get('AppDefaults.TaskbarIcon').Inverted)

        # don't allow menu events, etc, to go up to the IM window which
        # is our parent.
        self.SetExtraStyle(wx.WS_EX_BLOCK_EVENTS)

        self.construct()
        self.Bind(wx.EVT_TOOL, self.on_clear, id = ID_CLEAR)
        self.Bind(wx.EVT_CLOSE, self.close)
コード例 #14
0
ファイル: imdialogs.py プロジェクト: sgricci/digsby
    def __init__(self):
        sc.SizedDialog.__init__(self, None, -1, _('New IM'),
                           style = wx.DEFAULT_DIALOG_STYLE | wx.FRAME_FLOAT_ON_PARENT)

        self.Name = 'New IM Dialog'

        p = self.GetContentsPane()
        p.SetSizerType("form")

        R_CENTER= dict(halign='right', valign='center')

        Text = lambda t: wx.StaticText(p, -1, t)
        Text(_('To')).SetSizerProps(**R_CENTER)

        toctrl = self.toctrl = wx.TextCtrl(p,style = wx.TE_PROCESS_ENTER, validator=LengthLimit(255))
        toctrl.Bind(wx.EVT_KEY_DOWN,self.OnKeyDown)
        toctrl.SetSizerProps(expand=True)

        Text(_('From')).SetSizerProps(**R_CENTER)
        fromcombo = self.fromcombo = UberCombo(p, None, skinkey='AppDefaults.PrefCombo')
        fromcombo.SetItems(self.UpdateAccountItems(),0)
        fromcombo.SetSizerProps(expand=True)

        self.SetButtonSizer(self.CreateButtonSizer(wx.OK | wx.CANCEL))
        sendbutton = self.sendbutton = self.FindWindowById(wx.ID_OK, self)
        sendbutton.SetLabel(_('IM'))
        sendbutton.Enable(False)
        sendbutton.Bind(wx.EVT_BUTTON,self.OnAccept)

        profile.account_manager.connected_accounts.add_observer(self.WhenOnlineAcctsChange)

        Bind = self.Bind
        Bind(wx.EVT_CLOSE,self.OnClose)
        Bind(wx.EVT_KEY_DOWN,self.OnKeyDown)

        persist_window_pos(self, defaultPos = 'center', position_only = True)

        self.Fit()
        self.SetSize((300, self.BestSize.height))
コード例 #15
0
ファイル: prefsgui.py プロジェクト: sgricci/digsby
    def __init__(self,
                 prefs,
                 defaults,
                 parent=None,
                 id=-1,
                 title="Advanced Preferences",
                 name='Advanced Preferences'):
        wx.Frame.__init__(self,
                          parent,
                          id,
                          title,
                          style=wx.DEFAULT_FRAME_STYLE
                          & ~(wx.MINIMIZE_BOX | wx.MAXIMIZE_BOX))

        self.prefs_viewer = PrefsViewer(self, prefs, defaults)

        from gui.toolbox import persist_window_pos, snap_pref
        persist_window_pos(self,
                           unique_id='PrefsFrame',
                           defaultPos=wx.Point(100, 100),
                           defaultSize=wx.Size(600, 500),
                           position_only=True)
        snap_pref(self)
コード例 #16
0
ファイル: webvideo.py プロジェクト: AlexUlrich/digsby
    def __init__(self, title, widget_id, on_close = None):
        self.widget_url = video_frame_url % dict(widget_id = widget_id)
        reload_plugins()
        BrowserFrame.__init__(self,
                              None,
                              name = 'Video Chat Window',
                              title = title,
                              url   = self.widget_url,
                              style = video_frame_style,
                              external_links=False)

        self.on_close = on_close
        self.SetFrameIcon(skin.get('AppDefaults.TaskBarIcon'))

        self.Bind(wx.webview.EVT_WEBVIEW_BEFORE_LOAD, self.__onbeforeload)

        persist_window_pos(self, position_only = True)
        snap_pref(self)
        self.SetClientSize(video_frame_size)

        log.debug('opening video embed url: %s' % self.widget_url)

        if on_close is not None:
            self.Bind(wx.EVT_CLOSE, self.OnClose)
コード例 #17
0
ファイル: webvideo.py プロジェクト: sgricci/digsby
    def __init__(self, title, widget_id, on_close=None):
        self.widget_url = video_frame_url % dict(widget_id=widget_id)
        reload_plugins()
        BrowserFrame.__init__(self,
                              None,
                              name='Video Chat Window',
                              title=title,
                              url=self.widget_url,
                              style=video_frame_style,
                              external_links=False)

        self.on_close = on_close
        self.SetFrameIcon(skin.get('AppDefaults.TaskBarIcon'))

        self.Bind(wx.webview.EVT_WEBVIEW_BEFORE_LOAD, self.__onbeforeload)

        persist_window_pos(self, position_only=True)
        snap_pref(self)
        self.SetClientSize(video_frame_size)

        log.debug('opening video embed url: %s' % self.widget_url)

        if on_close is not None:
            self.Bind(wx.EVT_CLOSE, self.OnClose)
コード例 #18
0
def EditSource(self):
    'Brings up a simple editor with the HTML source of this window, available for editing.'

    import wx
    from util import soupify
    from wx.stc import StyledTextCtrl, STC_LEX_HTML

    font = wx.Font(10, wx.FONTFAMILY_DEFAULT, wx.FONTSTYLE_NORMAL,
                   wx.FONTWEIGHT_NORMAL, False, "Consolas")

    f = wx.Frame(wx.GetTopLevelParent(self), -1, 'View Source', name = 'View Source', size = (640, 480))
    s = wx.BoxSizer(wx.VERTICAL)
    t = StyledTextCtrl(f, -1, wx.DefaultPosition, wx.DefaultSize, wx.NO_BORDER)
    #t.SetLexer(STC_LEX_HTML)

    orightml = self.HTML

    # TODO: BeautifulSoup is more destructive than is useful here.
    html = soupify(orightml).prettify()
    t.SetText(html)
    #t.SetFont(font)
    wx.CallAfter(t.SetSelection, 0, 0)

    buttons = wx.Panel(f)
    save = wx.Button(buttons, -1, '&Save')
    save.Bind(wx.EVT_BUTTON, lambda e: self.SetHTML(t.GetText()))

    save_as_file = wx.Button(buttons, -1, 'Save &As File...')

    def onsaveasfile(e):
        diag = wx.FileDialog(self, "Save HTML", "contents.html", style=wx.SAVE)

        if diag.ShowModal() == wx.ID_OK:
            with open(diag.GetPath(), 'wb') as f:
                f.write(orightml.encode('utf-8'))

    save_as_file.Bind(wx.EVT_BUTTON, onsaveasfile)

    copybutton = wx.Button(buttons, -1, _('&Copy'))

    def openinbrowser(e):
        from subprocess import Popen
        import os.path, tempfile

        fdesc, fname  = tempfile.mkstemp()
        with os.fdopen(fdesc, 'w') as f:
            f.write(t.GetText().encode('utf-8'))

        if "wxMSW" in wx.PlatformInfo:
            from common import pref
            from path import path

            browser_exe = pref('debug.message_area.debug_browser',
                               r'c:\Program Files\Safari\Safari.exe', type=basestring)
            browser_exe = path(browser_exe).expand()

            if browser_exe.isfile():
                Popen([browser_exe, fname])
            else:
                wx.MessageBox('Error launching browser:\n\n'
                              '"%s"\n\n'
                              'Please set the "debug.message_area.debug_browser" pref to\n'
                              'the path to your web browser.' % browser_exe,
                              'Open in Browser')
        else:
            import webbrowser
            webbrowser.open_new("file://" + fname)


    openbutton = wx.Button(buttons, -1, _('&Open in Browser'))
    openbutton.Bind(wx.EVT_BUTTON, openinbrowser)
    openbutton.SetToolTipString(_('Launches browser in pref "debug.message_area.debug_browser"'))

    def docopy(e):
        clip = wx.TheClipboard
        if clip.Open():
            clip.SetData( wx.TextDataObject(t.Value) )
            clip.Close()

    copybutton.Bind(wx.EVT_BUTTON, docopy)

    buttons.Sizer = wx.BoxSizer(wx.HORIZONTAL)
    buttons.Sizer.AddMany([save, copybutton, openbutton, save_as_file])

    s.Add(t, 1, wx.EXPAND)
    s.Add(buttons, 0, wx.EXPAND)
    f.SetSizer(s)

    # remember position and cascade when necessary
    from gui.toolbox import persist_window_pos
    persist_window_pos(f)
    f.EnsureNotStacked()

    f.Show()