def windowsinit(self, iconfile): bitmap=wx.Bitmap(guihelper.getresourcefile(iconfile), wx.BITMAP_TYPE_PNG) icon=wx.EmptyIcon() icon.CopyFromBitmap(bitmap) self.SetIcon(icon, "BitFling") wx.EVT_TASKBAR_RIGHT_UP(self, self.OnRButtonUp) wx.EVT_TASKBAR_LEFT_UP(self, self.OnLButtonUp) #wx.EVT_TASKBAR_MOVE(self, self.OnMouseMotion) wx.EVT_TASKBAR_LEFT_DOWN(self, self.OnLeftDown)
def registerMinimizeToTray(self): self.tbIcon = wx.TaskBarIcon() icon = wx.Icon("images/task.ico", wx.BITMAP_TYPE_ICO) self.tbIcon.SetIcon(icon, "Tasks") wx.EVT_TASKBAR_LEFT_DCLICK(self.tbIcon, self.ToggleShow) # left click wx.EVT_TASKBAR_LEFT_UP(self.tbIcon, self.ToggleShow) # double left click wx.EVT_TASKBAR_RIGHT_UP(self.tbIcon, self.ToggleShow) # single left click self.Bind(wx.EVT_ICONIZE, self.onMinimize) # binding for minimizing
def OnInit(self): self.tray_icon = TrayIcon() self.main_window = MainWindow(None, -1, "") self.SetTopWindow(self.main_window) self.main_window.Show() wx.EVT_TASKBAR_LEFT_UP(self, self.show_window) wx.EVT_TASKBAR_RIGHT_UP(self, self.show_popup_menu) self.popup_menu = wx.Menu() self.quit_menu_item = self.popup_menu.Append(-1, "Quit") self.Bind(wx.EVT_MENU, self.quit_now, self.quit_menu_item) return True
def __init__(self, parent, title): wx.Frame.__init__(self, parent, style=wx.FRAME_NO_TASKBAR) self.tbicon = BatteryTaskBarIcon(self) wx.EVT_TASKBAR_LEFT_UP(self.tbicon, self.OnTaskBarLeftClick)
def __init__(self): # SUPER # kwargs = { 'parent': None, 'title': diwavars.TRAY_TOOLTIP, 'size': diwavars.FRAME_SIZE, 'style': wx.FRAME_NO_TASKBAR } GUItemplate.__init__(self, **kwargs) # UI can not be shown yet. self.Hide() self.Freeze() NodeScreen.update_bitmaps() profiles = ChooseDiwaProfileDialog.ListDatabaseProfiles() if len(profiles): params = {'profiles': profiles} ret = show_modal_and_destroy(ChooseDiwaProfileDialog, None, params) if ret: # If non-zero return value, we should exit LOGGER.info('Application closed!') self.Destroy() wx.GetApp().ExitMainLoop() return # List for choices LOGGER.debug('WxPython version {0!s}'.format(wx.version())) self.list = EventList(self) self.splash_screen = MySplashScreen() self.splash_screen.Show() self.screen_selected = None self.ui_initialized = False self.diwa_state = state.State(parent=self) self.InitUICore() self.diwa_state.initialize() pub.sendMessage('update_screens', update=True) if self.diwa_state.config_was_created: self.OnPreferences(None) # UI can be shown now. self.Thaw() self.Show() # Perform initial testing before actual initialization. initial_test = state.initialization_test() if initial_test: self.splash_screen.Hide() self.splash_screen.Destroy() if initial_test: params = {'message': initial_test} show_modal_and_destroy(ErrorDialog, self, params) self.Destroy() wx.GetApp().ExitMainLoop() return diwavars.set_default_cursor(self.GetCursor()) diwavars.set_blank_cursor(wx.StockCursor(wx.CURSOR_BLANK)) self.overlay = BlackOverlay((0, 0), wx.DisplaySize(), self, '') self.Bind(wx.EVT_SET_FOCUS, self.OnFocus) try: self.trayicon = SysTray(self) self.trayicon.Bind(wx.EVT_MENU, self.OnExit, id=wx.ID_EXIT) self.trayicon.Bind(wx.EVT_MENU, self.OnPreferences, id=wx.ID_SETUP) self.trayicon.Bind(wx.EVT_MENU, self.OnSession, id=wx.ID_NEW) self.trayicon.Bind(wx.EVT_MENU, self.OnAboutBox, id=wx.ID_ABOUT) self.trayicon.Bind(wx.EVT_MENU, self.SelectProjectDialog, id=wx.ID_VIEW_LIST) self.Bind(wx.EVT_CLOSE, self.OnExit) self.trayicon.Bind(wx.EVT_MENU, self.OpenProjectDir, id=wx.ID_INDEX) self.icon = wx.Icon(diwavars.TRAY_ICON, wx.BITMAP_TYPE_PNG) self.trayicon.SetIcon(self.icon, diwavars.TRAY_TOOLTIP) wx.EVT_TASKBAR_LEFT_UP(self.trayicon, self.OnTaskBarActivate) self.Refresh() self.Show(True) self.splash_screen.Hide() self.splash_screen.Destroy() except Exception as excp: LOGGER.exception('load exception: {0!s}'.format(excp)) self.splash_screen.Hide() self.splash_screen.Destroy() self.Destroy()
def __init__(self, parent, id, title, paths): """ Setup Application Window @author: Derek Buranen @author: Aaron Gerber @author: Markus Roth """ self.ToggleValue = 0 self.paths = paths self.process = Gitso.Processes.Processes(paths) # Disable until 0.7 release self.enablePMP = False #if re.match('(?:open|free|net)bsd|linux',sys.platform): wsize = (350, 260) xval1 = 155 xval2 = 250 wx.Frame.__init__(self, parent, wx.ID_ANY, title, size=wsize, style=wx.DEFAULT_FRAME_STYLE & ~(wx.FRAME_SHAPED | wx.RESIZE_BORDER | wx.RESIZE_BOX | wx.MAXIMIZE_BOX)) self.Bind(wx.EVT_CLOSE, self.OnCloseWindow) self.Bind(wx.EVT_ICONIZE, self.OnIconizeWindow) icon = wx.Icon(os.path.join(self.paths['main'], 'gitso.ico'), wx.BITMAP_TYPE_ICO) if sys.platform == 'win32': self.SetBackgroundColour(wx.Colour(236, 233, 216)) self.SetIcon(icon) self.TrayIcon = GitsoTaskBarIcon(icon, self) wx.EVT_TASKBAR_LEFT_UP(self.TrayIcon, self.RestoreWindow) #Buttons self.connectButton = wx.Button(self, 10, _("Start"), wx.Point(xval1, 144)) self.connectButton.SetDefault() wx.EVT_BUTTON(self, 10, self.ConnectSupport) self.stopButton = wx.Button(self, wx.ID_STOP, "", wx.Point(xval2, 144)) self.stopButton.Enable(False) wx.EVT_BUTTON(self, wx.ID_STOP, self.KillPID) # Radio Boxes self.rb1 = wx.RadioButton(self, -1, _('Get Help'), (10, 15), style=wx.RB_GROUP) self.rb2 = wx.RadioButton(self, -1, _('Give Support'), (10, 80)) self.rb1.SetValue(True) self.Bind(wx.EVT_RADIOBUTTON, self.RadioToggle, id=self.rb1.GetId()) self.Bind(wx.EVT_RADIOBUTTON, self.RadioToggle, id=self.rb2.GetId()) # checkbox for natpmp if sys.platform == 'darwin' or re.match('(?:open|free|net)bsd|linux', sys.platform): if self.enablePMP: self.cb1 = wx.CheckBox(self, -1, _('Use NAT-PMP'), (130, 48)) self.cb1.Enable(False) # Checkbox for low color self.cb2 = wx.CheckBox(self, -1, _('Use low colors'), (40, 104)) self.cb2.Set3StateValue(False) self.cb2.SetValue(self.paths['low-colors'] ) # Use value of --low-colors from command line self.cb2.Enable(False) # the combobox Control self.sampleList = self.paths['list'] self.sampleList = self.getHosts( self.sampleList, os.path.join(self.paths['main'], 'hosts.txt')) self.sampleList = self.getHosts(self.sampleList, self.paths['preferences']) self.displayHostBox(self.sampleList, _("Enter/Select Support Address")) self.delete_entry = False # Menu menuBar = wx.MenuBar() fileMenu = wx.Menu() editMenu = wx.Menu() editMenu.Append(11, _("&Cut\tCtrl+X"), _("Cut IP Address")) editMenu.Append(12, _("&Copy\tCtrl+C"), _("Copy IP Address")) editMenu.Append(wx.ID_PASTE, _("&Paste\tCtrl+V"), _("Paste IP Address")) wx.EVT_MENU(self, 11, self.SetClipboard) wx.EVT_MENU(self, 12, self.SetClipboard) wx.EVT_MENU(self, wx.ID_PASTE, self.GetClipboard) fileMenu.Append(13, _("&Clear History"), _("Clear History")) if sys.platform == 'darwin': fileMenu.Append(wx.ID_ABOUT, _("&About"), _("About Gitso")) wx.EVT_MENU(self, wx.ID_ABOUT, self.ShowAbout) else: fileMenu.Append(wx.ID_EXIT, _("&Quit\tCtrl+Q"), _("Quit Gitso")) wx.EVT_MENU(self, wx.ID_EXIT, self.OnCloseWindow) helpMenu = wx.Menu() helpMenu.Append(wx.ID_ABOUT, _("&About"), _("About Gitso")) wx.EVT_MENU(self, wx.ID_ABOUT, self.ShowAbout) wx.EVT_MENU(self, 13, self.clearHistory) menuBar.Append(fileMenu, _("&File")) menuBar.Append(editMenu, _("&Edit")) if re.match('(?:open|free|net)bsd|linux', sys.platform) or sys.platform == 'win32': menuBar.Append(helpMenu, _("&Help")) self.SetMenuBar(menuBar) self.statusBar = self.CreateStatusBar() self.statusBar.SetStatusWidths([350]) self.setMessage(_("Idle"), False) self.SetDefaultItem(self.hostField) #self.hostField.SetFocus() self.SetThemeEnabled(True) self.Centre() self.Show(True) if self.paths['listen']: self.Iconize(True) self.rb2.Value = True self.RadioToggle(None) self.ConnectSupport(None) elif self.paths['connect'] != "": self.rb1.Value = True self.RadioToggle(None) self.hostField.Value = self.paths['connect'] self.ConnectSupport(None)
def CreateMenu(self): self.Bind(wx.EVT_TASKBAR_RIGHT_UP, self.ShowMenu) self.Bind(wx.EVT_MENU, self.parentApp.OpenBrowser, id=ID_OPEN_BROWSER) self.Bind(wx.EVT_MENU, self.parentApp.StartWeb, id=ID_START_WEB) self.Bind(wx.EVT_MENU, self.parentApp.StopWeb, id=ID_STOP_WEB) self.Bind(wx.EVT_MENU, self.parentApp.WebOnStart, id=ID_WEB_ON_START) self.Bind(wx.EVT_MENU, self.parentApp.BrowserOnWebStart, id=ID_BROWSER_ON_WEB_START) self.Bind(wx.EVT_MENU, self.parentApp.StartScan, id=ID_START_SCAN) self.Bind(wx.EVT_MENU, self.parentApp.StopScan, id=ID_STOP_SCAN) self.Bind(wx.EVT_MENU, self.parentApp.TriggerScan, id=ID_TRIGGER_SCAN) self.Bind(wx.EVT_MENU, self.parentApp.TriggeredOnStart, id=ID_SCAN_TRIGGERED) self.Bind(wx.EVT_MENU, self.parentApp.ScanOnStart, id=ID_SCAN_ON_START) self.Bind(wx.EVT_MENU, self.parentApp.NotLocate, id=ID_NOT_LOC) self.Bind(wx.EVT_MENU, self.parentApp.StartLoad, id=ID_START_LOAD) self.Bind(wx.EVT_MENU, self.parentApp.CleanLogs, id=ID_CLEAN_LOAD) self.Bind(wx.EVT_MENU, self.parentApp.OnExit, id=wx.ID_EXIT) wx.EVT_TASKBAR_LEFT_UP(self, self.parentApp.OpenBrowser) self.menu=wx.Menu() self.menu.Append(ID_MENU_SCAN_STATUS,"") self.menu.FindItemById(ID_MENU_SCAN_STATUS).Enable(False) self.menu.AppendSeparator() menuscan = wx.Menu() menuscan.Append(ID_START_SCAN, "&Start scan") menuscan.Append(ID_STOP_SCAN, "S&top scan") menuscan.AppendSeparator() menuscan.Append(ID_START_LOAD, "&Load scan from log") menuscan.AppendSeparator() menuscan.Append(ID_CLEAN_LOAD, "&Clean all logs") self.menu.AppendMenu(ID_MENU_SCAN, "Wifi &scan", menuscan) menuweb = wx.Menu() menuweb.Append(ID_MENU_WEB_STATUS,"") menuweb.FindItemById(ID_MENU_WEB_STATUS).Enable(False) menuweb.AppendSeparator() menuweb.Append(ID_START_WEB, "&Start web interface") menuweb.Append(ID_STOP_WEB, "S&top web interface") self.menu.AppendMenu(ID_MENU_WEB, "&Web interface", menuweb) self.menu.AppendSeparator() menuopt = wx.Menu() menuopt.Append(ID_SCAN_ON_START, 'Run &scan at start', 'Scan at start', kind=wx.ITEM_CHECK) menuopt.Check(ID_SCAN_ON_START, self.options['ScanOnStart']) menuopt.Append(ID_NOT_LOC, 'Don\'t &locate (offline mode)', 'Don\'t locate', kind=wx.ITEM_CHECK) menuopt.Check(ID_NOT_LOC, self.options['NotLocate']) menuopt.AppendSeparator() menuopt.Append(ID_SCAN_TRIGGERED, "Run scan as &root at start", 'Root scan at start', kind=wx.ITEM_CHECK) menuopt.Check(ID_SCAN_TRIGGERED, self.options['TriggeredOnStart']) menuopt.AppendSeparator() menuopt.Append(ID_WEB_ON_START, 'Run &web interface at start', 'Web interface at start', kind=wx.ITEM_CHECK) menuopt.Check(ID_WEB_ON_START, self.options['WebOnStart']) menuopt.Append(ID_BROWSER_ON_WEB_START, 'Run &browser at start', 'Browser at start', kind=wx.ITEM_CHECK) menuopt.Check(ID_BROWSER_ON_WEB_START, self.options['BrowserOnWebStart']) self.menu.AppendMenu(ID_MENU_OPT, "&Options", menuopt) self.menu.AppendSeparator() self.menu.Append(ID_TRIGGER_SCAN, "Scan as &root") self.menu.AppendSeparator() self.menu.Append(ID_OPEN_BROWSER, "Open &browser","This will open a new Browser") self.menu.AppendSeparator() self.menu.Append(wx.ID_EXIT, "&Quit")
def __init__(self, parent, uname, upass, dpool, epool): # begin wxGlade: MainPannel.__init__ self.version = 1.0 self.canlock = True self.listall = False self.last_copied_pass = None wx.Frame.__init__(self, parent, size=(1000, 1000), style=wx.TAB_TRAVERSAL | wx.DEFAULT_FRAME_STYLE | wx.WANTS_CHARS) self.DWorkerPool = dpool self.EWrokerPool = epool self.uname = uname self.upass = upass self.icon = wx.Icon( os.path.join(common.cur_file_dir(), "manpassc.ico"), wx.BITMAP_TYPE_ICO) self.SetIcon(self.icon) #self.chkupdate_thread=checkUpdate.ChkUpdateThread("http://192.168.1.1:8090/ver.txt",self.version,self) #username, password must be encoded into utf-8 string before they could be used by crypto functions self.lock_label = wx.HyperlinkCtrl(self, wx.ID_ANY, _("Unlock Me"), style=wx.HL_ALIGN_CENTRE) self.progress_bar = wx.Gauge(self, wx.ID_ANY) self.status_bar = wx.StatusBar(self, wx.ID_ANY) self.SetStatusBar(self.status_bar) defconflist = [ (_("Basic Options"), [ (("addr"), { "desc": _("Listening address"), "value": "127.0.0.1", "type": "string" }), (("port"), { "desc": _("Listening port"), "value": 9000, "type": "int" }), (("idle_timer"), { "desc": _("Idle lock timer(seconds)"), "value": 60, "type": "int" }), (("startup_minimize"), { "desc": _("Minimize the window upon startup"), "value": False, "type": "bool" }), (("close&lock"), { "desc": _("Lock the window upon close(windows only)"), "value": True, "type": "bool" }), ]), ] self.OptionDiag = myoptions.OptionDiag(self, "manpass.conf", defconflist, self.uname) self.confDict = None self.confDict = self.OptionDiag.toDict() if not common.checkTCPPort(self.confDict['addr'], self.confDict['port']): waitbox = wx.BusyInfo(_("Starting Manpass server, please wait...")) cmd = common.getManpassdExeName() exename = cmd cmd += " -username={uname} -pipepass=true -svrip={ip} -svrport={port}".format( uname=self.uname, ip=self.confDict['addr'], port=self.confDict['port']) args = shlex.split(cmd) if platform.system() == "Windows": startupinfo = subprocess.STARTUPINFO() startupinfo.dwFlags |= subprocess.STARTF_USESHOWWINDOW else: startupinfo = None try: self.svrp = subprocess.Popen(args, executable=exename, stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE, shell=False, startupinfo=startupinfo) except Exception as Err: del waitbox wx.MessageBox(unicode(Err), _("Error"), 0 | wx.ICON_ERROR, self) self.ExitMe() return def enqueue_output(out, queue): for line in iter(out.readline, b''): queue.put(line) out.close() errq = Queue.Queue() t2 = newUserDiag.EnQThread(self.svrp.stderr, errq) t2.daemon = True t2.start() self.svrp.stdin.write(self.upass + "\n") self.svrp.stdin.close() ferror = False ferror_msg = "" def check_output(errq): t0 = time.time() ferror = False while True: wx.GetApp().Yield() try: errline = errq.get_nowait() except Queue.Empty: if time.time() - t0 > 30.0: ferror = True ferror_msg = "Time out" break pass else: if errline.find("Server started") != -1: break if errline.find("Fatal Error") != -1: ferror = True ferror_msg = errline break if (time.time() - t0) > 30.0: ferror = True ferror_msg = "Time out" break t2.stop() if ferror: ## wx.MessageBox(_("Server failed to start!\n")+unicode(ferror_msg),_("Error"),0|wx.ICON_ERROR,self) return _("Server failed to start!\n") + unicode(ferror_msg) else: return True startresult = check_output(errq) if startresult != True: del waitbox wx.MessageBox(startresult, _("Error"), 0 | wx.ICON_ERROR, self) self.ExitMe() return del waitbox try: cadata = apiclient.loadCAFile(self.uname, self.upass, self.confDict['confDir']) except Exception as Err: wx.MessageBox( _("Authentication Failed!\n") + unicode(Err), _("Error"), 0 | wx.ICON_ERROR, self) self.ExitMe() return try: self.apiclient = apiclient.APIClient( self.confDict['addr'], self.confDict['port'], cadata, os.path.join(self.confDict["confDir"], "ee.cert"), os.path.join(self.confDict["confDir"], "ee.key"), self.upass, self.DWorkerPool, self.EWrokerPool) except Exception as Err: ## traceback.print_exc(Err) wx.MessageBox(_("Failed to connect to the server!"), _("Error"), 0 | wx.ICON_ERROR, self) self.ExitMe() return self.SetTitle("Manpass - " + self.uname.decode("utf-8")) if platform.system() == "Windows": self.taskicon = MyTaskbarIcon(self) self.taskicon.SetIcon(self.icon) wx.EVT_TASKBAR_LEFT_UP(self.taskicon, self.OnDClickTaskIcon) self.Bind(wx.EVT_CLOSE, self.HideMe) self.timer_lock = wx.Timer(self, wx.NewId()) self.timer_clear = wx.Timer(self, wx.NewId()) self.timer_statustxt = wx.Timer(self, wx.NewId()) self.timer_lock.Start(self.confDict['idle_timer'] * 1000, wx.TIMER_CONTINUOUS) self.text_ctrl_search_input = wx.SearchCtrl(self, wx.NewId(), "") self.list_ctrl_1 = PassListCtrl(self, self.text_ctrl_search_input) self.Bind(wx.EVT_TIMER, self.OnTimerLock, self.timer_lock) self.Bind(wx.EVT_TIMER, self.OnTimerClear, self.timer_clear) self.Bind(wx.EVT_TIMER, self.OnTimerStatusTxt, self.timer_statustxt) self.Bind(wx.EVT_TEXT, self.OnFilter, self.text_ctrl_search_input) self.text_ctrl_search_input.Bind(wx.EVT_SET_FOCUS, self.OnFilterAct) self.text_ctrl_search_input.Bind(wx.EVT_CHAR, self.OnChar) self.Bind(wx.EVT_CHAR, self.OnChar) self.list_ctrl_1.Bind(wx.EVT_CHAR, self.OnChar) self.lock_label.Bind(wx.EVT_CHAR, self.OnChar) ## self.text_ctrl_search_input.Bind(wx.EVT_SET_FOCUS,self.OnFilterAct) self.__set_properties() self.__do_layout() self.CentreOnScreen() self.SetSize((400, 400)) self.list_ctrl_1.reload() self.text_ctrl_search_input.SetFocus() self.text_ctrl_search_input.SetValue("") #self.Bind(wx.EVT_ICONIZE,self.HideMe) self.lock_label.Bind(wx.EVT_HYPERLINK, self.OnUnlock) #self.text_ctrl_search_input.Bind(wx.EVT_CHAR,self.resetTimer) self.list_ctrl_1.Bind(wx.dataview.EVT_DATAVIEW_SELECTION_CHANGED, self.resetTimer) self.list_ctrl_1.Bind(wx.dataview.EVT_DATAVIEW_ITEM_ACTIVATED, self.resetTimer) self.list_ctrl_1.Bind(wx.dataview.EVT_DATAVIEW_COLUMN_HEADER_CLICK, self.resetTimer) self.list_ctrl_1.Bind( wx.dataview.EVT_DATAVIEW_COLUMN_HEADER_RIGHT_CLICK, self.resetTimer) self.list_ctrl_1.Bind(wx.dataview.EVT_DATAVIEW_ITEM_CONTEXT_MENU, self.resetTimer) self.Bind(wx.EVT_ACTIVATE, self.resetTimer) self.Bind(common.EVT_MANPASS_FATALERR, self.OnFatal) self.Bind(common.EVT_MANPASS_PROGRESS, self.UpdateProgress) self.Bind(common.EVT_MANPASS_LOAD_DONE, self.LoadDone) self.Bind(wx.EVT_SET_FOCUS, self.OnFocus) #self.Bind(checkUpdate.EVT_CHK_UPDATE,self.CheckUpdateDone) if platform.system() == "Windows": import win32con self.RegisterHotKey(52445, win32con.MOD_CONTROL, ord("I")) self.Bind(wx.EVT_HOTKEY, self.OnDClickTaskIcon, id=52445) if self.confDict['startup_minimize']: self.HideMe(None) else: self.Show(True) self.Raise()