예제 #1
0
 def install(self):
     downloadUrl: str = None
     for tag in get(self.app.repoApiUrl).json():
         if tag['name'] == self.app.version:
             for asset in tag['assets']:
                 if '.exe' in asset['name']:
                     downloadUrl = asset['browser_download_url']
                     break
             break
     if not downloadUrl:
         wx.GenericMessageDialog(
             parent=self.app.root,
             message="Can't find the version specified",
             caption='Error',
             style=None,
         ).ShowModal()
         wx.CallAfter(self.app.root.Destroy)
         return
     request = get(downloadUrl, stream=True)  # download BEE
     # working variables
     zipdata = io.BytesIO()
     dl = 0
     total_length = int(request.headers.get('content-length'))
     total_length_mb: int(total_length / 1024 / 1024)
     wx.CallAfter(self.app.root.progBar.SetRange, total_length)
     # download!
     for data in request.iter_content(chunk_size=1024):
         dl += len(data)
         zipdata.write(data)
         done = int(100 * dl / total_length)
         print(f'total: {total_length}, dl: {dl}, done: {done}')
         wx.CallAfter(self.app.root.progBar.SetValue, done)
         wx.CallAfter(self.app.root.megaText.SetLabel,
                      f'Done: {done / 1024 / 1024 }/{total_length_mb}MB')
         wx.CallAfter(self.app.root.speedText.SetLabel,
                      f'Speed: {len(data)}mbs')
     wx.CallAfter(self.app.root.progBar.Pulse)
     # read the data as bytes and then create the zipfile object from it
     if py7zr.is_7zfile(zipdata):
         wx.GenericMessageDialog(
             parent=self.app.root,
             message="The downloaded file wasn't a 7z file.",
             caption='Error',
             style=None,
         ).ShowModal()
         wx.CallAfter(self.app.root.Destroy)
         return
     tempdir = tempfile.mkdtemp(prefix='bridge-inst')
     py7zr.unpack_7zarchive(zipdata, tempdir)
     shutil.move(tempdir, self.app.installPath)
예제 #2
0
def serial_warn():
    """Warning message dialog on invalid serial number input."""
    warning_message = "Invalid serial!"
    warning = wx.GenericMessageDialog(None, warning_message, "Warning!",
                                      wx.OK, wx.DefaultPosition)
    warning.ShowModal()
    warning.Destroy()
예제 #3
0
 def _dataloss_warn(self):
     warning_message = "Do you want to exit without saving data?"
     warning = wx.GenericMessageDialog(None, warning_message, "Warning!",
                                       wx.YES_NO, wx.DefaultPosition)
     result = warning.ShowModal()
     warning.Destroy()
     return result
예제 #4
0
 def _overwrite_warn(self):
     warning_message = "Do you want to overwrite previous calibration?"
     warning = wx.GenericMessageDialog(None, warning_message, "Warning!",
                                       wx.YES_NO, wx.DefaultPosition)
     result = warning.ShowModal()
     warning.Destroy()
     return result
예제 #5
0
def range_warn():
    """Warning message dialog on invalid angle range input."""
    warning_message = "Invalid angle range!"
    warning = wx.GenericMessageDialog(None, warning_message, "Warning!",
                                      wx.OK, wx.DefaultPosition)
    warning.ShowModal()
    warning.Destroy()
예제 #6
0
def zero_warn():
    """Warning message dialog if optical power meter is not zeroed."""
    warning_message = "Power meter not zeroed!"
    warning = wx.GenericMessageDialog(None, warning_message, "Warning!",
                                      wx.OK, wx.DefaultPosition)
    warning.ShowModal()
    warning.Destroy()
예제 #7
0
def step_warn():
    """Warning message dialog box if the step size is 0."""
    warning_message = "Step size cannot be 0!"
    warning = wx.GenericMessageDialog(None, warning_message, "Warning!",
                                      wx.OK, wx.DefaultPosition)
    warning.ShowModal()
    warning.Destroy()
