[Top][All Lists]
[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)
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- gnue-forms/src/uidrivers/gtk2/widgets _base.py ...,
Jan Ischebeck <=