Develop and Download Open Source Software

Browse CVS Repository

Diff of /malonnote/mnNotePanel.cpp

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

revision 1.2 by maloninc, Wed Oct 5 04:55:48 2005 UTC revision 1.15 by maloninc, Fri Oct 20 02:00:03 2006 UTC
# Line 11  Line 11 
11  mnNotePanel::mnNotePanel(wxWindow* parent, wxString* dirName)  mnNotePanel::mnNotePanel(wxWindow* parent, wxString* dirName)
12  {  {
13          wxXmlResource::Get()->LoadPanel(this, parent, wxT("notePanel"));          wxXmlResource::Get()->LoadPanel(this, parent, wxT("notePanel"));
14            searchTree       = XRCCTRL(*this, "searchTree", wxTreeCtrl);
15    
16    #ifdef __WXMAC__
17            wxSplitterWindow* spWindow = XRCCTRL(*this, "splitWindow", wxSplitterWindow);
18            wikiHtmlTextCtrl = new mnHtmlWindow(spWindow, -1, wxT(""), wxDefaultPosition, wxSize(200, 200));
19            spWindow->SplitVertically(searchTree, wikiHtmlTextCtrl, 250);
20    #else
21          /* init members */          /* init members */
22          searchTree       = XRCCTRL(*this, "searchTree", wxTreeCtrl);          wxFont font(12, wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_NORMAL);
23          wikiHtmlTextCtrl = XRCCTRL(*this, "wikiHtmlTextCtrl", mnHtmlWindow);          wikiHtmlTextCtrl = XRCCTRL(*this, "wikiHtmlTextCtrl", mnHtmlWindow);
24            wikiHtmlTextCtrl->SetFonts(font.GetFaceName(), font.GetFaceName());
25    #endif
26    
27    
28          /* create search tree */          /* create search tree */
29          searchItemRoot = searchTree->AddRoot(wxT(LABEL_ITEM_TREE), -1, -1, NULL);          searchItemRoot = searchTree->AddRoot(wxT(LABEL_ITEM_TREE), -1, -1, NULL);
# Line 123  void mnNotePanel::makeHtml(WikiData* wik Line 132  void mnNotePanel::makeHtml(WikiData* wik
132          /* escape > */          /* escape > */
133          wxRegEx exp02(wxT(">"), wxRE_NEWLINE|wxRE_DEFAULT);          wxRegEx exp02(wxT(">"), wxRE_NEWLINE|wxRE_DEFAULT);
134          exp02.Replace(&htmlText, wxT("\\&gt "));          exp02.Replace(&htmlText, wxT("\\&gt "));
135            
136            /* http://  */  
137            wxRegEx exp2(wxT("((http|https|ftp)://[-_.!~*'a-zA-Z0-9;/?:@&=+$,%#]+)"), wxRE_NEWLINE|wxRE_DEFAULT);
138            exp2.Replace(&htmlText, wxT("<a href=\\1>\\1</a>"));
139                    
140          /* [[ ]] */          /* [[ ]] */
141          wxRegEx exp1(wxT("\\[\\[([^\\}]+)\\]\\]"));          wxRegEx exp1(wxT("\\[\\[([^]]+)\\]\\]"));
142          exp1.Replace(&htmlText, wxT("<a href=mnlink:\\1>\\1</a>"));          exp1.Replace(&htmlText, wxT("<a href=\"" MNLINK "\\1\">\\1</a>"));
   
         /* http://  */    
         wxRegEx exp2(wxT("(http://[-_.!~*'a-zA-Z0-9;/?:@&=+$,%#]+)"), wxRE_NEWLINE|wxRE_DEFAULT);  
         exp2.Replace(&htmlText, wxT("<a href=\\1>\\1</a>"));  
143    
144          /* file://  */            /* file://  */  
145          wxRegEx exp3(wxT("(file://[^ ]+)"), wxRE_NEWLINE|wxRE_DEFAULT);          wxRegEx exp3(wxT("(file://[^ ]+)"), wxRE_NEWLINE|wxRE_DEFAULT);
146          exp3.Replace(&htmlText, wxT("<a href=\\1>\\1</a>"));          exp3.Replace(&htmlText, wxT("<a href=\\1>\\1</a>"));
   
         /* *XXXX */  
         wxRegEx exp4(wxT("^\\*([^\\*]+)"), wxRE_NEWLINE|wxRE_DEFAULT);  
         exp4.Replace(&htmlText, wxT("<h3>\\1</h3>"));  
147                    
148          /* **XXXX */          /* **XXXX */
149          wxRegEx exp5(wxT("^\\*\\*([^\\*]+)"), wxRE_NEWLINE|wxRE_DEFAULT);          wxRegEx exp5(wxT("^\\*\\*([^*]+)"), wxRE_NEWLINE|wxRE_DEFAULT);
150          exp5.Replace(&htmlText, wxT("<h4>\\1</h4>"));  #ifdef __WXMAC__
151                    exp5.Replace(&htmlText, wxT("<TABLE WIDTH=\"100%\" CELLPADDING=2 CELLSPACING=1 BORDER=0><TR><TD BGCOLOR=\"#CCFFFF\"><FONT SIZE=3><B>\\1</B></FONT></TD></TR></TABLE>"));
152    #else
153            exp5.Replace(&htmlText, wxT("<TABLE WIDTH=\"100%\" CELLPADDING=2 CELLSPACING=1 BORDER=0><TR><TD BGCOLOR=\"#CCFFFF\"><FONT SIZE=3><B>\\1</B></FONT></TD></TR></TABLE><BR>"));
154    #endif
155    
156            /* *XXXX */
157            wxRegEx exp4(wxT("^\\*([^*]+)"), wxRE_NEWLINE|wxRE_DEFAULT);
158    #ifdef __WXMAC__
159            exp4.Replace(&htmlText, wxT("<TABLE WIDTH=\"100%\" CELLPADDING=5 CELLSPACING=2 BORDER=1><TR><TD BGCOLOR=\"#CCFFFF\"><FONT SIZE=4><B>\\1</B></FONT></TD></TR></TABLE>"));
160    #else
161            exp4.Replace(&htmlText, wxT("<TABLE WIDTH=\"100%\" CELLPADDING=5 CELLSPACING=2 BORDER=1><TR><TD BGCOLOR=\"#CCFFFF\"><FONT SIZE=5><B>\\1</B></FONT></TD></TR></TABLE><BR>"));
162    #endif
163    
164          /* :''XXXX'': */          /* :''XXXX'': */
165          wxRegEx exp6(wxT("^:''(.+)'':(.+)"), wxRE_NEWLINE|wxRE_DEFAULT);          wxRegEx exp6(wxT("^:''(.+)'':(.+)"), wxRE_NEWLINE|wxRE_DEFAULT);
166          exp6.Replace(&htmlText, wxT("<u><b>\\1:\\2</b></u>"));          exp6.Replace(&htmlText, wxT("<u><b>\\1:\\2</b></u>"));
# Line 151  void mnNotePanel::makeHtml(WikiData* wik Line 168  void mnNotePanel::makeHtml(WikiData* wik
168          /* ---- */          /* ---- */
169          wxRegEx exp7(wxT("^----.*"), wxRE_NEWLINE|wxRE_DEFAULT);          wxRegEx exp7(wxT("^----.*"), wxRE_NEWLINE|wxRE_DEFAULT);
170          exp7.Replace(&htmlText, wxT("<hr>"));          exp7.Replace(&htmlText, wxT("<hr>"));
171            
172            /* -XXXX */
173            wxRegEx exp16(wxT("^-(.*)"), wxRE_NEWLINE|wxRE_DEFAULT);
174    #ifdef __WXMAC__
175            exp16.Replace(&htmlText, wxT("<li>\\1</li>"));
176    #else
177            exp16.Replace(&htmlText, wxT("<ul><li>\\1</li></ul>"));
178    #endif
179            
180    
181          /* {{ }} */          /* {{ }} */
182          wxRegEx exp8(wxT("\\{\\{([^\\}]+)\\}\\}"));          wxRegEx exp8(wxT("\\{\\{([^\\}]+)\\}\\}"));
183          exp8.Replace(&htmlText, wxT("<a href=mndoc:\\1>\\1</a>"));          exp8.Replace(&htmlText, wxT("<a href=\"" MNDOC "\\1\">\\1</a>"));
184    
185          /* table */          /* table */
186          wxRegEx exp10(wxT(",([^,\n]+)"), wxRE_DEFAULT);          wxRegEx exp10(wxT("^,([^,]+)"), wxRE_NEWLINE|wxRE_DEFAULT);
187          exp10.Replace(&htmlText, wxT("<td>\\1</td>"));          exp10.Replace(&htmlText, wxT("<td> \\1 </td>"));
188            for(int i = 0; i < 64; i++){ // It's not good.  :P
189                    wxRegEx exp16(wxT("</td>,([^,\n]+)"), wxRE_DEFAULT);
190                    exp16.Replace(&htmlText, wxT("</td><td>\\1</td>"));
191            }
192          wxRegEx exp11(wxT("^<td>"), wxRE_NEWLINE|wxRE_DEFAULT);          wxRegEx exp11(wxT("^<td>"), wxRE_NEWLINE|wxRE_DEFAULT);
193          exp11.Replace(&htmlText, wxT("<tr><td>"));          exp11.Replace(&htmlText, wxT("<tr><td>"));
194          wxRegEx exp12(wxT("</td>$"), wxRE_NEWLINE|wxRE_DEFAULT);          wxRegEx exp12(wxT("</td>$"), wxRE_NEWLINE|wxRE_DEFAULT);
# Line 186  void mnNotePanel::makeHtml(WikiData* wik Line 216  void mnNotePanel::makeHtml(WikiData* wik
216                  }                  }
217          }          }
218    
           