예제 #8
0
def notImplementedYet():
    """
	shows a dialog that says that this feature its not implemented
	"""
    wx.GenericMessageDialog(parent=wx.GetActiveWindow(),
                            message=loc('popup.notimplemented.text'),
                            caption=loc('popup.notimplemented.title'),
                            style=wx.ICON_INFORMATION | wx.STAY_ON_TOP
                            | wx.OK).ShowModal()
예제 #9
0
	def installBee(self, evt: wx.CommandEvent):
		"""
		called when the install bee button is pressed
		:param evt: placeholder
		"""
		# check if is installed
		if beeManager.beeIsPresent() and beeManager.packagesAreInstalled():
			wx.GenericMessageDialog(
				self,
				message='BEE2.4 has been found on default install path!\nNo need to install again :D',
				caption='Notice!',
				style=wx.OK | wx.STAY_ON_TOP | wx.CENTRE
			).ShowModal()
			config.save(f'{utilities.defBeePath}/BEE2/', 'beePath')
		elif beeManager.beeIsPresent() and not beeManager.packagesAreInstalled():
			wx.GenericMessageDialog(
				self,
				message='BEE2.4 has been found on default install path, but not the packages.\nThe packages will be downloaded',
				caption='Notice!',
				style=wx.OK | wx.STAY_ON_TOP | wx.CENTRE
			).ShowModal()
			config.save( f'{utilities.defBeePath}/BEE2/', 'beePath' )
			beeManager.installDefPackages()
		else:  # not installed
			dial = wx.DirDialog(
				self,
				message='Select where to install BEE (a BEE2 folder will be created)',
				# this gets the APPDATA path, go from Roaming to Local and then return the Programs folder full path
				defaultPath=utilities.defBeePath
			)
			# show the dialog and wait
			if dial.ShowModal() == wx.ID_CANCEL:
				return  # don't want to install anymore
			path = Path(dial.GetPath() + '/BEE2/')
			# create the missing folders
			if not path.exists():
				path.mkdir()
			# save the BEE path
			config.save(str(path.resolve()).replace(r'\\', '/'), 'beePath')
			# install BEE without messages
			beeManager.checkAndInstallUpdate(True)
		self.portalMenu.Enable(9, True)
		self.portalMenu.Enable(10, False)
		self.fileMenu.Enable(1, True)
예제 #10
0
 def test_gmsgdlg3(self):
     dlg = wx.GenericMessageDialog(None, 'Message', 'Caption')
     dlg.SetExtendedMessage('extended')
     dlg.SetMessage('message')
     dlg.SetOKCancelLabels('okidoky', 'bye-bye')
     self.assertEqual(dlg.GetExtendedMessage(), 'extended')
     self.assertEqual(dlg.GetMessage(), 'message')
     self.assertEqual(dlg.GetOKLabel(), 'okidoky')
     self.assertEqual(dlg.GetCancelLabel(), 'bye-bye')
     dlg.Destroy()
예제 #11
0
 def _yes_no(self, question):
     frame = wx.Frame(wx.GetApp().TopWindow)
     frame.Center()
     dlg = wx.GenericMessageDialog(frame,
                                   question,
                                   caption="Handprint!",
                                   style=wx.YES_NO | wx.ICON_QUESTION)
     clicked = dlg.ShowModal()
     dlg.Destroy()
     frame.Destroy()
     self._response = (clicked == wx.ID_YES)
     self._queue.put(True)
예제 #12
0
 def _note(self, text):
     '''Displays a simple notice with a single OK button.'''
     frame = wx.Frame(wx.GetApp().TopWindow)
     frame.Center()
     dlg = wx.GenericMessageDialog(frame,
                                   text,
                                   caption="Handprint!",
                                   style=wx.OK | wx.ICON_INFORMATION)
     clicked = dlg.ShowModal()
     dlg.Destroy()
     frame.Destroy()
     self._queue.put(True)
예제 #13
0
 def _ask_yes_no(self, question):
     '''Display a yes/no dialog.'''
     frame = self._current_frame()
     dlg = wx.GenericMessageDialog(frame,
                                   question,
                                   caption="Check It!",
                                   style=wx.YES_NO | wx.ICON_QUESTION)
     clicked = dlg.ShowModal()
     dlg.Destroy()
     frame.Destroy()
     self._response = (clicked == wx.ID_YES)
     self._queue.put(True)
