www

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | LICENSE

InitGui.py (2511B)


      1 import sys
      2 
      3 import ExternalAppsList
      4 
      5 myIcon = """
      6         /* XPM */
      7         static char * icon_xpm[] = {
      8         "16 16 15 1",
      9         " 	c None",
     10         ".	c #FFFFFF",
     11         "+	c #E8E5E5",
     12         "@	c #897578",
     13         "#	c #9B8B8D",
     14         "$	c #75575C",
     15         "%	c #C9C3C4",
     16         "&	c #FF89DA",
     17         "*	c #FF96DA",
     18         "=	c #FFA2DA",
     19         "-	c #FFACDA",
     20         ";	c #FFB2DA",
     21         ">	c #FFEAF3",
     22         ",	c #FFB9DA",
     23         "'	c #FF9DDA",
     24         "................",
     25         "..........+@....",
     26         ".........#$%....",
     27         "........$$$.....",
     28         ".......%$$%.....",
     29         ".......&%.......",
     30         "......*&........",
     31         ".....=&.........",
     32         "....-&.....&....",
     33         "...;&>....&&....",
     34         "..,'&.....&&....",
     35         "..&&.....&..&...",
     36         ".........&&&&...",
     37         "........&...&...",
     38         ".......&.....&..",
     39         "................"};
     40         """
     41 
     42 class XternalAppsWorkbench(Workbench):
     43     """Subclasses must implement the appName attribute"""
     44     global myIcon
     45     global XternalAppsWorkbench
     46     global ExternalAppsList
     47 
     48     def __init__(self):
     49         self.MenuText = "XternalApps: " + self.appName
     50         self.ToolTip = "Embeds " + self.appName + " in FreeCAD"
     51         self.Icon = ExternalAppsList.apps[self.appName].Icon
     52         super(XternalAppsWorkbench, self).__init__()
     53 
     54     def Initialize(self):
     55         # Load commands
     56         import AppCommand
     57         import ToolCommand
     58         import Embed
     59         Embed.ExternalApps()
     60         AppCommand.createCommands(self.appName)
     61         ToolCommand.createCommands(self.appName)
     62 
     63         # List of commands for this workbench
     64         self.list = ['ExternalAppsOpen' + self.appName + 'Command'] \
     65                     + ['ExternalAppsTool' + self.appName + toolName + 'Command'
     66                        for toolName in ExternalAppsList.apps[self.appName].Tools]
     67 
     68         # Create menus and toolbars
     69         self.appendMenu("ExternalApplications", self.list)
     70         self.appendToolbar("ExternalApplications", self.list)
     71 
     72     def Activated(self):
     73         pass
     74 
     75     def Deactivated(self):
     76         pass
     77 
     78     #def ContextMenu(self):
     79     #    pass
     80 
     81     def GetClassName(self):
     82         return "Gui::PythonWorkbench"
     83 
     84 def addAppWorkbench(appName):
     85     workbenchClass = type(
     86         "XternalApps" + appName + "Workbench",
     87         (XternalAppsWorkbench,), { 'appName': appName })
     88     Gui.addWorkbench(workbenchClass())
     89 
     90 for appName in ExternalAppsList.apps:
     91     addAppWorkbench(appName)