コード例 #1
0
        def CreateLongPopupMenu(self):
            popMenu = FM.FlatMenu()
            sub = FM.FlatMenu()

            #-----------------------------------------------
            # Flat Menu test
            #-----------------------------------------------

            for ii in range(30):
                if ii == 0:
                    menuItem = FM.FlatMenuItem(popMenu, wx.ID_ANY,
                                               "Menu Item #%ld" % (ii + 1), "",
                                               wx.ITEM_NORMAL, sub)
                    popMenu.AppendItem(menuItem)

                    for k in range(5):

                        menuItem = FM.FlatMenuItem(
                            sub, wx.ID_ANY, "Sub Menu Item #%ld" % (k + 1))
                        sub.AppendItem(menuItem)

                else:

                    menuItem = FM.FlatMenuItem(popMenu, wx.ID_ANY,
                                               "Menu Item #%ld" % (ii + 1))
                    popMenu.AppendItem(menuItem)

            return popMenu
コード例 #2
0
    def test_lib_agw_flatmenuCtor(self):
        self._popUpMenu = FM.FlatMenu()

        # First we create the sub-menu item
        subMenu = FM.FlatMenu()
        subSubMenu = FM.FlatMenu()

        # Create the menu items
        menuItem = FM.FlatMenuItem(self._popUpMenu, 20001, "First Menu Item",
                                   "", wx.ITEM_CHECK)
        self._popUpMenu.AppendItem(menuItem)

        menuItem = FM.FlatMenuItem(self._popUpMenu, 20002, "Sec&ond Menu Item",
                                   "", wx.ITEM_CHECK)
        self._popUpMenu.AppendItem(menuItem)

        menuItem = FM.FlatMenuItem(self._popUpMenu, wx.ID_ANY,
                                   "Checkable-Disabled Item", "",
                                   wx.ITEM_CHECK)
        menuItem.Enable(False)
        self._popUpMenu.AppendItem(menuItem)

        menuItem = FM.FlatMenuItem(self._popUpMenu, 20003, "Third Menu Item",
                                   "", wx.ITEM_CHECK)
        self._popUpMenu.AppendItem(menuItem)

        self._popUpMenu.AppendSeparator()
コード例 #3
0
    def test_lib_agw_fmcustomizedlgCtor(self):
        minibarPanel= wx.Panel(self.frame, wx.ID_ANY)
        self._mtb = FM.FlatMenuBar(minibarPanel, wx.ID_ANY, 16, 6, options = FM.FM_OPT_SHOW_TOOLBAR|FM.FM_OPT_MINIBAR)

        fileMenu  = FM.FlatMenu()
        styleMenu = FM.FlatMenu()
        
        self._mtb.Append(fileMenu, "&File")
        self._mtb.Append(styleMenu, "&Style")
        
        # above is to excersize OrderedDict
        self._dlg = FDLG.FMCustomizeDlg(self._mtb)        
コード例 #4
0
ファイル: start_cef.py プロジェクト: cesargusa/arduinoblock
    def CreateMenu(self):
        # File menu
        filemenu = FM.FlatMenu()
        filemenu.Append(1, "Open", "Text", None)
        filemenu.Append(2, "Save As", "Text", None)
        exitItem = filemenu.Append(3, "Exit", "Text", None)
        self.Bind(wx.EVT_MENU, self.OnClose, exitItem)

        # Edit  menu
        editmenu = FM.FlatMenu()
        editmenu.Append(1, "Cut", "Text", wx.ITEM_NORMAL)
        editmenu.Append(2, "Copy", "Text", wx.ITEM_NORMAL)
        editmenu.Append(3, "Paste", "Text", wx.ITEM_NORMAL)
        editmenu.Append(4, "Delete", "Text", wx.ITEM_NORMAL)
        editmenu.Append(5, "Delete All", "Text", wx.ITEM_NORMAL)

        # Tools menu
        toolsmenu = FM.FlatMenu()
        toolsmenu.Append(1, "Verify Program", "Text", wx.ITEM_NORMAL)
        toolsmenu.Append(2, "Open code in Arduino IDE", "Text", wx.ITEM_NORMAL)
        toolsmenu.Append(3, "Upload to Arduino Board", "Text", wx.ITEM_NORMAL)
        toolsmenu.Append(4, "Open Command Line", "Text", wx.ITEM_NORMAL)
        toolsmenu.Append(5, "Settings", "Text", wx.ITEM_NORMAL)

        # Examples menu
        examplesmenu = FM.FlatMenu()
        examplesmenu.Append(1, "Example 1", "Text", wx.ITEM_NORMAL)
        examplesmenu.Append(2, "Example 2", "Text", wx.ITEM_NORMAL)
        examplesmenu.Append(3, "Example 3", "Text", wx.ITEM_NORMAL)
        examplesmenu.Append(4, "Example 4", "Text", wx.ITEM_NORMAL)
        examplesmenu.Append(5, "Example 5", "Text", wx.ITEM_NORMAL)

        # About menu
        aboutmenu = FM.FlatMenu()
        aboutmenu.Append(1, "About Ardublockly", "Text", wx.ITEM_NORMAL)

        # Adding menubar
        self.menubar = FM.FlatMenuBar(self,
                                      id=wx.ID_ANY,
                                      iconSize=FM.SmallIcons,
                                      spacer=4)
        self.menubar.SetBackgroundColour(wx.Colour(0x00, 0x87, 0x8F, 0xFF))
        self.menubar.ShowCustomize(False)
        self.menubar.SetMargin(4)
        self.menubar.SetToolbarMargin(0)
        self.menubar.SetBarHeight()
        self.menubar.Append(filemenu, "&File")
        self.menubar.Append(editmenu, "&Edit")
        self.menubar.Append(toolsmenu, "&Tools")
        self.menubar.Append(examplesmenu, "&Examples")
        self.menubar.Append(aboutmenu, "&About")
        self.menubar.SetBarHeight()
コード例 #5
0
 def memke_menu(self, menubar, menulist):
     for item in menulist:
         menu = FM.FlatMenu()
         for pos in item[1]:
             menuitem = FM.FlatMenuItem(menu, pos[1], pos[0], pos[0], wx.ITEM_NORMAL)
             menu.AppendItem(menuitem)
         menubar.Append(menu, item[0])
コード例 #6
0
 def CreatePopupMenu(self):
     if not self._popUpMenu:
         self._popUpMenu = flatmenu.FlatMenu()
         menuItem = flatmenu.FlatMenuItem(self._popUpMenu, self.ID_NEW_ZIP,
                                          _("Add Zip File"), "",
                                          wx.ITEM_NORMAL)
         self.Bind(flatmenu.EVT_FLAT_MENU_SELECTED,
                   self.AddNewFilePath,
                   id=self.ID_NEW_ZIP)
         self._popUpMenu.AppendItem(menuItem)
         menuItem = flatmenu.FlatMenuItem(self._popUpMenu, self.ID_NEW_EGG,
                                          _("Add Egg File"), "",
                                          wx.ITEM_NORMAL)
         self.Bind(flatmenu.EVT_FLAT_MENU_SELECTED,
                   self.AddNewFilePath,
                   id=self.ID_NEW_EGG)
         self._popUpMenu.AppendItem(menuItem)
         menuItem = flatmenu.FlatMenuItem(self._popUpMenu,
                                          self.ID_NEW_WHEEL,
                                          _("Add Wheel File"), "",
                                          wx.ITEM_NORMAL)
         self.Bind(flatmenu.EVT_FLAT_MENU_SELECTED,
                   self.AddNewFilePath,
                   id=self.ID_NEW_WHEEL)
         self._popUpMenu.AppendItem(menuItem)
コード例 #7
0
    def _create(self, menuitem_handler=None):
        """
        Create component palette menu.

        :param menuitem_handler: Menuitem activate handler.
        :return: wx.FlatMenu object or None if error.
        """
        self.menuitem2component_spc = dict()

        package_names = list(self.component_palette.keys())
        package_names.sort()
        for package_name in package_names:
            package_menu = flatmenu.FlatMenu()
            # log_func.debug(u'Component palette. Package name <%s>' % package_name)

            component_specifications = self.component_palette[package_name]
            component_specifications = sorted(
                component_specifications,
                key=lambda component_spc: component_spc.get('type', ''))
            for component_spc in component_specifications:
                icon = component_spc.get(spc_func.ICON_ATTR_NAME, None)
                bmp = wxbitmap_func.createIconBitmap(icon)
                component_type = component_spc.get('type', 'UndefinedType')
                menuitem_id = wx.NewId()
                if bmp is None:
                    menuitem = flatmenu.FlatMenuItem(package_menu,
                                                     menuitem_id,
                                                     label=component_type)
                else:
                    menuitem = flatmenu.FlatMenuItem(package_menu,
                                                     menuitem_id,
                                                     label=component_type,
                                                     normalBmp=bmp)

                if isinstance(
                        self.content,
                    (list, tuple)) and component_type not in self.content:
                    menuitem.Enable(False)

                package_menu.AppendItem(menuitem)
                # log_func.debug(u'Component palette. Component type <%s>' % component_type)

                if self._parent and menuitem_handler is None:
                    self._parent.Bind(wx.EVT_MENU,
                                      self.onSelectComponentMenuItem,
                                      id=menuitem_id)
                elif self._parent and menuitem_handler:
                    self._parent.Bind(wx.EVT_MENU,
                                      menuitem_handler,
                                      id=menuitem_id)
                else:
                    log_func.warning(
                        u'Be sure to specify the parent window when calling the component selection menu'
                    )

                self.menuitem2component_spc[menuitem_id] = component_spc

            menu_id = wx.NewId()
            self.AppendMenu(menu_id, package_name, package_menu)
        return self
コード例 #8
0
 def on_print(self, event):
     menu = FM.FlatMenu()
     menu.Append(wx.ID_ANY, _("Print"), _("Print"), wx.ITEM_NORMAL)
     menu.Append(wx.ID_ANY, _("Print preview"), _("Print preview"), wx.ITEM_NORMAL)
     menu.Append(
         wx.ID_ANY, _("Printer settings"), _("Printer settings"), wx.ITEM_NORMAL
     )
     self.ti.popup_menu(event, menu)
