def extras(menuItems, watcher): from System.Windows.Forms import MenuItem, MessageBox, FolderBrowserDialog config = watcher.config if False: mItem = MenuItem() mItem.Text = "Test" menuItems.Add(mItem) def mclick(s, e): config.settings["watcher"]["watchDirs"]["/temp"] = {} print config.settings #config.save() mItem.Click += mclick if True: def editConfig(sender, eArgs): configFile = watcher.configFile.replace("/", os.sep) try: if hasattr(os, "system"): os.system(r'"c:\Program Files\Windows NT\Accessories\wordpad.exe" %s' % configFile) elif hasattr(os, "startfile"): os.startfile("gedit %s" % configFile) except Exception, e: print "Failed to start edittor - %s" % str(e) mItem2 = MenuItem() menuItems.Add(mItem2) mItem2.Text = "Edit config file" mItem2.Click += editConfig
def icon(self): """Creating icon in system tray""" AddReference('System.ComponentModel') AddReference('System.Windows.Forms') AddReference('System.Drawing') from System.ComponentModel import Container from System.Windows.Forms import NotifyIcon, MenuItem, ContextMenu from System.Drawing import Icon self.components = Container() context_menu = ContextMenu() menu_item = MenuItem('Show') menu_item.Click += self.open_from_tray context_menu.MenuItems.Add(menu_item) menu_item = MenuItem('Quit') menu_item.Click += self.quit context_menu.MenuItems.Add(menu_item) notifyIcon = NotifyIcon(self.components) notifyIcon.Icon = Icon(ico_path) notifyIcon.Text = title notifyIcon.Visible = True notifyIcon.ContextMenu = context_menu notifyIcon.DoubleClick += self.open_from_tray return notifyIcon
def __build_advancedtab(self): ''' builds and returns the "Advanced" Tab for the TabControl ''' tabpage = TabPage() tabpage.Text = i18n.get("ConfigFormAdvancedTab") # 1. --- a description label for this tabpage label = Label() label.UseMnemonic = False label.AutoSize = True label.Location = Point(14, 25) label.Size = Size(299, 17) label.Text = i18n.get("ConfigFormAdvancedText") # 2. --- build the update checklist (contains all the 'data' checkboxes) tbox = RichTextBox() tbox.Multiline = True tbox.MaxLength = 65536 tbox.WordWrap = True tbox.Location = Point(15, 50) tbox.Size = Size(355, 200) menu = ContextMenu() items = menu.MenuItems items.Add(MenuItem(i18n.get("TextCut"), lambda s, ea: tbox.Cut())) items.Add(MenuItem(i18n.get("TextCopy"), lambda s, ea: tbox.Copy())) items.Add(MenuItem(i18n.get("TextPaste"), lambda s, ea: tbox.Paste())) tbox.ContextMenu = menu self.__advanced_tbox = tbox # 3. --- add 'em all to the tabpage tabpage.Controls.Add(label) tabpage.Controls.Add(self.__advanced_tbox) return tabpage
def cxt(wd): mItem = MenuItem() mItem.Text = "Stop watching: %s" % wd.path def click(s, e): if mItem.Text.startswith("Stop"): watcher.controller.stopWatching(wd) mItem.Text = "Start watching: %s" % wd.path else: watcher.controller.startWatching(wd) mItem.Text = "Stop watching: %s" % wd.path mItem.Click += click menuItems.Add(mItem)
def __build_comicvinetab(self): ''' builds and returns the "ComicVine" Tab for the TabControl ''' tabpage = TabPage() tabpage.Text = i18n.get("ConfigFormComicVineTab") tabpage.Name = "comicvine" # 1. --- a description label for this tabpage label = Label() label.UseMnemonic = False label.AutoSize = False label.Location = Point(34, 80) label.Size = Size(315, 54) label.Text = i18n.get("ConfigFormComicVineText") # 2. --- the API key text box fired_update_gui = self.__fired_update_gui class ApiKeyTextBox(TextBox): def OnTextChanged(self, args): fired_update_gui() self.__api_key_tbox = ApiKeyTextBox() tbox = self.__api_key_tbox tbox.Location = Point(34, 135) tbox.Size = Size(315, 1) menu = ContextMenu() items = menu.MenuItems items.Add(MenuItem(i18n.get("TextCut"), lambda s, ea: tbox.Cut())) items.Add(MenuItem(i18n.get("TextCopy"), lambda s, ea: tbox.Copy())) items.Add(MenuItem(i18n.get("TextPaste"), lambda s, ea: tbox.Paste())) tbox.ContextMenu = menu # 3. --- add a clickable link to send the user to ComicVine linklabel = LinkLabel() linklabel.UseMnemonic = False linklabel.AutoSize = False linklabel.Location = Point(34, 170) linklabel.Size = Size(315, 34) linklabel.Text = i18n.get("ConfigFormComicVineClickHere") linklabel.LinkClicked += self.__fired_linkclicked # 4. --- add 'em all to this tabpage tabpage.Controls.Add(label) tabpage.Controls.Add(tbox) tabpage.Controls.Add(linklabel) return tabpage
def notify(watcher): # watcher.controller.watchDirectories print "notify" import clr clr.AddReference("System.Windows.Forms") clr.AddReference("System.Drawing") from System.Windows.Forms import NotifyIcon, Application, MenuItem, ContextMenu from System.Drawing import Icon notify = NotifyIcon() notify.Text = "FileWatcher" try: notify.Icon = Icon("watcher.ico") except: notify.Icon = Icon("watcher2.ico") notify.Visible = True notify.BalloonTipTitle = "FileWatcher" notify.BalloonTipText = "serving on http://%s:%s" % (watcher.host, watcher.port) #for wd in watcher.controller.watchDirectories: # notify.BalloonTipText += "\nwatching: %s" % wd def click(sender, eArgs): notify.ShowBalloonTip(3000) notify.DoubleClick += click # notify.ContextMenu = ContextMenu() mItem = MenuItem() notify.ContextMenu.MenuItems.Add(mItem) mItem.Text = "E&xit" def exit(sender, eArgs): notify.Dispose() watcher.close() time.sleep(5) Application.Exit() mItem.Click += exit extras(notify.ContextMenu.MenuItems, watcher) # mItem = MenuItem(Text="&Config") notify.ContextMenu.MenuItems.Add(mItem) def configClick(s, e): cForm = configForm.ConfigForm(watcher) #cForm.Show() mItem.Click += configClick # try: Application.Run() notify.Dispose() print "Closed notify ok" except Exception, e: print "Error closing notify - %s" % str(e)
def __build_textbox(self, initial_text_s, searchbutton, cancelbutton): ''' Builds and returns the textbox for this form. initial_text_s -> the starting text for the textbox searchbutton -> the 'search' button from the containing Form cancelbutton -> the 'cancel' button from the containing Form ''' # make a special subclass of TextBox in order to... class SearchTextBox(TextBox): # ... capture ESCAPE and ENTER keypresses def OnKeyPress(self, args): if args.KeyChar == chr(13): searchbutton.PerformClick() args.Handled = True elif args.KeyChar == chr(27): cancelbutton.PerformClick() args.Handled = True else: TextBox.OnKeyPress(self, args) # ... disable the Search button if the textbox is empty def OnTextChanged(self, args): searchbutton.Enabled = bool(self.Text.strip()) tbox = SearchTextBox() tbox.Location = Point(10, 135 if self.__fail_label_is_visible else 35) tbox.Size = Size(415, 1) if initial_text_s: tbox.Text = initial_text_s tbox.SelectAll() menu = ContextMenu() items = menu.MenuItems items.Add(MenuItem(i18n.get("TextCut"), lambda s, ea: tbox.Cut())) items.Add(MenuItem(i18n.get("TextCopy"), lambda s, ea: tbox.Copy())) items.Add(MenuItem(i18n.get("TextPaste"), lambda s, ea: tbox.Paste())) tbox.ContextMenu = menu return tbox
def __init__(self): """ContextMenuSample class init function.""" # setup title self.Text = "ContextMenu_MenuItem control" # create menuitems self.menuitem1 = MenuItem("Item 1") self.menuitem2 = MenuItem("Item 2") self.menuitem2.RadioCheck = True self.menuitem2.Checked = True self.menuitem3 = MenuItem("Item 3") self.menuitem3.Checked = True self.menuitem4 = MenuItem("Exit") self.menuitem1.Click += self.on_click self.menuitem2.Click += self.on_click self.menuitem3.Click += self.on_click self.menuitem4.Click += self.on_click # setup contextmenu self.contextmenu = ContextMenu() self.contextmenu.MenuItems.Add(self.menuitem1) self.contextmenu.MenuItems.Add(self.menuitem2) self.contextmenu.MenuItems.Add(self.menuitem3) self.contextmenu.MenuItems.Add(self.menuitem4) # setup label self.label = Label() self.label.Text = "Right Click on me to see ContextMenu and MenuItem" self.label.Width = 200 self.label.Height = 50 self.label.ContextMenu = self.contextmenu self.label.BackColor = Color.Cyan self.label.BorderStyle = BorderStyle.FixedSingle # add control self.Controls.Add(self.label)
def __init__(self, menuList): MainMenu.__init__(self) for menu in menuList: newMenu = MenuItem() newMenu.Text, submenuList = menu for submenu in submenuList: newSubmenu = MenuItem() if submenu: handler, newSubmenu.Text, shortcut, newSubmenu.Tooltip = submenu if handler: newSubmenu.Click += handler else: newSubmenu.Enabled = False if shortcut: newSubmenu.Shortcut = shortcut else: newSubmenu.Text = "-" # Separator newMenu.MenuItems.Add(newSubmenu) self.MenuItems.Add(newMenu)
def initContextMenu(self): contextMenu = ContextMenu() exitMenuItem = MenuItem("Exit") exitMenuItem.Click += self.onExit contextMenu.MenuItems.Add(exitMenuItem) return contextMenu
def __init__(self): """MainMenuSample class init function.""" # setup title self.Text = "MainMenu control" # setup label self.label = Label() self.label.Text = "Click a sub-menu of Main menu" self.label.Dock = DockStyle.Bottom # setup mainmenu self.mainmenu = MainMenu() # setup main menus self.menu_file = MenuItem() self.menu_file.Text = "&File" self.menu_edit = MenuItem() self.menu_edit.Text = "&Edit" self.menu_help = MenuItem() self.menu_help.Text = "&Help" # setup submenus of "File" self.menu_file_new = MenuItem() self.menu_file_new.Text = "&New" self.menu_file_new.Click += self.on_click self.menu_file_new_doc = MenuItem() self.menu_file_new_doc.Text = "&Document" self.menu_file_new_doc.Click += self.on_click self.menu_file_open = MenuItem() self.menu_file_open.Text = "&Open" self.menu_file_open.Click += self.on_click self.menu_file_exit = MenuItem() self.menu_file_exit.Text = "E&xit" self.menu_file_exit.Click += self.on_click # setup submenus of "Edit" self.menu_edit_undo = MenuItem() self.menu_edit_undo.Text = "&Undo" self.menu_edit_undo.Click += self.on_click self.menu_edit_redo = MenuItem() self.menu_edit_redo.Text = "&Redo" self.menu_edit_redo.Click += self.on_click # setup psubmenus of "Help" self.menu_help_about = MenuItem() self.menu_help_about.Text = "&About" self.menu_help_about.Click += self.on_click # add menu item to mainmenu self.mainmenu.MenuItems.Add(self.menu_file) self.mainmenu.MenuItems.Add(self.menu_edit) self.mainmenu.MenuItems.Add(self.menu_help) # add submenus self.menu_file.MenuItems.Add(self.menu_file_new) self.menu_file_new.MenuItems.Add(self.menu_file_new_doc) self.menu_file.MenuItems.Add(self.menu_file_open) self.menu_file.MenuItems.Add(self.menu_file_exit) self.menu_edit.MenuItems.Add(self.menu_edit_undo) self.menu_edit.MenuItems.Add(self.menu_edit_redo) self.menu_help.MenuItems.Add(self.menu_help_about) # bind the MainMenu to Form self.Menu = self.mainmenu self.Controls.Add(self.label)