commit-gnue
[Top][All Lists]
Advanced

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

gnue-forms/src/uidrivers/gtk2/widgets _base.py ...


From: Jan Ischebeck
Subject: gnue-forms/src/uidrivers/gtk2/widgets _base.py ...
Date: Mon, 04 Aug 2003 11:50:14 -0400

CVSROOT:        /cvsroot/gnue
Module name:    gnue-forms
Branch:         
Changes by:     Jan Ischebeck <address@hidden>  03/08/04 11:50:14

Modified files:
        src/uidrivers/gtk2/widgets: _base.py button.py entry.py 
        src/uidrivers/gtk2/widgets/form: widget.py 

Log message:
        small gtk2 uidriver fixes:
        -  checkbox works now
        -  more work on multiline widget
        -  code cleanup

CVSWeb URLs:
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue-forms/src/uidrivers/gtk2/widgets/_base.py.diff?tr1=1.4&tr2=1.5&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue-forms/src/uidrivers/gtk2/widgets/button.py.diff?tr1=1.3&tr2=1.4&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue-forms/src/uidrivers/gtk2/widgets/entry.py.diff?tr1=1.5&tr2=1.6&r1=text&r2=text
http://savannah.gnu.org/cgi-bin/viewcvs/gnue/gnue-forms/src/uidrivers/gtk2/widgets/form/widget.py.diff?tr1=1.4&tr2=1.5&r1=text&r2=text

Patches:
Index: gnue-forms/src/uidrivers/gtk2/widgets/_base.py
diff -c gnue-forms/src/uidrivers/gtk2/widgets/_base.py:1.4 
gnue-forms/src/uidrivers/gtk2/widgets/_base.py:1.5
*** gnue-forms/src/uidrivers/gtk2/widgets/_base.py:1.4  Tue Jun 17 08:31:49 2003
--- gnue-forms/src/uidrivers/gtk2/widgets/_base.py      Mon Aug  4 11:50:14 2003
***************
*** 142,148 ****
--- 142,156 ----
        widget.entry.set_text(value)
        
      elif widget.get_name()=='GtkCheckButton':
+       try:
+         widget.handler_block(widget._clicked_handler)
+       except:
+         pass
        widget.set_active(value)
+       try:
+         widget.handler_unblock(widget._clicked_handler)
+       except:
+         pass
        
      elif widget.get_name()=='MultiLineEdit':
        widget.set_text(value)
Index: gnue-forms/src/uidrivers/gtk2/widgets/button.py
diff -c gnue-forms/src/uidrivers/gtk2/widgets/button.py:1.3 
gnue-forms/src/uidrivers/gtk2/widgets/button.py:1.4
*** gnue-forms/src/uidrivers/gtk2/widgets/button.py:1.3 Mon Jun 16 17:32:30 2003
--- gnue-forms/src/uidrivers/gtk2/widgets/button.py     Mon Aug  4 11:50:14 2003
***************
*** 60,65 ****
--- 60,66 ----
      gfObject  = self._uiDriver._WidgetToGFObj[widget]
      action = events.Event('buttonActivated',gfObject)
      self._eventHandler(action)
+     return gtk.TRUE
  
  
  configuration = {
Index: gnue-forms/src/uidrivers/gtk2/widgets/entry.py
diff -c gnue-forms/src/uidrivers/gtk2/widgets/entry.py:1.5 
gnue-forms/src/uidrivers/gtk2/widgets/entry.py:1.6
*** gnue-forms/src/uidrivers/gtk2/widgets/entry.py:1.5  Tue Jun 17 08:31:49 2003
--- gnue-forms/src/uidrivers/gtk2/widgets/entry.py      Mon Aug  4 11:50:14 2003
***************
*** 37,42 ****
--- 37,43 ----
  import gtk
  from gnue.common import events
  from gnue.forms.uidrivers.gtk2.widgets._base import UIHelper
+ from gnue.common.apps import GDebug
  
  #
  # UIEntry
***************
*** 87,93 ****
        newWidget.set_size_request(2 * event.textWidth, event.textHeight)
        event.container.put(newWidget, object.Char__x * event.widgetWidth,
          (object.Char__y + spacer + (object._gap * spacer)) * 
event.widgetHeight)
!       newWidget.connect('toggled', self.checkboxHandler, newWidget)      
        if event.initialize:
          self._addDefaultEventHandler(newWidget, event.eventHandler,\
                                       self._uiDriver)
--- 88,94 ----
        newWidget.set_size_request(2 * event.textWidth, event.textHeight)
        event.container.put(newWidget, object.Char__x * event.widgetWidth,
          (object.Char__y + spacer + (object._gap * spacer)) * 
event.widgetHeight)
!       newWidget._clicked_handler = newWidget.connect('clicked', 
self.checkboxHandler, newWidget)      
        if event.initialize:
          self._addDefaultEventHandler(newWidget, event.eventHandler,\
                                       self._uiDriver)
***************
*** 127,133 ****
      if isinstance(widget,gtk.Entry) or isinstance(widget,MultiLineEdit):      
        widget.set_position(position)
      else:
!       print "Wrong Place to execute set CursorPosition, widget is a %s" % 
widget
  
    def setSelectedArea(self, selection1, selection2, index=0):
      widget=self.widgets[index]
--- 128,134 ----
      if isinstance(widget,gtk.Entry) or isinstance(widget,MultiLineEdit):      
        widget.set_position(position)
      else:
!       print _("Wrong Place to execute set CursorPosition (%s,%s), widget is a 
%s") % (position,index,widget)
  
    def setSelectedArea(self, selection1, selection2, index=0):
      widget=self.widgets[index]
***************
*** 160,167 ****
      #       this should be passed with the event
  
      # Compatibility layer for 0.5.1
!     text = newtext.decode('utf-8')    
!     #text = newtext.decode('utf-8').encode(gConfig('textEncoding'))
      
      action = events.Event('requestKEYPRESS', text, text=text,
                            code=0, _form=object._form)
--- 161,168 ----
      #       this should be passed with the event
  
      # Compatibility layer for 0.5.1
!     #text = newtext.decode('utf-8')    
!     text = newtext.decode('utf-8').encode(gConfig('textEncoding'))
      
      action = events.Event('requestKEYPRESS', text, text=text,
                            code=0, _form=object._form)
***************
*** 225,240 ****
    #
  
    def checkboxHandler(self,event,widget):
!     buttonStatus=newWidget.get_active()
      GDebug.printMesg(1, "buttonStatus: " + str(buttonStatus))
      gfObject     = self._uiDriver._WidgetToGFObj[widget]
      eventdata = [gfObject, buttonStatus]
      action = events.Event('requestTOGGLECHKBOX', _form=gfObject._form)
!     # TODO: allow veto
!     self._eventHandler(action)
      return gtk.TRUE
  
  
  
  class MultiLineEdit:  
    def __init__(self,value,eventHandler,uiDriver):
--- 226,245 ----
    #
  
    def checkboxHandler(self,event,widget):
!     buttonStatus=widget.get_active()
      GDebug.printMesg(1, "buttonStatus: " + str(buttonStatus))
      gfObject     = self._uiDriver._WidgetToGFObj[widget]
      eventdata = [gfObject, buttonStatus]
      action = events.Event('requestTOGGLECHKBOX', _form=gfObject._form)
!     # don't process event further
!     widget.emit_stop_by_name('clicked') # FIXME: won't accept veto
!     widget.emit_stop_by_name('released') # FIXME: won't accept veto
!     
!     #gtk.idle_add(self._eventHandler,action)  # our eventHandler will be 
called later
      return gtk.TRUE
  
  
+ # TODO: Add support for READONLY edits with: set_editable
  
  class MultiLineEdit:  
    def __init__(self,value,eventHandler,uiDriver):
***************
*** 259,271 ****
--- 264,294 ----
                                               eventHandler,\
                                               uiDriver)
  
+     self.mv_cur_handler = self.baseWidget.connect('move-cursor',\
+                                              self.moveCursorHandler,\
+                                              eventHandler,\
+                                              uiDriver)
+ 
    # Return own name to let other objects identify this obj.
    def get_name(self):
      return 'MultiLineEdit'
  
    def set_position(self,position):
+     try:
+       self.baseWidget.handler_block(self.mv_cur_handler)
+     except:
+       pass
      pos_iter = self.textBuffer.get_iter_at_offset(position)
      self.textBuffer.place_cursor(pos_iter)
+     print position
+     # take care that the cursor is visible
+     cur_mark = self.textBuffer.get_insert()
+     self.baseWidget.scroll_mark_onscreen(cur_mark)
+     #print "SCROLLED TO ", cur_mark
+     try:
+       self.baseWidget.handler_unblock(self.mv_cur_handler)
+     except:
+       pass      
  
    def set_text(self,value):
      try:
***************
*** 274,279 ****
--- 297,303 ----
      except:
        pass
      self.textBuffer.set_text(value)
+     #print "settext"
      try:
        self.textBuffer.handler_unblock(self.insert_handler)
        self.textBuffer.handler_unblock(self.delete_handler)
***************
*** 282,287 ****
--- 306,312 ----
  
    # pass through function calls 
    def __getattr__(self, attr):
+     #print "doing %s" % attr
      if self.baseWidget and attr[1] != '_' and hasattr(self.baseWidget,attr):
        return getattr(self.baseWidget,attr)
      else:
***************
*** 312,317 ****
--- 337,361 ----
  
      object=uiDriver._WidgetToGFObj[self]
  
+     cursor_iter = widget.get_iter_at_mark(widget.get_insert())
+     
+     
+     action = events.Event('requestDELETERANGE',
+                           start_pos=start_pos.get_offset(),
+                           end_pos=end_pos.get_offset(),
+                           position=cursor_iter.get_offset(),
+                           _form=object._form)
+         
+     widget.emit_stop_by_name('delete-range')
+     gtk.idle_add(eventHandler,action)
+ 
+   def moveCursorHandler(self,widget,arg1,arg2,arg3,eventHandler,uiDriver):
+     print "move Cursor (%s,%s,%s)" % (arg1,arg2,arg3)
+     #arg1: movement type (1 = horizontal, 3 = vertikal)
+     #arg2: offset: +/- relative movement
+     object=uiDriver._WidgetToGFObj[self]
+ 
+     return
      cursor_iter = widget.get_iter_at_mark(widget.get_insert())
      
      
Index: gnue-forms/src/uidrivers/gtk2/widgets/form/widget.py
diff -c gnue-forms/src/uidrivers/gtk2/widgets/form/widget.py:1.4 
gnue-forms/src/uidrivers/gtk2/widgets/form/widget.py:1.5
*** gnue-forms/src/uidrivers/gtk2/widgets/form/widget.py:1.4    Mon Jun 16 
17:32:30 2003
--- gnue-forms/src/uidrivers/gtk2/widgets/form/widget.py        Mon Aug  4 
11:50:14 2003
***************
*** 160,184 ****
                   0,1,                    3, 4,
                   gtk.EXPAND | gtk.FILL,  0,
                   0,                      0)