コード例 #9
0
    def __init__(self, *args, **kwargs):
        wx.Panel.__init__(self, *args, **kwargs)

        self._comps = {}
        self.app = wx.GetApp()
        self.filter = pm.PandaNode

        # Build display filter menu.
        fileMenu = fm.FlatMenu()
        item = fm.FlatMenuItem(fileMenu, DISPLAY_NODEPATHS, '&NodePaths Only',
                               '', wx.ITEM_CHECK)
        item.Check()
        fileMenu.AppendItem(item)

        self.fm = fm.FlatMenuBar(self, -1, 16, 1, options=fmr.FM_OPT_IS_LCD)
        self.fm.Append(fileMenu, '&Display')
        self.fm.GetRendererManager().SetTheme(fm.StyleVista)

        ln = wx.StaticLine(self, -1, style=wx.LI_HORIZONTAL)

        # Bind menu controls
        self.Bind(fm.EVT_FLAT_MENU_SELECTED,
                  self.OnFlatMenuSelected,
                  id=DISPLAY_NODEPATHS)

        # Build tree control
        self.tc = CustomTreeCtrl(self,
                                 -1,
                                 agwStyle=ct.TR_EDIT_LABELS | ct.TR_HIDE_ROOT
                                 | ct.TR_FULL_ROW_HIGHLIGHT | ct.TR_NO_LINES
                                 | ct.TR_HAS_BUTTONS | ct.TR_TWIST_BUTTONS
                                 | ct.TR_MULTIPLE)
        self.tc.AddRoot('root')

        # Bind tree control events
        self.tc.Bind(wx.EVT_TREE_BEGIN_LABEL_EDIT, self.OnTreeBeginLabelEdit)
        self.tc.Bind(wx.EVT_TREE_END_LABEL_EDIT, self.OnTreeEndLabelEdit)
        self.tc.Bind(wx.EVT_LEFT_DCLICK, self.OnLeftDClick)
        self.tc.Bind(wx.EVT_KEY_UP, p3d.wx.OnKeyUp)
        self.tc.Bind(wx.EVT_KEY_DOWN, p3d.wx.OnKeyDown)
        self.tc.Bind(wx.EVT_LEFT_UP, p3d.wx.OnLeftUp)
        self.tc.Bind(wx.EVT_MIDDLE_DOWN, self.OnMiddleDown)

        # Build tree control drop target
        self.dt = CustomDropTarget(['filePath', 'nodePath'], self)
        self.tc.SetDropTarget(self.dt)

        # Bind publisher events
        pub.subscribe(self.OnUpdate, 'Update')

        # Build sizers
        self.bs1 = wx.BoxSizer(wx.VERTICAL)
        self.bs1.Add(self.fm, 0, wx.EXPAND)
        self.bs1.Add(ln, 0, wx.EXPAND)
        self.bs1.Add(self.tc, 1, wx.EXPAND)
        self.SetSizer(self.bs1)
コード例 #10
0
    def CreateAreaMenu(self):
        self.area_dropdownmenu = flatmenu.FlatMenu()

        undockpanel_menuitem = flatmenu.FlatMenuItem(self.area_dropdownmenu,
                                                     ID_MENU_UNDOCKPANEL,
                                                     _("Undock panel"), "", wx.ITEM_NORMAL)
        self.area_dropdownmenu.AppendItem(undockpanel_menuitem)

        hidepanel_menuitem = flatmenu.FlatMenuItem(self.area_dropdownmenu,
                                                   ID_MENU_HIDEPANEL,
                                                   _("Hide panel"), "", wx.ITEM_NORMAL)
        self.area_dropdownmenu.AppendItem(hidepanel_menuitem)
コード例 #11
0
 def onNodePopup(self, event):
     """
     Вызов всплывающего меню узла.
     """
     if not self.readonly:
         popup_menu = flatmenu.FlatMenu()
         popup_menuitem_id = wx.NewId()
         item = flatmenu.FlatMenuItem(popup_menu,
                                      popup_menuitem_id,
                                      u'Сгенерировать модуль формы...',
                                      u'Сгенерировать модуль формы...',
                                      normalBmp=imglib.imgPy)
         popup_menu.AppendItem(item)
         ctrl = self._root.getParent()
         ctrl.Bind(wx.EVT_MENU,
                   self.onGenFormModuleMenuItem,
                   id=popup_menuitem_id)
         popup_menu.Popup(wx.GetMousePosition(), ctrl)
コード例 #12
0
    def CreateContextMenu(self):
        """ Creates the context menu. """
        self._contextMenu = flatmenu.FlatMenu()

        # If there is an active node, then we know
        # that there shouldn't be any other nodes
        # selected, thus we handle the active node first.
        if self._activeNode != None:

            # Do not allow the output node to be
            # deleted or duplicated at all.
            if self._activeNode.IsOutputNode() != True:
                duplicate_menuitem = flatmenu.FlatMenuItem(
                    self._contextMenu, ID_CONTEXTMENU_DUPLICATENODE,
                    "Duplicate\tShift+D", "", wx.ITEM_NORMAL)
                self._contextMenu.AppendItem(duplicate_menuitem)
                delete_menuitem = flatmenu.FlatMenuItem(
                    self._contextMenu, ID_CONTEXTMENU_DELETENODE,
                    "Delete\tDel", "", wx.ITEM_NORMAL)
                self._contextMenu.AppendItem(delete_menuitem)

        else:
            if self._selectedNodes != []:
                deletenodes_menuitem = flatmenu.FlatMenuItem(
                    self._contextMenu, ID_CONTEXTMENU_DELETENODES,
                    "Delete Selected\tDel", "", wx.ITEM_NORMAL)
                self._contextMenu.AppendItem(deletenodes_menuitem)

        selectallnodes_menuitem = flatmenu.FlatMenuItem(
            self._contextMenu, ID_CONTEXTMENU_SELECTALLNODES, "Select All", "",
            wx.ITEM_NORMAL)
        self._contextMenu.AppendItem(selectallnodes_menuitem)

        deselectallnodes_menuitem = flatmenu.FlatMenuItem(
            self._contextMenu, ID_CONTEXTMENU_DESELECTALLNODES, "Deselect All",
            "", wx.ITEM_NORMAL)
        self._contextMenu.AppendItem(deselectallnodes_menuitem)
コード例 #13
0
    def createResourceItemContextMenu(self, item=None):
        """
        Create item context menu.

        :param item: Resource tree item.
            If None then get selected item.
        :return: wx.FlatMenu object or None if error.
        """
        if item is None:
            item = self.resource_treeListCtrl.GetMainWindow().GetSelection()

        if item and item.IsOk():
            resource_item = self.resource_treeListCtrl.GetMainWindow().GetItemData(item)

            context_menu = flatmenu.FlatMenu()
            self.component_menu = select_component_menu.iqSelectComponentFlatMenu()
            self.component_menu.init(parent=self.resource_treeListCtrl,
                                     parent_component=resource_item)
            self.component_menu.create(menuitem_handler=self.onSelectComponentMenuItem)
            context_menu.AppendMenu(wx.NewId(), 'Add', self.component_menu)

            context_menu.AppendSeparator()

            menuitem_id = wx.NewId()
            menuitem = flatmenu.FlatMenuItem(context_menu, menuitem_id, label='Cut',
                                             normalBmp=wx.ArtProvider.GetBitmap(wx.ART_CUT, wx.ART_MENU))
            self.Bind(wx.EVT_MENU, self.onCutResourceMenuitem, id=menuitem_id)
            context_menu.AppendItem(menuitem)

            menuitem_id = wx.NewId()
            menuitem = flatmenu.FlatMenuItem(context_menu, menuitem_id, label='Copy',
                                             normalBmp=wx.ArtProvider.GetBitmap(wx.ART_COPY, wx.ART_MENU))
            self.Bind(wx.EVT_MENU, self.onCopyResourceMenuitem, id=menuitem_id)
            context_menu.AppendItem(menuitem)

            menuitem_id = wx.NewId()
            menuitem = flatmenu.FlatMenuItem(context_menu, menuitem_id, label='Paste',
                                             normalBmp=wx.ArtProvider.GetBitmap(wx.ART_PASTE, wx.ART_MENU))
            self.Bind(wx.EVT_MENU, self.onPasteResourceMenuitem, id=menuitem_id)
            context_menu.AppendItem(menuitem)

            context_menu.AppendSeparator()
            root_item = self.resource_treeListCtrl.GetMainWindow().GetRootItem()
            parent_item = self.resource_treeListCtrl.GetMainWindow().GetItemParent(item)
            first_child_item = self.resource_treeListCtrl.GetMainWindow().GetFirstChild(parent_item)[0] if parent_item and parent_item.IsOk() else None
            last_child_item = self.resource_treeListCtrl.GetMainWindow().GetLastChild(parent_item) if parent_item and parent_item.IsOk() else None

            menuitem_id = wx.NewId()
            menuitem = flatmenu.FlatMenuItem(context_menu, menuitem_id, label='Move up',
                                             normalBmp=wx.ArtProvider.GetBitmap(wx.ART_GO_UP, wx.ART_MENU))
            self.Bind(wx.EVT_MENU, self.onMoveUpResourceMenuitem, id=menuitem_id)
            context_menu.AppendItem(menuitem)
            menuitem.Enable(item != root_item and first_child_item and item != first_child_item)

            menuitem_id = wx.NewId()
            menuitem = flatmenu.FlatMenuItem(context_menu, menuitem_id, label='Move down',
                                             normalBmp=wx.ArtProvider.GetBitmap(wx.ART_GO_DOWN, wx.ART_MENU))
            self.Bind(wx.EVT_MENU, self.onMoveDownResourceMenuitem, id=menuitem_id)
            context_menu.AppendItem(menuitem)
            menuitem.Enable(item != root_item and last_child_item and item != last_child_item)

            return context_menu
        return None
コード例 #14
0
ファイル: plots.py プロジェクト: sgolle/pdsim
    def __init__(self,
                 geo=None,
                 start=True,
                 size=(400, 400),
                 param_dict={},
                 disc_xy_coords=None):
        wx.Frame.__init__(self, None, wx.ID_ANY, "Scroll Model GUI")

        # Add a panel so it looks the correct on all platforms
        panel = wx.Panel(self, wx.ID_ANY)

        import wx.lib.agw.flatmenu as FM

        self._mb = FM.FlatMenuBar(panel, wx.ID_ANY, 32, 5)

        layersMenu = FM.FlatMenu()

        self.LayerCoordinateAxes = FM.FlatMenuItem(layersMenu, -1,
                                                   "Show coordinate axes",
                                                   "Tooltip", wx.ITEM_CHECK)
        self.LayerCoordinateAxes.Check(False)
        self.Bind(FM.EVT_FLAT_MENU_SELECTED,
                  self.OnApplyLayers,
                  id=self.LayerCoordinateAxes.GetId())
        layersMenu.AppendItem(self.LayerCoordinateAxes)

        self.LayerOldham = FM.FlatMenuItem(layersMenu, -1, "Oldham ring",
                                           "Tooltip", wx.ITEM_CHECK)
        self.LayerOldham.Check(False)
        self.Bind(FM.EVT_FLAT_MENU_SELECTED,
                  self.OnApplyLayers,
                  id=self.LayerOldham.GetId())
        layersMenu.AppendItem(self.LayerOldham)

        self.LayerOrbitingScroll = FM.FlatMenuItem(layersMenu, -1,
                                                   "Orbiting scroll",
                                                   "Tooltip", wx.ITEM_CHECK)
        self.LayerOrbitingScroll.Check(False)
        self.Bind(FM.EVT_FLAT_MENU_SELECTED,
                  self.OnApplyLayers,
                  id=self.LayerOrbitingScroll.GetId())
        layersMenu.AppendItem(self.LayerOrbitingScroll)

        self._mb.Append(layersMenu, "&Layers")

        animMenu = FM.FlatMenu()

        self.SaveAnimation = FM.FlatMenuItem(layersMenu, -1, "Save animation",
                                             "Tooltip", wx.ITEM_NORMAL)
        self.Bind(FM.EVT_FLAT_MENU_SELECTED,
                  self.OnSaveAnimation,
                  id=self.SaveAnimation.GetId())
        animMenu.AppendItem(self.SaveAnimation)

        self._mb.Append(animMenu, "&Animation")

        # Create the items
        self.btn = btn = wx.ToggleButton(panel, -1, "Start")
        self.pltpanel = PlotPanel(panel, -1, size=size)

        # Do the layout
        sizer = wx.BoxSizer(wx.VERTICAL)
        sizer.Add(self._mb, 0, wx.EXPAND)
        sizer.Add(self.btn, 0, wx.ALL | wx.CENTER, 5)
        sizer.Add(self.pltpanel, 0, wx.ALL | wx.CENTER, 5)
        panel.SetSizer(sizer)
        # Bind the events
        btn.Bind(wx.EVT_TOGGLEBUTTON, self.onButton)
        self.Bind(wx.EVT_CLOSE, self.preClose)

        self.theta = 0
        self.N = 100
        self.geo = geo
        self.OS = plotScrollSet(0,
                                axis=self.pltpanel.axes,
                                geo=self.geo,
                                lw=1,
                                discOn=False,
                                offsetScroll=self.geo.phi_ie_offset > 0)

        self.ax = self.pltpanel.axes

        if disc_xy_coords is not None:
            self.ax.plot(disc_xy_coords[0], disc_xy_coords[1])

        sizer.Layout()

        self.SetSize(sizer.GetMinSize())

        self.writing_animation = False
        self.param_dict = param_dict
        self.orbiting_layers = []
        if start:
            self.start()
