[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
gnue common/src/apps/RuntimeSettings.py designe...
From: |
Jason Cater |
Subject: |
gnue common/src/apps/RuntimeSettings.py designe... |
Date: |
Thu, 29 May 2003 01:07:23 -0400 |
CVSROOT: /cvsroot/gnue
Module name: gnue
Changes by: Jason Cater <address@hidden> 03/05/29 01:07:22
Modified files:
common/src/apps: RuntimeSettings.py
designer/src : Designer.py
designer/src/base: Instance.py MenuBar.py
MultiObjectGridEditor.py ObjectList.py
PrimaryToolBar.py TemplateParser.py
ToolBar.py ToolFrame.py
designer/src/forms: BlockEditor.py WizardRunner.py
designer/src/forms/LayoutEditor: LayoutEditor.py
LayoutEditorTools.py
forms/src/uidrivers/wx: common.py
Log message:
* layout editor scrollbars dynamically resize to account for
arbitrarily large forms
* layout editor now supports zooming in and out (i.e., changing the
base point size)
* Fixes required for the new event-based menubar and toolbar
* Several bug fixes
CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/common/src/apps/RuntimeSettings.py.diff?tr1=1.11&tr2=1.12&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/designer/src/Designer.py.diff?tr1=1.69&tr2=1.70&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/designer/src/base/Instance.py.diff?tr1=1.97&tr2=1.98&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/designer/src/base/MenuBar.py.diff?tr1=1.45&tr2=1.46&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/designer/src/base/MultiObjectGridEditor.py.diff?tr1=1.6&tr2=1.7&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/designer/src/base/ObjectList.py.diff?tr1=1.1&tr2=1.2&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/designer/src/base/PrimaryToolBar.py.diff?tr1=1.4&tr2=1.5&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/designer/src/base/TemplateParser.py.diff?tr1=1.31&tr2=1.32&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/designer/src/base/ToolBar.py.diff?tr1=1.3&tr2=1.4&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/designer/src/base/ToolFrame.py.diff?tr1=1.20&tr2=1.21&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/designer/src/forms/BlockEditor.py.diff?tr1=1.2&tr2=1.3&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/designer/src/forms/WizardRunner.py.diff?tr1=1.5&tr2=1.6&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/designer/src/forms/LayoutEditor/LayoutEditor.py.diff?tr1=1.79&tr2=1.80&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/designer/src/forms/LayoutEditor/LayoutEditorTools.py.diff?tr1=1.24&tr2=1.25&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/forms/src/uidrivers/wx/common.py.diff?tr1=1.5&tr2=1.6&r1=text&r2=text
Patches:
Index: gnue/common/src/apps/RuntimeSettings.py
diff -c gnue/common/src/apps/RuntimeSettings.py:1.11
gnue/common/src/apps/RuntimeSettings.py:1.12
*** gnue/common/src/apps/RuntimeSettings.py:1.11 Wed Jan 1 19:45:41 2003
--- gnue/common/src/apps/RuntimeSettings.py Thu May 29 01:07:22 2003
***************
*** 75,80 ****
--- 75,81 ----
# Save the runtime settings
#
def saveRuntimeSettings(instance):
+ from gnue.common.apps.GDebug import _DEBUG_LEVEL
if location:
try:
fh = open(location,'w')
***************
*** 90,98 ****
--- 91,103 ----
config.write(fh)
except:
print _("\nWarning: Unable to save session data to %s\n") % location
+ if _DEBUG_LEVEL:
+ raise
fh.close()
except:
print _("\nWarning: Unable to save session data to %s\n") % location
+ if _DEBUG_LEVEL:
+ raise
#
# Any object (class) that has settings it wants saved should
Index: gnue/designer/src/Designer.py
diff -c gnue/designer/src/Designer.py:1.69 gnue/designer/src/Designer.py:1.70
*** gnue/designer/src/Designer.py:1.69 Wed May 28 18:19:31 2003
--- gnue/designer/src/Designer.py Thu May 29 01:07:22 2003
***************
*** 132,137 ****
--- 132,138 ----
'RequestSaveAll' : self.OnSaveAll,
'RequestAbout' : self.OnAbout,
'RequestNewWizard' : self.OnWizard,
+ 'RequestOpen' : self.OnOpen,
'RequestOpenRecent' : self.OnOpenRecent,
'RequestExit' : self.OnExit
})
***************
*** 333,338 ****
--- 334,343 ----
return None
return self.newInstance(self.toolExtensionMapping[extension], file)
+
+
+ def OnNew(self, event):
+ self.newInstance(event.type)
#
Index: gnue/designer/src/base/Instance.py
diff -c gnue/designer/src/base/Instance.py:1.97
gnue/designer/src/base/Instance.py:1.98
*** gnue/designer/src/base/Instance.py:1.97 Wed May 28 18:19:31 2003
--- gnue/designer/src/base/Instance.py Thu May 29 01:07:22 2003
***************
*** 137,143 ****
'RequestSave' : self.OnSave,
'RequestSaveAs' : self.OnSaveAs,
'RequestClose' : self.OnClose,
- 'RequestNew' : self.OnNew, # TODO: should be
in Designer.py
'RequestConnect' : self.OnConnectTo, # TODO:
Designer.py??
# Object stuff
--- 137,142 ----
***************
*** 281,287 ****
enableMenu = 0
# Add ourselves to the Window menu
! control._menutool = self._menubar.addTool(window, title, hotkey,
enableMenu)
window.finalize()
self.__dict__["%sWindow" % id] = window
--- 280,286 ----
enableMenu = 0
# Add ourselves to the Window menu
! self._menubar.addTool(id, window, title, hotkey, enableMenu)
window.finalize()
self.__dict__["%sWindow" % id] = window
***************
*** 531,540 ****
print _("Unable to connect to %s") % conn
- def OnNew(self, event):
- self._app.newInstance(event.type)
-
-
def OnSave(self, event):
if not len(self._path):
self.OnSaveAs(event)
--- 530,535 ----
***************
*** 558,564 ****
( self.properties.fileExtensions[type], type, type)
filterIndex.append(type)
! dlg = wxFileDialog(NULL, _("Save %s As...") %
self.properties.description, defaultDir=os.getcwd(),
wildcard = wildcard,
style=wxSAVE)
--- 553,559 ----
( self.properties.fileExtensions[type], type, type)
filterIndex.append(type)
! dlg = wxFileDialog(self, _("Save %s As...") %
self.properties.description, defaultDir=os.getcwd(),
wildcard = wildcard,
style=wxSAVE)
Index: gnue/designer/src/base/MenuBar.py
diff -c gnue/designer/src/base/MenuBar.py:1.45
gnue/designer/src/base/MenuBar.py:1.46
*** gnue/designer/src/base/MenuBar.py:1.45 Wed May 28 18:19:31 2003
--- gnue/designer/src/base/MenuBar.py Thu May 29 01:07:22 2003
***************
*** 90,96 ****
_("Open an existing object"))
self._file.AppendSeparator()
self.__addItem(self._file, 'RequestSave', _("&Save\tCtrl+S"), _("Save
the current object"))
! self.__addItem(self._file, 'RequestAs', _("Save &As..."),
_("Save the current form under a new name"))
self.__addItem(self._file, 'RequestSaveAll', _("Save A&ll"),
_("Save all open objects"))
--- 90,96 ----
_("Open an existing object"))
self._file.AppendSeparator()
self.__addItem(self._file, 'RequestSave', _("&Save\tCtrl+S"), _("Save
the current object"))
! self.__addItem(self._file, 'RequestSaveAs', _("Save &As..."),
_("Save the current form under a new name"))
self.__addItem(self._file, 'RequestSaveAll', _("Save A&ll"),
_("Save all open objects"))
***************
*** 112,118 ****
frame._fileNewMap = {}
for tool in SupportedTools:
- frame._fileNewMap[id] = tool.properties.module
self.__addItem(self._fileNew, 'RequestNew','&%s' %
tool.properties.nickname,
_('Create a new %s') % string.lower(tool.properties.nickname),
{'type': tool.properties.module })
--- 112,117 ----
***************
*** 179,187 ****
self._tools.AppendItem(menu)
if not tool.enable:
self._tools.Enable(menu.GetId(), 0)
! self.__addMenuEvent('%s|%s' % (location, tool.title),
! tool.wxId, tool.run)
! tool.finalize()
# TODO: Make this dynamic
self._tools.AppendSeparator()
--- 178,185 ----
self._tools.AppendItem(menu)
if not tool.enable:
self._tools.Enable(menu.GetId(), 0)
! EVT_MENU(self.instance._app, menu.GetId(), tool.toggle)
!
# TODO: Make this dynamic
self._tools.AppendSeparator()
***************
*** 252,284 ****
if not wizard.enable:
menu.Enable(wizard.wxId,0)
! self.__addMenuEvent('%s|%s' % (location, wizard.title),
! wizard.wxId, wizard.run)
# Add the Help menu
self.Append(menumap['Help'][0], '&Help')
! def __createMenuStructure(location, data):
! for loc, isMenu, data in menumap[name][1]:
! if isMenu:
! menu.AppendMenu(wxNewId(), "&%s" % loc, data)
! else:
! pass
!
!
! def __addMenuEvent(self, location, wxId, method):
! self._eventMappings[location] = (method, wxId)
! EVT_MENU(self._frame, wxId, method)
!
!
! def getEventHelp (self, location):
! try:
! wxId = self._eventMappings[location][1]
! return self.GetHelpString(wxId)
! except KeyError:
! return None
## def simulateMenuEvent(self, location):
--- 250,278 ----
if not wizard.enable:
menu.Enable(wizard.wxId,0)
! EVT_MENU(self.instance._app, wizard.wxId,
! lambda event, l=self.instance,
! e='RunWizard:%s' % wizard.id: l.dispatchEvent(e))
# Add the Help menu
self.Append(menumap['Help'][0], '&Help')
! ## def __createMenuStructure(location, data):
! ## for loc, isMenu, data in menumap[name][1]:
! ## if isMenu:
! ## menu.AppendMenu(wxNewId(), "&%s" % loc, data)
! ## else:
! ## pass
!
!
! ## def getEventHelp (self, location):
! ## try:
! ## wxId = self._eventMappings[location][1]
! ## return self.GetHelpString(wxId)
! ## except KeyError:
! ## return None
## def simulateMenuEvent(self, location):
***************
*** 287,297 ****
! def addTool(self, toolFrame, title, hotkey=None, enabled=1):
location = 'Tools|%s' % title
! self._menuMappings[location] = ToolRunner(toolFrame, title, hotkey,
enabled)
self._toolMenuOrder.append(location)
! return self._menuMappings[location]
def addToolSeparator(self):
self._toolMenuOrder.append("")
--- 281,291 ----
! def addTool(self, id, toolFrame, title, hotkey=None, enabled=1):
location = 'Tools|%s' % title
! tr = ToolRunner(self.instance, toolFrame, id, title, hotkey, enabled)
self._toolMenuOrder.append(location)
! self._menuMappings[location] = tr
def addToolSeparator(self):
self._toolMenuOrder.append("")
***************
*** 303,338 ****
def AppendMenu(self, wxId, text, menu):
self.Append(menu, text)
!
! def __addItem(menu, event, text, descr, eventExtra={}, canToggle=0,
canDisable=0):
id = wxNewId()
menu.Append(id, text, descr)
EVT_MENU(self.instance._app, id,
! lambda event, l=self.instance, e=event, x=extra: l.dispatchEvent(e,
**x))
## if canDisable:
## for evt in ('Enable:%s' % event, 'Disable:%s' % event):
## EVT_MENU(self.instance._app, id,
! ## lambda event, l=self.instance, e=event, x=extra:
l.dispatchEvent(e, **x))
return id
class ToolRunner:
! def __init__(self, toolFrame, title, hotkey, enabled):
! self.toolFrame = toolFrame
! self.hotkey = hotkey
! self.wxId = wxNewId()
! self.title = title + (hotkey and '\t%s'% hotkey or '')
! self.enable = enabled
! self.checkable = 1
! self.tooltip = _("Show or hide the %s") % title
!
! def run(self, event):
! self.toolFrame.OnMenuSelected(event)
!
! def finalize(self):
! pass
! # self.toolFrame.finalize()
#
# fakeWxEvent
--- 297,353 ----
def AppendMenu(self, wxId, text, menu):
self.Append(menu, text)
! def __addItem(self, menu, event, text, descr, eventExtra={}, canToggle=0,
canDisable=0):
id = wxNewId()
menu.Append(id, text, descr)
EVT_MENU(self.instance._app, id,
! lambda event, l=self.instance, e=event, x=eventExtra:
l.dispatchEvent(e, **x))
## if canDisable:
## for evt in ('Enable:%s' % event, 'Disable:%s' % event):
## EVT_MENU(self.instance._app, id,
! ## lambda event, l=self.instance, e=event, x=eventExtra:
l.dispatchEvent(e, **x))
return id
class ToolRunner:
! def __init__(self, instance, toolFrame, id, title, hotkey, enabled):
!
! instance.registerEventListeners(
! {'ShowTool:%s' % id: self.show,
! 'HideTool:%s' % id: self.hide,
! 'EnableTool:%s' % id: self.enable,
! 'DisableTool:%s' % id: self.disable } )
!
! self.instance = instance
! self.toolFrame = toolFrame
! self.id = id
! self.hotkey = hotkey
! self.wxId = wxNewId()
! self.title = title + (hotkey and '\t%s'% hotkey or '')
! self.enable = enabled
! self.checkable = 1
! self.tooltip = _("Show or hide the %s") % title
!
!
! def show(self, event):
! self.menu.Check(1)
!
! def hide(self, event):
! self.menu.Check(0)
!
! def enable(self, event):
! self.menu.Enable(1)
!
! def disable(self, event):
! self.menu.Enable(0)
!
! def toggle(self, event):
! if self.menu.IsChecked():
! self.instance.dispatchEvent('ShowTool:%s' % self.id)
! else:
! self.instance.dispatchEvent('HideTool:%s' % self.id)
!
#
# fakeWxEvent
***************
*** 341,350 ****
# calling wxEvent(id#). This event lets
# us pass a fake event in it's place
#
! class fakeWxEvent:
! def __init__(self,id):
! self.id=id
! def GetId(self):
! return self.id
--- 356,365 ----
# calling wxEvent(id#). This event lets
# us pass a fake event in it's place
#
! ##class fakeWxEvent:
! ## def __init__(self,id):
! ## self.id=id
! ## def GetId(self):
! ## return self.id
Index: gnue/designer/src/base/MultiObjectGridEditor.py
diff -c gnue/designer/src/base/MultiObjectGridEditor.py:1.6
gnue/designer/src/base/MultiObjectGridEditor.py:1.7
*** gnue/designer/src/base/MultiObjectGridEditor.py:1.6 Wed May 28 17:08:26 2003
--- gnue/designer/src/base/MultiObjectGridEditor.py Thu May 29 01:07:22 2003
***************
*** 289,298 ****
def _objectDeleted(self, event):
object = event.object
if object in self.objects:
self.objects.remove(object)
index = self.rows.index(object)
! self.objects.remove(object)
self.DeleteRows(index,1)
#
--- 289,300 ----
def _objectDeleted(self, event):
object = event.object
if object in self.objects:
+ self.BeginBatch()
self.objects.remove(object)
index = self.rows.index(object)
! self.rows.remove(object)
self.DeleteRows(index,1)
+ self.EndBatch()
#
Index: gnue/designer/src/base/ObjectList.py
diff -c gnue/designer/src/base/ObjectList.py:1.1
gnue/designer/src/base/ObjectList.py:1.2
*** gnue/designer/src/base/ObjectList.py:1.1 Tue May 27 19:21:39 2003
--- gnue/designer/src/base/ObjectList.py Thu May 29 01:07:22 2003
***************
*** 49,56 ****
def __objectModified (self, event):
if isinstance(event.object, self.base) and \
! self.nameAttr in event.old.keys() or \
! self.nameAttr in event.new.keys():
self.update()
def __objectCreated (self, event):
--- 49,56 ----
def __objectModified (self, event):
if isinstance(event.object, self.base) and \
! self.name in event.old.keys() or \
! self.name in event.new.keys():
self.update()
def __objectCreated (self, event):
Index: gnue/designer/src/base/PrimaryToolBar.py
diff -c gnue/designer/src/base/PrimaryToolBar.py:1.4
gnue/designer/src/base/PrimaryToolBar.py:1.5
*** gnue/designer/src/base/PrimaryToolBar.py:1.4 Wed May 28 18:19:31 2003
--- gnue/designer/src/base/PrimaryToolBar.py Thu May 29 01:07:22 2003
***************
*** 28,39 ****
from gnue.designer.base.ToolBar import BaseToolBar
! ToolbarMapping = 'RequestNewForm,tb_new.png;' \
! + 'RequestOpen,tb_open.png;' \
! + 'RequestSave,tb_save.png;' \
! + 'RequestSaveAs,tb_save_as.png;' \
+ ';' \
! + 'RequestExit,tb_exit.png;'
class PrimaryToolBar(BaseToolBar):
--- 28,39 ----
from gnue.designer.base.ToolBar import BaseToolBar
! ToolbarMapping = 'RequestNewForm,tb_new;' \
! + 'RequestOpen,tb_open;' \
! + 'RequestSave,tb_save;' \
! + 'RequestSaveAs,tb_save_as;' \
+ ';' \
! + 'RequestExit,tb_exit;'
class PrimaryToolBar(BaseToolBar):
Index: gnue/designer/src/base/TemplateParser.py
diff -c gnue/designer/src/base/TemplateParser.py:1.31
gnue/designer/src/base/TemplateParser.py:1.32
*** gnue/designer/src/base/TemplateParser.py:1.31 Wed May 28 18:19:31 2003
--- gnue/designer/src/base/TemplateParser.py Thu May 29 01:07:22 2003
***************
*** 631,636 ****
--- 631,637 ----
self.instance = instance
self.wxId = wxNewId()
+ self.id = template['BaseID']
self.title = title
self.checkable = 0
self.enable = 1
Index: gnue/designer/src/base/ToolBar.py
diff -c gnue/designer/src/base/ToolBar.py:1.3
gnue/designer/src/base/ToolBar.py:1.4
*** gnue/designer/src/base/ToolBar.py:1.3 Tue May 27 19:21:39 2003
--- gnue/designer/src/base/ToolBar.py Thu May 29 01:07:22 2003
***************
*** 34,51 ****
iconlocation =
os.path.join(GConfig.getInstalledBase('designer_images','common_images')
,'designer')
- ToolbarMapping = 'File|New|Form,tb_new.png;' \
- + 'File|Save,tb_save.png;' \
- + ';' \
- + 'Edit|Insert|Label,deslay_label.png;' \
- + 'Edit|Insert|Unbound Entry,deslay_entrytext.png;' \
- + 'Edit|Insert|Drop Down Entry,deslay_entrydrop.png;' \
- + 'Edit|Insert|Button,deslay_button.png;' \
- + 'Edit|Insert|Box,deslay_box.png'
-
- # + 'File|Open,tb_open.png;' \
-
-
class BaseToolBar(wxToolBar, EventAware):
ICON_SIZE = (24,24)
--- 34,39 ----
***************
*** 72,89 ****
self.AddSeparator()
else:
handle, image = string.split(type,',',1)
! help = self.instance._menubar.getEventHelp(handle)
! if not help:
## print "Warning: No event tied to %s" % handle
! help = ""
id = wxNewId()
self.mapping[id] = handle
self.mapping[handle] = id
self.AddTool(id,
! wxImage(os.path.join(iconlocation,image),
wxBITMAP_TYPE_PNG).ConvertToBitmap(),
isToggle=1,
shortHelpString=help,
--- 60,78 ----
self.AddSeparator()
else:
handle, image = string.split(type,',',1)
! help=""
! ## help = self.instance._menubar.getEventHelp(handle)
! ## if not help:
## print "Warning: No event tied to %s" % handle
! ## help = ""
id = wxNewId()
self.mapping[id] = handle
self.mapping[handle] = id
self.AddTool(id,
! wxImage(os.path.join(iconlocation,"%s-%sx%s.png" % ((image,) +
self.ICON_SIZE)),
wxBITMAP_TYPE_PNG).ConvertToBitmap(),
isToggle=1,
shortHelpString=help,
***************
*** 108,114 ****
self.ToggleTool(int(key),0)
except ValueError:
pass
!
self.ToggleTool(event.GetId(),0)
handle = self.mapping[event.GetId()]
! self.instance._menubar.simulateMenuEvent(handle)
--- 97,103 ----
self.ToggleTool(int(key),0)
except ValueError:
pass
!
self.ToggleTool(event.GetId(),0)
handle = self.mapping[event.GetId()]
! self.instance.dispatchEvent(handle)
Index: gnue/designer/src/base/ToolFrame.py
diff -c gnue/designer/src/base/ToolFrame.py:1.20
gnue/designer/src/base/ToolFrame.py:1.21
*** gnue/designer/src/base/ToolFrame.py:1.20 Wed May 28 17:08:26 2003
--- gnue/designer/src/base/ToolFrame.py Thu May 29 01:07:22 2003
***************
*** 89,98 ****
return ( self.runtime_section,
{'x': x,
'y': y,
'height': height,
! 'width': width,
! 'visible': self.control._menutool.menu.IsChecked() } )
!
# This event is set by MenuBar.addTool
# Called whenever menu item is selected
--- 89,97 ----
return ( self.runtime_section,
{'x': x,
'y': y,
+ ## 'visible': self.control._menutool.menu.IsChecked(),
'height': height,
! 'width': width, } )
# This event is set by MenuBar.addTool
# Called whenever menu item is selected
Index: gnue/designer/src/forms/BlockEditor.py
diff -c gnue/designer/src/forms/BlockEditor.py:1.2
gnue/designer/src/forms/BlockEditor.py:1.3
*** gnue/designer/src/forms/BlockEditor.py:1.2 Wed May 28 17:08:26 2003
--- gnue/designer/src/forms/BlockEditor.py Thu May 29 01:07:22 2003
***************
*** 40,46 ****
class BlockEditor(ToolBase):
runtime_section = "FormsBlockEditor"
! default_dock = 'right-20'
uses_toolbar = 1
## uses_feedback_bar = 1
--- 40,46 ----
class BlockEditor(ToolBase):
runtime_section = "FormsBlockEditor"
! default_dock = 'frame' # 'right-20'
uses_toolbar = 1
## uses_feedback_bar = 1
***************
*** 66,71 ****
--- 66,74 ----
def init(self):
self.datasources = ObjectList(self.instance, GDataSource,
'name', self.__datasourcesUpdated)
+ self.instance.registerEventListeners({'BlockEditor:Delete':
self.__OnDelete})
+
+
def getColumnDefinitions(self):
return (
{'Name': 'Name', # Internal name
***************
*** 123,135 ****
def __datasourcesUpdated(self):
self.updateValidSet('DataSource')
######################################################################
#
#
! ToolbarMapping = 'Edit|Insert|Block,deslay_block.png;' \
! + 'Edit|Delete,tb_delete.png' \
class _BlockToolbar(BaseToolBar):
def init(self):
self.addToolbarMapping(ToolbarMapping)
--- 126,147 ----
def __datasourcesUpdated(self):
self.updateValidSet('DataSource')
+ #
+ # User selected the delete icon
+ #
+ def __OnDelete(self, event):
+ if self.current:
+ self.instance.incubator.deleteObject(self.instance.rootObject,
+ self.current, firstRun=0)
+
######################################################################
#
#
! ToolbarMapping = 'RunWizard:AddBlock,wizard_block;' \
! + 'BlockEditor:Delete,tb_delete'
class _BlockToolbar(BaseToolBar):
+ ## ICON_SIZE=(16,16)
def init(self):
self.addToolbarMapping(ToolbarMapping)
Index: gnue/designer/src/forms/LayoutEditor/LayoutEditor.py
diff -c gnue/designer/src/forms/LayoutEditor/LayoutEditor.py:1.79
gnue/designer/src/forms/LayoutEditor/LayoutEditor.py:1.80
*** gnue/designer/src/forms/LayoutEditor/LayoutEditor.py:1.79 Tue May 27
19:21:39 2003
--- gnue/designer/src/forms/LayoutEditor/LayoutEditor.py Thu May 29
01:07:22 2003
***************
*** 59,67 ****
# TODO: blah.... historical reasons
self._instance = self.instance
- # TODO: this needs to go away... requires toolbar to be on main frame
- self.frame = self.instance
-
self._app = self.instance._app
self.page = None
--- 59,64 ----
***************
*** 88,94 ****
self.notebook = wxNotebook(self, -1, pos=wxPoint(4, 4),
size=wxSize(32,32))
self.backcolor = wxWHITE
- #self.propBar = PropertyBar(self)
EVT_NOTEBOOK_PAGE_CHANGED(self,self.notebook.GetId(), self.OnPageSelected)
EVT_SIZE(self, self.OnSize)
--- 85,90 ----
***************
*** 109,114 ****
--- 105,112 ----
'ObjectCreated' : self.onCreateObject,
'ObjectModified' : self.onModifyObject,
'ObjectDeleted' : self.onDeleteObject,
+ 'LayoutEditor:ZoomIn' : self.zoomIn,
+ 'LayoutEditor:ZoomOut': self.zoomOut,
})
self.instance.rootObject.walk (self.inventoryObject)
***************
*** 131,136 ****
--- 129,144 ----
self._rebuildBlockCombo()
return self.toolbar
+ # Recalculate the scrollbar sizes
+ def __OnGridSize(self, event):
+ w, h = self.panel.GetSizeTuple()
+ w2, h2 = self.workspacescroll.GetClientSizeTuple()
+ w = int(max(w, w2)*1.1+30)
+ h = int(max(h, h2)*1.1+30)
+ self.workspace.SetSize((w,h))
+ self.workspacescroll.SetScrollbars(w/30-1,h/30-1,30,30)
+
+
def inventoryObject(self, object):
if object._type == 'GFPage':
index = self.notebook.GetPageCount()
***************
*** 141,152 ****
pos=wxPoint(0,0),
style=wxCLIP_CHILDREN|wxHSCROLL|wxVSCROLL|wxSUNKEN_BORDER)
self.workspace = wxPanel(self.workspacescroll,-1)
- self.workspace.SetSize((51*20,51*20))
-
- # TODO: self.workspace needs to have SetScrollbars called with
- # TODO: reasonable values based on size and position of self.panel
- self.workspacescroll.SetScrollbars(20,20,50,50)
self.workspace.SetBackgroundColour(self.backcolor)
self.notebook.AddPage(self.workspacescroll,object.name)
--- 149,156 ----
pos=wxPoint(0,0),
style=wxCLIP_CHILDREN|wxHSCROLL|wxVSCROLL|wxSUNKEN_BORDER)
+ EVT_SIZE(self.workspacescroll, self.__OnGridSize)
self.workspace = wxPanel(self.workspacescroll,-1)
self.workspace.SetBackgroundColour(self.backcolor)
self.notebook.AddPage(self.workspacescroll,object.name)
***************
*** 252,257 ****
--- 256,263 ----
try:
self.workspace = page.__workspace
self.panel = self.page.__panel
+ UIwxpython.setPointSize(self.page.__pointSize)
+ self.calcGridSpacing()
except AttributeError:
# This simply means we are setting up
# our notebook for the first time.
***************
*** 382,407 ****
self.drawPage(page)
!
! def drawPage(self, page):
! self._currentSelection = []
! self.page = page
!
! try:
! self.panel = self.page.__panel
! except AttributeError:
! self.panel = GridPane(self, self.workspace, wxPoint(10,12))
!
! # We are a drop target for Drag-and-Drop
! self.panel.SetDropTarget(DisplayDropTarget(self))
!
!
! self.page.__panel = self.panel
! self.panelColor = self.panel.GetBackgroundColour()
! self.panelGridColor = wxColour(order(255,self.panelColor.Red()+16)[0],
! order(255,self.panelColor.Green()+16)[0],
! order(255,self.panelColor.Blue()+16)[0])
!
UIwxpython.initFont(self.panel)
maxWidth, maxHeight, maxDescent, maxLeading = [0,0,0,0]
--- 388,394 ----
self.drawPage(page)
! def calcGridSpacing(self):
UIwxpython.initFont(self.panel)
maxWidth, maxHeight, maxDescent, maxLeading = [0,0,0,0]
***************
*** 420,428 ****
self.borderPercentage = (float(gConfig('borderPercentage')) / 100)
self.textPercentage = (float(gConfig('textPercentage')) / 100)
- width = self.rootObject._layout.Char__width
- height = self.rootObject._layout.Char__height
-
self.widgetWidth = (self.charWidth * self.borderPercentage)
self.widgetHeight = (self.charHeight * self.borderPercentage) + 3
self.textWidth = self.charWidth * self.textPercentage
--- 407,412 ----
***************
*** 433,442 ****
--- 417,454 ----
self.menu_sb_space=0 # the extra spaces needed by the menu, toolbar and
statusbar
+ width = self.rootObject._layout.Char__width
+ height = self.rootObject._layout.Char__height
self.panel.SetClientSize(wxSize(int(width)*int(self.widgetWidth),
int(height)*int(self.widgetHeight)))
self.panel.Refresh()
+
+ def drawPage(self, page):
+ self._currentSelection = []
+ self.page = page
+
+ try:
+ self.panel = self.page.__panel
+ except AttributeError:
+ self.panel = GridPane(self, self.workspace, wxPoint(10,12))
+
+ # Automatically resize workspace
+ EVT_SIZE(self.panel, self.__OnGridSize)
+
+ # We are a drop target for Drag-and-Drop
+ self.panel.SetDropTarget(DisplayDropTarget(self))
+
+
+ self.page.__panel = self.panel
+ self.panelColor = self.panel.GetBackgroundColour()
+ self.panelGridColor = wxColour(order(255,self.panelColor.Red()+16)[0],
+ order(255,self.panelColor.Green()+16)[0],
+ order(255,self.panelColor.Blue()+16)[0])
+
+ page.__pointSize = UIwxpython.getPointSize()
+ self.calcGridSpacing()
+
page.walk(self.__drawItem)
***************
*** 468,474 ****
widgetHeight=self.widgetHeight,
interface=self,
eventHandler=None,
! ui=self,
initialize=0)
object._widget = widget =
self.widgets[object._type].configuration['baseClass'](cevent)
--- 480,486 ----
widgetHeight=self.widgetHeight,
interface=self,
eventHandler=None,
! ui=self,
initialize=0)
object._widget = widget =
self.widgets[object._type].configuration['baseClass'](cevent)
***************
*** 481,494 ****
self.widgetList.append(object)
def OnSize(self, event):
! self.notebook.SetSize(wxSize(self.GetClientSize().x-8,
self.GetClientSize().y - 8))# - self.propBar.GetSize().y))
def OnPageSelected(self, event):
p = self._notebookMap[event.GetSelection()]
if p != self.page:
self.dispatchEvent('ObjectSelected', object=p,
originator="Forms::LayoutEditor")
self._setCurrentPage(p)
!
def OnLeftDown(self, event):
# Save starting coordinates for cross-selection box
--- 493,506 ----
self.widgetList.append(object)
def OnSize(self, event):
! self.notebook.SetSize(wxSize(self.GetClientSize().x-8,
self.GetClientSize().y - 8))
def OnPageSelected(self, event):
p = self._notebookMap[event.GetSelection()]
if p != self.page:
self.dispatchEvent('ObjectSelected', object=p,
originator="Forms::LayoutEditor")
self._setCurrentPage(p)
! self.__OnGridSize(None)
def OnLeftDown(self, event):
# Save starting coordinates for cross-selection box
***************
*** 698,703 ****
--- 710,732 ----
height=height)
self.instance.dispatchEvent(Event('EndWizard', template=self.__template))
self.mode = 'move'
+
+
+ def zoomIn(self, event):
+ size = UIwxpython.getPointSize()
+ if size < 72:
+ size = size + 1 # int(size * 1.05 + .5)
+ UIwxpython.setPointSize(size)
+ self.calcGridSpacing()
+ self.refreshPage(self.page)
+
+ def zoomOut(self, event):
+ size = UIwxpython.getPointSize()
+ if size > 6:
+ size = size - 1 # int(size * -1.05)
+ UIwxpython.setPointSize(size)
+ self.calcGridSpacing()
+ self.refreshPage(self.page)
Index: gnue/designer/src/forms/LayoutEditor/LayoutEditorTools.py
diff -c gnue/designer/src/forms/LayoutEditor/LayoutEditorTools.py:1.24
gnue/designer/src/forms/LayoutEditor/LayoutEditorTools.py:1.25
*** gnue/designer/src/forms/LayoutEditor/LayoutEditorTools.py:1.24 Wed May
28 18:19:31 2003
--- gnue/designer/src/forms/LayoutEditor/LayoutEditorTools.py Thu May 29
01:07:22 2003
***************
*** 29,43 ****
from gnue.designer.base.ToolBar import BaseToolBar
! ToolbarMapping = 'RunWizard:AddBlock,deslay_block.png;' \
! + 'RunWizard:AddPage,deslay_page.png;' \
+ ';' \
! + 'RunWizard:AddLabel,deslay_label.png;' \
! + 'RunWizard:AddEntry,deslay_entrytext.png;' \
! + 'RunWizard:AddDropDown,deslay_entrydrop.png;' \
! + 'RunWizard:AddCheckbox,deslay_entrycheck.png;' \
! + 'RunWizard:AddButton,deslay_button.png;' \
! + 'RunWizard:AddBox,deslay_box.png'
class LayoutEditorTools(BaseToolBar):
--- 29,46 ----
from gnue.designer.base.ToolBar import BaseToolBar
! ToolbarMapping = 'RunWizard:AddBlock,wizard_block;' \
! + 'RunWizard:AddPage,wizard_page;' \
+ ';' \
! + 'RunWizard:AddLabel,wizard_label;' \
! + 'RunWizard:AddEntry,wizard_entrytext;' \
! + 'RunWizard:AddDropDown,wizard_entrydrop;' \
! + 'RunWizard:AddCheckbox,wizard_entrycheck;' \
! + 'RunWizard:AddButton,wizard_button;' \
! + 'RunWizard:AddBox,wizard_box;' \
!
! ToolbarMapping2 = 'LayoutEditor:ZoomIn,tb_zoom_in;' \
! + 'LayoutEditor:ZoomOut,tb_zoom_out;' \
class LayoutEditorTools(BaseToolBar):
***************
*** 47,52 ****
--- 50,57 ----
'EndWizard' : self.onEndWizard } )
self.addToolbarMapping(ToolbarMapping)
+ self.AddSeparator()
+ self.addToolbarMapping(ToolbarMapping2)
self.AddSeparator()
self.AddControl(wxStaticText(self,-1,_("Block: ")))
self.blockCombo = wxComboBox(self, -1)
Index: gnue/designer/src/forms/WizardRunner.py
diff -c gnue/designer/src/forms/WizardRunner.py:1.5
gnue/designer/src/forms/WizardRunner.py:1.6
*** gnue/designer/src/forms/WizardRunner.py:1.5 Wed Jan 1 19:45:46 2003
--- gnue/designer/src/forms/WizardRunner.py Thu May 29 01:07:22 2003
***************
*** 34,50 ****
class WizardRunner(BaseWizardRunner):
! def __init__(self, *args, **params):
! BaseWizardRunner.__init__(self, *args, **params)
!
# Handle FormPrePositioningTemplate specially;
# i.e., intercept the run method.
if issubclass( self.template['BaseClass'],
TemplateSupport.FormPrePositioningTemplate ):
! self.run = self.__run
!
!
! def __run(self, event):
! self.instance.dispatchEvent(Event('BeginWizard',
! template=self.template))
! self.instance.visualEditor.startPrePositioningTemplate(self.template)
--- 34,46 ----
class WizardRunner(BaseWizardRunner):
! def run(self, event):
# Handle FormPrePositioningTemplate specially;
# i.e., intercept the run method.
if issubclass( self.template['BaseClass'],
TemplateSupport.FormPrePositioningTemplate ):
! self.instance.dispatchEvent(Event('BeginWizard',
! template=self.template))
! self.instance.visualEditor.startPrePositioningTemplate(self.template)
! else:
! BaseWizardRunner.run(self, event)
Index: gnue/forms/src/uidrivers/wx/common.py
diff -c gnue/forms/src/uidrivers/wx/common.py:1.5
gnue/forms/src/uidrivers/wx/common.py:1.6
*** gnue/forms/src/uidrivers/wx/common.py:1.5 Thu May 22 04:53:10 2003
--- gnue/forms/src/uidrivers/wx/common.py Thu May 29 01:07:22 2003
***************
*** 38,48 ****
#
# TODO: Not completed
#
def initFont(widget, affectsLayout=1):
if int(gConfigForms('fixedWidthFont')):
!
widget.SetFont(wxFont(int(gConfigForms('pointSize')),wxMODERN,wxNORMAL,\
wxNORMAL,FALSE,'',encodings[gConfig('textEncoding')]))
!
#####################################################################
##
--- 38,58 ----
#
# TODO: Not completed
#
+ _pointSize = 0
+
+ def getPointSize():
+ return _pointSize or setPointSize(int(gConfigForms('pointSize')))
+
+ def setPointSize(size):
+ global _pointSize
+ _pointSize = size
+ return size
+
def initFont(widget, affectsLayout=1):
if int(gConfigForms('fixedWidthFont')):
! widget.SetFont(wxFont(getPointSize(),wxMODERN,wxNORMAL,\
wxNORMAL,FALSE,'',encodings[gConfig('textEncoding')]))
!
#####################################################################
##
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- gnue common/src/apps/RuntimeSettings.py designe...,
Jason Cater <=