def __init__(self, title): # init window Frame.__init__(self, None, ID_ANY, title, size=(800, 800)) self.Bind(EVT_CLOSE, lambda x: self.Destroy()) loc = Icon() loc.CopyFromBitmap(Bitmap('icon.ico', BITMAP_TYPE_ANY)) self.SetIcon(loc) with SimpleSizer(self, VERTICAL) as sizer: new_element = OpenGLCanvas(self) sizer.Add(new_element)
def __init__(self, parent, title, latestVersionTagName, latestVersionChanges): super(NewVersionAlertDialog, self).__init__(parent, wx.ID_ANY, title, size=(680, 290), pos=(200, 150)) bmp = MYDATA_ICONS.GetIcon("favicon", vendor="MyTardis") icon = EmptyIcon() icon.CopyFromBitmap(bmp) self.SetIcon(icon) # Panels placed vertically verticalSizer = wx.BoxSizer(wx.VERTICAL) self.SetSizer(verticalSizer) mainPanel = wx.Panel(self) verticalSizer.Add(mainPanel) okButton = wx.Button(self, wx.ID_ANY, ' OK ') okButton.SetDefault() self.Bind(wx.EVT_BUTTON, self.OnOK, id=okButton.GetId()) verticalSizer.Add(okButton, flag=wx.BOTTOM | wx.RIGHT | wx.ALIGN_RIGHT, border=20) # Panels placed horizontally horizSizer = wx.FlexGridSizer(rows=1, cols=2, vgap=5, hgap=5) mainPanel.SetSizer(horizSizer) iconPanel = IconPanel(mainPanel) horizSizer.Add(iconPanel, flag=wx.EXPAND | wx.ALL, border=10) newVersionAlertPanel = NewVersionAlertPanel(mainPanel, latestVersionTagName, latestVersionChanges) horizSizer.Add(newVersionAlertPanel, flag=wx.EXPAND | wx.TOP | wx.RIGHT, border=10) horizSizer.Fit(mainPanel) verticalSizer.Fit(self)
def __init__(self, frame): """ @type frame: str, unicode @return: None """ adv.TaskBarIcon.__init__(self) self.frame = frame # Set the image icon = Icon() icon.CopyFromBitmap( wx.Bitmap(os.path.join(get_base_dir(), "Resources/traybar.png"), wx.BITMAP_TYPE_PNG)) self.tbIcon = icon self.SetIcon(self.tbIcon, "Cryptobox") # bind some evts self.Bind(wx.EVT_MENU, self.OnTaskBarClose, id=self.TBMENU_CLOSE) self.Bind(adv.EVT_TASKBAR_LEFT_DOWN, self.OnTaskBarLeftClick)
class MyDataTaskBarIcon(TaskBarIcon): """ Provides a system tray icon (Windows) or menubar icon (Mac OS X) for MyData. """ # pylint: disable=too-many-instance-attributes def __init__(self, frame, settingsModel): """Constructor""" TaskBarIcon.__init__(self) self.frame = frame self.settingsModel = settingsModel bmp = MYDATA_ICONS.GetIcon("favicon", vendor="MyTardis") self.icon = EmptyIcon() self.icon.CopyFromBitmap(bmp) self.SetIcon(self.icon, "MyData") # Mouse event handling set up in MyData class's OnInit method. # self.Bind(wx.EVT_TASKBAR_LEFT_DOWN, self.OnTaskBarLeftClick) self.menu = None self.aboutMyDataMenuItem = None self.syncNowMenuItem = None self.myTardisMainWindowMenuItem = None self.myTardisSettingsMenuItem = None self.myTardisHelpMenuItem = None self.exitMyDataMenuItem = None def CreatePopupMenu(self): """ Overrides method in parent class to provide a Popup Menu when the user clicks on MyData's system tray (or menubar) icon. """ self.menu = wx.Menu() self.aboutMyDataMenuItem = wx.MenuItem(self.menu, wx.NewId(), "About MyData") if wx.version().startswith("3.0.3.dev"): self.menu.Append(self.aboutMyDataMenuItem) else: self.menu.AppendItem(self.aboutMyDataMenuItem) self.Bind(wx.EVT_MENU, wx.GetApp().OnAbout, self.aboutMyDataMenuItem, self.aboutMyDataMenuItem.GetId()) self.menu.AppendSeparator() self.syncNowMenuItem = wx.MenuItem(self.menu, wx.NewId(), "Sync Now") if wx.version().startswith("3.0.3.dev"): self.menu.Append(self.syncNowMenuItem) else: self.menu.AppendItem(self.syncNowMenuItem) self.Bind(wx.EVT_MENU, self.OnSyncNow, self.syncNowMenuItem, self.syncNowMenuItem.GetId()) self.menu.AppendSeparator() self.myTardisMainWindowMenuItem = wx.MenuItem(self.menu, wx.NewId(), "MyData Main Window") if wx.version().startswith("3.0.3.dev"): self.menu.Append(self.myTardisMainWindowMenuItem) else: self.menu.AppendItem(self.myTardisMainWindowMenuItem) self.Bind(wx.EVT_MENU, self.OnMyDataMainWindow, self.myTardisMainWindowMenuItem) self.myTardisSettingsMenuItem = wx.MenuItem(self.menu, wx.NewId(), "MyData Settings") if wx.version().startswith("3.0.3.dev"): self.menu.Append(self.myTardisSettingsMenuItem) else: self.menu.AppendItem(self.myTardisSettingsMenuItem) self.Bind(wx.EVT_MENU, self.OnMyDataSettings, self.myTardisSettingsMenuItem) self.menu.AppendSeparator() self.myTardisHelpMenuItem = wx.MenuItem(self.menu, wx.NewId(), "MyData Help") if wx.version().startswith("3.0.3.dev"): self.menu.Append(self.myTardisHelpMenuItem) else: self.menu.AppendItem(self.myTardisHelpMenuItem) self.Bind(wx.EVT_MENU, self.OnMyDataHelp, self.myTardisHelpMenuItem) self.menu.AppendSeparator() self.exitMyDataMenuItem = wx.MenuItem(self.menu, wx.NewId(), "Exit MyData") if wx.version().startswith("3.0.3.dev"): self.menu.Append(self.exitMyDataMenuItem) else: self.menu.AppendItem(self.exitMyDataMenuItem) self.Bind(wx.EVT_MENU, self.OnExit, self.exitMyDataMenuItem) return self.menu def GetSyncNowMenuItem(self): """ Returns the "Sync Now" menu item. """ if hasattr(self, "syncNowMenuItem"): return self.syncNowMenuItem else: return None def OnMyDataMainWindow(self, event): """ Called when the "MyData Main Window" menu item is selected from MyData's system tray / menu bar icon menu. """ self.frame.Show(True) self.frame.Raise() event.Skip() def OnMyDataSettings(self, event): """ Called when the "MyData Settings" menu item is selected from MyData's system tray / menu bar icon menu. """ self.frame.Show(True) self.frame.Raise() wx.GetApp().OnSettings(event) event.Skip() # pylint: disable=no-self-use def OnSyncNow(self, event): """ Called when the "Sync Now" menu item is selected from MyData's system tray / menu bar icon menu. """ logger.debug("Sync Now called from task bar menu item.") wx.GetApp().ScanFoldersAndUpload(event) # pylint: disable=no-self-use def OnMyDataHelp(self, event): """ Called when the "MyData Help" menu item is selected from MyData's system tray / menu bar icon menu. """ new = 2 # Open in a new tab, if possible url = "http://mydata.readthedocs.org/en/latest/" webbrowser.open(url, new=new) event.Skip() def OnExit(self, event): """ Called when the "Exit MyData" menu item is selected from MyData's system tray / menu bar icon menu. """ started = wx.GetApp().foldersController.Started() completed = wx.GetApp().foldersController.Completed() canceled = wx.GetApp().foldersController.Canceled() failed = wx.GetApp().foldersController.Failed() self.frame.Show(True) self.frame.Raise() message = "Are you sure you want to quit MyData?" if started and not completed and not canceled and not failed: message += "\n\n" \ "MyData will attempt to shut down any uploads currently " \ "in progress before exiting." confirmationDialog = \ wx.MessageDialog(self.frame, message, "MyData", wx.YES | wx.NO | wx.ICON_QUESTION) okToExit = confirmationDialog.ShowModal() if okToExit == wx.ID_YES: # See also: wx.GetApp().ShutDownCleanlyAndExit(event) # pylint: disable=protected-access os._exit(0) event.Skip()
def __init__(self): wx.Frame.__init__(self, None, wx.ID_ANY, APPNAME) self.SetSize(wx.Size(1000, 600)) self.statusbar = wx.StatusBar(self) if sys.platform.startswith("win"): self.statusbar.SetSize(wx.Size(-1, 28)) else: self.statusbar.SetSize(wx.Size(-1, 18)) self.statusbar.SetFieldsCount(2) self.SetStatusBar(self.statusbar) self.statusbar.SetStatusWidths([-1, 60]) self.mydataApp = wx.GetApp() self.panel = wx.Panel(self) if sys.platform.startswith("darwin"): self.CreateMacMenu() self.toolbar = MyDataToolbar(self) bmp = MYDATA_ICONS.GetIcon("favicon", vendor="MyTardis") icon = EmptyIcon() icon.CopyFromBitmap(bmp) self.SetIcon(icon) if 'phoenix' in wx.PlatformInfo: self.tabbedView = AuiNotebook(self.panel, agwStyle=AUI_NB_TOP) else: self.tabbedView = AuiNotebook(self.panel, style=AUI_NB_TOP) # Without the following line, the tab font looks # too small on Mac OS X: self.tabbedView.SetFont(self.panel.GetFont()) self.Bind(EVT_AUINOTEBOOK_PAGE_CHANGING, self.OnNotebookPageChanging, self.tabbedView) self.dataViews = dict() if DATAVIEW_MODELS: self.AddDataViews() self.logView = LogView(self.tabbedView) self.tabbedView.AddPage(self.logView, "Log") sizer = wx.BoxSizer() sizer.Add(self.tabbedView, 1, flag=wx.EXPAND) self.panel.SetSizer(sizer) sizer = wx.BoxSizer() sizer.Add(self.panel, 1, flag=wx.EXPAND) self.SetSizer(sizer) self.tabbedView.SendSizeEvent() self.panel.SetFocus() self.taskBarIcon = MyDataTaskBarIcon(self) if sys.platform.startswith("linux"): self.taskBarIcon.Bind(EVT_TASKBAR_LEFT_DOWN, self.OnTaskBarLeftClick) else: self.taskBarIcon.Bind(EVT_TASKBAR_LEFT_UP, self.OnTaskBarLeftClick) self.Bind(wx.EVT_MENU, self.taskBarIcon.OnExit, id=wx.ID_EXIT) self.Bind(wx.EVT_CLOSE, self.OnClose) self.Bind(wx.EVT_ICONIZE, self.OnMinimize)
class MyDataTaskBarIcon(TaskBarIcon): """ Provides a system tray icon (Windows) or menubar icon (Mac OS X) for MyData. """ def __init__(self, frame): """Constructor""" TaskBarIcon.__init__(self) self.frame = frame bmp = MYDATA_ICONS.GetIcon("favicon", vendor="MyTardis") self.icon = EmptyIcon() self.icon.CopyFromBitmap(bmp) self.SetIcon(self.icon, "MyData") # Mouse event handling set up in MyData class's OnInit method. # self.Bind(wx.EVT_TASKBAR_LEFT_DOWN, self.OnTaskBarLeftClick) self.menu = None self.aboutMyDataMenuItem = None self.syncNowMenuItem = None self.myTardisMainWindowMenuItem = None self.myTardisSettingsMenuItem = None self.myTardisHelpMenuItem = None self.exitMyDataMenuItem = None def CreatePopupMenu(self): """ Overrides method in parent class to provide a Popup Menu when the user clicks on MyData's system tray (or menubar) icon. """ self.menu = wx.Menu() self.aboutMyDataMenuItem = wx.MenuItem(self.menu, wx.NewId(), "About MyData") if 'phoenix' in wx.PlatformInfo: self.menu.Append(self.aboutMyDataMenuItem) else: self.menu.AppendItem(self.aboutMyDataMenuItem) self.Bind(wx.EVT_MENU, self.frame.OnAbout, self.aboutMyDataMenuItem, self.aboutMyDataMenuItem.GetId()) self.menu.AppendSeparator() self.syncNowMenuItem = wx.MenuItem(self.menu, wx.NewId(), "Sync Now") if 'phoenix' in wx.PlatformInfo: self.menu.Append(self.syncNowMenuItem) else: self.menu.AppendItem(self.syncNowMenuItem) self.Bind(wx.EVT_MENU, MyDataTaskBarIcon.OnSyncNow, self.syncNowMenuItem, self.syncNowMenuItem.GetId()) self.menu.AppendSeparator() self.myTardisMainWindowMenuItem = wx.MenuItem(self.menu, wx.NewId(), "MyData Main Window") if 'phoenix' in wx.PlatformInfo: self.menu.Append(self.myTardisMainWindowMenuItem) else: self.menu.AppendItem(self.myTardisMainWindowMenuItem) self.Bind(wx.EVT_MENU, self.OnMyDataMainWindow, self.myTardisMainWindowMenuItem) self.myTardisSettingsMenuItem = wx.MenuItem(self.menu, wx.NewId(), "MyData Settings") if 'phoenix' in wx.PlatformInfo: self.menu.Append(self.myTardisSettingsMenuItem) else: self.menu.AppendItem(self.myTardisSettingsMenuItem) self.Bind(wx.EVT_MENU, self.OnMyDataSettings, self.myTardisSettingsMenuItem) self.menu.AppendSeparator() self.myTardisHelpMenuItem = wx.MenuItem(self.menu, wx.NewId(), "MyData Help") if 'phoenix' in wx.PlatformInfo: self.menu.Append(self.myTardisHelpMenuItem) else: self.menu.AppendItem(self.myTardisHelpMenuItem) self.Bind(wx.EVT_MENU, MyDataTaskBarIcon.OnMyDataHelp, self.myTardisHelpMenuItem) self.menu.AppendSeparator() self.exitMyDataMenuItem = wx.MenuItem(self.menu, wx.NewId(), "Exit MyData") if 'phoenix' in wx.PlatformInfo: self.menu.Append(self.exitMyDataMenuItem) else: self.menu.AppendItem(self.exitMyDataMenuItem) self.Bind(wx.EVT_MENU, self.OnExit, self.exitMyDataMenuItem) return self.menu def GetSyncNowMenuItem(self): """ Returns the "Sync Now" menu item. """ return getattr(self, "syncNowMenuItem", None) def OnMyDataMainWindow(self, event): """ Called when the "MyData Main Window" menu item is selected from MyData's system tray / menu bar icon menu. """ self.frame.Show(True) self.frame.Iconize(False) self.frame.Raise() event.Skip() def OnMyDataSettings(self, event): """ Called when the "MyData Settings" menu item is selected from MyData's system tray / menu bar icon menu. """ self.frame.Show(True) self.frame.Iconize(False) self.frame.Raise() OnSettings(event) event.Skip() @staticmethod def OnSyncNow(event): """ Called when the "Sync Now" menu item is selected from MyData's system tray / menu bar icon menu. """ logger.debug("Sync Now called from task bar menu item.") ManuallyTriggerScanFoldersAndUpload(event) @staticmethod def OnMyDataHelp(event): """ Called when the "MyData Help" menu item is selected from MyData's system tray / menu bar icon menu. """ new = 2 # Open in a new tab, if possible url = "http://mydata.readthedocs.org/en/latest/" webbrowser.open(url, new=new) event.Skip() def OnExit(self, event): """ Called when the "Exit MyData" menu item is selected from MyData's system tray / menu bar icon menu. """ self.frame.Show(True) self.frame.Iconize(False) self.frame.Raise() message = "Are you sure you want to quit MyData?" if wx.GetApp().Processing(): message += "\n\n" \ "MyData will attempt to shut down any uploads currently " \ "in progress before exiting." confirmationDialog = \ wx.MessageDialog(self.frame, message, "MyData", wx.YES | wx.NO | wx.ICON_QUESTION) okToExit = confirmationDialog.ShowModal() if okToExit == wx.ID_YES: wx.GetApp().ShutDownCleanlyAndExit(event, confirm=False) event.StopPropagation()
def __init__(self): self.files = [] self.path = None # init window Frame.__init__(self, None, ID_ANY, "CUT", size=(688, 800)) self.Bind(EVT_CLOSE, lambda x: self.Destroy()) loc = Icon() loc.CopyFromBitmap(Bitmap('icon.ico', BITMAP_TYPE_ANY)) self.SetIcon(loc) self.panel = Panel(self, EXPAND) self.sizer = BoxSizer(VERTICAL) self.sizer.Add( FileInput(self.panel, text_button="Open File", callback=self._set_file, file_type=file_exts, text_title="OPEN", text_open_file="File"), 1, EXPAND) # Create Input fields self._start_input = TimeInput(self.panel, label='START') self._end_input = TimeInput(self.panel, label='END') self._scale_input = SimpleInput(self.panel, label='Width:Height', initial='-1:-1') self._webm_input = SimpleInput(self.panel, label='WEBM Quality', initial='36') self._framerate_input = SimpleInput(self.panel, label='INPUT FRAMES FRAMERATE', initial='') # Create check inputs font = Font(20, MODERN, NORMAL, NORMAL, False, u'Consolas') self._audio_select = StandardSelection(parent=self.panel, options=list( audio_options.keys()), callback=None, title='Audio codec') self._video_select = StandardSelection(parent=self.panel, options=list( video_options.keys()), callback=None, title='Video format') # Add inputs to self.sizer self.sizer.Add(self._video_select, 1, EXPAND) self.sizer.Add(self._audio_select, 1, EXPAND) self.sizer.Add( FileInput(self.panel, text_button="Clone time", callback=self._clone_time, file_type=file_exts, text_title="OPEN", text_open_file="File"), 1, EXPAND) self.sizer.Add(self._start_input, 1, EXPAND) self.sizer.Add(self._end_input, 1, EXPAND) self.sizer.Add(self._scale_input, 1, EXPAND) self.sizer.Add(self._webm_input, 1, EXPAND) self.sizer.Add(self._framerate_input, 1, EXPAND) # Add Button self.sizer.Add( SimpleButton(self.panel, text_button='CUT', callback=self._submit_task), 1, EXPAND) self.panel.SetSizer(self.sizer)