added copying images to/pasting them from clipboard tests
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@19731 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
parent
22be0335df
commit
da9df1f51e
@ -24,14 +24,19 @@
|
|||||||
#include "wx/wfstream.h"
|
#include "wx/wfstream.h"
|
||||||
#include "wx/quantize.h"
|
#include "wx/quantize.h"
|
||||||
|
|
||||||
|
#if wxUSE_CLIPBOARD
|
||||||
|
#include "wx/dataobj.h"
|
||||||
|
#include "wx/clipbrd.h"
|
||||||
|
#endif // wxUSE_CLIPBOARD
|
||||||
|
|
||||||
#include "smile.xbm"
|
#include "smile.xbm"
|
||||||
|
|
||||||
#if !defined(__WINDOWS__) || wxUSE_XPM_IN_MSW
|
#if !defined(__WINDOWS__) || wxUSE_XPM_IN_MSW
|
||||||
#include "smile.xpm"
|
#include "smile.xpm"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if !defined(__WXMOTIF__)
|
#if defined(__WXMSW__)
|
||||||
#define wxHAVE_RAW_BITMAP
|
#define wxHAVE_RAW_BITMAP
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// derived classes
|
// derived classes
|
||||||
@ -122,6 +127,11 @@ public:
|
|||||||
#endif // wxHAVE_RAW_BITMAP
|
#endif // wxHAVE_RAW_BITMAP
|
||||||
void OnQuit( wxCommandEvent &event );
|
void OnQuit( wxCommandEvent &event );
|
||||||
|
|
||||||
|
#if wxUSE_CLIPBOARD
|
||||||
|
void OnCopy(wxCommandEvent& event);
|
||||||
|
void OnPaste(wxCommandEvent& event);
|
||||||
|
#endif // wxUSE_CLIPBOARD
|
||||||
|
|
||||||
MyCanvas *m_canvas;
|
MyCanvas *m_canvas;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
@ -531,9 +541,7 @@ MyCanvas::MyCanvas( wxWindow *parent, wxWindowID id,
|
|||||||
else
|
else
|
||||||
my_horse_ani [i] = wxBitmap( image );
|
my_horse_ani [i] = wxBitmap( image );
|
||||||
}
|
}
|
||||||
|
#endif // wxUSE_ICO_CUR
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
image.Destroy();
|
image.Destroy();
|
||||||
|
|
||||||
@ -805,24 +813,36 @@ BEGIN_EVENT_TABLE(MyFrame,wxFrame)
|
|||||||
#ifdef wxHAVE_RAW_BITMAP
|
#ifdef wxHAVE_RAW_BITMAP
|
||||||
EVT_MENU (ID_SHOWRAW, MyFrame::OnTestRawBitmap)
|
EVT_MENU (ID_SHOWRAW, MyFrame::OnTestRawBitmap)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if wxUSE_CLIPBOARD
|
||||||
|
EVT_MENU(wxID_COPY, MyFrame::OnCopy)
|
||||||
|
EVT_MENU(wxID_PASTE, MyFrame::OnPaste)
|
||||||
|
#endif // wxUSE_CLIPBOARD
|
||||||
END_EVENT_TABLE()
|
END_EVENT_TABLE()
|
||||||
|
|
||||||
MyFrame::MyFrame()
|
MyFrame::MyFrame()
|
||||||
: wxFrame( (wxFrame *)NULL, -1, _T("wxImage sample"),
|
: wxFrame( (wxFrame *)NULL, -1, _T("wxImage sample"),
|
||||||
wxPoint(20,20), wxSize(470,360) )
|
wxPoint(20,20), wxSize(470,360) )
|
||||||
{
|
{
|
||||||
wxMenu *file_menu = new wxMenu();
|
|
||||||
file_menu->Append( ID_NEW, _T("&Show image...\tCtrl-O"));
|
|
||||||
#ifdef wxHAVE_RAW_BITMAP
|
|
||||||
file_menu->Append( ID_SHOWRAW, _T("Test &raw bitmap...\tCtrl-R"));
|
|
||||||
#endif
|
|
||||||
file_menu->AppendSeparator();
|
|
||||||
file_menu->Append( ID_ABOUT, _T("&About..."));
|
|
||||||
file_menu->AppendSeparator();
|
|
||||||
file_menu->Append( ID_QUIT, _T("E&xit\tCtrl-Q"));
|
|
||||||
|
|
||||||
wxMenuBar *menu_bar = new wxMenuBar();
|
wxMenuBar *menu_bar = new wxMenuBar();
|
||||||
menu_bar->Append(file_menu, _T("&File"));
|
|
||||||
|
wxMenu *menuImage = new wxMenu;
|
||||||
|
menuImage->Append( ID_NEW, _T("&Show any image...\tCtrl-O"));
|
||||||
|
#ifdef wxHAVE_RAW_BITMAP
|
||||||
|
menuImage->Append( ID_SHOWRAW, _T("Test &raw bitmap...\tCtrl-R"));
|
||||||
|
#endif
|
||||||
|
menuImage->AppendSeparator();
|
||||||
|
menuImage->Append( ID_ABOUT, _T("&About..."));
|
||||||
|
menuImage->AppendSeparator();
|
||||||
|
menuImage->Append( ID_QUIT, _T("E&xit\tCtrl-Q"));
|
||||||
|
menu_bar->Append(menuImage, _T("&Image"));
|
||||||
|
|
||||||
|
#if wxUSE_CLIPBOARD
|
||||||
|
wxMenu *menuClipboard = new wxMenu;
|
||||||
|
menuClipboard->Append(wxID_COPY, _T("&Copy test image\tCtrl-C"));
|
||||||
|
menuClipboard->Append(wxID_PASTE, _T("&Paste image\tCtrl-V"));
|
||||||
|
menu_bar->Append(menuClipboard, _T("&Clipboard"));
|
||||||
|
#endif // wxUSE_CLIPBOARD
|
||||||
|
|
||||||
SetMenuBar( menu_bar );
|
SetMenuBar( menu_bar );
|
||||||
|
|
||||||
@ -874,6 +894,34 @@ void MyFrame::OnTestRawBitmap( wxCommandEvent &event )
|
|||||||
|
|
||||||
#endif // wxHAVE_RAW_BITMAP
|
#endif // wxHAVE_RAW_BITMAP
|
||||||
|
|
||||||
|
#if wxUSE_CLIPBOARD
|
||||||
|
|
||||||
|
void MyFrame::OnCopy(wxCommandEvent& WXUNUSED(event))
|
||||||
|
{
|
||||||
|
wxBitmapDataObject *dobjBmp = new wxBitmapDataObject;
|
||||||
|
dobjBmp->SetBitmap(*m_canvas->my_horse_png);
|
||||||
|
|
||||||
|
if ( !wxTheClipboard->SetData(dobjBmp) )
|
||||||
|
{
|
||||||
|
wxLogError(_T("Failed to copy bitmap to clipboard"));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void MyFrame::OnPaste(wxCommandEvent& WXUNUSED(event))
|
||||||
|
{
|
||||||
|
wxBitmapDataObject dobjBmp;
|
||||||
|
if ( !wxTheClipboard->GetData(dobjBmp) )
|
||||||
|
{
|
||||||
|
wxLogMessage(_T("No bitmap data in the clipboard"));
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
(new MyImageFrame(this, dobjBmp.GetBitmap()))->Show();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif // wxUSE_CLIPBOARD
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// MyApp
|
// MyApp
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
|
Loading…
Reference in New Issue
Block a user