show/hide painter/gallery
authorca
Mon, 23 Jun 1997 10:19:58 +0200
changeset 173 a8468f4e83f0
parent 172 10e8e0510baa
child 174 0e87610c2768
show/hide painter/gallery
UIPainter.st
--- a/UIPainter.st	Sat Jun 21 17:06:18 1997 +0200
+++ b/UIPainter.st	Mon Jun 23 10:19:58 1997 +0200
@@ -602,21 +602,25 @@
                     #'level:' -1
                     #'adjust:' #left
                 )
-                 #(#ActionButtonSpec
-                    #'name:' 'raiseGallery'
-                    #'layout:' #(#LayoutFrame 322 0 1 0 421 0 23 0)
+                 #(#ToggleSpec
+                    #'name:' 'galleryLabel'
+                    #'layout:' #(#LayoutFrame -162 1.0 1 0 -82 1.0 23 0)
                     #'flags:' 0
                     #'label:' 'Gallery'
-                    #'initiallyInvisible:' true
-                    #'model:' #raiseGallery
+                    #'model:' #galleryShown
+                    #'isTriggerOnDown:' true
+                    #'showLamp:' true
+                    #'lampColor:' #(#Color 100.0 100.0 0.0)
                 )
-                 #(#ActionButtonSpec
-                    #'name:' 'raisePainter'
-                    #'layout:' #(#LayoutFrame 424 0 1 0 524 0 23 0)
+                 #(#ToggleSpec
+                    #'name:' 'painterLabel'
+                    #'layout:' #(#LayoutFrame -81 1.0 1 0 -1 1.0 23 0)
                     #'flags:' 0
                     #'label:' 'Painter'
-                    #'initiallyInvisible:' true
-                    #'model:' #raisePainter
+                    #'model:' #painterShown
+                    #'isTriggerOnDown:' true
+                    #'showLamp:' true
+                    #'lampColor:' #(#Color 100.0 100.0 0.0)
                 )
               )
           )
@@ -661,27 +665,6 @@
 
 doubleClick
     objectList selectGroup
-!
-
-raiseGallery
-    |top|
-
-    top := selectionPanel window.
-    top map.
-    top bePartner.
-    (builder componentAt:#raiseGallery) beInvisible.
-
-!
-
-raisePainter
-    |top|
-
-    top := self painter topView.
-    top map.
-    top bePartner.
-    (builder componentAt:#raisePainter) beInvisible.
-
-
 ! !
 
 !UIPainter methodsFor:'active help'!
@@ -742,6 +725,17 @@
   ^ self painter enableChannel
 !
 
+galleryShown
+    |holder|
+
+    (holder := builder bindingAt:#galleryShown) isNil ifTrue:[
+        builder aspectAt:#galleryShown put:(holder :=  true asValue).
+        holder addDependent:self
+    ].
+    ^ holder
+
+!
+
 menuAlignment
     |menu channel|
 
@@ -823,6 +817,17 @@
 
 !
 
+painterShown
+    |holder|
+
+    (holder := builder bindingAt:#painterShown) isNil ifTrue:[
+        builder aspectAt:#painterShown put:(holder :=  true asValue).
+        holder addDependent:self
+    ].
+    ^ holder
+
+!
+
 tabList
     "automatically generated by UIPainter ..."
 
@@ -871,8 +876,27 @@
             ].
             layoutTool update
         ].
-        self modifiedChannel value:false
-    ]
+      ^ self modifiedChannel value:false
+    ].
+
+    self galleryShown == someObject ifTrue:[
+        (self galleryShown value) ifTrue:[
+            self raiseUIView:(selectionPanel window)
+        ] ifFalse:[
+            self hideUIView:(selectionPanel window)
+        ].
+      ^ self
+    ].
+
+    self painterShown == someObject ifTrue:[
+        (self painterShown value) ifTrue:[
+            self raiseUIView:(self painter topView)
+        ] ifFalse:[
+            self hideUIView:(self painter topView)
+        ].
+      ^ self
+    ].
+
 ! !
 
 !UIPainter methodsFor:'event handling'!
@@ -942,8 +966,18 @@
 
 !UIPainter methodsFor:'private'!
 
+hideUIView:aView
+    aView beIndependent.
+    aView unmap.
+!
+
 painter
     ^ objectList painter
+!
+
+raiseUIView:aView
+    aView map.
+    aView bePartner.
 ! !
 
 !UIPainter methodsFor:'queries'!
@@ -1009,22 +1043,18 @@
 closeRequestFor:aTopView
     "handle a close request for a specific view
     "
-    |topView id|
+    |topView|
 
     topView := self window.
 
     topView == aTopView ifTrue:[
         super closeRequestFor:aTopView
     ] ifFalse:[
-        "/ aTopView beSlave.
-        aTopView beIndependent.
-
-        aTopView unmap.
-
-        aTopView = selectionPanel window ifTrue:[id := #raiseGallery]
-                                        ifFalse:[id := #raisePainter].
-
-        (builder componentAt:id) beVisible.
+        aTopView = selectionPanel window ifTrue:[
+            self galleryShown value:false
+        ] ifFalse:[
+            self painterShown value:false
+        ].
         topView raise.
     ].
 !
@@ -1433,13 +1463,13 @@
 
     top := self painter topView.
     top realized ifFalse:[
-        self raisePainter
+        self painterShown value:true
     ].
     top raise.
 
     top := selectionPanel window.
     top realized ifFalse:[
-        self raiseGallery
+        self galleryShown value:true
     ].
     top raise.
 !