commit-gnue
[Top][All Lists]
Advanced

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

r6626 - trunk/gnue-forms/src/uidrivers/gtk2/widgets


From: kilo
Subject: r6626 - trunk/gnue-forms/src/uidrivers/gtk2/widgets
Date: Fri, 5 Nov 2004 04:42:33 -0600 (CST)

Author: kilo
Date: 2004-11-05 04:42:32 -0600 (Fri, 05 Nov 2004)
New Revision: 6626

Modified:
   trunk/gnue-forms/src/uidrivers/gtk2/widgets/_base.py
Log:
Highlight currently focused entry

Modified: trunk/gnue-forms/src/uidrivers/gtk2/widgets/_base.py
===================================================================
--- trunk/gnue-forms/src/uidrivers/gtk2/widgets/_base.py        2004-11-05 
08:09:51 UTC (rev 6625)
+++ trunk/gnue-forms/src/uidrivers/gtk2/widgets/_base.py        2004-11-05 
10:42:32 UTC (rev 6626)
@@ -60,7 +60,7 @@
     newWidget = self._createWidget (event, spacer)
     if event.initialize:
       self._addToCrossRef (newWidget, gfObject, self)
-      
+
     return newWidget
 
 
@@ -127,7 +127,7 @@
     record an additional 'requestJUMPRECORD' event will be fired.
     """
     gDebug (2, "FOCUS-IN-EVENT: %s for %s" % (widget, lookupWidget))
-  
+
     gfObject = self._uiDriver._WidgetToGFObj [lookupWidget]
     _formRef = gfObject._form
 
@@ -173,15 +173,15 @@
     """
     for widget in self.widgets:
       widget.hide ()
-          
 
+
   def showModal (self):
     gDebug (1, "showModal not implemented for gtk2 driver")
 
   def destroy (self):
     gDebug (1, "destroy not implemented for gtk2 driver")
-        
 
+
   # ---------------------------------------------------------------------------
   # Set the focus to a given widget
   # ---------------------------------------------------------------------------
@@ -194,6 +194,7 @@
     """
     widget = self.widgets [index]
     gDebug (1, "indexedFocus: %s [%s]" % (widget, index))
+    widget.__focused = True
 
     item    = isinstance (widget, gtk.Combo) and widget.entry or widget
 
@@ -202,6 +203,23 @@
     gDebug (3, "Grab focus to %s for %s" % (item, widget))
     item.grab_focus ()
 
+
+    #Make the focused widget colored differently
+    #We store the widget's original color so we can set it back to normal...
+    #TODO: make focus color configurable
+    if isinstance(widget, gtk.Button):
+      try:
+        item.__color
+      except:
+        item.__color = item.get_style().bg[gtk.STATE_NORMAL]
+      item.modify_bg(gtk.STATE_NORMAL, gtk.gdk.color_parse('#FFFFEC'))
+    else:
+      try:
+        item.__color
+      except:
+        item.__color = item.get_style().base[gtk.STATE_NORMAL]
+      item.modify_base(gtk.STATE_NORMAL, gtk.gdk.color_parse('#FFFFEC'))
+
     # To avoid the automatic select-all in a combo box, we explicitly set the
     # selection to the current position only
     if isinstance (widget, gtk.Combo):
@@ -218,7 +236,14 @@
   def loseFocus (self):
     for widget in self.widgets:
       gDebug (3, "Lose focus: %s" % widget)
+      widget.__focused = False
 
+      #Set the widget's color back to original
+      if isinstance(widget, gtk.Button):
+        widget.modify_bg(gtk.STATE_NORMAL, widget.__color)
+      else:
+        widget.modify_base(gtk.STATE_NORMAL, widget.__color)
+
       if isinstance (widget, gtk.Combo):
         widget.entry.select_region (0, 0)
 
@@ -237,22 +262,22 @@
     """
     widget = self.widgets [index]
     gDebug (1, "setValue %s [%s] %s" % (repr (value), index, widget))
-    
+
     if not isinstance (widget, gtk.CheckButton) and \
         type (value) != types.UnicodeType:
       gDebug (3, "converting %s to unicode using %s" % \
           (repr (value), gConfigForms ('textEncoding')))
       value = unicode (value, gConfigForms ('textEncoding'))
 
-    
+
     if isinstance (widget, gtk.Combo):
       gfObject = self._uiDriver._WidgetToGFObj [widget]
-      
-      # Check if list of allowed value (~= foreign keys, ~= dropdown content) 
+
+      # Check if list of allowed value (~= foreign keys, ~= dropdown content)
       # changed
       if gfObject.style == "dropdown":
         self._updateChoices (widget, gfObject)
-        
+
       self._blockHandler (widget.entry, '_insert_handler')
       self._blockHandler (widget.entry, '_delete_handler')
 
@@ -262,7 +287,7 @@
       self._blockHandler (widget.entry, '_delete_handler', True)
 
 
-      
+
     elif isinstance (widget, gtk.CheckButton):
       self._blockHandler (widget, '_clickedHandler')
       widget.set_active (value)





reply via email to

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