219          /* make HTML document */          /* make HTML document */
220          wxString wikiHtml;          wxString wikiHtml;
221          wikiHtml.Append(wxT("<meta http-equiv=\"Content-Type\"content=\"text/html; charset="));          wikiHtml.Append(wxT("<meta http-equiv=\"Content-Type\" content=\"text/html; charset="));
222          wikiHtml.Append(wxT(CODE_SET_SYSTEM));          wikiHtml.Append(wxT(CODE_SET_SYSTEM));
223          wikiHtml.Append(wxT("\">"));          wikiHtml.Append(wxT("\">"));
224          wikiHtml.Append(wxT("<pre>"));          wikiHtml.Append(wxT("<pre>"));
225          wikiHtml.Append(htmlText);          wikiHtml.Append(wxT("<html>"));
226            wikiHtml.Append(htmlText.c_str());
227          wikiHtml.Append(wxT("</pre>"));          wikiHtml.Append(wxT("</pre>"));
228            wikiHtml.Append(wxT("</html>"));
229    
230          wikiHtmlTextCtrl->SetPage(wikiHtml);          wikiHtmlTextCtrl->SetPage(wikiHtml);
231  }  }
# Line 208  void mnNotePanel::showSelectedItemText(w Line 239  void mnNotePanel::showSelectedItemText(w
239          item = searchTree->GetItemData(id);          item = searchTree->GetItemData(id);
240    
241          if(!id.IsOk() || !isEditableTreeLabel(id) || item == NULL) { /* selection is not memo data */          if(!id.IsOk() || !isEditableTreeLabel(id) || item == NULL) { /* selection is not memo data */
242                  wikiHtmlTextCtrl->SetPage(wxT(""));                  wikiHtmlTextCtrl->SetPage(wxT("<html></html>"));
243                  return;                  return;
244          }          }
245          makeHtml((WikiData*)item, false);          makeHtml((WikiData*)item, false);

Legend:
Removed from v.1.2  
changed lines
  Added in v.1.15

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