commit-gnue
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

gnue common/src/GTrigger.py designer/src/EventE...


From: Jason Cater
Subject: gnue common/src/GTrigger.py designer/src/EventE...
Date: Mon, 25 Nov 2002 23:23:33 -0500

CVSROOT:        /cvsroot/gnue
Module name:    gnue
Changes by:     Jason Cater <address@hidden>    02/11/25 23:23:33

Modified files:
        common/src     : GTrigger.py 
        designer/src   : EventEditor.py Instance.py PropertyEditor.py 
                         ToolPanel.py TreeView.py TriggerEditor.py 
        designer/src/forms/LayoutEditor: LayoutEditor.py 
        forms/src      : GFParser.py 

Log message:
        * More cleanup in Designer

CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/common/src/GTrigger.py.diff?tr1=1.26&tr2=1.27&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/designer/src/EventEditor.py.diff?tr1=1.2&tr2=1.3&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/designer/src/Instance.py.diff?tr1=1.69&tr2=1.70&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/designer/src/PropertyEditor.py.diff?tr1=1.30&tr2=1.31&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/designer/src/ToolPanel.py.diff?tr1=1.2&tr2=1.3&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/designer/src/TreeView.py.diff?tr1=1.26&tr2=1.27&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/designer/src/TriggerEditor.py.diff?tr1=1.22&tr2=1.23&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/designer/src/forms/LayoutEditor/LayoutEditor.py.diff?tr1=1.35&tr2=1.36&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue/forms/src/GFParser.py.diff?tr1=1.91&tr2=1.92&r1=text&r2=text

Patches:
Index: gnue/common/src/GTrigger.py
diff -c gnue/common/src/GTrigger.py:1.26 gnue/common/src/GTrigger.py:1.27
*** gnue/common/src/GTrigger.py:1.26    Mon Nov  4 09:55:51 2002
--- gnue/common/src/GTrigger.py Mon Nov 25 23:23:33 2002
***************
*** 622,634 ****
              'name': {
                 'Unique': 1,
                 'Typecast': GTypecast.name },
-             'id': {
-                'Deprecated': 'Use name="..." instead.',   # DEPRECATED: Use 
name instead
-                'Typecast': GTypecast.name },
              'type': {
                 'Typecast': GTypecast.uppername },
              'src': {
!                'References': (('trigger','name'),),
                 'Typecast': GTypecast.name },
              'language': {
                 'Typecast': GTypecast.name,
--- 622,631 ----
              'name': {
                 'Unique': 1,
                 'Typecast': GTypecast.name },
              'type': {
                 'Typecast': GTypecast.uppername },
              'src': {
!                'References': 'trigger.name',
                 'Typecast': GTypecast.name },
              'language': {
                 'Typecast': GTypecast.name,
Index: gnue/designer/src/EventEditor.py
diff -c gnue/designer/src/EventEditor.py:1.2 
gnue/designer/src/EventEditor.py:1.3
*** gnue/designer/src/EventEditor.py:1.2        Mon Nov 25 00:41:41 2002
--- gnue/designer/src/EventEditor.py    Mon Nov 25 23:23:33 2002
***************
*** 30,42 ****
  import sys, os, string
  from wxPython.wx import *
  from wxPython.grid import *
! from gnue.common import GDebug, GTypecast
  from ToolPanel import *
  
  class EventEditor (ToolPanel):
  
    runtime_section = 'EventEditor'
    uses_feedback_header = 1
  
    def init(self):
      self.panel = wxPanel(self,-1,style=wxSIMPLE_BORDER, pos=wxPoint(6,6))
--- 30,43 ----
  import sys, os, string
  from wxPython.wx import *
  from wxPython.grid import *
! from gnue.common import GDebug, GTypecast, GTrigger
  from ToolPanel import *
  
  class EventEditor (ToolPanel):
  
    runtime_section = 'EventEditor'
    uses_feedback_header = 1
+   default_dock = DOCK_BOTTOMLEFT
  
    def init(self):
      self.panel = wxPanel(self,-1,style=wxSIMPLE_BORDER, pos=wxPoint(6,6))
***************
*** 50,55 ****
--- 51,58 ----
      self.grid.CreateGrid(1,1)
      self.grid.SetColLabelSize(0)
  
+     self.namedMap = {}
+ 
      EVT_GRID_CELL_CHANGE(self.grid, self.OnCellChange)
      EVT_GRID_CELL_LEFT_DCLICK(self.grid, self.OnLeftDClick)
      EVT_SIZE(self, self.onSize)
***************
*** 62,67 ****
--- 65,73 ----
                         'ObjectDeleted'       : self.onDeleteObject,
                        })
  
