From: Kevin A. <ka...@us...> - 2004-05-13 02:40:35
|
Update of /cvsroot/pythoncard/PythonCard/tools/resourceEditor In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv14435/tools/resourceEditor Modified Files: resourceEditor.py Log Message: refactored resourceEditor to query component spec for default set of attributes in on_componentAdd_command updated all components and Widget class to provide defaults Index: resourceEditor.py =================================================================== RCS file: /cvsroot/pythoncard/PythonCard/tools/resourceEditor/resourceEditor.py,v retrieving revision 1.196 retrieving revision 1.197 diff -C2 -d -r1.196 -r1.197 *** resourceEditor.py 12 May 2004 22:02:10 -0000 1.196 --- resourceEditor.py 13 May 2004 02:40:25 -0000 1.197 *************** *** 253,256 **** --- 253,257 ---- # conditionally preventing them from being loaded here until I figure # out how to deal with them + # Container is another one that isn't applicable yet if True: try: *************** *** 263,266 **** --- 264,272 ---- except ValueError: pass + if True: + try: + moduleNames.remove('container') + except ValueError: + pass # need to force an import of all of the modules in components *************** *** 1066,1226 **** def on_componentAdd_command(self, event): className = event.target.name[16:] - #baseDesc = "{'type':'" + className + "', 'name':'genericName', 'position':(10, 10), 'size':(-1, -1), " - # KEA 2002-02-23 - #dBgC = self.components.topLeft.backgroundColor.asTuple() - #defaultBgColor = "'backgroundColor':" + str(dBgC) + ", " - #print defaultBgColor - baseDesc = "'position':(10, 10), 'size':(-1, -1), " - if className == 'BitmapCanvas': - desc = baseDesc + "}" - elif className == 'Button': - desc = baseDesc + "'label':'Button n'}" - #desc = baseDesc + defaultBgColor + "'label':'Button n'}" - elif className == 'Calendar': - desc = baseDesc + "}" - elif className == 'CheckBox': - desc = baseDesc + "'label':'CheckBox n', 'checked':0}" - elif className == 'Choice': - desc = baseDesc + "'items':[], 'stringSelection':''}" - elif className == 'CodeEditor': - desc = baseDesc + "}" - elif className == 'ComboBox': - desc = baseDesc + "'items':[], 'stringSelection':''}" - elif className == 'Gauge': - desc = baseDesc + "'max':100, 'value':0, 'layout':'horizontal'}" - elif className == 'Grid': - desc = baseDesc + "}" - elif className == 'HtmlWindow': - desc = baseDesc + "'text':''}" - elif className == 'IEHtmlWindow': - desc = baseDesc + "'text':''}" - elif className == 'Image': - desc = baseDesc + "'file':''}" - elif className == 'ImageButton': - desc = baseDesc + "'file':''}" - elif className == 'List': - desc = baseDesc + "'items':[], 'stringSelection':''}" - elif className == 'MultiColumnList': - desc = baseDesc + "'columns':2}" - elif className == 'PasswordField': - desc = baseDesc + "'text':''}" - elif className == 'RadioGroup': - desc = baseDesc + "'label':'RadioBox n', 'items':['one'], 'stringSelection':'', 'layout':'vertical'}" - elif className == 'Slider': - desc = baseDesc + "'min':1, 'max':100, 'value':1, 'layout':'horizontal'}" - elif className == 'Spinner': - desc = baseDesc + "'min':1, 'max':100, 'value':1}" - elif className == 'StaticBox': - desc = baseDesc + "}" - elif className == 'StaticLine': - desc = baseDesc + "'layout':'horizontal'}" - elif className == 'StaticText': - desc = baseDesc + "'text':''}" - elif className == 'TextArea': - desc = baseDesc + "'text':''}" - elif className == 'TextField': - desc = baseDesc + "'text':''}" - elif className == 'ToggleButton': - desc = baseDesc + "'label':'ToggleButton n', 'checked':0}" - elif className == 'Tree': - desc = baseDesc + "}" - else: - return - # KEA 2002-02-23 # find a unique name i = 1 ! while 1: if className + str(i) not in self.components: ! desc = "{'type':'" + className + "', 'name':'" + className + str(i) + "', " + desc break i += 1 ! # KEA 2002-02-23 ! # just create the widget and update via the propertyEditorWindow ! # to streamline the editing process ! d = eval(desc) ! name = d['name'] ! if name in self.components: ! # this shouldn't ever happen given the while loop above, but leave it in for now ! dialog.alertDialog(self, name + " already exists", 'Error: Unable to add widget') ! else: ! if className == 'BitmapCanvas': ! d['size'] = (50, 50) ! elif className == 'Button': ! d['label'] = d['name'] ! elif className == 'Calendar': ! pass ! elif className == 'CheckBox': ! d['label'] = d['name'] ! elif className == 'Choice': ! pass ! elif className == 'CodeEditor': ! d['size'] = (50, 50) ! elif className == 'ComboBox': ! pass ! elif className == 'Gauge': ! pass ! elif className == 'Grid': ! d['size'] = (50, 50) ! elif className == 'HtmlWindow': ! d['size'] = (50, 50) ! elif className == 'IEHtmlWindow': ! d['size'] = (50, 50) ! elif className == 'Image': ! d['size'] = (50, 50) ! d['backgroundColor']='white' ! elif className == 'ImageButton': ! d['size'] = (50, 50) ! d['backgroundColor']='white' ! elif className == 'List': ! pass ! elif className == 'MultiColumnList': ! d['size'] = (50, 50) ! elif className == 'PasswordField': ! pass ! elif className == 'RadioGroup': ! d['label'] = d['name'] ! elif className == 'Slider': ! pass ! elif className == 'Spinner': ! pass ! elif className == 'StaticBox': ! pass#d['size'] = (50, -1) ! elif className == 'StaticLine': ! d['size'] = (50, -1) ! elif className == 'StaticText': ! d['text'] = d['name'] ! elif className == 'TextArea': ! d['size'] = (50, 50) ! elif className == 'TextField': ! pass ! elif className == 'ToggleButton': ! d['label'] = d['name'] ! elif className == 'Tree': ! d['size'] = (50, 50) ! ! self.components[name] = d ! # KEA 2001-12-20 ! # hack to insert component so that it is the first one ! # in the list ! # a similar trick will be needed for re-ordering widgets ! self.components.order.remove(name) ! self.components.order.insert(NUM_SIZING_HANDLES, name) ! self.fixComponentOrder(name) ! self.startName = name ! self.startPosition = self.components[self.startName].position ! self.startSize = self.components[self.startName].size ! self.offset = (0, 0) ! self.showSizingHandles(name) ! self.documentChanged = 1 ! c = self.components[self.startName] ! wx.EVT_LEFT_DOWN(c, self.on_mouseDown) ! wx.EVT_LEFT_UP(c, self.on_mouseUp) ! wx.EVT_MOTION(c, self.on_mouseDrag) def on_componentSendBack_command(self, event): --- 1072,1111 ---- def on_componentAdd_command(self, event): + # event.target.name will be something like + # menuComponentAddButton, so the first 16 characters + # can be thrown away to get the component name className = event.target.name[16:] # find a unique name i = 1 ! while True: if className + str(i) not in self.components: ! desc = registry.Registry.getInstance().components[className]._spec.getMinimalResourceDict(className + str(i)) break i += 1 + desc['position'] = (10, 10) ! name = desc['name'] ! self.components[name] = desc ! # KEA 2001-12-20 ! # hack to insert component so that it is the first one ! # in the list ! # a similar trick will be needed for re-ordering widgets ! self.components.order.remove(name) ! self.components.order.insert(NUM_SIZING_HANDLES, name) ! self.fixComponentOrder(name) ! self.startName = name ! self.startPosition = self.components[self.startName].position ! self.startSize = self.components[self.startName].size ! self.offset = (0, 0) ! self.showSizingHandles(name) ! self.documentChanged = True ! c = self.components[self.startName] ! wx.EVT_LEFT_DOWN(c, self.on_mouseDown) ! wx.EVT_LEFT_UP(c, self.on_mouseUp) ! wx.EVT_MOTION(c, self.on_mouseDrag) def on_componentSendBack_command(self, event): |