Develop and Download Open Source Software

Browse CVS Repository

Contents of /malonnote/mnFrame.cpp

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


Revision 1.2 - (show annotations) (download) (as text)
Sat Jul 30 08:26:16 2005 UTC (18 years, 8 months ago) by maloninc
Branch: MAIN
CVS Tags: dev-1_0-0003-wxHtmlWindow
Changes since 1.1: +10 -11 lines
File MIME type: text/x-c++src
use wxHtmlWindow instead wxTextCtrl, but this version can't save data.

1 // -*- C++ -*- generated by wxGlade 0.3.5.1 on Wed Jun 29 12:57:38 2005
2
3 #include "mnID.h"
4 #include "mnDef.h"
5 #include "mnFrame.h"
6
7
8 mnFrame::mnFrame(wxWindow* parent, int id, const wxString& title, const wxPoint& pos, const wxSize& size, long style):
9 wxFrame(parent, id, title, pos, size, wxDEFAULT_FRAME_STYLE)
10 {
11 // begin wxGlade: mnFrame::mnFrame
12 splitWindow = new wxSplitterWindow(this, -1, wxDefaultPosition, wxDefaultSize, wxSP_3D|wxSP_BORDER);
13 rightPanel = new wxPanel(splitWindow, -1);
14 leftPanel = new wxPanel(splitWindow, -1);
15 panel = new wxPanel(this, -1);
16 searchLaebl = new wxStaticText(panel, -1, wxT("Search"), wxDefaultPosition, wxDefaultSize, wxALIGN_CENTRE);
17 searchTextCtrl = new wxTextCtrl(this, ID_SearchTextCtrl, wxT(""), wxDefaultPosition, wxDefaultSize, wxTE_PROCESS_ENTER);
18 searchTree = new wxTreeCtrl(leftPanel, ID_SearchTree, wxDefaultPosition, wxDefaultSize, wxTR_HAS_BUTTONS|wxTR_LINES_AT_ROOT|wxTR_DEFAULT_STYLE|wxSUNKEN_BORDER|wxTR_EDIT_LABELS);
19 wikiPlainTextCtrl = new wxTextCtrl(rightPanel, ID_PlainTextCtrl, wxT(""), wxDefaultPosition, wxDefaultSize, wxTE_MULTILINE|wxHSCROLL|wxTE_AUTO_URL);
20 wikiHtmlTextCtrl = new wxHtmlWindow(rightPanel, ID_HtmlTextCtrl, wxDefaultPosition, wxDefaultSize, wxHW_DEFAULT_STYLE, wxT(""));
21
22 // begin add by hand
23 menuBar = new wxMenuBar();
24 SetMenuBar(menuBar);
25
26 // File menu
27 wxMenu* tmp_menu_1 = new wxMenu();
28 tmp_menu_1->Append(ID_MenuFileNew, _("New\tCtrl+N"), wxT(""), wxITEM_NORMAL);
29 tmp_menu_1->Append(ID_MenuFileEdit, _("Edit\tCtrl+E"), wxT(""), wxITEM_NORMAL);
30 tmp_menu_1->Append(ID_MenuFileSave, _("Save\tCtrl+S"), wxT(""), wxITEM_NORMAL);
31 tmp_menu_1->Append(ID_MenuFileRemove, _("Remove\tCtrl+R"), wxT(""), wxITEM_NORMAL);
32 tmp_menu_1->AppendSeparator();
33 tmp_menu_1->Append(ID_MenuFileConfig, _("Configure..."), wxT(""), wxITEM_NORMAL);
34 tmp_menu_1->AppendSeparator();
35 tmp_menu_1->Append(ID_MenuFileExit, _("Quit\tCtrl+Q"), wxT(""), wxITEM_NORMAL);
36 menuBar->Append(tmp_menu_1, _("&File"));
37
38 // Help menu
39 wxMenu* tmp_menu_2 = new wxMenu();
40 tmp_menu_2->Append(wxID_ABOUT, _("&About"), wxT(""), wxITEM_NORMAL);
41 menuBar->Append(tmp_menu_2, _("&Help"));
42
43 #ifdef __WXMSW__
44 wxIcon icon(wxT(APP_ICON_NAME), wxBITMAP_TYPE_ICO_RESOURCE);
45 SetIcon(icon);
46 #endif
47 // end add by hand
48
49 set_properties();
50 do_layout();
51 // end wxGlade
52
53 /* create search tree */
54 searchItemRoot = searchTree->AddRoot(wxT(LABEL_ITEM_TREE), -1, -1, NULL);
55 newItemRoot = searchTree->AppendItem(searchItemRoot, wxT(LABEL_NEW_ITEM), -1, -1, NULL);
56 }
57
58
59 void mnFrame::set_properties()
60 {
61 // begin wxGlade: mnFrame::set_properties
62 SetTitle(wxT("Malon Note"));
63 SetSize(wxSize(900, 572));
64 searchTextCtrl->SetFocus();
65 // end wxGlade
66 }
67
68
69 void mnFrame::do_layout()
70 {
71 // begin wxGlade: mnFrame::do_layout
72 wxBoxSizer* mainSizer = new wxBoxSizer(wxVERTICAL);
73 wxGridSizer* rightPanelSizer = new wxGridSizer(1, 1, 0, 0);
74 wxBoxSizer* leftPanelSizer = new wxBoxSizer(wxHORIZONTAL);
75 wxBoxSizer* topSizer = new wxBoxSizer(wxHORIZONTAL);
76 wxBoxSizer* labelSizer = new wxBoxSizer(wxHORIZONTAL);
77 labelSizer->Add(searchLaebl, 0, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5);
78 panel->SetAutoLayout(true);
79 panel->SetSizer(labelSizer);
80 labelSizer->Fit(panel);
81 labelSizer->SetSizeHints(panel);
82 topSizer->Add(panel, 0, wxEXPAND, 0);
83 topSizer->Add(searchTextCtrl, 1, wxTOP|wxBOTTOM|wxEXPAND|wxFIXED_MINSIZE, 1);
84 mainSizer->Add(topSizer, 0, wxEXPAND, 0);
85 leftPanelSizer->Add(searchTree, 1, wxEXPAND, 0);
86 leftPanel->SetAutoLayout(true);
87 leftPanel->SetSizer(leftPanelSizer);
88 leftPanelSizer->Fit(leftPanel);
89 leftPanelSizer->SetSizeHints(leftPanel);
90 rightPanelSizer->Add(wikiHtmlTextCtrl, 0, wxEXPAND|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 0);
91 rightPanel->SetAutoLayout(true);
92 rightPanel->SetSizer(rightPanelSizer);
93 rightPanelSizer->Fit(rightPanel);
94 rightPanelSizer->SetSizeHints(rightPanel);
95 splitWindow->SplitVertically(leftPanel, rightPanel, 250);
96 mainSizer->Add(splitWindow, 1, wxEXPAND, 0);
97 SetAutoLayout(true);
98 SetSizer(mainSizer);
99 Layout();
100 // end wxGlade
101
102 searchTree->Expand(searchItemRoot);
103 searchTree->Expand(newItemRoot);
104 }
105
106 void mnFrame::showSearchResult(mnModel* wiki)
107 {
108 const wxArrayString* searchStrList;
109 WikiList* wikiList;
110 WikiList::Node* node;
111 int i;
112
113 searchTree->DeleteChildren(searchItemRoot);
114 newItemRoot = searchTree->AppendItem(searchItemRoot, wxT(LABEL_NEW_ITEM), -1, -1, NULL);
115
116 searchStrList = wiki->getSearchStrList();
117 for(i = 0; i < searchStrList->Count(); i++) {
118 wxString& searchStr = searchStrList->Item(i);
119
120 wikiList = wiki->search(searchStr.mb_str());
121 addSearchResult(&searchStr, wikiList);
122 }
123
124 searchTree->ScrollTo(searchItemRoot);
125 }
126
127 void mnFrame::addSearchResult(wxString* searchStr, WikiList* wikiList)
128 {
129 wxTreeItemId searchItem;
130 WikiList::Node* node;
131 WikiData* data;
132 const wxString* subject;
133
134 searchItem = searchTree->AppendItem(searchItemRoot, *searchStr, -1, -1, NULL);
135 node = wikiList->GetFirst();
136 while(node) {
137 data = node->GetData();
138 subject = data->getSubject();
139 searchTree->AppendItem(searchItem, *subject, -1, -1, (wxTreeItemData*)data);
140 node = node->GetNext();
141 }
142 searchTree->Expand(searchItemRoot);
143 searchTree->Expand(searchItem);
144 }
145
146 void mnFrame::showSelectedItemText(wxTreeEvent& event)
147 {
148 wxTreeItemData* item = searchTree->GetItemData(event.GetItem());
149 if(item == NULL) {
150 wikiHtmlTextCtrl->SetPage(wxT(""));
151 return;
152 }
153
154 const wxString* fileName = ((WikiData*)(item))->getFileName();
155 const wxString* wikiText = ((WikiData*)(item))->getText();
156 wxString wikiHtml = wxT("<pre>") + *wikiText + wxT("</pre>");
157
158 wikiHtmlTextCtrl->SetPage(wikiHtml);
159 }
160
161 void mnFrame::showNewItem(WikiData* data)
162 {
163 wxTreeItemId itemId;
164
165 itemId = searchTree->AppendItem(newItemRoot, *(data->getSubject()), -1, -1, (wxTreeItemData*)data);
166 searchTree->Expand(searchItemRoot);
167 searchTree->Expand(newItemRoot);
168 searchTree->SelectItem(itemId);
169 }
170
171 wxTreeItemData* mnFrame::getSelectedItem()
172 {
173 return searchTree->GetItemData(searchTree->GetSelection());
174 }
175
176 wxString mnFrame::getSelectedLabel()
177 {
178 return searchTree->GetItemText(searchTree->GetSelection());
179 }
180
181 bool mnFrame::isEditableTreeLabel(wxTreeItemId id)
182 {
183 return !(searchTree->GetItemParent(id) == searchItemRoot || id == searchItemRoot);
184 }
185
186 bool mnFrame::isNewItem(wxTreeItemId id)
187 {
188 return (searchTree->GetItemParent(id) == newItemRoot);
189 }
190

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