예제 #14
0
 def rundriver(self, event):
     csv = self.csv_file.GetValue()
     if csv == '':
         ermessages = wx.GenericMessageDialog(
             None, "配置文件不能为空", "错误提示", wx.YES_DEFAULT | wx.ICON_QUESTION)
         if ermessages.ShowModal() == wx.ID_YES:
             ermessages.Destroy()
         return 0
     else:
         #执行驱动程序
         runfileobj = driver_frame()
         runfileobj.runfile(self.configpath)
예제 #15
0
def guess_word(evt):
    global hidden_word
    global TRIES
    global ATTEMPTS_NUM
    letter = evt.GetEventObject().Label
    indices = [pos for pos, char in enumerate(picked_word) if char == letter]

    if len(indices) == 0:
        evt.GetEventObject().SetValue(False)
        TRIES = TRIES - 1
        ATTEMPTS_NUM.SetLabel("Attempts left: " + str(TRIES))
        if TRIES == 0:
            continueGame = wx.GenericMessageDialog(
                main_frame, "You dont have more tries! Start again?",
                "Game Over", wx.YES_NO).ShowModal()
            if continueGame == wx.ID_NO:
                exit()
            else:
                ATTEMPTS_NUM.SetLabel("Attempts left: 6")
                start_game()
                return
    else:
        evt.GetEventObject().Disable()
        disabled_btns.append(evt.GetEventObject())
    w = list(hidden_word)
    for i in indices:
        w[i] = letter

    hidden_word = "".join(w)
    display_word(hidden_word)
    if hidden_word == picked_word:
        start_over = wx.GenericMessageDialog(
            main_frame, "Congratulations, you win! Start over?", "Win",
            wx.YES_NO).ShowModal()
        if start_over == wx.ID_NO:
            exit()
        else:
            ATTEMPTS_NUM.SetLabel("Attempts left: 6")
            start_game()
예제 #16
0
 def _show_note(self, text, *args, severity='info'):
     '''Displays a simple notice with a single OK button.'''
     if __debug__: log('showing note dialog')
     frame = self._current_frame()
     icon = wx.ICON_WARNING if severity == 'warn' else wx.ICON_INFORMATION
     dlg = wx.GenericMessageDialog(frame,
                                   text.format(*args),
                                   caption="Check It!",
                                   style=wx.OK | icon)
     clicked = dlg.ShowModal()
     dlg.Destroy()
     frame.Destroy()
     self._queue.put(True)
    def openprifile(self, event):

        dlg1 = wx.FileDialog(self,
                             defaultFile="file_privkey.pem",
                             message=u"选择要读取得公钥文件名:",
                             defaultDir=fileDir,
                             wildcard=wildcard2,
                             style=wx.FD_OPEN | wx.FD_MULTIPLE)
        if dlg1.ShowModal() == wx.ID_OK:
            self.prifilename = dlg1.GetPath()

            #self.prifilename = 'file_privkey.pem'
            if os.path.exists(self.prifilename) == True:
                fo = open(self.prifilename)
                self.prikeyfiledata = fo.read()
                fo.close()
                self.spam = []
                #count = 0
                self.pubkeylist = list(self.prikeyfiledata)
                #for i in self.pubkeylist:
                for num, i in enumerate(self.pubkeylist):
                    if num > 4:
                        self.spam.append(i)
                        #print(num)
                        if num % 77 == 1:
                            self.spam.append('\n')
                self.spam.append('\n')
                self.prikeyfiledata = ''.join(self.spam)

                #GenericMessageDialog (parent , message , caption  ,style  , pos )
                dlg = wx.GenericMessageDialog(self,
                                              "",
                                              caption="私钥文件数据",
                                              style=wx.OK
                                              | wx.ICON_INFORMATION)
                dlg.SetMessage("Private Key: \n%s" % (self.prikeyfiledata))
                dlg.ShowModal()
                print('私钥文件读取成功!')
                self.tc3.AppendText('\n私钥文件读取成功!')
                dlg.Destroy()  # finally destroy it when finished.
            else:
                print('私钥文件不存在!')
                self.tc3.AppendText('\n私钥文件不存在!')
                dlg = wx.MessageDialog(self, u"私钥文件不存在!\n请重新生成私钥文件!", u"文件状态",
                                       wx.OK | wx.ICON_ERROR)
                dlg.ShowModal()  # Shows it
                dlg.Destroy()  # finally destroy it when finished.
