Develop and Download Open Source Software

Browse CVS Repository

Annotation of /malonnote/mnFrame.cpp

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


Revision 1.3 - (hide annotations) (download) (as text)
Sat Jul 30 10:55:16 2005 UTC (18 years, 8 months ago) by maloninc
Branch: MAIN
Changes since 1.2: +12 -3 lines
File MIME type: text/x-c++src
Add WikiDataEntryDialog,but not implemented save-data

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

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