diff options
author | Robin Gareus <robin@gareus.org> | 2013-07-08 17:55:29 +0200 |
---|---|---|
committer | Robin Gareus <robin@gareus.org> | 2013-07-10 15:27:14 +0200 |
commit | 40bc6f5b83e5946a213311e8e504632bec0c978a (patch) | |
tree | 3f2f71c6388c13820a43198b8b1a96585b97bee8 /libs/gtkmm2ext/pixfader.cc | |
parent | 7121e194374ca6687b38b1dfaaa2bd2b8c555d2b (diff) |
Task Force Viking: operation green line
Diffstat (limited to 'libs/gtkmm2ext/pixfader.cc')
-rw-r--r-- | libs/gtkmm2ext/pixfader.cc | 62 |
1 files changed, 49 insertions, 13 deletions
diff --git a/libs/gtkmm2ext/pixfader.cc b/libs/gtkmm2ext/pixfader.cc index f4e362bca1..dab7503c77 100644 --- a/libs/gtkmm2ext/pixfader.cc +++ b/libs/gtkmm2ext/pixfader.cc @@ -264,21 +264,57 @@ PixFader::on_expose_event (GdkEventExpose* ev) /* draw the unity-position line if it's not at either end*/ if (unity_loc > 0) { - if ( _orien == VERT) { - if (unity_loc < h ) { - context->set_line_width (1); - context->set_source_rgb (0.0, 1.0, 0.0); - context->move_to (1, unity_loc); - context->line_to (girth - 2.0, unity_loc); + context->set_line_width (1); + if (girth <= 10) { // Line + context->set_source_rgb (0.0, 1.0, 0.0); + if ( _orien == VERT) { + if (unity_loc < h ) { + context->move_to (1, unity_loc + .5); + context->line_to (girth - 2.0, unity_loc + .5); context->stroke (); + } + } else { + if ( unity_loc < w ){ + context->move_to (unity_loc + .5, 1); + context->line_to (unity_loc + .5, girth - 2.0); + context->stroke (); + } } - } else { - if ( unity_loc < w ){ - context->set_line_width (1); - context->set_source_rgb (0.0, 1.0, 0.0); - context->move_to (unity_loc, 1); - context->line_to (unity_loc, girth - 2.0); - context->stroke (); + } else { // triangle + Gdk::Color c = get_style()->get_fg (Gtk::STATE_ACTIVE); + context->set_source_rgba (c.get_red_p()*1.25, c.get_green_p()*1.25, c.get_blue_p()*1.25, 0.85); + if ( _orien == VERT) { + if (unity_loc < h ) { + context->move_to (1, unity_loc - 1.0); + context->line_to (1, unity_loc + 2.0); + context->line_to (5.0, unity_loc + 0.5); + cairo_close_path(cr); + context->fill_preserve (); + context->stroke (); + + context->move_to (girth - 1, unity_loc - 1.0); + context->line_to (girth - 1, unity_loc + 2.0); + context->line_to (girth - 5, unity_loc + 0.5); + cairo_close_path(cr); + context->fill_preserve (); + context->stroke (); + } + } else { + if ( unity_loc < w ){ + context->move_to (unity_loc + 1.0, 1); + context->line_to (unity_loc - 2.0, 1); + context->line_to (unity_loc - 0.5, 5); + cairo_close_path(cr); + context->fill_preserve (); + context->stroke (); + + context->move_to (unity_loc + 1.0, girth - 1); + context->line_to (unity_loc - 2.0, girth - 1); + context->line_to (unity_loc - 0.5, girth - 5); + cairo_close_path(cr); + context->fill_preserve (); + context->stroke (); + } } } } |