mirror of
https://github.com/Ardour/ardour.git
synced 2025-12-28 01:17:42 +01:00
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:
parent
73bb86efac
commit
c45d09b193
4 changed files with 54 additions and 8 deletions
|
|
@ -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"
|
||||
|
||||
|
|
|
|||
|
|
@ -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"
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue