BookmarkMenuBuilder.st
author Claus Gittinger <cg@exept.de>
Sun, 01 Feb 2015 14:17:11 +0100
changeset 15150 940d37c7d3ac
parent 14580 d4cdd1932bf0
child 15339 21d3090c5ca8
permissions -rw-r--r--
class: Tools::ChangeList fixed the following redraw bug in ModelListView (which is already fixed in SelectionInListView): if a colored item is shown with selection, the color attribute should be removed (or relaxed), to avoid drawing the label invisible. I.e. if the text color is blue or grey, and the selection bg is blue. we should draw white-on-blue, instead of blue/grey on blue. For this to work, the info whether drawing a selection must be passed down through the renderer to the item's draw routine.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
9968
07185068e8ec initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     1
"
10087
f03acff3d7cb copyright
Claus Gittinger <cg@exept.de>
parents: 9968
diff changeset
     2
 Copyright (c) 2007-2010 Jan Vrany, SWING Research Group, Czech Technical University in Prague
f03acff3d7cb copyright
Claus Gittinger <cg@exept.de>
parents: 9968
diff changeset
     3
 Copyright (c) 2009-2010 eXept Software AG
9968
07185068e8ec initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
     4
10087
f03acff3d7cb copyright
Claus Gittinger <cg@exept.de>
parents: 9968
diff changeset
     5
 Permission is hereby granted, free of charge, to any person
f03acff3d7cb copyright
Claus Gittinger <cg@exept.de>
parents: 9968
diff changeset
     6
 obtaining a copy of this software and associated documentation
f03acff3d7cb copyright
Claus Gittinger <cg@exept.de>
parents: 9968
diff changeset
     7
 files (the 'Software'), to deal in the Software without
f03acff3d7cb copyright
Claus Gittinger <cg@exept.de>
parents: 9968
diff changeset
     8
 restriction, including without limitation the rights to use,
f03acff3d7cb copyright
Claus Gittinger <cg@exept.de>
parents: 9968
diff changeset
     9
 copy, modify, merge, publish, distribute, sublicense, and/or sell
f03acff3d7cb copyright
Claus Gittinger <cg@exept.de>
parents: 9968
diff changeset
    10
 copies of the Software, and to permit persons to whom the
f03acff3d7cb copyright
Claus Gittinger <cg@exept.de>
parents: 9968
diff changeset
    11
 Software is furnished to do so, subject to the following
f03acff3d7cb copyright
Claus Gittinger <cg@exept.de>
parents: 9968
diff changeset
    12
 conditions:
f03acff3d7cb copyright
Claus Gittinger <cg@exept.de>
parents: 9968
diff changeset
    13
f03acff3d7cb copyright
Claus Gittinger <cg@exept.de>
parents: 9968
diff changeset
    14
 The above copyright notice and this permission notice shall be
f03acff3d7cb copyright
Claus Gittinger <cg@exept.de>
parents: 9968
diff changeset
    15
 included in all copies or substantial portions of the Software.
f03acff3d7cb copyright
Claus Gittinger <cg@exept.de>
parents: 9968
diff changeset
    16
f03acff3d7cb copyright
Claus Gittinger <cg@exept.de>
parents: 9968
diff changeset
    17
 THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
f03acff3d7cb copyright
Claus Gittinger <cg@exept.de>
parents: 9968
diff changeset
    18
 EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
f03acff3d7cb copyright
Claus Gittinger <cg@exept.de>
parents: 9968
diff changeset
    19
 OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
f03acff3d7cb copyright
Claus Gittinger <cg@exept.de>
parents: 9968
diff changeset
    20
 NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
f03acff3d7cb copyright
Claus Gittinger <cg@exept.de>
parents: 9968
diff changeset
    21
 HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
f03acff3d7cb copyright
Claus Gittinger <cg@exept.de>
parents: 9968
diff changeset
    22
 WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
f03acff3d7cb copyright
Claus Gittinger <cg@exept.de>
parents: 9968
diff changeset
    23
 FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
f03acff3d7cb copyright
Claus Gittinger <cg@exept.de>
parents: 9968
diff changeset
    24
 OTHER DEALINGS IN THE SOFTWARE.
9968
07185068e8ec initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    25
"
07185068e8ec initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    26
"{ Package: 'stx:libtool' }"
07185068e8ec initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    27
07185068e8ec initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    28
BookmarkVisitor subclass:#BookmarkMenuBuilder
10281
4ed3150525d8 changed:
Claus Gittinger <cg@exept.de>
parents: 10087
diff changeset
    29
	instanceVariableNames:'resources menu stack toolbar'
