X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/99120938f46fa07b69051d5758d400bf6bfb0511..fe59c7de50a229cd43d33ea28b07e03a14b39a89:/samples/richedit/wxLayout.cpp diff --git a/samples/richedit/wxLayout.cpp b/samples/richedit/wxLayout.cpp deleted file mode 100644 index cdb8016177..0000000000 --- a/samples/richedit/wxLayout.cpp +++ /dev/null @@ -1,579 +0,0 @@ -/* - * Program: wxLayout - * - * Author: Karsten Ballüder - * - * Copyright: (C) 1998, Karsten Ballüder - * - */ - -#include "wx/wxprec.h" -#ifdef __BORLANDC__ -# pragma hdrstop -#endif - -#include "wxLayout.h" -#include "wx/textfile.h" -#include "wx/image.h" - -#if wxUSE_IOSTREAMH - #include -#else - #include -#endif - -#include "wx/wfstream.h" -#include "wx/txtstrm.h" - -#include "Micon.xpm" - - -//----------------------------------------------------------------------------- -// main program -//----------------------------------------------------------------------------- - -IMPLEMENT_APP(MyApp) - -//----------------------------------------------------------------------------- -// MyFrame -//----------------------------------------------------------------------------- - -enum ids -{ - ID_ADD_SAMPLE = 1, ID_CLEAR, ID_PRINT, - ID_PRINT_SETUP, ID_PAGE_SETUP, ID_PREVIEW, ID_PRINT_PS, - ID_PRINT_SETUP_PS, ID_PAGE_SETUP_PS,ID_PREVIEW_PS, - ID_WRAP, ID_NOWRAP, ID_PASTE, ID_COPY, ID_CUT, - ID_COPY_PRIMARY, ID_PASTE_PRIMARY, - ID_FIND, - ID_WXLAYOUT_DEBUG, ID_QUIT, ID_CLICK, ID_HTML, ID_TEXT, - ID_TEST, ID_LINEBREAKS_TEST, ID_LONG_TEST, ID_URL_TEST -}; - - -IMPLEMENT_DYNAMIC_CLASS( MyFrame, wxFrame ) - -BEGIN_EVENT_TABLE(MyFrame,wxFrame) - EVT_MENU(ID_PRINT, MyFrame::OnPrint) - EVT_MENU(ID_PREVIEW, MyFrame::OnPrintPreview) - EVT_MENU(ID_PRINT_SETUP, MyFrame::OnPrintSetup) - EVT_MENU(ID_PAGE_SETUP, MyFrame::OnPageSetup) - EVT_MENU(ID_PRINT_PS, MyFrame::OnPrintPS) - 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 (wxID_ANY, MyFrame::OnCommand) - EVT_COMMAND (wxID_ANY,wxID_ANY, MyFrame::OnCommand) - EVT_CHAR ( wxLayoutWindow::OnChar ) -END_EVENT_TABLE() - - -MyFrame::MyFrame() : - wxFrame( (wxFrame *) NULL, wxID_ANY, _T("wxLayout"), - wxDefaultPosition, wxDefaultSize ) -{ -#if wxUSE_STATUSBAR - CreateStatusBar( 2 ); - SetStatusText( _T("wxLayout by Karsten Ballueder.") ); -#endif // wxUSE_STATUSBAR - - wxMenuBar *menu_bar = new wxMenuBar(); - - wxMenu *file_menu = new wxMenu; - file_menu->Append(ID_PRINT, _T("&Print..."), _T("Print")); - file_menu->Append(ID_PRINT_SETUP, _T("Print &Setup..."),_T("Setup printer properties")); - file_menu->Append(ID_PAGE_SETUP, _T("Page Set&up..."), _T("Page setup")); - file_menu->Append(ID_PREVIEW, _T("Print Pre&view"), _T("Preview")); -#ifdef __WXMSW__ - file_menu->AppendSeparator(); - file_menu->Append(ID_PRINT_PS, _T("Print PostScript..."), _T("Print (PostScript)")); - file_menu->Append(ID_PRINT_SETUP_PS, _T("Print Setup PostScript..."), _T("Setup printer properties (PostScript)")); - file_menu->Append(ID_PAGE_SETUP_PS, _T("Page Setup PostScript..."), _T("Page setup (PostScript)")); - file_menu->Append(ID_PREVIEW_PS, _T("Print Preview PostScript"), _T("Preview (PostScript)")); -#endif - file_menu->AppendSeparator(); - file_menu->Append( ID_TEXT, _T("Export &Text")); - file_menu->Append( ID_HTML, _T("Export &HTML")); - file_menu->Append( ID_QUIT, _T("E&xit")); - menu_bar->Append(file_menu, _T("&File")); - - wxMenu *edit_menu = new wxMenu; - edit_menu->Append( ID_CLEAR, _T("C&lear")); - edit_menu->Append( ID_ADD_SAMPLE, _T("&Example")); - edit_menu->Append( ID_LONG_TEST, _T("Add &many lines")); - edit_menu->AppendSeparator(); - edit_menu->Append( ID_LINEBREAKS_TEST, _T("Add &several lines")); - edit_menu->Append( ID_URL_TEST, _T("Insert an &URL")); - edit_menu->AppendSeparator(); - edit_menu->Append(ID_WRAP, _T("&Wrap mode"), _T("Activate wrapping at pixel 200.")); - edit_menu->Append(ID_NOWRAP, _T("&No-wrap mode"), _T("Deactivate wrapping.")); - edit_menu->AppendSeparator(); - edit_menu->Append(ID_COPY, _T("&Copy"), _T("Copy text to clipboard.")); - edit_menu->Append(ID_CUT, _T("Cu&t"), _T("Cut text to clipboard.")); - edit_menu->Append(ID_PASTE,_T("&Paste"), _T("Paste text from clipboard.")); -#ifdef __WXGTK__ - edit_menu->Append(ID_COPY_PRIMARY, _T("C&opy primary"), _T("Copy text to primary selecton.")); - edit_menu->Append(ID_PASTE_PRIMARY, _T("&Paste primary"), _T("Paste text from primary selection.")); -#endif - edit_menu->Append(ID_FIND, _T("&Find"), _T("Find text.")); - menu_bar->Append(edit_menu, _T("&Edit") ); - -#ifndef __WXMSW__ - 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); - m_lwin->SetFocus(); - - // JACS: under MSW, the window doesn't show the caret initially, - // and the following line I added doesn't help either. - // going to another window and then back again fixes it. - // m_lwin->OnSetFocus(wxFocusEvent()); - - Clear(); - -#if 0 - // create and set the background bitmap (this will result in a lattice) - static const int sizeBmp = 10; - wxBitmap *bitmap = new wxBitmap(sizeBmp, sizeBmp); - wxMemoryDC dcMem; - dcMem.SelectObject( *bitmap ); - dcMem.SetBackground( *wxWHITE_BRUSH ); - dcMem.Clear(); - - dcMem.SetPen( *wxGREEN_PEN ); - dcMem.DrawLine(sizeBmp/2, 0, sizeBmp/2, sizeBmp); - dcMem.DrawLine(0, sizeBmp/2, sizeBmp, sizeBmp/2); - - dcMem.SelectObject( wxNullBitmap ); - - m_lwin->SetBackgroundBitmap(bitmap); -#endif // 0 -}; - -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(); - - llist->SetFont(wxROMAN,16,wxNORMAL,wxNORMAL, false); - llist->Insert(_T("--")); - llist->LineBreak(); - - llist->SetFont(wxROMAN); - llist->Insert(_T("The quick brown fox jumps over the lazy dog.")); - llist->LineBreak(); - - 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(); -} - -void MyFrame::Clear() -{ - wxColour colBg(0, 0, 0); - - m_lwin->Clear(wxROMAN,16,wxNORMAL,wxNORMAL, false, wxRED, &colBg); -} - - -void MyFrame::OnCommand( wxCommandEvent &event ) -{ - switch (event.GetId()) - { - case ID_QUIT: - Close(true); - break; - case ID_PRINT: - { - wxPrinter printer; - wxLayoutPrintout printout(m_lwin->GetLayoutList(),_("M: Printout")); - 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 - // error "C2308: concatenating mismatched wide strings" when - // building a Unicode version. - wxMessageBox - ( - _("There was a problem with printing the message:\nperhaps your current printer is not set up correctly?"), - _("Printing"), wxOK - ); - } - break; - } - - case ID_NOWRAP: - case ID_WRAP: - m_lwin->SetWrapMargin(event.GetId() == ID_NOWRAP ? 0 : 40); - break; - case ID_ADD_SAMPLE: - AddSampleText(m_lwin->GetLayoutList()); - break; - case ID_CLEAR: - Clear(); - break; - case ID_CLICK: - wxLogError( _T("Received click event.") ); - break; - case ID_PASTE: - 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); - break; - case ID_COPY_PRIMARY: - // copy text-only to primary selection: - 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); - break; - case ID_CUT: - m_lwin->Cut(); - m_lwin->Refresh(false); - break; -#ifdef M_BASEDIR - case ID_FIND: - m_lwin->Find("void"); - 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()); - while((export0 = wxLayoutExport( &status, WXLO_EXPORT_AS_HTML)) != NULL) - { - if(export0->type == WXLO_EXPORT_HTML) - object = *(export0->content.text); - else - ; // ignore "