commit-gnue
[Top][All Lists]
Advanced

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

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


From: johannes
Subject: r6026 - trunk/gnue-forms/src/uidrivers/gtk2/widgets
Date: Thu, 22 Jul 2004 09:22:31 -0500 (CDT)

Author: johannes
Date: 2004-07-22 09:22:30 -0500 (Thu, 22 Jul 2004)
New Revision: 6026

Modified:
   trunk/gnue-forms/src/uidrivers/gtk2/widgets/scrollbar.py
Log:
Introduced ScrollBar widget


Modified: trunk/gnue-forms/src/uidrivers/gtk2/widgets/scrollbar.py
===================================================================
--- trunk/gnue-forms/src/uidrivers/gtk2/widgets/scrollbar.py    2004-07-22 
13:40:49 UTC (rev 6025)
+++ trunk/gnue-forms/src/uidrivers/gtk2/widgets/scrollbar.py    2004-07-22 
14:22:30 UTC (rev 6026)
@@ -1,6 +1,9 @@
+# GNU Enterprise Forms - GTK UI driver - Scrollbar Widget
 #
-# This file is part of GNU Enterprise.
+# Copyright 2001-2004 Free Software Foundation
 #
+# This file is part of GNU Enterprise
+#
 # GNU Enterprise is free software; you can redistribute it
 # and/or modify it under the terms of the GNU General Public
 # License as published by the Free Software Foundation; either
@@ -16,61 +19,76 @@
 # write to the Free Software Foundation, Inc., 59 Temple Place
 # - Suite 330, Boston, MA 02111-1307, USA.
 #
-# Copyright 2000-2004 Free Software Foundation
-#
-# FILE:
-# gtk2/widgets/scrollbar.py
-#
-# DESCRIPTION:
-# A part of the gtk2 based user interface driver for GNUe forms.
-#
-# NOTES:
-#
+# $Id$
+
 import gtk
 
+from gnue.common import events
 from gnue.forms.uidrivers.gtk2.widgets._base import UIHelper
-from gnue.common.apps import GDebug
 
-#
-# UIScrollBar
-#
-# Widget set specific function that creates a single instance of a scroll bar 
used
-# to navigate multiple records
-#
-class UIScrollBar(UIHelper):
-  def _createWidget(self, event, spacer):
-    object = event.object
+# =============================================================================
+# This class implements a scrollbar for navigating multiple records
+# =============================================================================
 
-    GDebug.printMesg(2, "size #1: %s,%s " % (str(object.Char__height *\
-                                                 event.widgetHeight),
-                                             str((object.Char__y + spacer)* \
-                                                 event.widgetHeight)))
+class UIScrollBar (UIHelper):
 
-    adjustment = gtk.Adjustment(70,500,80,2,3,80)
+  # ---------------------------------------------------------------------------
+  # Create the GTK widget
+  # ---------------------------------------------------------------------------
+
+  def _createWidget (self, event, spacer):
+    gfObject = event.object
+    gfBlock  = gfObject._block
+
+    self.adjustment = gtk.Adjustment (1, 1, gfBlock._recordCount, 1)
+
+    newWidget = gtk.VScrollbar (self.adjustment)
+    height    = gfObject.Char__height * event.widgetHeight
+    newWidget.set_size_request (-1, height)
+    self.adjustment._scrollHandler = self.adjustment.connect ('value-changed',
+                                                self._scrollHandler, gfObject)
     
-    newWidget = gtk.VScrollbar(adjustment)
-    newWidget.set_size_request(object.Char__width * event.widgetWidth,
-                               object.Char__height * event.widgetHeight)
+    event.container.put (newWidget, self.itemX, self.itemY)
+    newWidget.show ()
+
+    gfBlock.registerScrollbar (self)
     
-    event.container.put(newWidget,600,60)
-    
-    GDebug.printMesg(2, "size #2: %s,%s " % (str(object.Char__x * \
-                                                 event.widgetWidth),\
-                                             str((object.Char__y + spacer) * \
-                                                 event.widgetHeight)))
-    #event.container.show_all()
-    GDebug.printMesg(1, "i am in UIScrollBar")
     return newWidget
 
-    object = event.object
-    newWidget =wxScrollBar(event.container,-1,
-                           
wxPoint(object.Char__x*event.widgetWidth,(object.Char__y+spacer)*event.widgetHeight),
-                           
wxSize(object.Char__width*event.widgetWidth,object.Char__height*event.widgetHeight),
-                           wxSB_VERTICAL)
-  
 
+  # ---------------------------------------------------------------------------
+  # Handle changes of the adjustment's value
+  # ---------------------------------------------------------------------------
+
+  def _scrollHandler (self, adjustment, gfObject):
+    gDebug (1, "Adjust to %s" % (int (adjustment.value)))
+    action = events.Event ('requestRECORDNUMBER', int (adjustment.value),
+                           _form = gfObject._form)
+    adjustment.stop_emission ('value-changed')
+    gtk.idle_add (self._eventHandler, action)
+    return True
+
+
+  # ---------------------------------------------------------------------------
+  # adjust the scrollbar to a new position
+  # ---------------------------------------------------------------------------
+
+  def adjustScrollbar (self, position, count):
+    if int (self.adjustment.upper) != count:
+      self.adjustment.upper = float (count)
+
+    newPos = position + 1
+    self._blockHandler (self.adjustment, '_scrollHandler')
+    self.adjustment.set_value (newPos)
+    self._blockHandler (self.adjustment, '_scrollHandler', True)
+
+
+# -----------------------------------------------------------------------------
+# Configuration data
+# -----------------------------------------------------------------------------
+
 configuration = {
-    'baseClass'  : UIScrollBar,
-    'provides'   : 'GFScrollBar',
-    'container'  : 0,
-    }
+  'baseClass'  : UIScrollBar,
+  'provides'   : 'GFScrollBar',
+  'container'  : 0,
+}


Property changes on: trunk/gnue-forms/src/uidrivers/gtk2/widgets/scrollbar.py
___________________________________________________________________
Name: svn:keywords
   - +Id
   + Id





reply via email to

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