From ccd732beea909c50a6045146128c24de3e2cfff7 Mon Sep 17 00:00:00 2001 From: Tim Mayberry Date: Sun, 17 Jun 2007 00:53:04 +0000 Subject: [PATCH] Reinstate code removed in rev 1917 that creates the text tags for the log window This was causing an assertion each time a log message is sent as the text tags are uninitialized. git-svn-id: svn://localhost/ardour2/trunk@2018 d708f5d6-7413-0410-9779-e7cbd77b26cf --- libs/gtkmm2ext/gtk_ui.cc | 75 +++++++++++++++++++++++++++++++++++++--- 1 file changed, 71 insertions(+), 4 deletions(-) diff --git a/libs/gtkmm2ext/gtk_ui.cc b/libs/gtkmm2ext/gtk_ui.cc index 174d645d17..d6217c16d6 100644 --- a/libs/gtkmm2ext/gtk_ui.cc +++ b/libs/gtkmm2ext/gtk_ui.cc @@ -19,7 +19,6 @@ */ #include -#include #include #include #include @@ -130,6 +129,77 @@ UI::load_rcfile (string path) } RC rc (path.c_str()); + + /* have to pack widgets into a toplevel window so that styles will stick */ + + Window temp_window (WINDOW_TOPLEVEL); + HBox box; + Label a_widget1; + Label a_widget2; + Label a_widget3; + Label a_widget4; + RefPtr style; + RefPtr buffer (errors->text().get_buffer()); + + box.pack_start (a_widget1); + box.pack_start (a_widget2); + box.pack_start (a_widget3); + box.pack_start (a_widget4); + + error_ptag = buffer->create_tag(); + error_mtag = buffer->create_tag(); + fatal_ptag = buffer->create_tag(); + fatal_mtag = buffer->create_tag(); + warning_ptag = buffer->create_tag(); + warning_mtag = buffer->create_tag(); + info_ptag = buffer->create_tag(); + info_mtag = buffer->create_tag(); + + a_widget1.set_name ("FatalMessage"); + a_widget1.ensure_style (); + style = a_widget1.get_style(); + + fatal_ptag->property_font_desc().set_value(style->get_font()); + fatal_ptag->property_foreground_gdk().set_value(style->get_fg(STATE_ACTIVE)); + fatal_ptag->property_background_gdk().set_value(style->get_bg(STATE_ACTIVE)); + fatal_mtag->property_font_desc().set_value(style->get_font()); + fatal_mtag->property_foreground_gdk().set_value(style->get_fg(STATE_NORMAL)); + fatal_mtag->property_background_gdk().set_value(style->get_bg(STATE_NORMAL)); + + a_widget2.set_name ("ErrorMessage"); + a_widget2.ensure_style (); + style = a_widget2.get_style(); + + error_ptag->property_font_desc().set_value(style->get_font()); + error_ptag->property_foreground_gdk().set_value(style->get_fg(STATE_ACTIVE)); + error_ptag->property_background_gdk().set_value(style->get_bg(STATE_ACTIVE)); + error_mtag->property_font_desc().set_value(style->get_font()); + error_mtag->property_foreground_gdk().set_value(style->get_fg(STATE_NORMAL)); + error_mtag->property_background_gdk().set_value(style->get_bg(STATE_NORMAL)); + + a_widget3.set_name ("WarningMessage"); + a_widget3.ensure_style (); + style = a_widget3.get_style(); + + warning_ptag->property_font_desc().set_value(style->get_font()); + warning_ptag->property_foreground_gdk().set_value(style->get_fg(STATE_ACTIVE)); + warning_ptag->property_background_gdk().set_value(style->get_bg(STATE_ACTIVE)); + warning_mtag->property_font_desc().set_value(style->get_font()); + warning_mtag->property_foreground_gdk().set_value(style->get_fg(STATE_NORMAL)); + warning_mtag->property_background_gdk().set_value(style->get_bg(STATE_NORMAL)); + + a_widget4.set_name ("InfoMessage"); + a_widget4.ensure_style (); + style = a_widget4.get_style(); + + info_ptag->property_font_desc().set_value(style->get_font()); + info_ptag->property_foreground_gdk().set_value(style->get_fg(STATE_ACTIVE)); + info_ptag->property_background_gdk().set_value(style->get_bg(STATE_ACTIVE)); + info_mtag->property_font_desc().set_value(style->get_font()); + info_mtag->property_foreground_gdk().set_value(style->get_fg(STATE_NORMAL)); + info_mtag->property_background_gdk().set_value(style->get_bg(STATE_NORMAL)); + + RC::reset_styles(Gtk::Settings::get_default()); return 0; } @@ -430,9 +500,6 @@ UI::toggle_errors () void UI::display_message (const char *prefix, gint prefix_len, RefPtr ptag, RefPtr mtag, const char *msg) { - assert(ptag); - assert(mtag); - RefPtr buffer (errors->text().get_buffer()); buffer->insert_with_tag(buffer->end(), prefix, ptag);