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

Reply via email to