コード例 #15
0
ファイル: menuModNode.py プロジェクト: XHermitOne/defis
    def __init__(self, Parent_):
        """
        Конструктор.
        """
        flatmenu.FlatMenu.__init__(self)
        self._Parent = Parent_
        # Контрол дерева проекта
        prj_tree_ctrl = self._Parent.getRoot().getParent()

        if issubclass(self._Parent.__class__, prj_node.PrjFolder):
            # Дополнительные ресурсы для добавления
            # Внутренний реестр ресурсов для доступа к ним по идентификатору
            self._node_reg = {}

            node = self._Parent.include_nodes[0](self._Parent)

            # Добавить Модуль
            self.addModuleID = wx.NewId()

            # Зарегистрировать Модуль во внутреннем реестре
            self._node_reg[self.addModuleID] = node

            item = flatmenu.FlatMenuItem(self,
                                         self.addModuleID,
                                         u'Добавить модуль',
                                         u'Добавить модуль',
                                         normalBmp=imglib.imgEdtModule)
            self.AppendItem(item)
            prj_tree_ctrl.Bind(wx.EVT_MENU,
                               self.OnAddModule,
                               id=self.addModuleID)

            # Добавить Пакет
            self.addPackageID = wx.NewId()
            item = flatmenu.FlatMenuItem(self,
                                         self.addPackageID,
                                         u'Добавить пакет',
                                         u'Добавить пакет',
                                         normalBmp=imglib.imgPackageOpen)
            self.AppendItem(item)
            prj_tree_ctrl.Bind(wx.EVT_MENU,
                               self.OnAddPackage,
                               id=self.addPackageID)

            # Добавить проект wxFormBuilder
            self.addFBPID = wx.NewId()
            item = flatmenu.FlatMenuItem(self,
                                         self.addFBPID,
                                         u'Добавить wxFormBuilder проект',
                                         u'Добавить wxFormBuilder проект',
                                         normalBmp=imglib.imgDesigner)
            self.AppendItem(item)
            prj_tree_ctrl.Bind(wx.EVT_MENU, self.OnAddFBP, id=self.addFBPID)
            self._node_reg[self.addFBPID] = self._Parent.include_nodes[1](
                self._Parent)

            # Подменю 'Добавить'
            res_class_menu = flatmenu.FlatMenu()
            for node_class in self._Parent.include_nodes[2:]:
                node = node_class(self._Parent)
                # Обработка меню добавления ресурсного класса
                class_id = wx.NewId()
                # Зарегистрировать ресурс во внутреннем реестре
                self._node_reg[class_id] = node
                item = flatmenu.FlatMenuItem(res_class_menu,
                                             class_id,
                                             node.description,
                                             node.description,
                                             normalBmp=node.img)
                res_class_menu.AppendItem(item)
                # ВНИМАНИЕ! Выключение пункта меню делать только после
                #   присоединения к меню. Иначе выключение не срабатывает.
                if not node.enable:
                    item.Enable(node.enable)

                res_class_menu.Bind(wx.EVT_MENU,
                                    self.OnAddResClass,
                                    id=class_id)

            self.AppendMenu(wx.NewId(), u'Добавить ресурсный класс',
                            res_class_menu)
            self.AppendSeparator()

        if not issubclass(self._Parent.__class__, prj_module.PrjModules):
            # Подменю 'Буфер обмена'
            self.cutID = wx.NewId()
            item = flatmenu.FlatMenuItem(self,
                                         self.cutID,
                                         u'Вырезать',
                                         u'Вырезать',
                                         normalBmp=imglib.imgCut)
            self.AppendItem(item)
            prj_tree_ctrl.Bind(wx.EVT_MENU, self.OnCut, id=self.cutID)

            self.copyID = wx.NewId()
            item = flatmenu.FlatMenuItem(self,
                                         self.copyID,
                                         u'Копировать',
                                         u'Копировать',
                                         normalBmp=imglib.imgEdtMnuCopy)
            self.AppendItem(item)
            prj_tree_ctrl.Bind(wx.EVT_MENU, self.OnCopy, id=self.copyID)

            self.pasteID = wx.NewId()
            item = flatmenu.FlatMenuItem(self,
                                         self.pasteID,
                                         u'Вставить',
                                         u'Вставить',
                                         normalBmp=imglib.imgEdtMnuPaste)
            self.AppendItem(item)
            prj_tree_ctrl.Bind(wx.EVT_MENU, self.OnPaste, id=self.pasteID)
            item.Enable(not clipboard.emptyClipboard())

            self.AppendSeparator()

            # Подменю 'Клонировать'
            self.cloneID = wx.NewId()
            item = flatmenu.FlatMenuItem(self,
                                         self.cloneID,
                                         u'Клонировать',
                                         u'Клонировать',
                                         normalBmp=imglib.imgClone)
            self.AppendItem(item)
            prj_tree_ctrl.Bind(wx.EVT_MENU, self.OnClone, id=self.cloneID)

            # Подменю 'Удалить'
            self.delID = wx.NewId()
            item = flatmenu.FlatMenuItem(self,
                                         self.delID,
                                         u'Удалить',
                                         u'Удалить',
                                         normalBmp=imglib.imgTrash)
            self.AppendItem(item)
            prj_tree_ctrl.Bind(wx.EVT_MENU, self.OnDelete, id=self.delID)
            self.AppendSeparator()

            # Подменю 'Переименовать'
            # Первый уровень нельзя переименовать
            if self._Parent.getLevel() > 1:
                self.renameID = wx.NewId()
                item = flatmenu.FlatMenuItem(self,
                                             self.renameID,
                                             u'Переименовать',
                                             u'Переименовать',
                                             normalBmp=imglib.imgRename)
                self.AppendItem(item)
                prj_tree_ctrl.Bind(wx.EVT_MENU,
                                   self.OnRename,
                                   id=self.renameID)
                self.AppendSeparator()

        if issubclass(self._Parent.__class__, prj_module.PrjImageModule):
            # Библиотека картинок
            # Открыть в браузере
            self.brwsID = wx.NewId()
            item = flatmenu.FlatMenuItem(self,
                                         self.brwsID,
                                         u'Просмотр',
                                         u'Просмотр',
                                         normalBmp=imglib.imgEdtImgBrowser)
            self.AppendItem(item)
            prj_tree_ctrl.Bind(wx.EVT_MENU,
                               self.OnImgLibBrowser,
                               id=self.brwsID)

            self.AppendSeparator()

        # Редактировать
        self.editID = wx.NewId()
        item = flatmenu.FlatMenuItem(self,
                                     self.editID,
                                     u'Редактировать',
                                     u'Редактировать',
                                     normalBmp=imglib.imgEdit)
        self.AppendItem(item)
        prj_tree_ctrl.Bind(wx.EVT_MENU, self.OnEdit, id=self.editID)

        self.AppendSeparator()

        # Подменю 'Сохранить'
        self.saveID = wx.NewId()
        item = flatmenu.FlatMenuItem(self,
                                     self.saveID,
                                     u'Сохранить',
                                     u'Сохранить',
                                     normalBmp=imglib.imgSave)
        self.AppendItem(item)
        prj_tree_ctrl.Bind(wx.EVT_MENU, self.OnSave, id=self.saveID)
