[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[gnue] r8647 - trunk/gnue-forms/src/uidrivers/wx26/widgets
From: |
johannes |
Subject: |
[gnue] r8647 - trunk/gnue-forms/src/uidrivers/wx26/widgets |
Date: |
Mon, 4 Sep 2006 09:02:28 -0500 (CDT) |
Author: johannes
Date: 2006-09-04 09:02:28 -0500 (Mon, 04 Sep 2006)
New Revision: 8647
Modified:
trunk/gnue-forms/src/uidrivers/wx26/widgets/grid.py
Log:
Add a scrollbar to a grid automatically (still needs refinement)
Modified: trunk/gnue-forms/src/uidrivers/wx26/widgets/grid.py
===================================================================
--- trunk/gnue-forms/src/uidrivers/wx26/widgets/grid.py 2006-08-31 14:51:24 UTC
(rev 8646)
+++ trunk/gnue-forms/src/uidrivers/wx26/widgets/grid.py 2006-09-04 14:02:28 UTC
(rev 8647)
@@ -79,9 +79,27 @@
self.widget.Bind(wx.EVT_SIZE, self.__on_size)
self.widget.Bind(wx.EVT_MOUSEWHEEL, self.__on_mousewheel)
- self.widget.SetSizer(wx.GridBagSizer())
- self._container = self.widget
+ inner = wx.BoxSizer(wx.HORIZONTAL)
+ self.widget.SetSizer(inner)
+ self._container = wx.Panel(self.widget, -1)
+ self._container.SetSizer(wx.GridBagSizer())
+
+ inner.Add(self._container, 1, wx.EXPAND | wx.ALL, 3)
+
+ self.scroll = wx.ScrollBar(self.widget, -1, style=wx.SB_VERTICAL)
+ inner.Add(self.scroll, 0, wx.EXPAND | wx.TOP | wx.BOTTOM, 3)
+
+ block = self._gfObject._block
+
+ crec = block._currentRecord
+ recs = block._recordCount
+ self.pg_size = self._gfObject.rows
+ block.register_scrollbar(self)
+
+ self.scroll.Bind(wx.EVT_SCROLL, self.__on_scroll)
+ self.do_adjust_scrollbar(crec, recs)
+
self._max = self._gfObject.rows
self._visible = self._max
@@ -90,7 +108,7 @@
owner.add_widgets(self, spacer)
- return self._container.GetSizer()
+ return None
# -------------------------------------------------------------------------
@@ -116,7 +134,7 @@
for clx in colnum:
sizer.AddGrowableCol(clx)
- pnl = wx.Panel(self.widget, -1, style=wx.RAISED_BORDER)
+ pnl = wx.Panel(self._container, -1, style=wx.RAISED_BORDER)
vbx = wx.BoxSizer(wx.VERTICAL)
pnl.SetSizer(vbx)
@@ -190,14 +208,19 @@
forward = event.GetWheelRotation() < 0
block = self._gfObject.get_block()
- if self._form._currentBlock != block:
- # FIXME: this does not look like a good solution, does it?
- self._request('FOCUS', data=block._entryList[0])
- return
+ delta = -1
+ if forward:
+ delta = 1
+ else:
+ delta = -1
+ block._event_scroll_delta(delta)
- self._request(['PREVRECORD', 'NEXTRECORD'][forward])
+ # -------------------------------------------------------------------------
+ def __on_scroll(self, event):
+ self._gfObject._block._event_scroll_to_record(event.GetPosition())
+ event.Skip()
# -------------------------------------------------------------------------
# Add new records to the grid (after resizing it)
@@ -279,7 +302,14 @@
item._gfObject._rows = self._visible
+ def do_adjust_scrollbar(self, position, count):
+ """
+ Adjust the thumb-position and the number of rows of the scrollbar
+ """
+ self.scroll.SetScrollbar(position, self.pg_size, count,
+ self.pg_size-1, True)
+
# =============================================================================
# Configuration data
# =============================================================================
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [gnue] r8647 - trunk/gnue-forms/src/uidrivers/wx26/widgets,
johannes <=