X-Git-Url: https://git.carlh.net/gitweb/?a=blobdiff_plain;f=src%2Fwx%2Fwx_util.cc;h=3386b2700c522c7047c4bb0e0c738473cf1b6303;hb=a5d004b0773f633401528392fc28e66d70e13ac8;hp=bfc7c30690936ec405cd0833c6719030d1403d62;hpb=c4e20995d4638c2d7575dcf12a917e27387078de;p=dcpomatic.git diff --git a/src/wx/wx_util.cc b/src/wx/wx_util.cc index bfc7c3069..3386b2700 100644 --- a/src/wx/wx_util.cc +++ b/src/wx/wx_util.cc @@ -1,5 +1,5 @@ /* - Copyright (C) 2012-2019 Carl Hetherington + Copyright (C) 2012-2020 Carl Hetherington This file is part of DCP-o-matic. @@ -31,19 +31,23 @@ #include "lib/util.h" #include "lib/cross.h" #include "lib/job.h" +#include "lib/warnings.h" #include +DCPOMATIC_DISABLE_WARNINGS #include #include #include #include +DCPOMATIC_ENABLE_WARNINGS #include using std::string; using std::vector; using std::pair; -using boost::shared_ptr; +using std::shared_ptr; using boost::optional; using dcp::locale_convert; +using namespace dcpomatic; wxStaticText * #ifdef __WXOSX__ @@ -158,6 +162,7 @@ message_dialog (wxWindow* parent, wxString m) d->Destroy (); } +/** @return true if the user answered "yes" */ bool confirm_dialog (wxWindow* parent, wxString m) { @@ -468,8 +473,7 @@ maybe_show_splash () wxSplashScreen* splash = 0; try { wxBitmap bitmap; - boost::filesystem::path p = shared_path () / "splash.png"; - if (bitmap.LoadFile (std_to_wx (p.string ()), wxBITMAP_TYPE_PNG)) { + if (bitmap.LoadFile(bitmap_path("splash"), wxBITMAP_TYPE_PNG)) { splash = new wxSplashScreen (bitmap, wxSPLASH_CENTRE_ON_SCREEN | wxSPLASH_NO_TIMEOUT, 0, 0, -1); wxYield (); } @@ -515,10 +519,10 @@ display_progress (wxString title, wxString task) bool ok = true; while (jm->work_to_do()) { - dcpomatic_sleep (1); + dcpomatic_sleep_seconds (1); if (!progress.Pulse()) { /* user pressed cancel */ - BOOST_FOREACH (shared_ptr i, jm->get()) { + for (auto i: jm->get()) { i->cancel(); } ok = false; @@ -529,18 +533,73 @@ display_progress (wxString title, wxString task) return ok; } -bool -report_errors_from_last_job (wxWindow* parent) -{ - JobManager* jm = JobManager::instance (); - DCPOMATIC_ASSERT (!jm->get().empty()); +int +get_offsets (vector& offsets) +{ + offsets.push_back (Offset(_("UTC-11"), -11, 0)); + offsets.push_back (Offset(_("UTC-10"), -10, 0)); + offsets.push_back (Offset(_("UTC-9"), -9, 0)); + offsets.push_back (Offset(_("UTC-8"), -8, 0)); + offsets.push_back (Offset(_("UTC-7"), -7, 0)); + offsets.push_back (Offset(_("UTC-6"), -6, 0)); + offsets.push_back (Offset(_("UTC-5"), -5, 0)); + offsets.push_back (Offset(_("UTC-4:30"), -4, 30)); + offsets.push_back (Offset(_("UTC-4"), -4, 0)); + offsets.push_back (Offset(_("UTC-3:30"), -3, 30)); + offsets.push_back (Offset(_("UTC-3"), -3, 0)); + offsets.push_back (Offset(_("UTC-2"), -2, 0)); + offsets.push_back (Offset(_("UTC-1"), -1, 0)); + int utc = offsets.size(); + offsets.push_back (Offset(_("UTC") , 0, 0)); + offsets.push_back (Offset(_("UTC+1"), 1, 0)); + offsets.push_back (Offset(_("UTC+2"), 2, 0)); + offsets.push_back (Offset(_("UTC+3"), 3, 0)); + offsets.push_back (Offset(_("UTC+4"), 4, 0)); + offsets.push_back (Offset(_("UTC+5"), 5, 0)); + offsets.push_back (Offset(_("UTC+5:30"), 5, 30)); + offsets.push_back (Offset(_("UTC+6"), 6, 0)); + offsets.push_back (Offset(_("UTC+7"), 7, 0)); + offsets.push_back (Offset(_("UTC+8"), 8, 0)); + offsets.push_back (Offset(_("UTC+9"), 9, 0)); + offsets.push_back (Offset(_("UTC+9:30"), 9, 30)); + offsets.push_back (Offset(_("UTC+10"), 10, 0)); + offsets.push_back (Offset(_("UTC+11"), 11, 0)); + offsets.push_back (Offset(_("UTC+12"), 12, 0)); + + return utc; +} + + +wxString +bitmap_path (string name) +{ + boost::filesystem::path base; - shared_ptr last = jm->get().back(); - if (last->finished_in_error()) { - error_dialog(parent, std_to_wx(last->error_summary()) + ".\n", std_to_wx(last->error_details())); - return false; +#ifdef DCPOMATIC_DEBUG + /* Hack to allow Linux and OS X to find icons when running from the source tree */ + char* path = getenv ("DCPOMATIC_GRAPHICS"); + if (path) { + base = path; + } else { + base = resources_path(); } +#else + base = resources_path(); +#endif + + boost::filesystem::path p = base / String::compose("%1.png", name); + return std_to_wx (p.string()); +} + - return true; +wxSize +small_button_size (wxWindow* parent, wxString text) +{ + wxClientDC dc (parent); + wxSize size = dc.GetTextExtent (text); + size.SetHeight (-1); + size.IncBy (24, 0); + return size; } +