diff options
author | Jean-Philippe Braun <eon@patapon.info> | 2019-12-04 16:26:12 +0100 |
---|---|---|
committer | Gaute Hope <eg@gaute.vetsj.com> | 2019-12-05 13:51:43 +0100 |
commit | 964c1c702e4d691ef82429a6ef81f04868b3840d (patch) | |
tree | eb08f917468110b818074ed9c4eea47bd79ea040 | |
parent | b675b421d6c26e18fb0f0af785a80a185ad453ee (diff) |
Use colors with the correct gtk state flag
-rw-r--r-- | src/modes/thread_index/thread_index_list_cell_renderer.cc | 36 | ||||
-rw-r--r-- | src/modes/thread_index/thread_index_list_cell_renderer.hh | 9 |
2 files changed, 33 insertions, 12 deletions
diff --git a/src/modes/thread_index/thread_index_list_cell_renderer.cc b/src/modes/thread_index/thread_index_list_cell_renderer.cc index af7de44..38dcf3b 100644 --- a/src/modes/thread_index/thread_index_list_cell_renderer.cc +++ b/src/modes/thread_index/thread_index_list_cell_renderer.cc @@ -108,12 +108,12 @@ namespace Astroid { } render_background (cr, widget, background_area, flags); - render_date (cr, widget, cell_area); // returns height + render_date (cr, widget, cell_area, flags); // returns height if (thread->total_messages > 1) - render_message_count (cr, widget, cell_area); + render_message_count (cr, widget, cell_area, flags); - render_authors (cr, widget, cell_area); + render_authors (cr, widget, cell_area, flags); tags_width = render_tags (cr, widget, cell_area, flags); // returns width subject_start = tags_start + tags_width / Pango::SCALE + ((tags_width > 0) ? padding : 0); @@ -383,7 +383,8 @@ namespace Astroid { int ThreadIndexListCellRenderer::render_date ( // {{{ const ::Cairo::RefPtr< ::Cairo::Context>&cr, Gtk::Widget &widget, - const Gdk::Rectangle &cell_area ) { + const Gdk::Rectangle &cell_area, + Gtk::CellRendererState flags) { ustring date = Date::pretty_print (thread->newest_date); @@ -393,7 +394,12 @@ namespace Astroid { /* set color */ Glib::RefPtr<Gtk::StyleContext> stylecontext = widget.get_style_context(); - Gdk::RGBA color = stylecontext->get_color(Gtk::STATE_FLAG_NORMAL); + Gdk::RGBA color; + if ((flags & Gtk::CELL_RENDERER_SELECTED) != 0) { + color = stylecontext->get_color(Gtk::STATE_FLAG_SELECTED); + } else { + color = stylecontext->get_color(Gtk::STATE_FLAG_NORMAL); + } cr->set_source_rgb (color.get_red(), color.get_green(), color.get_blue()); /* align in the middle */ @@ -414,7 +420,8 @@ namespace Astroid { void ThreadIndexListCellRenderer::render_message_count ( // {{{ const ::Cairo::RefPtr< ::Cairo::Context>&cr, Gtk::Widget &widget, - const Gdk::Rectangle &cell_area ) { + const Gdk::Rectangle &cell_area, + Gtk::CellRendererState flags) { # define BUFLEN 24 char buf[BUFLEN]; @@ -427,7 +434,12 @@ namespace Astroid { /* set color */ Glib::RefPtr<Gtk::StyleContext> stylecontext = widget.get_style_context(); - Gdk::RGBA color = stylecontext->get_color(Gtk::STATE_FLAG_NORMAL); + Gdk::RGBA color; + if ((flags & Gtk::CELL_RENDERER_SELECTED) != 0) { + color = stylecontext->get_color(Gtk::STATE_FLAG_SELECTED); + } else { + color = stylecontext->get_color(Gtk::STATE_FLAG_NORMAL); + } cr->set_source_rgb (color.get_red(), color.get_green(), color.get_blue()); /* align in the middle */ @@ -446,7 +458,8 @@ namespace Astroid { void ThreadIndexListCellRenderer::render_authors ( // {{{ const ::Cairo::RefPtr< ::Cairo::Context>&cr, Gtk::Widget &widget, - const Gdk::Rectangle &cell_area ) { + const Gdk::Rectangle &cell_area, + Gtk::CellRendererState flags) { /* format authors string */ ustring authors; @@ -533,7 +546,12 @@ namespace Astroid { /* set color */ Glib::RefPtr<Gtk::StyleContext> stylecontext = widget.get_style_context(); - Gdk::RGBA color = stylecontext->get_color(Gtk::STATE_FLAG_NORMAL); + Gdk::RGBA color; + if ((flags & Gtk::CELL_RENDERER_SELECTED) != 0) { + color = stylecontext->get_color(Gtk::STATE_FLAG_SELECTED); + } else { + color = stylecontext->get_color(Gtk::STATE_FLAG_NORMAL); + } cr->set_source_rgb (color.get_red(), color.get_green(), color.get_blue()); /* align in the middle */ diff --git a/src/modes/thread_index/thread_index_list_cell_renderer.hh b/src/modes/thread_index/thread_index_list_cell_renderer.hh index 31b663f..6a64663 100644 --- a/src/modes/thread_index/thread_index_list_cell_renderer.hh +++ b/src/modes/thread_index/thread_index_list_cell_renderer.hh @@ -127,17 +127,20 @@ namespace Astroid { int render_date ( const ::Cairo::RefPtr< ::Cairo::Context>&cr, Gtk::Widget &widget, - const Gdk::Rectangle &cell_area ); + const Gdk::Rectangle &cell_area, + Gtk::CellRendererState flags ); void render_message_count ( const ::Cairo::RefPtr< ::Cairo::Context>&cr, Gtk::Widget &widget, - const Gdk::Rectangle &cell_area ); + const Gdk::Rectangle &cell_area, + Gtk::CellRendererState flags ); void render_authors ( const ::Cairo::RefPtr< ::Cairo::Context>&cr, Gtk::Widget &widget, - const Gdk::Rectangle &cell_area ); + const Gdk::Rectangle &cell_area, + Gtk::CellRendererState flags ); void render_delimiter ( const ::Cairo::RefPtr< ::Cairo::Context>&cr, |