X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/bd12a395baa3a4c29fb857f8d30c455bf361a5b1..e396018defb4bb0c5726c5cd533c22f15755845b:/samples/richedit/wxLayout.cpp diff --git a/samples/richedit/wxLayout.cpp b/samples/richedit/wxLayout.cpp index 0ebb8695b5..cdb8016177 100644 --- a/samples/richedit/wxLayout.cpp +++ b/samples/richedit/wxLayout.cpp @@ -7,18 +7,14 @@ * */ -#ifdef __GNUG__ -#pragma implementation "wxLayout.h" -#endif - #include "wx/wxprec.h" #ifdef __BORLANDC__ # pragma hdrstop #endif #include "wxLayout.h" -#include -#include +#include "wx/textfile.h" +#include "wx/image.h" #if wxUSE_IOSTREAMH #include @@ -26,7 +22,10 @@ #include #endif -#include "Micon.xpm" +#include "wx/wfstream.h" +#include "wx/txtstrm.h" + +#include "Micon.xpm" //----------------------------------------------------------------------------- @@ -63,19 +62,20 @@ BEGIN_EVENT_TABLE(MyFrame,wxFrame) EVT_MENU(ID_PREVIEW_PS, MyFrame::OnPrintPreviewPS) EVT_MENU(ID_PRINT_SETUP_PS, MyFrame::OnPrintSetupPS) EVT_MENU(ID_PAGE_SETUP_PS, MyFrame::OnPageSetupPS) - EVT_MENU (-1, MyFrame::OnCommand) - EVT_COMMAND (-1,-1, MyFrame::OnCommand) + EVT_MENU (wxID_ANY, MyFrame::OnCommand) + EVT_COMMAND (wxID_ANY,wxID_ANY, MyFrame::OnCommand) EVT_CHAR ( wxLayoutWindow::OnChar ) END_EVENT_TABLE() -MyFrame::MyFrame(void) : - wxFrame( (wxFrame *) NULL, -1, _T("wxLayout"), - wxPoint(880,100), wxSize(256,256) ) +MyFrame::MyFrame() : + wxFrame( (wxFrame *) NULL, wxID_ANY, _T("wxLayout"), + wxDefaultPosition, wxDefaultSize ) { +#if wxUSE_STATUSBAR CreateStatusBar( 2 ); - - SetStatusText( _T("wxLayout by Karsten Ballüder.") ); + SetStatusText( _T("wxLayout by Karsten Ballueder.") ); +#endif // wxUSE_STATUSBAR wxMenuBar *menu_bar = new wxMenuBar(); @@ -119,13 +119,15 @@ MyFrame::MyFrame(void) : menu_bar->Append(edit_menu, _T("&Edit") ); #ifndef __WXMSW__ - menu_bar->Show( TRUE ); + menu_bar->Show(true); #endif // MSW SetMenuBar( menu_bar ); m_lwin = new wxLayoutWindow(this); +#if wxUSE_STATUSBAR m_lwin->SetStatusBar(GetStatusBar(), 0, 1); +#endif // wxUSE_STATUSBAR m_lwin->SetMouseTracking(true); m_lwin->SetEditable(true); m_lwin->SetWrapMargin(40); @@ -157,12 +159,13 @@ MyFrame::MyFrame(void) : #endif // 0 }; -void -MyFrame::AddSampleText(wxLayoutList *llist) +void MyFrame::AddSampleText(wxLayoutList *llist) { llist->Clear(wxSWISS,16,wxNORMAL,wxNORMAL, false); llist->SetFont(-1,-1,-1,-1,-1,_T("blue")); llist->Insert(_T("blue")); + llist->LineBreak(); + llist->SetFont(-1,-1,-1,-1,-1,_T("black")); llist->Insert(_T("The quick brown fox jumps over the lazy dog.")); llist->LineBreak(); @@ -174,89 +177,89 @@ MyFrame::AddSampleText(wxLayoutList *llist) llist->SetFont(wxROMAN); llist->Insert(_T("The quick brown fox jumps over the lazy dog.")); llist->LineBreak(); - llist->Insert(_T("Hello ")); -#if wxICON_IS_BITMAP - llist->Insert(new wxLayoutObjectIcon(new wxICON(Micon))); -#else - llist->Insert(new wxLayoutObjectIcon(new wxBitmap (wxICON(Micon)))); -#endif - llist->SetFontWeight(wxBOLD); - llist->Insert(_T("World! ")); - llist->SetFontWeight(wxNORMAL); - llist->Insert(_T("The quick brown fox jumps...")); - llist->LineBreak(); - llist->Insert(_T("over the lazy dog.")); - llist->SetFont(-1,-1,-1,-1,true); - llist->Insert(_T("underlined")); - llist->SetFont(-1,-1,-1,-1,false); - llist->SetFont(wxROMAN); - llist->Insert(_T("This is ")); - llist->SetFont(-1,-1,-1,wxBOLD); llist->Insert(_T("BOLD ")); llist->SetFont(-1,-1,-1,wxNORMAL); - llist->Insert(_T("and ")); - llist->SetFont(-1,-1,wxITALIC); - llist->Insert(_T("italics ")); - llist->SetFont(-1,-1,wxNORMAL); - llist->LineBreak(); - llist->Insert(_T("and ")); - llist->SetFont(-1,-1,wxSLANT); - llist->Insert(_T("slanted")); - llist->SetFont(-1,-1,wxNORMAL); - llist->Insert(_T(" text.")); - llist->LineBreak(); - llist->Insert(_T("and ")); - llist->SetFont(-1,-1,-1,-1,-1,_T("blue")); - llist->Insert(_T("blue")); - llist->SetFont(-1,-1,-1,-1,-1,_T("black")); - llist->Insert(_T(" and ")); - llist->SetFont(-1,-1,-1,-1,-1,_T("green"),_T("black")); - llist->Insert(_T("green on black")); - llist->SetFont(-1,-1,-1,-1,-1,_T("black"),_T("white")); - llist->Insert(_T(" text.")); - llist->LineBreak(); - llist->SetFont(-1,-1,wxSLANT); - llist->Insert(_T("Slanted")); - llist->SetFont(-1,-1,wxNORMAL); - llist->Insert(_T(" and normal text and ")); - llist->SetFont(-1,-1,wxSLANT); - llist->Insert(_T("slanted")); - llist->SetFont(-1,-1,wxNORMAL); - llist->Insert(_T(" again.")); - llist->LineBreak(); - - // add some more text for testing: - llist->Insert(_T("And here the source for the test program:")); - llist->LineBreak(); - llist->SetFont(wxTELETYPE,16); - llist->Insert(_T("And here the source for the test program:")); - llist->LineBreak(); - llist->Insert(_T("And here the source for the test program:")); - llist->LineBreak(); - llist->Insert(_T("And here the source for the test program:")); - - wxFile file( _T("wxLayout.cpp") ); - if ( file.IsOpened() ) - { - off_t len = file.Length(); - wxChar *data = (wxChar *)malloc(2*len); - if ( file.Read(data, len) == len ) - { - wxLayoutImportText(llist, data); - } - free(data); - } + llist->Insert(_T("Hello ")); + wxBitmap *icon = new wxBitmap (wxIcon(Micon_xpm)); + + llist->Insert(new wxLayoutObjectIcon(icon)); + llist->SetFontWeight(wxBOLD); + llist->Insert(_T("World! ")); + llist->SetFontWeight(wxNORMAL); + llist->Insert(_T("The quick brown fox jumps...")); + llist->LineBreak(); + + llist->Insert(_T("over the lazy dog.")); + llist->SetFont(-1,-1,-1,-1,true); + llist->Insert(_T("underlined")); + llist->SetFont(-1,-1,-1,-1,false); + llist->SetFont(wxROMAN); + llist->Insert(_T("This is ")); + llist->SetFont(-1,-1,-1,wxBOLD); + llist->Insert(_T("BOLD ")); + llist->SetFont(-1,-1,-1,wxNORMAL); + llist->Insert(_T("and ")); + llist->SetFont(-1,-1,wxITALIC); + llist->Insert(_T("italics ")); + llist->SetFont(-1,-1,wxNORMAL); + llist->LineBreak(); + + llist->Insert(_T("and ")); + llist->SetFont(-1,-1,wxSLANT); + llist->Insert(_T("slanted")); + llist->SetFont(-1,-1,wxNORMAL); + llist->Insert(_T(" text.")); + llist->LineBreak(); + + llist->Insert(_T("and ")); + llist->SetFont(-1,-1,-1,-1,-1,_T("blue")); + llist->Insert(_T("blue")); + llist->SetFont(-1,-1,-1,-1,-1,_T("black")); + llist->Insert(_T(" and ")); + llist->SetFont(-1,-1,-1,-1,-1,_T("green"),_T("black")); + llist->Insert(_T("green on black")); + llist->SetFont(-1,-1,-1,-1,-1,_T("black"),_T("white")); + llist->Insert(_T(" text.")); + llist->LineBreak(); + + llist->SetFont(-1,-1,wxSLANT); + llist->Insert(_T("Slanted")); + llist->SetFont(-1,-1,wxNORMAL); + llist->Insert(_T(" and normal text and ")); + llist->SetFont(-1,-1,wxSLANT); + llist->Insert(_T("slanted")); + llist->SetFont(-1,-1,wxNORMAL); + llist->Insert(_T(" again.")); + llist->LineBreak(); + + // add some more text for testing: + llist->Insert(_T("And here the source for the test program:")); + llist->LineBreak(); + + llist->SetFont(wxTELETYPE,16); + llist->Insert(_T("And here the source for the test program:")); + llist->LineBreak(); + + wxTextFile file(_T("wxLayout.cpp")); + if ( file.Open() ) + { + for ( wxString s = file.GetFirstLine(); !file.Eof(); s = file.GetNextLine() ) + { + wxString line; + llist->Insert(line.Format(_T("%6u: %s"),file.GetCurrentLine()+1,s.c_str())); + llist->LineBreak(); + } + } - llist->MoveCursorTo(wxPoint(0,0)); - m_lwin->SetDirty(); - m_lwin->Refresh(); + llist->MoveCursorTo(wxPoint(0,0)); + m_lwin->SetDirty(); + m_lwin->Refresh(); } -void -MyFrame::Clear(void) +void MyFrame::Clear() { - wxColour colBg(0, 0, 0); + wxColour colBg(0, 0, 0); - m_lwin->Clear(wxROMAN,16,wxNORMAL,wxNORMAL, false, wxRED, &colBg); + m_lwin->Clear(wxROMAN,16,wxNORMAL,wxNORMAL, false, wxRED, &colBg); } @@ -265,13 +268,13 @@ void MyFrame::OnCommand( wxCommandEvent &event ) switch (event.GetId()) { case ID_QUIT: - Close( TRUE ); + Close(true); break; case ID_PRINT: { wxPrinter printer; wxLayoutPrintout printout(m_lwin->GetLayoutList(),_("M: Printout")); - if (! printer.Print(this, &printout, TRUE)) + if (! printer.Print(this, &printout, true)) { // Had to remove the split up strings that used to be below, and // put them into one long strong. Otherwise MSVC would give an @@ -297,76 +300,100 @@ void MyFrame::OnCommand( wxCommandEvent &event ) Clear(); break; case ID_CLICK: - cerr << "Received click event." << endl; + wxLogError( _T("Received click event.") ); break; case ID_PASTE: - m_lwin->Paste(TRUE); - m_lwin->Refresh(FALSE); + m_lwin->Paste(true); + m_lwin->Refresh(false); break; #ifdef __WXGTK__ case ID_PASTE_PRIMARY: // text only from primary: - m_lwin->Paste(FALSE, TRUE); - m_lwin->Refresh(FALSE); + m_lwin->Paste(false, true); + m_lwin->Refresh(false); break; case ID_COPY_PRIMARY: // copy text-only to primary selection: - m_lwin->Copy(FALSE,FALSE,TRUE); - m_lwin->Refresh(FALSE); + m_lwin->Copy(false, false, true); + m_lwin->Refresh(false); break; #endif case ID_COPY: - m_lwin->Copy(TRUE,TRUE,FALSE); - m_lwin->Refresh(FALSE); + m_lwin->Copy(true, true, false); + m_lwin->Refresh(false); break; case ID_CUT: m_lwin->Cut(); - m_lwin->Refresh(FALSE); + m_lwin->Refresh(false); break; #ifdef M_BASEDIR case ID_FIND: m_lwin->Find("void"); - m_lwin->Refresh(FALSE); + m_lwin->Refresh(false); break; #endif case ID_HTML: { + wxFileDialog + HTML_dialog( this, + _T("Save As HTML..."), + wxEmptyString, + wxEmptyString, + _T("HTML file (*.html)|*.html|Text file (*.txt)|*.txt|Any file (*)|*"), + wxSAVE|wxOVERWRITE_PROMPT + ); + if (HTML_dialog.ShowModal() == wxID_OK) + { + wxFFileOutputStream output( HTML_dialog.GetPath() ); + wxTextOutputStream textout( output ); + wxLayoutExportObject *export0; + wxString object; wxLayoutExportStatus status(m_lwin->GetLayoutList()); - - cout << "" << endl; - while((export0 = wxLayoutExport( &status, - WXLO_EXPORT_AS_HTML)) != NULL) + while((export0 = wxLayoutExport( &status, WXLO_EXPORT_AS_HTML)) != NULL) { if(export0->type == WXLO_EXPORT_HTML) - cout << *(export0->content.text); + object = *(export0->content.text); else - ; // ignore itcout << "