re-order inheritance
authorRobin Gareus <robin@gareus.org>
Fri, 24 Feb 2017 11:53:49 +0000 (12:53 +0100)
committerRobin Gareus <robin@gareus.org>
Fri, 24 Feb 2017 15:10:14 +0000 (16:10 +0100)
LuaBridge only allows one parent class, others need explicit casts.
Allowing RoutUI to be passed as Selectable argument is handy.

gtk2_ardour/luainstance.cc
gtk2_ardour/route_ui.h

index c8a4fe9e3b09f9033d1f7e72fee18555d6d85acd..59ebd80e852913eb9b80ea977a38eb63aa875fa6 100644 (file)
@@ -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 ()
 
index d0b9d406c61f4dcf21eb7a6f9c1688920d6ceff4..6f53b7232d9f1e5cac2ad0e83ec79d06d5a23456 100644 (file)
@@ -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*);