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)
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)
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
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
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)
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)
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)
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)
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)
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)
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)
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)
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))
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)
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)
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)
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()