summaryrefslogtreecommitdiff
path: root/libs/gtkmm2ext/gtk_ui.cc
diff options
context:
space:
mode:
authorTim Mayberry <mojofunk@gmail.com>2007-06-17 00:53:04 +0000
committerTim Mayberry <mojofunk@gmail.com>2007-06-17 00:53:04 +0000
commitccd732beea909c50a6045146128c24de3e2cfff7 (patch)
tree3b5b2e421f91fbe8e97b64d47269558ffd5febfb /libs/gtkmm2ext/gtk_ui.cc
parent56a27e873485b17e35bf458a3d94aa2338c5fa33 (diff)
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
Diffstat (limited to 'libs/gtkmm2ext/gtk_ui.cc')
-rw-r--r--libs/gtkmm2ext/gtk_ui.cc75
1 files 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 <cmath>
-#include <cassert>
#include <fcntl.h>
#include <signal.h>
#include <unistd.h>
@@ -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<Gtk::Style> style;
+ RefPtr<TextBuffer> 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<TextBuffer::Tag> ptag, RefPtr<TextBuffer::Tag> mtag, const char *msg)
{
- assert(ptag);
- assert(mtag);
-
RefPtr<TextBuffer> buffer (errors->text().get_buffer());
buffer->insert_with_tag(buffer->end(), prefix, ptag);