More c++ tidying.
[dcpomatic.git] / src / wx / wx_util.cc
index 46b122a8a6c82dca3231e2740553f8ce8c7ed6c7..8b6d0961ba74a0f91b3e59d11c3b309a9ade9bc5 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (C) 2012-2019 Carl Hetherington <cth@carlh.net>
+    Copyright (C) 2012-2020 Carl Hetherington <cth@carlh.net>
 
     This file is part of DCP-o-matic.
 
@@ -44,7 +44,7 @@ DCPOMATIC_ENABLE_WARNINGS
 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;
@@ -80,7 +80,7 @@ add_label_to_sizer (wxSizer* s, wxWindow* p, wxString t, bool left, int prop, in
                flags |= wxALIGN_RIGHT;
        }
 #endif
-       wxStaticText* m = create_label (p, t, left);
+       auto m = create_label (p, t, left);
        s->Add (m, prop, flags, 6);
        return m;
 }
@@ -110,7 +110,7 @@ add_label_to_sizer (wxGridBagSizer* s, wxWindow* p, wxString t, bool left, wxGBP
                flags |= wxALIGN_RIGHT;
        }
 #endif
-       wxStaticText* m = create_label (p, t, left);
+       auto m = create_label (p, t, left);
        s->Add (m, pos, span, flags);
        return m;
 }
@@ -140,7 +140,7 @@ add_label_to_sizer (wxGridBagSizer* s, wxStaticText* t, bool, wxGBPosition pos,
 void
 error_dialog (wxWindow* parent, wxString m, optional<wxString> e)
 {
-       wxMessageDialog* d = new wxMessageDialog (parent, m, _("DCP-o-matic"), wxOK | wxICON_ERROR);
+       auto d = new wxMessageDialog (parent, m, _("DCP-o-matic"), wxOK | wxICON_ERROR);
        if (e) {
                wxString em = *e;
                em[0] = wxToupper (em[0]);
@@ -157,7 +157,7 @@ error_dialog (wxWindow* parent, wxString m, optional<wxString> e)
 void
 message_dialog (wxWindow* parent, wxString m)
 {
-       wxMessageDialog* d = new wxMessageDialog (parent, m, _("DCP-o-matic"), wxOK | wxICON_INFORMATION);
+       auto d = new wxMessageDialog (parent, m, _("DCP-o-matic"), wxOK | wxICON_INFORMATION);
        d->ShowModal ();
        d->Destroy ();
 }
@@ -253,7 +253,7 @@ checked_set (wxChoice* widget, int value)
 void
 checked_set (wxChoice* widget, string value)
 {
-       wxClientData* o = 0;
+       wxClientData* o = nullptr;
        if (widget->GetSelection() != -1) {
                o = widget->GetClientObject (widget->GetSelection ());
        }
@@ -285,8 +285,8 @@ checked_set (wxChoice* widget, vector<pair<string, string> > items)
        }
 
        widget->Clear ();
-       for (vector<pair<string, string> >::const_iterator i = items.begin(); i != items.end(); ++i) {
-               widget->Append (std_to_wx (i->first), new wxStringClientData (std_to_wx (i->second)));
+       for (auto i: items) {
+               widget->Append (std_to_wx(i.first), new wxStringClientData(std_to_wx(i.second)));
        }
 }
 
@@ -351,15 +351,15 @@ dcpomatic_setup_i18n ()
 {
        int language = wxLANGUAGE_DEFAULT;
 
-       boost::optional<string> config_lang = Config::instance()->language ();
+       auto config_lang = Config::instance()->language ();
        if (config_lang && !config_lang->empty ()) {
-               wxLanguageInfo const * li = wxLocale::FindLanguageInfo (std_to_wx (config_lang.get ()));
+               auto const li = wxLocale::FindLanguageInfo (std_to_wx (config_lang.get ()));
                if (li) {
                        language = li->Language;
                }
        }
 
-       wxLocale* locale = 0;
+       wxLocale* locale = nullptr;
        if (wxLocale::IsAvailable (language)) {
                locale = new wxLocale (language, wxLOCALE_LOAD_DEFAULT);
 
@@ -418,7 +418,7 @@ wx_get (wxSpinCtrlDouble* w)
 wxString
 context_translation (wxString s)
 {
-       wxString t = wxGetTranslation (s);
+       auto t = wxGetTranslation (s);
        if (t == s) {
                /* No translation; strip the context */
                int c = t.Find (wxT ("|"));
@@ -433,7 +433,7 @@ context_translation (wxString s)
 wxString
 time_to_timecode (DCPTime t, double fps)
 {
-       double w = t.seconds ();
+       auto w = t.seconds ();
        int const h = (w / 3600);
        w -= h * 3600;
        int const m = (w / 60);
@@ -470,11 +470,10 @@ setup_audio_channels_choice (wxChoice* choice, int minimum)
 wxSplashScreen *
 maybe_show_splash ()
 {
-       wxSplashScreen* splash = 0;
+       wxSplashScreen* splash = nullptr;
        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 ();
                }
@@ -513,7 +512,7 @@ calculate_mark_interval (double mark_interval)
 bool
 display_progress (wxString title, wxString task)
 {
-       JobManager* jm = JobManager::instance ();
+       auto jm = JobManager::instance ();
 
        wxProgressDialog progress (title, task, 100, 0, wxPD_CAN_ABORT);
 
@@ -523,7 +522,7 @@ display_progress (wxString title, wxString task)
                dcpomatic_sleep_seconds (1);
                if (!progress.Pulse()) {
                        /* user pressed cancel */
-                       BOOST_FOREACH (shared_ptr<Job> i, jm->get()) {
+                       for (auto i: jm->get()) {
                                i->cancel();
                        }
                        ok = false;
@@ -578,18 +577,29 @@ bitmap_path (string name)
        boost::filesystem::path base;
 
 #ifdef DCPOMATIC_DEBUG
-       /* Hack to allow OS X to find icons when running from the source tree */
+       /* 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 = shared_path();
+               base = resources_path();
        }
 #else
-       base = shared_path();
+       base = resources_path();
 #endif
 
        boost::filesystem::path p = base / String::compose("%1.png", name);
        return std_to_wx (p.string());
 }
 
+
+wxSize
+small_button_size (wxWindow* parent, wxString text)
+{
+       wxClientDC dc (parent);
+       auto size = dc.GetTextExtent (text);
+       size.SetHeight (-1);
+       size.IncBy (24, 0);
+       return size;
+}
+