| 6 |
#include <wx/config.h> |
#include <wx/config.h> |
| 7 |
#include <wx/tokenzr.h> |
#include <wx/tokenzr.h> |
| 8 |
#include <wx/utils.h> |
#include <wx/utils.h> |
| 9 |
|
#include <wx/xrc/xmlres.h> |
| 10 |
|
|
| 11 |
BEGIN_EVENT_TABLE(mnController, wxEvtHandler) |
BEGIN_EVENT_TABLE(mnController, wxEvtHandler) |
| 12 |
EVT_TEXT_ENTER(ID_SearchTextCtrl, mnController::handleSearch) |
EVT_TEXT_ENTER(XRCID("searchTextCtrl"), mnController::handleSearch) |
| 13 |
EVT_TREE_SEL_CHANGED(ID_SearchTree, mnController::handleTreeItemSelect) |
EVT_TREE_SEL_CHANGED(XRCID("searchTree"), mnController::handleTreeItemSelect) |
| 14 |
EVT_TREE_SEL_CHANGING(ID_SearchTree, mnController::handleTreeItemSelecting) |
EVT_TREE_SEL_CHANGING(XRCID("searchTree"), mnController::handleTreeItemSelecting) |
| 15 |
EVT_TREE_BEGIN_LABEL_EDIT(ID_SearchTree, mnController::handleBeginLabelEdit) |
EVT_TREE_BEGIN_LABEL_EDIT(XRCID("searchTree"), mnController::handleBeginLabelEdit) |
| 16 |
EVT_TREE_END_LABEL_EDIT(ID_SearchTree, mnController::handleEndLabelEdit) |
EVT_TREE_END_LABEL_EDIT(XRCID("searchTree"), mnController::handleEndLabelEdit) |
| 17 |
EVT_MENU(ID_MenuFileNew, mnController::handleNewButton) |
EVT_MENU(XRCID("New"), mnController::handleNewButton) |
| 18 |
EVT_MENU(ID_MenuFileRemove, mnController::handleRemoveButton) |
EVT_MENU(XRCID("Remove"), mnController::handleRemoveButton) |
| 19 |
EVT_MENU(ID_MenuFileHighlight, mnController::handleHighlightButton) |
EVT_MENU(XRCID("Highlight"), mnController::handleHighlightButton) |
| 20 |
EVT_MENU(ID_MenuFileEdit, mnController::handleEditButton) |
EVT_MENU(XRCID("Edit"), mnController::handleEditButton) |
| 21 |
EVT_MENU(ID_MenuFileExit, mnController::handleExit) |
EVT_MENU(XRCID("Quit"), mnController::handleExit) |
| 22 |
EVT_MENU(ID_MenuFileConfig, mnController::handleConfig) |
EVT_MENU(XRCID("Configure"), mnController::handleConfig) |
| 23 |
EVT_MENU(ID_MenuFileGroup, mnController::handleGroup) |
EVT_MENU(XRCID("Group"), mnController::handleGroup) |
| 24 |
EVT_MENU(ID_MenuTreeExpand, mnController::handleTreeExpand) |
EVT_MENU(XRCID("OpenDocsDir"), mnController::handleOpenDocsDir) |
| 25 |
EVT_MENU(ID_MenuTreeCollapse, mnController::handleTreeCollapse) |
EVT_MENU(XRCID("Expand"), mnController::handleTreeExpand) |
| 26 |
EVT_MENU(ID_MenuTreeDisableUpdate, mnController::handleTreeDisableUpdate) |
EVT_MENU(XRCID("Collapse"), mnController::handleTreeCollapse) |
| 27 |
EVT_MENU(ID_MenuTreeClear, mnController::handleTreeClear) |
EVT_MENU(XRCID("Clear"), mnController::handleTreeClear) |
| 28 |
EVT_MENU(wxID_ABOUT, mnController::handleAbout) |
EVT_MENU(wxID_ABOUT, mnController::handleAbout) |
| 29 |
EVT_CLOSE(mnController::handleClose) |
EVT_CLOSE(mnController::handleClose) |
| 30 |
EVT_COMMAND(ID_HtmlTextCtrl, mnEVT_LINK_CLICK, mnController::handleLinkClick) |
EVT_COMMAND(XRCID("wikiHtmlTextCtrl"), mnEVT_LINK_CLICK, mnController::handleLinkClick) |
| 31 |
END_EVENT_TABLE() |
END_EVENT_TABLE() |
| 32 |
|
|
| 33 |
mnController::mnController(mnFrame* inframe) |
mnController::mnController(mnFrame* inframe) |
| 56 |
wiki = new mnModel(dirName->mb_str()); |
wiki = new mnModel(dirName->mb_str()); |
| 57 |
} |
} |
| 58 |
|
|
|
autoUpdateMode = true; |
|
| 59 |
delete config; |
delete config; |
| 60 |
} |
} |
| 61 |
|
|
| 114 |
WikiList* wikiList; |
WikiList* wikiList; |
| 115 |
const wxArrayString* searchStrList; |
const wxArrayString* searchStrList; |
| 116 |
int i; |
int i; |
| 117 |
|
wxCursor normal; |
| 118 |
|
wxCursor watch(wxCURSOR_WATCH); |
| 119 |
|
|
| 120 |
|
frame->SetCursor(watch); |
| 121 |
wiki->group(); |
wiki->group(); |
|
|
|
| 122 |
frame->clearAllTree(); |
frame->clearAllTree(); |
| 123 |
searchStrList = wiki->getSearchStrList(); |
searchStrList = wiki->getSearchStrList(); |
| 124 |
for(i = 0; i < searchStrList->Count(); i++) { |
for(i = 0; i < searchStrList->Count(); i++) { |
| 125 |
wxString& searchStr = searchStrList->Item(i); |
wxString& searchStr = searchStrList->Item(i); |
| 126 |
frame->addSearchResult(wiki, &searchStr); |
frame->addSearchResult(wiki, &searchStr); |
| 127 |
} |
} |
| 128 |
|
frame->SetCursor(normal); |
| 129 |
} |
} |
| 130 |
|
|
| 131 |
|
|
| 135 |
WikiData* wikiData = wiki->newWikiData(); |
WikiData* wikiData = wiki->newWikiData(); |
| 136 |
wxString plainTextStr; |
wxString plainTextStr; |
| 137 |
wxString newSubjectStr; |
wxString newSubjectStr; |
| 138 |
mnWikiDataEntryDialog* dlg = new mnWikiDataEntryDialog(frame, -1, wxT("Malon Note")); |
mnWikiDataEntryDialog* dlg = new mnWikiDataEntryDialog(frame); |
| 139 |
const wxString* wikiText = wikiData->getText(); |
const wxString* wikiText = wikiData->getText(); |
| 140 |
const wxString* subject = wikiData->getSubject(); |
const wxString* subject = wikiData->getSubject(); |
| 141 |
|
|
| 246 |
frame->clearAllTree(); |
frame->clearAllTree(); |
| 247 |
} |
} |
| 248 |
|
|
|
void mnController::handleTreeDisableUpdate(wxCommandEvent& event) |
|
|
{ |
|
|
autoUpdateMode = (autoUpdateMode) ? false : true; |
|
|
if(autoUpdateMode) |
|
|
frame->showSearchResult(wiki); |
|
|
} |
|
|
|
|
| 249 |
void mnController::handleAbout(wxCommandEvent& event) |
void mnController::handleAbout(wxCommandEvent& event) |
| 250 |
{ |
{ |
| 251 |
wxMessageBox(wxT(MN_APP_VERSION), wxT("Abount MalonNote"), wxOK|wxICON_INFORMATION); |
wxMessageBox(wxT(MN_APP_VERSION), wxT("Abount MalonNote"), wxOK|wxICON_INFORMATION); |
| 258 |
wxString newSubjectStr; |
wxString newSubjectStr; |
| 259 |
wxTreeItemData* itemData = frame->getSelectedItem(); |
wxTreeItemData* itemData = frame->getSelectedItem(); |
| 260 |
wxString subject = frame->getSelectedLabel(); |
wxString subject = frame->getSelectedLabel(); |
| 261 |
mnWikiDataEntryDialog* dlg = new mnWikiDataEntryDialog(frame, -1, wxT("Malon Note")); |
mnWikiDataEntryDialog* dlg = new mnWikiDataEntryDialog(frame); |
| 262 |
int ans; |
int ans; |
| 263 |
|
|
| 264 |
if(!frame->isEditableTreeLabel(frame->getSelection())) return; /* selection is not memo data */ |
if(!frame->isEditableTreeLabel(frame->getSelection())) return; /* selection is not memo data */ |
| 306 |
memset(tokenList, 0, sizeof(char*)*32); |
memset(tokenList, 0, sizeof(char*)*32); |
| 307 |
} |
} |
| 308 |
} |
} |
| 309 |
|
data->setOldSubjectFromCurrent(); // restore old subject |
| 310 |
} |
} |
| 311 |
|
|
| 312 |
void mnController::handleLinkClick(wxCommandEvent &event) |
void mnController::handleLinkClick(wxCommandEvent &event) |
| 334 |
} |
} |
| 335 |
} |
} |
| 336 |
|
|
| 337 |
|
void mnController::handleOpenDocsDir(wxCommandEvent &event) |
| 338 |
|
{ |
| 339 |
|
const wxString* wikiDataDir; |
| 340 |
|
wxString cmd; |
| 341 |
|
wxString docDir; |
| 342 |
|
|
| 343 |
|
wikiDataDir = wiki->getWikiDataDir(); |
| 344 |
|
docDir = *wikiDataDir + wxT("/docs/"); |
| 345 |
|
|
| 346 |
|
/* create docs directory, anyway */ |
| 347 |
|
cmd.sprintf(wxT("mkdir "), docDir.c_str()); |
| 348 |
|
wxExecute(cmd); |
| 349 |
|
|
| 350 |
|
/* open docs directory */ |
| 351 |
|
openDoc(docDir); |
| 352 |
|
} |
| 353 |
|
|
| 354 |
void mnController::openUrl(wxString& url) |
void mnController::openUrl(wxString& url) |
| 355 |
{ |
{ |
| 356 |
wxString cmd; |
wxString cmd; |
| 357 |
|
|
| 358 |
#ifdef __WXMSW__ |
#ifdef __WXMSW__ |
| 359 |
cmd.sprintf(wxT("explorer %s"), url.c_str()); |
cmd.sprintf(wxT("cmd /c \"start %s\""), url.c_str()); |
| 360 |
#endif |
#endif |
| 361 |
|
|
| 362 |
#ifdef __WXMAC__ |
#ifdef __WXMAC__ |