using std::exception;
using std::cout;
using std::cerr;
-using boost::shared_ptr;
+using std::shared_ptr;
using boost::optional;
#if BOOST_VERSION >= 106100
using namespace boost::placeholders;
#endif
+#ifdef DCPOMATIC_OSX
+enum {
+ ID_tools_uninstall = 1,
+};
+#endif
+
+
class DOMFrame : public wxFrame
{
public:
, _nanomsg (true)
, _sizer (new wxBoxSizer(wxVERTICAL))
{
+#ifdef DCPOMATIC_OSX
+ wxMenuBar* bar = new wxMenuBar;
+ wxMenu* tools = new wxMenu;
+ tools->Append(ID_tools_uninstall, _("Uninstall..."));
+ bar->Append(tools, _("Tools"));
+ SetMenuBar (bar);
+ Bind (wxEVT_MENU, boost::bind(&DOMFrame::uninstall, this), ID_tools_uninstall);
+#endif
+
/* Use a panel as the only child of the Frame so that we avoid
the dark-grey background on Windows.
*/
_sizer->Add (grid, 1, wxALL | wxEXPAND, DCPOMATIC_DIALOG_BORDER);
overall_panel->SetSizer (_sizer);
Fit ();
- SetSize (768, GetSize().GetHeight() + 32);
+ SetSize (1024, GetSize().GetHeight() + 32);
/* XXX: this is a hack, but I expect we'll need logs and I'm not sure if there's
* a better place to put them.
}
+#ifdef DCPOMATIC_OSX
+ void uninstall()
+ {
+ system(String::compose("osascript \"%1/uninstall_disk.applescript\"", resources_path().string()).c_str());
+ }
+#endif
+
+
bool should_close ()
{
if (!JobManager::instance()->work_to_do()) {
int re_select = wxNOT_FOUND;
int j = 0;
_drives = Drive::get ();
- BOOST_FOREACH (Drive i, _drives) {
+ for (auto i: _drives) {
wxString const s = std_to_wx(i.description());
if (s == current) {
re_select = j;
#endif
#ifdef DCPOMATIC_OSX
+ dcpomatic_sleep_seconds (1);
make_foreground_application ();
#endif