NSGLView: default to hidden, add API to un/hide
authorRobin Gareus <robin@gareus.org>
Mon, 20 Mar 2017 15:31:01 +0000 (16:31 +0100)
committerRobin Gareus <robin@gareus.org>
Mon, 20 Mar 2017 16:12:08 +0000 (17:12 +0100)
libs/gtkmm2ext/gtkmm2ext/nsglview.h
libs/gtkmm2ext/nsglview.mm

index 8a175f3322fa8c31c6fed7530e8f660b5f07a571..5b579f1a472ffc8c11b2b5164bf759b22025c32f 100644 (file)
@@ -1,3 +1,21 @@
+/*
+ * Copyright (C) 2017 Robin Gareus <robin@gareus.org>
+ *
+ * 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., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
+ */
+
 #ifndef __CANVAS_NSGLVIEW_H__
 #define __CANVAS_NSGLVIEW_H__
 
@@ -11,5 +29,6 @@ namespace Gtkmm2ext
        void  nsglview_overlay (void*, GdkWindow*);
        void  nsglview_resize (void*, int x, int y, int w, int h);
        void  nsglview_queue_draw (void*, int x, int y, int w, int h);
+       void  nsglview_set_visible (void*, bool);
 }
 #endif
index a9842935e7ac0336ed6d727674d8b63d1bb7414f..9f6ae629a1952f277ff376179ee14cda74cd9722 100644 (file)
@@ -258,6 +258,7 @@ Gtkmm2ext::nsglview_create (Gtkmm2ext::CairoCanvas* canvas)
                return 0;
        }
        [gl_view setCairoCanvas:canvas];
+       [gl_view setHidden:YES];
        return gl_view;
 }
 
@@ -282,3 +283,14 @@ Gtkmm2ext::nsglview_queue_draw (void* glv, int x, int y, int w, int h)
        ArdourCanvasOpenGLView* gl_view = (ArdourCanvasOpenGLView*) glv;
        [gl_view setNeedsDisplayInRect:NSMakeRect(x, y, w, h)];
 }
+
+void
+Gtkmm2ext::nsglview_set_visible (void* glv, bool vis)
+{
+       ArdourCanvasOpenGLView* gl_view = (ArdourCanvasOpenGLView*) glv;
+       if (vis) {
+               [gl_view setHidden:NO];
+       } else {
+               [gl_view setHidden:YES];
+       }
+}