9968
07185068e8ec initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    30
	classVariableNames:''
07185068e8ec initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    31
	poolDictionaries:''
07185068e8ec initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    32
	category:'Interface-Bookmarks'
07185068e8ec initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    33
!
07185068e8ec initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    34
07185068e8ec initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    35
!BookmarkMenuBuilder class methodsFor:'documentation'!
07185068e8ec initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    36
07185068e8ec initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    37
copyright
07185068e8ec initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    38
"
10087
f03acff3d7cb copyright
Claus Gittinger <cg@exept.de>
parents: 9968
diff changeset
    39
 Copyright (c) 2007-2010 Jan Vrany, SWING Research Group, Czech Technical University in Prague
f03acff3d7cb copyright
Claus Gittinger <cg@exept.de>
parents: 9968
diff changeset
    40
 Copyright (c) 2009-2010 eXept Software AG
f03acff3d7cb copyright
Claus Gittinger <cg@exept.de>
parents: 9968
diff changeset
    41
f03acff3d7cb copyright
Claus Gittinger <cg@exept.de>
parents: 9968
diff changeset
    42
 Permission is hereby granted, free of charge, to any person
f03acff3d7cb copyright
Claus Gittinger <cg@exept.de>
parents: 9968
diff changeset
    43
 obtaining a copy of this software and associated documentation
f03acff3d7cb copyright
Claus Gittinger <cg@exept.de>
parents: 9968
diff changeset
    44
 files (the 'Software'), to deal in the Software without
f03acff3d7cb copyright
Claus Gittinger <cg@exept.de>
parents: 9968
diff changeset
    45
 restriction, including without limitation the rights to use,
f03acff3d7cb copyright
Claus Gittinger <cg@exept.de>
parents: 9968
diff changeset
    46
 copy, modify, merge, publish, distribute, sublicense, and/or sell
f03acff3d7cb copyright
Claus Gittinger <cg@exept.de>
parents: 9968
diff changeset
    47
 copies of the Software, and to permit persons to whom the
f03acff3d7cb copyright
Claus Gittinger <cg@exept.de>
parents: 9968
diff changeset
    48
 Software is furnished to do so, subject to the following
f03acff3d7cb copyright
Claus Gittinger <cg@exept.de>
parents: 9968
diff changeset
    49
 conditions:
9968
07185068e8ec initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    50
10087
f03acff3d7cb copyright
Claus Gittinger <cg@exept.de>
parents: 9968
diff changeset
    51
 The above copyright notice and this permission notice shall be
f03acff3d7cb copyright
Claus Gittinger <cg@exept.de>
parents: 9968
diff changeset
    52
 included in all copies or substantial portions of the Software.
f03acff3d7cb copyright
Claus Gittinger <cg@exept.de>
parents: 9968
diff changeset
    53
f03acff3d7cb copyright
Claus Gittinger <cg@exept.de>
parents: 9968
diff changeset
    54
 THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
f03acff3d7cb copyright
Claus Gittinger <cg@exept.de>
parents: 9968
diff changeset
    55
 EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
f03acff3d7cb copyright
Claus Gittinger <cg@exept.de>
parents: 9968
diff changeset
    56
 OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
f03acff3d7cb copyright
Claus Gittinger <cg@exept.de>
parents: 9968
diff changeset
    57
 NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
f03acff3d7cb copyright
Claus Gittinger <cg@exept.de>
parents: 9968
diff changeset
    58
 HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
f03acff3d7cb copyright
Claus Gittinger <cg@exept.de>
parents: 9968
diff changeset
    59
 WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
f03acff3d7cb copyright
Claus Gittinger <cg@exept.de>
parents: 9968
diff changeset
    60
 FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
f03acff3d7cb copyright
Claus Gittinger <cg@exept.de>
parents: 9968
diff changeset
    61
 OTHER DEALINGS IN THE SOFTWARE.
9968
07185068e8ec initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    62
"
07185068e8ec initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    63
! !
07185068e8ec initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    64
07185068e8ec initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    65
!BookmarkMenuBuilder class methodsFor:'instance creation'!
07185068e8ec initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    66
07185068e8ec initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    67
new
07185068e8ec initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    68
    "return an initialized instance"
