Develop and Download Open Source Software

Browse CVS Repository

Diff of /malonnote/mnFrameController.cpp

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph | View Patch Patch

revision 1.1 by maloninc, Tue Oct 4 12:45:02 2005 UTC revision 1.8 by maloninc, Tue Oct 24 04:45:10 2006 UTC
# Line 11  Line 11 
11    
12  BEGIN_EVENT_TABLE(mnFrameController, wxEvtHandler)  BEGIN_EVENT_TABLE(mnFrameController, wxEvtHandler)
13          EVT_TEXT_ENTER(XRCID("searchTextCtrl"), mnFrameController::handleSearch)          EVT_TEXT_ENTER(XRCID("searchTextCtrl"), mnFrameController::handleSearch)
14  /*          EVT_MENU(XRCID("New"), mnFrameController::handleNew)
15          EVT_MENU(XRCID("New"), mnFrameController::handleNewButton)          EVT_MENU(XRCID("Remove"), mnFrameController::handleRemove)
16          EVT_MENU(XRCID("Remove"), mnFrameController::handleRemoveButton)          EVT_MENU(XRCID("Edit"), mnFrameController::handleEdit)
17          EVT_MENU(XRCID("Highlight"), mnFrameController::handleHighlightButton)          EVT_MENU(XRCID("Highlight"), mnFrameController::handleHighlight)
         EVT_MENU(XRCID("Edit"), mnFrameController::handleEditButton)  
         EVT_MENU(XRCID("Quit"), mnFrameController::handleExit)  
         EVT_MENU(XRCID("Configure"), mnFrameController::handleConfig)  
         EVT_MENU(XRCID("Group"), mnFrameController::handleGroup)  
         EVT_MENU(XRCID("OpenDocsDir"), mnFrameController::handleOpenDocsDir)  
18          EVT_MENU(XRCID("Expand"), mnFrameController::handleTreeExpand)          EVT_MENU(XRCID("Expand"), mnFrameController::handleTreeExpand)
19          EVT_MENU(XRCID("Collapse"), mnFrameController::handleTreeCollapse)          EVT_MENU(XRCID("Collapse"), mnFrameController::handleTreeCollapse)
20          EVT_MENU(XRCID("Clear"), mnFrameController::handleTreeClear)          EVT_MENU(XRCID("Clear"), mnFrameController::handleTreeClear)
21  */          EVT_MENU(XRCID("Group"), mnFrameController::handleGroup)
22            EVT_MENU(XRCID("OpenDocsDir"), mnFrameController::handleOpenDocsDir)
23            EVT_MENU(XRCID("AddDir"), mnFrameController::handleAddDir)
24            EVT_MENU(XRCID("RemoveDir"), mnFrameController::handleRemoveDir)
25          EVT_MENU(XRCID("Quit"), mnFrameController::handleExit)          EVT_MENU(XRCID("Quit"), mnFrameController::handleExit)
         EVT_MENU(XRCID("Configure"), mnFrameController::handleConfig)  
