Replaced image

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@34164 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Julian Smart
2005-05-19 10:15:53 +00:00
parent f47ada30fa
commit 4fea5f26d4
11 changed files with 35 additions and 33 deletions

View File

@@ -24852,7 +24852,7 @@ SAMPLES_DIST: ALL_GUI_DIST
cp $(SAMPDIR)/rotate/Makefile.in $(DISTDIR)/samples/rotate cp $(SAMPDIR)/rotate/Makefile.in $(DISTDIR)/samples/rotate
cp $(SAMPDIR)/rotate/makefile.unx $(DISTDIR)/samples/rotate cp $(SAMPDIR)/rotate/makefile.unx $(DISTDIR)/samples/rotate
cp $(SAMPDIR)/rotate/*.cpp $(DISTDIR)/samples/rotate cp $(SAMPDIR)/rotate/*.cpp $(DISTDIR)/samples/rotate
cp $(SAMPDIR)/rotate/*.bmp $(DISTDIR)/samples/rotate cp $(SAMPDIR)/rotate/*.png $(DISTDIR)/samples/rotate
mkdir $(DISTDIR)/samples/richedit mkdir $(DISTDIR)/samples/richedit
cp $(SAMPDIR)/richedit/Makefile.in $(DISTDIR)/samples/richedit cp $(SAMPDIR)/richedit/Makefile.in $(DISTDIR)/samples/richedit

View File

@@ -781,7 +781,7 @@ SAMPLES_DIST: ALL_GUI_DIST
cp $(SAMPDIR)/rotate/Makefile.in $(DISTDIR)/samples/rotate cp $(SAMPDIR)/rotate/Makefile.in $(DISTDIR)/samples/rotate
cp $(SAMPDIR)/rotate/makefile.unx $(DISTDIR)/samples/rotate cp $(SAMPDIR)/rotate/makefile.unx $(DISTDIR)/samples/rotate
cp $(SAMPDIR)/rotate/*.cpp $(DISTDIR)/samples/rotate cp $(SAMPDIR)/rotate/*.cpp $(DISTDIR)/samples/rotate
cp $(SAMPDIR)/rotate/*.bmp $(DISTDIR)/samples/rotate cp $(SAMPDIR)/rotate/*.png $(DISTDIR)/samples/rotate
mkdir $(DISTDIR)/samples/richedit mkdir $(DISTDIR)/samples/richedit
cp $(SAMPDIR)/richedit/Makefile.in $(DISTDIR)/samples/richedit cp $(SAMPDIR)/richedit/Makefile.in $(DISTDIR)/samples/richedit

View File

@@ -174,7 +174,7 @@ rotate.app/Contents/PkgInfo: rotate$(EXEEXT) $(top_srcdir)/src/mac/carbon/Info.p
data: data:
@mkdir -p . @mkdir -p .
@for f in kclub.bmp; do \ @for f in duck.png; do \
if test ! -f ./$$f ; \ if test ! -f ./$$f ; \
then x=yep ; \ then x=yep ; \
else x=`find $(srcdir)/$$f -newer ./$$f -print` ; \ else x=`find $(srcdir)/$$f -newer ./$$f -print` ; \

BIN
samples/rotate/duck.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

View File

@@ -212,7 +212,7 @@ $(OBJS)\rotate.exe: $(ROTATE_OBJECTS) $(OBJS)\rotate_rotate.res
data: data:
if not exist $(OBJS) mkdir $(OBJS) if not exist $(OBJS) mkdir $(OBJS)
for %f in (kclub.bmp) do if not exist $(OBJS)\%f copy .\%f $(OBJS) for %f in (duck.png) do if not exist $(OBJS)\%f copy .\%f $(OBJS)
$(OBJS)\rotate_rotate.obj: .\rotate.cpp $(OBJS)\rotate_rotate.obj: .\rotate.cpp
$(CXX) -q -c -P -o$@ $(ROTATE_CXXFLAGS) $** $(CXX) -q -c -P -o$@ $(ROTATE_CXXFLAGS) $**

View File

@@ -203,7 +203,7 @@ $(OBJS)\rotate.exe: $(ROTATE_OBJECTS) $(OBJS)\rotate_rotate_rc.o
data: data:
if not exist $(OBJS) mkdir $(OBJS) if not exist $(OBJS) mkdir $(OBJS)
for %%f in (kclub.bmp) do if not exist $(OBJS)\%%f copy .\%%f $(OBJS) for %%f in (duck.png) do if not exist $(OBJS)\%%f copy .\%%f $(OBJS)
$(OBJS)\rotate_rotate.o: ./rotate.cpp $(OBJS)\rotate_rotate.o: ./rotate.cpp
$(CXX) -c -o $@ $(ROTATE_CXXFLAGS) $< $(CXX) -c -o $@ $(ROTATE_CXXFLAGS) $<

View File

@@ -263,7 +263,7 @@ $(OBJS)\rotate.exe: $(ROTATE_OBJECTS) $(OBJS)\rotate_rotate.res
data: data:
if not exist $(OBJS) mkdir $(OBJS) if not exist $(OBJS) mkdir $(OBJS)
for %f in (kclub.bmp) do if not exist $(OBJS)\%f copy .\%f $(OBJS) for %f in (duck.png) do if not exist $(OBJS)\%f copy .\%f $(OBJS)
$(OBJS)\rotate_rotate.obj: .\rotate.cpp $(OBJS)\rotate_rotate.obj: .\rotate.cpp
$(CXX) /c /nologo /TP /Fo$@ $(ROTATE_CXXFLAGS) $** $(CXX) /c /nologo /TP /Fo$@ $(ROTATE_CXXFLAGS) $**

View File

@@ -246,7 +246,7 @@ $(OBJS)\rotate.exe : $(ROTATE_OBJECTS) $(OBJS)\rotate_rotate.res
data : .SYMBOLIC data : .SYMBOLIC
if not exist $(OBJS) mkdir $(OBJS) if not exist $(OBJS) mkdir $(OBJS)
for %f in (kclub.bmp) do if not exist $(OBJS)\%f copy .\%f $(OBJS) for %f in (duck.png) do if not exist $(OBJS)\%f copy .\%f $(OBJS)
$(OBJS)\rotate_rotate.obj : .AUTODEPEND .\rotate.cpp $(OBJS)\rotate_rotate.obj : .AUTODEPEND .\rotate.cpp
$(CXX) -zq -fo=$^@ $(ROTATE_CXXFLAGS) $< $(CXX) -zq -fo=$^@ $(ROTATE_CXXFLAGS) $<

View File

@@ -12,7 +12,7 @@
<wx-data id="data"> <wx-data id="data">
<files> <files>
kclub.bmp duck.png
</files> </files>
</wx-data> </wx-data>

View File

@@ -47,20 +47,20 @@ private:
}; };
// ---------------------------------------------------------------------------- // ----------------------------------------------------------------------------
// data class for cards that need to be rendered // data class for images that need to be rendered
// ---------------------------------------------------------------------------- // ----------------------------------------------------------------------------
class MyRenderedCard class MyRenderedImage
{ {
public: public:
MyRenderedCard(const wxBitmap& bmp, int x, int y) MyRenderedImage(const wxBitmap& bmp, int x, int y)
: m_bmp(bmp), m_x(x), m_y(y) { } : m_bmp(bmp), m_x(x), m_y(y) { }
wxBitmap m_bmp; wxBitmap m_bmp;
int m_x, m_y; int m_x, m_y;
}; };
// Declare a wxArray type to hold MyRenderedCards. // Declare a wxArray type to hold MyRenderedImages.
WX_DECLARE_OBJARRAY(MyRenderedCard, ArrayOfCards); WX_DECLARE_OBJARRAY(MyRenderedImage, ArrayOfImages);
// ---------------------------------------------------------------------------- // ----------------------------------------------------------------------------
// custom canvas control that we can draw on // custom canvas control that we can draw on
@@ -71,14 +71,14 @@ class MyCanvas: public wxScrolledWindow
public: public:
MyCanvas(wxWindow* parent); MyCanvas(wxWindow* parent);
void ClearCards(); void ClearImages();
void OnMouseLeftUp (wxMouseEvent & event); void OnMouseLeftUp (wxMouseEvent & event);
void OnMouseRightUp (wxMouseEvent & event); void OnMouseRightUp (wxMouseEvent & event);
void OnPaint (wxPaintEvent & event); void OnPaint (wxPaintEvent & event);
private: private:
ArrayOfCards m_cards; ArrayOfImages m_images;
DECLARE_EVENT_TABLE() DECLARE_EVENT_TABLE()
}; };
@@ -127,10 +127,11 @@ IMPLEMENT_APP(MyApp)
bool MyApp::OnInit() bool MyApp::OnInit()
{ {
m_image = wxImage(_T("kclub.bmp"), wxBITMAP_TYPE_BMP); #if wxUSE_LIBPNG
wxImage::AddHandler( new wxPNGHandler );
#endif
// any unused colour will do m_image = wxImage(_T("duck.png"), wxBITMAP_TYPE_PNG);
m_image.SetMaskColour( 0, 255, 255 );
if ( !m_image.Ok() ) if ( !m_image.Ok() )
{ {
@@ -148,11 +149,11 @@ bool MyApp::OnInit()
} }
// ---------------------------------------------------------------------------- // ----------------------------------------------------------------------------
// data class for cards that need to be rendered // data class for images that need to be rendered
// ---------------------------------------------------------------------------- // ----------------------------------------------------------------------------
#include "wx/arrimpl.cpp" #include "wx/arrimpl.cpp"
WX_DEFINE_OBJARRAY(ArrayOfCards); WX_DEFINE_OBJARRAY(ArrayOfImages);
// ---------------------------------------------------------------------------- // ----------------------------------------------------------------------------
// custom canvas control that we can draw on // custom canvas control that we can draw on
@@ -171,9 +172,9 @@ MyCanvas::MyCanvas(wxWindow* parent):
ClearBackground(); ClearBackground();
} }
void MyCanvas::ClearCards () void MyCanvas::ClearImages ()
{ {
m_cards.Clear(); m_images.Clear();
Refresh(true); Refresh(true);
} }
@@ -187,8 +188,8 @@ void MyCanvas::OnMouseLeftUp (wxMouseEvent & event)
wxImage img2 = img.Rotate(frame->m_angle, wxImage img2 = img.Rotate(frame->m_angle,
wxPoint(img.GetWidth() / 2, img.GetHeight() / 2), true, &offset); wxPoint(img.GetWidth() / 2, img.GetHeight() / 2), true, &offset);
// Add the cards to an array to be drawn later in OnPaint() // Add the images to an array to be drawn later in OnPaint()
m_cards.Add(new MyRenderedCard(wxBitmap(img2), m_images.Add(new MyRenderedImage(wxBitmap(img2),
event.m_x + offset.x, event.m_y + offset.y)); event.m_x + offset.x, event.m_y + offset.y));
Refresh(false); Refresh(false);
} }
@@ -202,24 +203,24 @@ void MyCanvas::OnMouseRightUp (wxMouseEvent & event)
wxImage img2 = img.Rotate(frame->m_angle, wxImage img2 = img.Rotate(frame->m_angle,
wxPoint(img.GetWidth() / 2, img.GetHeight() / 2), false); wxPoint(img.GetWidth() / 2, img.GetHeight() / 2), false);
// Add the cards to an array to be drawn later in OnPaint() // Add the images to an array to be drawn later in OnPaint()
m_cards.Add(new MyRenderedCard(wxBitmap(img2), event.m_x, event.m_y)); m_images.Add(new MyRenderedImage(wxBitmap(img2), event.m_x, event.m_y));
Refresh(false); Refresh(false);
} }
void MyCanvas::OnPaint (wxPaintEvent &) void MyCanvas::OnPaint (wxPaintEvent &)
{ {
size_t numCards = m_cards.GetCount(); size_t numImages = m_images.GetCount();
wxPaintDC dc(this); wxPaintDC dc(this);
dc.BeginDrawing(); dc.BeginDrawing();
dc.SetTextForeground(wxColour(255, 255, 255)); dc.SetTextForeground(wxColour(255, 255, 255));
dc.DrawText(wxT("Click on the canvas to draw a card."), 10, 10); dc.DrawText(wxT("Click on the canvas to draw a duck."), 10, 10);
for (size_t i = 0; i < numCards; i++) { for (size_t i = 0; i < numImages; i++) {
MyRenderedCard & card = m_cards.Item(i); MyRenderedImage & image = m_images.Item(i);
dc.DrawBitmap(card.m_bmp, card.m_x, card.m_y, true); dc.DrawBitmap(image.m_bmp, image.m_x, image.m_y, true);
} }
dc.EndDrawing(); dc.EndDrawing();
@@ -244,7 +245,7 @@ MyFrame::MyFrame(const wxString& title, const wxPoint& pos, const wxSize& size)
wxMenu *menuFile = new wxMenu; wxMenu *menuFile = new wxMenu;
menuFile->Append (ID_Angle, _T("Set &angle...\tCtrl-A")); menuFile->Append (ID_Angle, _T("Set &angle...\tCtrl-A"));
menuFile->Append (ID_Clear, _T("&Clear all cards\tCtrl-C")); menuFile->Append (ID_Clear, _T("&Clear all ducks\tCtrl-C"));
menuFile->AppendSeparator(); menuFile->AppendSeparator();
menuFile->Append (ID_Quit, _T("E&xit\tAlt-X")); menuFile->Append (ID_Quit, _T("E&xit\tAlt-X"));
@@ -274,5 +275,6 @@ void MyFrame::OnQuit (wxCommandEvent &)
void MyFrame::OnClear (wxCommandEvent &) void MyFrame::OnClear (wxCommandEvent &)
{ {
m_canvas->ClearCards (); m_canvas->ClearImages ();
} }