MenuPanel.st
changeset 3133 dd8417f3373b
parent 3131 611b833f2ac9
child 3142 4f1c952048c5
--- a/MenuPanel.st	Mon Oct 30 12:19:31 2006 +0100
+++ b/MenuPanel.st	Tue Nov 07 11:10:04 2006 +0100
@@ -5407,10 +5407,15 @@
 !
 
 submenu
-    "returns my submenu or nil"
-
-    subMenu notNil ifTrue:[^ subMenu].
-  ^ self setupSubmenu
+    "returns my submenu or creates it if its defined via a selector or channel.
+     May return nil, if there is really no menu"
+
+    subMenu isNil ifTrue:[
+        self setupSubmenu
+    ].
+    ^ subMenu
+
+    "Modified: / 07-11-2006 / 11:09:49 / cg"
 !
 
 submenu:aSubMenu
@@ -5469,6 +5474,14 @@
     ].
 !
 
+submenuOrNil
+    "returns my submenu or nil if there is none or its defined via a channel or selector"
+
+    ^ subMenu
+
+    "Created: / 07-11-2006 / 11:04:47 / cg"
+!
+
 textLabel
     "returns my textLabel or nil.
      Used internally to select items via initial-character, for example."
@@ -6003,7 +6016,7 @@
 openDelayedSubmenu
     "called to open now my delayed submenu"
 
-    |subm|
+    |subMenuBeforeOpening|
 
     (self isSelected and:[menuPanel shown]) ifFalse:[^ self].
 
@@ -6013,15 +6026,17 @@
             ^ self
         ].
     ].
-    subm := self setupSubmenu.
-    subm isNil ifTrue:[^ self].
-
+    self setupSubmenu.
+    subMenu isNil ifTrue:[^ self].
+    subMenuBeforeOpening := subMenu.
     self openSubmenu.
 
-    (subm == subMenu and:[self isSelected]) ifFalse:[
+    (subMenuBeforeOpening == subMenu and:[self isSelected]) ifFalse:[
         "/ closed during building or opening the submenu
-        self hideSubmenu:subm.
-    ].
+        self hideSubmenu:subMenuBeforeOpening.
+    ].
+
+    "Modified: / 07-11-2006 / 11:07:57 / cg"
 !
 
 openSubmenu
@@ -6128,12 +6143,15 @@
     subMenu notNil ifTrue:[
         subMenu shown ifTrue:[^ self hideSubmenu]
     ] ifFalse:[
-        (subMenu := self setupSubmenu) isNil ifTrue:[
+        self setupSubmenu.
+        subMenu isNil ifTrue:[
             "/ cannot open a submenu
             ^ self
         ]
     ].
     self openSubmenu.
+
+    "Modified: / 07-11-2006 / 11:06:42 / cg"
 !
 
 visibleSubmenu
@@ -7492,9 +7510,11 @@
     self hasDelayedMenu ifTrue:[
         menuPanel openDelayed:self
     ] ifFalse:[
-        subMenu := self setupSubmenu.
+        self setupSubmenu.
         subMenu notNil ifTrue:[ self openSubmenu ].
     ].
+
+    "Modified: / 07-11-2006 / 11:08:03 / cg"
 ! !
 
 !MenuPanel::Item::Adornment methodsFor:'accessing'!
@@ -7679,7 +7699,7 @@
 !MenuPanel class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libwidg2/MenuPanel.st,v 1.435 2006-10-30 11:18:57 ca Exp $'
+    ^ '$Header: /cvs/stx/stx/libwidg2/MenuPanel.st,v 1.436 2006-11-07 10:10:04 cg Exp $'
 ! !
 
 MenuPanel initialize!