[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[gnue] r10108 - in trunk/gnue-forms/src: GFObjects uidrivers/curses uidr
From: |
reinhard |
Subject: |
[gnue] r10108 - in trunk/gnue-forms/src: GFObjects uidrivers/curses uidrivers/curses/widgets uidrivers/qt3/widgets uidrivers/qt4/widgets uidrivers/wx/widgets |
Date: |
Wed, 9 Dec 2009 15:06:52 -0600 (CST) |
Author: reinhard
Date: 2009-12-09 15:06:51 -0600 (Wed, 09 Dec 2009)
New Revision: 10108
Modified:
trunk/gnue-forms/src/GFObjects/GFButton.py
trunk/gnue-forms/src/GFObjects/GFContainer.py
trunk/gnue-forms/src/GFObjects/GFEntry.py
trunk/gnue-forms/src/GFObjects/GFGridLine.py
trunk/gnue-forms/src/GFObjects/GFPage.py
trunk/gnue-forms/src/GFObjects/GFTabStop.py
trunk/gnue-forms/src/uidrivers/curses/UIdriver.py
trunk/gnue-forms/src/uidrivers/curses/widgets/_base.py
trunk/gnue-forms/src/uidrivers/curses/widgets/entry.py
trunk/gnue-forms/src/uidrivers/qt3/widgets/_base.py
trunk/gnue-forms/src/uidrivers/qt3/widgets/entry.py
trunk/gnue-forms/src/uidrivers/qt4/widgets/_base.py
trunk/gnue-forms/src/uidrivers/qt4/widgets/entry.py
trunk/gnue-forms/src/uidrivers/wx/widgets/_base.py
trunk/gnue-forms/src/uidrivers/wx/widgets/entry.py
Log:
Disable labels for disabled controls, and disable boxes which only contain
disabled children.
Modified: trunk/gnue-forms/src/GFObjects/GFButton.py
===================================================================
--- trunk/gnue-forms/src/GFObjects/GFButton.py 2009-12-09 17:27:09 UTC (rev
10107)
+++ trunk/gnue-forms/src/GFObjects/GFButton.py 2009-12-09 21:06:51 UTC (rev
10108)
@@ -83,7 +83,7 @@
# Determine whether this widget is enabled or disabled
# -------------------------------------------------------------------------
- def _is_enabled_(self, index):
+ def _is_enabled_(self, index=None):
"""
Return True if the widget should be enabled, False if it should be
disabled.
Modified: trunk/gnue-forms/src/GFObjects/GFContainer.py
===================================================================
--- trunk/gnue-forms/src/GFObjects/GFContainer.py 2009-12-09 17:27:09 UTC
(rev 10107)
+++ trunk/gnue-forms/src/GFObjects/GFContainer.py 2009-12-09 21:06:51 UTC
(rev 10108)
@@ -36,6 +36,8 @@
A base class for all GFObjects that can be containers
"""
+ ui_enabled = True
+
# -------------------------------------------------------------------------
# Determine the focus order of a given list of entries
# -------------------------------------------------------------------------
@@ -102,3 +104,33 @@
returnValue.extend(tabStop)
return returnValue
+
+
+ # -------------------------------------------------------------------------
+ # Determine whether this container is enabled or disabled
+ # -------------------------------------------------------------------------
+
+ def update_status(self):
+ """
+ Update the enabled/disabled status for this widget.
+ """
+
+ # This is never called for GFBlock objects.
+
+ for child in self._children:
+ # Safety check for comments
+ if hasattr(child, '_is_enabled_'):
+ if child._is_enabled_():
+ new_ui_enabled = True
+ break
+ if hasattr(child, 'ui_enabled'):
+ if child.ui_enabled:
+ new_ui_enabled = True
+ break
+ else:
+ new_ui_enabled = False
+
+ if new_ui_enabled != self.ui_enabled:
+ self.ui_enabled = new_ui_enabled
+ self.uiWidget._ui_set_enabled_(self.ui_enabled)
+ self.getParent().update_status()
Modified: trunk/gnue-forms/src/GFObjects/GFEntry.py
===================================================================
--- trunk/gnue-forms/src/GFObjects/GFEntry.py 2009-12-09 17:27:09 UTC (rev
10107)
+++ trunk/gnue-forms/src/GFObjects/GFEntry.py 2009-12-09 21:06:51 UTC (rev
10108)
@@ -109,7 +109,7 @@
# Determine whether this widget is enabled or disabled
# -------------------------------------------------------------------------
- def _is_enabled_(self, index):
+ def _is_enabled_(self, index=None):
"""
Return True if the widget should be enabled, False if it should be
disabled.
Modified: trunk/gnue-forms/src/GFObjects/GFGridLine.py
===================================================================
--- trunk/gnue-forms/src/GFObjects/GFGridLine.py 2009-12-09 17:27:09 UTC
(rev 10107)
+++ trunk/gnue-forms/src/GFObjects/GFGridLine.py 2009-12-09 21:06:51 UTC
(rev 10108)
@@ -47,6 +47,7 @@
def __init__(self, parent=None):
GFContainer.__init__(self, parent, "GFGridLine")
+
# -------------------------------------------------------------------------
# Number of rows has changed
# -------------------------------------------------------------------------
@@ -54,3 +55,17 @@
def rows_changed(self, new_rows):
self._rows = new_rows
+
+
+ # -------------------------------------------------------------------------
+ # Determine whether this container is enabled or disabled
+ # -------------------------------------------------------------------------
+
+ def update_status(self):
+ """
+ Update the enabled/disabled status for this widget.
+ """
+
+ # We never consider grids disabled, because they are at least useful to
+ # scroll to a different record.
+ pass
Modified: trunk/gnue-forms/src/GFObjects/GFPage.py
===================================================================
--- trunk/gnue-forms/src/GFObjects/GFPage.py 2009-12-09 17:27:09 UTC (rev
10107)
+++ trunk/gnue-forms/src/GFObjects/GFPage.py 2009-12-09 21:06:51 UTC (rev
10108)
@@ -167,3 +167,16 @@
"""
self.processTrigger('POST-FOCUSOUT')
+
+
+ # -------------------------------------------------------------------------
+ # Determine whether this container is enabled or disabled
+ # -------------------------------------------------------------------------
+
+ def update_status(self):
+ """
+ Update the enabled/disabled status for this widget.
+ """
+
+ # We never disable whole pages.
+ pass
Modified: trunk/gnue-forms/src/GFObjects/GFTabStop.py
===================================================================
--- trunk/gnue-forms/src/GFObjects/GFTabStop.py 2009-12-09 17:27:09 UTC (rev
10107)
+++ trunk/gnue-forms/src/GFObjects/GFTabStop.py 2009-12-09 21:06:51 UTC (rev
10108)
@@ -348,13 +348,14 @@
for index in range(refresh_start, self.__last_enabled_row + 1):
self.uiWidget._ui_set_enabled_(index, self._is_enabled_(index))
+ self.getParent().update_status()
# -------------------------------------------------------------------------
# Determine whether this widget is enabled or disabled
# -------------------------------------------------------------------------
- def _is_enabled_(self, index):
+ def _is_enabled_(self, index=None):
"""
Return True if the widget should be enabled, False if it should be
disabled.
@@ -384,7 +385,7 @@
return False
# Attached field is not editable in current mode: not navigable.
- if isinstance(self, GFFieldBound) and not self._field.is_editable():
+ if isinstance(self, GFFieldBound) and not self._field.is_editable(0):
return False
# Control not navigable in query mode.
@@ -574,7 +575,7 @@
# Determine whether this widget is enabled or disabled
# -------------------------------------------------------------------------
- def _is_enabled_(self, index):
+ def _is_enabled_(self, index=None):
"""
Return True if the widget should be enabled, False if it should be
disabled.
@@ -583,7 +584,10 @@
if not GFTabStop._is_enabled_(self, index):
return False
else:
- offset = index - self._visibleIndex
+ if index is None:
+ offset = 0
+ else:
+ offset = index - self._visibleIndex
return self._field.is_editable(offset)
Modified: trunk/gnue-forms/src/uidrivers/curses/UIdriver.py
===================================================================
--- trunk/gnue-forms/src/uidrivers/curses/UIdriver.py 2009-12-09 17:27:09 UTC
(rev 10107)
+++ trunk/gnue-forms/src/uidrivers/curses/UIdriver.py 2009-12-09 21:06:51 UTC
(rev 10108)
@@ -70,20 +70,21 @@
curses.init_pair(9, curses.COLOR_WHITE, curses.COLOR_RED)
self.attr = {}
- self.attr['title'] = curses.color_pair(1)
- self.attr['page'] = curses.color_pair(2)
- self.attr['currentpage'] = curses.color_pair(3)
- self.attr['background'] = curses.color_pair(4)
- self.attr['entry'] = curses.color_pair(5)
- self.attr['focusentry'] = curses.color_pair(6) + curses.A_BOLD
- self.attr['disabled'] = curses.color_pair(5) + curses.A_BOLD
- self.attr['status'] = curses.color_pair(7)
- self.attr['fkeys'] = curses.color_pair(4)
- self.attr['infomsg'] = curses.color_pair(8) + curses.A_BOLD
- self.attr['warnmsg'] = curses.color_pair(9) + curses.A_BOLD
- self.attr['errormsg'] = curses.color_pair(9) + curses.A_BOLD \
- + curses.A_BLINK
- self.attr['window 1'] = curses.color_pair(5)
+ self.attr['title'] = curses.color_pair(1)
+ self.attr['page'] = curses.color_pair(2)
+ self.attr['currentpage'] = curses.color_pair(3)
+ self.attr['background'] = curses.color_pair(4)
+ self.attr['backdisabled'] = curses.color_pair(4) + curses.A_BOLD
+ self.attr['entry'] = curses.color_pair(5)
+ self.attr['focusentry'] = curses.color_pair(6) + curses.A_BOLD
+ self.attr['disabled'] = curses.color_pair(5) + curses.A_BOLD
+ self.attr['status'] = curses.color_pair(7)
+ self.attr['fkeys'] = curses.color_pair(4)
+ self.attr['infomsg'] = curses.color_pair(8) + curses.A_BOLD
+ self.attr['warnmsg'] = curses.color_pair(9) + curses.A_BOLD
+ self.attr['errormsg'] = curses.color_pair(9) + curses.A_BOLD \
+ + curses.A_BLINK
+ self.attr['window 1'] = curses.color_pair(5)
self.attr['focusdisabled'] = curses.color_pair(6)
self.__current_form = None
Modified: trunk/gnue-forms/src/uidrivers/curses/widgets/_base.py
===================================================================
--- trunk/gnue-forms/src/uidrivers/curses/widgets/_base.py 2009-12-09
17:27:09 UTC (rev 10107)
+++ trunk/gnue-forms/src/uidrivers/curses/widgets/_base.py 2009-12-09
21:06:51 UTC (rev 10108)
@@ -277,6 +277,16 @@
_hints_ = {}
# -------------------------------------------------------------------------
+ # Set enabled/disabled status for this box
+ # -------------------------------------------------------------------------
+
+ def _ui_set_enabled_(self, value):
+
+ # Nothing to do for a box
+ pass
+
+
+ # -------------------------------------------------------------------------
# Order the size hints according to their proportion
# -------------------------------------------------------------------------
Modified: trunk/gnue-forms/src/uidrivers/curses/widgets/entry.py
===================================================================
--- trunk/gnue-forms/src/uidrivers/curses/widgets/entry.py 2009-12-09
17:27:09 UTC (rev 10107)
+++ trunk/gnue-forms/src/uidrivers/curses/widgets/entry.py 2009-12-09
21:06:51 UTC (rev 10108)
@@ -336,6 +336,20 @@
attribute = property(__get_attr, None, None,
""" The current attribute to use for this widget """)
+ # -------------------------------------------------------------------------
+
+ def __get_background_attribute(self):
+
+ if not self.enabled:
+ attr = 'backdisabled'
+ else:
+ attr = 'background'
+
+ return self.entry._uiDriver.attr[attr]
+
+ background_attribute = property(__get_background_attribute, None, None,
+ """ The current attribute to use for this widget """)
+
# =============================================================================
# Static Text style entry
# =============================================================================
@@ -354,7 +368,7 @@
text = ("%s" % self.value)[:self.width]
text += ' ' * (self.width - len(text))
self.entry._parent.write(self.left, self.top, text,
- self.entry._uiDriver.attr['background'])
+ self.background_attribute)
@@ -752,7 +766,7 @@
text = label[:self.width]
text += ' ' * (self.width - len(text))
self.entry._parent.write(self.left, self.top, text,
- self.entry._uiDriver.attr['background'])
+ self.background_attribute)
if self.value is None:
text = '[-]'
Modified: trunk/gnue-forms/src/uidrivers/qt3/widgets/_base.py
===================================================================
--- trunk/gnue-forms/src/uidrivers/qt3/widgets/_base.py 2009-12-09 17:27:09 UTC
(rev 10107)
+++ trunk/gnue-forms/src/uidrivers/qt3/widgets/_base.py 2009-12-09 21:06:51 UTC
(rev 10108)
@@ -135,6 +135,15 @@
# -------------------------------------------------------------------------
+ # Enable/disable this box
+ # -------------------------------------------------------------------------
+
+ def _ui_set_enabled_(self, value):
+
+ self._container.setEnabled(value)
+
+
+ # -------------------------------------------------------------------------
# Does this box need both columns or rows ?
# -------------------------------------------------------------------------
Modified: trunk/gnue-forms/src/uidrivers/qt3/widgets/entry.py
===================================================================
--- trunk/gnue-forms/src/uidrivers/qt3/widgets/entry.py 2009-12-09 17:27:09 UTC
(rev 10107)
+++ trunk/gnue-forms/src/uidrivers/qt3/widgets/entry.py 2009-12-09 21:06:51 UTC
(rev 10108)
@@ -147,7 +147,10 @@
# -------------------------------------------------------------------------
def _ui_set_enabled_(self, index, value):
+
self.widgets[index].setEnabled(value)
+ if not self.in_grid and self.label is not None:
+ self.label.setEnabled(value)
# -------------------------------------------------------------------------
Modified: trunk/gnue-forms/src/uidrivers/qt4/widgets/_base.py
===================================================================
--- trunk/gnue-forms/src/uidrivers/qt4/widgets/_base.py 2009-12-09 17:27:09 UTC
(rev 10107)
+++ trunk/gnue-forms/src/uidrivers/qt4/widgets/_base.py 2009-12-09 21:06:51 UTC
(rev 10108)
@@ -137,6 +137,15 @@
# -------------------------------------------------------------------------
+ # Enable/disable this box
+ # -------------------------------------------------------------------------
+
+ def _ui_set_enabled_(self, value):
+
+ self._container.setEnabled(value)
+
+
+ # -------------------------------------------------------------------------
# Does this box need both columns or rows ?
# -------------------------------------------------------------------------
Modified: trunk/gnue-forms/src/uidrivers/qt4/widgets/entry.py
===================================================================
--- trunk/gnue-forms/src/uidrivers/qt4/widgets/entry.py 2009-12-09 17:27:09 UTC
(rev 10107)
+++ trunk/gnue-forms/src/uidrivers/qt4/widgets/entry.py 2009-12-09 21:06:51 UTC
(rev 10108)
@@ -139,7 +139,10 @@
# -------------------------------------------------------------------------
def _ui_set_enabled_(self, index, value):
+
self.widgets[index].setEnabled(value)
+ if not self.in_grid and self.label is not None:
+ self.label.setEnabled(value)
# -------------------------------------------------------------------------
Modified: trunk/gnue-forms/src/uidrivers/wx/widgets/_base.py
===================================================================
--- trunk/gnue-forms/src/uidrivers/wx/widgets/_base.py 2009-12-09 17:27:09 UTC
(rev 10107)
+++ trunk/gnue-forms/src/uidrivers/wx/widgets/_base.py 2009-12-09 21:06:51 UTC
(rev 10108)
@@ -335,19 +335,20 @@
# If a label is requested for the box, we have to wrap the container
# with a StaticBoxSizer.
if self._gfObject.label is not None and not self._gfObject.has_label:
- box_title = wx.StaticBox(self._container, -1, self._gfObject.label)
- box = wx.StaticBoxSizer(box_title, wx.VERTICAL)
+ self.box = wx.StaticBox(self._container, -1, self._gfObject.label)
+ box_sizer = wx.StaticBoxSizer(self.box, wx.VERTICAL)
# Border inside the box is 6 pixel according to GNOME Human
# Interface Guidlines.
- box.Add(self._sizer, 1, wx.EXPAND | wx.ALL, 6)
+ box_sizer.Add(self._sizer, 1, wx.EXPAND | wx.ALL, 6)
- add = box
+ add = box_sizer
# Add another 6 pixel above and below the box (additionally to the
# 6 pixel horizontal gap that exist anyway) according to GNOME
# Human Interface Guidlines.
border = 6
else:
+ self.box = None
if self._gfObject.label is not None:
self.label = wx.StaticText(parent, -1, self._gfObject.label)
add = self._sizer
@@ -364,6 +365,18 @@
# -------------------------------------------------------------------------
+ # Enable/disable this box
+ # -------------------------------------------------------------------------
+
+ def _ui_set_enabled_(self, value):
+
+ if self.label:
+ self.label.Enable(value)
+ elif self.box:
+ self.box.Enable(value)
+
+
+ # -------------------------------------------------------------------------
# Do we need both rows/columns
# -------------------------------------------------------------------------
Modified: trunk/gnue-forms/src/uidrivers/wx/widgets/entry.py
===================================================================
--- trunk/gnue-forms/src/uidrivers/wx/widgets/entry.py 2009-12-09 17:27:09 UTC
(rev 10107)
+++ trunk/gnue-forms/src/uidrivers/wx/widgets/entry.py 2009-12-09 21:06:51 UTC
(rev 10108)
@@ -449,7 +449,10 @@
# -------------------------------------------------------------------------
def _ui_set_enabled_(self, index, value):
+
self.widgets[index].Enable(value)
+ if not self.in_grid and self.label is not None:
+ self.label.Enable(value)
# -------------------------------------------------------------------------
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [gnue] r10108 - in trunk/gnue-forms/src: GFObjects uidrivers/curses uidrivers/curses/widgets uidrivers/qt3/widgets uidrivers/qt4/widgets uidrivers/wx/widgets,
reinhard <=