X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/ce00f59b5b169752d2f05ce3bb1a88ddc1b38b4c..31a1584724f0d7c3f85b1bf6f340480febefdf52:/samples/font/font.cpp?ds=sidebyside diff --git a/samples/font/font.cpp b/samples/font/font.cpp index 8dc2e42d2c..0dbf46ac59 100644 --- a/samples/font/font.cpp +++ b/samples/font/font.cpp @@ -107,6 +107,7 @@ public: void OnSlant(wxCommandEvent& event); void OnUnderline(wxCommandEvent& event); + void OnStrikethrough(wxCommandEvent& event); void OnwxPointerFont(wxCommandEvent& event); void OnwxSystemSettingsFont(wxCommandEvent& event); @@ -178,6 +179,7 @@ enum Font_Slant, Font_Underlined, + Font_Strikethrough, // standard global wxFont objects: Font_wxNORMAL_FONT, @@ -231,6 +233,7 @@ BEGIN_EVENT_TABLE(MyFrame, wxFrame) EVT_MENU(Font_Slant, MyFrame::OnSlant) EVT_MENU(Font_Underlined, MyFrame::OnUnderline) + EVT_MENU(Font_Strikethrough, MyFrame::OnStrikethrough) EVT_MENU(Font_wxNORMAL_FONT, MyFrame::OnwxPointerFont) EVT_MENU(Font_wxSMALL_FONT, MyFrame::OnwxPointerFont) @@ -282,9 +285,8 @@ bool MyApp::OnInit() MyFrame *frame = new MyFrame(wxT("Font wxWidgets demo"), wxPoint(50, 50), wxSize(600, 400)); - // Show it and tell the application that it's our main window + // Show it frame->Show(true); - SetTopWindow(frame); // success: wxApp::OnRun() will be called which will enter the main message // loop and the application will run. If we returned 'false' here, the @@ -312,7 +314,7 @@ MyFrame::MyFrame(const wxString& title, const wxPoint& pos, const wxSize& size) menuFile->Append(Font_ViewMsg, wxT("&View...\tCtrl-V"), wxT("View an email message file")); menuFile->AppendSeparator(); - menuFile->Append(Font_About, wxT("&About...\tCtrl-A"), wxT("Show about dialog")); + menuFile->Append(Font_About, wxT("&About\tCtrl-A"), wxT("Show about dialog")); menuFile->AppendSeparator(); menuFile->Append(Font_Quit, wxT("E&xit\tAlt-X"), wxT("Quit this program")); @@ -331,6 +333,8 @@ MyFrame::MyFrame(const wxString& title, const wxPoint& pos, const wxSize& size) menuFont->AppendSeparator(); menuFont->AppendCheckItem(Font_Underlined, wxT("&Underlined\tCtrl-U"), wxT("Toggle underlined state")); + menuFont->AppendCheckItem(Font_Strikethrough, wxT("&Strikethrough"), + wxT("Toggle strikethrough state")); menuFont->AppendSeparator(); menuFont->Append(Font_SetNativeDesc, @@ -554,7 +558,7 @@ void MyFrame::OnSetNativeDesc(wxCommandEvent& WXUNUSED(event)) wxFont font; font.SetNativeFontInfo(fontInfo); - if ( !font.Ok() ) + if ( !font.IsOk() ) { wxLogError(wxT("Font info string \"%s\" is invalid."), fontInfo.c_str()); @@ -577,12 +581,12 @@ void MyFrame::OnSetNativeUserDesc(wxCommandEvent& WXUNUSED(event)) wxFont font; if (font.SetNativeFontInfoUserDesc(fontUserInfo)) { - wxASSERT_MSG(font.Ok(), wxT("The font should now be valid")); + wxASSERT_MSG(font.IsOk(), wxT("The font should now be valid")); DoChangeFont(font); } else { - wxASSERT_MSG(!font.Ok(), wxT("The font should now be invalid")); + wxASSERT_MSG(!font.IsOk(), wxT("The font should now be invalid")); wxMessageBox(wxT("Error trying to create a font with such description...")); } } @@ -609,12 +613,12 @@ void MyFrame::OnSetFaceName(wxCommandEvent& WXUNUSED(event)) wxFont font(GetCanvas()->GetTextFont()); if (font.SetFaceName(newFaceName)) // change facename only { - wxASSERT_MSG(font.Ok(), wxT("The font should now be valid")); + wxASSERT_MSG(font.IsOk(), wxT("The font should now be valid")); DoChangeFont(font); } else { - wxASSERT_MSG(!font.Ok(), wxT("The font should now be invalid")); + wxASSERT_MSG(!font.IsOk(), wxT("The font should now be invalid")); wxMessageBox(wxT("There is no font with such face name..."), wxT("Invalid face name"), wxOK|wxICON_ERROR, this); } @@ -736,6 +740,13 @@ void MyFrame::OnUnderline(wxCommandEvent& event) DoChangeFont(font); } +void MyFrame::OnStrikethrough(wxCommandEvent& event) +{ + wxFont font = m_canvas->GetTextFont(); + font.SetStrikethrough(event.IsChecked()); + DoChangeFont(font); +} + void MyFrame::OnwxPointerFont(wxCommandEvent& event) { wxFont font; @@ -807,13 +818,14 @@ void MyFrame::OnwxSystemSettingsFont(wxCommandEvent& event) void MyFrame::DoChangeFont(const wxFont& font, const wxColour& col) { m_canvas->SetTextFont(font); - if ( col.Ok() ) + if ( col.IsOk() ) m_canvas->SetColour(col); m_canvas->Refresh(); m_textctrl->SetFont(font); - if ( col.Ok() ) + if ( col.IsOk() ) m_textctrl->SetForegroundColour(col); + m_textctrl->Refresh(); // update the state of the bold/italic/underlined menu items wxMenuBar *mbar = GetMenuBar(); @@ -828,6 +840,7 @@ void MyFrame::DoChangeFont(const wxFont& font, const wxColour& col) #endif mbar->Check(Font_Underlined, font.GetUnderlined()); + mbar->Check(Font_Strikethrough, font.GetStrikethrough()); } } @@ -969,7 +982,7 @@ void MyFrame::OnViewMsg(wxCommandEvent& WXUNUSED(event)) wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_NORMAL, false /* !underlined */, wxEmptyString /* facename */, fontenc); - if ( font.Ok() ) + if ( font.IsOk() ) { DoChangeFont(font); } @@ -1010,7 +1023,7 @@ void MyCanvas::OnPaint( wxPaintEvent &WXUNUSED(event) ) PrepareDC(dc); // set background - dc.SetBackground(wxBrush(wxT("white"), wxSOLID)); + dc.SetBackground(*wxWHITE_BRUSH); dc.Clear(); dc.SetFont(m_font); @@ -1048,7 +1061,7 @@ void MyCanvas::OnPaint( wxPaintEvent &WXUNUSED(event) ) dc.DrawText(fontInfo, x, y); y += hLine; - if ( m_font.Ok() ) + if ( m_font.IsOk() ) { const wxNativeFontInfo *info = m_font.GetNativeFontInfo(); if ( info ) @@ -1092,7 +1105,7 @@ void MyCanvas::OnPaint( wxPaintEvent &WXUNUSED(event) ) } // draw the lines between them - dc.SetPen(wxPen(wxColour(wxT("blue")), 1, wxSOLID)); + dc.SetPen(*wxBLUE_PEN); int l; // horizontal