# HG changeset patch # User ca # Date 870446377 -7200 # Node ID cdecb5b5d3569e2728839174078cdb4c45f68eb4 # Parent 2db2e583b3b4d8205d9c8c63788798fd76780baa set fontHeight dependent on max. image height diff -r 2db2e583b3b4 -r cdecb5b5d356 MenuEditor.st --- a/MenuEditor.st Fri Aug 01 14:22:44 1997 +0200 +++ b/MenuEditor.st Fri Aug 01 16:39:37 1997 +0200 @@ -28,9 +28,8 @@ ! SelectionInTreeView subclass:#Painter - instanceVariableNames:'imageMenuLink imageSeparator' - classVariableNames:'CopyBuffer ImageMenuLink ImageSeparator ImageItem ImageMenu - ImageMenuOpen' + instanceVariableNames:'images' + classVariableNames:'CopyBuffer Images' poolDictionaries:'' privateIn:MenuEditor ! @@ -2082,86 +2081,51 @@ !MenuEditor::Painter class methodsFor:'constants'! -imageClosed - ^ self imageMenu - - "Created: 28.7.1997 / 10:31:37 / cg" -! - imageItem - ImageItem isNil ifTrue:[ - ImageItem := Image fromFile:('ui_menuitem.xpm'). - ]. - ^ ImageItem - - " - ImageItem := nil - " - - "Created: 28.7.1997 / 09:51:00 / cg" - "Modified: 28.7.1997 / 09:51:14 / cg" + ^ self images at:#item ! imageMenu - ImageMenu isNil ifTrue:[ - ImageMenu := Image fromFile:('ui_submenu.xpm'). - ]. - ^ ImageMenu - - " - ImageMenu := nil - " - - "Created: 28.7.1997 / 10:01:21 / cg" - "Modified: 28.7.1997 / 10:29:14 / cg" + ^ self images at:#menuOpen ! imageMenuLink - ImageMenuLink isNil ifTrue:[ -"/ ImageMenuLink := Image fromFile:('xpmBitmaps/document_images/tiny_yellow_dir_link.xpm'). - ImageMenuLink := Image fromFile:('ui_submenulink.xpm'). - ]. - ^ ImageMenuLink - - " - ImageMenuLink := nil - " - - "Modified: 28.7.1997 / 10:29:18 / cg" -! - -imageMenuOpen - ImageMenuOpen isNil ifTrue:[ - ImageMenuOpen := Image fromFile:('ui_submenu_open.xpm'). - ]. - ^ ImageMenuOpen - - " - ImageMenuOpen := nil - " - - "Created: 28.7.1997 / 10:21:31 / cg" - "Modified: 28.7.1997 / 10:29:20 / cg" -! - -imageOpened - ^ self imageMenuOpen - - "Created: 28.7.1997 / 10:31:46 / cg" + ^ self images at:#menuLink + ! imageSeparator - ImageSeparator isNil ifTrue:[ -"/ ImageSeparator := Image fromFile:('xpmBitmaps/document_images/tiny_file_exec.xpm'). - ImageSeparator := Image fromFile:('ui_menusep.xpm'). + ^ self images at:#separator + +! + +images + "returns an IdentityDictionary containing a list of images and keys used + " + |icons image| + + Images notNil ifTrue:[ + ^ Images ]. - ^ ImageSeparator - - " - ImageSeparator := nil - " - - "Modified: 28.7.1997 / 09:42:07 / cg" + + Images := IdentityDictionary new. + + #( + (#item 'ui_menuitem.xpm') + (#menuClosed 'ui_submenu.xpm') + (#menuOpen 'ui_submenu_open.xpm') + (#menuLink 'ui_submenulink.xpm') + (#separator 'ui_menusep.xpm') + + ) do:[:el | + image := Image fromFile:( el last ). + Images at:(el first) put:image. + ]. + + ^ Images + + + ! ! !MenuEditor::Painter class methodsFor:'defaults'! @@ -2346,48 +2310,52 @@ item := aNode contents. item submenuChannel notNil ifTrue:[ - imageMenuLink isNil ifTrue:[ - imageMenuLink := (self class imageMenuLink) onDevice:device. - ]. - ^ imageMenuLink + ^ images at:#menuLink ]. item isSeparator ifTrue:[ - imageSeparator isNil ifTrue:[ - imageSeparator := (self class imageSeparator) onDevice:device. - ]. - ^ imageSeparator + ^ images at:#separator ]. - imageItem isNil ifTrue:[ - imageItem := (self class imageItem) onDevice:device. - ]. - ^ imageItem + ^ images at:#item ]. aNode isExpandable ifTrue:[ - imageClosed isNil ifTrue:[ - imageClosed := (self class imageMenu) onDevice:device. - ]. - ^ imageClosed + ^ images at:#menuClosed ]. - imageOpened isNil ifTrue:[ - imageOpened := (self class imageMenuOpen) onDevice:device. - ]. - ^ imageOpened - - "Modified: 28.7.1997 / 10:27:52 / cg" + ^ images at:#menuOpen ! ! !MenuEditor::Painter methodsFor:'initialization'! +fetchImageResources + "initialize heavily used device resources - to avoid rendering + images again and again later; returns maximum extent of the images used. + " + |y x t| + + t := super fetchImageResources. + y := t y. + x := t x. + + images do:[:anIcon| + (t := anIcon heightOn:self) > y ifTrue:[y := t]. + (t := anIcon widthOn:self) > x ifTrue:[x := t]. + ]. + ^ x @ y + +! + initialize super initialize. - imageOpened := nil. - imageClosed := nil. + + images := IdentityDictionary new. + + self class images associationsDo:[:el| + images at:(el key) put:(el value onDevice:device) + ]. + self multipleSelectOk:true. self model:(SelectionInTree new). - - "Modified: 28.7.1997 / 10:28:48 / cg" ! ! !MenuEditor::Painter methodsFor:'menus'!