예제 #18
0
async def appDateCheck():
	"""
	Checks app updates
	"""
	if not utilities.isonline():  # if we're not online return false
		return False
	data = utilities.checkUpdate( 'https://github.com/ENDERZOMBI102/BEE-manipulator', config.version )
	if data.url is None:
		if getattr(root, 'instance', False):
			wx.MessageBox(
				parent=root.instance,
				message='No updates found!',
				caption='BEE Manipulator'
			)
		return
	data = wx.GenericMessageDialog(
		parent=getattr(root, 'instance', None),
		message=f'An update for the app is available, do you want to update now?\n\n{data.description}',
		caption=f'Update Available - new version: {data.version}',
		style=wx.YES_NO | wx.ICON_WARNING | wx.STAY_ON_TOP | wx.NO_DEFAULT
	)
	if data.ShowModal() == wx.ID_NO:
		return  # user don't want to update
	utilities.update()
예제 #19
0
 def _invalid_lcvr_warn(self):
     warning_message = "Invalid LCVR Controller Address/Connection!"
     warning = wx.GenericMessageDialog(None, warning_message, "Warning!",
                                       wx.OK, wx.DefaultPosition)
     warning.ShowModal()
     warning.Destroy()
예제 #20
0
 def test_gmsgdlg2(self):
     dlg = wx.GenericMessageDialog(self.frame, 'Message', 'Caption')
     dlg.Destroy()
