Ejemplo n.º 1
0
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
Ejemplo n.º 2
0
    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
Ejemplo n.º 4
0
 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
Ejemplo n.º 6
0
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)
Ejemplo n.º 7
0
    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
Ejemplo n.º 8
0
    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)
Ejemplo n.º 9
0
 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)
Ejemplo n.º 10
0
 def initContextMenu(self):
     contextMenu = ContextMenu()
     exitMenuItem = MenuItem("Exit")
     exitMenuItem.Click += self.onExit
     contextMenu.MenuItems.Add(exitMenuItem)
     return contextMenu
Ejemplo n.º 11
0
    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)