X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/fbfb8bcc3fa17e079d4219655b173f8ed2ccc65a..7d46f92bb09316fcdb11ce3801d33d6f1409bdbd:/samples/dnd/dnd.cpp diff --git a/samples/dnd/dnd.cpp b/samples/dnd/dnd.cpp index acc50c0de1..eb6497e083 100644 --- a/samples/dnd/dnd.cpp +++ b/samples/dnd/dnd.cpp @@ -113,7 +113,7 @@ public: virtual bool OnInit(); }; -IMPLEMENT_APP(DnDApp); +IMPLEMENT_APP(DnDApp) #if wxUSE_DRAG_AND_DROP || wxUSE_CLIPBOARD @@ -227,6 +227,8 @@ public: void OnCopyFiles(wxCommandEvent& event); + void OnUsePrimary(wxCommandEvent& event); + void OnLeftDown(wxMouseEvent& event); void OnRightDown(wxMouseEvent& event); @@ -801,6 +803,7 @@ enum Menu_PasteBitmap, Menu_PasteMFile, Menu_CopyFiles, + Menu_UsePrimary, Menu_Shape_New = 500, Menu_Shape_Edit, Menu_Shape_Clear, @@ -828,6 +831,7 @@ BEGIN_EVENT_TABLE(DnDFrame, wxFrame) EVT_MENU(Menu_PasteMFile, DnDFrame::OnPasteMetafile) #endif // wxUSE_METAFILE EVT_MENU(Menu_CopyFiles, DnDFrame::OnCopyFiles) + EVT_MENU(Menu_UsePrimary, DnDFrame::OnUsePrimary) EVT_UPDATE_UI(Menu_DragMoveDef, DnDFrame::OnUpdateUIMoveByDefault) @@ -883,6 +887,9 @@ END_EVENT_TABLE() // `Main program' equivalent, creating windows and returning main app frame bool DnDApp::OnInit() { + if ( !wxApp::OnInit() ) + return false; + #if wxUSE_DRAG_AND_DROP || wxUSE_CLIPBOARD // switch on trace messages #if wxUSE_LOG @@ -897,10 +904,6 @@ bool DnDApp::OnInit() wxImage::AddHandler( new wxPNGHandler ); #endif - // under X we usually want to use the primary selection by default (which - // is shared with other apps) - wxTheClipboard->UsePrimarySelection(); - // create the main frame window DnDFrame *frame = new DnDFrame((wxFrame *) NULL, _T("Drag-and-Drop/Clipboard wxWidgets Sample"), @@ -964,6 +967,8 @@ DnDFrame::DnDFrame(wxFrame *frame, const wxChar *title, int x, int y, int w, int #endif // wxUSE_METAFILE clip_menu->AppendSeparator(); clip_menu->Append(Menu_CopyFiles, _T("Copy &files\tCtrl-F")); + clip_menu->AppendSeparator(); + clip_menu->AppendCheckItem(Menu_UsePrimary, _T("Use &primary selection\tCtrl-P")); wxMenuBar *menu_bar = new wxMenuBar; menu_bar->Append(file_menu, _T("&File")); @@ -984,7 +989,7 @@ DnDFrame::DnDFrame(wxFrame *frame, const wxChar *title, int x, int y, int w, int 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 ); @@ -1160,15 +1165,10 @@ 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); -/* - wxFileDataObject textData; - textData.AddFile( "/file1.txt" ); - textData.AddFile( "/file2.txt" ); -*/ wxDropSource source(textData, this, wxDROP_ICON(dnd_copy), wxDROP_ICON(dnd_move), @@ -1223,6 +1223,15 @@ DnDFrame::~DnDFrame() #endif // wxUSE_LOG } +void DnDFrame::OnUsePrimary(wxCommandEvent& event) +{ + const bool usePrimary = event.IsChecked(); + wxTheClipboard->UsePrimarySelection(usePrimary); + + wxLogStatus(_T("Now using %s selection"), usePrimary ? _T("primary") + : _T("clipboard")); +} + // --------------------------------------------------------------------------- // bitmap clipboard // --------------------------------------------------------------------------- @@ -1231,9 +1240,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) @@ -1242,7 +1251,7 @@ void DnDFrame::OnCopyBitmap(wxCommandEvent& WXUNUSED(event)) return; } - if (dialog.GetPath().IsEmpty()) + if (dialog.GetPath().empty()) { wxLogMessage( _T("Returned empty string.") ); return; @@ -1375,7 +1384,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; @@ -1407,7 +1416,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); } } } @@ -1509,7 +1518,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 );