UISelectionPanel.st
author Patrik Svestka <patrik.svestka@gmail.com>
Wed, 14 Nov 2018 12:07:51 +0100
branchjv
changeset 3630 5e718e0a754e
parent 3323 9c579009a14b
permissions -rw-r--r--
Issue #239: Fix all Smalltak/X source files to be in unicode (UTF8 without BOM) and prefixed by "{ Encoding: utf8 }" when any unicode character is present

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