예제 #21
0
    def __init__(self, parent):
        self.thread_pool_executor = ThreadPoolExecutor(max_workers=1)
        self._zk_client = None
        # self._zk_client = KazooClient(hosts='10.128.62.34:2181,10.128.62.34:2182,10.128.62.34:2183')

        wx.Frame.__init__(self, parent, id=wx.ID_ANY, title=wx.EmptyString, pos=wx.DefaultPosition, size=wx.Size(1029, 722), style=wx.DEFAULT_FRAME_STYLE | wx.TAB_TRAVERSAL)
        self.SetSizeHintsSz(wx.DefaultSize, wx.DefaultSize)
        self.messageDialog = wx.GenericMessageDialog(self, wx.EmptyString)
        self.messageDialog.SetOKLabel("OK")
        bSizer4 = wx.BoxSizer(wx.VERTICAL)

        self.m_splitter2 = wx.SplitterWindow(self, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.SP_3D)
        self.m_splitter2.Bind(wx.EVT_IDLE, self.m_splitter2OnIdle)

        self.m_panel3 = wx.Panel(self.m_splitter2, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.TAB_TRAVERSAL)
        self.m_panel3.SetBackgroundColour(wx.SystemSettings.GetColour(wx.SYS_COLOUR_WINDOW))

        bSizer12 = wx.BoxSizer(wx.VERTICAL)

        self.m_splitter9 = wx.SplitterWindow(self.m_panel3, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.SP_3D)
        self.m_splitter9.Bind(wx.EVT_IDLE, self.m_splitter9OnIdle)

        self.m_splitter9.SetBackgroundColour(wx.SystemSettings.GetColour(wx.SYS_COLOUR_WINDOW))

        self.m_panel7 = wx.Panel(self.m_splitter9, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.TAB_TRAVERSAL)
        self.m_panel7.SetBackgroundColour(wx.SystemSettings.GetColour(wx.SYS_COLOUR_WINDOW))

        bSizer17 = wx.BoxSizer(wx.HORIZONTAL)

        self.m_textCtrl8 = wx.TextCtrl(self.m_panel7, wx.ID_ANY, wx.EmptyString, wx.DefaultPosition, wx.Size(200, -1), 0)
        bSizer17.Add(self.m_textCtrl8, 1, wx.ALIGN_CENTER_VERTICAL | wx.ALL, 5)

        self.m_button3 = wx.Button(self.m_panel7, wx.ID_ANY, u"search", wx.DefaultPosition, wx.DefaultSize, 0)
        self.m_button3.Bind(wx.EVT_BUTTON, self.search)
        bSizer17.Add(self.m_button3, 0, wx.ALIGN_CENTER_VERTICAL | wx.ALL, 5)

        self.m_panel7.SetSizer(bSizer17)
        self.m_panel7.Layout()
        bSizer17.Fit(self.m_panel7)
        self.m_panel8 = wx.Panel(self.m_splitter9, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.TAB_TRAVERSAL)
        self.m_panel8.SetBackgroundColour(wx.SystemSettings.GetColour(wx.SYS_COLOUR_WINDOW))

        bSizer20 = self.bSizer20 = wx.BoxSizer(wx.VERTICAL)

        self.loading_animation = wx.adv.Animation()
        self.loading_animation.LoadFile(resource_path("loading.gif"))
        self.animation_ctrl = wx.adv.AnimationCtrl(self.m_panel8, wx.ID_ANY, anim=wx.adv.NullAnimation, size=(20, 20), pos=wx.DefaultPosition)
        self.bSizer20.Add(self.animation_ctrl, 0, wx.ALL | wx.ALIGN_CENTER_VERTICAL | wx.ALIGN_CENTER_HORIZONTAL, 5)

        self.m_treeCtrl7 = wx.TreeCtrl(self.m_panel8, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, style=wx.TR_DEFAULT_STYLE)
        bSizer20.Add(self.m_treeCtrl7, 1, wx.ALL | wx.EXPAND, 5)

        self.root_node = self.m_treeCtrl7.AddRoot("/", 0)

        imglist = wx.ImageList(16, 16, True, 2)
        imglist.Add(wx.ArtProvider.GetBitmap(wx.ART_FOLDER, size=wx.Size(16, 16)))
        imglist.Add(wx.ArtProvider.GetBitmap(wx.ART_NORMAL_FILE, size=wx.Size(16, 16)))

        self.m_treeCtrl7.AssignImageList(imglist)

        self.m_treeCtrl7.Bind(wx.EVT_TREE_ITEM_MENU, self.TreeCtlOnContextMenu)
        self.m_treeCtrl7.Bind(wx.EVT_TREE_SEL_CHANGING, self.load_data)

        self.m_menu21 = wx.Menu()
        self.m_menu21_m_menuItem1 = wx.MenuItem(self.m_menu21, wx.ID_ANY, u"copy path", wx.EmptyString, wx.ITEM_NORMAL)
        self.m_menu21_m_menuItem1.handler = self.copy_path
        self.m_menu21.Append(self.m_menu21_m_menuItem1)

        self.m_menu21_m_menuItem2 = wx.MenuItem(self.m_menu21, wx.ID_ANY, u"copy name", wx.EmptyString, wx.ITEM_NORMAL)
        self.m_menu21_m_menuItem2.handler = self.copy_name
        self.m_menu21.Append(self.m_menu21_m_menuItem2)

        self.m_menu21_m_menuItem3 = wx.MenuItem(self.m_menu21, wx.ID_ANY, u"delete node", wx.EmptyString, wx.ITEM_NORMAL)
        self.m_menu21_m_menuItem3.handler = self.delete_node
        self.m_menu21.Append(self.m_menu21_m_menuItem3)

        self.m_menu21_m_menuItem4 = wx.MenuItem(self.m_menu21, wx.ID_ANY, u"refresh", wx.EmptyString, wx.ITEM_NORMAL)
        self.m_menu21_m_menuItem4.handler = self.refresh_node
        self.m_menu21.Append(self.m_menu21_m_menuItem4)

        self.m_menu22 = wx.Menu()
        self.m_menu22_m_menuItem1 = wx.MenuItem(self.m_menu22, wx.ID_ANY, u"copy value", wx.EmptyString, wx.ITEM_NORMAL)
        self.m_menu22.Append(self.m_menu22_m_menuItem1)
        # self.m_menu22_m_menuItem1.handler = self.copy_value

        self.m_panel8.SetSizer(bSizer20)
        self.m_panel8.Layout()
        bSizer20.Fit(self.m_panel8)
        self.m_splitter9.SplitHorizontally(self.m_panel7, self.m_panel8, 40)
        bSizer12.Add(self.m_splitter9, 1, wx.EXPAND, 5)

        self.m_panel3.SetSizer(bSizer12)
        self.m_panel3.Layout()
        bSizer12.Fit(self.m_panel3)
        self.m_panel4 = wx.Panel(self.m_splitter2, wx.ID_ANY, wx.DefaultPosition, wx.Size(200, -1), wx.NO_BORDER)
        bSizer19 = wx.BoxSizer(wx.VERTICAL)

        self.m_notebook1 = wx.Notebook(self.m_panel4, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, 0)
        self.m_panel11 = wx.Panel(self.m_notebook1, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.TAB_TRAVERSAL)
        bSizer21 = wx.BoxSizer(wx.VERTICAL)

        self.m_button5 = wx.Button(self.m_panel11, wx.ID_ANY, u"save", wx.DefaultPosition, wx.DefaultSize, 0)
        bSizer21.Add(self.m_button5, 0, wx.ALL, 5)

        self.m_textCtrl10 = wx.TextCtrl(self.m_panel11, wx.ID_ANY, wx.EmptyString, wx.DefaultPosition, wx.DefaultSize, wx.TE_MULTILINE | wx.TE_WORDWRAP)
        self.m_textCtrl10.SetBackgroundColour(wx.SystemSettings.GetColour(wx.SYS_COLOUR_WINDOW))

        bSizer21.Add(self.m_textCtrl10, 1, wx.ALL | wx.EXPAND, 5)

        self.m_panel11.SetSizer(bSizer21)
        self.m_panel11.Layout()
        bSizer21.Fit(self.m_panel11)
        self.m_notebook1.AddPage(self.m_panel11, u"Node data", True)
        self.m_panel12 = wx.Panel(self.m_notebook1, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.TAB_TRAVERSAL)
        bSizer8 = wx.BoxSizer(wx.VERTICAL)

        self.m_dataViewListCtrl1 = wx.dataview.DataViewListCtrl(self.m_panel12, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, style=wx.dataview.DV_HORIZ_RULES | wx.dataview.DV_VERT_RULES)
        self.m_dataViewListColumn1 = self.m_dataViewListCtrl1.AppendTextColumn(u"Name", width=350)
        self.m_dataViewListColumn2 = self.m_dataViewListCtrl1.AppendTextColumn(u"Value")

        self.m_dataViewListCtrl1.Bind(wx.dataview.EVT_DATAVIEW_ITEM_CONTEXT_MENU, self.copy_value)

        bSizer8.Add(self.m_dataViewListCtrl1, 1, wx.ALL | wx.EXPAND, 5)
        # self.m_propertyGrid1 = pg.PropertyGrid(self.m_panel12, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.propgrid.PG_DEFAULT_STYLE | wx.propgrid.PG_SPLITTER_AUTO_CENTER)
        self.m_panel12.SetSizer(bSizer8)
        self.m_panel12.Layout()
        bSizer8.Fit(self.m_panel12)
        self.m_notebook1.AddPage(self.m_panel12, u"Node Metadata", False)
        self.m_panel13 = wx.Panel(self.m_notebook1, wx.ID_ANY, wx.DefaultPosition, wx.DefaultSize, wx.TAB_TRAVERSAL)
        self.m_notebook1.AddPage(self.m_panel13, u"Node Acl", False)

        bSizer19.Add(self.m_notebook1, 1, wx.EXPAND | wx.ALL, 5)

        self.m_panel4.SetSizer(bSizer19)
        self.m_panel4.Layout()
        self.m_splitter2.SplitVertically(self.m_panel3, self.m_panel4, 300)
        bSizer4.Add(self.m_splitter2, 1, wx.EXPAND, 5)

        self.SetSizer(bSizer4)
        self.Layout()
        self.m_menubar1 = wx.MenuBar(0)
        self.connect_btn = wx.Menu()
        self.m_menubar1.Append(self.connect_btn, u"Connect")
        self.refresh_btn = wx.Menu()
        self.m_menubar1.Append(self.refresh_btn, u"Refresh")
        self.connect_btn.Bind(wx.EVT_MENU_OPEN, self.open_dialog)
        self.refresh_btn.Bind(wx.EVT_MENU_OPEN, self.load)

        self.SetMenuBar(self.m_menubar1)

        self.Centre(wx.BOTH)
