/[papo]/gnue/forms/src/uidrivers/gtk2/UIdriver.py
ViewVC logotype

Diff of /gnue/forms/src/uidrivers/gtk2/UIdriver.py

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.1 by styxman, Thu Nov 14 22:16:54 2002 UTC revision 1.1.2.1 by anthonyl, Tue Mar 4 22:18:23 2003 UTC
# Line 16  Line 16 
16  # write to the Free Software Foundation, Inc., 59 Temple Place  # write to the Free Software Foundation, Inc., 59 Temple Place
17  # - Suite 330, Boston, MA 02111-1307, USA.  # - Suite 330, Boston, MA 02111-1307, USA.
18  #  #
19  # Copyright 2000-2002 Free Software Foundation  # Copyright 2000-2003 Free Software Foundation
20  #  #
21  # FILE:  # FILE:
22  # UIpythongtk.py  # UIpythongtk.py
# Line 49  Line 49 
49    
50  # On Debian/unstable systems, you probably like to uncomment the following two  # On Debian/unstable systems, you probably like to uncomment the following two
51  # lines to use gtk2.0 instead of 1.2  # lines to use gtk2.0 instead of 1.2
52  #import pygtk  #
53  #pygtk.require('2.0')  # TODO:  reading the FAQs on PyGTK, this should be done
54    # TODO:  REGARDLESS of debian unstable (it has to do with
55    # TODO:  parallel installs of GTK) but it seems RedHat 8.0
56    # TODO:  has an older, buggy version of PyGTK :(
57    # TODO:  I've enclosed in a try: block... does this work
58    # TODO:  on RH8?
59    #
60    #try:
61    import pygtk
62    pygtk.require('2.0')
63    #except ImportError:
64    #  pass
65    
66  import gtk  import gtk
67    
# Line 109  count=0 Line 120  count=0
120  class GFUserInterface(GFUserInterfaceBase):  class GFUserInterface(GFUserInterfaceBase):
121    def __init__(self, eventController, disableSplash = None):    def __init__(self, eventController, disableSplash = None):
122    
123      self._WIDGETS = WIDGETS      GFUserInterfaceBase.__init__(self,eventController)
124    
125        self._WIDGETS = {'GFLabel'     : UILabel,
126                         'GFBox'       : UIBox,
127                         'GFPage'      : UIPage,
128                         'GFForm'      : UIForm,
129                         'GFEntry'     : UIEntry,
130                         'GFButton'    : UIButton,
131                         'GFScrollBar' : UIScrollBar,
132                         }
133    
134      self._DIALOGS = {'about'       :UIAbout,      self._DIALOGS = {'about'       :UIAbout,
135                       'messageBox'  :UIMessageBox,                       'messageBox'  :UIMessageBox,
136                       }                       }
137    
     self._aboutDialog = UIAbout  
     self._messageDialog = UIMessageBox  
   
138      self._disableSplash = disableSplash      self._disableSplash = disableSplash
     GFUserInterfaceBase.__init__(self,eventController)  
139    
140      global _EVENTPROCESSOR      global _EVENTPROCESSOR
141      _EVENTPROCESSOR = self.dispatchEvent      _EVENTPROCESSOR = self.dispatchEvent
142      global _PROMPTFORRECORD      global _PROMPTFORRECORD
143      _PROMPTFORRECORD = self.promptForRecordNumber      _PROMPTFORRECORD = self.promptForRecordNumber
144    
145      self.forms = {}      self.init(disableSplash)
     self.init()  
