void OnCopyFiles(wxCommandEvent& event);
+ void OnUsePrimary(wxCommandEvent& event);
+
void OnLeftDown(wxMouseEvent& event);
void OnRightDown(wxMouseEvent& event);
Menu_PasteBitmap,
Menu_PasteMFile,
Menu_CopyFiles,
+ Menu_UsePrimary,
Menu_Shape_New = 500,
Menu_Shape_Edit,
Menu_Shape_Clear,
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)
// `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
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"),
#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"));
#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
// ---------------------------------------------------------------------------