+     self.rootObject.walk(self.inventoryObject)
+ 
+ 
    def onSetCurrentObject (self, event):
      object = event.object
      handler = event.originator
***************
*** 78,84 ****
        self.object = object
        try:
          self.triggerList = object._validTriggers
!       except AttributeError: 
          self.triggerList = {}
  
        # Speed up the process by not refreshing the grid yet
--- 84,90 ----
        self.object = object
        try:
          self.triggerList = object._validTriggers
!       except AttributeError:
          self.triggerList = {}
  
        # Speed up the process by not refreshing the grid yet
***************
*** 96,115 ****
  
        # Create the number of rows we'll need
        self.grid.InsertRows(0,len(self.rowList))
-       self.triggerTypes = {'NONE':'<None>',
-                            'CUSTOM':'<Custom Trigger>',
-                            'NAMED':'Named Trigger'}
  
        i = 0
  
        for key in self.rowList:
          self.grid.SetRowLabelValue(i,self.triggerList[key])
          self.grid.SetCellEditor(i, 0, 
RestrictedCellEditor(self.grid,self.triggerTypes))
!         self.grid.SetCellValue(i,0, "%s" % 'CUSTOM')
          i = i + 1
  
  
        # Redraw the grid
        self.grid.EndBatch()
        try:
          self.grid.ForceRefresh()  # Added in 2.3.1
--- 102,135 ----
  
        # Create the number of rows we'll need
        self.grid.InsertRows(0,len(self.rowList))
  
+       self.triggerTypes = {'':'(None)',
+                            '(Custom Trigger)':'(Custom Trigger)'}
+ 
+       for name in self.namedMap.keys():
+         self.triggerTypes[name] = name + ' (named)'
+ 
+       mappedTriggers = {}
+       for child in object._children:
+         if isinstance(child, GTrigger.GTrigger):
+           if hasattr(child,'src') and child.src:
+             mappedTriggers[child.type.upper()] = child.src
+           else:
+             mappedTriggers[child.type.upper()] = '(Custom Trigger)'
        i = 0
  
        for key in self.rowList:
          self.grid.SetRowLabelValue(i,self.triggerList[key])
          self.grid.SetCellEditor(i, 0, 
RestrictedCellEditor(self.grid,self.triggerTypes))
!         try:
!           self.grid.SetCellValue(i,0, "%s" % mappedTriggers[key])
!         except KeyError:
!           self.grid.SetCellValue(i,0, "%s" % '')
          i = i + 1
  
  
        # Redraw the grid
+ ##      self.grid.AutoSize()
        self.grid.EndBatch()
        try:
          self.grid.ForceRefresh()  # Added in 2.3.1
***************
*** 118,125 ****
  
  
    def onCreateObject (self, event):
!     object = event.object
!     handler = event.originator
  
  
    def onModifyObject (self, event):
--- 138,144 ----
  
  
    def onCreateObject (self, event):
!     self.inventoryObject(event.object)
  
  
    def onModifyObject (self, event):
***************
*** 127,135 ****
      handler = event.originator
      if object == None:
        return
      if handler != self and self.object == object:
- #      for modification in modifications:
- #        attribute, value = modification
        self._setCurrent(object)
  
  
--- 146,162 ----
      handler = event.originator
      if object == None:
        return
+     if isinstance(object,GTrigger.GTrigger) and \
+        object.type.upper() == 'NAMED' and \
+        event.new.has_key('name'):
+       try:
+         del self.namedMap[event.old['name']]
+       except KeyError:
+         pass
+       self.namedMap[object.name] = object
+       self._setCurrent(self.object)
+ 
      if handler != self and self.object == object:
        self._setCurrent(object)
  
  
***************
*** 142,147 ****
--- 169,179 ----
        pass
  
  
+   def inventoryObject(self, object):
+     if isinstance(object,GTrigger.GTrigger) and object.type.upper() == 
'NAMED':
+       self.namedMap[object.name] = object
+ 
+ 
    def onSize(self, event):
      x,y = self.GetClientSizeTuple()
      self.panel.SetSize((x-12,y-12))
***************
*** 156,168 ****
  
  
    # Force a grid cell into Edit mode when Double-Clicked
!   def OnLeftDClick(self,evt): 
!     if self.grid.CanEnableCellControl(): 
        self.grid.EnableCellEditControl()
  
    def OnCellChange(self, evt):
      attr = self.rowList[evt.GetRow()]
      value = self.grid.GetCellValue(evt.GetRow(), evt.GetCol())
  
      try:
        try:
--- 188,201 ----
  
  
    # Force a grid cell into Edit mode when Double-Clicked
!   def OnLeftDClick(self,evt):
!     if self.grid.CanEnableCellControl():
        self.grid.EnableCellEditControl()
  
    def OnCellChange(self, evt):
      attr = self.rowList[evt.GetRow()]
      value = self.grid.GetCellValue(evt.GetRow(), evt.GetCol())
+     return
  
      try:
        try:
Index: gnue/designer/src/Instance.py
diff -c gnue/designer/src/Instance.py:1.69 gnue/designer/src/Instance.py:1.70
*** gnue/designer/src/Instance.py:1.69  Mon Nov 25 00:41:41 2002
--- gnue/designer/src/Instance.py       Mon Nov 25 23:23:33 2002
***************
*** 208,275 ****
  
  
    def _initTools(self):
!     lefties = 0
!     toppies = 0
!     bottomites = 0
  
      cache = []
  
      for id, title, baseclass, hotkey in self._toolCache:
        if not id: continue
-       print "Dock-%s" % id
        pos = RuntimeSettings.get(self.runtime_section, 'Dock-%s' % id, 
baseclass.default_dock)
  
!       lefties += 1 and (pos == 'left')
!       toppies += 1 and (pos == 'top')
!       bottomites += 1 and (pos == 'bottom')
  
        cache.append( (id, title, baseclass, hotkey, pos) )
  
! 
!     if lefties:
        self.horizSplitter = wxSplitterWindow(self, -1, style=wxSP_3D)
        rightWin = leftWin = self.horizSplitter
-       if lefties > 1:
-         leftPane = MultiTooledPane(leftWin, self)
-       else:
-         leftPane = SingleTooledPane(leftWin, self)
- 
      else:
        rightWin = leftWin = self
  
!     if bottomites:
!       topWin = bottomWin = self.vertSplitter = wxSplitterWindow(rightWin, -1, 
style=wxSP_3D)
!       if bottomites > 1:
!         bottomPane = MultiTooledPane(bottomWin, self)
!       else:
!         bottomPane = SingleTooledPane(bottomWin, self)
      else:
!       topWin = bottomWin = rightWin
  
!     if toppies > 1:
!       topPane = MultiTooledPane(topWin, self)
      else:
!       topPane = SingleTooledPane(topWin, self)
  
  
      for id, title, baseclass, hotkey, pos in cache:
        if id == None:
          self._menubar.addToolSeparator()
        else:
          GDebug.printMesg(2,'Adding tool %s [%s]' % (title,id))
          if pos == 'frame':
            window = ToolFrame(self, title)
            control = baseclass(self, self.rootObject, window)
            window.control = control
!         elif pos == 'left':
!           control = leftPane.AddTool(title, baseclass, self.rootObject, self)
!           window = leftPane.GetWindow()
!         elif pos == 'top':
!           control = topPane.AddTool(title, baseclass, self.rootObject, self)
!           window = topPane.GetWindow()
!         elif pos == 'bottom':
!           control = bottomPane.AddTool(title, baseclass, self.rootObject, 
self)
!           window = bottomPane.GetWindow()
  
          # Add ourselves to the Window menu
          control._menutool = self._menubar.addTool(window, title, hotkey)
--- 208,301 ----
  
  
    def _initTools(self):
!     bl = 0
!     br = 0
!     tl = 0
!     tr = 0
  
      cache = []
  
      for id, title, baseclass, hotkey in self._toolCache:
        if not id: continue
        pos = RuntimeSettings.get(self.runtime_section, 'Dock-%s' % id, 
baseclass.default_dock)
  
!       tl += 1 and (pos == 'topleft')
!       tr += 1 and (pos == 'topright')
!       bl += 1 and (pos == 'bottomleft')
!       br += 1 and (pos == 'bottomright')
  
        cache.append( (id, title, baseclass, hotkey, pos) )
  
!     panemap = {'topleft': None, 
!                'topright': None, 
!                'bottomleft': None, 
!                'bottomright': None}
! 
!     # If something is on the left, and on the right,
!     # create a splitter dividing left and right
!     if (tl or bl) and (tr or br):
        self.horizSplitter = wxSplitterWindow(self, -1, style=wxSP_3D)
        rightWin = leftWin = self.horizSplitter
      else:
+       self.horizSplitter = None
        rightWin = leftWin = self
  
! 
!     # Left need a splitter?
!     if bl and tl:
!       leftWin = self.leftSplitter = wxSplitterWindow(leftWin, -1, 
style=wxSP_3D)
      else:
!       self.leftSplitter = None
! 
  
!     # Right need a splitter?
!     if br and tr:
!       rightWin = self.rightSplitter = wxSplitterWindow(rightWin, -1, 
style=wxSP_3D)
      else:
!       self.rightSplitter = None
! 
! 
!     # Bottom left
!     if bl > 1:
!       panemap['bottomleft'] = MultiTooledPane(leftWin, self)
!     elif bl:
!       panemap['bottomleft'] = SingleTooledPane(leftWin, self)
! 
!     # Top left
!     if tl > 1:
!       panemap['topleft'] = MultiTooledPane(leftWin, self)
!     elif tl:
!       panemap['topleft'] = SingleTooledPane(leftWin, self)
! 
!     # Bottom right
!     if br > 1:
!       panemap['bottomright'] = MultiTooledPane(rightWin, self)
!     elif br:
!       panemap['bottomright'] = SingleTooledPane(rightWin, self)
! 
!     # Top right
!     if tr > 1:
!       panemap['topright'] = MultiTooledPane(rightWin, self)
!     elif tr:
!       panemap['topright'] = SingleTooledPane(rightWin, self)
  
  
+     # Add each tool
      for id, title, baseclass, hotkey, pos in cache:
        if id == None:
          self._menubar.addToolSeparator()
        else:
          GDebug.printMesg(2,'Adding tool %s [%s]' % (title,id))
          if pos == 'frame':
+           # Frame type
            window = ToolFrame(self, title)
            control = baseclass(self, self.rootObject, window)
            window.control = control
!         else:
!           # Docked type
!           pane = panemap[pos]
!           control = pane.AddTool(title, baseclass, self.rootObject, self)
!           window = pane.GetWindow()
  
          # Add ourselves to the Window menu
          control._menutool = self._menubar.addTool(window, title, hotkey)
***************
*** 277,290 ****
          self.__dict__["%sWindow" % id] = window
          self.__dict__[id] = control
  
!     if lefties:
        self.horizSplitter.SetSize(self.GetClientSize())
!       self.horizSplitter.SplitVertically(leftPane.GetWindow(), 
self.vertSplitter,
!                 RuntimeSettings.getint(self.runtime_section, 
'DockSplitter-Horiz',200))
  
-     if bottomites:
-       self.vertSplitter.SplitHorizontally(topPane.GetWindow(), 
bottomPane.GetWindow(),
-                 RuntimeSettings.getint(self.runtime_section, 
'DockSplitter-Vert-Right',200))
  
  #    topPane.GetWindow().Fit()
  
--- 303,329 ----
          self.__dict__["%sWindow" % id] = window
          self.__dict__[id] = control
  
!     if self.leftSplitter:
!       self.leftSplitter.SplitHorizontally(panemap['topleft'].GetWindow(),
!                 panemap['bottomleft'].GetWindow(),
!                 RuntimeSettings.getint(self.runtime_section, 
'DockSplitter-Left',200))
!       leftWin = self.leftSplitter
!     else:
!       leftWin = paneMap['bottomleft'] or paneMap['topleft']
! 
!     if self.rightSplitter:
!       self.rightSplitter.SplitHorizontally(panemap['topright'].GetWindow(),
!                 panemap['bottomright'].GetWindow(),
!                 RuntimeSettings.getint(self.runtime_section, 
'DockSplitter-Right',300))
!       rightWin = self.rightSplitter
!     else:
!       rightWin = paneMap['bottomright'] or paneMap['topright']
! 
!     if self.horizSplitter:
        self.horizSplitter.SetSize(self.GetClientSize())
!       self.horizSplitter.SplitVertically(leftWin, rightWin,
!                 RuntimeSettings.getint(self.runtime_section, 
'DockSplitter-TopBottom',200))
  
  
  #    topPane.GetWindow().Fit()
  
***************
*** 332,346 ****
                   'y': abs(y),
                   'height': height,
                   'width': width  }
!     try:
!       settings['docksplitter-vert-right'] = 
self.vertSplitter.GetSashPosition()
!     except AttributeError:
!       pass
  
!     try:
!       settings['DockSplitter-Horiz'] = self.horizSplitter.GetSashPosition()
!     except AttributeError:
!       pass
  
      return ( self.runtime_section, settings )
  
--- 371,385 ----
                   'y': abs(y),
                   'height': height,
                   'width': width  }
!     
!     if self.rightSplitter:
!       settings['docksplitter-right'] = self.rightSplitter.GetSashPosition()
  
!     if self.leftSplitter:
!       settings['docksplitter-left'] = self.leftSplitter.GetSashPosition()
! 
!     if self.horizSplitter:
!       settings['docksplitter-topbottom'] = 
self.horizSplitter.GetSashPosition()
  
      return ( self.runtime_section, settings )
  
Index: gnue/designer/src/PropertyEditor.py
diff -c gnue/designer/src/PropertyEditor.py:1.30 
gnue/designer/src/PropertyEditor.py:1.31
*** gnue/designer/src/PropertyEditor.py:1.30    Mon Nov 25 00:41:41 2002
--- gnue/designer/src/PropertyEditor.py Mon Nov 25 23:23:33 2002
***************
*** 36,41 ****
--- 36,42 ----
  class PropertyEditor (ToolPanel):
  
    runtime_section = 'PropertyEditor'
+   default_dock = DOCK_TOPLEFT
    uses_feedback_header = 1
  
    def init(self):
***************
*** 120,137 ****
        i = 0
  
        for key in self.rowList:
!   
          # This little tidbit does mixed case w/'_' as separators
          words = string.split(key,'_')
!         for j in range(len(words)): 
            try:
              words[j] = string.upper(words[j][0]) + string.lower(words[j][1:])
!           except IndexError: 
              words[j] = string.upper(words[j])
          self.grid.SetRowLabelValue(i,string.join(words,' '))
  
  
!         # Determine the type of Cell Editor we want 
          # (Integer, Boolean, Dropdown, Char)
          if self.attributes[key].has_key('ValueSet'):
            self.grid.SetCellEditor(i, 0, 
RestrictedCellEditor(self.grid,self.attributes[key]))
--- 121,138 ----
        i = 0
  
        for key in self.rowList:
! 
          # This little tidbit does mixed case w/'_' as separators
          words = string.split(key,'_')
!         for j in range(len(words)):
            try:
              words[j] = string.upper(words[j][0]) + string.lower(words[j][1:])
!           except IndexError:
              words[j] = string.upper(words[j])
          self.grid.SetRowLabelValue(i,string.join(words,' '))
  
  
!         # Determine the type of Cell Editor we want
          # (Integer, Boolean, Dropdown, Char)
          if self.attributes[key].has_key('ValueSet'):
            self.grid.SetCellEditor(i, 0, 
RestrictedCellEditor(self.grid,self.attributes[key]))
***************
*** 140,146 ****
          elif self.attributes[key]['Typecast'] in (GTypecast.integer,
                  GTypecast.number, GTypecast.whole):
            self.grid.SetCellEditor(i, 0, 
IntCellEditor(self.grid,self.attributes[key]))
!         else: 
             self.grid.SetCellEditor(i, 0, 
CharCellEditor(self.grid,self.attributes[key]))
  
  
--- 141,147 ----
          elif self.attributes[key]['Typecast'] in (GTypecast.integer,
                  GTypecast.number, GTypecast.whole):
            self.grid.SetCellEditor(i, 0, 
IntCellEditor(self.grid,self.attributes[key]))
!         else:
             self.grid.SetCellEditor(i, 0, 
CharCellEditor(self.grid,self.attributes[key]))
  
  
Index: gnue/designer/src/ToolPanel.py
diff -c gnue/designer/src/ToolPanel.py:1.2 gnue/designer/src/ToolPanel.py:1.3
*** gnue/designer/src/ToolPanel.py:1.2  Mon Nov 25 00:41:42 2002
--- gnue/designer/src/ToolPanel.py      Mon Nov 25 23:23:33 2002
***************
*** 30,39 ****
  from wxPython.wx import *
  from gnue.common import RuntimeSettings, events
  
! DOCK_FRAME = 'frame'    # The tool has its own frame
! DOCK_LEFT = 'left'      # The tool is in the left split of the main window
! DOCK_TOP = 'top'        # The tool is in the top split of the main window
! DOCK_BOTTOM = 'bottom'  # The tool is in the bottom split of the main window
  
  class ToolPanel (wxPanel, events.EventAware):
  
--- 30,40 ----
  from wxPython.wx import *
  from gnue.common import RuntimeSettings, events
  
! DOCK_FRAME = 'frame'      # The tool has its own frame
! DOCK_TOPLEFT = 'topleft'    # The tool is in the left split of the main window
! DOCK_TOPRIGHT = 'topright'    # The tool is in the top split of the main 
window
! DOCK_BOTTOMLEFT = 'bottomleft'  # The tool is in the bottom split of the main 
window
! DOCK_BOTTOMRIGHT = 'bottomright'  # The tool is in the bottom split of the 
main window
  
  class ToolPanel (wxPanel, events.EventAware):
  
