X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/b29903d4854625650ae678c0515acc76facba1ee..87419e97c6f15a9906de69690e7ba59ec0ffd119:/samples/dnd/dnd.cpp?ds=inline diff --git a/samples/dnd/dnd.cpp b/samples/dnd/dnd.cpp index c2021527e6..2372216093 100644 --- a/samples/dnd/dnd.cpp +++ b/samples/dnd/dnd.cpp @@ -19,24 +19,15 @@ #include "wx/wx.h" #endif -#include "wx/intl.h" -#include "wx/log.h" - #include "wx/dnd.h" -#include "wx/dirdlg.h" -#include "wx/filedlg.h" +#include "wx/dataobj.h" #include "wx/image.h" #include "wx/clipbrd.h" #include "wx/colordlg.h" -#include "wx/sizer.h" -#include "wx/dataobj.h" - -#if wxUSE_METAFILES - #include "wx/metafile.h" -#endif // wxUSE_METAFILES +#include "wx/metafile.h" #if defined(__WXGTK__) || defined(__WXX11__) || defined(__WXMOTIF__) || defined(__WXMAC__) - #include "mondrian.xpm" + #include "../sample.xpm" #if wxUSE_DRAG_AND_DROP #include "dnd_copy.xpm" #include "dnd_move.xpm" @@ -163,7 +154,7 @@ private: DECLARE_EVENT_TABLE() }; -#if wxUSE_METAFILES +#if wxUSE_METAFILE // and the same thing fo metafiles class DnDCanvasMetafile : public wxScrolledWindow @@ -181,7 +172,7 @@ public: Refresh(); } - void OnPaint(wxPaintEvent& event) + void OnPaint(wxPaintEvent&) { wxPaintDC dc(this); @@ -199,7 +190,7 @@ private: DECLARE_EVENT_TABLE() }; -#endif // wxUSE_METAFILES +#endif // wxUSE_METAFILE // ---------------------------------------------------------------------------- // Define a new frame type for the main frame @@ -208,7 +199,7 @@ private: class DnDFrame : public wxFrame { public: - DnDFrame(wxFrame *frame, wxChar *title, int x, int y, int w, int h); + DnDFrame(wxFrame *frame, const wxChar *title, int x, int y, int w, int h); virtual ~DnDFrame(); void OnPaint(wxPaintEvent& event); @@ -230,9 +221,9 @@ public: void OnCopyBitmap(wxCommandEvent& event); void OnPasteBitmap(wxCommandEvent& event); -#if wxUSE_METAFILES +#if wxUSE_METAFILE void OnPasteMetafile(wxCommandEvent& event); -#endif // wxUSE_METAFILES +#endif // wxUSE_METAFILE void OnCopyFiles(wxCommandEvent& event); @@ -345,10 +336,10 @@ protected: struct ShapeDump { - int x, y, // position - w, h, // size - r, g, b, // colour - k; // kind + wxCoord x, y, // position + w, h; // size + int k; // kind + unsigned char r, g, b; // colour }; wxPoint m_pos; @@ -494,9 +485,9 @@ public: // we don't draw the shape to a bitmap until it's really needed (i.e. // we're asked to do so) m_hasBitmap = false; -#if wxUSE_METAFILES +#if wxUSE_METAFILE m_hasMetaFile = false; -#endif // wxUSE_METAFILES +#endif // wxUSE_METAFILE } virtual ~DnDShapeDataObject() { delete m_shape; } @@ -513,9 +504,9 @@ public: m_shape = (DnDShape *)NULL; m_hasBitmap = false; -#if wxUSE_METAFILES +#if wxUSE_METAFILE m_hasMetaFile = false; -#endif // wxUSE_METAFILES +#endif // wxUSE_METAFILE return shape; } @@ -537,9 +528,9 @@ public: // but the bitmap format(s) are only supported for output nFormats += m_dobjBitmap.GetFormatCount(dir); -#if wxUSE_METAFILES +#if wxUSE_METAFILE nFormats += m_dobjMetaFile.GetFormatCount(dir); -#endif // wxUSE_METAFILES +#endif // wxUSE_METAFILE } return nFormats; @@ -554,11 +545,11 @@ public: // under Windows m_dobjBitmap.GetAllFormats(&formats[1], dir); -#if wxUSE_METAFILES +#if wxUSE_METAFILE // don't assume that m_dobjBitmap has only 1 format m_dobjMetaFile.GetAllFormats(&formats[1 + m_dobjBitmap.GetFormatCount(dir)], dir); -#endif // wxUSE_METAFILES +#endif // wxUSE_METAFILE } } @@ -568,7 +559,7 @@ public: { return m_shape->GetDataSize(); } -#if wxUSE_METAFILES +#if wxUSE_METAFILE else if ( m_dobjMetaFile.IsSupported(format) ) { if ( !m_hasMetaFile ) @@ -576,7 +567,7 @@ public: return m_dobjMetaFile.GetDataSize(format); } -#endif // wxUSE_METAFILES +#endif // wxUSE_METAFILE else { wxASSERT_MSG( m_dobjBitmap.IsSupported(format), @@ -597,7 +588,7 @@ public: return true; } -#if wxUSE_METAFILES +#if wxUSE_METAFILE else if ( m_dobjMetaFile.IsSupported(format) ) { if ( !m_hasMetaFile ) @@ -605,7 +596,7 @@ public: return m_dobjMetaFile.GetDataHere(format, pBuf); } -#endif // wxUSE_METAFILES +#endif // wxUSE_METAFILE else { wxASSERT_MSG( m_dobjBitmap.IsSupported(format), @@ -630,9 +621,9 @@ public: // the shape has changed m_hasBitmap = false; -#if wxUSE_METAFILES +#if wxUSE_METAFILE m_hasMetaFile = false; -#endif // wxUSE_METAFILES +#endif // wxUSE_METAFILE return true; } @@ -640,19 +631,19 @@ public: private: // creates a bitmap and assigns it to m_dobjBitmap (also sets m_hasBitmap) void CreateBitmap() const; -#if wxUSE_METAFILES +#if wxUSE_METAFILE void CreateMetaFile() const; -#endif // wxUSE_METAFILES +#endif // wxUSE_METAFILE wxDataFormat m_formatShape; // our custom format wxBitmapDataObject m_dobjBitmap; // it handles bitmaps bool m_hasBitmap; // true if m_dobjBitmap has valid bitmap -#if wxUSE_METAFILES +#if wxUSE_METAFILE wxMetaFileDataObject m_dobjMetaFile;// handles metafiles bool m_hasMetaFile; // true if we have valid metafile -#endif // wxUSE_METAFILES +#endif // wxUSE_METAFILE DnDShape *m_shape; // our data }; @@ -747,16 +738,16 @@ public: // override base class (pure) virtuals virtual wxDragResult OnEnter(wxCoord x, wxCoord y, wxDragResult def) - { + { #if wxUSE_STATUSBAR - m_frame->SetStatusText(_T("Mouse entered the frame")); + m_frame->SetStatusText(_T("Mouse entered the frame")); #endif // wxUSE_STATUSBAR - return OnDragOver(x, y, def); + return OnDragOver(x, y, def); } virtual void OnLeave() - { + { #if wxUSE_STATUSBAR - m_frame->SetStatusText(_T("Mouse left the frame")); + m_frame->SetStatusText(_T("Mouse left the frame")); #endif // wxUSE_STATUSBAR } virtual wxDragResult OnData(wxCoord x, wxCoord y, wxDragResult def) @@ -786,9 +777,9 @@ private: static void ShowBitmap(const wxBitmap& bitmap); -#if wxUSE_METAFILES +#if wxUSE_METAFILE static void ShowMetaFile(const wxMetaFile& metafile); -#endif // wxUSE_METAFILES +#endif // wxUSE_METAFILE // ---------------------------------------------------------------------------- // IDs for the menu commands @@ -833,9 +824,9 @@ BEGIN_EVENT_TABLE(DnDFrame, wxFrame) EVT_MENU(Menu_Paste, DnDFrame::OnPaste) EVT_MENU(Menu_CopyBitmap, DnDFrame::OnCopyBitmap) EVT_MENU(Menu_PasteBitmap,DnDFrame::OnPasteBitmap) -#if wxUSE_METAFILES +#if wxUSE_METAFILE EVT_MENU(Menu_PasteMFile, DnDFrame::OnPasteMetafile) -#endif // wxUSE_METAFILES +#endif // wxUSE_METAFILE EVT_MENU(Menu_CopyFiles, DnDFrame::OnCopyFiles) EVT_UPDATE_UI(Menu_DragMoveDef, DnDFrame::OnUpdateUIMoveByDefault) @@ -877,11 +868,11 @@ BEGIN_EVENT_TABLE(DnDCanvasBitmap, wxScrolledWindow) EVT_PAINT(DnDCanvasBitmap::OnPaint) END_EVENT_TABLE() -#if wxUSE_METAFILES +#if wxUSE_METAFILE BEGIN_EVENT_TABLE(DnDCanvasMetafile, wxScrolledWindow) EVT_PAINT(DnDCanvasMetafile::OnPaint) END_EVENT_TABLE() -#endif // wxUSE_METAFILES +#endif // wxUSE_METAFILE #endif // wxUSE_DRAG_AND_DROP @@ -929,13 +920,13 @@ bool DnDApp::OnInit() #if wxUSE_DRAG_AND_DROP || wxUSE_CLIPBOARD -DnDFrame::DnDFrame(wxFrame *frame, wxChar *title, int x, int y, int w, int h) +DnDFrame::DnDFrame(wxFrame *frame, const wxChar *title, int x, int y, int w, int h) : wxFrame(frame, wxID_ANY, title, wxPoint(x, y), wxSize(w, h)), m_strText(_T("wxWidgets drag & drop works :-)")) { // frame icon and status bar - SetIcon(wxICON(mondrian)); + SetIcon(wxICON(sample)); #if wxUSE_STATUSBAR CreateStatusBar(); @@ -967,10 +958,10 @@ DnDFrame::DnDFrame(wxFrame *frame, wxChar *title, int x, int y, int w, int h) clip_menu->AppendSeparator(); clip_menu->Append(Menu_CopyBitmap, _T("Copy &bitmap\tCtrl-Shift-C")); clip_menu->Append(Menu_PasteBitmap, _T("Paste b&itmap\tCtrl-Shift-V")); -#if wxUSE_METAFILES +#if wxUSE_METAFILE clip_menu->AppendSeparator(); clip_menu->Append(Menu_PasteMFile, _T("Paste &metafile\tCtrl-M")); -#endif // wxUSE_METAFILES +#endif // wxUSE_METAFILE clip_menu->AppendSeparator(); clip_menu->Append(Menu_CopyFiles, _T("Copy &files\tCtrl-F")); @@ -993,7 +984,7 @@ DnDFrame::DnDFrame(wxFrame *frame, wxChar *title, int x, int y, int w, int h) wxLB_HSCROLL | wxLB_ALWAYS_SB ); #if wxUSE_LOG - m_ctrlLog = new wxTextCtrl(this, wxID_ANY, _T(""), wxDefaultPosition, wxDefaultSize, + m_ctrlLog = new wxTextCtrl(this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_MULTILINE | wxTE_READONLY | wxSUNKEN_BORDER ); @@ -1011,19 +1002,20 @@ DnDFrame::DnDFrame(wxFrame *frame, wxChar *title, int x, int y, int w, int h) #endif // wxUSE_LOG #endif // wxUSE_DRAG_AND_DROP - wxBoxSizer *m_sizer_top = new wxBoxSizer( wxHORIZONTAL ); - m_sizer_top->Add(m_ctrlFile, 1, wxEXPAND ); - m_sizer_top->Add(m_ctrlText, 1, wxEXPAND ); + wxBoxSizer *sizer_top = new wxBoxSizer( wxHORIZONTAL ); + sizer_top->Add(m_ctrlFile, 1, wxEXPAND ); + sizer_top->Add(m_ctrlText, 1, wxEXPAND ); - wxBoxSizer *m_sizer = new wxBoxSizer( wxVERTICAL ); - m_sizer->Add(m_sizer_top, 1, wxEXPAND ); + wxBoxSizer *sizer = new wxBoxSizer( wxVERTICAL ); + sizer->Add(sizer_top, 1, wxEXPAND ); #if wxUSE_LOG - m_sizer->Add(m_ctrlLog, 1, wxEXPAND); + sizer->Add(m_ctrlLog, 2, wxEXPAND); + sizer->SetItemMinSize(m_ctrlLog, 450, 0); #endif // wxUSE_LOG - m_sizer->Add(0,50); + sizer->AddSpacer(50); - SetSizer( m_sizer ); - m_sizer->SetSizeHints( this ); + SetSizer(sizer); + sizer->SetSizeHints( this ); // copy data by default but allow moving it as well m_moveByDefault = false; @@ -1168,7 +1160,7 @@ void DnDFrame::OnLogClear(wxCommandEvent& /* event */ ) void DnDFrame::OnLeftDown(wxMouseEvent &WXUNUSED(event) ) { #if wxUSE_DRAG_AND_DROP - if ( !m_strText.IsEmpty() ) + if ( !m_strText.empty() ) { // start drag operation wxTextDataObject textData(m_strText); @@ -1239,9 +1231,9 @@ void DnDFrame::OnCopyBitmap(wxCommandEvent& WXUNUSED(event)) { // PNG support is not always compiled in under Windows, so use BMP there #if wxUSE_LIBPNG - wxFileDialog dialog(this, _T("Open a PNG file"), _T(""), _T(""), _T("PNG files (*.png)|*.png"), 0); + wxFileDialog dialog(this, _T("Open a PNG file"), wxEmptyString, wxEmptyString, _T("PNG files (*.png)|*.png"), 0); #else - wxFileDialog dialog(this, _T("Open a BMP file"), _T(""), _T(""), _T("BMP files (*.bmp)|*.bmp"), 0); + wxFileDialog dialog(this, _T("Open a BMP file"), wxEmptyString, wxEmptyString, _T("BMP files (*.bmp)|*.bmp"), 0); #endif if (dialog.ShowModal() != wxID_OK) @@ -1250,7 +1242,7 @@ void DnDFrame::OnCopyBitmap(wxCommandEvent& WXUNUSED(event)) return; } - if (dialog.GetPath().IsEmpty()) + if (dialog.GetPath().empty()) { wxLogMessage( _T("Returned empty string.") ); return; @@ -1338,7 +1330,7 @@ void DnDFrame::OnPasteBitmap(wxCommandEvent& WXUNUSED(event)) wxTheClipboard->Close(); } -#if wxUSE_METAFILES +#if wxUSE_METAFILE void DnDFrame::OnPasteMetafile(wxCommandEvent& WXUNUSED(event)) { @@ -1374,7 +1366,7 @@ void DnDFrame::OnPasteMetafile(wxCommandEvent& WXUNUSED(event)) wxTheClipboard->Close(); } -#endif // wxUSE_METAFILES +#endif // wxUSE_METAFILE // ---------------------------------------------------------------------------- // file clipboard @@ -1383,7 +1375,7 @@ void DnDFrame::OnPasteMetafile(wxCommandEvent& WXUNUSED(event)) void DnDFrame::OnCopyFiles(wxCommandEvent& WXUNUSED(event)) { #ifdef __WXMSW__ - wxFileDialog dialog(this, _T("Select a file to copy"), _T(""), _T(""), + wxFileDialog dialog(this, _T("Select a file to copy"), wxEmptyString, wxEmptyString, _T("All files (*.*)|*.*"), 0); wxArrayString filenames; @@ -1415,7 +1407,7 @@ void DnDFrame::OnCopyFiles(wxCommandEvent& WXUNUSED(event)) else { wxLogStatus(this, wxT("%d file%s copied to the clipboard"), - count, count == 1 ? wxT("") : wxT("s")); + count, count == 1 ? wxEmptyString : wxEmptyString); } } } @@ -1517,7 +1509,7 @@ bool DnDFile::OnDropFiles(wxCoord, wxCoord, const wxArrayString& filenames) DnDShapeDialog::DnDShapeDialog(wxFrame *parent, DnDShape *shape) :wxDialog( parent, 6001, wxT("Choose Shape"), wxPoint( 10, 10 ), wxSize( 40, 40 ), - wxRAISED_BORDER|wxCAPTION|wxTHICK_FRAME|wxSYSTEM_MENU ) + wxDEFAULT_DIALOG_STYLE | wxRAISED_BORDER | wxRESIZE_BORDER ) { m_shape = shape; wxBoxSizer* topSizer = new wxBoxSizer( wxVERTICAL ); @@ -1645,7 +1637,7 @@ void DnDShapeDialog::OnColour(wxCommandEvent& WXUNUSED(event)) data.SetChooseFull(true); for (int i = 0; i < 16; i++) { - wxColour colour(i*16, i*16, i*16); + wxColour colour((unsigned char)(i*16), (unsigned char)(i*16), (unsigned char)(i*16)); data.SetCustomColour(i, colour); } @@ -1729,7 +1721,7 @@ void DnDShapeFrame::OnDrag(wxMouseEvent& event) { default: case wxDragError: - wxLogError(wxT("An error occured during drag and drop operation")); + wxLogError(wxT("An error occurred during drag and drop operation")); break; case wxDragNone: @@ -1908,7 +1900,7 @@ DnDShape *DnDShape::New(const void *buf) // DnDShapeDataObject // ---------------------------------------------------------------------------- -#if wxUSE_METAFILES +#if wxUSE_METAFILE void DnDShapeDataObject::CreateMetaFile() const { @@ -1928,7 +1920,7 @@ void DnDShapeDataObject::CreateMetaFile() const delete mf; } -#endif // wxUSE_METAFILES +#endif // wxUSE_METAFILE void DnDShapeDataObject::CreateBitmap() const { @@ -1974,7 +1966,7 @@ static void ShowBitmap(const wxBitmap& bitmap) frame->Show(true); } -#if wxUSE_METAFILES +#if wxUSE_METAFILE static void ShowMetaFile(const wxMetaFile& metafile) { @@ -1991,6 +1983,6 @@ static void ShowMetaFile(const wxMetaFile& metafile) frame->Show(); } -#endif // wxUSE_METAFILES +#endif // wxUSE_METAFILE #endif // wxUSE_DRAG_AND_DROP || wxUSE_CLIPBOARD