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