146    
147    #    #
148    # init    # init
# Line 135  class GFUserInterface(GFUserInterfaceBas Line 150  class GFUserInterface(GFUserInterfaceBas
150    # Routine called by wxWindows when wxApp instance is created    # Routine called by wxWindows when wxApp instance is created
151    # It is used the build the basic UI    # It is used the build the basic UI
152    #    #
153    def init(self):    def init(self,disableSplash):
154    
155      #      #
156      # Splash screen      # Splash screen
157      #      #
158      # how to get rid of this thing???      # how to get rid of this thing???
159      # disabled for now...      # disabled for now...
160      if not self._disableSplash and 0:      if not disableSplash and 0:
161          self.splash = gtk.Window(gtk.TRUE)          self.splash = gtk.Window(gtk.TRUE)
162          # not the best, but working decision          # not the best, but working decision
163          self.splash.connect('destroy', lambda win: self.splash.hide())          self.splash.connect('destroy', lambda win: self.splash.hide())
# Line 636  class GFUserInterface(GFUserInterfaceBas Line 651  class GFUserInterface(GFUserInterfaceBas
651    
652      if not _NOTEBOOK:      if not _NOTEBOOK:
653        self.visiblePage = self._formToUI[event.data][0]        self.visiblePage = self._formToUI[event.data][0]
654        self.visiblePage.set_size_request(self._form.width*self.widgetWidth,        self.visiblePage.set_size_request(self._form._layout.Char__width*self.widgetWidth,
655                                        (self._form.height+self.menu_sb_space)*self.widgetHeight)                                        (self._form._layout.Char__height+self.menu_sb_space)*self.widgetHeight)
656      else:      else:
657        self.visiblePage = self._formToUI[event.data][0]        self.visiblePage = self._formToUI[event.data][0]
658    
# Line 811  class GFUserInterface(GFUserInterfaceBas Line 826  class GFUserInterface(GFUserInterfaceBas
826    
827    
828    
829  class UIHelper:  class UIHelper(UIWidget):
830    def showModal(self):    def showModal(self):
831      #$self.ShowModal()      #$self.ShowModal()
832      None      None
# Line 899  class UIHelper: Line 914  class UIHelper:
914  #  #
915    
916    
917  class UILabel(UIHelper, UIWidget):  class UILabel(UIHelper):
918    alignmentStyle = { 'left'  : gtk.JUSTIFY_LEFT,    alignmentStyle = { 'left'  : gtk.JUSTIFY_LEFT,
919                       'center': gtk.JUSTIFY_CENTER,                       'center': gtk.JUSTIFY_CENTER,
920                       'right' : gtk.JUSTIFY_RIGHT,                       'right' : gtk.JUSTIFY_RIGHT,
# Line 910  class UILabel(UIHelper, UIWidget): Line 925  class UILabel(UIHelper, UIWidget):
925    
926      newWidget = gtk.Label(str(object.text))      newWidget = gtk.Label(str(object.text))
927      newWidget.set_size_request(self.itemWidth, self.itemHeight)      newWidget.set_size_request(self.itemWidth, self.itemHeight)
928      event.container.put(newWidget, object.x * event.widgetWidth,      event.container.put(newWidget, object.Char__x * event.widgetWidth,
929        (object.y + spacer + (spacer * object._gap)) * event.widgetHeight)        (object.Char__y + spacer + (spacer * object._gap)) * event.widgetHeight)
930      newWidget.set_justify(self.alignmentStyle[object.alignment])      newWidget.set_justify(self.alignmentStyle[object.alignment])
931      event.container.show_all()      event.container.show_all()
932      return newWidget      return newWidget
# Line 927  class UILabel(UIHelper, UIWidget): Line 942  class UILabel(UIHelper, UIWidget):
942  #  #
943  # Widget set specific function that creates a single instance of a border box  # Widget set specific function that creates a single instance of a border box
944  #  #
945  class UIBox(UIHelper, UIWidget):  class UIBox(UIHelper):
946    def _createWidget(self, event, spacer):    def _createWidget(self, event, spacer):
947      #$print "inside UIBOX"      #$print "inside UIBOX"
948      GDebug.printMesg(1, "inside UIBOX")      GDebug.printMesg(1, "inside UIBOX")
# Line 940  class UIBox(UIHelper, UIWidget): Line 955  class UIBox(UIHelper, UIWidget):
955  # Widget set specific function that creates a single instance of a scroll bar used  # Widget set specific function that creates a single instance of a scroll bar used
956  # to navigate multiple records  # to navigate multiple records
957  #  #
958  class UIScrollBar(UIHelper, UIWidget):  class UIScrollBar(UIHelper):
959    def _createWidget(self, event, spacer):    def _createWidget(self, event, spacer):
960      object = event.object      object = event.object
961    
962      #$print object.height*widgetHeight,(object.y+spacer)*widgetHeight      #$print object.Char__height*widgetHeight,(object.Char__y+spacer)*widgetHeight
963      GDebug.printMesg(2, "size #1: " + str(object.height * event.widgetHeight) +      GDebug.printMesg(2, "size #1: " + str(object.Char__height * event.widgetHeight) +
964        ", " +str((object.y + spacer) * event.widgetHeight))        ", " +str((object.Char__y + spacer) * event.widgetHeight))
965      adjustment = gtk.Adjustment(70,500,80,2,3,80)      adjustment = gtk.Adjustment(70,500,80,2,3,80)
966      newWidget = gtk.VScrollbar(adjustment)      newWidget = gtk.VScrollbar(adjustment)
967      newWidget.set_size_request(object.width * event.widgetWidth,      newWidget.set_size_request(object.Char__width * event.widgetWidth,
968        object.height * event.widgetHeight)        object.Char__height * event.widgetHeight)
969      event.container.put(newWidget,600,60)      event.container.put(newWidget,600,60)
970      #$print object.x*widgetWidth,(object.y+spacer)*widgetHeight      #$print object.Char__x*widgetWidth,(object.Char__y+spacer)*widgetHeight
971      GDebug.printMesg(2, "size #2: " + str(object.x * event.widgetWidth) +      GDebug.printMesg(2, "size #2: " + str(object.Char__x * event.widgetWidth) +
972        ", " + str((object.y + spacer) * event.widgetHeight))        ", " + str((object.Char__y + spacer) * event.widgetHeight))
973      event.container.show_all()      event.container.show_all()
974      #$print "i am in UIScrollBar"      #$print "i am in UIScrollBar"
975      GDebug.printMesg(1, "i am in UIScrollBar")      GDebug.printMesg(1, "i am in UIScrollBar")
# Line 970  class UIScrollBar(UIHelper, UIWidget): Line 985  class UIScrollBar(UIHelper, UIWidget):
985  #  #
986  # Widget set specific function that creates a single instance of a button  # Widget set specific function that creates a single instance of a button
987  #  #
988  class UIButton(UIHelper, UIWidget):  class UIButton(UIHelper):
989    def _createWidget(self, event, spacer):    def _createWidget(self, event, spacer):
990      object = event.object      object = event.object
991    
992      newWidget = gtk.Button(str(object.label))      newWidget = gtk.Button(str(object.label))
993      newWidget.set_size_request(object.x * event.widgetWidth,      newWidget.set_size_request(object.Char__x * event.widgetWidth,
994        (object.y + spacer) * event.widgetHeight)        (object.Char__y + spacer) * event.widgetHeight)
995      event.container.put(newWidget, object.x * event.widgetWidth,      event.container.put(newWidget, object.Char__x * event.widgetWidth,
996        (object.y + spacer) * event.widgetHeight)        (object.Char__y + spacer) * event.widgetHeight)
997      if event.initialize:      if event.initialize:
998        newWidget.connect('clicked', self.buttonHandler, newWidget)        newWidget.connect('clicked', self.buttonHandler, newWidget)
999        #_setDefaultEventHandlers(newWidget,initialize)        #_setDefaultEventHandlers(newWidget,initialize)
# Line 988  class UIButton(UIHelper, UIWidget): Line 1003  class UIButton(UIHelper, UIWidget):
1003    def buttonHandler(self,event,newWidget):    def buttonHandler(self,event,newWidget):
1004      action = None      action = None
1005      gfObject  = _WidgetToGFObj[newWidget]      gfObject  = _WidgetToGFObj[newWidget]
1006      action = events.Event('fireTRIGGER',gfObject.trigger)      action = events.Event('buttonActivated',gfObject)
1007    
1008      if action:      if action:
1009        _EVENTPROCESSOR(action)        _EVENTPROCESSOR(action)
# Line 1005  class UIButton(UIHelper, UIWidget): Line 1020  class UIButton(UIHelper, UIWidget):
1020  #  #
1021  # Note: The event trap for changing notebook pages is attached to the UIForm  # Note: The event trap for changing notebook pages is attached to the UIForm
1022  #  #
1023  class UIPage(UIHelper, UIWidget):  class UIPage(UIHelper):
1024    def _createWidget(self, event, spacer):    def _createWidget(self, event, spacer):
1025      if _NOTEBOOK:      if _NOTEBOOK:
1026        newWidget = gtk.Fixed()        newWidget = gtk.Fixed()
# Line 1033  class UIPage(UIHelper, UIWidget): Line 1048  class UIPage(UIHelper, UIWidget):
1048  # Widget set specific function that creates a single instance of a data entry widget  # Widget set specific function that creates a single instance of a data entry widget
1049  #  #
1050    
1051  class UIEntry(UIHelper, UIWidget):  class UIEntry(UIHelper):
1052    def _createWidget(self, event, spacer):    def _createWidget(self, event, spacer):
1053      object = event.object      object = event.object
1054      style = object.style      style = object.style
1055    
1056      if style == 'dropdown':      if style == 'dropdown':
1057        if event.initialize:        if event.initialize:
1058          self.choices = object.allowedValues()[1]          self.choices = object._field.allowedValues()[1]
1059        else:        else:
1060          self.choices = [""]          self.choices = [""]
1061    
# Line 1048  class UIEntry(UIHelper, UIWidget): Line 1063  class UIEntry(UIHelper, UIWidget):
1063        newWidget = gtk.Combo()        newWidget = gtk.Combo()
1064        newWidget.set_popdown_strings(self.choices)        newWidget.set_popdown_strings(self.choices)
1065        newWidget.set_size_request(self.itemWidth, self.itemHeight)        newWidget.set_size_request(self.itemWidth, self.itemHeight)
1066        event.container.put(newWidget, object.x * event.widgetWidth,        event.container.put(newWidget, object.Char__x * event.widgetWidth,
1067          (object.y + spacer + (object._gap * spacer)) * event.widgetHeight)          (object.Char__y + spacer + (object._gap * spacer)) * event.widgetHeight)
1068        newWidget.list.connect('select-child', self.comboHandler, newWidget)        newWidget.list.connect('select-child', self.comboHandler, newWidget)
1069    
1070        #$print self.comboHandlerID        #$print self.comboHandlerID
# Line 1059  class UIEntry(UIHelper, UIWidget): Line 1074  class UIEntry(UIHelper, UIWidget):
1074      elif style == 'label':      elif style == 'label':
1075        newWidget = gtk.Label("")        newWidget = gtk.Label("")
1076        newWidget.set_size_request(self.itemWidth, self.itemHeight + 1)        newWidget.set_size_request(self.itemWidth, self.itemHeight + 1)
1077        event.container.put(newWidget, object.x * event.widgetWidth,        event.container.put(newWidget, object.Char__x * event.widgetWidth,
1078          (object.y + spacer + (object._gap * spacer)) * event.widgetHeight)          (object.Char__y + spacer + (object._gap * spacer)) * event.widgetHeight)
1079        _setDefaultEventHandlers(newWidget, event.initialize, newWidget)        _setDefaultEventHandlers(newWidget, event.initialize, newWidget)
1080    
1081      elif style == 'checkbox':      elif style == 'checkbox':
1082        newWidget = gtk.CheckButton()        newWidget = gtk.CheckButton()
1083        newWidget.set_size_request(2 * event.textWidth, event.textHeight)        newWidget.set_size_request(2 * event.textWidth, event.textHeight)
1084        event.container.put(newWidget, object.x * event.widgetWidth,        event.container.put(newWidget, object.Char__x * event.widgetWidth,
1085          (object.y + spacer + (object._gap * spacer)) * event.widgetHeight)          (object.Char__y + spacer + (object._gap * spacer)) * event.widgetHeight)
1086        newWidget.connect('toggled', self.checkboxHandler, newWidget)        newWidget.connect('toggled', self.checkboxHandler, newWidget)
1087    
1088        #$_setDefaultEventHandlers(newWidget,initialize,newWidget)        #$_setDefaultEventHandlers(newWidget,initialize,newWidget)
# Line 1081  class UIEntry(UIHelper, UIWidget): Line 1096  class UIEntry(UIHelper, UIWidget):
1096        #$textBuffer.set_text(value)        #$textBuffer.set_text(value)
1097        newWidget=gtk.Entry()        newWidget=gtk.Entry()
1098        newWidget.set_size_request(self.itemWidth, self.itemHeight+1)        newWidget.set_size_request(self.itemWidth, self.itemHeight+1)
1099        event.container.put(newWidget, object.x * event.widgetWidth,        event.container.put(newWidget, object.Char__x * event.widgetWidth,
1100          (object.y + spacer + (object._gap * spacer)) * event.widgetHeight)          (object.Char__y + spacer + (object._gap * spacer)) * event.widgetHeight)
1101        _setDefaultEventHandlers(newWidget, event.initialize, newWidget)        _setDefaultEventHandlers(newWidget, event.initialize, newWidget)
1102    
1103      event.container.show_all()      event.container.show_all()
# Line 1120  class UIEntry(UIHelper, UIWidget): Line 1135  class UIEntry(UIHelper, UIWidget):
1135  #  #
1136  # Widget set specific function that creates a single instance of a Form widget  # Widget set specific function that creates a single instance of a Form widget
1137  #  #
1138  class UIForm(UIHelper, UIWidget):  class UIForm(UIHelper):
1139    tabStyles = {'left':gtk.POS_LEFT,    tabStyles = {'left':gtk.POS_LEFT,
1140                 'right':gtk.POS_RIGHT,                 'right':gtk.POS_RIGHT,
1141                 'bottom':gtk.POS_BOTTOM,                 'bottom':gtk.POS_BOTTOM,
# Line 1130  class UIForm(UIHelper, UIWidget): Line 1145  class UIForm(UIHelper, UIWidget):
1145    def _createWidget(self, event, spacer):    def _createWidget(self, event, spacer):
1146      global _NOTEBOOK, _SINGLEPAGE      global _NOTEBOOK, _SINGLEPAGE
1147    
1148      if event.object.tabbed:      if event.object._layout:
1149        tabstyle = self.tabStyles[event.object.tabbed]        tabstyle = self.tabStyles[event.object._layout.tabbed]
1150        newWidget = gtk.Notebook()        newWidget = gtk.Notebook()
1151        newWidget.set_tab_pos(tabstyle)        newWidget.set_tab_pos(tabstyle)
1152        event.interface.currentWidget[0].add(newWidget)        event.interface.currentWidget[0].add(newWidget)
# Line 1576  class UILoginHandler(GLoginHandler.Login Line 1591  class UILoginHandler(GLoginHandler.Login
1591       #$else:       #$else:
1592        #$event.Skip()        #$event.Skip()
1593    
   
   
   
   
   
 # Needed by Designer  
 WIDGETS = {'GFLabel'     : UILabel,  
            'GFBox'       : UIBox,  
            'GFPage'      : UIPage,  
            'GFForm'      : UIForm,  
            'GFEntry'     : UIEntry,  
            'GFButton'    : UIButton,  
            'GFScrollBar' : UIScrollBar,  
           }  
   
   
1594  # Shortcut  # Shortcut
1595  images_dir = GConfig.getInstalledBase('forms_images','common_images') + '/'  images_dir = GConfig.getInstalledBase('forms_images','common_images') + '/'
1596    

Legend:
Removed from v.1.1  
changed lines
  Added in v.1.1.2.1

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26