コード例 #16
0
    def __init__(self, Parent_):
        """
        Конструктор.
        """
        flatmenu.FlatMenu.__init__(self)
        self._Parent = Parent_
        # Контрол дерева проекта
        prj_tree_ctrl = self._Parent.getRoot().getParent()

        # Новый проект
        self.newPrjID = wx.NewId()
        item = flatmenu.FlatMenuItem(self, self.newPrjID,
                                     u'Новый проект', u'Новый проект',
                                     normalBmp=imglib.imgNewPrj)
        self.AppendItem(item)
        prj_tree_ctrl.Bind(wx.EVT_MENU, self.OnNew, id=self.newPrjID)

        # Открыть
        self.openID = wx.NewId()
        item = flatmenu.FlatMenuItem(self, self.openID,
                                     u'Открыть', u'Открыть',
                                     normalBmp=imglib.imgFolderOpen)
        self.AppendItem(item)
        prj_tree_ctrl.Bind(wx.EVT_MENU, self.OnOpen, id=self.openID)
        
        # Последний открытый проект
        pth = ini.loadParamINI(PRJ_INI_FILE, 'PRJ', 'LastOpenedPaths')
        if pth:
            self.lastOpenID = wx.NewId()
            item = flatmenu.FlatMenuItem(self, self.lastOpenID,
                                         u'Последний открытый проект: %s' % pth, u'Последний открытый проект',
                                         normalBmp=imglib.imgFolderOpen)
            self.AppendItem(item)
            prj_tree_ctrl.Bind(wx.EVT_MENU, self.OnLastOpen, id=self.lastOpenID)

        # Список открытых ранее проектов
        prj_paths = ini.loadParamINIValue(PRJ_INI_FILE, 'PRJ', 'OpenedPaths')
        if prj_paths:
            prj_submenu = flatmenu.FlatMenu()
            for prj_path in prj_paths:
                if prj_path != pth:
                    item_id = wx.NewId()
                    item = flatmenu.FlatMenuItem(prj_submenu, item_id,
                                                 prj_path, u'Проект',
                                                 normalBmp=imglib.imgFolderOpen)
                    prj_submenu.AppendItem(item)
                    prj_tree_ctrl.Bind(wx.EVT_MENU, self.OnOpenPrj, id=item_id)

            self.AppendSubMenu(prj_submenu, u'Ранее открытые проекты')

        # Определен проект открыт уже или нет?
        prj_none = self._Parent.isOpened()
        io_prnt.outLog(u'Проект открыт <%s>' % self._Parent.isOpened())

        # 'Сохранить'
        self.saveID = wx.NewId()
        item = flatmenu.FlatMenuItem(self, self.saveID,
                                     u'Сохранить', u'Сохранить',
                                     normalBmp=imglib.imgSave)
        self.AppendItem(item)
        item.Enable(prj_none)
        prj_tree_ctrl.Bind(wx.EVT_MENU, self.OnSave, id=self.saveID)

        # Обновить
        self.refreshID = wx.NewId()
        item = flatmenu.FlatMenuItem(self, self.refreshID,
                                     u'Обновить', u'Обновить',
                                     normalBmp=imglib.imgRefreshPage)
        self.AppendItem(item)
        item.Enable(prj_none)
        prj_tree_ctrl.Bind(wx.EVT_MENU, self.OnRefresh, id=self.refreshID)
        
        self.AppendSeparator()
        # Запустить
        self.runID = wx.NewId()
        item = flatmenu.FlatMenuItem(self, self.runID,
                                     u'Выполнить', u'Выполнить',
                                     normalBmp=imglib.imgPlay)
        self.AppendItem(item)
        item.Enable(prj_none)
        prj_tree_ctrl.Bind(wx.EVT_MENU, self.OnRun, id=self.runID)
        # Отладка
        self.debugID = wx.NewId()
        item = flatmenu.FlatMenuItem(self, self.debugID,
                                     u'Отладка', u'Отладка',
                                     normalBmp=imglib.imgDebug)
        self.AppendItem(item)
        item.Enable(prj_none)
        prj_tree_ctrl.Bind(wx.EVT_MENU, self.OnDebug, id=self.debugID)
       
        self.AppendSeparator()
        # 'Редактировать'
        self.editID = wx.NewId()
        item = flatmenu.FlatMenuItem(self, self.editID,
                                     u'Редактировать', u'Редактировать',
                                     normalBmp=imglib.imgEdit)
        self.AppendItem(item)
        item.Enable(prj_none)
        prj_tree_ctrl.Bind(wx.EVT_MENU, self.OnEdit, id=self.editID)

        self.editIniID = wx.NewId()
        item = flatmenu.FlatMenuItem(self, self.editIniID,
                                     u'Параметры проекта', u'Параметры проекта',
                                     normalBmp=imglib.imgProperty)
        self.AppendItem(item)
        item.Enable(prj_none)
        prj_tree_ctrl.Bind(wx.EVT_MENU, self.OnEditIni, id=self.editIniID)

        self.AppendSeparator()

        # 'Переименовать'
        self.renameID = wx.NewId()
        item = flatmenu.FlatMenuItem(self, self.renameID,
                                     u'Переименовать', u'Переименовать',
                                     normalBmp=imglib.imgRename)
        self.AppendItem(item)
        item.Enable(prj_none)
        prj_tree_ctrl.Bind(wx.EVT_MENU, self.OnRename, id=self.renameID)

        self.AppendSeparator()
 
        # Подменю инструментов
        tool_submenu = flatmenu.FlatMenu()
        
        # 'Создать инсталяционный пакет'
        if wx.Platform == '__WXMSW__':
            self.installID = wx.NewId()
            item = flatmenu.FlatMenuItem(tool_submenu, self.installID, _('Install package'), _('Install package'),
                                         normalBmp=imglib.imgDemo)
            tool_submenu.AppendItem(item)
            item.Enable(prj_none)
            prj_tree_ctrl.Bind(wx.EVT_MENU, self.OnMakeInstall, id=self.installID)
        
            # 'Создать демо-проект'
            self.demoID = wx.NewId()
            item = flatmenu.FlatMenuItem(tool_submenu, self.demoID,
                                         u'Демо', u'Демо',
                                         normalBmp=imglib.imgDemo)
            tool_submenu.AppendItem(item)
            item.Enable(False)
            prj_tree_ctrl.Bind(wx.EVT_MENU, self.OnMakeDemo, id=self.demoID)
        
        # 'Создать публикацию'
        self.publicID = wx.NewId()
        item = flatmenu.FlatMenuItem(tool_submenu, self.publicID,
                                     u'Публикация', u'Публикация',
                                     normalBmp=imglib.imgInstall)
        tool_submenu.AppendItem(item)
        item.Enable(prj_none)
        prj_tree_ctrl.Bind(wx.EVT_MENU, self.OnMakePublic, id=self.publicID)

        # 'Браузер библиотеки образов'
        self.imglibID = wx.NewId()
        item = flatmenu.FlatMenuItem(tool_submenu, self.imglibID,
                                     u'Библиотека образов', u'Библиотека образов',
                                     normalBmp=imglib.imgEdtImgBrowser)
        tool_submenu.AppendItem(item)
        prj_tree_ctrl.Bind(wx.EVT_MENU, self.OnImgLibBrowser, id=self.imglibID)

        # 'Редактор регулярных выражений'
        self.regexpeditID = wx.NewId()
        item = flatmenu.FlatMenuItem(tool_submenu, self.regexpeditID,
                                     u'Редактор регулярных выражений', u'Редактор регулярных выражений',
                                     normalBmp=ic_bmp.createLibraryBitmap('regular-expression-delimiter.png'))
        tool_submenu.AppendItem(item)
        prj_tree_ctrl.Bind(wx.EVT_MENU, self.OnRegExpEditor, id=self.regexpeditID)

        # 'Утилита сравнения файлов'
        self.diffID = wx.NewId()
        item = flatmenu.FlatMenuItem(tool_submenu, self.diffID,
                                     u'Утилита сравнения файлов', u'Утилита сравнения файлов',
                                     normalBmp=ic_bmp.createLibraryBitmap('edit-diff.png'))
        tool_submenu.AppendItem(item)
        prj_tree_ctrl.Bind(wx.EVT_MENU, self.OnDiffTool, id=self.diffID)

        # 'Импорт метаобъектов 1С'
        self.imp1cID = wx.NewId()
        item = flatmenu.FlatMenuItem(tool_submenu, self.imp1cID,
                                     u'Импорт метаобъектов 1С', u'Импорт метаобъектов 1С',
                                     normalBmp=ic_bmp.createLibraryBitmap('1c.png'))
        tool_submenu.AppendItem(item)
        prj_tree_ctrl.Bind(wx.EVT_MENU, self.OnImport1C, id=self.imp1cID)

        # 'Дизайнер форм wxFormBuilder'
        self.wxfbID = wx.NewId()
        item = flatmenu.FlatMenuItem(tool_submenu, self.wxfbID,
                                     u'Дизайнер форм wxFormBuilder', u'Дизайнер форм wxFormBuilder',
                                     normalBmp=ic_bmp.createLibraryBitmap('wxformbuilder.png'))
        tool_submenu.AppendItem(item)
        prj_tree_ctrl.Bind(wx.EVT_MENU, self.OnWXFormBuilder, id=self.wxfbID)

        self.AppendSubMenu(tool_submenu, u'Инструменты')

        self.AppendSeparator()

        # 'Показывать всплывающие подсказки'
        self.popup_helpID = wx.NewId()
        item = flatmenu.FlatMenuItem(self, self.popup_helpID,
                                     u'Всплывающая подсказка', u'Всплывающая подсказка',
                                     kind=wx.ITEM_CHECK)
        self.AppendItem(item)
        # Галку ставить только после присоединения пункта к меню
        item.Check(self._Parent.show_popup_help)
        prj_tree_ctrl.Bind(wx.EVT_MENU, self.OnPopupHelp, id=self.popup_helpID)
        
        # 'Помощь'
        self.hlpID = wx.NewId()
        item = flatmenu.FlatMenuItem(self, self.hlpID,
                                     u'Помощь', u'Помощь',
                                     normalBmp=imglib.imgHelpBook)
        self.AppendItem(item)
        prj_tree_ctrl.Bind(wx.EVT_MENU, self.OnHelp, id=self.hlpID)
