diff options
author | Paul Davis <paul@linuxaudiosystems.com> | 2008-07-08 20:06:42 +0000 |
---|---|---|
committer | Paul Davis <paul@linuxaudiosystems.com> | 2008-07-08 20:06:42 +0000 |
commit | c45d09b193a1c4802eefa082944e59fac949a950 (patch) | |
tree | 75f97cb8f9316d3a6779eb9de0256269e9235fc5 /gtk2_ardour | |
parent | 73bb86efacb7eebaa671226917c95481a624c6d3 (diff) |
new drawing style for track resize handles (thanks thorwil!)
git-svn-id: svn://localhost/ardour2/branches/2.0-ongoing@3525 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'gtk2_ardour')
-rw-r--r-- | gtk2_ardour/ardour2_ui_dark.rc.in | 7 | ||||
-rw-r--r-- | gtk2_ardour/ardour2_ui_light.rc.in | 8 | ||||
-rw-r--r-- | gtk2_ardour/time_axis_view.cc | 44 | ||||
-rw-r--r-- | gtk2_ardour/time_axis_view.h | 3 |
4 files changed, 54 insertions, 8 deletions
diff --git a/gtk2_ardour/ardour2_ui_dark.rc.in b/gtk2_ardour/ardour2_ui_dark.rc.in index 9d354c6348..f875258465 100644 --- a/gtk2_ardour/ardour2_ui_dark.rc.in +++ b/gtk2_ardour/ardour2_ui_dark.rc.in @@ -465,6 +465,12 @@ style "editor_hscrollbar" = "ardour_adjusters" GtkScrollbar::slider_width = 27 } +style "resizer_handle" +{ + fg[NORMAL] = { 0, 0, 0 } + bg[NORMAL] = "#818181" +} + style "ardour_progressbars" = "default_generic" { bg[NORMAL] = { 0, 0, 0 } @@ -1573,4 +1579,5 @@ widget "*ChannelCountSelector" style:highest "medium_bold_entry" widget "*ChannelCountSelector.GtkArrow" style:highest "default_generic" widget "*RegionListWholeFile" style:highest "treeview_parent_node" widget "*EditorHScrollbar" style:highest "editor_hscrollbar" +widget "*ResizerHandler" style:highest "resizer_handle" diff --git a/gtk2_ardour/ardour2_ui_light.rc.in b/gtk2_ardour/ardour2_ui_light.rc.in index 68474b12d1..7b7d077a8c 100644 --- a/gtk2_ardour/ardour2_ui_light.rc.in +++ b/gtk2_ardour/ardour2_ui_light.rc.in @@ -468,6 +468,12 @@ style "editor_hscrollbar" = "ardour_adjusters" GtkScrollbar::slider_width = 27 } +style "resizer_handle" +{ + fg[NORMAL] = { 0, 0, 0 } + bg[NORMAL] = "#818181" +} + style "ardour_progressbars" = "default_generic" { bg[NORMAL] = { 0, 0, 0 } @@ -1576,4 +1582,4 @@ widget "*ChannelCountSelector" style:highest "medium_bold_entry" widget "*ChannelCountSelector.GtkArrow" style:highest "default_generic" widget "*RegionListWholeFile" style:highest "treeview_parent_node" widget "*EditorHScrollbar" style:highest "editor_hscrollbar" - +widget "*ResizerHandler" style:highest "resizer_handle" diff --git a/gtk2_ardour/time_axis_view.cc b/gtk2_ardour/time_axis_view.cc index 3e639773c8..a42d097b31 100644 --- a/gtk2_ardour/time_axis_view.cc +++ b/gtk2_ardour/time_axis_view.cc @@ -132,6 +132,7 @@ TimeAxisView::TimeAxisView (ARDOUR::Session& sess, PublicEditor& ed, TimeAxisVie controls_table.set_no_show_all (); resizer.set_size_request (10, 10); + resizer.set_name ("ResizeHandle"); resizer.signal_expose_event().connect (mem_fun (*this, &TimeAxisView::resizer_expose)); resizer.signal_button_press_event().connect (mem_fun (*this, &TimeAxisView::resizer_button_press)); resizer.signal_button_release_event().connect (mem_fun (*this, &TimeAxisView::resizer_button_release)); @@ -602,6 +603,8 @@ TimeAxisView::set_selected (bool yn) (*i)->set_selected (false); } } + + resizer.queue_draw (); } void @@ -1227,12 +1230,41 @@ TimeAxisView::resizer_motion (GdkEventMotion* ev) bool TimeAxisView::resizer_expose (GdkEventExpose* event) { - resizer.get_window()->draw_rectangle (resizer.get_style()->get_fg_gc(STATE_ACTIVE), - true, - event->area.x, - event->area.y, - event->area.width, - event->area.height); + int w, h, x, y, d; + Glib::RefPtr<Gdk::Window> win (resizer.get_window()); + Glib::RefPtr<Gdk::GC> dark (resizer.get_style()->get_fg_gc (STATE_NORMAL)); + Glib::RefPtr<Gdk::GC> light (resizer.get_style()->get_bg_gc (STATE_NORMAL)); + + win->draw_rectangle (controls_ebox.get_style()->get_bg_gc(STATE_NORMAL), + true, + event->area.x, + event->area.y, + event->area.width, + event->area.height); + + win->get_geometry (x, y, w, h, d); + + /* handle/line #1 */ + + win->draw_line (dark, 0, 0, w - 2, 0); + win->draw_point (dark, 0, 1); + win->draw_line (light, 1, 1, w - 1, 1); + win->draw_point (light, w - 1, 0); + + /* handle/line #2 */ + + win->draw_line (dark, 0, 4, w - 2, 4); + win->draw_point (dark, 0, 5); + win->draw_line (light, 1, 5, w - 1, 5); + win->draw_point (light, w - 1, 4); + + /* handle/line #3 */ + + win->draw_line (dark, 0, 8, w - 2, 8); + win->draw_point (dark, 0, 9); + win->draw_line (light, 1, 9, w - 1, 9); + win->draw_point (light, w - 1, 8); + return true; } diff --git a/gtk2_ardour/time_axis_view.h b/gtk2_ardour/time_axis_view.h index 8ae4f55ec3..2f014c7a16 100644 --- a/gtk2_ardour/time_axis_view.h +++ b/gtk2_ardour/time_axis_view.h @@ -25,6 +25,7 @@ #include <gtkmm/box.h> #include <gtkmm/frame.h> +#include <gtkmm/drawingarea.h> #include <gtkmm/eventbox.h> #include <gtkmm/table.h> #include <gtkmm/entry.h> @@ -112,7 +113,7 @@ class TimeAxisView : public virtual AxisView, public Stateful Gtk::Table controls_table; Gtk::EventBox controls_ebox; Gtk::VBox controls_vbox; - Gtk::EventBox resizer; + Gtk::DrawingArea resizer; Gtk::HBox resizer_box; Gtk::HBox name_hbox; Gtk::Frame name_frame; |