07185068e8ec initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    69
07185068e8ec initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    70
    ^ self basicNew initialize.
07185068e8ec initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    71
! !
07185068e8ec initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    72
07185068e8ec initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    73
!BookmarkMenuBuilder methodsFor:'accessing'!
07185068e8ec initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    74
07185068e8ec initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    75
menu
07185068e8ec initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    76
07185068e8ec initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    77
    ^ menu
07185068e8ec initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    78
07185068e8ec initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    79
    "Created: / 23-05-2011 / 10:43:49 / Jan Vrany <jan.vrany@fit.cvut.cz>"
10281
4ed3150525d8 changed:
Claus Gittinger <cg@exept.de>
parents: 10087
diff changeset
    80
!
4ed3150525d8 changed:
Claus Gittinger <cg@exept.de>
parents: 10087
diff changeset
    81
4ed3150525d8 changed:
Claus Gittinger <cg@exept.de>
parents: 10087
diff changeset
    82
resources:something
4ed3150525d8 changed:
Claus Gittinger <cg@exept.de>
parents: 10087
diff changeset
    83
    resources := something.
9968
07185068e8ec initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    84
! !
07185068e8ec initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    85
07185068e8ec initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    86
!BookmarkMenuBuilder methodsFor:'initialization'!
07185068e8ec initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    87
07185068e8ec initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    88
initialize
07185068e8ec initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    89
07185068e8ec initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    90
    menu := Menu new.
10296
020772a7653e BookmarkMenuBuilder>>initialize: initialize resources to empty one
vrany
parents: 10281
diff changeset
    91
    stack := Stack with: menu.
020772a7653e BookmarkMenuBuilder>>initialize: initialize resources to empty one
vrany
parents: 10281
diff changeset
    92
    resources := ResourcePack new.
9968
07185068e8ec initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    93
07185068e8ec initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    94
    "/ super initialize.   -- commented since inherited method does nothing
07185068e8ec initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    95
10296
020772a7653e BookmarkMenuBuilder>>initialize: initialize resources to empty one
vrany
parents: 10281
diff changeset
    96
    "Modified: / 08-07-2011 / 13:49:53 / Jan Vrany <jan.vrany@fit.cvut.cz>"
9968
07185068e8ec initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    97
! !
07185068e8ec initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    98
07185068e8ec initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
    99
!BookmarkMenuBuilder methodsFor:'utilities'!
07185068e8ec initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   100
07185068e8ec initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   101
menuItemAddBookmark:anObject 
07185068e8ec initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   102
07185068e8ec initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   103
07185068e8ec initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   104
    ^self menuItemAddBookmark:anObject labeled:'Add Bookmark Here'.
07185068e8ec initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   105
07185068e8ec initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   106
    "Modified: / 21-06-2011 / 08:00:16 / Jan Vrany <jan.vrany@fit.cvut.cz>"
10281
4ed3150525d8 changed:
Claus Gittinger <cg@exept.de>
parents: 10087
diff changeset
   107
    "Modified: / 08-07-2011 / 11:39:31 / cg"
9968
07185068e8ec initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   108
!
07185068e8ec initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   109
07185068e8ec initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   110
menuItemAddBookmark:anObject labeled: label
14580
d4cdd1932bf0 class: BookmarkMenuBuilder
Claus Gittinger <cg@exept.de>
parents: 13435
diff changeset
   111
    ^ (MenuItem 
13435
79039118e099 class: BookmarkMenuBuilder
Claus Gittinger <cg@exept.de>
parents: 10912
diff changeset
   112
        label:(resources string:label)
79039118e099 class: BookmarkMenuBuilder
Claus Gittinger <cg@exept.de>
parents: 10912
diff changeset
   113
        itemValue:#menuAddBookmarkTo:
14580
d4cdd1932bf0 class: BookmarkMenuBuilder
Claus Gittinger <cg@exept.de>
parents: 13435
diff changeset
   114
        argument:anObject)
d4cdd1932bf0 class: BookmarkMenuBuilder
Claus Gittinger <cg@exept.de>
parents: 13435
diff changeset
   115
        translateLabel:false.
9968
07185068e8ec initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   116
07185068e8ec initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   117
    "Created: / 21-06-2011 / 07:59:56 / Jan Vrany <jan.vrany@fit.cvut.cz>"
10281
4ed3150525d8 changed:
Claus Gittinger <cg@exept.de>
parents: 10087
diff changeset
   118
    "Modified: / 08-07-2011 / 11:39:40 / cg"
