Update of /cvsroot/mahogany/M/src/gui
In directory sc8-pr-cvs1:/tmp/cvs-serv22402/src/gui

Modified Files:
        wxFolderView.cpp 
Log Message:
1. added ViewFilter
2. implemented an example filter: Rot13Filter
3. initial support for the filters in MessageView and FolderView,
   still incomplete


Index: wxFolderView.cpp
===================================================================
RCS file: /cvsroot/mahogany/M/src/gui/wxFolderView.cpp,v
retrieving revision 1.616
retrieving revision 1.617
diff -b -u -2 -r1.616 -r1.617
--- wxFolderView.cpp    14 Nov 2002 14:15:05 -0000      1.616
+++ wxFolderView.cpp    29 Nov 2002 02:02:39 -0000      1.617
@@ -58,4 +58,5 @@
 #include <wx/menuitem.h>
 #include <wx/fontutil.h>
+#include <wx/tglbtn.h>
 
 #include "wx/persctrl.h"
@@ -332,4 +333,5 @@
    void OnButton(wxCommandEvent& event);
    void OnChoice(wxCommandEvent& event);
+   void OnToggleButton(wxCommandEvent& event);
 
    // resize our own child to fill the entire window
@@ -356,4 +358,7 @@
    wxArrayString m_namesViewers;
 
+   // the array containing the names of all the existing filters
+   wxArrayString m_namesFilters;
+
    // the event handler to hook the kbd input (NULL initially, !NULL later)
    class wxFolderMsgViewerEvtHandler *m_evtHandlerMsgView;
@@ -363,5 +368,6 @@
    {
       Button_Close = 100,
-      Choice_Viewer
+      TglButton_First = 200,
+      Choice_Viewer = 300
    };
 
@@ -1038,4 +1044,5 @@
    EVT_BUTTON(wxFolderMsgWindow::Button_Close, wxFolderMsgWindow::OnButton)
    EVT_CHOICE(wxFolderMsgWindow::Choice_Viewer, wxFolderMsgWindow::OnChoice)
+   EVT_TOGGLEBUTTON(-1, wxFolderMsgWindow::OnToggleButton)
 END_EVENT_TABLE()
 
@@ -1136,10 +1143,10 @@
 
    wxArrayString descViewers;
-   size_t count = MessageView::GetAllAvailableViewers(&m_namesViewers,
+   size_t countViewers = MessageView::GetAllAvailableViewers(&m_namesViewers,
                                                       &descViewers);
 
-   for ( size_t n = 0; n < count; n++ )
+   for ( size_t nViewer = 0; nViewer < countViewers; nViewer++ )
    {
-      choice->Append(descViewers[n]);
+      choice->Append(descViewers[nViewer]);
    }
 
@@ -1150,4 +1157,34 @@
    sizer->Add(choice, 0, wxALL | wxALIGN_CENTRE_VERTICAL, LAYOUT_X_MARGIN);
 
+   // add the controls for the view filters
+   wxArrayString labelsFilters;
+   wxArrayInt statesFilters;
+   size_t countFilters = MessageView::GetAllAvailableFilters(&m_namesFilters,
+                                                             &labelsFilters,
+                                                             &statesFilters);
+   for ( size_t nFilter = 0; nFilter < countFilters; nFilter++ )
+   {
+      if ( !nFilter )
+      {
+         // add a spacer in the beginning
+         sizer->Add(10, 10);
+      }
+
+      wxToggleButton *btn = new wxToggleButton
+                                (
+                                    m_winBar,
+                                    TglButton_First + nFilter,
+                                    labelsFilters[nFilter],
+                                    wxDefaultPosition,
+                                    wxDefaultSize,
+                                    wxNO_BORDER
+                                );
+
+      btn->SetValue(statesFilters[nFilter] != 0);
+
+      sizer->Add(btn, 0,
+                 wxTOP | wxBOTTOM | wxALIGN_CENTRE_VERTICAL, LAYOUT_X_MARGIN);
+   }
+
    // add the spacer and the button at the far right to close this bar
    sizer->Add(5, 0, 1); // expandable
@@ -1296,4 +1333,22 @@
 
    profile->writeEntry(MP_MSGVIEW_VIEWER, m_namesViewers[n]);
+
+   MEventManager::Send(new MEventOptionsChangeData
+                           (
+                            profile,
+                            MEventOptionsChangeData::Ok
+                           ));
+}
+
+void wxFolderMsgWindow::OnToggleButton(wxCommandEvent& event)
+{
+   const int n = event.GetId() - TglButton_First;
+
+   CHECK_RET( n >= 0 && (size_t)n < m_namesViewers.GetCount(),
+              _T("invalid filter toggled?") );
+
+   Profile_obj profile(m_folderView->GetFolderProfile());
+
+   profile->writeEntry(m_namesFilters[n], event.IsChecked());
 
    MEventManager::Send(new MEventOptionsChangeData



-------------------------------------------------------
This SF.net email is sponsored by: Get the new Palm Tungsten T 
handheld. Power & Color in a compact size! 
http://ads.sourceforge.net/cgi-bin/redirect.pl?palm0002en
_______________________________________________
Mahogany-cvsupdates mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/mahogany-cvsupdates

Reply via email to