UIPainter.st
changeset 118 bc196200ea8b
parent 114 93cd25c62a68
child 121 96d6feeeb049
equal deleted inserted replaced
117:45af2b7a5eca 118:bc196200ea8b
    49 
    49 
    50 titleOfLayoutMenu
    50 titleOfLayoutMenu
    51     ^ 'Dimension'
    51     ^ 'Dimension'
    52 ! !
    52 ! !
    53 
    53 
       
    54 !UIPainter class methodsFor:'icons'!
       
    55 
       
    56 iconAlignB
       
    57     ^ Image fromFile:'b_alignB.xbm'
       
    58 
       
    59 !
       
    60 
       
    61 iconAlignCenterH
       
    62     ^ Image fromFile:'b_alignCH.xbm'
       
    63 
       
    64 !
       
    65 
       
    66 iconAlignCenterV
       
    67     ^ Image fromFile:'b_alignCV.xbm'
       
    68 
       
    69 !
       
    70 
       
    71 iconAlignL
       
    72     ^ Image fromFile:'b_alignL.xbm'
       
    73 !
       
    74 
       
    75 iconAlignLR
       
    76     ^ Image fromFile:'b_alignLR.xbm'
       
    77 
       
    78 !
       
    79 
       
    80 iconAlignR
       
    81     ^ Image fromFile:'b_alignR.xbm'
       
    82 
       
    83 !
       
    84 
       
    85 iconAlignT
       
    86     ^ Image fromFile:'b_alignT.xbm'
       
    87 
       
    88 !
       
    89 
       
    90 iconAlignTB
       
    91     ^ Image fromFile:'b_alignTB.xbm'
       
    92 
       
    93 ! !
       
    94 
    54 !UIPainter class methodsFor:'interface specs'!
    95 !UIPainter class methodsFor:'interface specs'!
    55 
    96 
    56 menuSpec
    97 menuAlignment
       
    98     ^ #(#Menu #(
       
    99                 #(#MenuItem
       
   100                         #'label:' 'align left'
       
   101                         #'value:' #alignSelectionLeft
       
   102                         #'labelImage:' #( ResourceRetriever UIPainter iconAlignL )
       
   103                  )
       
   104                 #(#MenuItem
       
   105                         #'label:' 'align right'
       
   106                         #'value:' #alignSelectionRight
       
   107                         #'labelImage:' #( ResourceRetriever UIPainter iconAlignR )
       
   108                  )
       
   109                 #(#MenuItem
       
   110                         #'label:' 'align left & right'
       
   111                         #'value:' #alignSelectionLeftAndRight
       
   112                         #'labelImage:' #( ResourceRetriever UIPainter iconAlignLR )
       
   113                  )
       
   114                 #(#MenuItem
       
   115                         #'label:' 'align top'
       
   116                         #'value:' #alignSelectionTop
       
   117                         #'labelImage:' #( ResourceRetriever UIPainter iconAlignT )
       
   118                  )
       
   119                 #(#MenuItem
       
   120                         #'label:' 'align bottom'
       
   121                         #'value:' #alignSelectionBottom
       
   122                         #'labelImage:' #( ResourceRetriever UIPainter iconAlignB )
       
   123                  )
       
   124                 #(#MenuItem
       
   125                         #'label:' 'align top & bottom'
       
   126                         #'value:' #alignSelectionTopAndBottom
       
   127                         #'labelImage:' #( ResourceRetriever UIPainter iconAlignTB )
       
   128                  )
       
   129                 #(#MenuItem
       
   130                         #'label:' 'align centered horizontal'
       
   131                         #'value:' #alignSelectionCenterHor
       
   132                         #'labelImage:' #( ResourceRetriever UIPainter iconAlignCenterH )
       
   133                  )
       
   134                 #(#MenuItem
       
   135                         #'label:' 'align centered vertical'
       
   136                         #'value:' #alignSelectionCenterVer
       
   137                         #'labelImage:' #( ResourceRetriever UIPainter iconAlignCenterV )
       
   138                  )
       
   139                 )
       
   140                #( 4 2 )
       
   141                nil
       
   142         )
       
   143 
       
   144 !
       
   145 
       
   146 menuPullDown
    57     ^ #(#Menu #(
   147     ^ #(#Menu #(
    58         #(#MenuItem
   148         #(#MenuItem
    59                 #'label:' 'file'
   149                 #'label:' 'file'
    60                 #'value:' #file
   150                 #'value:' #file
    61                 #'submenu:'
   151                 #'submenu:'
   229                                 nil
   319                                 nil
   230                           )
   320                           )
   231          )
   321          )
   232         #(#MenuItem
   322         #(#MenuItem
   233                 #'label:' 'test'
   323                 #'label:' 'test'
       
   324                 #'nameKey:' #test
   234                 #'value:' #test
   325                 #'value:' #test
   235                 #'submenu:'
   326                 #'submenu:'
   236                         #(#Menu #(
   327                         #(#Menu #(
   237                                 #(#MenuItem
   328                                 #(#MenuItem
   238                                         #'label:' '\c test mode'
   329                                         #'label:' '\c test mode'
   426                         #'collection:' 
   517                         #'collection:' 
   427                          #(
   518                          #(
   428                            #(#SequenceViewSpec
   519                            #(#SequenceViewSpec
   429                               #'name:' 'selectionInList'
   520                               #'name:' 'selectionInList'
   430                               #'layout:' #(#LayoutFrame 0 0.0 40 0.0 0 0.35 0 1.0)
   521                               #'layout:' #(#LayoutFrame 0 0.0 40 0.0 0 0.35 0 1.0)
   431                               #'enableChannel:' #canModify
   522                               #'enableChannel:' #enableChannel
   432                               #'menu:' #objectListMenu
   523                               #'menu:' #objectListMenu
   433                               #'model:' #objectList
   524                               #'model:' #objectList
   434                               #'callbacksSpec:' 
   525                               #'callbacksSpec:' 
   435                                #(#UIEventCallbackSubSpec
   526                                #(#UIEventCallbackSubSpec
   436                                   #'doubleClickSelector:' #doubleClick
   527                                   #'doubleClickSelector:' #doubleClick
   441                               #'miniScrollerVertical:' false
   532                               #'miniScrollerVertical:' false
   442                               #'isMultiSelect:' true
   533                               #'isMultiSelect:' true
   443                           )
   534                           )
   444                            #(#PanelViewSpec
   535                            #(#PanelViewSpec
   445                               #'name:' 'panelViewButtons'
   536                               #'name:' 'panelViewButtons'
   446                               #'layout:' #(#LayoutFrame 0 0.0 0 0.0 0 1.0 40 0.0)
   537                               #'layout:' #(#LayoutFrame -130 1.0 0 0.0 0 1.0 35 0.0)
   447                               #'component:' 
   538                               #'component:' 
   448                                #(#SpecCollection
   539                                #(#SpecCollection
   449                                   #'collection:' 
   540                                   #'collection:' 
   450                                    #(
   541                                    #(
   451                                      #(#HorizontalPanelViewSpec
   542                                      #(#ActionButtonSpec
   452                                         #'name:' 'hrzPanelViewAlignH'
   543                                         #'name:' 'moveLeft'
   453                                         #'component:' 
   544                                         #'label:' ''
   454                                          #(#SpecCollection
   545                                         #'translateLabel:' true
   455                                             #'collection:' 
   546                                         #'labelChannel:' #'LABELb_moveLeft.xbm'
   456                                              #(
   547                                         #'defaultable:' true
   457                                                #(#ActionButtonSpec
   548                                         #'model:' #moveSelectionLeft
   458                                                   #'name:' 'alignLeft'
   549                                         #'isTriggerOnDown:' true
   459                                                   #'label:' ''
   550                                         #'enableChannel:' #enableChannel
   460                                                   #'translateLabel:' true
   551                                         #'autoRepeat:' true
   461                                                   #'labelChannel:' #'LABELb_alignL.xbm'
   552                                         #'extent:' #(#Point 26 24)
   462                                                   #'defaultable:' true
       
   463                                                   #'model:' #alignSelectionLeft
       
   464                                                   #'hasCharacterOrientedLabel:' false
       
   465                                                   #'isTriggerOnDown:' false
       
   466                                                   #'enableChannel:' #canModify
       
   467                                                   #'autoRepeat:' false
       
   468                                                   #'extent:' #(#Point 24 24)
       
   469                                               )
       
   470                                                #(#ActionButtonSpec
       
   471                                                   #'name:' 'alignRight'
       
   472                                                   #'label:' ''
       
   473                                                   #'translateLabel:' true
       
   474                                                   #'labelChannel:' #'LABELb_alignR.xbm'
       
   475                                                   #'defaultable:' true
       
   476                                                   #'model:' #alignSelectionRight
       
   477                                                   #'hasCharacterOrientedLabel:' false
       
   478                                                   #'isTriggerOnDown:' false
       
   479                                                   #'enableChannel:' #canModify
       
   480                                                   #'autoRepeat:' false
       
   481                                                   #'extent:' #(#Point 24 24)
       
   482                                               )
       
   483                                                #(#ActionButtonSpec
       
   484                                                   #'name:' 'alignHorizontal'
       
   485                                                   #'label:' ''
       
   486                                                   #'translateLabel:' true
       
   487                                                   #'labelChannel:' #'LABELb_alignLR.xbm'
       
   488                                                   #'defaultable:' true
       
   489                                                   #'model:' #alignSelectionLeftAndRight
       
   490                                                   #'hasCharacterOrientedLabel:' false
       
   491                                                   #'isTriggerOnDown:' false
       
   492                                                   #'enableChannel:' #canModify
       
   493                                                   #'autoRepeat:' false
       
   494                                                   #'extent:' #(#Point 24 24)
       
   495                                               )
       
   496                                             )
       
   497                                         )
       
   498                                         #'level:' 0
       
   499                                         #'horizontalLayout:' #center
       
   500                                         #'verticalLayout:' #center
       
   501                                         #'horizontalSpace:' 3
       
   502                                         #'verticalSpace:' 3
       
   503                                         #'extent:' #(#Point 84 30)
       
   504                                     )
   553                                     )
   505                                      #(#HorizontalPanelViewSpec
   554                                      #(#ActionButtonSpec
   506                                         #'name:' 'hrzPanelViewAlignV'
   555                                         #'name:' 'moveRight'
   507                                         #'component:' 
   556                                         #'label:' ''
   508                                          #(#SpecCollection
   557                                         #'translateLabel:' true
   509                                             #'collection:' 
   558                                         #'labelChannel:' #'LABELb_moveRight.xbm'
   510                                              #(
   559                                         #'defaultable:' true
   511                                                #(#ActionButtonSpec
   560                                         #'model:' #moveSelectionRight
   512                                                   #'name:' 'alignBottom'
   561                                         #'isTriggerOnDown:' true
   513                                                   #'label:' ''
   562                                         #'enableChannel:' #enableChannel
   514                                                   #'translateLabel:' true
   563                                         #'autoRepeat:' true
   515                                                   #'labelChannel:' #'LABELb_alignB.xbm'
   564                                         #'extent:' #(#Point 26 24)
   516                                                   #'defaultable:' true
       
   517                                                   #'model:' #alignSelectionBottom
       
   518                                                   #'isTriggerOnDown:' false
       
   519                                                   #'enableChannel:' #canModify
       
   520                                                   #'autoRepeat:' false
       
   521                                                   #'extent:' #(#Point 24 24)
       
   522                                               )
       
   523                                                #(#ActionButtonSpec
       
   524                                                   #'name:' 'alignTop'
       
   525                                                   #'label:' ''
       
   526                                                   #'translateLabel:' true
       
   527                                                   #'labelChannel:' #'LABELb_alignT.xbm'
       
   528                                                   #'defaultable:' true
       
   529                                                   #'model:' #alignSelectionTop
       
   530                                                   #'isTriggerOnDown:' false
       
   531                                                   #'enableChannel:' #canModify
       
   532                                                   #'autoRepeat:' false
       
   533                                                   #'extent:' #(#Point 24 24)
       
   534                                               )
       
   535                                                #(#ActionButtonSpec
       
   536                                                   #'name:' 'alignVertical'
       
   537                                                   #'label:' ''
       
   538                                                   #'translateLabel:' true
       
   539                                                   #'labelChannel:' #'LABELb_alignTB.xbm'
       
   540                                                   #'defaultable:' true
       
   541                                                   #'model:' #alignSelectionTopAndBottom
       
   542                                                   #'isTriggerOnDown:' false
       
   543                                                   #'enableChannel:' #canModify
       
   544                                                   #'autoRepeat:' false
       
   545                                                   #'extent:' #(#Point 24 24)
       
   546                                               )
       
   547                                             )
       
   548                                         )
       
   549                                         #'level:' 0
       
   550                                         #'horizontalLayout:' #center
       
   551                                         #'verticalLayout:' #center
       
   552                                         #'horizontalSpace:' 3
       
   553                                         #'verticalSpace:' 3
       
   554                                         #'extent:' #(#Point 84 30)
       
   555                                     )
   565                                     )
   556                                      #(#HorizontalPanelViewSpec
   566                                      #(#ActionButtonSpec
   557                                         #'name:' 'hrzPanelViewCenter'
   567                                         #'name:' 'moveUp'
   558                                         #'component:' 
   568                                         #'label:' ''
   559                                          #(#SpecCollection
   569                                         #'translateLabel:' true
   560                                             #'collection:' 
   570                                         #'labelChannel:' #'LABELb_moveUp.xbm'
   561                                              #(
   571                                         #'defaultable:' true
   562                                                #(#ActionButtonSpec
   572                                         #'model:' #moveSelectionUp
   563                                                   #'name:' 'centerHorizontal'
   573                                         #'isTriggerOnDown:' true
   564                                                   #'label:' ''
   574                                         #'enableChannel:' #enableChannel
   565                                                   #'translateLabel:' true
   575                                         #'autoRepeat:' true
   566                                                   #'labelChannel:' #'LABELb_alignCH.xbm'
   576                                         #'extent:' #(#Point 26 24)
   567                                                   #'defaultable:' true
       
   568                                                   #'model:' #alignSelectionCenterHor
       
   569                                                   #'isTriggerOnDown:' false
       
   570                                                   #'enableChannel:' #canModify
       
   571                                                   #'autoRepeat:' false
       
   572                                                   #'extent:' #(#Point 25 24)
       
   573                                               )
       
   574                                                #(#ActionButtonSpec
       
   575                                                   #'name:' 'centerVertical'
       
   576                                                   #'label:' ''
       
   577                                                   #'translateLabel:' true
       
   578                                                   #'labelChannel:' #'LABELb_alignCV.xbm'
       
   579                                                   #'defaultable:' true
       
   580                                                   #'model:' #alignSelectionCenterVer
       
   581                                                   #'isTriggerOnDown:' false
       
   582                                                   #'enableChannel:' #canModify
       
   583                                                   #'autoRepeat:' false
       
   584                                                   #'extent:' #(#Point 25 24)
       
   585                                               )
       
   586                                             )
       
   587                                         )
       
   588                                         #'level:' 0
       
   589                                         #'horizontalLayout:' #center
       
   590                                         #'verticalLayout:' #center
       
   591                                         #'horizontalSpace:' 3
       
   592                                         #'verticalSpace:' 3
       
   593                                         #'extent:' #(#Point 59 30)
       
   594                                     )
   577                                     )
   595                                      #(#HorizontalPanelViewSpec
   578                                      #(#ActionButtonSpec
   596                                         #'name:' 'hrzPanelViewMove'
   579                                         #'name:' 'moveDown'
   597                                         #'component:' 
   580                                         #'label:' ''
   598                                          #(#SpecCollection
   581                                         #'translateLabel:' true
   599                                             #'collection:' 
   582                                         #'labelChannel:' #'LABELb_moveDown.xbm'
   600                                              #(
   583                                         #'defaultable:' true
   601                                                #(#ActionButtonSpec
   584                                         #'model:' #moveSelectionDown
   602                                                   #'name:' 'moveLeft'
   585                                         #'isTriggerOnDown:' true
   603                                                   #'label:' ''
   586                                         #'enableChannel:' #enableChannel
   604                                                   #'translateLabel:' true
   587                                         #'autoRepeat:' true
   605                                                   #'labelChannel:' #'LABELb_moveLeft.xbm'
   588                                         #'extent:' #(#Point 26 24)
   606                                                   #'defaultable:' true
       
   607                                                   #'model:' #moveSelectionLeft
       
   608                                                   #'isTriggerOnDown:' true
       
   609                                                   #'enableChannel:' #canModify
       
   610                                                   #'autoRepeat:' true
       
   611                                                   #'extent:' #(#Point 26 24)
       
   612                                               )
       
   613                                                #(#ActionButtonSpec
       
   614                                                   #'name:' 'moveRight'
       
   615                                                   #'label:' ''
       
   616                                                   #'translateLabel:' true
       
   617                                                   #'labelChannel:' #'LABELb_moveRight.xbm'
       
   618                                                   #'defaultable:' true
       
   619                                                   #'model:' #moveSelectionRight
       
   620                                                   #'isTriggerOnDown:' true
       
   621                                                   #'enableChannel:' #canModify
       
   622                                                   #'autoRepeat:' true
       
   623                                                   #'extent:' #(#Point 26 24)
       
   624                                               )
       
   625                                                #(#ActionButtonSpec
       
   626                                                   #'name:' 'moveUp'
       
   627                                                   #'label:' ''
       
   628                                                   #'translateLabel:' true
       
   629                                                   #'labelChannel:' #'LABELb_moveUp.xbm'
       
   630                                                   #'defaultable:' true
       
   631                                                   #'model:' #moveSelectionUp
       
   632                                                   #'isTriggerOnDown:' true
       
   633                                                   #'enableChannel:' #canModify
       
   634                                                   #'autoRepeat:' true
       
   635                                                   #'extent:' #(#Point 26 24)
       
   636                                               )
       
   637                                                #(#ActionButtonSpec
       
   638                                                   #'name:' 'moveDown'
       
   639                                                   #'label:' ''
       
   640                                                   #'translateLabel:' true
       
   641                                                   #'labelChannel:' #'LABELb_moveDown.xbm'
       
   642                                                   #'defaultable:' true
       
   643                                                   #'model:' #moveSelectionDown
       
   644                                                   #'isTriggerOnDown:' true
       
   645                                                   #'enableChannel:' #canModify
       
   646                                                   #'autoRepeat:' true
       
   647                                                   #'extent:' #(#Point 26 24)
       
   648                                               )
       
   649                                             )
       
   650                                         )
       
   651                                         #'level:' 0
       
   652                                         #'horizontalLayout:' #center
       
   653                                         #'verticalLayout:' #center
       
   654                                         #'horizontalSpace:' 3
       
   655                                         #'verticalSpace:' 3
       
   656                                         #'extent:' #(#Point 119 30)
       
   657                                     )
   589                                     )
   658                                   )
   590                                   )
   659                               )
   591                               )
   660                               #'level:' 1
   592                               #'level:' 1
   661                               #'horizontalLayout:' #fitSpace
   593                               #'horizontalLayout:' #fitSpace
   671                               #'tabWidget:' #Window
   603                               #'tabWidget:' #Window
   672                               #'direction:' #top
   604                               #'direction:' #top
   673                               #'useIndex:' false
   605                               #'useIndex:' false
   674                               #'fitLastRow:' true
   606                               #'fitLastRow:' true
   675                               #'moveSelectedRow:' true
   607                               #'moveSelectedRow:' true
   676                               #'enableChannel:' #canModify
   608                               #'enableChannel:' #enableChannel
   677                               #'level:' 0
   609                               #'level:' 0
   678                               #'canvas:' #noteBookView
   610                               #'canvas:' #noteBookView
   679                           )
   611                           )
   680                            #(#HorizontalPanelViewSpec
   612                            #(#HorizontalPanelViewSpec
   681                               #'name:' 'hrzPanelViewOk'
   613                               #'name:' 'hrzPanelViewOk'
   708                               #'horizontalLayout:' #fitSpace
   640                               #'horizontalLayout:' #fitSpace
   709                               #'verticalLayout:' #fitSpace
   641                               #'verticalLayout:' #fitSpace
   710                               #'horizontalSpace:' 3
   642                               #'horizontalSpace:' 3
   711                               #'verticalSpace:' 3
   643                               #'verticalSpace:' 3
   712                           )
   644                           )
       
   645                            #(#MenuPanelSpec
       
   646                               #'name:' 'menuPanel1'
       
   647                               #'layout:' #(#LayoutFrame 0 0.0 0 0.0 -226 1.0 25 0)
       
   648                               #'menu:' #menuAlignment
       
   649                               #'showSeparatingLines:' true
       
   650                               #'verticalLayout:' false
       
   651                               #'fitFirstPanel:' true
       
   652                           )
   713                         )
   653                         )
   714                     )
   654                     )
   715                 )
   655                 )
   716                  #(#MenuPanelSpec
   656                  #(#MenuPanelSpec
   717                     #'name:' 'menuBar1'
   657                     #'name:' 'menuBar1'
   718                     #'layout:' #(#LayoutFrame 0 0.0 0 0.0 0 1.0 24 0)
   658                     #'layout:' #(#LayoutFrame 0 0.0 0 0.0 0 1.0 24 0)
   719                     #'menu:' #pullDownMenu
   659                     #'menu:' #menuPullDown
       
   660                     #'showSeparatingLines:' false
       
   661                     #'verticalLayout:' false
       
   662                     #'fitFirstPanel:' true
   720                 )
   663                 )
   721               )
   664               )
   722           )
   665           )
   723       )
   666       )
   724 ! !
   667 ! !
   754     self modifiedChannel value:false.
   697     self modifiedChannel value:false.
   755 ! !
   698 ! !
   756 
   699 
   757 !UIPainter methodsFor:'aspects'!
   700 !UIPainter methodsFor:'aspects'!
   758 
   701 
   759 canModify
       
   760     "automatically generated by UIPainter ..."
       
   761 
       
   762     |holder|
       
   763 
       
   764     (holder := builder bindingAt:#canModify) isNil ifTrue:[
       
   765         holder := AspectAdaptor new subject:(self painter); forAspect:#canModify.
       
   766         builder aspectAt:#canModify put:holder.
       
   767     ].
       
   768     ^ holder
       
   769 
       
   770 
       
   771 
       
   772 !
       
   773 
       
   774 doubleClick
   702 doubleClick
   775     objectList selectGroup
   703     objectList selectGroup
       
   704 !
       
   705 
       
   706 enableChannel
       
   707     "true if modifications are allowed otherwise running test
       
   708     "
       
   709   ^ self painter enableChannel
       
   710 !
       
   711 
       
   712 menuAlignment
       
   713     |menu channel|
       
   714 
       
   715     channel := self enableChannel.
       
   716 
       
   717     menu := Menu new.
       
   718     menu fromLiteralArrayEncoding:(self class menuAlignment).
       
   719     menu receiver:self.
       
   720     menu menuItems do:[:anItem| anItem enabled:channel].
       
   721   ^ menu
       
   722 !
       
   723 
       
   724 menuPullDown
       
   725     |menu channel|
       
   726 
       
   727     channel := self enableChannel.
       
   728 
       
   729     menu := Menu new.
       
   730     menu fromLiteralArrayEncoding:(self class menuPullDown).
       
   731     menu receiver:self.
       
   732 
       
   733     menu menuItems do:[:anItem| 
       
   734         anItem nameKey ~~ #test ifTrue:[anItem enabled:channel]
       
   735     ].
       
   736   ^ menu
   776 !
   737 !
   777 
   738 
   778 modifiedChannel
   739 modifiedChannel
   779 
   740 
   780     |holder|
   741     |holder|
   816     "
   777     "
   817     ^ [ (self painter menu) startUp. nil ].
   778     ^ [ (self painter menu) startUp. nil ].
   818 
   779 
   819 
   780 
   820 
   781 
   821 !
       
   822 
       
   823 pullDownMenu
       
   824     |menu painter|
       
   825 
       
   826     menu := Menu new.
       
   827     menu fromLiteralArrayEncoding:(self class menuSpec).
       
   828     menu receiver:self.
       
   829   ^ menu
       
   830 !
   782 !
   831 
   783 
   832 tabList
   784 tabList
   833     "automatically generated by UIPainter ..."
   785     "automatically generated by UIPainter ..."
   834 
   786 
   951 
   903 
   952 !UIPainter methodsFor:'private'!
   904 !UIPainter methodsFor:'private'!
   953 
   905 
   954 painter
   906 painter
   955     ^ objectList painter
   907     ^ objectList painter
   956 !
       
   957 
       
   958 workView
       
   959     ^ self painter
       
   960 ! !
   908 ! !
   961 
   909 
   962 !UIPainter methodsFor:'selection'!
   910 !UIPainter methodsFor:'selection'!
   963 
   911 
   964 tabSelection
   912 tabSelection