- 
- 
-   #
-   # closeTrap
-   #
-   # intercepts the applications closure and generates an event to the form 
requesting
-   # closure.  Allows the form to control closure.  If the form approves it'll 
send
-   # back an event closing the application
-   #`
-   def closeTrap(self,event):
-     form = self._form 
- 
-     if event.CanVeto():
-       self._uiDriver.dispatchEvent('requestEXIT',_form=self._form)
-     else:
-       object = _eventObjTowxWindow(event)
-       object.Destroy()
                                                  
- 
    #
    # gotoPage
    #
--- 160,166 ----
***************
*** 247,252 ****
--- 229,235 ----
    def hide(self):
      self.containerFrame.hide()
      self.mainWindow.hide()
+     self.mainWindow.set_modal(gtk.FALSE)
      self._visible = 0
      
    def showModal(self):
***************
*** 264,271 ****
    #
    # windowExitEvent
    #
!   # Catches the Exit event from the menu and make sure it closes in such a 
way to
!   # trigger the closeTrap method
    #
    def windowExitEvent(self,*args):
     self._uiDriver.dispatchEvent('requestEXIT',_form=self._form)
--- 247,253 ----
    #
    # windowExitEvent
    #
!   # Catches the Exit event from the menu and request exit (similar to the 
closeTrap method of wx uidrv.)
    #
    def windowExitEvent(self,*args):
     self._uiDriver.dispatchEvent('requestEXIT',_form=self._form)




reply via email to

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