diff options
author | Robin Gareus <robin@gareus.org> | 2017-07-15 17:38:28 +0200 |
---|---|---|
committer | Robin Gareus <robin@gareus.org> | 2017-07-17 21:06:04 +0200 |
commit | 5c926136988757f1f11a14c11720ed3daac3195f (patch) | |
tree | 656b502db734ba104c40d088bc7b042fd6c77ee8 /gtk2_ardour/ardour_knob.h | |
parent | d397e1f85cd2dce1fa79b672b40f5ea6a4b971f1 (diff) |
Separate Ardour UI widgets into dedicated library
Diffstat (limited to 'gtk2_ardour/ardour_knob.h')
-rw-r--r-- | gtk2_ardour/ardour_knob.h | 128 |
1 files changed, 0 insertions, 128 deletions
diff --git a/gtk2_ardour/ardour_knob.h b/gtk2_ardour/ardour_knob.h deleted file mode 100644 index f3291270cc..0000000000 --- a/gtk2_ardour/ardour_knob.h +++ /dev/null @@ -1,128 +0,0 @@ -/* - Copyright (C) 2014 Paul Davis - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. -*/ - -#ifndef __gtk2_ardour_ardour_knob_h__ -#define __gtk2_ardour_ardour_knob_h__ - -#include <list> -#include <stdint.h> - -#include <gtkmm/action.h> - -#include "pbd/signals.h" -#include "ardour/automatable.h" - -#include "gtkmm2ext/binding_proxy.h" -#include "gtkmm2ext/activatable.h" -#include "gtkmm2ext/cairo_widget.h" -#include "gtkmm2ext/persistent_tooltip.h" - -class KnobPersistentTooltip : public Gtkmm2ext::PersistentTooltip -{ -public: - KnobPersistentTooltip (Gtk::Widget* w); - - void start_drag (); - void stop_drag (); - bool dragging () const; - -private: - bool _dragging; -}; - - -class ArdourKnob : public CairoWidget , public Gtkmm2ext::Activatable -{ -public: - - enum Element { - Arc = 0x1, - Bevel = 0x2, - unused2 = 0x4, - unused3 = 0x8, - unused4 = 0x10, - unused5 = 0x20, - }; - - enum Flags { - NoFlags = 0, - Detent = 0x1, - ArcToZero = 0x2, - }; - - ArdourKnob (Element e = default_elements, Flags flags = NoFlags); - virtual ~ArdourKnob (); - - void set_active_state (Gtkmm2ext::ActiveState); - void set_visual_state (Gtkmm2ext::VisualState); - - Element elements() const { return _elements; } - void set_elements (Element); - void add_elements (Element); - static Element default_elements; - - void set_tooltip_prefix (std::string pfx) { _tooltip_prefix = pfx; controllable_changed (true); } - - boost::shared_ptr<PBD::Controllable> get_controllable() { return binding_proxy.get_controllable(); } - void set_controllable (boost::shared_ptr<PBD::Controllable> c); - - bool on_button_press_event (GdkEventButton*); - bool on_button_release_event (GdkEventButton*); - bool on_scroll_event (GdkEventScroll* ev); - bool on_motion_notify_event (GdkEventMotion *ev) ; - - void color_handler (); - - protected: - void render (Cairo::RefPtr<Cairo::Context> const&, cairo_rectangle_t*); - void on_size_request (Gtk::Requisition* req); - void on_size_allocate (Gtk::Allocation&); - void on_style_changed (const Glib::RefPtr<Gtk::Style>&); - void on_name_changed (); - bool on_enter_notify_event (GdkEventCrossing*); - bool on_leave_notify_event (GdkEventCrossing*); - bool on_focus_in_event (GdkEventFocus*); - bool on_focus_out_event (GdkEventFocus*); - - void controllable_changed (bool force_update = false); - PBD::ScopedConnection watch_connection; - - - private: - Element _elements; - BindingProxy binding_proxy; - - bool _hovering; - float _grabbed_x; - float _grabbed_y; - - float _val; // current value [0..1] - float _normal; // default value, arc - float _dead_zone_delta; - - Flags _flags; - - void action_sensitivity_changed (); - void action_visibility_changed (); - void action_tooltip_changed (); - - std::string _tooltip_prefix; - KnobPersistentTooltip _tooltip; -}; - -#endif /* __gtk2_ardour_ardour_knob_h__ */ |