commit-gnue
[Top][All Lists]
Advanced

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

gnue/gnuef/src UIbase.py UIwxpython.py


From: James Thompson
Subject: gnue/gnuef/src UIbase.py UIwxpython.py
Date: Wed, 21 Feb 2001 18:08:29 -0800

CVSROOT:        /cvs
Module name:    gnue
Changes by:     James Thompson <address@hidden> 01/02/21 18:08:29

Modified files:
        gnuef/src      : UIbase.py UIwxpython.py 

Log message:
        Moved more stuff to UI independent UIbase.py

CVSWeb URLs:
http://subversions.gnu.org/cgi-bin/cvsweb/gnue/gnuef/src/UIbase.py.diff?r1=1.20&r2=1.21
http://subversions.gnu.org/cgi-bin/cvsweb/gnue/gnuef/src/UIwxpython.py.diff?r1=1.72&r2=1.73

Patches:
Index: gnue/gnuef/src/UIbase.py
diff -u gnue/gnuef/src/UIbase.py:1.20 gnue/gnuef/src/UIbase.py:1.21
--- gnue/gnuef/src/UIbase.py:1.20       Wed Feb 21 14:54:43 2001
+++ gnue/gnuef/src/UIbase.py    Wed Feb 21 18:08:29 2001
@@ -89,6 +89,18 @@
 
 
   #
+  #Note: new api. onInit is called during the main event loop of
+  #      the UI (i.e. wxPython.mainLoop in this case)
+  #
+  def buildForm(self, form):
+    self.currentObject = [form]
+    self.form = form
+    # Create the UI from the GFForm passed in
+    self.buildUI()
+    
+
+
+  #
   # buildUI
   #
   # Creates the user interface from the form definition
@@ -125,6 +137,8 @@
 
     if self.currentObject[0].getObjectType() in self.containerWidgets:
       self.currentWidget.pop(0)
+
+
   #############################################################################
   #
   # Generic Incomming Event Handlers
@@ -175,6 +189,15 @@
     self._exit()
 
   #
+  # switchFocus
+  #
+  # Moves the focus to a specific UI widget
+  #
+  def switchFocus(self, event):
+    index = self.formToUI[event.data][1]
+    self.formToUIWidget[event.data].indexedFocus(index)
+
+  #
   # aboutBox
   #
   # Displays a modal about box on the screen.
@@ -194,7 +217,17 @@
 
     about.showModal()
     about.destroy()
-                            
+
+  #
+  # msgBox
+  #
+  def msgBox(self,event):
+    message = event.data.message
+    caption = event.data.caption
+    dialog = UI.UIMessageBox(self.mainWindow, message, caption)
+    dialog.ShowModal()
+    dialog.Destroy()
+
   #
   # adjustMultiView
   #
@@ -249,6 +282,61 @@
             index = block.recordCount
             
         self.formToUI[entry][1] = index                                        
                                                                                
                                                                                
    
+  #
+  # updateEntry
+  #
+  def updateEntry(self,event):
+    index = self.formToUI[event.data][1]
+
+    block = event.data.block
+    currentRecord = block.currentRecord
+
+    if hasattr(event.data, 'style'):
+      style = event.data.style
+    else:
+      style = 'text'
+
+    # Fill the prior spots
+    for count in range(index):
+      value = 
block.dataSourceLink.getField(currentRecord-(index-count),event.data.field)
+      if style == 'dropdown':
+        value = event.data.allowedValues()[value]
+
+      self.formToUIWidget[event.data].setValue(value,count)
+
+    # fill currently indexed spot
+    if style == 'dropdown':
+      value = event.data.allowedValues()[event.data.getValue()]
+    else:
+      value = event.data.getValue()
+      
+    self.formToUIWidget[event.data].setValue(value, index)
+    
self.formToUIWidget[event.data].setCursorPosition(event.data.cursorPosition, 
index)
+
+    # Fill trailing spots
+    #
+    # You must skip the matching index but
+    # you do not want to just add 1 to count
+    # as the formulas would then be off
+    count = index
+    while count < int(event.data.visibleCount):
+      if count != index:
+        if currentRecord+(count-index) > block.recordCount:
+          value = ""
+        else:
+          value = 
block.dataSourceLink.getField(currentRecord+(count-index),event.data.field)
+          if style == 'dropdown':
+            value = event.data.allowedValues()[value]
+        self.formToUIWidget[event.data].setValue(value, count)
+      count = count +1
+                                                                               
                                                                   
