X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/4cbcae1637045a75d2e897e551008c68616653f1..bb28b47763782647dcc1bec72786c16f39c48d35:/samples/drawing/drawing.cpp?ds=sidebyside diff --git a/samples/drawing/drawing.cpp b/samples/drawing/drawing.cpp index 8e53e2d480..5c71ee2b09 100644 --- a/samples/drawing/drawing.cpp +++ b/samples/drawing/drawing.cpp @@ -37,13 +37,14 @@ #include "wx/colordlg.h" #include "wx/image.h" +#include "wx/artprov.h" // ---------------------------------------------------------------------------- // ressources // ---------------------------------------------------------------------------- // the application icon -#if defined(__WXGTK__) || defined(__WXMOTIF__) || defined(__WXMAC__) +#if defined(__WXGTK__) || defined(__WXMOTIF__) || defined(__WXMAC__) || defined(__WXMGL__) || defined(__WXX11__) #include "mondrian.xpm" #endif @@ -217,6 +218,8 @@ enum LogicalOrigin_MoveUp, LogicalOrigin_MoveLeft, LogicalOrigin_MoveRight, + LogicalOrigin_Set, + LogicalOrigin_Restore, Colour_TextForeground, Colour_TextBackground, @@ -366,7 +369,7 @@ MyCanvas::MyCanvas(MyFrame *parent) m_owner = parent; m_show = Show_Default; m_smile_bmp = wxBitmap(smile_xpm); - m_std_icon = wxTheApp->GetStdIcon(wxICON_INFORMATION); + m_std_icon = wxArtProvider::GetIcon(wxART_INFORMATION); } void MyCanvas::DrawTestBrushes(wxDC& dc) @@ -472,10 +475,12 @@ void MyCanvas::DrawDefault(wxDC& dc) { // mark the origin dc.DrawCircle(0, 0, 10); -#if !(defined __WXGTK__) && !(defined __WXMOTIF__) && !(defined __WXMGL__) - // not implemented in wxGTK or wxMOTIF :-( - dc.FloodFill(0, 0, wxColour(255, 0, 0)); -#endif // + + //flood fill using brush, starting at 1,1 and replacing whatever colour we find there + dc.SetBrush(wxBrush(wxColour(128,128,0), wxSOLID)); + wxColour tmpColour ; + dc.GetPixel(1,1, &tmpColour); + dc.FloodFill(1,1, tmpColour, wxFLOOD_SURFACE); dc.DrawCheckMark(5, 80, 15, 15); dc.DrawCheckMark(25, 80, 30, 30); @@ -551,9 +556,9 @@ void MyCanvas::DrawDefault(wxDC& dc) memdc.SelectObject( wxNullBitmap ); dc.DrawBitmap( bitmap, 10, 170 ); - wxImage image( bitmap ); + wxImage image = bitmap.ConvertToImage(); image.Rescale( 60,210 ); - bitmap = image.ConvertToBitmap(); + bitmap = wxBitmap(image); dc.DrawBitmap( bitmap, 50, 170 ); // test the rectangle outline drawing - there should be one pixel between @@ -1025,12 +1030,12 @@ MyFrame::MyFrame(const wxString& title, const wxPoint& pos, const wxSize& size) menuMapMode->Append( MapMode_Metric, "&METRIC map mode" ); wxMenu *menuUserScale = new wxMenu; - menuUserScale->Append( UserScale_StretchHoriz, "Stretch horizontally\tCtrl-H" ); - menuUserScale->Append( UserScale_ShrinkHoriz, "Shrink horizontally\tCtrl-G" ); - menuUserScale->Append( UserScale_StretchVertic, "Stretch vertically\tCtrl-V" ); - menuUserScale->Append( UserScale_ShrinkVertic, "Shrink vertically\tCtrl-W" ); + menuUserScale->Append( UserScale_StretchHoriz, "Stretch &horizontally\tCtrl-H" ); + menuUserScale->Append( UserScale_ShrinkHoriz, "Shrin&k horizontally\tCtrl-G" ); + menuUserScale->Append( UserScale_StretchVertic, "Stretch &vertically\tCtrl-V" ); + menuUserScale->Append( UserScale_ShrinkVertic, "&Shrink vertically\tCtrl-W" ); menuUserScale->AppendSeparator(); - menuUserScale->Append( UserScale_Restore, "Restore to normal\tCtrl-0" ); + menuUserScale->Append( UserScale_Restore, "&Restore to normal\tCtrl-0" ); wxMenu *menuAxis = new wxMenu; menuAxis->Append( AxisMirror_Horiz, "Mirror horizontally\tCtrl-M", "", TRUE ); @@ -1041,21 +1046,24 @@ MyFrame::MyFrame(const wxString& title, const wxPoint& pos, const wxSize& size) menuLogical->Append( LogicalOrigin_MoveUp, "Move &up\tCtrl-U" ); menuLogical->Append( LogicalOrigin_MoveLeft, "Move &right\tCtrl-L" ); menuLogical->Append( LogicalOrigin_MoveRight, "Move &left\tCtrl-R" ); + menuLogical->AppendSeparator(); + menuLogical->Append( LogicalOrigin_Set, "Set to (&100, 100)\tShift-Ctrl-1" ); + menuLogical->Append( LogicalOrigin_Restore, "&Restore to normal\tShift-Ctrl-0" ); wxMenu *menuColour = new wxMenu; - menuColour->Append( Colour_TextForeground, "Text foreground..." ); - menuColour->Append( Colour_TextBackground, "Text background..." ); - menuColour->Append( Colour_Background, "Background colour..." ); - menuColour->Append( Colour_BackgroundMode, "Opaque/transparent\tCtrl-B", "", TRUE ); - menuColour->Append( Colour_TextureBackgound, "Draw textured background\tCtrl-T", "", TRUE); + menuColour->Append( Colour_TextForeground, "Text &foreground..." ); + menuColour->Append( Colour_TextBackground, "Text &background..." ); + menuColour->Append( Colour_Background, "Background &colour..." ); + menuColour->Append( Colour_BackgroundMode, "&Opaque/transparent\tCtrl-B", "", TRUE ); + menuColour->Append( Colour_TextureBackgound, "Draw textured back&ground\tCtrl-T", "", TRUE); // now append the freshly created menu to the menu bar... wxMenuBar *menuBar = new wxMenuBar; menuBar->Append(menuFile, "&File"); - menuBar->Append(menuMapMode, "&MapMode"); - menuBar->Append(menuUserScale, "&UserScale"); + menuBar->Append(menuMapMode, "&Mode"); + menuBar->Append(menuUserScale, "&Scale"); menuBar->Append(menuAxis, "&Axis"); - menuBar->Append(menuLogical, "&LogicalOrigin"); + menuBar->Append(menuLogical, "&Origin"); menuBar->Append(menuColour, "&Colours"); // ... and attach this menu bar to the frame @@ -1138,6 +1146,14 @@ void MyFrame::OnOption(wxCommandEvent& event) case LogicalOrigin_MoveRight: m_xLogicalOrigin -= 10; break; + case LogicalOrigin_Set: + m_xLogicalOrigin = + m_yLogicalOrigin = -100; + break; + case LogicalOrigin_Restore: + m_xLogicalOrigin = + m_yLogicalOrigin = 0; + break; case UserScale_StretchHoriz: m_xUserScale *= 1.10; @@ -1197,10 +1213,10 @@ void MyFrame::OnOption(wxCommandEvent& event) void MyFrame::PrepareDC(wxDC& dc) { - dc.SetMapMode( m_mapMode ); - dc.SetUserScale( m_xUserScale, m_yUserScale ); dc.SetLogicalOrigin( m_xLogicalOrigin, m_yLogicalOrigin ); dc.SetAxisOrientation( !m_xAxisReversed, m_yAxisReversed ); + dc.SetUserScale( m_xUserScale, m_yUserScale ); + dc.SetMapMode( m_mapMode ); } wxColour MyFrame::SelectColour()