1! 2! Motif 3! 4! Copyright (c) 1987-2012, The Open Group. All rights reserved. 5! 6! These libraries and programs are free software; you can 7! redistribute them and/or modify them under the terms of the GNU 8! Lesser General Public License as published by the Free Software 9! Foundation; either version 2 of the License, or (at your option) 10! any later version. 11! 12! These libraries and programs are distributed in the hope that 13! they will be useful, but WITHOUT ANY WARRANTY; without even the 14! implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 15! PURPOSE. See the GNU Lesser General Public License for more 16! details. 17! 18! You should have received a copy of the GNU Lesser General Public 19! License along with these librararies and programs; if not, write 20! to the Free Software Foundation, Inc., 51 Franklin Street, Fifth 21! Floor, Boston, MA 02110-1301 USA 22! 23! 24! HISTORY 25! 26! $XConsortium: dogs.uil /main/5 1995/07/14 10:07:35 drk $ 27!****************************************************************************** 28 29!****************************************************************************** 30!* 31!* dogs.uil - Square & Dog widget demo, application UIL file. 32!* 33!****************************************************************************** 34 35module squares 36 version = 'v1.0' 37 names = case_sensitive 38 character_set=iso_latin1 39 objects = { XmPushButton = gadget; XmToggleButton = gadget; } 40 41include file 'Square.uil'; 42include file 'Dog.uil'; 43 44procedure 45 create_cb(integer); 46 bark_cb(integer); 47 tb_cb(integer); 48 scale_cb(integer); 49 help_cb(compound_string); 50 exit_cb(); 51 52value 53 k_dog1_id : 1; 54 k_dog2_id : 2; 55 k_dog3_id : 3; 56 k_help_id : 4; 57 58value 59 dog1_bark_volume : 90; 60 dog1_bark_time : 1100; 61 dog1_wag_time : 100; 62 dog1_square : false; 63 64 dog2_bark_volume : 40; 65 dog2_bark_time : 400; 66 dog2_wag_time : 100; 67 dog2_square : false; 68 69 dog3_bark_volume : 70; 70 dog3_bark_time : 700; 71 dog3_wag_time : 100; 72 dog3_square : false; 73 74value help_text : 75 compound_string(" ", separate=true) & 76 compound_string(" ", separate=true) & 77 compound_string("osfActivate/MB1 = Bark.", separate=true) & 78 compound_string("W/MB2 = Wag tail.", separate=true) & 79 compound_string("S/Shift-MB2 = Stop.", separate=true) & 80 compound_string("osfHelp = Help.", separate=true) & 81 compound_string(""); 82 83 84object app_main : XmMainWindow { 85 controls { 86 XmMenuBar bar; 87 XmForm work; 88 unmanaged XmInformationDialog help_box; 89 }; 90 callbacks { 91 XmNhelpCallback=procedure help_cb(compound_string("Dogs") & help_text); 92 }; 93}; 94 95object help_box : XmInformationDialog { 96 arguments { 97 XmNmessageAlignment = XmALIGNMENT_BEGINNING; 98 XmNdialogTitle = "Help"; 99 XmNokLabelString = "Dismiss"; 100 }; 101 callbacks { 102 MrmNcreateCallback = procedure create_cb(k_help_id); 103 }; 104}; 105 106object bar : XmMenuBar { 107 arguments { 108 XmNmenuHelpWidget = XmCascadeButton help; 109 }; 110 controls { 111 XmCascadeButton file; 112 XmCascadeButton help; 113 }; 114}; 115 116object file : XmCascadeButton { 117 arguments { XmNlabelString = "File"; XmNmnemonic = keysym('F'); }; 118 controls { XmPulldownMenu file_pd; }; 119}; 120object file_pd : XmPulldownMenu { 121 controls { 122 XmPushButton exit_pb; 123 }; 124}; 125object exit_pb : XmPushButton { 126 arguments { XmNlabelString = "Exit"; XmNmnemonic = keysym('E');}; 127 callbacks { XmNactivateCallback = procedure exit_cb(); }; 128}; 129 130object help : XmCascadeButton { 131 arguments { XmNlabelString = "Help"; XmNmnemonic = keysym('H'); }; 132 controls { XmPulldownMenu help_pd; }; 133}; 134object help_pd : XmPulldownMenu { 135 arguments { XmNtearOffModel = XmTEAR_OFF_ENABLED; }; 136 controls { 137 XmPushButton help_pb; 138 }; 139}; 140object help_pb : XmPushButton { 141 arguments { XmNlabelString = "On Dogs"; XmNmnemonic = keysym('D');}; 142 callbacks { XmNactivateCallback = procedure help_cb 143 (compound_string("Dogs") & help_text); }; 144}; 145 146 147object work : XmForm { 148 controls { 149 XmFrame frame; 150 XmScale scale1; 151 XmScale scale2; 152 XmScale scale3; 153 XmSeparator sep; 154 XmToggleButton tb1; 155 XmToggleButton tb2; 156 XmToggleButton tb3; 157 }; 158}; 159 160object frame : XmFrame { 161 arguments { 162 XmNrightAttachment = XmATTACH_FORM; XmNrightOffset = 5; 163 XmNleftAttachment = XmATTACH_FORM; XmNleftOffset = 5; 164 XmNtopAttachment = XmATTACH_FORM; XmNtopOffset = 5; 165 XmNbottomAttachment = XmATTACH_WIDGET; XmNbottomOffset = 10; 166 XmNbottomWidget = XmScale scale1; 167 }; 168 controls { 169 user_defined square; 170 }; 171}; 172 173object square : user_defined procedure SquareCreate { 174 arguments { 175 XmNwidth = 600; 176 XmNheight = 220; 177 XmNresizePolicy = XmRESIZE_GROW; 178 SquareNmajorDimension = SquareWIDTH; 179 }; 180 controls { 181 user_defined dog1; 182 user_defined dog2; 183 user_defined dog3; 184 }; 185}; 186 187object dog1 : user_defined procedure DogCreate { 188 arguments { 189 SquareNmakeSquare = dog1_square; 190 XmNx = 20; 191 XmNy = 20; 192 XmNforeground = color('red', foreground); 193 XmNbackground = color('lightblue', background); 194 XmNshadowThickness = 12; 195 DogNwagTime = dog1_wag_time; 196 DogNbarkTime = dog1_bark_time; 197 }; 198 callbacks { 199 MrmNcreateCallback = procedure create_cb(k_dog1_id); 200 DogNbarkCallback = procedure bark_cb(dog1_bark_volume); 201 XmNhelpCallback = procedure help_cb 202 (compound_string("Rover") & help_text); 203 }; 204}; 205 206object dog2 : user_defined procedure DogCreate { 207 arguments { 208 SquareNmakeSquare = dog2_square; 209 XmNx = 220; 210 XmNy = 20; 211 XmNforeground = color('black', foreground); 212 XmNbackground = color('lightblue', background); 213 XmNshadowThickness = 4; 214 DogNwagTime = dog2_wag_time; 215 DogNbarkTime = dog2_bark_time; 216 }; 217 callbacks { 218 MrmNcreateCallback = procedure create_cb(k_dog2_id); 219 DogNbarkCallback = procedure bark_cb(dog2_bark_volume); 220 XmNhelpCallback = procedure help_cb 221 (compound_string("Spot") & help_text); 222 }; 223}; 224 225object dog3 : user_defined procedure DogCreate { 226 arguments { 227 SquareNmakeSquare = dog3_square; 228 XmNx = 420; 229 XmNy = 20; 230 XmNforeground = color('Brown', foreground); 231 XmNbackground = color('lightblue', background); 232 XmNshadowThickness = 10; 233 DogNwagTime = dog3_wag_time; 234 DogNbarkTime = dog3_bark_time; 235 }; 236 callbacks { 237 MrmNcreateCallback = procedure create_cb(k_dog3_id); 238 DogNbarkCallback = procedure bark_cb(dog3_bark_volume); 239 XmNhelpCallback = procedure help_cb 240 (compound_string("Fido") & help_text); 241 }; 242}; 243 244object scale1 : XmScale { 245 arguments { 246 XmNleftAttachment = XmATTACH_FORM; XmNleftOffset = 5; 247 XmNrightAttachment = XmATTACH_POSITION; XmNrightPosition = 30; 248 XmNbottomAttachment = XmATTACH_WIDGET; XmNbottomOffset = 5; 249 XmNbottomWidget = XmSeparator sep; 250 XmNminimum = 1; 251 XmNmaximum = 200; 252 XmNtitleString = 'Wag Rate'; 253 XmNorientation = XmHORIZONTAL; 254 XmNprocessingDirection = XmMAX_ON_LEFT; 255 XmNvalue = dog1_wag_time; 256 }; 257 callbacks { 258 XmNvalueChangedCallback = procedure scale_cb(1); 259 XmNdragCallback = procedure scale_cb(1); 260 }; 261}; 262 263object scale2 : XmScale { 264 arguments { 265 XmNleftAttachment = XmATTACH_POSITION; XmNleftPosition = 36; 266 XmNrightAttachment = XmATTACH_POSITION; XmNrightPosition = 63; 267 XmNbottomAttachment = XmATTACH_WIDGET; XmNbottomOffset = 5; 268 XmNbottomWidget = XmSeparator sep; 269 XmNminimum = 1; 270 XmNmaximum = 200; 271 XmNtitleString = 'Wag Rate'; 272 XmNorientation = XmHORIZONTAL; 273 XmNprocessingDirection = XmMAX_ON_LEFT; 274 XmNvalue = dog2_wag_time; 275 }; 276 callbacks { 277 XmNvalueChangedCallback = procedure scale_cb(2); 278 XmNdragCallback = procedure scale_cb(2); 279 }; 280}; 281 282object scale3 : XmScale { 283 arguments { 284 XmNleftAttachment = XmATTACH_POSITION; XmNleftPosition = 69; 285 XmNrightAttachment = XmATTACH_FORM; XmNrightOffset = 5; 286 XmNbottomAttachment = XmATTACH_WIDGET; XmNbottomOffset = 5; 287 XmNbottomWidget = XmSeparator sep; 288 XmNminimum = 1; 289 XmNmaximum = 200; 290 XmNtitleString = 'Wag Rate'; 291 XmNorientation = XmHORIZONTAL; 292 XmNprocessingDirection = XmMAX_ON_LEFT; 293 XmNvalue = dog3_wag_time; 294 }; 295 callbacks { 296 XmNvalueChangedCallback = procedure scale_cb(3); 297 XmNdragCallback = procedure scale_cb(3); 298 }; 299}; 300 301object sep : XmSeparator { 302 arguments { 303 XmNleftAttachment = XmATTACH_FORM; 304 XmNrightAttachment = XmATTACH_FORM; 305 XmNbottomAttachment = XmATTACH_WIDGET; XmNbottomOffset = 5; 306 XmNbottomWidget = XmToggleButton tb1; 307 }; 308}; 309 310object tb1 : XmToggleButton { 311 arguments { 312 XmNleftAttachment = XmATTACH_FORM; XmNleftOffset = 5; 313 XmNbottomAttachment = XmATTACH_FORM; XmNbottomOffset = 5; 314 315 XmNset = dog1_square; 316 XmNlabelString = 'Make Square'; 317 }; 318 callbacks { 319 XmNvalueChangedCallback = procedure tb_cb(1); 320 }; 321}; 322 323object tb2 : XmToggleButton { 324 arguments { 325 XmNleftAttachment = XmATTACH_POSITION; XmNleftPosition = 36; 326 XmNbottomAttachment = XmATTACH_FORM; XmNbottomOffset = 5; 327 328 XmNset = dog2_square; 329 XmNlabelString = 'Make Square'; 330 }; 331 callbacks { 332 XmNvalueChangedCallback = procedure tb_cb(2); 333 }; 334}; 335 336object tb3 : XmToggleButton { 337 arguments { 338 XmNleftAttachment = XmATTACH_POSITION; XmNleftPosition = 69; 339 XmNbottomAttachment = XmATTACH_FORM; XmNbottomOffset = 5; 340 341 XmNset = dog3_square; 342 XmNlabelString = 'Make Square'; 343 }; 344 callbacks { 345 XmNvalueChangedCallback = procedure tb_cb(3); 346 }; 347}; 348 349end module; 350 351