コード例 #17
0
ファイル: application.py プロジェクト: jumaxotl/GimelStudio
    def __init__(self):
        wx.Frame.__init__(self, None, title="Gimel Studio", size=(1000, 800))

        self.appconfig = AppConfiguration(self)
        self.renderer = Renderer(self)

        # Set the program icon
        self.SetIcon(ICON_GIMELSTUDIO_ICO.GetIcon())

        # Create main sizer
        self.mainSizer = wx.BoxSizer(wx.VERTICAL)

        # Create the menubar
        self.menubar = flatmenu.FlatMenuBar(self, wx.ID_ANY, 40, 6, options=0)

        # Set the dark theme
        rm = self.menubar.GetRendererManager()
        theme = rm.AddRenderer(artproviders.UIMenuBarRenderer())
        rm.SetTheme(theme)

        # Init menus
        file_menu = flatmenu.FlatMenu()
        edit_menu = flatmenu.FlatMenu()
        view_menu = flatmenu.FlatMenu()
        render_menu = flatmenu.FlatMenu()
        window_menu = flatmenu.FlatMenu()
        help_menu = flatmenu.FlatMenu()

        # File
        self.newprojectfile_menuitem = flatmenu.FlatMenuItem(
            file_menu,
            id=wx.ID_ANY,
            label="{0}{1}".format(_("New Project"), "\tCtrl+N"),
            helpString=_("Create a new Gimel Studio project file"),
            kind=wx.ITEM_NORMAL,
            subMenu=None)

        self.openprojectfile_menuitem = flatmenu.FlatMenuItem(
            file_menu,
            id=wx.ID_ANY,
            label="{0}{1}".format(_("Open Project"), "\tCtrl+O"),
            helpString=_("Open and load a Gimel Studio project file"),
            kind=wx.ITEM_NORMAL,
            subMenu=None)

        self.saveprojectfile_menuitem = flatmenu.FlatMenuItem(
            file_menu,
            id=wx.ID_ANY,
            label="{0}{1}".format(_("Save Project..."), "\tCtrl+S"),
            helpString=_("Save the current project file"),
            kind=wx.ITEM_NORMAL,
            subMenu=None)

        self.saveprojectfileas_menuitem = flatmenu.FlatMenuItem(
            file_menu,
            id=wx.ID_ANY,
            label="{0}{1}".format(_("Save Project As..."), "\tCtrl+Shift+S"),
            helpString=_("Save the current project as a Gimel Studio project"),
            kind=wx.ITEM_NORMAL,
            subMenu=None)

        self.menubar.AddSeparator()

        self.exportasimage_menuitem = flatmenu.FlatMenuItem(
            file_menu,
            id=wx.ID_ANY,
            label="{0}{1}".format(_("Export Image As..."), "\tShift+E"),
            helpString=_("Export rendered image to a file"),
            kind=wx.ITEM_NORMAL,
            subMenu=None)

        self.menubar.AddSeparator()

        self.quit_menuitem = flatmenu.FlatMenuItem(
            file_menu,
            id=wx.ID_ANY,
            label="{0}{1}".format(_("Quit"), "\tShift+Q"),
            helpString=_("Quit Gimel Studio"),
            kind=wx.ITEM_NORMAL,
            subMenu=None,
            normalBmp=ICON_NODEPROPERTIES_PANEL.GetBitmap())

        # Edit
        self.copytoclipboard_menuitem = flatmenu.FlatMenuItem(
            edit_menu,
            id=wx.ID_ANY,
            label=_("Copy Image to Clipboard"),
            helpString=_(
                "Copy the current rendered image to the system clipboard"),
            kind=wx.ITEM_NORMAL,
            subMenu=None)

        self.preferences_menuitem = flatmenu.FlatMenuItem(
            edit_menu,
            id=wx.ID_ANY,
            label=_("User Preferences"),
            helpString=_(
                "Edit user preferences and settings for Gimel Studio"),
            kind=wx.ITEM_NORMAL,
            subMenu=None)

        # View
        self.showstatusbar_menuitem = flatmenu.FlatMenuItem(
            edit_menu,
            id=wx.ID_ANY,
            label=_("Toggle Statusbar"),
            helpString=_("Toggle showing the statusbar"),
            kind=wx.ITEM_CHECK,
            subMenu=None)

        # Render
        self.toggleautorender_menuitem = flatmenu.FlatMenuItem(
            render_menu,
            id=wx.ID_ANY,
            label=_("Auto Render"),
            helpString=
            _("Toggle auto rendering after editing node properties, connections, etc"
              ),
            kind=wx.ITEM_CHECK,
            subMenu=None)

        self.renderimage_menuitem = flatmenu.FlatMenuItem(
            render_menu,
            id=wx.ID_ANY,
            label="{0}{1}".format(_("Render Image"), "\tF12"),
            helpString=_(
                "Force an immediate, updated render of the current node graph"
            ),
            kind=wx.ITEM_NORMAL,
            subMenu=None)

        # Window
        self.togglewindowfullscreen_menuitem = flatmenu.FlatMenuItem(
            window_menu,
            id=wx.ID_ANY,
            label=_("Toggle Window Fullscreen"),
            helpString=_("Toggle the window to be fullscreen"),
            kind=wx.ITEM_CHECK,
            subMenu=None)

        self.maximizewindow_menuitem = flatmenu.FlatMenuItem(
            window_menu,
            id=wx.ID_ANY,
            label=_("Maximize Window"),
            helpString=_("Maximize the window size"),
            kind=wx.ITEM_NORMAL,
            subMenu=None)

        # Help
        self.onlinemanual_menuitem = flatmenu.FlatMenuItem(
            help_menu,
            id=wx.ID_ANY,
            label=_("Online Manual"),
            helpString=_(
                "Open the online Gimel Studio manual in your browser"),
            kind=wx.ITEM_NORMAL,
            subMenu=None)

        self.visitwebsite_menuitem = flatmenu.FlatMenuItem(
            help_menu,
            id=wx.ID_ANY,
            label=_("Visit Website"),
            helpString=_(
                "Open the offical Gimel Studio website in your browser"),
            kind=wx.ITEM_NORMAL,
            subMenu=None)

        self.reportabug_menuitem = flatmenu.FlatMenuItem(
            help_menu,
            id=wx.ID_ANY,
            label=_("Report a Bug"),
            helpString=_("Report a bug in Gimel Studio"),
            kind=wx.ITEM_NORMAL,
            subMenu=None)

        self.about_menuitem = flatmenu.FlatMenuItem(
            help_menu,
            id=wx.ID_ANY,
            label=_("About Gimel Studio"),
            helpString=_("Information about Gimel Studio"),
            kind=wx.ITEM_NORMAL,
            subMenu=None)

        # Set defaults
        self.showstatusbar_menuitem.Check(True)
        self.toggleautorender_menuitem.Check(True)

        # Append menu items to menus
        file_menu.AppendItem(self.newprojectfile_menuitem)
        file_menu.AppendItem(self.openprojectfile_menuitem)
        file_menu.AppendItem(self.saveprojectfile_menuitem)
        file_menu.AppendItem(self.saveprojectfileas_menuitem)
        file_menu.AppendItem(self.exportasimage_menuitem)
        file_menu.AppendItem(self.quit_menuitem)

        edit_menu.AppendItem(self.copytoclipboard_menuitem)
        edit_menu.AppendItem(self.preferences_menuitem)

        view_menu.AppendItem(self.showstatusbar_menuitem)

        render_menu.AppendItem(self.toggleautorender_menuitem)
        render_menu.AppendItem(self.renderimage_menuitem)

        window_menu.AppendItem(self.togglewindowfullscreen_menuitem)
        window_menu.AppendItem(self.maximizewindow_menuitem)

        help_menu.AppendItem(self.onlinemanual_menuitem)
        help_menu.AppendItem(self.visitwebsite_menuitem)
        help_menu.AppendItem(self.reportabug_menuitem)
        help_menu.AppendItem(self.about_menuitem)

        # Append menus to the menubar
        self.menubar.Append(file_menu, _("File"))
        self.menubar.Append(edit_menu, _("Edit"))
        self.menubar.Append(view_menu, _("View"))
        self.menubar.Append(render_menu, _("Render"))
        self.menubar.Append(window_menu, _("Window"))
        self.menubar.Append(help_menu, _("Help"))

        # Menu event bindings
        self.Bind(flatmenu.EVT_FLAT_MENU_SELECTED, self.OnQuit,
                  self.quit_menuitem)

        self.Bind(flatmenu.EVT_FLAT_MENU_SELECTED, self.OnPreferencesDialog,
                  self.preferences_menuitem)

        self.Bind(flatmenu.EVT_FLAT_MENU_SELECTED, self.OnToggleStatusbar,
                  self.showstatusbar_menuitem)

        self.Bind(flatmenu.EVT_FLAT_MENU_SELECTED, self.OnToggleFullscreen,
                  self.togglewindowfullscreen_menuitem)
        self.Bind(flatmenu.EVT_FLAT_MENU_SELECTED, self.OnMaximizeWindow,
                  self.maximizewindow_menuitem)

        self.Bind(flatmenu.EVT_FLAT_MENU_SELECTED, self.OnOnlineManual,
                  self.onlinemanual_menuitem)
        self.Bind(flatmenu.EVT_FLAT_MENU_SELECTED, self.OnReportABug,
                  self.reportabug_menuitem)
        self.Bind(flatmenu.EVT_FLAT_MENU_SELECTED, self.OnVisitWebsite,
                  self.visitwebsite_menuitem)

        # Add menubar to main sizer
        self.mainSizer.Add(self.menubar, 0, wx.EXPAND)

        # Create the statusbar
        self.statusbar = StatusBar(self)
        self.SetStatusBar(self.statusbar)

        # Window manager
        self._mgr = AUIManager(self)
        self._mgr.SetArtProvider(artproviders.UIDockArt())
        art = self._mgr.GetArtProvider()
        extra_flags = aui.AUI_MGR_LIVE_RESIZE | aui.AUI_MGR_ALLOW_ACTIVE_PANE
        self._mgr.SetAGWFlags(self._mgr.GetAGWFlags() ^ extra_flags)

        art.SetMetric(aui.AUI_DOCKART_CAPTION_SIZE, 29)
        art.SetMetric(aui.AUI_DOCKART_GRIPPER_SIZE, 3)
        art.SetMetric(aui.AUI_DOCKART_SASH_SIZE, 6)
        art.SetMetric(aui.AUI_DOCKART_PANE_BORDER_SIZE, 0)
        art.SetMetric(aui.AUI_DOCKART_GRADIENT_TYPE, aui.AUI_GRADIENT_NONE)
        art.SetColour(aui.AUI_DOCKART_INACTIVE_CAPTION_COLOUR,
                      wx.Colour("#424242"))
        art.SetColour(aui.AUI_DOCKART_ACTIVE_CAPTION_COLOUR,
                      wx.Colour("#4D4D4D"))
        art.SetColour(aui.AUI_DOCKART_INACTIVE_CAPTION_TEXT_COLOUR,
                      wx.Colour("#fff"))
        art.SetColour(aui.AUI_DOCKART_SASH_COLOUR, wx.Colour("#232323"))

        # Panels
        self.imageviewport_pnl = ImageViewportPanel(self)
        self.prop_pnl = NodePropertiesPanel(self, size=(350, 500))

        # Eventually this will be a part of the node registry
        registry = {
            'image_node': ImageNode,
            'mix_node': MixNode,
            'output_node': OutputNode,
            'blur_node': BlurNode,
            'flip_node': FlipNode
        }

        self.nodegraph_pnl = NodeGraphPanel(self, registry, size=(100, 100))

        # Add panes
        self._mgr.AddPane(
            self.imageviewport_pnl,
            aui.AuiPaneInfo().Name('imageviewport').CaptionVisible(False).Top(
            ).Row(0).Maximize().CloseButton(visible=False).BestSize(500, 500))
        self._mgr.AddPane(
            self.prop_pnl,
            aui.AuiPaneInfo().Name('nodeproperties').Top().Position(1).Row(
                0).CaptionVisible(False).CloseButton(visible=False).BestSize(
                    500, 500))
        self._mgr.AddPane(
            self.nodegraph_pnl,
            aui.AuiPaneInfo().Name('nodegraph').CaptionVisible(
                False).Center().CloseButton(visible=False).BestSize(500, 500))

        # This sorta feels like a hack to get the default proportions correct!
        self._mgr.GetPane("nodeproperties").dock_proportion = 10
        self._mgr.GetPane("imageviewport").dock_proportion = 25

        # Maximize the window & tell the AUI window
        # manager to "commit" all the changes just made, etc
        self.Maximize()
        self.menubar.PositionAUI(self._mgr)
        self._mgr.Update()
        self.statusbar.UpdateStatusBar()
        self.statusbar.Refresh()
        self.menubar.Refresh()
コード例 #18
0
 def on_find(self, event):
     menu = FM.FlatMenu()
     menu.Append(wx.ID_ANY, _("Find"), _("Find"), wx.ITEM_NORMAL)
     menu.Append(wx.ID_ANY, _("Replace"), _("Replace"), wx.ITEM_NORMAL)
     event.PopupMenu(menu)