+#############################################################################
+#
+# UIWidget class
+#
+# A generic class that handles most the internals of widget management in 
+# gnue forms
+#
 
 class UIWidget:
   def __init__(self, object, container, textWidth, textHeight, widgetWidth, 
widgetHeight, interface):
Index: gnue/gnuef/src/UIwxpython.py
diff -u gnue/gnuef/src/UIwxpython.py:1.72 gnue/gnuef/src/UIwxpython.py:1.73
--- gnue/gnuef/src/UIwxpython.py:1.72   Wed Feb 21 14:54:43 2001
+++ gnue/gnuef/src/UIwxpython.py        Wed Feb 21 18:08:29 2001
@@ -14,12 +14,12 @@
 
 from GFForm import *
 from GFEvent import *
-import GFOptions
-import GFDebug
 from UIbase import *
 
-import string
 import sys
+import string
+import GFDebug
+import GFOptions
 
 #
 # GFUserInterface
@@ -65,8 +65,8 @@
     self.MainLoop() # simply call the wxApp's MainLoop method
 
   #
+  # getModule
   #
-  #
   def getModule(self):
     return GFUserInterface.__module__
 
@@ -77,7 +77,6 @@
   # It is used the build the basic UI
   #
   def OnInit(self):
-
     wxInitAllImageHandlers()
     
     #
@@ -233,15 +232,6 @@
     self.mainWindow.Show(true)
     return true
 