9968
07185068e8ec initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   119
!
07185068e8ec initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   120
10547
1003e0421fcf category of: #menuItemFolder:
Claus Gittinger <cg@exept.de>
parents: 10296
diff changeset
   121
menuItemFolder: folder
1003e0421fcf category of: #menuItemFolder:
Claus Gittinger <cg@exept.de>
parents: 10296
diff changeset
   122
14580
d4cdd1932bf0 class: BookmarkMenuBuilder
Claus Gittinger <cg@exept.de>
parents: 13435
diff changeset
   123
    ^ (MenuItem 
d4cdd1932bf0 class: BookmarkMenuBuilder
Claus Gittinger <cg@exept.de>
parents: 13435
diff changeset
   124
        label:folder label)
d4cdd1932bf0 class: BookmarkMenuBuilder
Claus Gittinger <cg@exept.de>
parents: 13435
diff changeset
   125
        translateLabel:false.
10547
1003e0421fcf category of: #menuItemFolder:
Claus Gittinger <cg@exept.de>
parents: 10296
diff changeset
   126
1003e0421fcf category of: #menuItemFolder:
Claus Gittinger <cg@exept.de>
parents: 10296
diff changeset
   127
    "Created: / 21-06-2011 / 08:08:26 / Jan Vrany <jan.vrany@fit.cvut.cz>"
1003e0421fcf category of: #menuItemFolder:
Claus Gittinger <cg@exept.de>
parents: 10296
diff changeset
   128
!
1003e0421fcf category of: #menuItemFolder:
Claus Gittinger <cg@exept.de>
parents: 10296
diff changeset
   129
9968
07185068e8ec initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   130
menuItemGotoBookmark:anObject 
13435
79039118e099 class: BookmarkMenuBuilder
Claus Gittinger <cg@exept.de>
parents: 10912
diff changeset
   131
    |icon label|
9968
07185068e8ec initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   132
07185068e8ec initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   133
    label := anObject label.
07185068e8ec initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   134
    icon := anObject icon.
10912
Claus Gittinger <cg@exept.de>
parents: 10547
diff changeset
   135
    icon notNil ifTrue:[ label := LabelAndIcon label:label icon:icon ].
14580
d4cdd1932bf0 class: BookmarkMenuBuilder
Claus Gittinger <cg@exept.de>
parents: 13435
diff changeset
   136
    ^ (MenuItem 
d4cdd1932bf0 class: BookmarkMenuBuilder
Claus Gittinger <cg@exept.de>
parents: 13435
diff changeset
   137
        label:label
d4cdd1932bf0 class: BookmarkMenuBuilder
Claus Gittinger <cg@exept.de>
parents: 13435
diff changeset
   138
        itemValue:#switchToBookmarkEntry:
d4cdd1932bf0 class: BookmarkMenuBuilder
Claus Gittinger <cg@exept.de>
parents: 13435
diff changeset
   139
        argument:anObject)
d4cdd1932bf0 class: BookmarkMenuBuilder
Claus Gittinger <cg@exept.de>
parents: 13435
diff changeset
   140
        translateLabel:false.
9968
07185068e8ec initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   141
07185068e8ec initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   142
    "Created: / 21-06-2011 / 07:55:50 / Jan Vrany <jan.vrany@fit.cvut.cz>"
10912
Claus Gittinger <cg@exept.de>
parents: 10547
diff changeset
   143
    "Modified: / 29-11-2011 / 11:21:20 / cg"
9968
07185068e8ec initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   144
! !
07185068e8ec initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   145
07185068e8ec initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   146
!BookmarkMenuBuilder methodsFor:'visiting'!
07185068e8ec initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   147
10281
4ed3150525d8 changed:
Claus Gittinger <cg@exept.de>
parents: 10087
diff changeset
   148
buildMenuFor: anObject
4ed3150525d8 changed:
Claus Gittinger <cg@exept.de>
parents: 10087
diff changeset
   149
    ^ self
4ed3150525d8 changed:
Claus Gittinger <cg@exept.de>
parents: 10087
diff changeset
   150
        visit: anObject;
4ed3150525d8 changed:
Claus Gittinger <cg@exept.de>
parents: 10087
diff changeset
   151
        menu
4ed3150525d8 changed:
Claus Gittinger <cg@exept.de>
parents: 10087
diff changeset
   152
