summaryrefslogtreecommitdiff
path: root/gtk2_ardour/canvas-flag.h
diff options
context:
space:
mode:
authorHans Baier <hansfbaier@googlemail.com>2008-12-12 22:04:22 +0000
committerHans Baier <hansfbaier@googlemail.com>2008-12-12 22:04:22 +0000
commitf03a87a132feb525a743de675d0439e981ab329a (patch)
tree995f4bcb7deb66ebe75924d90ce1727d230bed8e /gtk2_ardour/canvas-flag.h
parentbc89fe0147c04b67141936d109c00dfd4d69cc4b (diff)
* Prepared CanvasFlag (and thus ChanvasProgramChange) to be able to receive Scroll wheel events
* made changes in editor_canvas_events.cc to forward events to CanvasFlag (against pauls advice), but IMHO it doesnt add complexity to it since it only adds a few trivial lines which do the same which has already been done for CanvasNote and thus shouldnt complicate the merge in any way git-svn-id: svn://localhost/ardour2/branches/3.0@4314 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'gtk2_ardour/canvas-flag.h')
-rw-r--r--gtk2_ardour/canvas-flag.h53
1 files changed, 50 insertions, 3 deletions
diff --git a/gtk2_ardour/canvas-flag.h b/gtk2_ardour/canvas-flag.h
index 23fba78fee..0f45667614 100644
--- a/gtk2_ardour/canvas-flag.h
+++ b/gtk2_ardour/canvas-flag.h
@@ -15,6 +15,9 @@ class MidiRegionView;
namespace Gnome {
namespace Canvas {
+class CanvasFlagRect;
+class CanvasFlagText;
+
class CanvasFlag : public Group
{
public:
@@ -35,13 +38,15 @@ public:
, _line(0)
, _rect(0)
{}
-
+
virtual ~CanvasFlag();
+ virtual bool on_event(GdkEvent* ev);
+
void set_text(string& a_text);
protected:
- Text* _text;
+ CanvasFlagText* _text;
double _height;
guint _outline_color_rgba;
guint _fill_color_rgba;
@@ -51,9 +56,51 @@ private:
MidiRegionView& _region;
SimpleLine* _line;
- SimpleRect* _rect;
+ CanvasFlagRect* _rect;
+};
+
+class CanvasFlagText: public Text
+{
+public:
+ CanvasFlagText(Group& parent, double x, double y, const Glib::ustring& text)
+ : Text(parent, x, y, text) {
+ _parent = dynamic_cast<CanvasFlag*>(&parent);
+;
+ }
+
+ virtual bool on_event(GdkEvent* ev) {
+ if(_parent) {
+ return _parent->on_event(ev);
+ } else {
+ return false;
+ }
+ }
+
+private:
+ CanvasFlag* _parent;
};
+class CanvasFlagRect: public SimpleRect
+{
+public:
+ CanvasFlagRect(Group& parent, double x1, double y1, double x2, double y2)
+ : SimpleRect(parent, x1, y1, x2, y2) {
+ _parent = dynamic_cast<CanvasFlag*>(&parent);
+ }
+
+ virtual bool on_event(GdkEvent* ev) {
+ if(_parent) {
+ return _parent->on_event(ev);
+ } else {
+ return false;
+ }
+ }
+
+private:
+ CanvasFlag* _parent;
+};
+
+
} // namespace Canvas
} // namespace Gnome