Index: gnue/designer/src/TreeView.py
diff -c gnue/designer/src/TreeView.py:1.26 gnue/designer/src/TreeView.py:1.27
*** gnue/designer/src/TreeView.py:1.26  Mon Nov 25 00:41:42 2002
--- gnue/designer/src/TreeView.py       Mon Nov 25 23:23:33 2002
***************
*** 38,47 ****
  from gnue.forms import GFForm, GFObjects, GFLibrary
  from PopupMenu import ObjectMenu
  from Icons import treeIconMap, treeIconList
! from ToolPanel import ToolPanel
  
  class TreeView (ToolPanel):
  
  
    def init(self):
  
--- 38,48 ----
  from gnue.forms import GFForm, GFObjects, GFLibrary
  from PopupMenu import ObjectMenu
  from Icons import treeIconMap, treeIconList
! from ToolPanel import *
  
  class TreeView (ToolPanel):
  
+   default_dock = DOCK_TOPLEFT
  
    def init(self):
  
Index: gnue/designer/src/TriggerEditor.py
diff -c gnue/designer/src/TriggerEditor.py:1.22 
gnue/designer/src/TriggerEditor.py:1.23
*** gnue/designer/src/TriggerEditor.py:1.22     Mon Nov 25 00:41:42 2002
--- gnue/designer/src/TriggerEditor.py  Mon Nov 25 23:23:33 2002
***************
*** 44,50 ****
    runtime_section = "TriggerEditor"
    default_width  = int(wxSystemSettings_GetSystemMetric( wxSYS_SCREEN_X )/3)
    default_height = int(wxSystemSettings_GetSystemMetric( wxSYS_SCREEN_Y )/3)
!   default_dock = DOCK_BOTTOM
  
    def init(self):
  
--- 44,50 ----
    runtime_section = "TriggerEditor"
    default_width  = int(wxSystemSettings_GetSystemMetric( wxSYS_SCREEN_X )/3)
    default_height = int(wxSystemSettings_GetSystemMetric( wxSYS_SCREEN_Y )/3)
!   default_dock = DOCK_BOTTOMRIGHT
  
    def init(self):
  
***************
*** 54,59 ****
--- 54,61 ----
        EditorCtrl = FallbackPythonEditorControl
  
      self.editor = EditorCtrl(self,-1, pos=wxPoint(0,32))
+     self.editor.InEditMode = 0
+ 
  
  #    self.SetSize(self.frame.GetClientSize())
  #    self.editor.SetSize(self.GetClientSize())
***************
*** 70,79 ****
      self.editor.SetReadOnly(1)
      self.triggerList = []
      EVT_SIZE(self, self._onSize)
! # This isn't working! Argh!!!!!
! #    EVT_KILL_FOCUS(self.editor, self.OnKillFocus)
! # So I'll do this instead (slower)
!     EVT_TEXT(self, self.editor.GetId(), self.OnKillFocus)
      self.__ignoreevent = 0
  
      self.mode = NAMED_TRIGGER
--- 72,78 ----
      self.editor.SetReadOnly(1)
      self.triggerList = []
      EVT_SIZE(self, self._onSize)
!     EVT_KILL_FOCUS(self.editor, self.OnKillFocus)
      self.__ignoreevent = 0
  
      self.mode = NAMED_TRIGGER
***************
*** 93,103 ****
                        })
  
      self.rootObject.walk(self.inventoryObject)
  
  
    def OnNamedTriggerSelected(self, event):
!     self.instance.onSetCurrentObject(
!         self.namedTriggerList[event.GetSelection()], __name__)
  
  
    def _onSize(self, event):
--- 92,105 ----
                        })
  
      self.rootObject.walk(self.inventoryObject)
+     if self.object: 
+       self._setObject(object)
  
  
    def OnNamedTriggerSelected(self, event):
!     self.dispatchEvent('ObjectSelected',
!                        object = self.namedTriggerList[event.GetSelection()],
!                        originator = None)
  
  
    def _onSize(self, event):
***************
*** 113,118 ****
--- 115,124 ----
        return
  
      if isinstance(object, GTrigger.GTrigger):
+       self._setObject(object)
+ 
+ 
+   def _setObject(self, object):
        self.__ignoreevent = 1
        self.__ignoreevent = 0
  
***************
*** 126,134 ****
--- 132,142 ----
          self.object._children = []
          GParserHelpers.GContent(self.object, content)
  
+       self.editor.InEditMode = 0
        self.editor.SetText(object.getChildrenAsContent())
        self.editor.EmptyUndoBuffer()
        self.editor.Colourise(0, -1)
