/[gnue]/gnue-forms/src/uidrivers/gtk2/widgets/entry.py
ViewVC logotype

Diff of /gnue-forms/src/uidrivers/gtk2/widgets/entry.py

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

revision 1.5 by siesel, Tue Jun 17 12:31:49 2003 UTC revision 1.6 by siesel, Mon Aug 4 15:50:14 2003 UTC
# Line 37  Line 37 
37  import gtk  import gtk
38  from gnue.common import events  from gnue.common import events
39  from gnue.forms.uidrivers.gtk2.widgets._base import UIHelper  from gnue.forms.uidrivers.gtk2.widgets._base import UIHelper
40    from gnue.common.apps import GDebug
41    
42  #  #
43  # UIEntry  # UIEntry
# Line 87  class UIEntry(UIHelper): Line 88  class UIEntry(UIHelper):
88        newWidget.set_size_request(2 * event.textWidth, event.textHeight)        newWidget.set_size_request(2 * event.textWidth, event.textHeight)
89        event.container.put(newWidget, object.Char__x * event.widgetWidth,        event.container.put(newWidget, object.Char__x * event.widgetWidth,
90          (object.Char__y + spacer + (object._gap * spacer)) * event.widgetHeight)          (object.Char__y + spacer + (object._gap * spacer)) * event.widgetHeight)
91        newWidget.connect('toggled', self.checkboxHandler, newWidget)              newWidget._clicked_handler = newWidget.connect('clicked', self.checkboxHandler, newWidget)      
92        if event.initialize:        if event.initialize:
93          self._addDefaultEventHandler(newWidget, event.eventHandler,\          self._addDefaultEventHandler(newWidget, event.eventHandler,\
94                                       self._uiDriver)                                       self._uiDriver)
# Line 127  class UIEntry(UIHelper): Line 128  class UIEntry(UIHelper):
128      if isinstance(widget,gtk.Entry) or isinstance(widget,MultiLineEdit):            if isinstance(widget,gtk.Entry) or isinstance(widget,MultiLineEdit):      
129        widget.set_position(position)        widget.set_position(position)
130      else:      else:
131        print "Wrong Place to execute set CursorPosition, widget is a %s" % widget        print _("Wrong Place to execute set CursorPosition (%s,%s), widget is a %s") % (position,index,widget)
132    
133    def setSelectedArea(self, selection1, selection2, index=0):    def setSelectedArea(self, selection1, selection2, index=0):
134      widget=self.widgets[index]      widget=self.widgets[index]
# Line 160  class UIEntry(UIHelper): Line 161  class UIEntry(UIHelper):
161      #       this should be passed with the event      #       this should be passed with the event
162    
163      # Compatibility layer for 0.5.1      # Compatibility layer for 0.5.1
164      text = newtext.decode('utf-8')          #text = newtext.decode('utf-8')    
165      #text = newtext.decode('utf-8').encode(gConfig('textEncoding'))      text = newtext.decode('utf-8').encode(gConfig('textEncoding'))
166            
167      action = events.Event('requestKEYPRESS', text, text=text,      action = events.Event('requestKEYPRESS', text, text=text,
168                            code=0, _form=object._form)                            code=0, _form=object._form)
# Line 225  class UIEntry(UIHelper): Line 226  class UIEntry(UIHelper):
226    #    #
227    
228    def checkboxHandler(self,event,widget):    def checkboxHandler(self,event,widget):
229      buttonStatus=newWidget.get_active()      buttonStatus=widget.get_active()
230      GDebug.printMesg(1, "buttonStatus: " + str(buttonStatus))      GDebug.printMesg(1, "buttonStatus: " + str(buttonStatus))
231      gfObject     = self._uiDriver._WidgetToGFObj[widget]      gfObject     = self._uiDriver._WidgetToGFObj[widget]
232      eventdata = [gfObject, buttonStatus]      eventdata = [gfObject, buttonStatus]
233      action = events.Event('requestTOGGLECHKBOX', _form=gfObject._form)      action = events.Event('requestTOGGLECHKBOX', _form=gfObject._form)
234      # TODO: allow veto      # don't process event further
235      self._eventHandler(action)      widget.emit_stop_by_name('clicked') # FIXME: won't accept veto
236        widget.emit_stop_by_name('released') # FIXME: won't accept veto
237        
238        #gtk.idle_add(self._eventHandler,action)  # our eventHandler will be called later
239      return gtk.TRUE      return gtk.TRUE
240    
241    
242    # TODO: Add support for READONLY edits with: set_editable
243    
244  class MultiLineEdit:    class MultiLineEdit:  
245    def __init__(self,value,eventHandler,uiDriver):    def __init__(self,value,eventHandler,uiDriver):
# Line 259  class MultiLineEdit: Line 264  class MultiLineEdit:
264                                               eventHandler,\                                               eventHandler,\
265                                               uiDriver)                                               uiDriver)
266    
267        self.mv_cur_handler = self.baseWidget.connect('move-cursor',\
268                                                 self.moveCursorHandler,\
269                                                 eventHandler,\
270                                                 uiDriver)
271    
272    # Return own name to let other objects identify this obj.    # Return own name to let other objects identify this obj.
273    def get_name(self):    def get_name(self):
274      return 'MultiLineEdit'      return 'MultiLineEdit'
275    
276    def set_position(self,position):    def set_position(self,position):
277        try:
278          self.baseWidget.handler_block(self.mv_cur_handler)
279        except:
280          pass
281      pos_iter = self.textBuffer.get_iter_at_offset(position)      pos_iter = self.textBuffer.get_iter_at_offset(position)
282      self.textBuffer.place_cursor(pos_iter)      self.textBuffer.place_cursor(pos_iter)
283        print position
284        # take care that the cursor is visible
285        cur_mark = self.textBuffer.get_insert()
286        self.baseWidget.scroll_mark_onscreen(cur_mark)
287        #print "SCROLLED TO ", cur_mark
288        try:
289          self.baseWidget.handler_unblock(self.mv_cur_handler)
290        except:
291          pass      
292    
293    def set_text(self,value):    def set_text(self,value):
294      try:      try:
# Line 274  class MultiLineEdit: Line 297  class MultiLineEdit:
297      except:      except:
298        pass        pass
299      self.textBuffer.set_text(value)      self.textBuffer.set_text(value)
300        #print "settext"
301      try:      try:
302        self.textBuffer.handler_unblock(self.insert_handler)        self.textBuffer.handler_unblock(self.insert_handler)
303        self.textBuffer.handler_unblock(self.delete_handler)        self.textBuffer.handler_unblock(self.delete_handler)
# Line 282  class MultiLineEdit: Line 306  class MultiLineEdit:
306    
307    # pass through function calls    # pass through function calls
308    def __getattr__(self, attr):    def __getattr__(self, attr):
309        #print "doing %s" % attr
310      if self.baseWidget and attr[1] != '_' and hasattr(self.baseWidget,attr):      if self.baseWidget and attr[1] != '_' and hasattr(self.baseWidget,attr):
311        return getattr(self.baseWidget,attr)        return getattr(self.baseWidget,attr)
312      else:      else:
# Line 315  class MultiLineEdit: Line 340  class MultiLineEdit:
340      cursor_iter = widget.get_iter_at_mark(widget.get_insert())      cursor_iter = widget.get_iter_at_mark(widget.get_insert())
341            
342            
343        action = events.Event('requestDELETERANGE',
344                              start_pos=start_pos.get_offset(),
345                              end_pos=end_pos.get_offset(),
346                              position=cursor_iter.get_offset(),
347                              _form=object._form)
348            
349        widget.emit_stop_by_name('delete-range')
350        gtk.idle_add(eventHandler,action)
351    
352      def moveCursorHandler(self,widget,arg1,arg2,arg3,eventHandler,uiDriver):
353        print "move Cursor (%s,%s,%s)" % (arg1,arg2,arg3)
354        #arg1: movement type (1 = horizontal, 3 = vertikal)
355        #arg2: offset: +/- relative movement
356        object=uiDriver._WidgetToGFObj[self]
357    
358        return
359        cursor_iter = widget.get_iter_at_mark(widget.get_insert())
360        
361        
362      action = events.Event('requestDELETERANGE',      action = events.Event('requestDELETERANGE',
363                            start_pos=start_pos.get_offset(),                            start_pos=start_pos.get_offset(),
364                            end_pos=end_pos.get_offset(),                            end_pos=end_pos.get_offset(),

Legend:
Removed from v.1.5  
changed lines
  Added in v.1.6

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