コード例 #19
0
ファイル: menuPrjNode.py プロジェクト: XHermitOne/defis
    def __init__(self, Parent_):
        """
        Конструктор.
        """
        flatmenu.FlatMenu.__init__(self)
        self._Parent = Parent_
        # Контрол дерева проекта
        prj_tree_ctrl = self._Parent.getRoot().getParent()

        is_folder = issubclass(self._Parent.__class__, prj_node.PrjFolder)
        if is_folder:
            # Дополнительные ресурсы
            if self._Parent.include_nodes:
                # Подменю 'Добавить ресурс'
                submenu_res = flatmenu.FlatMenu()
                # Дополнительные ресурсы для добавления
                # Внутренний реестр ресурсов для доступа к ним по идентификатору
                self._node_reg = {}
                for node_class in self._Parent.include_nodes:
                    node = node_class(self._Parent)

                    # Обработка меню добавления ресурса
                    res_id = wx.NewId()
                    # Зарегистрировать ресурс во внутреннем реестре
                    self._node_reg[res_id] = node
                    item = flatmenu.FlatMenuItem(submenu_res,
                                                 res_id,
                                                 node.description,
                                                 node.description,
                                                 normalBmp=node.img)
                    submenu_res.AppendItem(item)
                    # ВНИМАНИЕ! Выключение пункта меню делать только после
                    #   присоединения к меню. Иначе выключение не срабатывает.
                    if not node.enable:
                        item.Enable(node.enable)

                    if wx.Platform == '__WXMSW__':
                        prj_tree_ctrl.Bind(wx.EVT_MENU,
                                           self.OnAddResource,
                                           id=res_id)
                    elif wx.Platform == '__WXGTK__':
                        prj_tree_ctrl.Bind(wx.EVT_MENU,
                                           self.OnAddResource,
                                           id=res_id)

                self.AppendMenu(wx.NewId(), u'Добавить ресурс', submenu_res)

                # Импортировть ресурс...
                self.importResID = wx.NewId()
                item = flatmenu.FlatMenuItem(self,
                                             self.importResID,
                                             u'Импорт ресурса',
                                             u'Импорт ресурса',
                                             normalBmp=imglib.imgEdtImport)
                self.AppendItem(item)
                prj_tree_ctrl.Bind(wx.EVT_MENU,
                                   self.OnImportResource,
                                   id=self.importResID)

                self.AppendSeparator()

            # Добавить папку
            self.addFolderID = wx.NewId()
            item = flatmenu.FlatMenuItem(self,
                                         self.addFolderID,
                                         u'Добавить папку',
                                         u'Добавить папку',
                                         normalBmp=imglib.imgFolder)
            self.AppendItem(item)
            prj_tree_ctrl.Bind(wx.EVT_MENU,
                               self.OnAddFolder,
                               id=self.addFolderID)
            self.AppendSeparator()

        # Подменю 'Буфер обмена'
        self.cutID = wx.NewId()
        item = flatmenu.FlatMenuItem(self,
                                     self.cutID,
                                     u'Вырезать',
                                     u'Вырезать',
                                     normalBmp=imglib.imgCut)
        self.AppendItem(item)
        prj_tree_ctrl.Bind(wx.EVT_MENU, self.OnCut, id=self.cutID)
        item.Enable(not is_folder)

        self.copyID = wx.NewId()
        item = flatmenu.FlatMenuItem(self,
                                     self.copyID,
                                     u'Копировать',
                                     u'Копировать',
                                     normalBmp=imglib.imgEdtMnuCopy)
        self.AppendItem(item)
        prj_tree_ctrl.Bind(wx.EVT_MENU, self.OnCopy, id=self.copyID)
        item.Enable(not is_folder)

        self.pasteID = wx.NewId()
        item = flatmenu.FlatMenuItem(self,
                                     self.pasteID,
                                     u'Вставить',
                                     u'Вставить',
                                     normalBmp=imglib.imgEdtMnuPaste)
        self.AppendItem(item)
        prj_tree_ctrl.Bind(wx.EVT_MENU, self.OnPaste, id=self.pasteID)
        item.Enable(not is_folder and not clipboard.emptyClipboard())

        self.AppendSeparator()

        # Подменю 'Клогировать'
        self.cloneID = wx.NewId()
        item = flatmenu.FlatMenuItem(self,
                                     self.cloneID,
                                     u'Клонировать',
                                     u'Клонировать',
                                     normalBmp=imglib.imgClone)
        self.AppendItem(item)
        prj_tree_ctrl.Bind(wx.EVT_MENU, self.OnClone, id=self.cloneID)
        item.Enable(not is_folder)

        # Подменю 'Удалить'
        self.delID = wx.NewId()
        item = flatmenu.FlatMenuItem(self,
                                     self.delID,
                                     u'Удалить',
                                     u'Удалить',
                                     normalBmp=imglib.imgTrash)
        self.AppendItem(item)
        prj_tree_ctrl.Bind(wx.EVT_MENU, self.OnDel, id=self.delID)

        self.AppendSeparator()

        # Подменю 'Редактировать'
        # Редактировать только ресурсы
        if not is_folder:
            self.editID = wx.NewId()
            item = flatmenu.FlatMenuItem(self,
                                         self.editID,
                                         u'Редактировать',
                                         u'Редактировать',
                                         normalBmp=imglib.imgEdit)
            self.AppendItem(item)
            self.AppendSeparator()
        # Подменю 'Переименовать'
        # Первый уровень нельзя переименовать
        if self._Parent.getLevel() > 1:
            self.renameID = wx.NewId()
            item = flatmenu.FlatMenuItem(self,
                                         self.renameID,
                                         u'Переименовать',
                                         u'Переименовать',
                                         normalBmp=imglib.imgRename)
            self.AppendItem(item)
            prj_tree_ctrl.Bind(wx.EVT_MENU, self.OnRename, id=self.renameID)
            self.AppendSeparator()

        # Подменю 'Сохранить'
        self.saveID = wx.NewId()
        item = flatmenu.FlatMenuItem(self,
                                     self.saveID,
                                     u'Сохранить',
                                     u'Сохранить',
                                     normalBmp=imglib.imgSave)
        self.AppendItem(item)
        prj_tree_ctrl.Bind(wx.EVT_MENU, self.OnSave, id=self.saveID)

        # Пункт дополнительных функций узла
        self.extID = wx.NewId()
        item = flatmenu.FlatMenuItem(self,
                                     self.extID,
                                     u'Дополнительно',
                                     u'Дополнительно',
                                     normalBmp=imglib.imgAdvanced)
        self.AppendItem(item)
        prj_tree_ctrl.Bind(wx.EVT_MENU, self.OnExtend, id=self.extID)
コード例 #20
0
    def __init__(self):
        wx.Frame.__init__(self, None, title="Gimel Studio", size=(1000, 800))

        self.appdata = AppData(self)
        self.renderer = Renderer(self)

        # Set the program icon
        self.SetIcon(ICON_GIMELSTUDIO_ICO.GetIcon())

        # Create main sizer
        self.mainSizer = wx.BoxSizer(wx.VERTICAL)

        # Create the menubar
        self._menubar = flatmenu.FlatMenuBar(self, wx.ID_ANY, 40, 6, options=0)

        # Set the dark theme
        rm = self._menubar.GetRendererManager()
        theme = rm.AddRenderer(artproviders.UIMenuBarRenderer())
        rm.SetTheme(theme)

        # Init menus
        file_menu = flatmenu.FlatMenu()
        view_menu = flatmenu.FlatMenu()
        render_menu = flatmenu.FlatMenu()
        window_menu = flatmenu.FlatMenu()
        help_menu = flatmenu.FlatMenu()

        # File
        self.openprojectfile_menuitem = flatmenu.FlatMenuItem(
            file_menu,
            id=wx.ID_ANY,
            label="Open Project\tCtrl+O",
            helpString="Open and load a Gimel Studio project file",
            kind=wx.ITEM_NORMAL,
            subMenu=None,
            normalBmp=ICON_NODEPROPERTIES_PANEL.GetBitmap())

        self.saveprojectfile_menuitem = flatmenu.FlatMenuItem(
            file_menu,
            id=wx.ID_ANY,
            label="Save Project...\tCtrl+S",
            helpString="Save the current project file",
            kind=wx.ITEM_NORMAL,
            subMenu=None)

        self.saveprojectfileas_menuitem = flatmenu.FlatMenuItem(
            file_menu,
            id=wx.ID_ANY,
            label="Save Project As...\tCtrl+Shift+S",
            helpString="Save the current project as a Gimel Studio project",
            kind=wx.ITEM_NORMAL,
            subMenu=None)

        self._menubar.AddSeparator()

        self.exportasimage_menuitem = flatmenu.FlatMenuItem(
            file_menu,
            id=wx.ID_ANY,
            label="Export Image As...\tShift+E",
            helpString="Export rendered composite image to a file",
            kind=wx.ITEM_NORMAL,
            subMenu=None)

        self._menubar.AddSeparator()

        self.quit_menuitem = flatmenu.FlatMenuItem(
            file_menu,
            id=wx.ID_ANY,
            label="Quit\tShift+Q",
            helpString="Quit Gimel Studio",
            kind=wx.ITEM_NORMAL,
            subMenu=None,
            normalBmp=ICON_NODEPROPERTIES_PANEL.GetBitmap())

        # Append menu items to menus
        file_menu.AppendItem(self.openprojectfile_menuitem)
        file_menu.AppendItem(self.saveprojectfile_menuitem)
        file_menu.AppendItem(self.saveprojectfileas_menuitem)
        file_menu.AppendItem(self.exportasimage_menuitem)
        file_menu.AppendItem(self.quit_menuitem)

        # Append menus to the menubar
        self._menubar.Append(file_menu, "File")
        self._menubar.Append(view_menu, "View")
        self._menubar.Append(render_menu, "Render")
        self._menubar.Append(window_menu, "Window")
        self._menubar.Append(help_menu, "Help")

        # Add menubar to main sizer
        self.mainSizer.Add(self._menubar, 0, wx.EXPAND)

        # Window manager
        self._mgr = AUIManager(self)
        self._mgr.SetArtProvider(artproviders.UIDockArt())
        art = self._mgr.GetArtProvider()
        extra_flags = aui.AUI_MGR_LIVE_RESIZE | aui.AUI_MGR_ALLOW_ACTIVE_PANE
        self._mgr.SetAGWFlags(self._mgr.GetAGWFlags() ^ extra_flags)

        art.SetMetric(aui.AUI_DOCKART_CAPTION_SIZE, 29)
        art.SetMetric(aui.AUI_DOCKART_GRIPPER_SIZE, 3)
        art.SetMetric(aui.AUI_DOCKART_SASH_SIZE, 6)
        art.SetMetric(aui.AUI_DOCKART_PANE_BORDER_SIZE, 0)
        art.SetMetric(aui.AUI_DOCKART_GRADIENT_TYPE, aui.AUI_GRADIENT_NONE)
        art.SetColour(aui.AUI_DOCKART_INACTIVE_CAPTION_COLOUR,
                      wx.Colour("#424242"))
        art.SetColour(aui.AUI_DOCKART_ACTIVE_CAPTION_COLOUR,
                      wx.Colour("#4D4D4D"))
        art.SetColour(aui.AUI_DOCKART_INACTIVE_CAPTION_TEXT_COLOUR,
                      wx.Colour("#fff"))
        art.SetColour(aui.AUI_DOCKART_SASH_COLOUR, wx.Colour("#232323"))

        self.imageviewport_pnl = ImageViewportPanel(self)

        self.prop_pnl = NodePropertiesPanel(self, size=(350, 500))

        registry = {
            'image_node': ImageNode,
            'mix_node': MixNode,
            'output_node': OutputNode,
            'blur_node': BlurNode
        }
        self.nodegraph_pnl = NodeGraphPanel(self, registry, size=(100, 100))

        # Add panes
        self._mgr.AddPane(
            self.nodegraph_pnl,
            aui.AuiPaneInfo().Name('nodegraph').CaptionVisible(
                False).Bottom().CloseButton(visible=False).BestSize(750, 800))
        self._mgr.AddPane(
            self.prop_pnl,
            aui.AuiPaneInfo().Name('nodeproperties').Right().CaptionVisible(
                False).CloseButton(visible=False).BestSize(750, 500))
        self._mgr.AddPane(
            self.imageviewport_pnl,
            aui.AuiPaneInfo().Name('imageviewport').CaptionVisible(
                False).Center().CloseButton(visible=False).BestSize(750, 500))

        # self._mgr.AddPane(
        #     layer_pnl,
        #     aui.AuiPaneInfo()
        #     .Name('layers')
        #     .Caption('Layers')
        #     .Left()
        #     .CloseButton(visible=False)
        #     .Icon(ICON_LAYERS.GetBitmap())
        #     .BestSize(750, 500)
        #     )

        # Maximize the window & tell the AUI window
        # manager to "commit" all the changes just made, etc
        self.Maximize()
        self._menubar.PositionAUI(self._mgr)
        self._mgr.Update()
        self._menubar.Refresh()
