summaryrefslogtreecommitdiff
path: root/gtk2_ardour
diff options
context:
space:
mode:
authorRobin Gareus <robin@gareus.org>2017-02-24 12:53:49 +0100
committerRobin Gareus <robin@gareus.org>2017-02-24 16:10:14 +0100
commit3780a9526e3eeafbde056df8038a4d9cda37216e (patch)
treec916b58226b038b6bba993b87846281fe2ce3dad /gtk2_ardour
parentfebd1d5c8834384f43e5a5319ebfa1c933ca5c6c (diff)
re-order inheritance
LuaBridge only allows one parent class, others need explicit casts. Allowing RoutUI to be passed as Selectable argument is handy.
Diffstat (limited to 'gtk2_ardour')
-rw-r--r--gtk2_ardour/luainstance.cc14
-rw-r--r--gtk2_ardour/route_ui.h2
2 files changed, 11 insertions, 5 deletions
diff --git a/gtk2_ardour/luainstance.cc b/gtk2_ardour/luainstance.cc
index c8a4fe9e3b..59ebd80e85 100644
--- a/gtk2_ardour/luainstance.cc
+++ b/gtk2_ardour/luainstance.cc
@@ -575,22 +575,28 @@ LuaInstance::register_classes (lua_State* L)
.addFunction ("_type", &ArdourMarker::type)
.endClass ()
-#if 0
.beginClass <AxisView> ("AxisView")
.endClass ()
+
.deriveClass <TimeAxisView, AxisView> ("TimeAxisView")
.endClass ()
- .deriveClass <RouteTimeAxisView, TimeAxisView> ("RouteTimeAxisView")
- .endClass ()
-#endif
.beginClass <Selectable> ("Selectable")
.endClass ()
+
.deriveClass <TimeAxisViewItem, Selectable> ("TimeAxisViewItem")
.endClass ()
+
.deriveClass <RegionView, TimeAxisViewItem> ("RegionView")
.endClass ()
+ .deriveClass <RouteUI, Selectable> ("RouteUI")
+ .endClass ()
+
+ .deriveClass <RouteTimeAxisView, RouteUI> ("RouteTimeAxisView")
+ .addCast<TimeAxisView> ("to_timeaxisview")
+ .endClass ()
+
.beginStdCPtrList <Selectable> ("SelectionList")
.endClass ()
diff --git a/gtk2_ardour/route_ui.h b/gtk2_ardour/route_ui.h
index d0b9d406c6..6f53b7232d 100644
--- a/gtk2_ardour/route_ui.h
+++ b/gtk2_ardour/route_ui.h
@@ -74,7 +74,7 @@ class RoutePinWindowProxy : public WM::ProxyBase
PBD::ScopedConnection going_away_connection;
};
-class RouteUI : public virtual ARDOUR::SessionHandlePtr, public virtual PBD::ScopedConnectionList, public virtual Selectable, public virtual sigc::trackable
+class RouteUI : public virtual Selectable, public virtual ARDOUR::SessionHandlePtr, public virtual PBD::ScopedConnectionList, public virtual sigc::trackable
{
public:
RouteUI (ARDOUR::Session*);