+       self.editor.InEditMode = 1
  
        if object.type == 'NAMED':
          self.mode = NAMED_TRIGGER
***************
*** 140,150 ****
          self.mode = EVENT_TRIGGER
  
    def refillNamedTriggerCombo(self):
!     i = self.namedTriggerCombo.GetSelection()
      self.namedTriggerCombo.Clear()
      for i in range(0, len(self.namedTriggerList)):
        self.namedTriggerCombo.Append(self.namedTriggerList[i].name)
!     self.namedTriggerCombo.SetSelection(i)
  
    def inventoryObject(self, object):
      if isinstance(object, GTrigger.GTrigger):
--- 148,166 ----
          self.mode = EVENT_TRIGGER
  
    def refillNamedTriggerCombo(self):
!     cur = self.namedTriggerCombo.GetSelection()
      self.namedTriggerCombo.Clear()
      for i in range(0, len(self.namedTriggerList)):
        self.namedTriggerCombo.Append(self.namedTriggerList[i].name)
!     if cur > len(self.namedTriggerList):
!       cur = 0
! 
!     self.namedTriggerCombo.SetSelection(cur)
!     try:
!       self._setObject(self._namedTriggerList[cur])
!     except:
!       pass
! 
  
    def inventoryObject(self, object):
      if isinstance(object, GTrigger.GTrigger):
***************
*** 167,173 ****
    def onModifyObject (self, event):
      object = event.object
      handler = event.originator
!     
      if object == None:
        return
      if handler != __name__:
--- 183,189 ----
    def onModifyObject (self, event):
      object = event.object
      handler = event.originator
! 
      if object == None:
        return
      if handler != __name__:
***************
*** 209,216 ****
  #
  
   class PythonEditorControl(wxStyledTextCtrl):
!   def __init__(self, *args, **parms):
!     wxStyledTextCtrl.__init__(self, *args, **parms)
  
      self.CmdKeyAssign(ord('B'), wxSTC_SCMOD_CTRL, wxSTC_CMD_ZOOMIN)
      self.CmdKeyAssign(ord('N'), wxSTC_SCMOD_CTRL, wxSTC_CMD_ZOOMOUT)
--- 225,234 ----
  #
  
   class PythonEditorControl(wxStyledTextCtrl):
!   def __init__(self, parent, *args, **parms):
!     wxStyledTextCtrl.__init__(self, parent, *args, **parms)
! 
!     self.instance = parent.instance
  
      self.CmdKeyAssign(ord('B'), wxSTC_SCMOD_CTRL, wxSTC_CMD_ZOOMIN)
      self.CmdKeyAssign(ord('N'), wxSTC_SCMOD_CTRL, wxSTC_CMD_ZOOMOUT)
***************
*** 236,245 ****
--- 254,272 ----
      self.SetMarginWidth(2, 15)
      self.MarkerDefine(wxSTC_MARKNUM_FOLDER, wxSTC_MARK_ARROW, "navy", "navy")
      self.MarkerDefine(wxSTC_MARKNUM_FOLDEROPEN, wxSTC_MARK_ARROWDOWN, "navy", 
"navy")
+ ##    self.MarkerDefine(wxSTC_MARKNUM_FOLDERSUB, wxSTC_MARK_VLINE , "navy", 
"navy")
+ 
+ 
+ ##    self.MarkerDefine(wxSTC_MARKNUM_FOLDERTAIL, 0, "navy", "navy") # 
Collapsed
+ ##    self.MarkerDefine(wxSTC_MARKNUM_FOLDEREND, 0, "navy", "navy") # 
Collapsed
+ ##    self.MarkerDefine(wxSTC_MARKNUM_FOLDEROPENMID, wxSTC_MARK_VLINE,  
"navy", "navy") # Expanded
+ ##    self.MarkerDefine(wxSTC_MARKNUM_FOLDERMIDTAIL, wxSTC_MARK_VLINE, 
"navy", "navy") # End of Nested Folder
+     # Inside of Folder Marker
  
  
      EVT_STC_UPDATEUI(self,    self.GetId(), self.OnUpdateUI)
      EVT_STC_MARGINCLICK(self, self.GetId(), self.OnMarginClick)
+     EVT_STC_MODIFIED(self, self.GetId(), self.OnChange)
  
  
      # Make some styles,  The lexer defines what each style is used for, we
***************
*** 284,290 ****
        # Operators
        self.StyleSetSpec(wxSTC_P_OPERATOR, "bold,size:%(size)d" % faces)
        # Identifiers