예제 #22
0
	def pressed(self, evt: wx.CommandEvent):
		wx.GenericMessageDialog(
			parent=wx.GetTopLevelWindows()[0],
			caption='Pressed!',
			message='The example item was pressed!'
		).ShowModal()
예제 #23
0
 def about(self, evt: wx.CommandEvent) -> None:
     wx.GenericMessageDialog(
         parent=self,
         message=
         'Chat "protocol" by ENDERZOMBI102\nApp by ENDERZOMBI102\nUsed frameworks:\n - wxPython\n - socket',
         caption='About Simple Chat Client').ShowModal()
예제 #24
0
    def onKeyPress(self, event):
        keycode = event.GetKeyCode()
        if keycode == wx.WXK_SPACE:
            if self.GetSelectedItemCount() > 1:
                selected = utils.get_selected_items(self)
                focused = utils.get_focused_items(self)
                check = (
                    not self.IsItemChecked(selected[0]) if (not selected[0] in focused) else self.IsItemChecked(selected[0])
                )
                for index in selected:
                    #self.Focus(index)
                    if not index in focused:
                        self.CheckItem(index, check)
                for index in focused:
                    if not index in selected:
                        self.CheckItem(index, not check)
                event.Skip()
            elif self.GetSelectedItemCount() == 1:
                # Select next item
                row_id = self.GetFirstSelected()
                self.CheckItem(row_id, self.IsItemChecked(row_id))
                self.Select(row_id, on=False)
                self.Select(row_id + 1, on=True)
                self.Focus(row_id + 1)
                self.EnsureVisible(row_id + 1)
        elif keycode == wx.WXK_F2:
            if self.GetSelectedItemCount() == 1:
                index = self.GetFirstSelected()
                self.EditLabel(index)
            event.Skip()
        elif keycode == wx.WXK_CONTROL_A:
            self.Freeze()
            item = -1
            while 1:
                item = self.GetNextItem(item)
                if item == -1:
                    break
                self.SetItemState(item, wx.LIST_STATE_SELECTED, wx.LIST_STATE_SELECTED)
            self.Thaw()
            event.Skip()
        elif keycode == wx.WXK_DELETE:
            if event.GetModifiers() == wx.MOD_SHIFT:
                self.DeleteSelectionCb(None)
            else:
                selected = utils.get_selected_items(self)

                selected.reverse()  # Delete all the items, starting with the last item
                self.Freeze()
                for row_id in selected:
                    pos = self.GetItemData(row_id)  # 0-based unsorted index
                    self.DeleteItem(row_id)
                    del self.listdata[pos]
                    key = self.listdatanameinv[pos]
                    del self.listdatanameinv[pos]
                    del self.listdataname[key]
                self.Thaw()
            event.Skip()
        elif keycode == wx.WXK_CONTROL_V:
            files = utils.ClipBoardFiles()
            if files:
                dlg = wx.GenericMessageDialog(
                    self.GetParent().GetParent(),
                    "Add the files to source or choice list?",
                    "Paste question",
                    wx.YES_NO | wx.ICON_QUESTION,
                )
                dlg.SetYesNoLabels("Sources", "Choices")
                Qsources = dlg.ShowModal() == wx.ID_YES
                dlg.Destroy()
                if Qsources:
                    self.GetParent().GetParent().GetParent().AddSourcesFromFiles(files)
                else:
                    self.GetParent().GetParent().GetParent().AddChoicesFromFiles(files)
            event.Skip()
        elif keycode == wx.WXK_CONTROL_P:
            if self.GetSelectedItemCount() == 1:
                row_id = self.GetFirstSelected()
                pos_column_match = 0
                for i in self.GetColumnsOrder() if self.HasColumnOrderSupport() else range(0, len(config.default_columns)):
                    if i == 2:
                        break
                    pos_column_match += self.GetColumnWidth(i)
                rect = self.GetItemRect(row_id)
                position = self.ClientToScreen(rect.GetPosition())
                dia = PickCandidate(self, row_id, wx.Point(position.x + pos_column_match, position.y), selectNextOnClose=True)
                dia.Show()
                dia.text.SetFocus()
        elif keycode == wx.WXK_CONTROL_R:
            self.NoMatchSelectionCb(None)
            if self.GetSelectedItemCount() == 1:
                # Select next item
                row_id = self.GetFirstSelected()
                self.Select(row_id, on=False)
                self.Select(row_id + 1, on=True)
                self.Focus(row_id + 1)
                self.EnsureVisible(row_id + 1)
            event.Skip()
        elif keycode == wx.WXK_CONTROL_B:
            self.ReMatchSelectionCb(None)
            if self.GetSelectedItemCount() == 1:
                # Select next item
                row_id = self.GetFirstSelected()
                self.Select(row_id, on=False)
                self.Select(row_id + 1, on=True)
                self.Focus(row_id + 1)
                self.EnsureVisible(row_id + 1)
            event.Skip()
        elif keycode == wx.WXK_RETURN:
            selected = utils.get_selected_items(self)
            for row_id in selected:
                pos = self.GetItemData(row_id)  # 0-based unsorted index
                data = self.listdata[pos]
                filename_path = data[config.D_FILENAME]
                utils.open_file(str(filename_path[0]))
            event.Skip()
        elif keycode:
            event.Skip()
