Develop and Download Open Source Software

Browse CVS Repository

Diff of /malonnote/mnNotePanelController.cpp

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

revision 1.4 by maloninc, Fri Oct 7 12:49:26 2005 UTC revision 1.5 by maloninc, Wed Dec 28 01:49:51 2005 UTC
# Line 1  Line 1 
1  #include "mnID.h"  #include "mnID.h"
2  #include "mnDef.h"  #include "mnDef.h"
3    #include "mnNotePanel.h"
4  #include "mnNotePanelController.h"  #include "mnNotePanelController.h"
5    #include <wx/uri.h>
6  #include <wx/config.h>  #include <wx/config.h>
7  #include <wx/tokenzr.h>  #include <wx/regex.h>
8  #include <wx/utils.h>  #include <wx/utils.h>
9  #include <wx/xrc/xmlres.h>  #include <wx/xrc/xmlres.h>
10    #include <wx/tokenzr.h>
11    
12  BEGIN_EVENT_TABLE(mnNotePanelController, wxEvtHandler)  BEGIN_EVENT_TABLE(mnNotePanelController, wxEvtHandler)
13          EVT_TEXT_ENTER(XRCID("searchTextCtrl"), mnNotePanelController::handleSearch)          EVT_TEXT_ENTER(XRCID("searchTextCtrl"), mnNotePanelController::handleSearch)
# Line 12  BEGIN_EVENT_TABLE(mnNotePanelController, Line 15  BEGIN_EVENT_TABLE(mnNotePanelController,
15          EVT_TREE_SEL_CHANGING(XRCID("searchTree"), mnNotePanelController::handleTreeItemSelecting)          EVT_TREE_SEL_CHANGING(XRCID("searchTree"), mnNotePanelController::handleTreeItemSelecting)
16          EVT_TREE_BEGIN_LABEL_EDIT(XRCID("searchTree"), mnNotePanelController::handleBeginLabelEdit)          EVT_TREE_BEGIN_LABEL_EDIT(XRCID("searchTree"), mnNotePanelController::handleBeginLabelEdit)
17          EVT_TREE_END_LABEL_EDIT(XRCID("searchTree"), mnNotePanelController::handleEndLabelEdit)          EVT_TREE_END_LABEL_EDIT(XRCID("searchTree"), mnNotePanelController::handleEndLabelEdit)
18    #ifdef __WXMAC__
19        EVT_WEBKIT_STATE_CHANGED(mnNotePanelController::handleLinkClick)
20    #else
21          EVT_COMMAND(XRCID("wikiHtmlTextCtrl"), mnEVT_LINK_CLICK, mnNotePanelController::handleLinkClick)          EVT_COMMAND(XRCID("wikiHtmlTextCtrl"), mnEVT_LINK_CLICK, mnNotePanelController::handleLinkClick)
22    #endif
23  END_EVENT_TABLE()  END_EVENT_TABLE()
24    
25  mnNotePanelController::mnNotePanelController(mnNotePanel* inPanel, wxString* inWikiDir)  mnNotePanelController::mnNotePanelController(mnNotePanel* inPanel, wxString* inWikiDir)
# Line 211  void mnNotePanelController::handleEdit(w Line 218  void mnNotePanelController::handleEdit(w
218          delete dlg;          delete dlg;
219  }  }
220    
221    wxString mnNotePanelController::delPercent(const wxString& str)
222    {
223            wxURI uri;
224    
225            return uri.Unescape(str);
226    }
227    
228    
229  void mnNotePanelController::notifyUpdate(WikiData* data)  void mnNotePanelController::notifyUpdate(WikiData* data)
230  {  {
231          const wxArrayString*  searchStrList= wiki->getSearchStrList();          const wxArrayString*  searchStrList= wiki->getSearchStrList();
# Line 236  void mnNotePanelController::notifyUpdate Line 251  void mnNotePanelController::notifyUpdate
251          data->setOldSubjectFromCurrent(); // restore old subject          data->setOldSubjectFromCurrent(); // restore old subject
252  }  }
253    
254    #ifdef __WXMAC__
255    void mnNotePanelController::handleLinkClick(wxWebKitStateChangedEvent &event)
256    #else
257  void mnNotePanelController::handleLinkClick(wxCommandEvent &event)  void mnNotePanelController::handleLinkClick(wxCommandEvent &event)
258    #endif
259  {  {
260            wxString href;
261          const wxString* wikiDataDir;          const wxString* wikiDataDir;
262          wxString href = event.GetString();  #ifdef __WXMAC__
263          wxString tag;          href = event.GetURL();
264          wxString val;          if (href.Find(wxT("file:///tmp/")) == -1 &&
265          wxString doc;          href.Length() != 0                   &&
266          wxStringTokenizer tkz(href, wxT(":"));          event.GetState() == wxWEBKIT_STATE_NEGOTIATING){
267                    ((wxWebKitCtrl*)(event.GetEventObject()))->Stop(); // Stop native webkit loading
268          tag = tkz.GetNextToken();                }
269          val = tkz.GetNextToken();          else {
270          if(tag.CmpNoCase(wxT("mnlink")) == 0) {                  event.Skip();
271                  event.SetString(val);          }
272    #else
273            href = event.GetString();
274    #endif
275    
276            if(href.Find(wxT("file:///tmp/")) != -1) {
277                    // do nothing
278            }
279            else if(href.Find(wxT(MNLINK)) != -1) {
280                    wxRegEx exp(wxT(MNLINK));
281                    exp.Replace(&href, wxT(""));
282                    event.SetString((delPercent(href)).c_str());
283                  handleSearch(event);                  handleSearch(event);
284          }          }
285          else if(tag.CmpNoCase(wxT("mndoc")) == 0) {          else if(href.Find(wxT(MNDOC)) != -1) {
286                    wxRegEx exp(wxT(MNDOC));
287                    exp.Replace(&href, wxT(""));
288                  wikiDataDir = wiki->getWikiDataDir();                  wikiDataDir = wiki->getWikiDataDir();
289                  doc = *wikiDataDir + wxT("/docs/") + val;                  wxString doc = *wikiDataDir + wxT("/docs/") + delPercent(href);
290                  openDoc(doc);                  openDoc(doc);
291          }          }
292          else {          else {

Legend:
Removed from v.1.4  
changed lines
  Added in v.1.5

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