!       self.StyleSetSpec(wxSTC_P_IDENTIFIER, 
"fore:#808080,face:%(helv)s,size:%(size)d" % faces)
        # Comment-blocks
        self.StyleSetSpec(wxSTC_P_COMMENTBLOCK, "fore:#7F7F7F,size:%(size)d" % 
faces)
        # End of line where string is not closed
--- 311,317 ----
        # Operators
        self.StyleSetSpec(wxSTC_P_OPERATOR, "bold,size:%(size)d" % faces)
        # Identifiers
!       self.StyleSetSpec(wxSTC_P_IDENTIFIER, 
"fore:#202020,face:%(helv)s,size:%(size)d" % faces)
        # Comment-blocks
        self.StyleSetSpec(wxSTC_P_COMMENTBLOCK, "fore:#7F7F7F,size:%(size)d" % 
faces)
        # End of line where string is not closed
***************
*** 334,339 ****
--- 361,369 ----
      else:
        event.Skip()
  
+   def OnChange(self, evt):
+     if self.InEditMode:
+       self.instance.makeDirty()
  
    def OnUpdateUI(self, evt):
      # check for matching braces
***************
*** 470,481 ****
  #
  # TODO: A lot of this should be configurable
  if wxPlatform == '__WXMSW__':
!   faces = { 'times': 'Times New Roman',
              'mono' : 'Courier New',
!             'helv' : 'Arial',
!             'other': 'Comic Sans MS',
              'size' : 10,
!             'size2': 8,
            }
  else:
  #  faces = { 'times': 'Times',
--- 500,511 ----
  #
  # TODO: A lot of this should be configurable
  if wxPlatform == '__WXMSW__':
!   faces = { 'times': 'Courier New',
              'mono' : 'Courier New',
!             'helv' : 'Courier New',
!             'other': 'Courier New',
              'size' : 10,
!             'size2': 10,
            }
  else:
  #  faces = { 'times': 'Times',
***************
*** 489,496 ****
              'mono' : 'Courier',
              'helv' : 'Courier',
              'other': 'Courier',
!             'size' : 9,
!             'size2': 9,
            }
  
  
--- 519,526 ----
              'mono' : 'Courier',
              'helv' : 'Courier',
              'other': 'Courier',
!             'size' : 10,
!             'size2': 10,
            }
  
  
Index: gnue/designer/src/forms/LayoutEditor/LayoutEditor.py
diff -c gnue/designer/src/forms/LayoutEditor/LayoutEditor.py:1.35 
gnue/designer/src/forms/LayoutEditor/LayoutEditor.py:1.36
*** gnue/designer/src/forms/LayoutEditor/LayoutEditor.py:1.35   Mon Nov 25 
00:41:42 2002
--- gnue/designer/src/forms/LayoutEditor/LayoutEditor.py        Mon Nov 25 
23:23:33 2002
***************
*** 49,55 ****
  class LayoutEditor (ToolPanel):
  
    runtime_section = "FormsLayoutEditor"
!   default_dock = DOCK_TOP
    uses_feedback_header = 1
  
    def init(self):
--- 49,55 ----
  class LayoutEditor (ToolPanel):
  
    runtime_section = "FormsLayoutEditor"
!   default_dock = DOCK_TOPRIGHT
    uses_feedback_header = 1
  
    def init(self):
Index: gnue/forms/src/GFParser.py
diff -c gnue/forms/src/GFParser.py:1.91 gnue/forms/src/GFParser.py:1.92
*** gnue/forms/src/GFParser.py:1.91     Mon Nov 25 11:44:18 2002
--- gnue/forms/src/GFParser.py  Mon Nov 25 23:23:33 2002
***************
*** 202,208 ****
                 'Description': 'If set then the user will be unable to request 
'
                                'that new records be inserted into the block.' 
},
              'datasource': {
!                'References': (('datasource','name'),),
                 'Typecast': GTypecast.name,
                 'Description': 'The name of a datasource (defined in by a '
                                '{<datasource>} tag.) that provides this block '
--- 202,208 ----
                 'Description': 'If set then the user will be unable to request 
'
                                'that new records be inserted into the block.' 
},
              'datasource': {
!                'References': 'datasource.name',
                 'Typecast': GTypecast.name,
                 'Description': 'The name of a datasource (defined in by a '
                                '{<datasource>} tag.) that provides this block '
***************
*** 332,337 ****
--- 332,338 ----
  ##                              'something like the full name of a US state 
but '
  ##                              'only store it\'s 2 character abrievation.' },
              'fk_source': {
+                'References': 'datasource.name',
                 'Typecast': GTypecast.name,
                 'Description': 'TODO' },
              'fk_key': {




reply via email to

[Prev in Thread] Current Thread [Next in Thread]