- right->Add (h, 0, wxALIGN_CENTER_VERTICAL | wxTOP, DCPOMATIC_SIZER_Y_GAP * 2);
- wxBoxSizer* dkdm_sizer = new wxBoxSizer (wxHORIZONTAL);
+ right->Add(h, 0, wxTOP, DCPOMATIC_SUBHEADING_TOP_PAD);
+
+ _dkdm_search = new wxSearchCtrl(overall_panel, wxID_ANY, wxEmptyString, wxDefaultPosition, wxSize(200, search_ctrl_height()));
+#ifndef __WXGTK3__
+ /* The cancel button seems to be strangely broken in GTK3; clicking on it twice sometimes works */
+ _dkdm_search->ShowCancelButton (true);
+#endif
+
+ right->Add(_dkdm_search, 0, wxTOP | wxBOTTOM, DCPOMATIC_SIZER_Y_GAP);
+
+ class DKDMDropTarget : public wxFileDropTarget
+ {
+ public:
+ DKDMDropTarget(DOMFrame* frame)
+ : _frame(frame)
+ {}
+
+ bool OnDropFiles(wxCoord, wxCoord, wxArrayString const& filenames) override
+ {
+ for (size_t i = 0; i < filenames.GetCount(); ++i) {
+ _frame->add_dkdm(boost::filesystem::path(wx_to_std(filenames[0])));
+ }
+
+ return true;
+ }
+
+ private:
+ DOMFrame* _frame;
+ };
+
+ auto dkdm_sizer = new wxBoxSizer (wxHORIZONTAL);