-  #
-  #Note: new api. onInit is called during the main event loop of
-  #      the UI (i.e. wxPython.mainLoop in this case)
-  #
-  def buildForm(self, form):
-    self.currentObject = [form]
-    self.form = form
-    # Create the UI from the GFForm passed in
-    self.buildUI()
 
   def activateForm(self, form):
     self.mainWindow.SetSize(wxSize(int(self.form.width)*int(self.widgetWidth),
@@ -298,68 +288,8 @@
   #
   # Processes the incomming events from other objects
   #
-  def updateEntry(self,event):
-    index = self.formToUI[event.data][1]
-    
-    block = event.data.block
-    currentRecord = block.currentRecord
-
-    if hasattr(event.data, 'style'):
-      style = event.data.style
-    else:
-      style = 'text'
-
-    # Fill the prior spots 
-    for count in range(index):
-      value = 
block.dataSourceLink.getField(currentRecord-(index-count),event.data.field)
-      if style == 'dropdown':
-        value = event.data.allowedValues()[value]
-
-      self.formToUI[event.data][0][count].SetEvtHandlerEnabled(FALSE)
-      self.formToUI[event.data][0][count].SetValue(value)
-      self.formToUI[event.data][0][count].SetEvtHandlerEnabled(TRUE)
 
-    # fill currently indexed spot
-    if style == 'dropdown':
-      value = event.data.allowedValues()[event.data.getValue()]
-    else:
-      value = event.data.getValue()
-    
-    self.formToUI[event.data][0][index].SetEvtHandlerEnabled(FALSE)
-    self.formToUI[event.data][0][index].SetValue(value)
-    self.formToUI[event.data][0][index].SetEvtHandlerEnabled(TRUE)
-
-    
self.formToUI[event.data][0][index].SetInsertionPoint(event.data.cursorPosition)
-
-    # Fill trailing spots
-    #
-    # You must skip the matching index but
-    # you do not want to just add 1 to count
-    # as the formulas would then be off
-    count = index
-    while count < int(event.data.visibleCount):
-      if count != index:
-        if currentRecord+(count-index) > block.recordCount:
-          value = ""
-        else:
-          value = 
block.dataSourceLink.getField(currentRecord+(count-index),event.data.field)
-          if style == 'dropdown':
-            value = event.data.allowedValues()[value]
-        self.formToUI[event.data][0][count].SetEvtHandlerEnabled(FALSE)
-        self.formToUI[event.data][0][count].SetValue(value)
-        self.formToUI[event.data][0][count].SetEvtHandlerEnabled(TRUE)
-      count = count +1   
-
-  #
-  # switchFocus
-  #
-  # Moves the focus to a specific UI widget
   #
-  def switchFocus(self, event):
-    index = self.formToUI[event.data][1]
-    self.formToUI[event.data][0][index].SetFocus()
-    
-  #
   # gotoPage
   #
   # makes the requested page visible on the screen
@@ -368,6 +298,7 @@
     index = self.formToUI[event.data][1]
     self.visiblePage.Show(FALSE)
     self.formToUI[event.data][0][index].Show(TRUE)
+
     self.visiblePage = self.formToUI[event.data][0][index]
     self.visiblePage.Show(TRUE)
     self.visiblePage.SetSize(wxSize(int(self.form.width)*int(self.widgetWidth),
@@ -382,24 +313,6 @@
   def formAlert(self, event):
     wxBell()
     self.statusBar.SetStatusText(event.data,0)
-
-  #
-  # msgBox
-  #
-  # Displays a modal message box on the screen
-  #
-  def msgBox(self, event):
-    if hasattr(self,'frame'):
-      parent = wxPyTypeCast( self.mainWindow, 'wxWindow' )
-    else:
-      parent = NULL
-      
-    message = event.data.message
-    caption = event.data.caption
-    dialog = wxMessageDialog(parent, message, caption, 
style=wxOK|wxICON_EXCLAMATION )
-    dialog.ShowModal()
-    dialog.Destroy()
-
   
   #############################################################################
   #
@@ -633,23 +546,37 @@
 #
 # Provides a UI widget set of std functions to reduce the number of functions
 # require in each UIclass listed below
-
 class UIHelper:
   def showModal(self):
     self.ShowModal()
 
-  def show(self):
-    self.Show(TRUE)
+  def show(self, flag=TRUE, index=None):
+    if index:
+      self.widgets[index].Show(flag)
+    else:
+      self.Show(flag)
 
   def destroy(self):
     self.Destroy()
+
+  def indexedFocus(self, index):
+    self.widgets[index].SetFocus()
+
+  def setValue(self, value, index=0):
+    self.widgets[index].SetEvtHandlerEnabled(FALSE)
+    self.widgets[index].SetValue(value)
+    self.widgets[index].SetEvtHandlerEnabled(TRUE)
+
+
+  def setCursorPosition(self, position, index=0):
+    self.widgets[index].SetInsertionPoint(position)
     
 #
 # UILabel
 #
 # Widget set specific function that creates a single instance of a label
 #
-class UILabel(UIWidget):
+class UILabel(UIWidget, UIHelper):
   def createWidget(self, object, container, textWidth, textHeight, 
widgetWidth, widgetHeight,interface,spacer):
     style = wxALIGN_LEFT|wxST_NO_AUTORESIZE
 
@@ -671,7 +598,7 @@
 #
 # Widget set specific function that creates a single instance of a border box
 #
-class UIBox(UIWidget):
+class UIBox(UIWidget, UIHelper):
   def createWidget(self, object, container, textWidth, textHeight, 
widgetWidth, widgetHeight,interface,spacer):
     newWidget = wxStaticBox(container,-1,str(object.label),
                             
wxPoint(int(object.x)*int(widgetWidth)+(int(widgetWidth)/2),
@@ -687,7 +614,7 @@
 # Widget set specific function that creates a single instance of a scroll bar 
used
 # to navigate multiple records
 #
-class UIScrollBar(UIWidget):
+class UIScrollBar(UIWidget, UIHelper):
   def createWidget(self, object, container, textWidth, textHeight, 
widgetWidth, widgetHeight,interface,spacer):
     newWidget =wxScrollBar(container,-1,
                            
wxPoint(int(object.x)*int(widgetWidth),(int(object.y)+spacer)*int(widgetHeight)),
@@ -700,7 +627,7 @@
 #
 # Widget set specific function that creates a single instance of a button
 #
-class UIButton(UIWidget):
+class UIButton(UIWidget, UIHelper):
   def createWidget(self, object, container, textWidth, textHeight, 
widgetWidth, widgetHeight,interface,spacer):
     newWidget = wxButton(container,-1,str(object.label),
                          
wxPoint(int(object.x)*int(widgetWidth),(int(object.y)+spacer)*int(widgetHeight)),
@@ -716,7 +643,7 @@
 #
 # Widget set specific function that creates a single instance of a page
 #
-class UIPage(UIWidget):
+class UIPage(UIWidget, UIHelper):
   def createWidget(self, object, container, textWidth, textHeight, 
widgetWidth, widgetHeight,interface,spacer):
     newWidget = wxPanel(container, -1,wxDefaultPosition,container.GetSize())
     newWidget.Show(FALSE)
@@ -731,7 +658,7 @@
 #
 # Widget set specific function that creates a single instance of a data entry 
widget
 #
-class UIEntry(UIWidget):
+class UIEntry(UIWidget, UIHelper):
   def createWidget(self, object, container, textWidth, textHeight, 
widgetWidth, widgetHeight,interface,spacer):
     if hasattr(object,'style'):
       style = object.style
@@ -776,7 +703,7 @@
 #
 # Widget set specific function that creates a single instance of a Form widget
 #
-class UIForm(UIWidget):
+class UIForm(UIWidget, UIHelper):
   def createWidget(self, object, container, textWidth, textHeight, 
widgetWidth, widgetHeight,interface,spacer):
     newWidget = wxPanel(interface.mainWindow.panel,-1, wxDefaultPosition)
     EVT_CLOSE(interface.mainWindow,interface.closeTrap)
@@ -801,3 +728,12 @@
                              "  Description: %s\n" 
                              % (programVersion, formName 
,formVersion,author,description),
                              "About", wxOK | wxICON_INFORMATION)
+#
+# UImessageBox
+#
+# A dialog box providing basic message info
+#
+class UIMessageBox(wxMessageDialog, UIHelper):
+  def __init__(self, interface, message, caption):
+    wxMessageDialog.__init__(self, interface, message, caption, 
style=wxOK|wxICON_EXCLAMATION)
+



reply via email to

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