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
This commit is contained in:
Paul Davis 2008-07-08 20:06:42 +00:00
parent 73bb86efac
commit c45d09b193
4 changed files with 54 additions and 8 deletions

View file

@ -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"

View file

@ -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"

View file

@ -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;
}

View file

@ -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;