コード例 #21
0
ファイル: application.py プロジェクト: iwoithe/Gimel-Studio
    def _InitMenuBar(self):
        # Create main sizer
        self.mainSizer = wx.BoxSizer(wx.VERTICAL)

        # Create the menubar
        self._menubar = flatmenu.FlatMenuBar(self, wx.ID_ANY, 40, 8, options=0)

        # Set the dark theme
        rm = self._menubar.GetRendererManager()
        theme = rm.AddRenderer(DarkMenuRenderer())
        rm.SetTheme(theme)

        self._menubar.Refresh()
        self.Update()

        # Init menus
        file_menu = flatmenu.FlatMenu()
        view_menu = flatmenu.FlatMenu()
        render_menu = flatmenu.FlatMenu()
        window_menu = flatmenu.FlatMenu()
        help_menu = flatmenu.FlatMenu()

        # File
        self.openprojectfile_menuitem = flatmenu.FlatMenuItem(
            file_menu,
            id=wx.ID_ANY,
            label="Open Project\tCtrl+O",
            helpString="Open and load a Gimel Studio project file",
            kind=wx.ITEM_NORMAL,
            subMenu=None)

        self.saveprojectfile_menuitem = flatmenu.FlatMenuItem(
            file_menu,
            id=wx.ID_ANY,
            label="Save Project...\tCtrl+S",
            helpString="Save the current project file",
            kind=wx.ITEM_NORMAL,
            subMenu=None)

        self.saveprojectfileas_menuitem = flatmenu.FlatMenuItem(
            file_menu,
            id=wx.ID_ANY,
            label="Save Project As...\tCtrl+Shift+S",
            helpString=
            "Save the current project as a Gimel Studio project file",
            kind=wx.ITEM_NORMAL,
            subMenu=None)

        self._menubar.AddSeparator()

        self.exportasimage_menuitem = flatmenu.FlatMenuItem(
            file_menu,
            id=wx.ID_ANY,
            label="Export Image As...\tShift+E",
            helpString="Export rendered composite image to a file",
            kind=wx.ITEM_NORMAL,
            subMenu=None)

        self._menubar.AddSeparator()

        self.quit_menuitem = flatmenu.FlatMenuItem(
            file_menu,
            id=wx.ID_ANY,
            label="Quit\tShift+Q",
            helpString="Quit Gimel Studio",
            kind=wx.ITEM_NORMAL,
            subMenu=None)

        # View
        self.togglenodegraphgrid_menuitem = flatmenu.FlatMenuItem(
            view_menu,
            id=wx.ID_ANY,
            label="Toggle Graph Grid",
            helpString="Toggle the Node Graph grid background",
            kind=wx.ITEM_CHECK,
            subMenu=None)

        self.renderasbackground_menuitem = flatmenu.FlatMenuItem(
            view_menu,
            id=wx.ID_ANY,
            label="Toggle Render as Background",
            helpString=
            "Toggle the Render showing behind the Node Graph as the background",
            kind=wx.ITEM_CHECK,
            subMenu=None)

        self._menubar.AddSeparator()

        self.centernodegraph_menuitem = flatmenu.FlatMenuItem(
            view_menu,
            id=wx.ID_ANY,
            label="Center Node Graph",
            helpString="Move the view to the center of the Node Graph",
            kind=wx.ITEM_NORMAL,
            subMenu=None)

        # Render
        self.toggleautorender_menuitem = flatmenu.FlatMenuItem(
            render_menu,
            id=wx.ID_ANY,
            label="Auto Render",
            helpString=
            "Toggle auto rendering after editing node properties, connections, etc",
            kind=wx.ITEM_CHECK,
            subMenu=None)

        self.renderimage_menuitem = flatmenu.FlatMenuItem(
            render_menu,
            id=wx.ID_ANY,
            label="Render Image \tF12",
            helpString=
            "Force an immediate, updated render of the current node graph image",
            kind=wx.ITEM_NORMAL,
            subMenu=None)

        # Window
        self.togglefullscreen_menuitem = flatmenu.FlatMenuItem(
            window_menu,
            id=wx.ID_ANY,
            label="Toggle Window Fullscreen",
            helpString="Toggle the window fullscreen",
            kind=wx.ITEM_CHECK,
            subMenu=None)

        self.maximizewindow_menuitem = flatmenu.FlatMenuItem(
            window_menu,
            id=wx.ID_ANY,
            label="Maximize Window",
            helpString="Maximize the window size",
            kind=wx.ITEM_NORMAL,
            subMenu=None)

        self._menubar.AddSeparator()

        self.toggleimageviewport_menuitem = flatmenu.FlatMenuItem(
            window_menu,
            id=wx.ID_ANY,
            label="Show Image Viewport",
            helpString="Toggle showing the Image Viewport panel",
            kind=wx.ITEM_CHECK,
            subMenu=None)

        self.toggledevlog_menuitem = flatmenu.FlatMenuItem(
            window_menu,
            id=wx.ID_ANY,
            label="Show Developer Log",
            helpString=
            "Toggle showing the Developer Log panel (this is useful if you are developing custom nodes with the Python API)",
            kind=wx.ITEM_CHECK,
            subMenu=None)

        # Help
        self.onlinedocs_menuitem = flatmenu.FlatMenuItem(
            help_menu,
            id=wx.ID_ANY,
            label="Online Manual",
            helpString="Open the Gimel Studio manual online in a browser",
            kind=wx.ITEM_NORMAL,
            subMenu=None)

        self._menubar.AddSeparator()

        self.visithomepage_menuitem = flatmenu.FlatMenuItem(
            help_menu,
            id=wx.ID_ANY,
            label="Visit Homepage",
            helpString="Visit the Gimel Studio homepage online",
            kind=wx.ITEM_NORMAL,
            subMenu=None)

        self.feedbacksurvey_menuitem = flatmenu.FlatMenuItem(
            help_menu,
            id=wx.ID_ANY,
            label="Feedback Survey",
            helpString=
            "Take a short survey online about Gimel Studio v0.5.x beta",
            kind=wx.ITEM_NORMAL,
            subMenu=None)

        self.license_menuitem = flatmenu.FlatMenuItem(
            help_menu,
            id=wx.ID_ANY,
            label="License",
            helpString="Show Gimel Studio license",
            kind=wx.ITEM_NORMAL,
            subMenu=None)

        self._menubar.AddSeparator()

        self.about_menuitem = flatmenu.FlatMenuItem(
            help_menu,
            id=wx.ID_ANY,
            label="About",
            helpString="Show information about GimelStudio",
            kind=wx.ITEM_NORMAL,
            subMenu=None)

        # Append menu items to menus
        # file_menu.AppendItem(self.openprojectfile_menuitem)
        # file_menu.AppendItem(self.saveprojectfile_menuitem)
        # file_menu.AppendItem(self.saveprojectfileas_menuitem)
        file_menu.AppendItem(self.exportasimage_menuitem)
        file_menu.AppendItem(self.quit_menuitem)

        view_menu.AppendItem(self.togglenodegraphgrid_menuitem)
        view_menu.AppendItem(self.renderasbackground_menuitem)
        view_menu.AppendItem(self.centernodegraph_menuitem)

        render_menu.AppendItem(self.toggleautorender_menuitem)
        render_menu.AppendItem(self.renderimage_menuitem)

        window_menu.AppendItem(self.togglefullscreen_menuitem)
        window_menu.AppendItem(self.maximizewindow_menuitem)
        window_menu.AppendItem(self.toggleimageviewport_menuitem)
        window_menu.AppendItem(self.toggledevlog_menuitem)

        help_menu.AppendItem(self.onlinedocs_menuitem)
        help_menu.AppendItem(self.visithomepage_menuitem)
        help_menu.AppendItem(self.feedbacksurvey_menuitem)
        help_menu.AppendItem(self.license_menuitem)
        help_menu.AppendItem(self.about_menuitem)

        # Append menus to the menubar
        self._menubar.Append(file_menu, "File")
        self._menubar.Append(view_menu, "View")
        self._menubar.Append(render_menu, "Render")
        self._menubar.Append(window_menu, "Window")
        self._menubar.Append(help_menu, "Help")

        # Set defaults
        self.togglenodegraphgrid_menuitem.Check(True)
        self.toggleautorender_menuitem.Check(True)
        self.toggleimageviewport_menuitem.Check(True)
        self.renderasbackground_menuitem.Check(False)

        # Add menubar to main sizer
        self.mainSizer.Add(self._menubar, 0, wx.EXPAND)
        self.SetSizer(self.mainSizer)
        self.mainSizer.Layout()

        # Bind events
        self.Bind(flatmenu.EVT_FLAT_MENU_SELECTED, self.OnExportImage,
                  self.exportasimage_menuitem)
        self.Bind(flatmenu.EVT_FLAT_MENU_SELECTED, self.OnQuit,
                  self.quit_menuitem)

        self.Bind(flatmenu.EVT_FLAT_MENU_SELECTED, self.OnToggleNodeGraphGrid,
                  self.togglenodegraphgrid_menuitem)
        self.Bind(flatmenu.EVT_FLAT_MENU_SELECTED, self.OnCenterNodeGraph,
                  self.centernodegraph_menuitem)
        self.Bind(flatmenu.EVT_FLAT_MENU_SELECTED,
                  self.OnToggleRenderAsBackground,
                  self.renderasbackground_menuitem)

        self.Bind(flatmenu.EVT_FLAT_MENU_SELECTED, self.OnToggleAutoRender,
                  self.toggleautorender_menuitem)
        self.Bind(flatmenu.EVT_FLAT_MENU_SELECTED, self.OnRender,
                  self.renderimage_menuitem)

        self.Bind(flatmenu.EVT_FLAT_MENU_SELECTED, self.OnToggleFullscreen,
                  self.togglefullscreen_menuitem)
        self.Bind(flatmenu.EVT_FLAT_MENU_SELECTED, self.OnMaximizeWindow,
                  self.maximizewindow_menuitem)
        self.Bind(flatmenu.EVT_FLAT_MENU_SELECTED,
                  self.OnToggleShowImageViewport,
                  self.toggleimageviewport_menuitem)
        self.Bind(flatmenu.EVT_FLAT_MENU_SELECTED, self.OnToggleDeveloperLog,
                  self.toggledevlog_menuitem)

        self.Bind(flatmenu.EVT_FLAT_MENU_SELECTED, self.OnReadOnlineDocs,
                  self.onlinedocs_menuitem)
        self.Bind(flatmenu.EVT_FLAT_MENU_SELECTED, self.OnVisitWebsite,
                  self.visithomepage_menuitem)
        self.Bind(flatmenu.EVT_FLAT_MENU_SELECTED, self.OnFeedbackSurvey,
                  self.feedbacksurvey_menuitem)
        self.Bind(flatmenu.EVT_FLAT_MENU_SELECTED, self.OnLicenseDialog,
                  self.license_menuitem)
        self.Bind(flatmenu.EVT_FLAT_MENU_SELECTED, self.OnAboutDialog,
                  self.about_menuitem)
