UISelectionPanel.st
author Claus Gittinger <cg@exept.de>
Tue, 14 May 2019 09:46:21 +0200
changeset 3663 9d49ecf8661a
parent 3579 a2dc71824029
permissions -rw-r--r--
#UI_ENHANCEMENT by cg
class: TabListEditor class
changed:
#canvasSpec
#menu
#windowSpec
     1 "{ Encoding: utf8 }"
     2 
     3 "
     4  COPYRIGHT (c) 1997 by Claus Gittinger / eXept Software AG
     5               All Rights Reserved
     6 
     7  This software is furnished under a license and may be used
     8  only in accordance with the terms of that license and with the
     9  inclusion of the above copyright notice.   This software may not
    10  be provided or otherwise made available to, or used by, any
    11  other person.  No title to or ownership of the software is
    12  hereby transferred.
    13 "
    14 "{ Package: 'stx:libtool2' }"
    15 
    16 "{ NameSpace: Smalltalk }"
    17 
    18 ApplicationModel subclass:#UISelectionPanel
    19 	instanceVariableNames:'gallery userClass userSpecs userLabels majorSelection
    20 		clipBoardSpec'
    21 	classVariableNames:'UserClass UserSpecs UserLabels'
    22 	poolDictionaries:''
    23 	category:'Interface-UIPainter'
    24 !
    25 
    26 Object subclass:#UserDefinedGallery
    27 	instanceVariableNames:''
    28 	classVariableNames:'LabelList SelectorList HolderList NextUniqueNumber'
    29 	poolDictionaries:''
    30 	privateIn:UISelectionPanel
    31 !
    32 
    33 !UISelectionPanel class methodsFor:'documentation'!
    34 
    35 copyright
    36 "
    37  COPYRIGHT (c) 1997 by Claus Gittinger / eXept Software AG
    38               All Rights Reserved
    39 
    40  This software is furnished under a license and may be used
    41  only in accordance with the terms of that license and with the
    42  inclusion of the above copyright notice.   This software may not
    43  be provided or otherwise made available to, or used by, any
    44  other person.  No title to or ownership of the software is
    45  hereby transferred.
    46 "
    47 
    48 
    49 !
    50 
    51 documentation
    52 "
    53     implements a selection panel, keeping widgets which could be placed
    54     into the UIPainter by drag & drop.
    55 
    56     [start with:]
    57         UISelectionPanel open
    58 
    59     [author:]
    60         Claus Gittinger
    61         Claus Atzkern
    62 
    63     [see also:]
    64         TabView
    65         NoteBookView
    66         UIGalleryView
    67         UIPainter
    68 
    69 "
    70 
    71 ! !
    72 
    73 !UISelectionPanel class methodsFor:'initialization'!
    74 
    75 initialize
    76     UserClass  := UISelectionPanel::UserDefinedGallery.
    77     UserSpecs  := #listOfSelectors.
    78     UserLabels := #listOfLabels.
    79 
    80     "Modified: / 8.12.1997 / 18:53:06 / cg"
    81 ! !
    82 
    83 !UISelectionPanel class methodsFor:'accessing'!
    84 
    85 userClass
    86     "return the class which provides the user defined gallery specs."
    87 
    88     ^ UserClass
    89 
    90     "Created: / 5.12.1997 / 15:12:50 / cg"
    91 !
    92 
    93 userClass:aClass specSelector:aSpecAccessSelector labelSelector:aLabelListAccessSelector
    94     "change the class which provides the user defined gallery specs."
    95 
    96     UserClass := aClass.
    97     UserSpecs := aSpecAccessSelector.
    98     UserLabels := aLabelListAccessSelector.
    99 
   100     "
   101      UISelectionPanel 
   102         userClass:UISelectionPanel::VariableUserDefinedGallery
   103         specSelector:#listOfSelectors
   104         labelSelector:#listOfLabels
   105     "
   106 
   107     "Modified: / 5.12.1997 / 13:54:47 / cg"
   108     "Created: / 5.12.1997 / 13:56:10 / cg"
   109 ! !
   110 
   111 !UISelectionPanel class methodsFor:'classAccess'!
   112 
   113 galleryClass
   114 
   115     ^ UserDefinedGallery
   116 ! !
   117 
   118 !UISelectionPanel class methodsFor:'image specs'!
   119 
   120 sketchImageIcon
   121     <resource: #programImage>
   122 
   123     ^ self sketchImageIcon2
   124 
   125     "Modified: / 28-07-2018 / 09:48:18 / Claus Gittinger"
   126 !
   127 
   128 sketchImageIcon1
   129     "This resource specification was automatically generated
   130      by the ImageEditor of ST/X."
   131 
   132     "Do not manually edit this!! If it is corrupted,
   133      the ImageEditor may not be able to read the specification."
   134 
   135     "
   136      self sketchImageIcon1 inspect
   137      ImageEditor openOnClass:self andSelector:#sketchImageIcon1
   138      Icon flushCachedIcons
   139     "
   140 
   141     <resource: #image>
   142 
   143     ^Icon
   144         constantNamed:'UISelectionPanel sketchImageIcon1'
   145         ifAbsentPut:[(Depth8Image new) width:62; height:48; bits:(ByteArray fromPackedString:'
   146 &RH"H"H"H"H"H"H"H"H"H"H"H"H"H"H"H"H"H"H"H"H"H"H"H"H"H"H"H"H"H"H"H"H"H"H"H"H"H"H"H)$"@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
   147 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@H"H@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
   148 @@@@@@@"H @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@BH"@@@@@@@@@@@@@@@@@@@@@@@@@@@@
   149 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@H"H@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
   150 @@@@@@@@@@@@@@@"H @@@@@@(+Z6O*6-D1LSX6LSD1LSB*6-,[F1,[D>W%9^W&&"(*H[S4=OED*D!!H>O#5)Z]GQ4$9L@@@@@@BH"@@@@@@@>G(Z[&51;\%]W
   151 U5]2\%L-WH.K"8.[_W5=[V4^G& O)*Z;.;.]''Y6R"H"HMH6M#X59V @@@@@@H"H@@@@@@A9=&512U40HJR$)JP!!L@0L2 XD9NS$-KX.K_W5=-KRVC:YH.;,$
   152 ''Y6R"H"HMCP4#Q%9@@@@@@@"H @@@@@@G)-\U:PH+:(QDQD]+:<)S@LCL(FANS$-WH.K&75=-KQ(C:Z&.;.]''YJR"H!!EMCRMFW$@@@@@@BH"@@@@@@ANWG.$
   153 +:)6YP0LQ7Z_GZ<)FD0C@3JA XD9WE2K&75=!!+RVC:YH.2R]''YJH"DT4MCPY^P@@@@@@H"H@@@@@@DI;U:<QYP@@@@@@@K!!,DQ6/JT0C@0L2 XESWGIW\''-\
   154 &;POC:YH.2R]$("HQSP4MA%9@@@@@@@"H @@@@@@&3Y *+ @@@@@@@@@@F),DQ4)JQ C@0L2 XDCSE]W\''-\_Q8OC4!!HII6]$(!!EMCP4#W$@@@@@@BH"@@@@
   155 @@A\U6B_@@@@@@@@@@@@LGY,GX()FA!!L@0L2 T1L\U]W^7-\G <O)$!!HC0>U^H 4MCRM^P@@@@@@H"H@@@@@@E23+6(@@@@@@@@@@@@@Z&0QGZ<)FD1L@0NA
   156 SD1LU5]2^9.4G >&R@<B@ >U$#P4MH59@@@@@@@"H @@@@@@WKN/.@@@@@@@@@@@@@AG])(]""$)FD0C@0L=@0M1U5]\_[P^C0=HR@HBC4"HMCP4#W$@@@@@
   157 @BH"@@@@@@A\,:>8@@@@@@@@@@@@@F)6&!!6JJR$XSD0C@0M2\%1\WI-=!!!!9(C:YH.59/$(!!EMCRM^P@@@@@@H"H@@@@@@E1WE''X@@@@@@@@@@@@@HV0QGX()
   158 JQ XS@LCOWI2WE2K&75=G!!8OC4";[96R"DT4MH59@@@@@@@"H @@@@@@&5] *&T@@@@@@@@@@D]6[AD]+2$)FD1LS@LC WI\WH.[_W4^G <ORD";''YJH"CP4
   159 #W$@@@@@@BH"@@@@@@B[^;N/''3@@@@@@@@@L]&0QGX()JQ XFD1L@0NA\%M\"9-=_Q8^C0=HRBR]''X"HMCPY^P@@@@@@H"H@@@@@@D9\U42*D[ 0@@@0Z''Y,
   160 DQ6J+2$)FA!!LS@LC@8E2WE1\&76[&9,^C:YH.6>]"H 4MA%9@@@@@@@"H @@@@@@G)-\U0"/DY=,[F1,DQD]"*<)JR$XSD1L@0L=\''ISWH.[_U1\WDHORD";
   161 [96H"CRMFW$@@@@@@BH"@@@@@@@^_Y-;U42/+14]GQ4]+:<)JR$XFD1LS@LC@352\%1\"9-=&9.[G >&RE:]''X"HMH4Y^P@@@@@@H"H@@@@@@@>4_U1;U:QL
   162 JR&/+2$)JR$XSD1LS@LC@0L=\''I2WE2K&76FG!!8OC4";W)6R"H 4#Q%9@@@@@@@"H @@@@@@C;R4_X-\\%\CSD1LSD1LSD1LS@LC@0LCOWI2\%1\"8.[_Q8^
   163 G >&RK-/''YJHQSPYFW$@@@@@@BH"@@@@@@B&Y;RF_Y-\WGJAOPLC@0LC@0LC@0LCOS52\''I\WE2K&75=G!!8OC:YHW&>]$(!!E#Q$Y^P@@@@@@H"H@J"(*@D O
   164 Y;Q-_Y.KWE12 XFAOS4COPL=OXFA\''I2WE1\"9-=_R0^G <ORD!!^''Y6R"CRMFQ%9@B(*J @"H @*J"(@RJXOY;R4_Y.K"51\WGI2\''I2\(FA\''I2\%1\WH.[
   165 &75=G!!8OC:YH.6>]''X"HMH4Y^W$@J"(*@BH"@B(*J"Z;)*XO%+Q-_W6["51\WE1S\''I2\''I2\%M\WE2K&9-=_Q8^G <O)$!!^[96R"DVM#Q%9^RX*J"(@H"H@
   166 J"(*I)DG&JF:.+*:(P8(NEH_R5YI]WI\WE1\WE1\"9.[_W4,X''0E#DMT-R<#SZV%)XAMH7N\I"(*J @"H @*J"(*BU%>A XFA''9PTEAPVSLR*Z&)(Q\<U&YA
   167 "9.[Z7^L ;^''):2,+C,1LSD1%IRT%CE:^''(*J"(*@BH"@A(ZF"(IQDA@(:N#(:N#(0XFA XFA XFTE@R*Y"QW[U.%1TUV8TA@PDA@PFP''):^''):^*J"(*B(Z
   168 F!!(@H"H@F!!(ZJ*T1%IRTB0-@PDA@PDB#(:N#(:N#A XFA''9PVU&,DB-!!XVF.+*:.J:B @PDA@PDA@YB^J!!(ZF @"H @ZF!!(*O1B(*A0\%IRT%IRT%IPKB4A@
   169 PDA@PJN#(:N#Q@YYO1T+CP5UQ&E!!XVE!!XZ:.+*8+(J@*F!!(Z@BH"@A(ZF"*''''):^''):^''*"(*J"(GA2T%IRT%IRT%@,KPDA@PDB#QC<UJ;B9CP4MCP4MCUUF
   170 XVE!!XR(ZF!!(@H"H@F!!(ZF)\A(@DA@PDA@PFP''):^''):^*J"(*J \GIRT%IRT%IRTB4B2V2^G!!5EQTUF0,K$MCP4MF!!(ZF @"H @ZF!!(ZEZ9!!XVF.+*:.J:B 
   171 @PDA@PDA@YB^''):^''):(*J"(*A0\%IP1N",%IPPD!!8^G!!8^GTUDZF!!(Z@BH"@A(ZF!!)?I04MCP5UQ&E!!XVE!!XZ:.+*8+(J@A@PDA@PDA$I:^''):^''*"(%CTD
   172 K"T%IRT%IRT%AA(ZF!!(@H"H@F!!(ZF%>0TUEQ,KB9CP4MCP4MCUUFXVE!!XVE!!+*:.+". (@DA@PDA@PFP''",%VE!!XVE 7M28.F!!(ZF @"H @ZF!!(ZMX\DAH^G
   173 !!8^G!!5EQTUF0,K$MCP4MCP4MUTY!!XVE!!XVF.+*:.J:B @TX  "@ HB@ HB@ZF!!(Z@BH"I*.+*1)0IR8%IRT%IRT%IPPD!!8^G!!8^GTUEQT[B0.P4MCP4MCP5U
   174 Q&E!!XVE!!++BI"X&I"X&IYA*+*:,&H"H**:.+F"\7HE!!XVE!!XM3\.K"T%IRT%IRT%A@RG!!8^G!!8]QTUEQ,KB9CP4MCP4MCRBN#(:N"X&IF*.+*2("H"*+*:.+
   175 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@B+*:.+J"H"J*.+*:.+F!!(ZF!!(ZF!!(ZF!!(ZF!!(ZF!!(ZF!!(ZF!!(ZF!!(Z
   176 F!!(ZF!!(ZF!!(ZF!!(ZF!!(ZF!!(ZF!!(Z*:.+*:,*H"H**:.+*:.+*:.+*:.+*:.+*:.+*:.+*:.+*:.+*:.+*:.+*:.+*:.+*:.+*:.+*:.+*:.+*:.+*:.+*2("
   177 H"*+*:.+*:.+*:.+*:.+*:.+*:.+*:.+*:.+*:.+*:.+*:.+*:.+*:.+*:.+*:.+*:.+*:.+*:.+*:.+J"H"@B(*J"(*J"(*J"(*J"(*J"(*J"(*J"(*J"(*
   178 J"(*J"(*J"(*J"(*J"(*J"(*J"(*J"(*J"(*J"(*J"(@H)$"H"H"H"H"H"H"H"H"H"H"H"H"H"H"H"H"H"H"H"H"H"H"H"H"H"H"H"H"H"H"H"H"H"H"H"H"
   179 H"H"H"JY') ; colorMapFromArray:#[255 255 255 160 208 95 96 160 224 143 207 255 127 176 63 143 192 207 208 240 128 208 239 176 159 207 255 223 240 160 95 175 223 192 224 111 239 240 255 143 192 64 223 240 176 95 160 224 176 223 111 176 223 255 224 255 144 96 175 223 48 143 208 176 223 127 160 207 240 208 239 191 144 208 255 48 127 208 240 240 240 63 144 208 176 224 111 175 223 255 96 175 224 191 224 207 96 175 47 207 239 255 191 207 208 192 224 160 79 144 224 112 176 48 255 240 255 143 192 80 208 240 176 159 208 255 240 240 255 159 207 95 111 175 224 127 191 255 111 176 48 191 224 160 240 255 255 191 224 127 128 207 255 223 255 144 48 128 223 159 207 96 143 191 240 111 175 48 207 239 191 127 192 255 191 223 127 191 224 128 192 224 207 143 192 255 80 159 223 207 239 143 192 239 127 128 192 224 112 176 224 160 207 176 207 239 128 63 128 223 144 192 80 223 240 255 80 159 224 159 208 223 48 143 207 176 223 208 144 207 255 207 239 160 111 176 224 63 143 208 223 240 143 128 191 63 192 239 191 127 192 240 175 208 175 144 192 64 175 223 208 143 192 240 111 175 47 223 240 144 47 127 207 175 223 111 127 191 240 191 224 176 79 159 223 160 208 96 159 207 240 144 207 80 112 176 223 111 175 223 95 160 47 224 240 255 159 207 223 95 160 240 95 175 224 64 159 208 208 239 255 127 191 224 191 224 255 96 176 240 176 223 143 79 144 223 144 207 95 143 207 240 128 192 240 191 223 175 32 127 207 144 207 224 192 224 255 143 192 208 80 144 223 47 127 208 192 224 127 128 191 240 127 191 208 111 176 240 208 240 143 175 208 111 208 239 160 128 192 255 96 160 47 160 208 175 48 128 207 175 208 96 111 175 240 127 191 63 63 143 223 95 160 31 160 223 255 112 191 240 144 207 191 48 128 208 80 160 31 47 128 207 175 208 95 207 239 176 64 143 223 32 112 191 191 224 111 95 159 224 95 175 240 191 223 128 223 240 175 208 223 224 176 224 255 112 176 240 176 208 175 64 144 223 175 223 96 191 223 255 159 208 95 224 240 175 64 144 208 207 239 127 144 207 240 208 239 144 80 160 224 192 224 143 176 223 96 224 255 160 175 208 255 239 239 240 192 224 128 95 160 223 159 207 80 160 208 255 128 191 64 80 160 223 192 239 128 144 192 240 96 175 240 176 223 175 79 159 208 176 223 144 223 239 255 128 192 64 224 255 175 79 159 224]; mask:((ImageMask new) width:62; height:48; bits:(ByteArray fromPackedString:'
   180 ??????????3??????????O?????????<??????????3??????????O?????????<??????????3??????????O?????????<??????????3??????????O??
   181 ???????<??????????3??????????O?????????<??????????3??????????O?????????<??????????3??????????O?????????<??????????3?????
   182 ?????O?????????<??????????3??????????O?????????<??????????3??????????O?????????<??????????3??????????O?????????<????????
   183 ??3??????????O?????????<??????????3??????????O?????????<??????????3??????????O?????????<??????????3??????????O?????????<
   184 ??????????3??????????O?????????<') ; yourself); yourself]
   185 !
   186 
   187 sketchImageIcon2
   188     <resource: #image>
   189     "This resource specification was automatically generated
   190      by the ImageEditor of ST/X."
   191     "Do not manually edit this!! If it is corrupted,
   192      the ImageEditor may not be able to read the specification."
   193     "
   194      self sketchImageIcon2 inspect
   195      ImageEditor openOnClass:self andSelector:#sketchImageIcon2
   196      Icon flushCachedIcons"
   197     
   198     ^ Icon constantNamed:'UISelectionPanel class sketchImageIcon2'
   199         ifAbsentPut:[
   200             (Depth8Image new)
   201                 width:96;
   202                 height:78;
   203                 photometric:(#palette);
   204                 bitsPerSample:(#[ 8 ]);
   205                 samplesPerPixel:(1);
   206                 bits:(ByteArray 
   207                             fromPackedString:'
   208 PDA@PDA@PDA@PDA@PDA@PDA@PDA@PDA@PDA@PDA@PDA@PDA@PDA@PDA@PDA@PDA@PDA@PDA@PDA@PDA@PDA@PDA@PDA@PDA@PDA@PDA@PDA@PDA@PDA@PDA@
   209 PDA@PDA@PDA@PDA@PDA@PDA@PDA@PDA@PDA@PDA@PDA@PDA@PDA@PDA@PDA@PDA@PDA@PDA@PDA@PDA@PDA@PDA@PDA@PDA@PDA@PDA@PDA@PDA@PDA@PDA@
   210 PDA@PDA@PDA@PDA@PC49A9"X&I"X&I"X&I"X&I"X&I"X&I"X&I"X&I"X&I"X&I"X&I"X&I"X&I"X&I"X&I"X&I"X&I"X&I"X&I"X&I"X&I"X&I"X&I"X&I"X
   211 &I"X&I"X&I"X&I"X&I"XA3%@PC%0I2\''I2\''I2\''I2\''I2\''I2\''I2\''I2\''I2\''I2\''I2\''I2\''I2\''I2\''I2\''I2\''I2\''I2\''I2\''I2\''I2\''I2\''I2\''
   212 I2\''I2\''I2\''I2\''I2\''I2\''I2\''HPI@P@\=I2\''I2\''I2\''I2\''I2\''I2\''I2\''I2\''I2\''I2\''I2\''I2\''I2\''I2\''I2\''I2\''I2\''I2\''I2\''I2\''I2\''
   213 I2\''I2\''I2\''I2\''I2\''I2\''\GA0\G@?O3<?NPA@P@\=I2\''I2\''I2\''I2\''I2\''I2\''I2\''I2\''I2\''I2\''I2\''I2\''I2\''I2\''I2\''I2\''I2\''I2\''I2\''
   214 I2\''I2\''I2\''I2\''I2\''I2\''I2\''I2]0\GA0O3<?O3<=NVM@P@\=I2\''I2\''I2\''I2\''I2\''I2\''I2\''I2\''I2\''I2\''I2\''I2\''I2\''I2\''I2\''I2\''I2\''
   215 I2\''I2\''I2\''I2\''I2\''I2\''I2\''I2\''I2\''\GA0\G@?O3<?OS4=NVM@P@\=I2\''I2\''I2\''I2\''I2\''I2\''I2\''I2\''I2\''I2\''I2\''I2\''I2\''I2\''I2\''
   216 I2\''I2\''I2\''I2\''I2\''I2\''I2\''I2\''I2\''I2\''I2]0\GA0O3<?O3<=OS4=NVM@P@\=I2\''I5]OS4=OS4=OS4=OS4=OS4=OS4=OS4=OS4=OS4=OS4=OS4=O
   217 S4=OS4=!!XVE!!XVE!!XVE!!XVE!!XVE!!XVE!!XVE%XVE!!XVE!!YT9NS$9NNS$9NS%NS%T=OS4=NVM@P@\=I2\''I6YGQ4]GQ4]GQ4]GQ4]GQ4]GQ4]GQ4]GQ4]GQ4]G
   218 Q4]GQ4]GQ4]GQ4]GQ4]GQ4]GQ4]DQB</KB0,E84_G22$EB0,KB2$R9VU+9V/B"TJ+3N,R6D=OS4=NVM@P@\=I2\''I6YGQ4]GQ4]GQ4]GQ4]GQ4]GQ4]GQ4]G
   219 Q4]GQ4]GQ4]GQ4]GQ4]GQ4]GQ4]GQ4]GQDP/K20,KB19%YV,+6I6#R0WX$.,+IV/+0(J%RTJ+D-"X&D=OS4=NVM@P@\=I2\''I6YGQ4]GQ4]GQ4]GQ4]GQ4]G
   220 Q4]GQ4]GQ4]GQ4]GQ4\[F1-GQ4]GQ4]GQ4]GK2</E1^PKI@_R6IKR6IK+:=6#ZRMB *U+J2U+@*,+J1"X&I"X&D=OS4=NVM@P@\=I2\''I6X[F1,[F1,[F1,[
   221 F1,[F1,[F1,[F1,[F1,[F1,[K2</K2</K1,[F1,[K2</K1^P^W4_X*2U+62/+D.,+0*,#VJU+IVU]&IK+D.MX(6M#VI"X&D=OS4=NVM@P@\=I2\''I6X/K2</
   222 K2</K2</K2</K2</K2</K2</K2</K2</K2</K0LCK2</K2</K2<CE9A=G1=R+9VU%Z03%Z<JIP(JR3^U])U")JQ"+FJM#X6M#VI"X&T=OS4=NVM@P@\=I2\''
   223 I6X/K2</K2</K2</K2</K2</K2</K2</K2</K2</K2<C@0LCK0L/K2</K0LW$G%)T*>/+:>UR4.,%P*/B"V/+J1KX*2M)JRMX(5"#X6MX&IK+D8=OS4=NVM@
   224 P@\=I2\''I6X/K2</K2</K2</K2</K2</K2</K2</K2</K0LC@0LC@1\W@0LC@0LC@0LCE7%)+9VU+D-KX&IK+IVUB"TJ+A="R4-"R6J$)G%"X&I"X!!=KR6T=
   225 OS4=NVM@P@\=I2\''I6XC@0LC@0LC@0LC@0LC@0LC@0LC@0LC@0LC@0LC@0LCE1\WE0LC@0LC@1\WE7$_+J1KG6I"X*2/+J0JIP*/+FI"+H6MX''&$)G&MR4-K
   226 G6H_X&D=OS4=NVM@P@\=I2\''I8DC@0LC@0LC@0LC@0LC@0LC@0LC@0LC@0LC@0LCE1\W$IBP$A\WE1\WE9BP$G4_G6I"X&I"X*2/+J<JIS^/+FIK%T-"#W&$
   227 ^W%K+EJ,R6I"X&D=OS4=NVM@P@\=I2\''I4<WE1\WE1\WE1\WE1\WE1\WE1\WE1\WE1\WE1\W$IBP$IBP$IBP$IBP$IA9^Q=KX&I"X&I"G9VU+J>/B*>UR:2U
   228 %Z2M^W%9^W%K%YV,R6I"X&D=OS4=NVM@P@\=I2\''I4>P$IBP$IBP$IBP^W&P$IBP$IBP$IBP$IBP$IBP$IBP$IBP$IBP$IBP$G%9X!!<_X&I"X&H_R:2,+J>U
   229 +:>U+EJ,X&I9^W%9^W$_+J2,+D-"#VD=OS4=NVM@P@\=I2\''I4>P$IBP$IBP^W%=G1=9^W%9X''59%IBP$IBP$IBP$IBT^W%9^YRT%IRT^W%9X!!<_X&I"X$-K
   230 +J2,+J=,+:1KX&I"X*2UR86M#X4_G:2UG:0_X&D=OS4=NVM@P@\=I2\''I4>P$IQ9^W%9^Z1RT%J,+EIRT*2,X''%9^YRT%G%9^W%9^W%9^W%9^W%9^W%9^VIK
   231 G1<_R4.,+J1R+2T%IP*,G1>,B (%B%I"X&H_+IV,X&IKR6D=OS4=NVM@P@\=I2\''I4>T^W%9^W%"G4.,+:=,[J>/[F1,[A==^W5=_W5=_VI"_W5=_W5=_W59
   232 ^W%=_VH_+J2,T*2,+J2U+2T%B"TJ+J1R+:=,%Z1"X&IK+A="X&I"X&D=OS4=NVM@P@\=I2\''I3)9^W5"X&J,R:1R+:>,T*2,%Z>/+:<_G1<__W5=G1<_G6I=
   233 _W5=_W5=_W5=X&I"G1=RT*1RT)V/B*>U+2T%IRT%[J>UR6I"X&I"X&I"X&I"X&D=OS4=NVM@P@\=I2\''I3)=X&H_%YUR+EJ/T*2,+J2,T*>/%UJ,+J2,G1<_
   234 G1=)G1<__W5=_W5=_W5"X&I"X!!>/%YV/+9V/+9UR%Z>/[F2/+62/R6I"X&I"X&I"X&I"X&D=OS4=NVM@P@\=I2\''I3)"+EIR+9V/%YV,+D.,+J2U+:>/%Z1R
   235 T%IRT*1)G6&,+F$_G75=_W5=_VI"X&H_G:1,+:>/+:=,+:2,R4,_G:2,+:=RR1<_G1<_G1<_G6H_G6D=OS4=NVM@P@\=I2\''I2IR%Z>/+:>UT%J,R:2,+J1R
   236 %YVU+:=,+:>/+9URG1>,T%J,ZQ<_G6I"X&I"G1<_G1=K+J1K+J>/+9V,R4.,R4.,+D.,+D-KR4,_G1<_R4-KG6T=OS4=NVM@P@\=I2\''I2J/+:>/+:>U%UJ,
   237 +J2,+J2,+EJU+61,+:>/[F1,+5IRT%IRT*2,G1<_G1<_G1<_R4-KR4-KR:2/T*1RR4-KR:2/+5J/B&1,[J=KR4-K+J2,R6T=OS4=NVM@P@\=I2\''I2J/+:>/
   238 +:>U+5J,+J2,+J1RT)V/+:>/[F1,[F1,[J>UT%IR%UJ,+J1)G1<_R4-KR4-KR:2,+J<JIP),[J<J+61,+2U,+60%IRT%[J>U+J2,+FT=OS4=NVM@P@\=I2\''
   239 I2JU%YVU%UIRT*2,+J2,+EJU%YVU+62/+:>/[@(J+9VU%YURT%IRT%IR+J2,+J2,+J2,+J2,%Z=,B */B"T%IZ>U%V0%B&1,%P(%IRT%IYV,+FT=OS4=NVM@
   240 P@\=I2\''I2JUT)VU%Z2,+J2,+J1R%YVU%YV/+:>/+:>/+:>/%YURT%J,+EJU%YVUT%IR+J2,+J2,+J2,%YVU+9VU+:<J+9VU+0(%IRT%+60%[J<JIRV/+FT=
   241 OS4=NVM@P@\=I2\''I2JU%YVU%Z2,+J2U%YVU%YVU%YVU%YV/[J>/%YVU%YV,+J2,+EJU%YVU%YVU+:>UL:2,B */%YVU%YVU%YU,%YVU+0(JB (J+0),+:>/
   242 +60%B$8=OS4=NVM@P@\=I2\''I6VU%YVU%YVU%YVU%YVU%YVU%YVU%YV/+:>/%YVU%Z2,+J2,+IVU%YVU%Z>/+0),%YU,B"T%+9VU%YVU%Z>/%YV/B */+:>/
   243 %Z>/+:>/+0(%IS$=OS4=NVM@P@\=I2\''I7TIV''LVE*2U%YU_IG8I\9VU%YVU%YVU+:>/%YVU%SL3+CNU%YVU%YV/[F2/+0(%IRT%B*>/%YVU%YVU%YVU%YV/
   244 +:>U%YVU%YV/+:>/+60JB$8=OS4=NVM@P@\=I2\''I1V.+''8$Z&*.V"Q*Z''9>%7NU%YVU%YVU%YVU%YVU%YVU%YVU%YVU%Z=,+:>/+0*/+:>/+:>U%YVU%YVU
   245 %YVU%YVU%YVU%YVU%Z>/+:>/B"T%IS$=OS4=NVM@P@\=I2\''I1V._'':.+''9>_&)''Z''9>TC!!Y+9VU%YVU%YVU%YVU%YVU%YVU%YVU%YVU+:>/B */+:>/+:>/
   246 %YVU%YVU%Z>/+:>/+:>/+:>/+:>/+:>/[@(JIT8=OS4!!T6M@P@\=I2\''I1V.+*9*+*:.+&)*_''9>_%@8VZ>/%YVU%YVU%YVU%YVU%YVU%YVU%YVU+:<JB */
   247 +:>/+:>/+:>/+:>/+:>/+:>/+:>/+:>/+:>/+:=,B (%B$8=ORD!!T6M@P@\=I2\''I1U''Z*:.+*:._&)*_''9>_''9PCHZ/M9VU%YVU%YVU%YVU%YVU%YVU%Z>/
   248 M0(%B#\7M3\7M3^/+:>/+:>/+:>/+:>/+:>/+:<7+3\7M0(JB (%IT8!!HRD!!T6M@P@\=I2\''I1U''Y6]*Z*:.+&)*_''8;_''8;BY\M*C\7M3\7+:<7+:>/+3\7
   249 +3^/M3\7M0(JB (7M3\7M3\7M3\7+3\7+3^/M3\7M3\7M3\7M3\JB (JB"T%IT8!!HRD!!T6M@P@\=I2\''I1U''Y6]''Y6)*Z''9*_''9>_''8;BP$I[: 7M3\7M3\7
   250 M3\7M3\7M3\7M3\7M0(JB#\7M3\7M3\7M3\7M3\7M3\7M3\7M3\7M3\JB (JB (JB"T%B$8!!HRD!!T6M@P@\=I2\''I1U''Y6]''Y6)*Z*9*_''9>_#,;BY\I+ &F
   251 [7MJ+3\7M3\7M3\7M3\7B#\7B (JB#\7M3\7M3\7M3\7M3\7M3\7M3\7M3\7B (JB (JB (JB (JB$8!!HRD!!T6M@P@\=I2\''I1U''Y6]''Y6]''Z&)*Z&)>_''8;
   252 BP$IBP$IBS,I,%>(M3\7B (JB (JB (JB (JB (7M3\7M3\7M3\7M0(7B (JB (JB (JB (JB (JB (JB (JB$8!!HRD!!T6M@P@\=I2\''I;Z%Y6]''Y6]''Y6^+
   253 SH:N#"A>_#,$I@$IBP$IBP$I\3\JB (JB (JB (JB (JB (7M3\7M3\JB (JB (JB (JB (JB (JB (JB (JB (JB"TJB$8!!HRD!!T6M@P@\=I2\''I02^'':]''
   254 H:-L(JB (I:^'')>8.W]>IBR._*8IBZ:.BRR2\ (JB (JB */+:<JB*>/+J2U+3\7+:>/+0(JB (JB (JB (JB (JB (JB (JB"T%IT8!!HRD!!T6M@P@\=I2\''
   255 I8VG(JF!!''): (JB (JB ''):_'';!!7]7:.+*:.BRR.+ $IBU<JB (JB%JQG1<_T!!>QZW(_+F%:Y''*:.+)RB (JB (JB (JB (JB (JB (JIRT%IT8!!HRD!!T6M@
   256 P@\=I2\''I8VI!!8^!!(I:^!!8^G(JB (I:!!''9>9.[&N+*:.+*:.+*8$+ %3B (JT''6Q$YFQ$YFQ$W*Q+G*:.+(2(:N#S4<HB (JB (JB (JB (%IRT%IRT%IT8!!
   257 HRD!!A6M@P@\=I2\''I8VI!!4"!!(ZV!!(X^G!!8^G(JB ''):_#+&9.W:.Z&*.+*9*+*8$P4):$YF:.+*:$YFQ$YFQ$YF:.+*#(:N#(:N#S0(%IRT%IRT%IRT%IRT%
   258 IRT%IS$!!HRD!!A6M@P@\=I2\''I8VI"X&!!)ZV")ZV!!!!8^G!!8^G(JB )X:9.[$4_&*.+*:.Z*9>_!!0DMCR9.[&KAF>:$YFQ$YFQ.+*#(:N#(:N#(3H:[BT%IRT%
   259 IRT%IRT%IRT%IS$!!HRD!!A6M@P@\=I2\''I8VL"X&I!!8*J)ZV%(X^I"X^G!!8^G!!:F"#*F_#+&N#(:N#(:N.X9^.[&9.[&9.[$0A@$IBP&2WK*:L*N#(:N#(:N#
   260 (1)!!XRH%IRT%IRT%IRT%IS$!!HRD!!A6M@P@\=I2\''I8VL#H&I"X&I"X&G"(^G"X^I!!8^G!!8]H)ZV%(+"9.[&)#+&9.[%^W#Q^.[&9.X.K"8.9.X.KTE!!\P%"2
   261 BSX\.PR2\ZN#(:N:[BT%IRT%IRT%IS$!!HRD<A6M@P@\=I2\''I8VL#H2I"X&I"X&I"X&I"X^G!!8&G!!8^J"*VJ(T"!!RJVN(%:'')ZJ9W+&9W%9^#(:".[&N.[&9
   262 LA29.[%[.[$+AC@0LCX>WE11WFD?I2\''I2\''I3$!!HS0<A6M@P@\=I2\''I8VL#H&L#H2I"X&I"X&I"X&I"X&I"X^J"*V%)ZV%RJV''(*J%)ZJ"#%9^W%9^#(:"
   263 ((:"(*J"(%8DW%:9W+&NW#B9#+&9AC@0AA0\G$FROS<?O48<OC0<A6M@P@\=I2\''I8VL#H2I"X2I"X&I"X&I"X&I"X&I"Q!! "&A;RT&%)ZV%)ZV%(*J%($&"
   264 )ZJ'')5:"(*J")ZV%)ZI^YE:N.U9^V5:9#+%^A@PDV0P0.U,1LSYXQT4<OC0<A6M@P@\=I2\''I8VL#H2L"X&I"X&I"X&I"X&I"X&I"X&IXGQ ]FB%^:U4XH*%
   265 )ZV"RT%IRT&''RT&''RZJ%)T"%)ZV%(%:"#*I^#(9^W%9^W%8YA@PDA@P1A@PDMQT<OC09A6M@P@\=I2\''I8VL#H&I"X&I"X&I"X&I"X&I"X$XFH&IFA X"&A 
   266 XFB%XFA ^:V%)ZV%)ZUIRZJ"RZV")Q4]GQ4])ZJ")ZJ%(*J''YH9^AE9^W&Q^W%8YAA%[A@<<OC$9A6M@P@\=I2\''I56-+Z6-+Z6-+Z6-+Z6-+P,K%)ZV%+B0
   267 ,KB0,KB0,KB0,KB1 HB@ I*Z&)*Z&)*Z&)&Y 8L(JI.[&9,PD5!!XVE!!XV%)ZP$H-KR4-J$Y_Q%=_@PT9NS$9A6M@P@\=I2\''I54K%)ZV%)ZV%)ZV%)ZB%(JB
   268 ,[F1,[FB,[F1,XB@ KF@ HBZ&)*@&)*Z!!HRD-8RD!!B (J[\)JQLSD5 SVE!!BD$IBP$I\Q$Y_W4Y_XVU%YVU%R \9NS$9A6M@P@\=I2\''\B6B (JB (JB,XJB
   269 ,[F1 HB@ HB@ HB@&(BZ HBD HRZ!!KRD!!HRD!!K^DJR )JR$)JR%XVE RD%!!.D!!HRD!!IBQ%2&)%=_Q%=_XVU%YT9NR$9NS \9NS$9A6M@P@\=I2]0\E6B (JB
   270  (JB,[FB,XB1 HB1 HB@ HBZ!!HBD!!AFDDQDQDQD)I"$QDQD)JR$)C"$R''R&]''Y4RD%1\D*Y\QTV&W6F&)%>&)%>***Y!!XVE%YVE!!S \9NS$9A6M@P@\=\GA0
   271 \E6B (JB (JB (JB,XB@ HB@ (B@ HA-!!F5-[V-+DQDQI"X)D!!L)I"$)I"X)"H"H''R$)JX"]''R$)"AI\#8=\P%<.)%2&)%=_W6E%A&E!!YVE%*''<9NS$9A6M@
   272 P@\=\GA0\E6B (JB &!!(ZHJB HB@ HB@ HA-Z65-[[M+Z;M+DQDQI"X)JR$)JR$)JR$)JR&OJR$RD":OD!!H)K"8.WB:&)*Z*W8>&XU<.W5>*YVV*YVU%*''<9
   273 NS$9A6M@P@\=\G@?O7"B (ITU(ITUEQT[UQT[V5-[UQ-[V5+,;LQDQD&I"X)I"$QDR$)JR$)JQH)JR$RD2$RJQLRJR8R)"8R#28.)%2&)(=_*%>&**Y!!YZY!!
   274 YVUNA T9NS$9A6M@P@\=\C<?O7"B (JBU%QT (ITUF"BZF"BZEQ-,;N3,1F3I!!DQDQDQDQD)I"$)JR$QI"$RJQLRJR$RJQH.D":&D1I\K"8RK":O#:Z&SU=_
   275 P*Z*W4:*W5<FR T9NS$9A6M@P@\=O3<?O7"B %QT &!!(ZEQ(UEQTUF5+[[LQDQF3,;N3DQDQDRXQDR$)JR$QJR$)DQD)DQD)DQD&DQH)JR$)JQHRD8=\WJZ&
   276 W52&WD5\) Z&A&F*W:Z&W:(9NS$9A6M@P@\=O3<=OR5TUEQTUEQTUEQT[V5+[V5+[[V3,1DQ,;LQI!!F3JQD&DQDQDQD&JQL)DR$)JRX)JR$)JQJOWAH.D!!J&
   277 K"9_WD5%W5>&)*Y\)*ZOWB8.YVV&R T9NS$9A6M@P@\=O34=OR5--UQTUEQTUEQ-[V63,;N3,;N3DQDQJQDQDQD&DQDQDQD&I!!DQJQDQJRX)JQD&JR8)I"$)
   278 JR$.D!!HRD$6&D!!J&WJX.JU2&K"8SSZZ&W0XR) T9NS$9A6M@P@\=OS4=OR5T[[N3D[N\-[N5-[N3,;N5,;N3,;N3,;N3,1DQDQDQDQD)JR$&DQF3DQDQJRXQ
   279 D[LQZ;LQDQH)D!!H.WJY_WB9\WJZ&)*Z&)%1\D!!LRW28RK*(9NS$9A6M@P@\=OS4=OR5TUERSUEQTUF!!TUEQT[V63,;N5[[L)JQDQ,1F3DQDQDR$SDRX)DR$)
   280 JRX)JR$)I"%XJR$)D( .D"$RJQHSK"$R)!!H.JPX.D!!H.D"8.K*Z&W7<9NS$9A6M@P@\=OS4=OR63,;M-UEQT[UQTUF5TUF63D[N5UEQT,;N3,;N3,;LQ,1D&
   281 DR$)JR$)DRXQDRXQJR$SK!!L)K!!HRD"8SK%2*WB$)K!!LRWJXF)!!I\#:Y_**Z&W7<9NS$9A6M@P@\=OS4=OW!!(ZF!!TZF5TUEQTUF5-[V5-Z65-[V5-[V.D[V.D
   282 DV--[V.D!!AE-[QDQJQDQDXPQ!!F.DZ1D)JQD)DR:7D45ZVALSSR5_^B&7K%<.D:Z&)*Z**''<9NS$9A6M@P@\=OS4=OS4=OS4=OS4=OS4=OS4=ORD!!HRD!!TUEQ
   283 TS%QTUD9NS$9NS$9NS$9NS$9NS$9NS$9NS$9NS$9NS$9NS$9NS$9NS$9NS$9NS$9NS$9NS$9NS$9NS$9NS$9A6M@P@\=OS4=OS4=OS4=OS4=OS4=OS4=OS4=
   284 OS4=OS4=OS4=OS4=OS4=HRD!!HRD!!HRD!!HRD!!HRD!!HRD!!HRD!!OC0<OC0<NS$9NS$9NS$9NS$9NS$9NS$9NS$9NS$9NS$9A6M@P@\=OS4=OS4=OS4=OS4=OS4=
   285 OS4=OS4=OS4=OS4=OS4=OS4=OS4!!HRD!!HRD!!HRD!!HRD!!HRD!!HRD!!HS0<OC0<OC09NS$9NS$9NS$9NS$9NS$9NS$9NS$9NS$9NS$9A6M@P@\=OS4=OS4=OS4=
   286 OS4=OS4=OS4=OS4=OS4=OS4=OS4=OS4=HRD!!HRD!!HRD!!HRD!!HRD!!HRD!!HRD!!OC0<OC0<NS$9NS$9NS$9NS$9NS$9NS$9NS$9NS$9NS$9NS$9A6M@P@\=OS4=
   287 OS4=OS4=OS4=OS4=OS4=OS4=OS4=OS4=OS4=OS4!!HRD!!HRD!!HRD!!HRD!!HRD!!HRD!!HS0<OC0<OC$9NS$9NS$9NS$9NS$9NS$9NS$9NS$9NS$9NS$9NS$9A0A@
   288 PC$9NS$9NS$9NS$9NS$9NS$9NS$9NS$9NS$9NS$9NS$9NUMST5MST5MST5MST5MST0\GA0\GA0\GA0\GA0\GA0\GA0\GA0\GA0\GA0\GA0\GA0\GA0\GA0\G
   289 A0\GA0A@PBDG@FM#X6M#X6M#X6M#X6M#X6M#X6M#X6M#X6M#X6M#X6M#X6M#X6M#X6M#X6M#X6M#X6M#X6M#X6M#X6M#X6M#X6M#X6M#X6M#X6M#X6M#X6M#
   290 X6M#X6M#X6L@_@]@PDA@PDA@PDA@PDA@PDA@PDA@PDA@PDA@PDA@PDA@PDA@PDA@PDA@PDA@PDA@PDA@PDA@PDA@PDA@PDA@PDA@PDA@PDA@PDA@PDA@PDA@
   291 PDA@PDA@PDA@PDA@PDA@PDA@');
   292                 colorMapFromArray:#[ 176 176 180 176 208 210 192 192 190 96 160 255 96 160 130 192 208 210 176 192 220 208 208 210 192 224 240 112 160 140 224 255 255 48 80 130 144 176 140 128 176 160 96 160 180 144 176 160 112 144 160 80 128 180 112 160 190 112 144 180 96 192 255 160 176 180 160 208 220 96 176 255 48 80 80 80 160 130 160 192 220 80 144 255 112 176 130 64 96 100 128 192 140 160 208 255 96 128 110 240 240 220 208 224 240 80 112 130 112 144 140 240 255 255 80 144 180 255 255 255 96 128 160 96 144 180 144 192 190 80 160 100 80 176 255 144 176 190 128 160 190 80 160 255 96 160 110 96 176 130 144 176 220 176 240 255 96 144 110 96 176 140 112 176 140 208 255 255 128 176 130 224 224 220 192 208 240 112 144 130 240 224 220 240 240 240 112 176 180 240 240 255 0 0 0 160 208 180 128 176 190 144 176 180 64 160 255 112 160 210 144 192 210 64 144 255 64 96 80 64 128 110 192 224 220 160 224 255 80 112 100 160 176 210 208 224 220 176 208 240 112 160 130 224 240 220 192 224 255 224 208 210 48 112 160 224 224 240 48 96 160 224 224 255 112 160 180 160 208 190 128 160 180 80 160 110 128 176 210 144 160 180 80 144 110 160 192 210 48 96 100 176 208 220 144 208 255 176 160 180 80 144 130 192 208 220 160 192 240 80 128 130 48 112 140 176 208 255 96 128 130 64 128 160 224 240 255 64 112 160 112 176 190 128 176 180 255 240 255 112 176 210 160 192 190 160 208 210 48 112 100 176 192 190 144 224 255 96 144 100 144 160 190 128 192 255 160 208 240 64 112 110 192 176 180 144 192 255 96 144 130 192 192 210 64 112 140 176 192 240 48 96 140 96 128 140 80 128 160 144 160 140 144 192 180 48 96 60 96 144 190 48 80 60 48 96 80 96 160 100 48 64 60 128 208 255 80 128 100 128 160 210 112 176 255 144 192 240 208 224 210 32 112 140 128 176 255 192 240 255 48 96 130 128 176 140 208 192 210 80 128 140 80 112 140 96 144 160 48 112 180 96 160 190 64 112 60 64 128 80 64 96 60 64 112 80 64 128 100 128 176 220 112 192 255 64 112 100 144 176 210 80 128 110 192 240 240 112 160 110 176 192 210 80 112 110 176 224 255 48 80 110 96 144 140 208 240 255 64 96 130 64 96 140 112 160 160 64 128 180 80 112 160 64 112 180 160 176 160 96 128 180 80 128 80 80 144 100 144 192 220 ];
   293                 mask:((ImageMask new)
   294                             width:96;
   295                             height:78;
   296                             bits:(ByteArray 
   297                                         fromPackedString:'
   298 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@_??????????????>_??????????????>_??????????????>_??????????????>_??????????????>_???????
   299 ???????>_??????????????>_??????????????>_??????????????>_??????????????>_??????????????>_??????????????>_??????????????>
   300 _??????????????>_??????????????>_??????????????>_??????????????>_??????????????>_??????????????>_??????????????>_???????
   301 ???????>_??????????????>_??????????????>_??????????????>_??????????????>_??????????????>_??????????????>_??????????????>
   302 _??????????????>_??????????????>_??????????????>_??????????????>_??????????????>_??????????????>_??????????????>_???????
   303 ???????>_??????????????>_??????????????>_??????????????>_??????????????>_??????????????>_??????????????>_??????????????>
   304 _??????????????>_??????????????>_??????????????>_??????????????>_??????????????>_??????????????>_??????????????>_???????
   305 ???????>_??????????????>_??????????????>_??????????????>_??????????????>_??????????????>_??????????????>_??????????????>
   306 _??????????????>_??????????????>_??????????????>_??????????????>_??????????????>_??????????????>_??????????????>_???????
   307 ???????>_??????????????>_??????????????>_??????????????>_??????????????>_??????????????>_??????????????>_??????????????>
   308 _??????????????>_??????????????>@@@@@@@@@@@@@@@@');
   309                             yourself);
   310                 yourself
   311         ]
   312 ! !
   313 
   314 !UISelectionPanel class methodsFor:'interface specs'!
   315 
   316 nameAndSelectorSpec
   317     "This resource specification was automatically generated
   318      by the UIPainter of ST/X."
   319 
   320     "Do not manually edit this!! If it is corrupted,
   321      the UIPainter may not be able to read the specification."
   322 
   323     "
   324      UIPainter new openOnClass:UISelectionPanel andSelector:#nameAndSelectorSpec
   325      UISelectionPanel new openInterface:#nameAndSelectorSpec
   326     "
   327 
   328     <resource: #canvas>
   329 
   330     ^ 
   331      #(FullSpec
   332         name: nameAndSelectorSpec
   333         window: 
   334        (WindowSpec
   335           label: 'Painter'
   336           name: 'Painter'
   337           min: (Point 10 10)
   338           bounds: (Rectangle 14 46 329 262)
   339         )
   340         component: 
   341        (SpecCollection
   342           collection: (
   343            (LabelSpec
   344               label: 'Class & selectors to access user specs:'
   345               name: 'title'
   346               layout: (Point 5 10)
   347               resizeForLabel: true
   348               adjust: left
   349             )
   350            (LabelSpec
   351               label: 'Class:'
   352               name: 'classLabel'
   353               layout: (AlignmentOrigin 68 0.11 51 0 1 0.5)
   354               resizeForLabel: true
   355               adjust: right
   356             )
   357            (InputFieldSpec
   358               name: 'classField'
   359               layout: (LayoutFrame 74 0.11 39 0 -5 1.0 61 0)
   360               tabable: true
   361               model: className
   362               type: string
   363               acceptOnPointerLeave: false
   364             )
   365            (LabelSpec
   366               label: 'Labels:'
   367               name: 'labelsLabel'
   368               layout: (AlignmentOrigin 68 0.11 74 0 1 0.5)
   369               resizeForLabel: true
   370               adjust: right
   371             )
   372            (InputFieldSpec
   373               name: 'labelsField'
   374               layout: (LayoutFrame 74 0.11 64 0 -5 1.0 86 0)
   375               tabable: true
   376               model: labelsKey
   377               type: symbolOrNil
   378               acceptOnPointerLeave: false
   379             )
   380            (LabelSpec
   381               label: 'Specifications:'
   382               name: 'specsLabel'
   383               layout: (AlignmentOrigin 68 0.11 99 0 1 0.5)
   384               resizeForLabel: true
   385               adjust: right
   386             )
   387            (InputFieldSpec
   388               name: 'specsField'
   389               layout: (LayoutFrame 74 0.11 89 0 -5 1.0 111 0)
   390               tabable: true
   391               model: specsKey
   392               type: symbolOrNil
   393               acceptOnPointerLeave: false
   394             )
   395            (HorizontalPanelViewSpec
   396               name: 'commitPanel'
   397               layout: (LayoutFrame 0 0.0 -23 1.0 0 1.0 0 1.0)
   398               horizontalLayout: fitSpace
   399               verticalLayout: fit
   400               horizontalSpace: 3
   401               verticalSpace: 3
   402               reverseOrderIfOKAtLeft: true
   403               component: 
   404              (SpecCollection
   405                 collection: (
   406                  (ActionButtonSpec
   407                     label: 'cancel'
   408                     name: 'cancel'
   409                     tabable: true
   410                     model: cancel
   411                     extent: (Point 153 23)
   412                   )
   413                  (ActionButtonSpec
   414                     label: 'ok'
   415                     name: 'accept'
   416                     tabable: true
   417                     model: accept
   418                     isDefault: true
   419                     extent: (Point 153 23)
   420                   )
   421                  )
   422                
   423               )
   424             )
   425            (CheckBoxSpec
   426               label: 'Update Default Resources'
   427               name: 'updateDefaultResources'
   428               layout: (Point 5 133)
   429               model: updateDefaultResources
   430             )
   431            )
   432          
   433         )
   434       )
   435 !
   436 
   437 windowSpec
   438     "This resource specification was automatically generated
   439      by the UIPainter of ST/X."
   440 
   441     "Do not manually edit this!! If it is corrupted,
   442      the UIPainter may not be able to read the specification."
   443 
   444     "
   445      UIPainter new openOnClass:UISelectionPanel andSelector:#windowSpec
   446      UISelectionPanel new openInterface:#windowSpec
   447      UISelectionPanel open
   448     "
   449 
   450     <resource: #canvas>
   451 
   452     ^ 
   453      #(FullSpec
   454         name: windowSpec
   455         window: 
   456        (WindowSpec
   457           label: 'Widget Gallery'
   458           name: 'Widget Gallery'
   459           min: (Point 100 280)
   460           bounds: (Rectangle 14 46 508 348)
   461         )
   462         component: 
   463        (SpecCollection
   464           collection: (
   465            (NoteBookViewSpec
   466               name: 'NoteBook1'
   467               layout: (LayoutFrame 0 0.0 0 0.0 0 1.0 0 1.0)
   468               model: majorChannel
   469               menu: majorList
   470               direction: right
   471               useIndex: true
   472               canvas: gallery
   473             )
   474            )
   475          
   476         )
   477       )
   478 ! !
   479 
   480 !UISelectionPanel class methodsFor:'interface specs-standard gallery'!
   481 
   482 specifications
   483 
   484     ^ #(
   485         #( 'Standard'  #( 
   486                             #('Buttons' standardButtons)
   487                             #('Menus'   standardMenus)
   488                             #('Text'    standardTexts)
   489                             #('Lists'   standardLists)
   490                             #('Trees'   standardTrees)
   491                             #('Groups'  standardGroups)
   492                             #('Embed'       standardEmbed)
   493                             #('Geometric'   standardMorphs1)
   494                             #('Misc'    standardMisc)
   495                          )
   496          )
   497 
   498         #( 'Clipboard'  #(
   499                             #('Copy & Paste Buffer'     clipBoardSpec)
   500                           )
   501          )
   502 
   503         #( 'User Def.'   #userDefined )
   504      )
   505 
   506     "Modified: / 21.4.1998 / 12:04:22 / cg"
   507 !
   508 
   509 standardButtons
   510     "This resource specification was automatically generated
   511      by the UIPainter of ST/X."
   512 
   513     "Do not manually edit this!! If it is corrupted,
   514      the UIPainter may not be able to read the specification."
   515 
   516     "
   517      UIPainter new openOnClass:UISelectionPanel andSelector:#standardButtons
   518      UISelectionPanel new openInterface:#standardButtons
   519     "
   520 
   521     <resource: #canvas>
   522 
   523     ^ 
   524     #(FullSpec
   525        name: standardButtons
   526        window: 
   527       (WindowSpec
   528          label: 'Buttons'
   529          name: 'Buttons'
   530          min: (Point 10 10)
   531          bounds: (Rectangle 0 0 477 241)
   532        )
   533        component: 
   534       (SpecCollection
   535          collection: (
   536           (ActionButtonSpec
   537              label: 'Button'
   538              name: 'Button'
   539              layout: (LayoutFrame 2 0 1 0 127 0 23 0)
   540            )
   541           (ActionButtonSpec
   542              label: 'OK'
   543              name: 'Button - OK'
   544              layout: (LayoutFrame 2 0 33 0 127 0 55 0)
   545              translateLabel: true
   546              model: accept
   547            )
   548           (ActionButtonSpec
   549              label: 'Cancel'
   550              name: 'Button - Cancel'
   551              layout: (LayoutFrame 2 0 65 0 127 0 87 0)
   552              translateLabel: true
   553              model: cancel
   554            )
   555           (ActionButtonSpec
   556              label: 'Help'
   557              name: 'Button - Help'
   558              layout: (LayoutFrame 2 0 97 0 127 0 119 0)
   559              translateLabel: true
   560              model: help
   561            )
   562           (ActionButtonSpec
   563              label: 'Close'
   564              name: 'Button - Close'
   565              layout: (LayoutFrame 2 0 129 0 127 0 151 0)
   566              translateLabel: true
   567              model: closeRequest
   568            )
   569           (ToggleSpec
   570              label: 'Toggle'
   571              name: 'Toggle'
   572              layout: (LayoutFrame 144 0 1 0 280 0 23 0)
   573              isTriggerOnDown: true
   574              lampColor: (Color 100.0 100.0 0.0)
   575            )
   576           (RadioButtonSpec
   577              label: 'Radio Button'
   578              name: 'Radio Button'
   579              layout: (LayoutFrame 144 0.0 33 0 280 0 55 0)
   580              isTriggerOnDown: true
   581            )
   582           (CheckBoxSpec
   583              label: 'Check Box'
   584              name: 'Check Box'
   585              layout: (LayoutFrame 142 0 65 0 278 0 87 0)
   586            )
   587           (CheckToggleSpec
   588              name: 'Check Toggle'
   589              layout: (LayoutOrigin 146 0 99 0)
   590              isTriggerOnDown: true
   591              showLamp: false
   592              lampColor: (Color 100.0 100.0 0.0)
   593            )
   594           (LabelSpec
   595              label: 'Check Toggle'
   596              name: 'CheckToggleLabel'
   597              layout: (AlignmentOrigin 166 0 98 0 0 0)
   598              resizeForLabel: true
   599              adjust: left
   600              canUIDrag: false
   601            )
   602           (TriggerBoxSpec
   603              label: 'Trigger Box'
   604              name: 'TriggerBox1'
   605              layout: (LayoutFrame 142 0 129 0 278 0 151 0)
   606            )
   607           (ButtonSpec
   608              label: 'Model Button'
   609              name: 'Model Button'
   610              layout: (LayoutFrame 296 0 1 0 432 0 23 0)
   611            )
   612           (LabelSpec
   613              label: 'Spin Button'
   614              name: 'UpDownButtonLabel'
   615              layout: (AlignmentOrigin 348 0 35 0 0 0)
   616              resizeForLabel: true
   617              adjust: left
   618              canUIDrag: false
   619            )
   620           (UpDownButtonSpec
   621              name: 'UpDown Button'
   622              layout: (LayoutFrame 296 0 33 0 341 0 55 0)
   623              orientation: horizontal
   624            )
   625           (LabelSpec
   626              label: 'Arrow Button'
   627              name: 'ArrowButtonsLabel'
   628              layout: (AlignmentOrigin 348 0 69 0 0 0)
   629              resizeForLabel: true
   630              adjust: left
   631              canUIDrag: false
   632            )
   633           (ArrowButtonSpec
   634              name: 'Arrow Button'
   635              layout: (LayoutFrame 296 0 65 0 318 0 87 0)
   636              isTriggerOnDown: true
   637              direction: right
   638            )
   639           (ActionButtonSpec
   640              label: '...'
   641              name: 'Button1'
   642              layout: (LayoutFrame 296 0 98 0 316 0 120 0)
   643              translateLabel: true
   644              model: someAction
   645            )
   646           (LabelSpec
   647              label: 'Ok/Cancel Panel'
   648              name: 'Label2'
   649              layout: (LayoutFrame 3 0 -49 1 208 0 -26 1)
   650              adjust: left
   651              canUIDrag: false
   652            )
   653           (HorizontalPanelViewSpec
   654              keepUILayout: true
   655              name: 'OkCancelPanel'
   656              layout: (LayoutFrame 0 0 -30 1 0 1 0 1)
   657              reverseOrderIfOKAtLeft: true
   658              horizontalLayout: center
   659              verticalLayout: center
   660              horizontalSpace: 3
   661              verticalSpace: 3
   662              component: 
   663             (SpecCollection
   664                collection: (
   665                 (ActionButtonSpec
   666                    label: 'Cancel'
   667                    name: 'Button2'
   668                    translateLabel: true
   669                    model: cancel
   670                    extent: (Point 125 22)
   671                  )
   672                 (ActionButtonSpec
   673                    label: 'OK'
   674                    name: 'Button3'
   675                    translateLabel: true
   676                    model: accept
   677                    extent: (Point 125 22)
   678                  )
   679                 )
   680               
   681              )
   682            )
   683           )
   684         
   685        )
   686      )
   687 !
   688 
   689 standardEmbed
   690     "This resource specification was automatically generated
   691      by the UIPainter of ST/X."
   692 
   693     "Do not manually edit this!! If it is corrupted,
   694      the UIPainter may not be able to read the specification."
   695 
   696     "
   697      UIPainter new openOnClass:UISelectionPanel andSelector:#standardEmbed
   698      UISelectionPanel new openInterface:#standardEmbed
   699     "
   700 
   701     <resource: #canvas>
   702 
   703     ^ 
   704      #(FullSpec
   705         name: standardEmbed
   706         window: 
   707        (WindowSpec
   708           label: 'Misc'
   709           name: 'Misc'
   710           min: (Point 10 10)
   711           bounds: (Rectangle 14 46 456 269)
   712         )
   713         component: 
   714        (SpecCollection
   715           collection: (
   716            (ArbitraryComponentSpec
   717               name: 'Arbitrary Component'
   718               layout: (LayoutFrame 3 0 3 0 128 0 104 0)
   719               hasBorder: false
   720             )
   721            (LabelSpec
   722               label: 'Scrollable'
   723               name: 'ScrollableArbitraryLabel1'
   724               layout: (AlignmentOrigin 7 0 7 0 0 0)
   725               resizeForLabel: true
   726               adjust: left
   727               canUIDrag: false
   728             )
   729            (LabelSpec
   730               label: 'Arbitrary-'
   731               name: 'ScrollableArbitraryLabel2'
   732               layout: (AlignmentOrigin 7 0 23 0 0 0)
   733               resizeForLabel: true
   734               adjust: left
   735               canUIDrag: false
   736             )
   737            (LabelSpec
   738               label: 'Component'
   739               name: 'ScrollableArbitraryLabel3'
   740               layout: (AlignmentOrigin 7 0 39 0 0 0)
   741               resizeForLabel: true
   742               adjust: left
   743               canUIDrag: false
   744             )
   745            (UISubSpecification
   746               name: 'SubSpecification'
   747               layout: (LayoutFrame 145 0 3 0 280 0 104 0)
   748             )
   749            (LabelSpec
   750               label: 'SubSpecification'
   751               name: 'SubSpecificationLabel'
   752               layout: (Point 149 7)
   753               resizeForLabel: true
   754               canUIDrag: false
   755             )
   756            (SubCanvasSpec
   757               name: 'SubCanvas'
   758               layout: (LayoutFrame 297 0 3 0 433 0 104 0)
   759               hasHorizontalScrollBar: true
   760               hasVerticalScrollBar: true
   761             )
   762            (LabelSpec
   763               label: 'SubCanvas'
   764               name: 'SubCanvasLabel'
   765               layout: (AlignmentOrigin 324 0 7 0 0 0)
   766               resizeForLabel: true
   767               adjust: left
   768               canUIDrag: false
   769             )
   770            (NonScrollableArbitraryComponentSpec
   771               name: 'NonSrollable Arbitrary Component'
   772               layout: (LayoutFrame 3 0 120 0 128 0 221 0)
   773             )
   774            (LabelSpec
   775               label: 'NonScrollable'
   776               name: 'NonScrollableArbitraryLabel1'
   777               layout: (AlignmentOrigin 7 0 124 0 0 0)
   778               resizeForLabel: true
   779               adjust: left
   780               canUIDrag: false
   781             )
   782            (LabelSpec
   783               label: 'Arbitrary-'
   784               name: 'NonScrollableArbitraryLabel2'
   785               layout: (AlignmentOrigin 7 0 140 0 0 0)
   786               resizeForLabel: true
   787               adjust: left
   788               canUIDrag: false
   789             )
   790            (LabelSpec
   791               label: 'Component'
   792               name: 'NonScrollableArbitraryLabel3'
   793               layout: (AlignmentOrigin 7 0 156 0 0 0)
   794               resizeForLabel: true
   795               adjust: left
   796               canUIDrag: false
   797             )
   798            )
   799          
   800         )
   801       )
   802 !
   803 
   804 standardGraphs
   805     "This resource specification was automatically generated
   806      by the UIPainter of ST/X."
   807 
   808     "Do not manually edit this!! If it is corrupted,
   809      the UIPainter may not be able to read the specification."
   810 
   811     "
   812      UIPainter new openOnClass:UISelectionPanel andSelector:#standardGraphs
   813      UISelectionPanel new openInterface:#standardGraphs
   814     "
   815 
   816     <resource: #canvas>
   817 
   818     ^ 
   819      #(FullSpec
   820         name: standardGraphs
   821         window: 
   822        (WindowSpec
   823           label: 'Graphs'
   824           name: 'Graphs'
   825           min: (Point 10 10)
   826           bounds: (Rectangle 14 46 453 161)
   827         )
   828         component: 
   829        (SpecCollection
   830           collection: (
   831            (GraphColumnView2DSpec
   832               name: 'GraphColumnView2D'
   833               layout: (LayoutFrame 3 0 3 0 208 0 98 0)
   834               gridX: 0
   835               gridY: 0
   836             )
   837            (LabelSpec
   838               label: 'GraphColumnViewView2D'
   839               name: 'GraphColumnView2DLabel'
   840               layout: (AlignmentOrigin 7 0 7 0 0 0)
   841               resizeForLabel: true
   842               adjust: left
   843               canUIDrag: false
   844             )
   845            (GraphColumnView3DSpec
   846               name: 'GraphColumnView3D'
   847               layout: (LayoutFrame 228 0 3 0 433 0 98 0)
   848             )
   849            (LabelSpec
   850               label: 'GraphColumnViewView3D'
   851               name: 'GraphColumnView3DLabel'
   852               layout: (AlignmentOrigin 232 0 7 0 0 0)
   853               resizeForLabel: true
   854               adjust: left
   855               canUIDrag: false
   856             )
   857            )
   858          
   859         )
   860       )
   861 !
   862 
   863 standardGroups
   864     "This resource specification was automatically generated
   865      by the UIPainter of ST/X."
   866 
   867     "Do not manually edit this!! If it is corrupted,
   868      the UIPainter may not be able to read the specification."
   869 
   870     "
   871      UIPainter new openOnClass:UISelectionPanel andSelector:#standardGroups
   872      UISelectionPanel new openInterface:#standardGroups
   873     "
   874 
   875     <resource: #canvas>
   876 
   877     ^ 
   878     #(FullSpec
   879        name: standardGroups
   880        window: 
   881       (WindowSpec
   882          label: 'Groups'
   883          name: 'Groups'
   884          min: (Point 10 10)
   885          bounds: (Rectangle 0 0 450 267)
   886        )
   887        component: 
   888       (SpecCollection
   889          collection: (
   890           (ViewSpec
   891              name: 'Box'
   892              layout: (LayoutFrame 3 0 3 0 95 0 95 0)
   893            )
   894           (TransparentBoxSpec
   895              name: 'TBox1'
   896              layout: (LayoutFrame 113 0 3 0 204 0 95 0)
   897            )
   898           (LabelSpec
   899              label: 'TransparentBox'
   900              name: 'Label1'
   901              layout: (AlignmentOrigin 106 0 5 0 0 0)
   902              translateLabel: true
   903              resizeForLabel: true
   904              adjust: left
   905              canUIDrag: false
   906            )
   907           (LabelSpec
   908              label: 'Box'
   909              name: 'ViewLabel'
   910              layout: (AlignmentOrigin 6 0 5 0 0 0)
   911              translateLabel: true
   912              resizeForLabel: true
   913              adjust: left
   914              canUIDrag: false
   915            )
   916           (LabelSpec
   917              label: 'Variable Panels'
   918              name: 'VPanelLabel'
   919              layout: (LayoutFrame 3 0 104 0 208 0 127 0)
   920              translateLabel: true
   921              adjust: left
   922              canUIDrag: false
   923            )
   924           (VariableHorizontalPanelSpec
   925              name: 'Variable Horizontal Panel'
   926              layout: (LayoutFrame 3 0 128 0 98 0 218 0)
   927              component: 
   928             (SpecCollection
   929                collection: (
   930                 (LabelSpec
   931                    label: 'A'
   932                    name: 'label4'
   933                    level: 2
   934                    translateLabel: true
   935                    canUIDrag: false
   936                  )
   937                 (LabelSpec
   938                    label: 'B'
   939                    name: 'label5'
   940                    level: 2
   941                    translateLabel: true
   942                    canUIDrag: false
   943                  )
   944                 )
   945               
   946              )
   947              handles: (Any 0.5 1.0)
   948            )
   949           (VariableVerticalPanelSpec
   950              name: 'Variable Vertical Panel'
   951              layout: (LayoutFrame 113 0 128 0 208 0 218 0)
   952              component: 
   953             (SpecCollection
   954                collection: (
   955                 (LabelSpec
   956                    label: 'A'
   957                    name: 'label9'
   958                    level: 2
   959                    translateLabel: true
   960                    canUIDrag: false
   961                  )
   962                 (LabelSpec
   963                    label: 'B'
   964                    name: 'label10'
   965                    level: 2
   966                    translateLabel: true
   967                    canUIDrag: false
   968                  )
   969                 )
   970               
   971              )
   972              handles: (Any 0.5 1.0)
   973            )
   974           (FramedBoxSpec
   975              label: 'Framed Box'
   976              name: 'Framed Box'
   977              layout: (LayoutFrame 228 0 3 0 433 0 98 0)
   978              labelPosition: topLeft
   979              translateLabel: true
   980            )
   981           (LabelSpec
   982              label: 'Panels'
   983              name: 'PanelLabel'
   984              layout: (LayoutFrame 228 0 104 0 433 0 127 0)
   985              translateLabel: true
   986              adjust: left
   987              canUIDrag: false
   988            )
   989           (HorizontalPanelViewSpec
   990              name: 'Horizontal Panel'
   991              layout: (LayoutFrame 228 0 128 0 312 0 218 0)
   992              horizontalLayout: center
   993              verticalLayout: center
   994              horizontalSpace: 3
   995              verticalSpace: 3
   996              component: 
   997             (SpecCollection
   998                collection: (
   999                 (LabelSpec
  1000                    label: 'A'
  1001                    name: 'label1'
  1002                    level: 2
  1003                    translateLabel: true
  1004                    extent: (Point 23 23)
  1005                    canUIDrag: false
  1006                  )
  1007                 (LabelSpec
  1008                    label: 'B'
  1009                    name: 'label2'
  1010                    level: 2
  1011                    translateLabel: true
  1012                    extent: (Point 23 23)
  1013                    canUIDrag: false
  1014                  )
  1015                 (LabelSpec
  1016                    label: 'C'
  1017                    name: 'label3'
  1018                    level: 2
  1019                    translateLabel: true
  1020                    extent: (Point 23 23)
  1021                    canUIDrag: false
  1022                  )
  1023                 )
  1024               
  1025              )
  1026            )
  1027           (VerticalPanelViewSpec
  1028              name: 'Vertical Panel'
  1029              layout: (LayoutFrame 320 0 128 0 367 0 218 0)
  1030              horizontalLayout: center
  1031              verticalLayout: center
  1032              horizontalSpace: 3
  1033              verticalSpace: 3
  1034              component: 
  1035             (SpecCollection
  1036                collection: (
  1037                 (LabelSpec
  1038                    label: 'A'
  1039                    name: 'label6'
  1040                    level: 2
  1041                    translateLabel: true
  1042                    extent: (Point 23 23)
  1043                    canUIDrag: false
  1044                  )
  1045                 (LabelSpec
  1046                    label: 'B'
  1047                    name: 'label7'
  1048                    level: 2
  1049                    translateLabel: true
  1050                    extent: (Point 23 23)
  1051                    canUIDrag: false
  1052                  )
  1053                 (LabelSpec
  1054                    label: 'C'
  1055                    name: 'label8'
  1056                    level: 2
  1057                    translateLabel: true
  1058                    extent: (Point 23 23)
  1059                    canUIDrag: false
  1060                  )
  1061                 )
  1062               
  1063              )
  1064            )
  1065           (PanelViewSpec
  1066              name: 'Panel'
  1067              layout: (LayoutFrame 375 0 128 0 433 0 218 0)
  1068              horizontalLayout: fitSpace
  1069              verticalLayout: fitSpace
  1070              horizontalSpace: 3
  1071              verticalSpace: 3
  1072              component: 
  1073             (SpecCollection
  1074                collection: (
  1075                 (LabelSpec
  1076                    label: 'A'
  1077                    name: 'label11'
  1078                    level: 2
  1079                    translateLabel: true
  1080                    extent: (Point 23 23)
  1081                    canUIDrag: false
  1082                  )
  1083                 (LabelSpec
  1084                    label: 'B'
  1085                    name: 'label12'
  1086                    level: 2
  1087                    translateLabel: true
  1088                    extent: (Point 23 23)
  1089                    canUIDrag: false
  1090                  )
  1091                 (LabelSpec
  1092                    label: 'C'
  1093                    name: 'label13'
  1094                    level: 2
  1095                    translateLabel: true
  1096                    extent: (Point 23 23)
  1097                    canUIDrag: false
  1098                  )
  1099                 (LabelSpec
  1100                    label: 'D'
  1101                    name: 'label14'
  1102                    level: 2
  1103                    translateLabel: true
  1104                    extent: (Point 23 23)
  1105                    canUIDrag: false
  1106                  )
  1107                 (LabelSpec
  1108                    label: 'E'
  1109                    name: 'label15'
  1110                    level: 2
  1111                    translateLabel: true
  1112                    extent: (Point 23 23)
  1113                    canUIDrag: false
  1114                  )
  1115                 )
  1116               
  1117              )
  1118            )
  1119           )
  1120         
  1121        )
  1122      )
  1123 !
  1124 
  1125 standardLists
  1126     "This resource specification was automatically generated
  1127      by the UIPainter of ST/X."
  1128 
  1129     "Do not manually edit this!! If it is corrupted,
  1130      the UIPainter may not be able to read the specification."
  1131 
  1132     "
  1133      UIPainter new openOnClass:UISelectionPanel andSelector:#standardLists
  1134      UISelectionPanel new openInterface:#standardLists
  1135     "
  1136 
  1137     <resource: #canvas>
  1138 
  1139     ^ 
  1140      #(FullSpec
  1141         name: standardLists
  1142         window: 
  1143        (WindowSpec
  1144           label: 'Lists'
  1145           name: 'Lists'
  1146           min: (Point 10 10)
  1147           bounds: (Rectangle 14 46 455 264)
  1148         )
  1149         component: 
  1150        (SpecCollection
  1151           collection: (
  1152            (SequenceViewSpec
  1153               name: 'List'
  1154               layout: (LayoutFrame 3 0 3 0 208 0 101 0)
  1155               hasHorizontalScrollBar: true
  1156               hasVerticalScrollBar: true
  1157               useIndex: false
  1158             )
  1159            (DataSetSpec
  1160               name: 'Table'
  1161               layout: (LayoutFrame 228 0 3 0 433 0 101 0)
  1162               hasHorizontalScrollBar: true
  1163               hasVerticalScrollBar: true
  1164               has3Dseparators: false
  1165             )
  1166            (SelectionInListModelViewSpec
  1167               name: 'SelectionInListModelView'
  1168               layout: (LayoutFrame 3 0 110 0 208 0 208 0)
  1169               hasHorizontalScrollBar: true
  1170               hasVerticalScrollBar: true
  1171               useIndex: false
  1172               highlightMode: line
  1173             )
  1174            )
  1175          
  1176         )
  1177       )
  1178 !
  1179 
  1180 standardMenus
  1181     "This resource specification was automatically generated
  1182      by the UIPainter of ST/X."
  1183 
  1184     "Do not manually edit this!! If it is corrupted,
  1185      the UIPainter may not be able to read the specification."
  1186 
  1187     "
  1188      UIPainter new openOnClass:UISelectionPanel andSelector:#standardMenus
  1189      UISelectionPanel new openInterface:#standardMenus
  1190     "
  1191 
  1192     <resource: #canvas>
  1193 
  1194     ^ 
  1195      #(FullSpec
  1196         name: standardMenus
  1197         window: 
  1198        (WindowSpec
  1199           label: 'Menus'
  1200           name: 'Menus'
  1201           min: (Point 10 10)
  1202           bounds: (Rectangle 14 46 491 269)
  1203         )
  1204         component: 
  1205        (SpecCollection
  1206           collection: (
  1207            (MenuPanelSpec
  1208               name: 'Tool Bar'
  1209               layout: (LayoutFrame 4 0 134 0 129 0 166 0)
  1210               textDefault: true
  1211             )
  1212            (LabelSpec
  1213               label: 'Tool Bar'
  1214               name: 'ToolBarLabel'
  1215               layout: (AlignmentOrigin 4 0 134 0 0 1)
  1216               resizeForLabel: true
  1217               adjust: left
  1218               canUIDrag: false
  1219             )
  1220            (MenuPanelSpec
  1221               name: 'Menu Bar'
  1222               layout: (LayoutFrame 4 0 188 0 129 0 210 0)
  1223             )
  1224            (LabelSpec
  1225               label: 'Menu Bar'
  1226               name: 'MenuBarLabel'
  1227               layout: (AlignmentOrigin 4 0 187 0 0 1)
  1228               resizeForLabel: true
  1229               adjust: left
  1230               canUIDrag: false
  1231             )
  1232            (PopUpListSpec
  1233               label: 'PopUp List'
  1234               name: 'PopUp List'
  1235               layout: (LayoutFrame 4 0 3 0 129 0 25 0)
  1236               tabable: true
  1237             )
  1238            (ComboListSpec
  1239               name: 'Combo List'
  1240               layout: (LayoutFrame 4 0 33 0 129 0 53 0)
  1241               useIndex: false
  1242             )
  1243            (ComboBoxSpec
  1244               name: 'Combo Box'
  1245               layout: (LayoutFrame 4 0 61 0 129 0 81 0)
  1246               acceptOnPointerLeave: false
  1247             )
  1248            (ExtendedComboBoxSpec
  1249               name: 'Extended Combo Box'
  1250               layout: (LayoutFrame 4 0 88 0 129 0 108 0)
  1251               miniScrollerHorizontal: true
  1252             )
  1253            (TabViewSpec
  1254               name: 'Tab Header'
  1255               layout: (LayoutFrame 146 0 3 0 281 0 39 0)
  1256             )
  1257            (NoteBookViewSpec
  1258               name: 'Note Book'
  1259               layout: (LayoutFrame 146 0 46 0 281 0 138 0)
  1260             )
  1261            (UIGalleryViewSpec
  1262               name: 'Gallery'
  1263               layout: (LayoutFrame 298 0 3 0 434 0 138 0)
  1264             )
  1265            (ColorMenuSpec
  1266               name: 'ColorMenu'
  1267               layout: (LayoutFrame 143 0 188 0 -46 1.0 210 0)
  1268               labelsAreColored: true
  1269             )
  1270            (LabelSpec
  1271               label: 'Color Menu'
  1272               name: 'Label1'
  1273               layout: (AlignmentOrigin 142 0 187 0 0 1)
  1274               resizeForLabel: true
  1275               adjust: left
  1276               canUIDrag: false
  1277             )
  1278            )
  1279          
  1280         )
  1281       )
  1282 !
  1283 
  1284 standardMisc
  1285     "This resource specification was automatically generated
  1286      by the UIPainter of ST/X."
  1287 
  1288     "Do not manually edit this!! If it is corrupted,
  1289      the UIPainter may not be able to read the specification."
  1290 
  1291     "
  1292      UIPainter new openOnClass:UISelectionPanel andSelector:#standardMisc
  1293      UISelectionPanel new openInterface:#standardMisc
  1294     "
  1295 
  1296     <resource: #canvas>
  1297 
  1298     ^ 
  1299      #(FullSpec
  1300         name: standardMisc
  1301         window: 
  1302        (WindowSpec
  1303           label: 'NewApplication'
  1304           name: 'NewApplication'
  1305           min: (Point 10 10)
  1306           bounds: (Rectangle 14 46 453 289)
  1307         )
  1308         component: 
  1309        (SpecCollection
  1310           collection: (
  1311            (LabelSpec
  1312               label: 'StepSlider'
  1313               name: 'StepSliderLabel'
  1314               layout: (AlignmentOrigin 87 0 9 0 1 0)
  1315               resizeForLabel: true
  1316               canUIDrag: false
  1317             )
  1318            (LabelSpec
  1319               label: 'Slider'
  1320               name: 'SliderLabel'
  1321               layout: (AlignmentOrigin 87 0 35 0 1 0)
  1322               resizeForLabel: true
  1323               canUIDrag: false
  1324             )
  1325            (SliderSpec
  1326               name: 'Slider'
  1327               layout: (LayoutFrame 88 0 34 0 203 0 52 0)
  1328               orientation: horizontal
  1329             )
  1330            (LabelSpec
  1331               label: 'ThumbWheel'
  1332               name: 'ThumbWheelLabel'
  1333               layout: (AlignmentOrigin 88 0 62 0 1 0)
  1334               resizeForLabel: true
  1335               canUIDrag: false
  1336             )
  1337            (ThumbWheelSpec
  1338               name: 'Thumb Wheel'
  1339               layout: (LayoutFrame 88 0 60 0 203 0 80 0)
  1340               orientation: horizontal
  1341             )
  1342            (LabelSpec
  1343               label: 'ScrollBar'
  1344               name: 'ScrollBarLabel'
  1345               layout: (AlignmentOrigin 87 0 103 0 1 0)
  1346               initiallyInvisible: true
  1347               resizeForLabel: true
  1348               canUIDrag: false
  1349             )
  1350            (LabelSpec
  1351               label: 'Scroller'
  1352               name: 'ScrollerLabel'
  1353               layout: (AlignmentOrigin 87 0 130 0 1 0)
  1354               initiallyInvisible: true
  1355               resizeForLabel: true
  1356               canUIDrag: false
  1357             )
  1358            (ScrollerSpec
  1359               name: 'Scroller'
  1360               layout: (LayoutFrame 88 0 127 0 203 0 145 0)
  1361               initiallyInvisible: true
  1362               orientation: horizontal
  1363             )
  1364            (SteppingSliderSpec
  1365               name: 'VStepSlider'
  1366               layout: (LayoutFrame 226 0 6 0 244 0 106 0)
  1367             )
  1368            (SliderSpec
  1369               name: 'VSlider'
  1370               layout: (LayoutFrame 254 0 6 0 272 0 106 0)
  1371             )
  1372            (ThumbWheelSpec
  1373               name: 'VThumbWheel'
  1374               layout: (LayoutFrame 280 0 6 0 298 0 106 0)
  1375             )
  1376            (ScrollerSpec
  1377               name: 'VScroller'
  1378               layout: (LayoutFrame 345 0 6 0 363 0 106 0)
  1379               initiallyInvisible: true
  1380             )
  1381            (LabelSpec
  1382               label: 'Region'
  1383               name: 'RegionLabel'
  1384               layout: (AlignmentOrigin 83 0 177 0 1 0)
  1385               resizeForLabel: true
  1386               adjust: left
  1387               canUIDrag: false
  1388             )
  1389            (RegionSpec
  1390               name: 'Region'
  1391               layout: (LayoutFrame 88 0 171 0 203 0 200 0)
  1392               lineWidth: 2
  1393               regionType: ellipse
  1394             )
  1395            (LabelSpec
  1396               label: 'Separator'
  1397               name: 'SeparatorLabel'
  1398               layout: (AlignmentOrigin 83 0 207 0 1 0)
  1399               resizeForLabel: true
  1400               adjust: left
  1401               canUIDrag: false
  1402             )
  1403            (DividerSpec
  1404               name: 'Separator'
  1405               layout: (LayoutFrame 88 0 213 0 203 0 217 0)
  1406             )
  1407            (LabelSpec
  1408               label: 'Progress Indicator'
  1409               name: 'ProgressIndicatorsLabel'
  1410               layout: (AlignmentOrigin 333 0 117 0 1 0)
  1411               resizeForLabel: true
  1412               adjust: left
  1413               canUIDrag: false
  1414             )
  1415            (ProgressIndicatorSpec
  1416               name: 'Progress Indicator'
  1417               layout: (LayoutFrame 338 0 114 0 433 0 132 0)
  1418             )
  1419            (LabelSpec
  1420               label: 'Round
  1421 Progress Indicator'
  1422               name: 'RoundProgressIndicatorsLabel'
  1423               layout: (AlignmentOrigin 333 0 167 0 1 0)
  1424               resizeForLabel: true
  1425               adjust: left
  1426               canUIDrag: false
  1427             )
  1428            (RoundProgressIndicatorSpec
  1429               name: 'Round Progress Indicator'
  1430               layout: (LayoutFrame 338 0 136 0 425 0 219 0)
  1431               level: 0
  1432               borderWidth: 1
  1433             )
  1434            (ScrollBarSpec
  1435               name: 'ScrollBar'
  1436               layout: (LayoutFrame 88 0 100 0 203 0 118 0)
  1437               initiallyInvisible: true
  1438               orientation: horizontal
  1439             )
  1440            (ScrollBarSpec
  1441               name: 'VScrollBar'
  1442               layout: (LayoutFrame 317 0 6 0 335 0 106 0)
  1443               initiallyInvisible: true
  1444             )
  1445            )
  1446          
  1447         )
  1448       )
  1449 !
  1450 
  1451 standardMorphs1
  1452     "This resource specification was automatically generated
  1453      by the UIPainter of ST/X."
  1454 
  1455     "Do not manually edit this!! If it is corrupted,
  1456      the UIPainter may not be able to read the specification."
  1457 
  1458     "
  1459      UIPainter new openOnClass:UISelectionPanel andSelector:#standardMorphs1
  1460      UISelectionPanel new openInterface:#standardMorphs1
  1461     "
  1462 
  1463     <resource: #canvas>
  1464 
  1465     ^ 
  1466      #(FullSpec
  1467         name: standardMorphs1
  1468         window: 
  1469        (WindowSpec
  1470           label: 'Morphs'
  1471           name: 'Morphs'
  1472           min: (Point 10 10)
  1473           bounds: (Rectangle 0 0 419 272)
  1474         )
  1475         component: 
  1476        (SpecCollection
  1477           collection: (
  1478            (ArcMorphSpec
  1479               name: 'Circle'
  1480               layout: (LayoutFrame 3 0 3 0 63 0 63 0)
  1481               line: true
  1482               lineColor: (Color 100.0 0.0 0.0)
  1483             )
  1484            (ArcMorphSpec
  1485               name: 'FilledCircle'
  1486               layout: (LayoutFrame 3 0 70 0 63 0 133 0)
  1487               foregroundColor: (Color 100.0 100.0 0.0)
  1488               fill: true
  1489             )
  1490            (ArcMorphSpec
  1491               name: 'FilledCircleL'
  1492               layout: (LayoutFrame 3 0 143 0 63 0 206 0)
  1493               foregroundColor: (Color 100.0 100.0 0.0)
  1494               line: true
  1495               fill: true
  1496               lineColor: (Color 100.0 0.0 0.0)
  1497             )
  1498            (RectangleMorphSpec
  1499               name: 'RectangleMorph1'
  1500               layout: (LayoutFrame 70 0 3 0 133 0 63 0)
  1501               foregroundColor: (Color 100.0 100.0 0.0)
  1502               line: true
  1503               fill: false
  1504               lineColor: (Color 100.0 0.0 0.0)
  1505             )
  1506            (RectangleMorphSpec
  1507               name: 'RectangleMorph2'
  1508               layout: (LayoutFrame 70 0 72 0 133 0 135 0)
  1509               foregroundColor: (Color 100.0 100.0 0.0)
  1510               fill: true
  1511             )
  1512            (RectangleMorphSpec
  1513               name: 'RectangleMorph3'
  1514               layout: (LayoutFrame 70 0 139 0 133 0 202 0)
  1515               foregroundColor: (Color 100.0 100.0 0.0)
  1516               line: true
  1517               fill: true
  1518               lineColor: (Color 100.0 0.0 0.0)
  1519             )
  1520            (ArcMorphSpec
  1521               name: 'FilledPieL'
  1522               layout: (LayoutFrame 143 0 143 0 206 0 206 0)
  1523               foregroundColor: (Color 100.0 100.0 0.0)
  1524               line: true
  1525               fill: true
  1526               lineColor: (Color 100.0 0.0 0.0)
  1527               startAngle: -45
  1528               sweepAngle: 270
  1529               pie: true
  1530             )
  1531            (ArcMorphSpec
  1532               name: 'FilledPie'
  1533               layout: (LayoutFrame 143 0 70 0 206 0 133 0)
  1534               foregroundColor: (Color 100.0 100.0 0.0)
  1535               fill: true
  1536               startAngle: -45
  1537               sweepAngle: 270
  1538               pie: true
  1539             )
  1540            (ArcMorphSpec
  1541               name: 'Pie'
  1542               layout: (LayoutFrame 143 0 3 0 206 0 63 0)
  1543               line: true
  1544               lineColor: (Color 100.0 0.0 0.0)
  1545               startAngle: -45
  1546               sweepAngle: 270
  1547               pie: true
  1548             )
  1549            (LineSegmentMorphSpec
  1550               name: 'LineSegmentMorph1'
  1551               foregroundColor: (Color 100.0 100.0 0.0)
  1552               fill: true
  1553               lineColor: (Color 100.0 0.0 0.0)
  1554               startPoint: (Point 214 9)
  1555               endPoint: (Point 254 59)
  1556               showArrow: true
  1557             )
  1558            (LineSegmentMorphSpec
  1559               name: 'Line1'
  1560               foregroundColor: (Color 100.0 100.0 0.0)
  1561               fill: true
  1562               lineColor: (Color 100.0 0.0 0.0)
  1563               startPoint: (Point 214 75)
  1564               endPoint: (Point 254 125)
  1565             )
  1566            (SketchMorphSpec
  1567               name: 'SketchMorph1'
  1568               layout: (LayoutFrame 280 0 10 0 373 0 90 0)
  1569               image: sketchImageIcon
  1570             )
  1571            )
  1572          
  1573         )
  1574       )
  1575 !
  1576 
  1577 standardTexts
  1578     "This resource specification was automatically generated
  1579      by the UIPainter of ST/X."
  1580 
  1581     "Do not manually edit this!! If it is corrupted,
  1582      the UIPainter may not be able to read the specification."
  1583 
  1584     "
  1585      UIPainter new openOnClass:UISelectionPanel andSelector:#standardTexts
  1586      UISelectionPanel new openInterface:#standardTexts
  1587     "
  1588 
  1589     <resource: #canvas>
  1590 
  1591     ^ 
  1592      #(FullSpec
  1593         name: standardTexts
  1594         window: 
  1595        (WindowSpec
  1596           label: 'Texts'
  1597           name: 'Texts'
  1598           min: (Point 10 10)
  1599           bounds: (Rectangle 0 0 464 224)
  1600         )
  1601         component: 
  1602        (SpecCollection
  1603           collection: (
  1604            (TextEditorSpec
  1605               name: 'Text Editor'
  1606               layout: (LayoutFrame 3 0 3 0 208 0 98 0)
  1607               hasHorizontalScrollBar: true
  1608               hasVerticalScrollBar: true
  1609               hasKeyboardFocusInitially: false
  1610             )
  1611            (HTMLViewSpec
  1612               name: 'HTML Browser'
  1613               layout: (LayoutFrame 228 0 3 0 433 0 98 0)
  1614               hasHorizontalScrollBar: true
  1615               hasVerticalScrollBar: true
  1616             )
  1617            (InputFieldSpec
  1618               name: 'Entry Field'
  1619               layout: (LayoutFrame 3 0 113 0 208 0 135 0)
  1620               acceptOnReturn: true
  1621               acceptOnTab: true
  1622               acceptOnPointerLeave: true
  1623             )
  1624            (FilenameInputFieldSpec
  1625               name: 'Filename Entry Field'
  1626               layout: (LayoutFrame 3 0 141 0 208 0 163 0)
  1627               acceptOnPointerLeave: true
  1628             )
  1629            (FilenameInputFieldSpec
  1630               name: 'Filename + History'
  1631               layout: (LayoutFrame 3 0 171 0 208 0 193 0)
  1632               acceptOnPointerLeave: true
  1633               viewClassName: FilenameWidgetWithHistory
  1634             )
  1635            (LabelSpec
  1636               label: 'Label'
  1637               name: 'Label'
  1638               layout: (LayoutFrame 228 0 113 0 433 0 135 0)
  1639               translateLabel: true
  1640             )
  1641            (LinkButtonSpec
  1642               label: 'LinkButton'
  1643               name: 'LinkButton1'
  1644               layout: (LayoutFrame 228 0 141 0 433 0 163 0)
  1645               translateLabel: true
  1646             )
  1647            )
  1648          
  1649         )
  1650       )
  1651 !
  1652 
  1653 standardTrees
  1654     "This resource specification was automatically generated
  1655      by the UIPainter of ST/X."
  1656 
  1657     "Do not manually edit this!! If it is corrupted,
  1658      the UIPainter may not be able to read the specification."
  1659 
  1660     "
  1661      UIPainter new openOnClass:UISelectionPanel andSelector:#standardTrees
  1662      UISelectionPanel new openInterface:#standardTrees
  1663     "
  1664 
  1665     <resource: #canvas>
  1666 
  1667     ^ 
  1668      #(FullSpec
  1669         name: standardTrees
  1670         window: 
  1671        (WindowSpec
  1672           label: 'Trees'
  1673           name: 'Trees'
  1674           min: (Point 10 10)
  1675           bounds: (Rectangle 14 46 455 264)
  1676         )
  1677         component: 
  1678        (SpecCollection
  1679           collection: (
  1680            (SelectionInTreeViewSpec
  1681               name: 'Tree List'
  1682               layout: (LayoutFrame 4 0 3 0 209 0 101 0)
  1683               hasHorizontalScrollBar: true
  1684               hasVerticalScrollBar: true
  1685               highlightMode: line
  1686             )
  1687            (FileSelectionTreeSpec
  1688               name: 'File Tree List'
  1689               layout: (LayoutFrame 229 0 3 0 434 0 101 0)
  1690               hasHorizontalScrollBar: true
  1691               hasVerticalScrollBar: true
  1692               highlightMode: line
  1693             )
  1694            (HierarchicalListViewSpec
  1695               name: 'New ModelTree List'
  1696               layout: (LayoutFrame 4 0 110 0 209 0 208 0)
  1697               hasHorizontalScrollBar: true
  1698               hasVerticalScrollBar: true
  1699               highlightMode: line
  1700             )
  1701            )
  1702          
  1703         )
  1704       )
  1705 !
  1706 
  1707 standardUserPanel
  1708     "this window spec was automatically generated by the ST/X UIPainter"
  1709 
  1710     "do not manually edit this - the painter/builder may not be able to
  1711      handle the specification if it's corrupted."
  1712 
  1713     "
  1714      UIPainter new openOnClass:UISelectionPanel andSelector:#standardUserPanel
  1715      UISelectionPanel new openInterface:#standardUserPanel
  1716     "
  1717 
  1718     <resource: #canvas>
  1719 
  1720     ^
  1721      
  1722        #(#FullSpec
  1723           #'window:' 
  1724            #(#WindowSpec
  1725               #'name:' 'UserPanel'
  1726               #'layout:' #(#LayoutFrame 0 0.0 0 0.0 0 1.0 0 1.0)
  1727               #'label:' 'UserPanel'
  1728               #'bounds:' #(#Rectangle 0 0 445 162)
  1729           )
  1730           #'component:' 
  1731            #(#SpecCollection
  1732               #'collection:' 
  1733                #(
  1734                  #(#LabelSpec
  1735                     #'name:' 'helpText'
  1736                     #'layout:' #(#Point 10 0)
  1737                     #'labelChannel:' #userDefinedHelpText
  1738                     #'resizeForLabel:' true
  1739                     #'canUIDrag:' false
  1740                 )
  1741               )
  1742           )
  1743       )
  1744 
  1745     "Modified (comment): / 13-02-2017 / 20:33:44 / cg"
  1746 ! !
  1747 
  1748 !UISelectionPanel class methodsFor:'menus'!
  1749 
  1750 menuSelected
  1751 
  1752     <resource: #menu>
  1753 
  1754     ^ #(#Menu #(
  1755                 #(#MenuItem
  1756                         #'label:' 'copy'
  1757                         #'value:' #copy
  1758                  )
  1759                 #(#MenuItem
  1760                         #'label:' 'cut'
  1761                         #'value:' #cut
  1762                  )
  1763                 )
  1764                nil
  1765                nil
  1766         )
  1767 
  1768     "Modified: / 29.10.1997 / 03:20:30 / cg"
  1769 !
  1770 
  1771 menuUnselected
  1772     <resource: #menu>
  1773 
  1774     ^ #(#Menu #(
  1775                 #(#MenuItem
  1776                         #'label:' 'paste'
  1777                         #'value:' #paste
  1778                  )
  1779                 )
  1780                nil
  1781                nil
  1782         )
  1783 
  1784     "Modified: / 29.10.1997 / 03:20:38 / cg"
  1785 ! !
  1786 
  1787 !UISelectionPanel class methodsFor:'resources'!
  1788 
  1789 classResources
  1790     "my translations are found in the UIPainter classes resources"
  1791 
  1792     ^ UIPainter classResources 
  1793 ! !
  1794 
  1795 !UISelectionPanel methodsFor:'actions'!
  1796 
  1797 defineClassAndSelector
  1798     |bd cls sel lbl|
  1799 
  1800     bd := IdentityDictionary new.
  1801     bd at:#className put:( userClass asValue).
  1802     bd at:#specsKey  put:( (userSpecs  ? '') asValue).
  1803     bd at:#labelsKey put:( (userLabels ? '') asValue).
  1804     bd at:#updateDefaultResources put:(false asValue).
  1805 
  1806     (self openDialogInterface:#nameAndSelectorSpec withBindings:bd) ifTrue:[
  1807         (      (cls := (bd at:#className) value) notNil
  1808           and:[(sel := (bd at:#specsKey)  value) notNil
  1809           and:[(lbl := (bd at:#labelsKey) value) notNil]]
  1810         ) ifTrue:[
  1811             userClass  := cls.
  1812             userSpecs  := sel.
  1813             userLabels := lbl.
  1814 
  1815             (bd at:#updateDefaultResources) value ifTrue:[
  1816                 UserClass  := userClass.
  1817                 UserSpecs  := userSpecs.
  1818                 UserLabels := userLabels.
  1819             ]
  1820         ]
  1821     ].
  1822 !
  1823 
  1824 paste:something
  1825     "paste something at a point"
  1826 
  1827     |coll specs point gallerysDevice ext spec|
  1828 
  1829     clipBoardSpec isNil ifTrue:[
  1830         clipBoardSpec := SpecCollection new.
  1831         clipBoardSpec collection:(OrderedCollection new).
  1832     ].
  1833     coll   := clipBoardSpec collection.
  1834     gallerysDevice := gallery device.
  1835 
  1836     point  := gallerysDevice translatePoint:(gallerysDevice pointerPosition)
  1837                            fromView:nil
  1838                              toView:(gallery canvas).
  1839 
  1840     point y < 1 ifTrue:[point y:1].
  1841     ext := gallery extent - (10@10).
  1842 
  1843     (specs := something) isCollection ifFalse:[
  1844         specs := Array with:something
  1845     ].
  1846 
  1847     specs do:[:aSpec|
  1848         point x > ext x ifTrue:[point x:1].
  1849         point y > ext y ifTrue:[point y:1].
  1850 
  1851         spec := aSpec copy.
  1852         spec keepUILayout ifFalse:[
  1853             spec layout:(LayoutOrigin fromPoint:point).
  1854         ].
  1855         coll add:spec.
  1856         point := point + (20@20).
  1857     ].
  1858     gallery update.
  1859 
  1860     "Modified: / 10.10.2001 / 14:14:36 / cg"
  1861 !
  1862 
  1863 raiseMenu
  1864     "can open menu"
  1865 
  1866     |spec menu value paste|
  1867 
  1868     spec := self clientSpec value.
  1869 
  1870     spec notNil ifTrue:[
  1871         menu := self class menuSelected decodeAsLiteralArray.
  1872         self isClipBoard ifFalse:[
  1873             (menu someMenuItemWithValue:#cut) disable.
  1874         ].
  1875 
  1876         (value := menu startUp) == #cut ifTrue:[
  1877             clipBoardSpec collection remove:spec ifAbsent:nil.
  1878             gallery update.
  1879         ] ifFalse:[
  1880             value == #copy ifTrue:[
  1881                 self window setClipboardObject:spec
  1882             ]
  1883         ].
  1884       ^ self
  1885     ].
  1886 
  1887     self isUserBoard ifTrue:[
  1888         ^ self defineClassAndSelector
  1889     ].
  1890 
  1891     paste := self window getClipboardObject.
  1892 
  1893     (self canPaste:paste) ifTrue:[
  1894         menu := self class menuUnselected decodeAsLiteralArray.
  1895 
  1896         (menu startUp) == #paste ifTrue:[
  1897             self paste:paste
  1898         ]
  1899     ].
  1900 ! !
  1901 
  1902 !UISelectionPanel methodsFor:'aspects'!
  1903 
  1904 clientSpec
  1905     ^ gallery clientSpecHolder
  1906 !
  1907 
  1908 clipBoardSpec
  1909     ^ clipBoardSpec
  1910 !
  1911 
  1912 gallery
  1913     ^ gallery
  1914 !
  1915 
  1916 galleryList
  1917     ^ gallery listHolder
  1918 !
  1919 
  1920 galleryModel
  1921     ^ gallery model
  1922 
  1923 !
  1924 
  1925 majorChannel
  1926     |holder|
  1927 
  1928     (holder := builder bindingAt:#majorChannel) isNil ifTrue:[
  1929         holder := AspectAdaptor new subject:self; forAspect:#majorSelection.
  1930         builder aspectAt:#majorChannel put:holder.
  1931     ].
  1932     ^ holder
  1933 !
  1934 
  1935 majorList
  1936     ^ self class specifications collect:[:el| el first]
  1937 !
  1938 
  1939 minorKeys
  1940     ^ gallery minorKeysHolder
  1941 ! !
  1942 
  1943 !UISelectionPanel methodsFor:'change & update'!
  1944 
  1945 update:something with:aParameter from:changedObject
  1946     "one of my models changed its value"
  1947 
  1948     |label|
  1949 
  1950     changedObject == self clientSpec  ifTrue:[
  1951         (label := changedObject value) notNil ifTrue:[
  1952             label := 'Widget Gallery: ' , label name.
  1953         ] ifFalse:[
  1954             label := 'Widget Gallery'
  1955         ].
  1956         builder window topView label:(label , ' ')
  1957     ].
  1958 
  1959     super update:something with:aParameter from:changedObject.
  1960 ! !
  1961 
  1962 !UISelectionPanel methodsFor:'drag & drop'!
  1963 
  1964 canDropObjects:aCollectionOfDropObjects in:aComponent
  1965     ^ self canPaste:(aCollectionOfDropObjects collect:[:el| el theObject ]).
  1966 
  1967     "Created: / 13-10-2006 / 15:53:04 / cg"
  1968 !
  1969 
  1970 dropObjects:aCollectionOfDropObjects in:aComponent
  1971 
  1972     |spc top|
  1973 
  1974     top := DragAndDropManager dragOriginatorQuerySignal query topView.
  1975 
  1976     top == aComponent topView ifTrue:[
  1977         spc := self clientSpec value.
  1978         spc isNil ifTrue:[^ self].
  1979 
  1980         (clipBoardSpec collection remove:spc ifAbsent:nil) isNil ifTrue:[
  1981             ^ self
  1982         ].
  1983     ] ifFalse:[
  1984         spc := aCollectionOfDropObjects collect:[:el| el theObject].
  1985     ].
  1986     self paste:spc.
  1987 
  1988     "Modified: / 18-03-1999 / 18:29:19 / stefan"
  1989     "Created: / 13-10-2006 / 18:25:50 / cg"
  1990 ! !
  1991 
  1992 !UISelectionPanel methodsFor:'initialization'!
  1993 
  1994 initialize
  1995     |holder|
  1996 
  1997     super initialize.
  1998 
  1999     userClass  := UserClass.
  2000     userSpecs  := UserSpecs.
  2001     userLabels := UserLabels.
  2002 
  2003     gallery := UIGalleryView new.
  2004 
  2005     gallery           model:(ValueHolder new).
  2006     gallery      listHolder:(ValueHolder new).
  2007     gallery minorKeysHolder:(ValueHolder new).
  2008     gallery    menuSelector:#raiseMenu.
  2009 
  2010     gallery clientSpecHolder:(holder := ValueHolder new).
  2011     holder  addDependent:self.
  2012 
  2013     majorSelection := 0.
  2014 ! !
  2015 
  2016 !UISelectionPanel methodsFor:'queries'!
  2017 
  2018 canPaste:something
  2019     "returns true if something could be paste"
  2020 
  2021     (self isClipBoard and:[something notNil]) ifTrue:[
  2022         something isCollection ifTrue:[
  2023             something notEmpty ifTrue:[
  2024                 ^ (something at:1) isKindOf:UISpecification
  2025             ]
  2026         ] ifFalse:[
  2027             ^ something isKindOf:UISpecification
  2028         ]
  2029     ].
  2030     ^ false
  2031 !
  2032 
  2033 isClipBoard
  2034     "returns true if current view is clip board"
  2035 
  2036     majorSelection ~~ 0 ifTrue:[
  2037         ^ (self majorList at:majorSelection) startsWith:'Clip'
  2038     ].
  2039     ^ false
  2040 !
  2041 
  2042 isUserBoard
  2043     "returns true if current view is clip board"
  2044 
  2045     majorSelection ~~ 0 ifTrue:[
  2046         ^ (self majorList at:majorSelection) startsWith:'User'
  2047     ].
  2048     ^ false
  2049 ! !
  2050 
  2051 !UISelectionPanel methodsFor:'selection'!
  2052 
  2053 majorSelection
  2054     ^ majorSelection ? 0
  2055 !
  2056 
  2057 majorSelection:aSelection
  2058     |spec model|
  2059 
  2060     (majorSelection == aSelection or:[aSelection == 0]) ifTrue:[
  2061         ^ self
  2062     ].
  2063 
  2064     gallery builder:nil.
  2065     majorSelection := aSelection.
  2066     spec := ((self class specifications) at:majorSelection) last.
  2067 
  2068     model := self galleryModel.
  2069     model value:0.
  2070     self minorKeys value:nil.
  2071 
  2072     spec isSymbol ifFalse:[
  2073         self galleryList  value:(spec collect:[:a| a first]).
  2074         self minorKeys setValue:(spec collect:[:a| a last]).
  2075     ] ifTrue:[
  2076         self perform:spec.
  2077     ].
  2078     model value:1.
  2079 
  2080     "Modified: / 21.4.1998 / 11:59:08 / cg"
  2081 ! !
  2082 
  2083 !UISelectionPanel methodsFor:'startup & release'!
  2084 
  2085 closeRequest
  2086     |sav|
  2087 
  2088     (sav := masterApplication) notNil ifTrue:[
  2089         masterApplication := nil.
  2090         sav closeRequestFor:(self window).
  2091         masterApplication := sav.
  2092     ] ifFalse:[
  2093         super closeRequest.
  2094     ]
  2095 
  2096     "Modified: 28.7.1997 / 09:44:40 / cg"
  2097 !
  2098 
  2099 postOpenWith:aBuilder
  2100     self majorChannel value:1.
  2101     super postOpenWith:aBuilder.
  2102 ! !
  2103 
  2104 !UISelectionPanel methodsFor:'user defined'!
  2105 
  2106 userDefined
  2107     |cls lbl sel builder|
  2108 
  2109     cls := self resolveName:userClass.
  2110 
  2111     (cls notNil and:[(cls respondsTo:userLabels)]) ifTrue:[
  2112         lbl := cls perform:userLabels.
  2113         sel := Array new:(lbl size) withAll:#userDefinedSpec.
  2114         self galleryList value:lbl.
  2115         self minorKeys   value:sel.
  2116     ] ifFalse:[
  2117         builder := UIBuilder new isEditing:true.
  2118 
  2119         builder application:self.
  2120         gallery builder:builder. 
  2121         self galleryList value:#( '???' ).
  2122         self minorKeys   value:#( standardUserPanel ).
  2123     ]
  2124 !
  2125 
  2126 userDefinedHelpText
  2127 
  2128 ^ '
  2129 no user defined specifications are configured yet. To assign
  2130 user defined specifications to the gallery, press the middle
  2131 button of your mouse to open a dialog.
  2132 '
  2133 !
  2134 
  2135 userDefinedSpec
  2136     |cls spc idx|
  2137 
  2138     cls := self resolveName:userClass.
  2139 
  2140     (cls notNil and:[(cls respondsTo:userSpecs)]) ifTrue:[
  2141         spc := cls perform:userSpecs.
  2142         idx := self galleryModel value.
  2143 
  2144         idx <= spc size ifTrue:[
  2145             spc := spc at:idx.
  2146             (cls respondsTo:spc) ifTrue:[
  2147                 ^ cls perform:spc
  2148             ]
  2149         ]
  2150     ].
  2151   ^ nil
  2152 ! !
  2153 
  2154 !UISelectionPanel::UserDefinedGallery class methodsFor:'class initialization'!
  2155 
  2156 initialize
  2157     "initialize my default user-def from the superclasses specs.
  2158      I.e. provide a clocks entry"
  2159 
  2160     LabelList := self defaultListOfLabels asOrderedCollection.
  2161     SelectorList := self defaultListOfSelectors asOrderedCollection.
  2162     HolderList := OrderedCollection newWithSize:(SelectorList size).
  2163     NextUniqueNumber := 1.
  2164 
  2165     UISelectionPanel 
  2166         userClass:self
  2167         specSelector:#listOfSelectors
  2168         labelSelector:#listOfLabels.
  2169 
  2170     "
  2171      self initialize
  2172     "
  2173 
  2174     "Modified: / 5.12.1997 / 14:25:22 / cg"
  2175     "Created: / 8.12.1997 / 18:49:42 / cg"
  2176 ! !
  2177 
  2178 !UISelectionPanel::UserDefinedGallery class methodsFor:'defaults'!
  2179 
  2180 defaultListOfLabels
  2181     ^ #( 'Clocks etc.' 'Business Graphics' )
  2182 
  2183     "Created: / 8.12.1997 / 18:50:06 / cg"
  2184     "Modified: / 16.6.1998 / 10:20:12 / cg"
  2185 !
  2186 
  2187 defaultListOfSelectors
  2188     ^ #( clocksSpec businessGraphicsSpec)
  2189 
  2190     "Modified: / 5.12.1997 / 14:03:55 / cg"
  2191     "Created: / 8.12.1997 / 18:50:21 / cg"
  2192 ! !
  2193 
  2194 !UISelectionPanel::UserDefinedGallery class methodsFor:'documentation'!
  2195 
  2196 copyright
  2197 "
  2198  COPYRIGHT (c) 1997 by eXept Software AG
  2199               All Rights Reserved
  2200 
  2201  This software is furnished under a license and may be used
  2202  only in accordance with the terms of that license and with the
  2203  inclusion of the above copyright notice.   This software may not
  2204  be provided or otherwise made available to, or used by, any
  2205  other person.  No title to or ownership of the software is
  2206  hereby transferred.
  2207 "
  2208 
  2209 
  2210 
  2211 !
  2212 
  2213 documentation
  2214 "
  2215     The standard user-defined selectionPanel entry.
  2216     Here, a single item named 'clocks' is provided, containing
  2217     an analog and digital clock.
  2218     This is a dumb example; the actual user-defined panel may be
  2219     extended dynamically.
  2220 
  2221     Frameworks which provide additional widgets may dynamically
  2222     add more entries, by sending #addUserSpecHolder:label:
  2223     or #removeUserSpecWithLabel:.
  2224     Typically, this is done when a framework is loaded, by one of the
  2225     frameworks class-initialization methods.
  2226 
  2227     [start with:]
  2228         UISelectionPanel open
  2229 
  2230     [author:]
  2231         Claus Gittinger
  2232         Claus Atzkern
  2233 
  2234     [see also:]
  2235         TabView
  2236         NoteBookView
  2237         UIGalleryView
  2238         UIPainter
  2239 
  2240 "
  2241 ! !
  2242 
  2243 !UISelectionPanel::UserDefinedGallery class methodsFor:'installation / deinstallation'!
  2244 
  2245 addUserSpecHolder:aValueHolder label:aLabelString
  2246     "add a new entry with the given label.
  2247      The specHolder is typically either a spec, a valueHolder or a block.
  2248      In any case, it should return a valid spec from the #value message.
  2249      This spec is installed under that label."
  2250 
  2251     |syntheticSelector idx|
  2252 
  2253     syntheticSelector := ('userSpec' , NextUniqueNumber printString) asSymbol.
  2254     NextUniqueNumber := NextUniqueNumber + 1.
  2255 
  2256     idx := LabelList indexOf:aLabelString.
  2257     idx ~~ 0 ifTrue:[
  2258         SelectorList at:idx put:syntheticSelector.
  2259         HolderList at:idx put:aValueHolder
  2260     ] ifFalse:[
  2261         LabelList addLast:aLabelString.
  2262         SelectorList addLast:syntheticSelector.
  2263         HolderList addLast:aValueHolder
  2264     ]
  2265 
  2266     "Modified: / 5.12.1997 / 14:13:17 / cg"
  2267     "Created: / 8.12.1997 / 18:50:55 / cg"
  2268 !
  2269 
  2270 removeUserSpecWithLabel:aLabelString
  2271     "remove the spec which was previously installed under the given label"
  2272 
  2273     |idx|
  2274 
  2275     idx := LabelList indexOf:aLabelString.
  2276     idx ~~ 0 ifTrue:[
  2277         LabelList removeIndex:idx.
  2278         SelectorList removeIndex:idx.
  2279         HolderList removeIndex:idx
  2280     ].
  2281 
  2282     "Modified: / 5.12.1997 / 14:13:45 / cg"
  2283     "Created: / 8.12.1997 / 18:51:03 / cg"
  2284 ! !
  2285 
  2286 !UISelectionPanel::UserDefinedGallery class methodsFor:'user defined gallery'!
  2287 
  2288 businessGraphicsSpec
  2289     "This resource specification was automatically generated
  2290      by the UIPainter of ST/X."
  2291 
  2292     "Do not manually edit this!! If it is corrupted,
  2293      the UIPainter may not be able to read the specification."
  2294 
  2295     "
  2296      UIPainter new openOnClass:UISelectionPanel::UserDefinedGallery andSelector:#businessGraphicsSpec
  2297     "
  2298 
  2299     <resource: #canvas>
  2300 
  2301     ^ 
  2302      #(FullSpec
  2303         name: businessGraphicsSpec
  2304         window: 
  2305        (WindowSpec
  2306           label: 'Interface Builder'
  2307           name: 'Interface Builder'
  2308           min: (Point 10 10)
  2309           bounds: (Rectangle 14 46 394 317)
  2310         )
  2311         component: 
  2312        (SpecCollection
  2313           collection: (
  2314            (LabelSpec
  2315               label: 'PieChart'
  2316               name: 'Label2'
  2317               layout: (LayoutFrame 5 0 5 0 126 0 20 0)
  2318               translateLabel: true
  2319               canUIDrag: false
  2320             )
  2321            (PieChartWidgetSpec
  2322               name: 'PIE Chart'
  2323               layout: (LayoutFrame 15 0 21 0 103 0 141 0)
  2324             )
  2325            (LabelSpec
  2326               label: 'ChartDescription'
  2327               name: 'Label1'
  2328               layout: (LayoutFrame 8 0.0 153 0 131 0 168 0)
  2329               translateLabel: true
  2330               canUIDrag: false
  2331             )
  2332            (ChartDescriptionSpec
  2333               name: 'Chart Legend'
  2334               layout: (LayoutFrame 14 0.0 -9 0.656827 14 0.323684 -9 1.0)
  2335             )
  2336            (LabelSpec
  2337               label: 'BarChart'
  2338               name: 'Label3'
  2339               layout: (LayoutFrame 115 0 5 0 237 0 20 0)
  2340               translateLabel: true
  2341               canUIDrag: false
  2342             )
  2343            (BarChartWidgetSpec
  2344               name: 'Bar Chart'
  2345               layout: (LayoutFrame 121 0 21 0 232 0 141 0)
  2346             )
  2347            )
  2348          
  2349         )
  2350       )
  2351 !
  2352 
  2353 clocksSpec
  2354     "This resource specification was automatically generated
  2355      by the UIPainter of ST/X."
  2356 
  2357     "Do not manually edit this!! If it is corrupted,
  2358      the UIPainter may not be able to read the specification."
  2359 
  2360     "
  2361      UIPainter new openOnClass:UISelectionPanel::UserDefinedGallery andSelector:#clocksSpec
  2362     "
  2363 
  2364     <resource: #canvas>
  2365 
  2366     ^ 
  2367      #(FullSpec
  2368         name: clocksSpec
  2369         window: 
  2370        (WindowSpec
  2371           label: 'Interface Builder'
  2372           name: 'Interface Builder'
  2373           min: (Point 10 10)
  2374           bounds: (Rectangle 14 46 439 319)
  2375         )
  2376         component: 
  2377        (SpecCollection
  2378           collection: (
  2379            (NonScrollableArbitraryComponentSpec
  2380               name: 'Analog Clock'
  2381               layout: (LayoutFrame 15 0 39 0 129 0 151 0)
  2382               hasBorder: false
  2383               component: ClockView
  2384             )
  2385            (NonScrollableArbitraryComponentSpec
  2386               name: 'Digital Clock'
  2387               layout: (LayoutOrigin 15 0 176 0)
  2388               hasBorder: false
  2389               component: DigitalClockView
  2390             )
  2391            (NonScrollableArbitraryComponentSpec
  2392               name: 'Digital Number display'
  2393               layout: (LayoutOrigin 142 0 39 0)
  2394               hasBorder: false
  2395               component: DigitalLedDisplay
  2396             )
  2397            (LabelSpec
  2398               label: 'Analog Clock'
  2399               name: 'Label1'
  2400               layout: (LayoutFrame 15 0 16 0 128 0 38 0)
  2401               translateLabel: true
  2402               adjust: left
  2403               canUIDrag: false
  2404             )
  2405            (LabelSpec
  2406               label: 'Number Display'
  2407               name: 'Label2'
  2408               layout: (LayoutFrame 142 0 16 0 270 0 38 0)
  2409               translateLabel: true
  2410               adjust: left
  2411               canUIDrag: false
  2412             )
  2413            (LabelSpec
  2414               label: 'Digital Clock'
  2415               name: 'Label3'
  2416               layout: (LayoutFrame 15 0 155 0 128 0 177 0)
  2417               translateLabel: true
  2418               adjust: left
  2419               canUIDrag: false
  2420             )
  2421            (MeterWidgetSpec
  2422               name: 'Meter Widget'
  2423               layout: (Rectangle 143 99 259 216)
  2424               model: meterValue
  2425             )
  2426            (LabelSpec
  2427               label: 'Meter Widget'
  2428               name: 'Label4'
  2429               layout: (LayoutFrame 142 0 77 0 269 0 99 0)
  2430               translateLabel: true
  2431               canUIDrag: false
  2432             )
  2433            (MeterClackCounterSpec
  2434               name: 'Meter Clack Counter'
  2435               layout: (Rectangle 291 40 387 72)
  2436               model: model
  2437             )
  2438            (LabelSpec
  2439               label: 'Meter Clack Counter'
  2440               name: 'Label5'
  2441               layout: (LayoutFrame 290 0 16 0 417 0 38 0)
  2442               translateLabel: true
  2443               adjust: left
  2444               canUIDrag: false
  2445             )
  2446            )
  2447          
  2448         )
  2449       )
  2450 !
  2451 
  2452 listOfLabels
  2453     ^ LabelList
  2454 
  2455     "Created: / 5.12.1997 / 13:43:03 / cg"
  2456     "Modified: / 8.12.1997 / 18:51:20 / cg"
  2457 !
  2458 
  2459 listOfSelectors
  2460     ^ SelectorList
  2461 
  2462     "Created: / 5.12.1997 / 13:43:13 / cg"
  2463     "Modified: / 8.12.1997 / 18:51:28 / cg"
  2464 ! !
  2465 
  2466 !UISelectionPanel::UserDefinedGallery class methodsFor:'user spec access'!
  2467 
  2468 doesNotUnderstand:aMessage
  2469     "catch queries for a userSpec"
  2470 
  2471     |sel idx|
  2472 
  2473     ((sel := aMessage selector) startsWith:'userSpec') ifTrue:[
  2474         idx := SelectorList indexOf:sel.
  2475         idx ~~ 0 ifTrue:[
  2476             ^ (HolderList at:idx) value
  2477         ]
  2478     ].
  2479     ^ super doesNotUnderstand:aMessage
  2480 
  2481     "Modified: / 5.12.1997 / 14:23:24 / cg"
  2482     "Created: / 8.12.1997 / 18:51:50 / cg"
  2483 !
  2484 
  2485 respondsTo:aSelector
  2486     "catch queries for a userSpec"
  2487 
  2488     |idx|
  2489 
  2490     (aSelector startsWith:'userSpec') ifTrue:[
  2491         idx := Number fromString:(aSelector copyFrom:9).
  2492         idx := SelectorList indexOf:aSelector.
  2493         idx ~~ 0 ifTrue:[^ true].
  2494     ].
  2495     ^ super respondsTo:aSelector
  2496 
  2497     "Modified: / 5.12.1997 / 14:19:55 / cg"
  2498     "Created: / 8.12.1997 / 18:51:57 / cg"
  2499 ! !
  2500 
  2501 !UISelectionPanel class methodsFor:'documentation'!
  2502 
  2503 version
  2504     ^ '$Header$'
  2505 !
  2506 
  2507 version_CVS
  2508     ^ '$Header$'
  2509 ! !
  2510 
  2511 
  2512 UISelectionPanel initialize!
  2513 UISelectionPanel::UserDefinedGallery initialize!