26          EVT_MENU(wxID_ABOUT, mnFrameController::handleAbout)          EVT_MENU(wxID_ABOUT, mnFrameController::handleAbout)
27          EVT_CLOSE(mnFrameController::handleClose)          EVT_CLOSE(mnFrameController::handleClose)
28            EVT_NOTEBOOK_PAGE_CHANGED(XRCID("noteBook"), mnFrameController::handlePageChange)
29            EVT_TIMER(wxID_ANY, mnFrameController::readAll)
30  END_EVENT_TABLE()  END_EVENT_TABLE()
31    
32  mnFrameController::mnFrameController(mnFrame* inframe)  mnFrameController::mnFrameController(mnFrame* inframe)
33  {  {
         wxString* dirName = new wxString();  
         wxString gotDirName;  
         wxDirDialog* dlg;  
   
34          frame = inframe;          frame = inframe;
35    
36          /* create wiki model */          wxTimer* timer = new wxTimer(this);
37          wxConfig* config = new wxConfig(wxT(CONF_APP_NAME));          timer->Start(MN_READ_INTERVAL, wxTIMER_CONTINUOUS);
38          if(config->Read(wxT(CONF_WIKI_DIR), dirName) == FALSE) {  }
                 delete dirName;  
                 dlg = new wxDirDialog(frame);  
                 if(dlg->ShowModal() == wxID_OK) {  
                         gotDirName = dlg->GetPath();  
                         config->Write(wxT(CONF_WIKI_DIR), gotDirName.c_str());  
                         frame->addNotePanel(&gotDirName);  
                 }  
                 else {  
                         frame->Close();  
                 }  
         }  
         else {  
                 frame->addNotePanel(dirName);  
39    
40                  wxString testDir(wxT("C:\\wiki_test"));  void mnFrameController::readAll(wxTimerEvent& event)
41                  frame->addNotePanel(&testDir);  {
42            int count = 0;
43            mnNotePanel* panel;
44            mnNotePanelController* controller;
45    
46            count = frame->getNotebook()->GetPageCount();
47            for(int i = 0; i < count; i++)
48            {
49                    panel = (mnNotePanel*)frame->getNotebook()->GetPage(i);
50                    controller = panel->getController();
51                    controller->readAll();
52          }          }
   
         delete config;  
53  }  }
54    
55  void mnFrameController::handleConfig(wxCommandEvent& event)  void mnFrameController::handleConfig(wxCommandEvent& event)
# Line 69  void mnFrameController::handleConfig(wxC Line 59  void mnFrameController::handleConfig(wxC
59    
60  void mnFrameController::handleSearch(wxCommandEvent& event)  void mnFrameController::handleSearch(wxCommandEvent& event)
61  {  {
         wxLogMessage(wxT("Search..., Call mnNotePanel's handleSearch which is selected."));  
62          frame->getNotePanel()->getController()->handleSearch(event);          frame->getNotePanel()->getController()->handleSearch(event);
63  }  }
64    
65    void mnFrameController::handleNew(wxCommandEvent& event)
66    {
67            frame->getNotePanel()->getController()->handleNew(event);
68    }
69    
70    void mnFrameController::handleRemove(wxCommandEvent& event)
71    {
72            frame->getNotePanel()->getController()->handleRemove(event);
73    }
74    
75    void mnFrameController::handleEdit(wxCommandEvent& event)
76    {
77            frame->getNotePanel()->getController()->handleEdit(event);
78    }
79    
80    void mnFrameController::handleHighlight(wxCommandEvent& event)
81    {
82            frame->getNotePanel()->getController()->handleHighlight(event);
83    }
84    
85    void mnFrameController::handleTreeExpand(wxCommandEvent& event)
86    {
87            frame->getNotePanel()->getController()->handleTreeExpand(event);
88    }
89    
90    void mnFrameController::handleTreeCollapse(wxCommandEvent& event)
91    {
92            frame->getNotePanel()->getController()->handleTreeCollapse(event);
93    }
94    
95    void mnFrameController::handleTreeClear(wxCommandEvent& event)
96    {
97            frame->getNotePanel()->getController()->handleTreeClear(event);
98    }
99    
100    void mnFrameController::handleGroup(wxCommandEvent& event)
101    {
102            frame->getNotePanel()->getController()->handleGroup(event);
103    }
104    
105    void mnFrameController::handleOpenDocsDir(wxCommandEvent& event)
106    {
107            frame->getNotePanel()->getController()->handleOpenDocsDir(event);
108    }
109    
110  void mnFrameController::handleClose(wxCloseEvent& event)  void mnFrameController::handleClose(wxCloseEvent& event)
111  {  {
# Line 90  void mnFrameController::handleAbout(wxCo Line 123  void mnFrameController::handleAbout(wxCo
123          wxMessageBox(wxT(MN_APP_VERSION), wxT("Abount MalonNote"), wxOK|wxICON_INFORMATION);          wxMessageBox(wxT(MN_APP_VERSION), wxT("Abount MalonNote"), wxOK|wxICON_INFORMATION);
124  }  }
125    
126    void mnFrameController::handleAddDir(wxCommandEvent& event)
127    {
128            wxDirDialog* dlg;
129            wxString gotDirName;
130            wxString* dirName = new wxString();
131            
132            dlg = new wxDirDialog(frame);
133            if(dlg->ShowModal() == wxID_OK) {
134                    gotDirName = dlg->GetPath();
135                    if(isExistConfig(&gotDirName) == false){
136                            frame->addNotePanel(&gotDirName);
137                    }
138                    else {
139                            wxMessageBox(wxT("It already exist in MalonNote"), wxT("Already exist"), wxOK|wxICON_INFORMATION);
140                            return;
141                    }
142            }
143            updateConfig();
144    }
145    
146    void mnFrameController::handleRemoveDir(wxCommandEvent& event)
147    {
148            frame->removeSelectedNotePanel();
149            updateConfig();
150    }
151    
152    void mnFrameController::updateConfig()
153    {
154            wxString  confKey;
155            wxNotebook* notebook;
156            mnNotePanel* panel;
157    
158            wxConfig* config = new wxConfig(wxT(CONF_APP_NAME));
159            config->DeleteAll();
160            delete config;
161            config = new wxConfig(wxT(CONF_APP_NAME)); // recreate config object
162            notebook = frame->getNotebook();
163            int count = notebook->GetPageCount();
164            for(int i = 0; i < count; i++) {
165                    panel = (mnNotePanel*)notebook->GetPage(i);
166                    const wxString* dataDir = panel->getController()->getWikiDataDir();
167    
168                    if(i == 0){
169                            config->Write(wxT(CONF_WIKI_DIR), dataDir->c_str());
170                    }
171                    else{
172                            confKey.sprintf(wxT(CONF_WIKI_DIR) "%d", i);
173                            config->Write(confKey.c_str(), dataDir->c_str());
174                    }
175            }
176            delete config;
177    }
178    
179    bool mnFrameController::isExistConfig(wxString* dir)
180    {
181            wxString* dirName = new wxString();
182            wxString gotDirName;
183            wxDirDialog* dlg;
184            wxString confKey;
185    
186            wxConfig* config = new wxConfig(wxT(CONF_APP_NAME));
187            for(int i = 0; ;i++) {
188                    if(i == 0) {
189                            confKey.sprintf(wxT(CONF_WIKI_DIR));
190                    }
191                    else {
192                            confKey.sprintf(wxT(CONF_WIKI_DIR) "%d", i);
193                    }
194                    if(config->Read(confKey.c_str(), dirName)) {
195                            if(*dir == *dirName) return true;    /* Exist */
196                    }
197                    else {
198                            break;
199                    }
200            }
201            
202            delete dirName;
203            delete config;
204    
205            return false;
206    }
207    
208    
209    void mnFrameController::handlePageChange(wxNotebookEvent& event)
210    {
211            wxNotebook* notebook;
212            mnNotePanel* panel;
213    
214            notebook = frame->getNotebook();
215            panel = (mnNotePanel*)notebook->GetPage(event.GetSelection());
216            const wxString* dataDir = panel->getController()->getWikiDataDir();
217    
218            frame->GetStatusBar()->SetStatusText(*dataDir);
219    }

Legend:
Removed from v.1.1  
changed lines
  Added in v.1.8

Back to OSDN">Back to OSDN
ViewVC Help
Powered by ViewVC 1.1.26