summaryrefslogtreecommitdiff
path: root/gtk2_ardour
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2008-07-08 20:06:42 +0000
committerPaul Davis <paul@linuxaudiosystems.com>2008-07-08 20:06:42 +0000
commitc45d09b193a1c4802eefa082944e59fac949a950 (patch)
tree75f97cb8f9316d3a6779eb9de0256269e9235fc5 /gtk2_ardour
parent73bb86efacb7eebaa671226917c95481a624c6d3 (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.in7
-rw-r--r--gtk2_ardour/ardour2_ui_light.rc.in8
-rw-r--r--gtk2_ardour/time_axis_view.cc44
-rw-r--r--gtk2_ardour/time_axis_view.h3
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;