4ed3150525d8 changed:
Claus Gittinger <cg@exept.de>
parents: 10087
diff changeset
   153
    "Created: / 02-06-2011 / 21:52:06 / Jan Vrany <jan.vrany@fit.cvut.cz>"
4ed3150525d8 changed:
Claus Gittinger <cg@exept.de>
parents: 10087
diff changeset
   154
    "Created: / 08-07-2011 / 11:37:42 / cg"
4ed3150525d8 changed:
Claus Gittinger <cg@exept.de>
parents: 10087
diff changeset
   155
!
4ed3150525d8 changed:
Claus Gittinger <cg@exept.de>
parents: 10087
diff changeset
   156
9968
07185068e8ec initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   157
visitBookmark:anObject 
07185068e8ec initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   158
    |item|
07185068e8ec initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   159
07185068e8ec initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   160
    item := self menuItemGotoBookmark:anObject.
07185068e8ec initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   161
    stack top addItem:item
07185068e8ec initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   162
07185068e8ec initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   163
    "Created: / 23-05-2011 / 10:42:11 / Jan Vrany <jan.vrany@fit.cvut.cz>"
07185068e8ec initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   164
    "Modified: / 21-06-2011 / 07:55:58 / Jan Vrany <jan.vrany@fit.cvut.cz>"
07185068e8ec initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   165
!
07185068e8ec initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   166
07185068e8ec initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   167
visitFolder:anObject 
07185068e8ec initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   168
    |item submenu|
07185068e8ec initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   169
07185068e8ec initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   170
    anObject parent isNil 
07185068e8ec initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   171
        ifTrue:[ anObject children ? #() do:[:child | self visit:child ] ]
07185068e8ec initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   172
        ifFalse:
07185068e8ec initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   173
            [ item := self menuItemFolder: anObject.
07185068e8ec initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   174
            stack top addItem:item.
07185068e8ec initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   175
            submenu := Menu new.
07185068e8ec initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   176
            item submenu:submenu.
07185068e8ec initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   177
            stack push:submenu.
07185068e8ec initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   178
            anObject children ? #() do:[:child | self visit:child ].
07185068e8ec initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   179
            stack top hasItems ifTrue:[ stack top addSeparator ].
07185068e8ec initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   180
            item := self menuItemAddBookmark:anObject.
07185068e8ec initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   181
            stack top addItem:item.
07185068e8ec initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   182
            stack pop ].
07185068e8ec initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   183
07185068e8ec initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   184
    "Created: / 23-05-2011 / 10:38:03 / Jan Vrany <jan.vrany@fit.cvut.cz>"
07185068e8ec initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   185
    "Modified: / 21-06-2011 / 08:08:26 / Jan Vrany <jan.vrany@fit.cvut.cz>"
07185068e8ec initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   186
!
07185068e8ec initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   187
07185068e8ec initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   188
visitSeparator:anObject
07185068e8ec initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   189
07185068e8ec initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   190
    stack top addItem: MenuItem separator
07185068e8ec initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   191
07185068e8ec initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   192
    "Created: / 03-06-2011 / 13:41:07 / Jan Vrany <jan.vrany@fit.cvut.cz>"
07185068e8ec initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   193
! !
07185068e8ec initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   194
07185068e8ec initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   195
!BookmarkMenuBuilder class methodsFor:'documentation'!
07185068e8ec initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   196
07185068e8ec initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   197
version_CVS
14580
d4cdd1932bf0 class: BookmarkMenuBuilder
Claus Gittinger <cg@exept.de>
parents: 13435
diff changeset
   198
    ^ '$Header: /cvs/stx/stx/libtool/BookmarkMenuBuilder.st,v 1.8 2014-07-04 10:26:05 cg Exp $'
9968
07185068e8ec initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   199
!
07185068e8ec initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   200
07185068e8ec initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   201
version_SVN
14580
d4cdd1932bf0 class: BookmarkMenuBuilder
Claus Gittinger <cg@exept.de>
parents: 13435
diff changeset
   202
    ^ '$Id: BookmarkMenuBuilder.st,v 1.8 2014-07-04 10:26:05 cg Exp $'
9968
07185068e8ec initial checkin
Claus Gittinger <cg@exept.de>
parents:
diff changeset
   203
! !
13435
79039118e099 class: BookmarkMenuBuilder
Claus Gittinger <cg@exept.de>
parents: 10912
diff changeset
   204