Basics of multiple captions per content so that DCPContent can
[dcpomatic.git] / src / wx / fonts_dialog.cc
index 528b3999bd036c529e90ba1bbffe7b19394fde3b..269dad6780fdb058465fff2e69f1d5f39ac24cf1 100644 (file)
@@ -34,9 +34,10 @@ using std::string;
 using std::cout;
 using boost::shared_ptr;
 
-FontsDialog::FontsDialog (wxWindow* parent, shared_ptr<Content> content)
+FontsDialog::FontsDialog (wxWindow* parent, shared_ptr<Content> content, shared_ptr<CaptionContent> caption)
        : wxDialog (parent, wxID_ANY, _("Fonts"))
        , _content (content)
+       , _caption (caption)
 {
        _fonts = new wxListCtrl (this, wxID_ANY, wxDefaultPosition, wxSize (550, 200), wxLC_REPORT | wxLC_SINGLE_SEL);
 
@@ -99,13 +100,14 @@ void
 FontsDialog::setup ()
 {
        shared_ptr<Content> content = _content.lock ();
-       if (!content) {
+       shared_ptr<CaptionContent> caption = _caption.lock ();
+       if (!content || !caption) {
                return;
        }
 
        _fonts->DeleteAllItems ();
        size_t n = 0;
-       BOOST_FOREACH (shared_ptr<Font> i, content->caption->fonts ()) {
+       BOOST_FOREACH (shared_ptr<Font> i, caption->fonts ()) {
                wxListItem item;
                item.SetId (n);
                _fonts->InsertItem (item);
@@ -138,14 +140,15 @@ void
 FontsDialog::edit_clicked ()
 {
        shared_ptr<Content> content = _content.lock ();
-       if (!content) {
+       shared_ptr<CaptionContent> caption = _caption.lock ();
+       if (!content || !caption) {
                return;
        }
 
        int const item = _fonts->GetNextItem (-1, wxLIST_NEXT_ALL, wxLIST_STATE_SELECTED);
        string const id = wx_to_std (_fonts->GetItemText (item, 0));
        shared_ptr<Font> font;
-       BOOST_FOREACH (shared_ptr<Font> i, content->caption->fonts()) {
+       BOOST_FOREACH (shared_ptr<Font> i, caption->fonts()) {
                if (i->id() == id) {
                        font = i;
                }