예제 #25
0
 def test_gmsgdlg2(self):
     dlg = wx.GenericMessageDialog(self.frame, 'Message', 'Caption')
     wx.CallLater(250, dlg.EndModal, wx.ID_OK)
     dlg.ShowModal()
     dlg.Destroy()
예제 #26
0
 def test_gmsgdlg1(self):
     dlg = wx.GenericMessageDialog(None, 'Message', 'Caption')
     dlg.Destroy()
예제 #27
0
 def error_callback(self, msg):
     dialog = wx.GenericMessageDialog(self.gui,
                                      message=msg,
                                      caption='Sound loading error',
                                      style=wx.OK | wx.ICON_ERROR)
     wx.CallAfter(dialog.ShowModal)
예제 #28
0
            select_msg = "\n".join(os.listdir("./pics"))

            dlg = wx.TextEntryDialog(None,
                                     select_msg,
                                     style=wx.OK | wx.CANCEL | wx.STAY_ON_TOP,
                                     pos=wx.Point(500, 500))
            dlg.ShowModal()

            select = int(dlg.GetValue())

            keyword = dlg.GetValue()
            img_path = os.listdir("./pics")[select - 1]
            img, thresh, conts = process_img("./pics/" + img_path)
            time.sleep(.5)
            msg = wx.GenericMessageDialog(None,
                                          "Processed!",
                                          style=wx.STAY_ON_TOP)
            msg.ShowModal()
            msg.Destroy()

        # if(keyboard.is_pressed('l')):
        #     print(os.listdir("./pics"))
        #     img_path = os.listdir("./pics")[0]
        #     msg = wx.GenericMessageDialog(None, "Selected!", style = wx.STAY_ON_TOP)
        #     msg.ShowModal()
        #     msg.Destroy()
        #     time.sleep(.5)

        if (keyboard.is_pressed('p')):
            print("processing...")
            dlg = wx.TextEntryDialog(None,