Update of /cvsroot/mahogany/M/src/gui
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv3177/src/gui
Modified Files:
wxFiltersDialog.cpp
Log Message:
show explanatory text for newer/older and smaller/larger than tests
Index: wxFiltersDialog.cpp
===================================================================
RCS file: /cvsroot/mahogany/M/src/gui/wxFiltersDialog.cpp,v
retrieving revision 1.126
retrieving revision 1.127
diff -b -u -2 -r1.126 -r1.127
--- wxFiltersDialog.cpp 25 Feb 2005 22:16:28 -0000 1.126
+++ wxFiltersDialog.cpp 30 Jun 2005 17:11:00 -0000 1.127
@@ -543,7 +543,8 @@
wxChoice *m_Type; // corresponds to ORC_Types
- // the controls which are shown for most of ORC_T_XXX values
+ // the controls which are shown for many of ORC_T_XXX values
wxTextCtrl *m_Argument; // string, number of days or bytes
wxChoice *m_Where; // corresponds to ORC_Where
+ wxStaticText *m_helpText; // the explanation text for some items
// special controls
@@ -625,4 +626,6 @@
wxDefaultSize, ORC_WhereCountS, whereTrans);
+ m_helpText = new wxStaticText(parent, -1, wxEmptyString);
+
// set up the initial values or the code in UpdateProgram() would complain
// about invalid values
@@ -700,4 +703,11 @@
m_choiceFlags->SetConstraints(c);
+ c = new wxLayoutConstraints;
+ c->left.RightOf(m_Argument, LAYOUT_X_MARGIN);
+ c->width.AsIs();
+ c->centreY.SameAs(m_Not, wxCentreY);
+ c->height.AsIs();
+ m_helpText->SetConstraints(c);
+
*last = m_Where;
}
@@ -720,31 +730,59 @@
}
+static void EnableAndShow(wxWindow *win, bool enable)
+{
+ win->Show(enable);
+ if ( enable )
+ win->Enable(enable);
+}
+
void
OneCritControl::UpdateUI(wxTextCtrl *textProgram)
{
- // decide what to show and enable
- MFDialogTest test = GetTest();
- bool enable_isspam = test == ORC_T_IsSpam;
- bool enable_msgflag = test == ORC_T_HasFlag;
- bool enable_arg = ! enable_isspam && ! enable_msgflag &&
- FilterTestNeedsArgument(test);
- bool enable_target = FilterTestNeedsTarget(test);
-
- // disable everything if test not implemented
- if ( ! FilterTestImplemented(test) )
- {
- enable_msgflag = false;
- enable_arg = false;
- enable_target = false;
- enable_isspam = false;
- }
-
- m_choiceFlags->Show(enable_msgflag);
- m_choiceFlags->Enable(enable_msgflag);
- m_Argument->Show(enable_arg);
- m_Argument->Enable(enable_arg);
- m_Where->Show(enable_target);
- m_Where->Enable(enable_target);
- if ( enable_isspam && !m_btnSpam )
+ // decide which controls to enable for this test
+ bool enableMsgFlag = false,
+ enableArg = false,
+ enableTarget = false,
+ enableSpam = false,
+ enableHelpText = false;
+
+ const MFDialogTest test = GetTest();
+
+ if ( FilterTestImplemented(test) )
+ {
+ switch ( test )
+ {
+ case ORC_T_IsSpam:
+ enableSpam = true;
+ break;
+
+ case ORC_T_HasFlag:
+ enableMsgFlag = true;
+ break;
+
+ case ORC_T_LargerThan:
+ case ORC_T_SmallerThan:
+ m_helpText->SetLabel(_(" kB"));
+ enableHelpText = true;
+ break;
+
+ case ORC_T_OlderThan:
+ case ORC_T_NewerThan:
+ m_helpText->SetLabel(_(" days"));
+ enableHelpText = true;
+ break;
+ }
+
+ enableArg = !enableSpam && !enableMsgFlag &&
FilterTestNeedsArgument(test);
+ enableTarget = FilterTestNeedsTarget(test);
+ }
+ //else: disable everything if test not implemented
+
+ EnableAndShow(m_choiceFlags, enableMsgFlag);
+ EnableAndShow(m_Argument, enableArg);
+ EnableAndShow(m_Where, enableTarget);
+ EnableAndShow(m_helpText, enableHelpText);
+
+ if ( enableSpam && !m_btnSpam )
{
CreateSpamButton();
@@ -754,6 +792,6 @@
if ( m_btnSpam )
{
- m_btnSpam->Show(enable_isspam);
- m_btnSpam->Enable(enable_isspam);
+ m_btnSpam->Show(enableSpam);
+ m_btnSpam->Enable(enableSpam);
}
}
@@ -767,4 +805,5 @@
m_Argument->Disable();
m_Where->Disable();
+ m_helpText->Disable();
if ( m_Logical )
m_Logical->Disable();
@@ -928,30 +967,30 @@
{
MFDialogAction type = GetAction();
- bool enable_msgflag = FilterActionMsgFlag(type);
- bool enable_arg = ! enable_msgflag && FilterActionNeedsArg(type);
- bool enable_colour = FilterActionUsesColour(type);
- bool enable_folder = FilterActionUsesFolder(type);
+ bool enableMsgFlag = FilterActionMsgFlag(type);
+ bool enableArg = ! enableMsgFlag && FilterActionNeedsArg(type);
+ bool enableColour = FilterActionUsesColour(type);
+ bool enableFolder = FilterActionUsesFolder(type);
// disable everything if action not implemented
if ( ! FilterActionImplemented(type) )
{
- enable_msgflag = false;
- enable_arg = false;
- enable_colour = false;
- enable_folder = false;
+ enableMsgFlag = false;
+ enableArg = false;
+ enableColour = false;
+ enableFolder = false;
}
- m_choiceFlags->Show(enable_msgflag);
- m_choiceFlags->Enable(enable_msgflag);
- m_btnColour->Show(enable_colour);
- m_btnColour->Enable(enable_colour);
- m_btnFolder->Show(enable_folder);
- m_btnFolder->Enable(enable_folder);
+ m_choiceFlags->Show(enableMsgFlag);
+ m_choiceFlags->Enable(enableMsgFlag);
+ m_btnColour->Show(enableColour);
+ m_btnColour->Enable(enableColour);
+ m_btnFolder->Show(enableFolder);
+ m_btnFolder->Enable(enableFolder);
// update the argument *after* updating the browse buttons because their
// Enable() disables the text control as well if they're disabled and so the
// text could end up disabled even when it should be enabled
- m_Argument->Show(enable_arg);
- m_Argument->Enable(enable_arg);
+ m_Argument->Show(enableArg);
+ m_Argument->Enable(enableArg);
}
@@ -1088,5 +1127,5 @@
c->left.SameAs(box, wxLeft, 2*LAYOUT_X_MARGIN);
c->width.AsIs();
- c->top.SameAs(box, wxTop, 4*LAYOUT_Y_MARGIN);
+ c->top.SameAs(box, wxTop, 5*LAYOUT_Y_MARGIN);
c->height.AsIs();
msg->SetConstraints(c);
-------------------------------------------------------
SF.Net email is sponsored by: Discover Easy Linux Migration Strategies
from IBM. Find simple to follow Roadmaps, straightforward articles,
informative Webcasts and more! Get everything you need to get up to
speed, fast. http://ads.osdn.com/?ad_id=7477&alloc_id=16492&op=click
_______________________________________________
Mahogany-cvsupdates mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/mahogany-cvsupdates