コード例 #22
0
    def createPopupMenu(self):
        """
        Create a pop-up menu for managing the query tree.

        :return: wx.Menu object.
        """
        try:
            cur_item = self.GetSelection()
            if not cur_item:
                log_func.warning(u'No tree item selected ')
                return None
            item_data = self.getTreeCtrlItemData(treectrl=self, item=cur_item)

            menu = flatmenu.FlatMenu()

            rename_menuitem_id = wx.NewId()
            bmp = wxbitmap_func.createIconBitmap('fatcow/textfield_rename')
            menuitem = flatmenu.FlatMenuItem(menu,
                                             rename_menuitem_id,
                                             _(u'Rename'),
                                             normalBmp=bmp)
            menu.AppendItem(menuitem)
            self.Bind(wx.EVT_MENU,
                      self.onRenameMenuItem,
                      id=rename_menuitem_id)

            moveup_menuitem_id = wx.NewId()
            bmp = wx.ArtProvider.GetBitmap(
                wx.ART_GO_UP, wx.ART_MENU,
                (treectrl_manager.DEFAULT_ITEM_IMAGE_WIDTH,
                 treectrl_manager.DEFAULT_ITEM_IMAGE_HEIGHT))
            menuitem = flatmenu.FlatMenuItem(menu,
                                             moveup_menuitem_id,
                                             _(u'Move up'),
                                             normalBmp=bmp)
            menu.AppendItem(menuitem)
            self.Bind(wx.EVT_MENU,
                      self.onMoveUpMenuItem,
                      id=moveup_menuitem_id)
            menuitem.Enable(
                not self.isTreeCtrlFirstItem(treectrl=self, item=cur_item))

            movedown_menuitem_id = wx.NewId()
            bmp = wx.ArtProvider.GetBitmap(
                wx.ART_GO_DOWN, wx.ART_MENU,
                (treectrl_manager.DEFAULT_ITEM_IMAGE_WIDTH,
                 treectrl_manager.DEFAULT_ITEM_IMAGE_HEIGHT))
            menuitem = flatmenu.FlatMenuItem(menu,
                                             movedown_menuitem_id,
                                             _(u'Move down'),
                                             normalBmp=bmp)
            menu.AppendItem(menuitem)
            self.Bind(wx.EVT_MENU,
                      self.onMoveDownMenuItem,
                      id=movedown_menuitem_id)
            menuitem.Enable(
                not self.isTreeCtrlLastItem(treectrl=self, item=cur_item))

            menu.AppendSeparator()

            add_menuitem_id = wx.NewId()
            bmp = wx.ArtProvider.GetBitmap(
                wx.ART_PLUS, wx.ART_MENU,
                (treectrl_manager.DEFAULT_ITEM_IMAGE_WIDTH,
                 treectrl_manager.DEFAULT_ITEM_IMAGE_HEIGHT))
            menuitem = flatmenu.FlatMenuItem(menu,
                                             add_menuitem_id,
                                             _(u'Add'),
                                             normalBmp=bmp)
            menu.AppendItem(menuitem)
            self.Bind(wx.EVT_MENU, self.onAddMenuItem, id=add_menuitem_id)
            menuitem.Enable(self._canEditOLAPRequest())

            del_menuitem_id = wx.NewId()
            bmp = wx.ArtProvider.GetBitmap(
                wx.ART_MINUS, wx.ART_MENU,
                (treectrl_manager.DEFAULT_ITEM_IMAGE_WIDTH,
                 treectrl_manager.DEFAULT_ITEM_IMAGE_HEIGHT))
            menuitem = flatmenu.FlatMenuItem(menu,
                                             del_menuitem_id,
                                             _(u'Delete'),
                                             normalBmp=bmp)
            menu.AppendItem(menuitem)
            self.Bind(wx.EVT_MENU, self.onDelMenuItem, id=del_menuitem_id)
            menuitem.Enable(self._canEditOLAPRequest())

            request_menuitem_id = wx.NewId()
            bmp = wxbitmap_func.createIconBitmap('fatcow/table_lightning')
            # cur_request = item_data.get('__request__', None) if item_data else None
            label = u'%s: %s' % (_(u'Query'),
                                 item_data.get('label', DEFAULT_ROOT_LABEL)
                                 if item_data else _(u'Query'))
            menuitem = flatmenu.FlatMenuItem(menu,
                                             request_menuitem_id,
                                             label,
                                             normalBmp=bmp)
            menu.AppendItem(menuitem)
            self.Bind(wx.EVT_MENU,
                      self.onRequestMenuItem,
                      id=request_menuitem_id)
            menuitem.Enable(self._canEditOLAPRequest())

            indicator_menuitem_id = wx.NewId()
            bmp = wxbitmap_func.createIconBitmap('fugue/traffic-light')
            cur_indicator = item_data.get('__indicator__',
                                          None) if item_data else None
            label = u'%s: %s' % (_(u'Indicator'),
                                 self.getLabelIndicator(cur_indicator)
                                 if cur_indicator else _(u'Indicator'))
            menuitem = flatmenu.FlatMenuItem(menu,
                                             indicator_menuitem_id,
                                             label,
                                             normalBmp=bmp)
            menu.AppendItem(menuitem)
            self.Bind(wx.EVT_MENU,
                      self.onIndicatorMenuItem,
                      id=indicator_menuitem_id)
            menuitem.Enable(self._canEditOLAPRequest())

            return menu
        except:
            log_func.fatal(u'Error creating menu for managing query tree')
        return None
コード例 #23
0
    def createPopupMenu(self):
        """
        Create a pop-up menu for managing the filter tree.

        :return: wx.Menu object.
        """
        try:
            cur_item = self.GetSelection()
            if not cur_item:
                log_func.warning(u'No tree item selected')
                return None
            # item_data = self.getItemData_tree(ctrl=self, item=cur_item)
            item_data = self.getTreeCtrlItemData(treectrl=self, item=cur_item)

            menu = flatmenu.FlatMenu()

            rename_menuitem_id = wx.NewId()
            bmp = wxbitmap_func.createIconBitmap('fatcow/textfield_rename')
            menuitem = flatmenu.FlatMenuItem(menu, rename_menuitem_id, u'Rename',
                                             normalBmp=bmp)
            menu.AppendItem(menuitem)
            self.Bind(wx.EVT_MENU, self.onRenameMenuItem, id=rename_menuitem_id)

            moveup_menuitem_id = wx.NewId()
            bmp = wx.ArtProvider.GetBitmap(wx.ART_GO_UP, wx.ART_MENU,
                                           (wxbitmap_func.DEFAULT_ICON_WIDTH,
                                            wxbitmap_func.DEFAULT_ICON_HEIGHT))
            menuitem = flatmenu.FlatMenuItem(menu, moveup_menuitem_id, u'Move up',
                                             normalBmp=bmp)
            menu.AppendItem(menuitem)
            self.Bind(wx.EVT_MENU, self.onMoveUpMenuItem, id=moveup_menuitem_id)
            menuitem.Enable(not self.isTreeCtrlFirstItem(treectrl=self, item=cur_item))

            movedown_menuitem_id = wx.NewId()
            bmp = wx.ArtProvider.GetBitmap(wx.ART_GO_DOWN, wx.ART_MENU,
                                           (wxbitmap_func.DEFAULT_ICON_WIDTH,
                                            wxbitmap_func.DEFAULT_ICON_HEIGHT))
            menuitem = flatmenu.FlatMenuItem(menu, movedown_menuitem_id, u'Move down',
                                             normalBmp=bmp)
            menu.AppendItem(menuitem)
            self.Bind(wx.EVT_MENU, self.onMoveDownMenuItem, id=movedown_menuitem_id)
            menuitem.Enable(not self.isTreeCtrlLastItem(treectrl=self, item=cur_item))

            menu.AppendSeparator()

            add_menuitem_id = wx.NewId()
            bmp = wx.ArtProvider.GetBitmap(wx.ART_PLUS, wx.ART_MENU,
                                           (wxbitmap_func.DEFAULT_ICON_WIDTH,
                                            wxbitmap_func.DEFAULT_ICON_HEIGHT))
            menuitem = flatmenu.FlatMenuItem(menu, add_menuitem_id, u'Add',
                                             normalBmp=bmp)
            menu.AppendItem(menuitem)
            self.Bind(wx.EVT_MENU, self.onAddMenuItem, id=add_menuitem_id)
            menuitem.Enable(self._canEditFilter())

            del_menuitem_id = wx.NewId()
            bmp = wx.ArtProvider.GetBitmap(wx.ART_MINUS, wx.ART_MENU,
                                           (wxbitmap_func.DEFAULT_ICON_WIDTH,
                                            wxbitmap_func.DEFAULT_ICON_HEIGHT))
            menuitem = flatmenu.FlatMenuItem(menu, del_menuitem_id, u'Del',
                                             normalBmp=bmp)
            menu.AppendItem(menuitem)
            self.Bind(wx.EVT_MENU, self.onDelMenuItem, id=del_menuitem_id)
            menuitem.Enable(self._canEditFilter())

            filter_menuitem_id = wx.NewId()
            bmp = wxbitmap_func.createIconBitmap('fatcow/filter')
            cur_filter = item_data.get('__filter__', None) if item_data else None
            label = u'Filter: %s' % filter_choicectrl.getFilterAsStr(cur_filter) if cur_filter else u'Filter'
            menuitem = flatmenu.FlatMenuItem(menu, filter_menuitem_id, label,
                                             normalBmp=bmp)
            menu.AppendItem(menuitem)
            self.Bind(wx.EVT_MENU, self.onFilterMenuItem, id=filter_menuitem_id)
            menuitem.Enable(self._canEditFilter())

            indicator_menuitem_id = wx.NewId()
            bmp = wxbitmap_func.createIconBitmap('fatcow/traffic_lights')
            cur_indicator = item_data.get('__indicator__', None) if item_data else None
            label = u'Indicator: %s' % self.getLabelIndicator(cur_indicator) if cur_indicator else u'Indicator'
            menuitem = flatmenu.FlatMenuItem(menu, indicator_menuitem_id, label,
                                             normalBmp=bmp)
            menu.AppendItem(menuitem)
            self.Bind(wx.EVT_MENU, self.onIndicatorMenuItem, id=indicator_menuitem_id)
            menuitem.Enable(self._canEditFilter())

            return menu
        except:
            log_func.fatal(u'Error creating menu for managing filter tree')
        return None