home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / pdd.zip / Manual.INF (.txt) < prev    next >
OS/2 Help File  |  1998-03-05  |  241KB  |  8,196 lines

  1.  
  2. ΓòÉΓòÉΓòÉ 1. Trademarks ΓòÉΓòÉΓòÉ
  3.  
  4. The following are trademarks of the IBM Corporation. 
  5.  
  6.       CUA 
  7.       Common User Access 
  8.       IBM 
  9.       IBM C/2 
  10.       IBM C Set++ 
  11.       IBM VisualAge C++ 
  12.       Operating System/2 
  13.       OS/2 
  14.       Presentation Manager 
  15.       SAA 
  16.       Systems Application Architecture 
  17.       Workplace Shell 
  18.  
  19.  The following are trademarks of the Prominare Inc. 
  20.  
  21.       Prominare 
  22.  
  23.  The following are trademarks of the Borland International Inc. 
  24.  
  25.       Borland 
  26.  
  27.  The following are trademarks of the WATCOM International Inc. 
  28.  
  29.       WATCOM 
  30.       WATCOM C/C++32 
  31.  
  32.  
  33. ΓòÉΓòÉΓòÉ 2. Copyright ΓòÉΓòÉΓòÉ
  34.  
  35. Copyright (c) 1989-1998  Prominare Inc.  All Rights Reserved. 
  36.  
  37.  
  38. ΓòÉΓòÉΓòÉ 3. section one - Installation ΓòÉΓòÉΓòÉ
  39.  
  40. This sections explains how to install Prominare Designer and how to begin using 
  41. it to create and maintain graphical user interface applications. 
  42.  
  43. Prominare Designer is a full functioning professional visual design tool 
  44. specifically designed to fit the needs of a professional programmer using the 
  45. OS/2 Presentation Manager environment. Not only does it allow you to visually 
  46. design your graphical user interface, it can also create the underlying source 
  47. code. 
  48.  
  49.  
  50. ΓòÉΓòÉΓòÉ 3.1. Installation ΓòÉΓòÉΓòÉ
  51.  
  52. To install Prominare Designer onto the hard disk of your computer, place the 
  53. first package diskette in Drive A:, start an OS/2 command prompt session, and 
  54. type the following: 
  55.  
  56. a: <ΓöÿENTER
  57. install <ΓöÿENTER
  58.  
  59. The installation program first displays the welcome panel. 
  60.  
  61. It then displays the dialogue for the source drive from which the program files 
  62. will be read. If you wish, you can change the default to another diskette 
  63. drive. 
  64.  
  65. After you press the <ΓöÿENTER key or click the mouse pointer on the Continue push 
  66. button, the User Registration dialogue where you enter your name and the name 
  67. of the company you work for appears. 
  68.  
  69. Again, press the <ΓöÿENTER key or click the mouse pointer on the Continue push 
  70. button. This displays the Target Directories dialogue, in which you indicate 
  71. where to place the Prominare Designer files. The dialogue provides default 
  72. locations, which you can change if you wish. These locations are recorded so 
  73. that the next time you update the applications, those directories will be 
  74. automatically selected. 
  75.  
  76. The entry fields  are labeled as shown: 
  77.  
  78.  Entry Field         Purpose 
  79.  Application         Location where application files will be placed. Default: 
  80.                      C:\PD5 
  81.  Help                Location where help files will be placed. Default:  C:\PD5 
  82.  DLL                 Location where .DLL files will be placed. If the DLLs 
  83.                      needed by Prominare Designer are placed in the same 
  84.                      directory as the application, the LIBPATH variable within 
  85.                      your CONFIG.SYS does not need to be updated for this 
  86.                      location although it is a good idea to do so. Default: 
  87.                      C:\PD5 
  88.  Include             Location where include header files will be placed. This 
  89.                      should be the location of your normal C include files. 
  90.                      Default:  C:\PD5\Include 
  91.  Library             Location where library files will be placed. This should 
  92.                      be the location of your C run-time libraries for OS/2. 
  93.                      Default:  C:\PD5\Lib 
  94.                      .INI Location where PDS.INI file will be placed. Default: 
  95.                      C:\PD5 
  96.  Rules               Location where source code rules will be placed. This is 
  97.                      optional; you may have a set of updated rules that you do 
  98.                      not want overwritten. Default:  C:\PD5\Rules 
  99.  Source              Location where the sample and PMCX source code is to be 
  100.                      placed. Samples include PMCX controls and usage of 
  101.                      Prominare Designer. This is optional (more than 20% of the 
  102.                      space required for full installation is for the source 
  103.                      code samples). Default:  C:\PD5\Source 
  104.  
  105.  
  106. ΓòÉΓòÉΓòÉ 3.2. Previous version ΓòÉΓòÉΓòÉ
  107.  
  108. If you have previously installed Prominare Designer and are installing this 
  109. version on the same level of operating system (i.e., the same operating system 
  110. from which you run the current Prominare Designer), the entry fields will 
  111. contain the location where the previous version was installed. Also, if the 
  112. directories are different, the installation process can copy the existing 
  113. PDS.INI file containing your current setup to the directory where you are 
  114. installing this version. If you are using the OS/2 Boot Manager and installing 
  115. to a different level of the operating system, previous paths are not displayed. 
  116. However, this does not preclude the file PDS.INI from being copied from its old 
  117. location to the new one specified. 
  118.  
  119.  
  120. ΓòÉΓòÉΓòÉ 3.3. Target directories ΓòÉΓòÉΓòÉ
  121.  
  122. From the Target Directories dialogue, you can create a program folder 
  123. containing Prominare Designer by selecting the Create new folder option. If a 
  124. folder already exists, the Prominare Designer icon will be placed in it. 
  125.  
  126. Once you have finished entering or changing the destinations for the Prominare 
  127. Designer files, click on the Continue push button or press the <ΓöÿENTER key to 
  128. begin installation. The installation progress window displays the source and 
  129. destination of the files as they are copied. If a path cannot fit completely 
  130. within the displayed area, an abbreviated form of the full path is substituted. 
  131. Prominare Designer always tries to display the filename that is part of the 
  132. path. 
  133.  
  134. The progress of the installation will be displayed through a status indicator 
  135. which shows the percent complete. During the process of unpacking and copying 
  136. the files to your hard drive, you can complete the online registration. The 
  137. online registration can be used in place of the mail-in registration. 
  138.  
  139. The completed online registration form can be faxed to the number provided at 
  140. the top of the dialogue using fax software you may have installed, printed and 
  141. then faxed to the number. You can also save the information to the OS/2 
  142. clipboard and then paste it into a note that you can send to the e-mail address 
  143. provided below the fax number. Alternately, you can save the information to a 
  144. text file which is then placed within an e-mail note. When all files are copied 
  145. from a diskette, a message appears requesting the next disk. When all files are 
  146. copied to your system, the installation program checks your CONFIG.SYS file to 
  147. see if it needs to be updated for the location of the new files. If the 
  148. locations within PATH, LIBPATH, DPATH or HELP are incorrect, the Update 
  149. CONFIG.SYS dialogue appears. 
  150.  
  151. This dialogue allows you to specify how the configuration information is 
  152. updated. The installation program then updates the CONFIG.SYS file, ensuring 
  153. that the locations are correct. Select the CONFIG.SYS file option in the Save 
  154. changes to group. When you select File named CONFIG.NEW, you must transfer the 
  155. changes from this file to CONFIG.SYS manually, otherwise Prominare Designer may 
  156. not operate correctly. 
  157.  
  158. Once the CONFIG.SYS file is updated, the Reboot Advice dialogue appears 
  159. reminding you to reboot your machine. This is necessary because the DLLs needed 
  160. by Prominare Designer have been placed in a location other than the directory 
  161. of the application. 
  162.  
  163. The Reboot Advice dialogue is informational and is not displayed if you place 
  164. the updated configuration information within the CONFIG.NEW file. Instead of 
  165. the Reboot Advice dialogue, the Revice CONFIG.SYS dialogue advises you to 
  166. update your CONFIG.SYS file. If you fail to do so, Prominare Designer will not 
  167. be able to find required files, specifically the DLLs. Before you exit 
  168. installation, this dialogue appears, allowing you to read on-line installation 
  169. documentation such as the ReadMe.Doc file. 
  170.  
  171.  
  172. ΓòÉΓòÉΓòÉ 3.4. How to Begin ΓòÉΓòÉΓòÉ
  173.  
  174. You can use Prominare Designer immediately after installation. A quick way to 
  175. become familiar with the program is to read section two, Using Prominare 
  176. Designer. It takes you through the step-by-step process of creating a simple 
  177. application. 
  178.  
  179.  
  180. ΓòÉΓòÉΓòÉ 3.5. Notational Conventions ΓòÉΓòÉΓòÉ
  181.  
  182. This manual uses the following notational conventions in defining program 
  183. usage, revisions, references, etc. and in presenting examples: 
  184.  
  185.  Convention               Meaning 
  186.  Bold type                Item of special interest, menu item, or program name. 
  187.  [ ]                      Option input values 
  188.  drive:                   Drive designation 
  189.  Esc                      Escape Key 
  190.  <ΓöÿENTER                  Enter/return key 
  191.  OS/2                     IBM OS/2 Operating System/2 
  192.  Operating System         OS/2 unless specifically stated 
  193.  DLL                      Dynamic-Link Library 
  194.  dirname                  Directory name 
  195.  filename                 Filename 
  196.  control                  Control type such as push button, button, action bar 
  197.                           menu or sub-menu 
  198.  button 1                 Refers to button 1 on the mouse.  Generally, the left 
  199.                           mouse button is button 1 unless the buttons have been 
  200.                           swapped through the control panel. 
  201.  button 2                 Refers to button 2 on the mouse.  Generally, the 
  202.                           right mouse button is button 2 unless the buttons 
  203.                           have been swapped through the control panel. 
  204.  shred                    Equivalent to delete or erase. 
  205.  text                     Keyboard input or program display output 
  206.  
  207.  
  208. ΓòÉΓòÉΓòÉ 4. section two - Using Prominare Designer ΓòÉΓòÉΓòÉ
  209.  
  210. This section is a step-by-step explanation of how to use Prominare Designer to 
  211. design applications. 
  212.  
  213.  
  214. ΓòÉΓòÉΓòÉ 4.1. Process Outline ΓòÉΓòÉΓòÉ
  215.  
  216. The process of designing and building an application is fairly straightforward. 
  217. It follows the following steps: 
  218.  
  219.  Step      Process 
  220.  1         Design application interface and generate resource script file. 
  221.  2         Add backing code for interface design and build application. 
  222.  3         Execute initial prototype. 
  223.  4         Add new elements to application. 
  224.  5         Add additional backing code for interface design. 
  225.  6         Rebuild application. 
  226.  7         Execute new version of application. 
  227.  
  228.  Steps 4 through 7 become the general process while the application is under 
  229.  further development. You can perform steps 4 and 5 at any point, when you add 
  230.  new functionality to the application through new modules. 
  231.  
  232.  
  233. ΓòÉΓòÉΓòÉ 4.2. Starting the Process ΓòÉΓòÉΓòÉ
  234.  
  235. Double click on the Prominare Designer entry in the Prominare Designer folder. 
  236. This gets Prominare Designer started on creating the interface for your 
  237. application. 
  238.  
  239.  
  240. ΓòÉΓòÉΓòÉ 4.3. Step 1: Designing the Application ΓòÉΓòÉΓòÉ
  241.  
  242. To begin your design, select the Start new design option in the Prominare 
  243. Designer Startup dialogue. Prominare Designer will not allow you to create 
  244. dialogues or windows until a design has been defined.  Prominare Designer 
  245. Startup dialogue 
  246.  
  247. The New Design dialogue appears, containing preset initial options along with 
  248. those for you to complete. In the Basename entry field, enter the basename for 
  249. the application, Using. Notice that when you change the focus from the entry 
  250. field in the dialogue, Using.H appears in the Include entry field. 
  251.  
  252. Make sure that the OS/2 Warp is selected in the Target OS group box;  this 
  253. ensures that the correct script and resource conventions are selected. 
  254.  
  255. Click the mouse pointer on the Save push button, informing Prominare Designer 
  256. that you are finished defining the project. Prominare Designer then 
  257. automatically sets up predefined information, such as program variables, that 
  258. will be used within the application. Now you are ready to begin designing the 
  259. application. 
  260.  
  261. To use Prominare Designer most effectively, it is best to create the dialogues 
  262. before the main program window. This makes it easy to associate the dialogues 
  263. with their respective menus. Of course, you can create the main window first, 
  264. then the dialogues--and then go back and edit the menu items to add the 
  265. associated dialogues. But if you know the dialogues already, it is easier to 
  266. create them first. 
  267.  
  268.  
  269. ΓòÉΓòÉΓòÉ 4.3.1. Creating the Dialogues ΓòÉΓòÉΓòÉ
  270.  
  271. You will be presented with the New Dialogue/Window dialogue through which you 
  272. can create the first dialogue. Select the dialogue type you wish to create. In 
  273. this case, select the first item of the second row and then click on the Create 
  274. push button. 
  275.  
  276. This displays the Window/Dialogue Styles dialogue, through which you define the 
  277. title bar text, ID symbol, and value, window, or dialogue styles. 
  278.  
  279. Make sure that the Type combination box shows Dialogue. In the Relative 
  280. combination box, select Window to make the dialogue you are creating relative 
  281. to its parent window. The remaining combination boxes can be ignored, as they 
  282. are not relevant to the dialogue you are creating. Click in the Text multi-line 
  283. entry field and then select the text there by pointing to the first character, 
  284. clicking, and dragging the mouse to the right. Once all the text is selected, 
  285. press the delete key (as there is no title bar within the dialogue). 
  286.  
  287. Next, click in the ID field and enter DLG_EXAMPLE. Select the value and change 
  288. it to 100. Set the style of the dialogue with the Style options group check 
  289. boxes so that only the Visible and Dialogue frame check boxes are selected. In 
  290. the Function entry field, enter the dialogue procedure name ExampleDlgProc. In 
  291. the Filename entry field enter ExampDlg.C. 
  292.  
  293. Finally, click on the Enter push button to create the dialogue frame in the 
  294. lower left corner of Prominare Designer above the status window. 
  295.  
  296. You can now move and size the dialogue frame. The suggested size is 145 
  297. dialogue units wide (cx) and 80 dialogue units high (cy). To do this, first 
  298. click on the dialogue and then place the mouse pointer on the top right-hand 
  299. corner of the dialogue sizing frame and, when the mouse pointer changes from an 
  300. arrow shape to the 45  double-headed arrow shape, press button 1 on the mouse. 
  301. While keeping the mouse button depressed, drag the sizing frame to the top 
  302. right of the Prominare Designer window until you achieve the desired size. 
  303.  
  304. Select the Control menu, then the Icon item in the middle column of the menu. 
  305. Notice that the mouse pointer changes from an arrow to a positioning pointer 
  306. shape. As you move the mouse around, the [x,y] position at the bottom right in 
  307. the status window changes, indicating the position of the crosshair relative to 
  308. the lower left corner of the dialogue frame. 
  309.  
  310. Move the mouse to relative position 58,50 and click mouse button 1. This tells 
  311. Prominare Designer where you want to place the icon. 
  312.  
  313. A stylized icon and then the Icon Styles dialogue appears. In this dialogue, 
  314. enter ID_WINDOW in the ID field. For the value, enter 1. This symbol and value 
  315. will be used for both the icon and the main application window ID. Make sure 
  316. that the Visible option is selected in the Base styles group. If you do not 
  317. select this option, the icon will not be displayed in the dialogue when used by 
  318. the application. Finally, click on the Enter push button to exit the dialogue. 
  319.  
  320. Before you exit, Prominare Designer checks to see if you have previously 
  321. defined an icon resource for the icon control just created. When no icon is 
  322. found, you are asked if you wish to define the icon resource. Select the Yes 
  323. push button to display the Bitmap, Font, Icon, and Pointer Resources dialogue, 
  324. through which you can define the icon resource to be used by the application. 
  325. Unless you define the icon, the dialogue will not appear in the actual 
  326. application. Make sure that the Icon radio button is selected and that the ID 
  327. is ID_WINDOW with a value of 1. The Bitmap, Font, Icon, and Pointer Resources 
  328. dialogue is used for five resource types. Select the Icon radio button and 
  329. enter the ID symbol and value for the icon. (As mentioned previously, the 
  330. symbol for the icon is ID_WINDOW, also the symbol for the main application 
  331. window.) Select the ID symbol and value using the ID field drop-down. 
  332.  
  333. All that remains for the icon is the name of the file containing the icon, 
  334. which could have been created in the Icon Editor. In this case, enter 
  335. Example.Ico before clicking on the Add button. You will be asked if you want to 
  336. create the default icon, since the icon does not exist. Select the Yes button. 
  337. This icon can be edited at a later point to become the final application icon. 
  338. Now click on the Save button to exit the dialogue and save the definition. 
  339.  
  340. Select the Control menu again and notice that a check mark has appeared beside 
  341. the Icon menu item. Prominare Designer always places a check mark beside the 
  342. menu item in the Control menu of the currently selected control. 
  343.  
  344. You now want to place text in the dialogue; select the Text menu item in the 
  345. first column of the menu. 
  346.  
  347. As with the icon you just created, the mouse pointer changes to the positioning 
  348. pointer . This time, move the mouse pointer to relative position 10,30. When 
  349. you press button 1 on the mouse, a dialogue is displayed, this time allowing 
  350. you to set the text styles. 
  351.  
  352. In this dialogue, replace the default text with Example Dialogue Box. No ID 
  353. symbol is required; change the default ID value to -1 if you wish. In the Text 
  354. options group, select the Horz. centered style and click on the Enter button. 
  355.  
  356. A message box is displayed regarding CUA Non-Compliance. This message alerts 
  357. you that secondary words in the entered text are capitalized. In this 
  358. situation, ignore the warning since you are using the text as a title. 
  359.  
  360. Notice that the text that you entered is not completely visible. To correct 
  361. this, move the mouse pointer to the right side of the text sizing frame until 
  362. it changes to the double-headed horizontal arrow. Press button 1 of the mouse 
  363. and drag with the mouse button still depressed to the right of the dialogue, 
  364. while watching the [cx,cy] value in the status window. Continue dragging the 
  365. frame edge to the right until the [cx,cy] value is 125,8. Release the mouse 
  366. button. The text is now centered in the dialogue. 
  367.  
  368. Finally, you need to create a push button to exit the dialogue. 
  369.  
  370. Instead of using the Control menu to create the next control, use the Tools 
  371. window. Display it by selecting the Tools window button in the tool bar; the 
  372. Tools window will appear in the top right hand corner of the Prominare Designer 
  373. window. Notice the grid of control representations; you can click on the 
  374. control you wish to create instead of using the Control menu. Select the Push 
  375. Button control representation (top left button) in the Tools window and place 
  376. the push button starting at location 45,5. When the dialogue is displayed, 
  377. change the default text to OK. Now you need only add the ID symbol and value. 
  378. This time, you will do it differently from the way you created the previous two 
  379. controls. 
  380.  
  381. You will probably have noticed the drop-down button in the ID field click on 
  382. the button that displays the drop-down list like that of a combination box. 
  383. This list contains all currently defined symbols; in it, notice the two symbols 
  384. you entered previously: DLG_EXAMPLE and ID_WINDOW. There are also additional ID 
  385. values, DID_OK and DID_CANCEL among others. These two symbols are predefined by 
  386. OS/2 Presentation Manager for use with push buttons. As the symbols are 
  387. labeled, one is usually associated with an OK push button and the other with a 
  388. Cancel push button. In this case, you want to use the DID_OK symbol. To select 
  389. the symbol, click once on the DID_OK symbol entry in the list. 
  390.  
  391. Also, notice a combination box labeled Dialogue. This combination box allows 
  392. you to associate the push button with a dialogue displayed when the push button 
  393. is selected by the user. This is useful when you are prototyping an application 
  394. and want to demonstrate to others how the user would interact with it. Again, 
  395. since the push button is used only to exit the dialogue, you do not need to use 
  396. the combination box. 
  397.  
  398. Before you click on the Enter push button, click the Default check box in the 
  399. Options group. This draws a heavy border around the button, which indicates the 
  400. default action when the user presses the <ΓöÿENTER key. 
  401.  
  402. You have now created the first dialogue box. 
  403.  
  404.  
  405. ΓòÉΓòÉΓòÉ 4.3.2. Creating Application Windows ΓòÉΓòÉΓòÉ
  406.  
  407. Now that you've completed the dialogue, you need only to create the main 
  408. application window. Here you use the New... item in the Edit menu. Again, the 
  409. New Dialogue/Window dialogue is displayed. Instead of selecting one of the 
  410. dialogue types, select the window type--the bottom right image in the dialogue. 
  411.  
  412. This time, when the Window/Dialogue Styles dialogue is displayed, select Parent 
  413. window in the Type combination box and the styles Title bar, System menu, 
  414. Visible, Size border, Menu, Min button, Max button, Accelerators, and Shell 
  415. position. 
  416.  
  417. For the text, type Example Window; for the ID symbol and value, use the ID 
  418. field drop-down to select the ID_WINDOW. You do this because the icon used in 
  419. the dialogue is the same icon to be used for the main window. Usually, the main 
  420. window uses the ID of the icon. Enter Example Window in the entry field labeled 
  421. Description. 
  422.  
  423. Notice that the main parent window fills most of the Prominare Designer window 
  424. but has no action bar; it will be displayed once you add an action bar menu 
  425. item. In the Function entry field, make sure that the window procedure name is 
  426. ExampleWndProc. In the Filename entry field, enter the filename ExampWnd.C. 
  427.  
  428.  
  429. ΓòÉΓòÉΓòÉ 4.3.3. Creating the Menus ΓòÉΓòÉΓòÉ
  430.  
  431. Select the Menu button in the Tools window. A message box appears indicating 
  432. that no menus exist for the window. It also asks if you want to select menus 
  433. from the standard menus. Click on the Yes push button to display the Standard 
  434. Menus dialogue. 
  435.  
  436. This dialogue contains eight tabs, with each tab signifying different action 
  437. bar menus. Selecting the check box for the action bar item indicates that you 
  438. wish to include that item in the action bar. The menu items generally 
  439. associated with that item then become selectable. Select those that apply to 
  440. the window you are creating. 
  441.  
  442. For this window, you want to include the File action bar item but none of the 
  443. standard menu items. Select the File tab, then click on the File action bar 
  444. menu check box. The sub- menu items associated with the File action bar menu 
  445. become selectable. It is impossible to have sub-menu items with no action bar 
  446. items. 
  447.  
  448. Next, click on the Create button, creating the action bar menu item. The Menu 
  449. Styles dialogue is then displayed, showing in the list boxes the File action 
  450. bar item you selected in the Standard Menus dialogue. To add a formal ID 
  451. symbol, select the item in the top list box and enter IDM_FILE in the ID field. 
  452.  
  453. Click on the Change button to update the item and add it to the list boxes. 
  454. Next, you could enter a new item or change the current one. An * is displayed 
  455. to the left of the text denoting the item as an action bar menu item; it is 
  456. coloured dark red, distinguishing it from the regular menu items. Select the 
  457. Menu item radio button to add the first menu item of the File menu. Enter 
  458. ~Example dialogue... for the menu item text, IDM_EXAMPLE for the ID symbol, and 
  459. 10 for the value. Since you previously created a dialogue (Example Dialogue), 
  460. associate the menu item you are creating with the dialogue. Click on the 
  461. Dialogue combination box arrow to display the dialogue list. First select the 
  462. WinDlgBox(...) item within the Method drop-down list. Then select the 
  463. DLG_EXAMPLE symbol and the combination box entry field will be completed for 
  464. you.  The source code created that will invoke the dialogue when the menu item 
  465. is selected will be the standard WinDlgBox. 
  466.  
  467. From the Menu styles group, select the Text radio button. Before you can add 
  468. the menu item to the list, you must associate the sub-menu item you are 
  469. entering with the action bar menu by clicking on the File entry in the list 
  470. box. This allows Prominare Designer to place the sub-menu into the correct 
  471. action bar menu. When more than one action bar menu has been defined, this 
  472. simplifies the process and prevents unnecessary arranging of menus later on. 
  473. Now click on the Add button to add it to the sub-menu list. 
  474.  
  475. For the next menu item, select the Separator style and enter -1 in the ID entry 
  476. field. This time, you do not have to associate the separator to the File menu, 
  477. since it is already selected. Only when the sub-menu item that you are creating 
  478. has a different parent do you need to select the parent menu item in the list 
  479. box. 
  480.  
  481. The final menu item to be added to the File menu is the exit command. The exit 
  482. command text should be E~xit\tF3; enter it in the Text field. Notice that an 
  483. accelerator is now associated with the menu item; it will be automatically 
  484. added to the accelerator table. 
  485.  
  486. The ID symbol and value for the menu item should be IDM_EXIT and 11. Associate 
  487. the menu item with the File menu, select the Text style from the Menu styles 
  488. group, click on the Add button and then on the Save button to exit and save the 
  489. menu information. This also places the menu items within the window you are 
  490. designing. You can see this be clicking on the File menu item in the window you 
  491. are designing. 
  492.  
  493.  
  494. ΓòÉΓòÉΓòÉ 4.3.4. Saving and Generating the Resource Script files ΓòÉΓòÉΓòÉ
  495.  
  496. The design of the application is now complete; all you need to do is save the 
  497. project files with the Save item in the File menu. Prominare Designer prompts 
  498. you to Save the include (.H) file? Two push buttons appear, Yes and No. Since 
  499. you will need the header file to properly compile the source files, click Yes. 
  500. Prominare Designer then saves the design file (.PDF) and header include files 
  501. before generating the resource script (.RC) file for the application. 
  502.  
  503. The application interface is now complete and almost ready for you to add the 
  504. backing code. Exit Prominare Designer by double clicking on the system menu; 
  505. you are returned to the Workplace desktop. 
  506.  
  507.  
  508. ΓòÉΓòÉΓòÉ 4.4. Step 2: Adding Backing Code ΓòÉΓòÉΓòÉ
  509.  
  510. Once the interface for the application is complete, you can create the 
  511. necessary C or C++ source files to handle the user's interaction requests. 
  512.  
  513.  
  514. ΓòÉΓòÉΓòÉ 4.5. Step 3: Execute Initial Prototype ΓòÉΓòÉΓòÉ
  515.  
  516. Now that you've completed the backing code and successfully built the new 
  517. application, you can test its interface by actually running the application. 
  518.  
  519.  
  520. ΓòÉΓòÉΓòÉ 4.6. Step 4: Adding New Elements ΓòÉΓòÉΓòÉ
  521.  
  522. In this step, you learn to add new elements by adding a new dialogue to the 
  523. application's design. Restart Prominare Designer and click on the Last opened 
  524. radio button in the Prominare Designer Startup dialogue. This enables the Last 
  525. opened drop-down, from which you can select the entry for the Using.Pdf file 
  526. from the drop-down list, to read in the design file for the application. 
  527.  
  528. Now you'll create the Another Example Dialogue, which will eventually be 
  529. associated with the Another dialogue... item in the File menu. 
  530.  
  531. First, select the Edit menu, then the New... item. Again, select the dialogue 
  532. type from the first item of the second row in the dialogue. 
  533.  
  534. Make sure that Dialogue is selected in the Type combination box in the 
  535. Window/Dialogue Styles dialogue. Delete the default text in the multi-line 
  536. entry field (since the dialogue will not have a title bar) and click in the ID 
  537. entry field. Enter DLG_ANOTHER and then click in the value entry field and 
  538. enter 110.  For the dialogue procedure name, enter AnotherDlgProc within the 
  539. Function entry field.  Since you already have a source module defined the 
  540. dialogues, you only need to select it from the Filename drop-down, which in 
  541. this case would be ExampDlg.C. 
  542.  
  543. Click on the Style group check boxes so that only the Visible and Dialogue 
  544. frame check boxes are selected. For the description, enter Another Example 
  545. Dialogue. Finally, click on the Enter push button to create the dialogue frame 
  546. in the lower left corner of Prominare Designer, above the status window. 
  547.  
  548. You can now move and size the dialogue frame. The suggested size is 145 
  549. dialogue units wide (cx) and 80 dialogue units high (cy). Place the mouse 
  550. pointer on the top right hand corner of the dialogue sizing frame. When the 
  551. pointer changes to the 45  double-headed arrow, press mouse button 1 and drag 
  552. the sizing frame to the top right of the Prominare Designer window until you 
  553. achieve the desired size. 
  554.  
  555. Now, select the Control menu and System icon item. Notice that the mouse 
  556. pointer changes from an arrow to a positioning pointer shape. Move the mouse to 
  557. relative position 58,50 and click mouse button 1. This tells Prominare Designer 
  558. that you want to place the icon in this location. First a system icon, the 
  559. actual mouse pointer arrow, and then the System Icon Styles dialogue is 
  560. displayed. In this dialogue, select fourth icon in the second row. Now click on 
  561. the Enter push button to exit the dialogue. 
  562.  
  563. In the Tools window, select the Text button. As with the System icon you 
  564. previously created, the mouse pointer will change to the positioning pointer 
  565. shape. This time, move the pointer to relative position 10,30. When you press 
  566. button 1 on the mouse, a dialogue appears allowing you to set the text styles. 
  567.  
  568. In the Static Styles dialogue, replace the default text with Another Example 
  569. Dialogue. No ID symbol is required; you can change the default ID value to -1 
  570. if you wish. In the Text options group, select Horz. centered before clicking 
  571. on the Enter button. 
  572.  
  573. Notice that the text that you entered is not completely visible. To correct 
  574. this, move the mouse pointer to the right side of the text sizing frame until 
  575. it changes to the double-headed horizontal arrow. Press button 1 of the mouse 
  576. and drag with the mouse button still depressed to the right of the dialogue, 
  577. while watching the [cx,cy] value in the status window. Continue dragging the 
  578. frame edge to the right until the [cx,cy] value is 125,8. Release the mouse 
  579. button. The text is now centered in the dialogue. 
  580.  
  581. Finally, you need to create a push button to allow the dialogue to be exited. 
  582. Select the Push button icon in the Tools window and place the push button 
  583. starting at location 45,5. When the Push Button Styles dialogue is displayed, 
  584. change the default text to OK. Now you need to add only the ID symbol and 
  585. value. 
  586.  
  587. Select the ID drop-down, then select the DID_OK symbol from the drop-down list. 
  588.  
  589. Before clicking on the Enter button, click the Default check box. With this 
  590. done, the dialogue is complete. Now you need to create a new menu item in the 
  591. File action bar menu, so you can display the dialogue from within the 
  592. application. 
  593.  
  594. In the Window/dialogue combo box in the tool bar, select the ID_WINDOW item; 
  595. Prominare Designer displays the Example Window. 
  596.  
  597. Now select the Menu button in the Tools window so you can add the new menu 
  598. item. In the dialogue, note the File entry with an * displayed to the left of 
  599. the text, denoting that the item is an action bar menu item. Enter ~Another 
  600. example dialogue... for the menu item text, IDM_ANOTHER for the ID symbol, and 
  601. 12 for the value. Select Text in the Menu styles area. 
  602.  
  603. Since you have a previously-created dialogue, (Another Example Dialogue), you 
  604. can associate the menu item you are creating with that dialogue. Select the 
  605. WinDlgBox(...) from the Method drop- down and then, select the dialogue ID from 
  606. the Dialogues drop down list. 
  607.  
  608. Before clicking on the Add button, click on the File entry in the list box. You 
  609. must do this to associate the sub-menu item you are entering with the action 
  610. bar menu. This allows Prominare Designer to place the sub-menu into the correct 
  611. action bar menu. When more than one action bar menu item has been defined, this 
  612. simplifies the process, preventing unnecessary arranging of menus later on. 
  613.  
  614. Notice that the new menu item was added below the Exit menu item. Since Exit 
  615. should be the last item in the menu, you need to rearrange the items. 
  616.  
  617. Click on the Arrange... button to display the Arrange Menus dialogue. This is a 
  618. convenient way to access the Menu Styles dialogue. Alternately, when you are 
  619. not in the Menu Styles dialogue, access it by selecting Arrange menus... in the 
  620. Options action bar menu. 
  621.  
  622. Select Another example dialogue... in the list box, then move the mouse pointer 
  623. to just above the Separator item. When the pointer changes from an arrow to a 
  624. bar over the entry, click mouse button 1 to move the selected menu item to this 
  625. location. Now that you've rearranged the order of the menus, click on the 
  626. Accept button. You can double check that the menu is correct by simply clicking 
  627. on the File menu of the Example window. 
  628.  
  629. Now click on the Save button to exit the dialogue. 
  630.  
  631. The second phase of the process is now complete and you can save the file. 
  632. Since you want to rebuild the application, double click on the Prominare 
  633. Designer system menu. You will be asked if you want to save the Using.Pdf file; 
  634. click on the Yes button. You will also be prompted to save the include header 
  635. file; again click Yes. 
  636.  
  637.  
  638. ΓòÉΓòÉΓòÉ 4.7. Step 5: Add Additional Backing Code ΓòÉΓòÉΓòÉ
  639.  
  640. Once you have exited Prominare Designer, you can add additional backing code to 
  641. the source files. The code will handle the additional interface elements. 
  642.  
  643.  
  644. ΓòÉΓòÉΓòÉ 4.8. Step 6: Rebuild the Application ΓòÉΓòÉΓòÉ
  645.  
  646. After adding the new code, you can rebuild the application for further testing. 
  647.  
  648.  
  649. ΓòÉΓòÉΓòÉ 4.9. Step 7: Execute New Version of Application ΓòÉΓòÉΓòÉ
  650.  
  651. Finally, having rebuilt the application, you can test it. 
  652.  
  653.  
  654. ΓòÉΓòÉΓòÉ 5. section three - Reference ΓòÉΓòÉΓòÉ
  655.  
  656. Prominare Designer is a full-function OS/2 Presentation Manager graphical 
  657. design environment specifically designed for development within the OS/2 
  658. Presentation Manager. It allows you to design a window including its menus and 
  659. associated dialogues and to create both resource script file and C source code. 
  660. Prominare Designer is similar in use to previous versions of the OS/2 
  661. Programmer's Toolkit Dialogue Box Editor; however, it is many times more 
  662. powerful. 
  663.  
  664. Prominare Designer also introduces the PM Control Extension (PMCX). This 
  665. specification provides a well-defined mechanism that permits you to design and 
  666. implement custom controls similar to the default controls in OS/2 Presentation 
  667. Manager, within dynamic-link libraries. (section four, PM Control Extensions, 
  668. contains a full explanation of the PM Control Extension and shows how to create 
  669. custom controls that can be used within applications and Prominare Designer.) 
  670.  
  671.  
  672. ΓòÉΓòÉΓòÉ 5.1. Using Prominare Designer ΓòÉΓòÉΓòÉ
  673.  
  674. A Presentation Manager application is made up of menus, icons, strings, and 
  675. dialogues from a text file with a .rc extension along C or C++ source code. 
  676. This code controls the above items and provides interaction with the user. The 
  677. file is usually constructed with a text editor, along with dialogue script 
  678. output from the Dialogue Box Editor. Prominare Designer takes the place of this 
  679. process. 
  680.  
  681. Prominare Designer can also read and write an include file (.h extension) that 
  682. defines the symbols used to construct the window and dialogue elements. From 
  683. within Prominare Designer, you define the symbol and value used to create 
  684. definitions within the include file. These definitions take the form of #define 
  685. directives. You can edit the include file to incorporate additional symbols and 
  686. comments. 
  687.  
  688.  
  689. ΓòÉΓòÉΓòÉ 5.2. Prominare Designer Appearance ΓòÉΓòÉΓòÉ
  690.  
  691. On launching Prominare Designer, you are presented with the Prominare Designer 
  692. window. 
  693.  
  694. The title bar of the window shows the names of the .pdf and .h files you are 
  695. creating or editing. An asterisk (*) next to either name indicates that the 
  696. file has been changed since last being saved. 
  697.  
  698.  
  699. ΓòÉΓòÉΓòÉ 5.3. Tool bar ΓòÉΓòÉΓòÉ
  700.  
  701. The tool bar at the top of the window is used to select the window or dialogue 
  702. you wish to edit. You can also use it to perform actions such as moving groups 
  703. of controls and turning on duplicate mode. 
  704.  
  705. Through the Window/Dialogue combo box in the tool bar, you can select the 
  706. window or dialogue you wish to view and edit. Use the Ctrl+V accelerator key to 
  707. display the ID list and select the desired window or dialogue, rather than 
  708. clicking on the combo box arrow. 
  709.  
  710. View a window or dialogue by clicking on the item within the list box. The 
  711. selected item is displayed. 
  712.  
  713. The operation of the tool bar buttons is straightforward. When the tool bar 
  714. button is up, a function or option is off; down and the function or option is 
  715. on. If the tool bar button is not available for use, it appears halftoned. The 
  716. tool bar buttons are used to perform the following actions: 
  717.  
  718.  Button    Purpose 
  719.            This button displays the New Design dialogue, which allows you to 
  720.            create a new design for immediate use. Using the this tool bar 
  721.            button is equivalent to selecting New design... from the File menu. 
  722.            Pressing the Open existing design button displays the Open dialogue, 
  723.            from which you can select an existing design file to edit. Selecting 
  724.            this tool bar button is the equivalent to selecting the Open... menu 
  725.            item in the File menu. 
  726.            Pressing the Save design button saves the active design file. This 
  727.            is equivalent to selecting Save on the File menu. 
  728.            Pressing the Print displayed button allows you to print the 
  729.            currently displayed window, dialogue, or pop-up menu. In the Print 
  730.            Design dialogue, specify how it is to be printed. Selecting this 
  731.            tool bar button is equivalent to selecting Print displayed... on the 
  732.            File menu. 
  733.            Pressing the Search button displays the Search dialogue. Selecting 
  734.            this tool bar button is the equivalent to selecting Search...  on 
  735.            the Find menu. 
  736.            To check the design for duplicate ID errors within the resources, 
  737.            select the Scan design button in the tool bar. This scans the design 
  738.            before the resources are saved to disk, either in resource script 
  739.            file format or final resource format. The scanning routines 
  740.            determine if all the resources specified within the design, such as 
  741.            icon and bitmap files, are present and also if any of the major ID 
  742.            values have been duplicated. Major ID values include dialogue IDs, 
  743.            help table and sub-table IDs, icon, bitmap, and pointer IDs, and 
  744.            menu and accelerator IDs. 
  745.            Pressing the Cut button causes the current window, dialogue, or 
  746.            selected controls to be copied to the clipboard and then deleted 
  747.            from the design. You can then paste the item or items back into the 
  748.            same design file or another one. Selecting this tool bar button is 
  749.            equivalent to selecting Cut on the Edit menu. 
  750.            Pressing the Copy button causes the current window, dialogue, or 
  751.            selected controls to be copied to the clipboard. You can then paste 
  752.            the item or items back into the same design file or another one. 
  753.            Selecting this tool bar button is equivalent to selecting Copy on 
  754.            the Edit menu. 
  755.            Pressing the Paste button causes the window, dialogue, or controls 
  756.            contained on the clipboard to be pasted into the current design. 
  757.            Selecting this tool bar button is equivalent to selecting Paste on 
  758.            the Edit menu. 
  759.            Pressing the Resource distribution button allows you to select the 
  760.            resource files and locations where the current window, dialogue, or 
  761.            pop-up menu is to be placed. 
  762.            Pressing the Notes button allows you to enter or edit design notes 
  763.            for the displayed window or dialogue. 
  764.            Pressing the Message button allows you to select the messages to be 
  765.            handled by the window or dialogue procedure for the window or 
  766.            dialogue that is currently displayed. 
  767.            Pressing the New Dialogue/Window button allows you to create a new 
  768.            window, dialogue, pop-up menu or tab. 
  769.            To align a group of controls within a window or dialogue, use the 
  770.            Align controls button. The Align Controls dialogue appears, allowing 
  771.            you to apply the final alignment on the selected controls. If you 
  772.            have selected a control that you do not want in the alignment group, 
  773.            select it again with the mouse pointer to remove it from the group. 
  774.            To replace a group of selected controls within a window or dialogue 
  775.            with another type or style of control, select the Replace button. 
  776.            The Replace Controls dialogue is then displayed, allowing you to 
  777.            select the type of control you wish to use as the replacement. If 
  778.            you have selected a control that you do not want in the group, just 
  779.            select it again with the mouse pointer to remove it from the group. 
  780.            To duplicate an existing control in a window or dialogue, select the 
  781.            Duplicate control button which will cause the mouse to change to the 
  782.            duplicate mode pointer. Click the mouse pointer on the control you 
  783.            wish to duplicate; as long as you keep button 1 on the mouse down, 
  784.            you can move the duplicated control to the desired location within 
  785.            the window or dialogue. Once you release the button, the appropriate 
  786.            styles dialogue appears for the control duplicated to allow you to 
  787.            edit styles, text and ID values. To cancel the duplicate control 
  788.            mode, reselect the Duplicate control button. 
  789.            When you wish to design a dialogue to be positioned relative to the 
  790.            mouse, select the Relative Position button. The mouse pointer 
  791.            changes its shape to a relative position shape; select the point 
  792.            from which the dialogue is to be positioned when it is created. 
  793.            Relative position is measured from the lower left corner of the 
  794.            dialogue and is displayed within the status window. If you want the 
  795.            mouse pointer to appear at position 5, 10 (x, y) within the 
  796.            dialogue, the relative position of the lower left corner of the 
  797.            dialogue would be -5, -10. When you have selected the location with 
  798.            the mouse pointer, click button 1 of the mouse. The Relative Mouse 
  799.            Position dialogue is displayed confirming the location you have 
  800.            clicked. You can then change the relative position if you desire. 
  801.            This dialogue can also be displayed by double clicking button 2 of 
  802.            the mouse while the mouse pointer is over the button. 
  803.            To change the default focus from the first tab stop item within a 
  804.            dialogue to a specific control that allows interaction, select the 
  805.            Set initial focus button. When you move the mouse pointer over 
  806.            controls, the shape of the mouse changes depending on the type of 
  807.            control over which the pointer is located. When the pointer appears 
  808.            as a four-headed arrow shape, you can select the control to receive 
  809.            the initial focus; when it appears as a circle with a slash through 
  810.            it, you cannot select the control to receive the initial focus, 
  811.            because the control can never receive the focus. 
  812.            To change the display order of the controls within a window or 
  813.            dialogue, use the Arrange Controls button to display the Arrange 
  814.            Controls dialogue. This is also known as setting the Z-order of the 
  815.            controls. 
  816.            The VGA template button is available for selection only on systems 
  817.            that allow for windows 1024 x 768 or greater. When it is selected, 
  818.            an outline of the relative size of a 640 x 480 window is displayed 
  819.            within the Prominare Designer window. This helps to determine if the 
  820.            window or dialogue you are designing is too large for VGA-type 
  821.            systems. 
  822.            The Tools window contains a grid of buttons representing the 
  823.            different controls, arranged in similar to those in the Control 
  824.            action bar menu. Display or hide the Tools window by selecting the 
  825.            Tools window button. The Text/ID window can also be shown or hidden 
  826.            with this button. The Tools window is placed within the Prominare 
  827.            Designer window at the top right hand corner. You can move it to 
  828.            another location within the window if you desire. The position of 
  829.            the window is saved for the next time you start up Prominare 
  830.            Designer. Use the Tools window in the same manner, but click on the 
  831.            button representation of the control you wish to create instead of 
  832.            clicking on the Control action bar and then the control menu item. 
  833.            The Save window position button is used to save the current size and 
  834.            position of the Prominare Designer window when exiting. The next 
  835.            time you invoke Prominare Designer, the saved size and position of 
  836.            the window will be used to place Prominare Designer on the display. 
  837.            The Undo button is used to restore an editing or creation action 
  838.            that you performed on a control or set of controls. The editing 
  839.            actions for the dialogue or window will be saved only while that 
  840.            dialogue or window is displayed. Once a different dialogue or window 
  841.            is selected, the undo stack will be discarded. 
  842.            The Redo button is used to restore an undo action that you performed 
  843.            on a control or set of controls. The undo actions for the dialogue 
  844.            or window will be saved only while that dialogue or window is 
  845.            displayed. Once a different dialogue or window is selected, the undo 
  846.            stack will be discarded. 
  847.            Pressing the Test design button causes Prominare Designer to switch 
  848.            from design mode to test mode. Prominare Designer allows you to test 
  849.            the design in various ways. You can simply test the displayed 
  850.            dialogue to check on its appearance and feel. You can also test 
  851.            windows (except that if you have associated a dialogue with a menu 
  852.            item and you select the menu item, the dialogue is invoked). It is 
  853.            this aspect that makes Prominare Designer a valuable prototype and 
  854.            demonstration tool. When you have finished testing the window or 
  855.            dialogue, select the Test button a second time. During test mode, 
  856.            most other menu items are unavailable, as they are provided for 
  857.            design only. 
  858.            When you want to change the font and colours for a group of controls 
  859.            you have selected within a window or dialogue, select the Font & 
  860.            colours tool bar button. This will cause the Font & Colours dialogue 
  861.            to be displayed from which you can select the colours and fonts to 
  862.            use for the controls. 
  863.            To change the font for a control or group of controls within a 
  864.            window or dialogue, select the Fonts button. This displays the Fonts 
  865.            dialogue, from which you can select the font and size you desire. 
  866.            Pressing the Pen options button displays the Pen Options dialogue, 
  867.            from which you select the options for the pen-centric control or 
  868.            controls. 
  869.            Pressing the Bidirectional options button displays the Bidirectional 
  870.            Support dialogue, from which you can choose bidirectional 
  871.            characteristics for the selected control or controls. 
  872.            To display the limits of the controls within a window or dialogue as 
  873.            they may appear on a different display type, select the Show display 
  874.            limits button. When you click on the button, each control is 
  875.            outlined in a red or green border depicting its possible limits if 
  876.            seen on the display type selected via the Dialogue Unit Limits 
  877.            Selection dialogue. A red border indicates that the current size of 
  878.            the control is too small for the target device and a green border 
  879.            indicates that the current size is sufficient. Double clicking with 
  880.            button 2 of the mouse displays the Dialogue Unit Definition 
  881.            dialogue, where you can define the display types that can be chosen 
  882.            in the Dialogue Unit Limits Selection dialogue. 
  883.            To display the IDs of the controls within a window or dialogue, 
  884.            select the Show IDs button. The symbol or ID value is displayed over 
  885.            each control. Depending on the size of the control, the symbol or 
  886.            value may be overlapped by other symbols or IDs, but the entire 
  887.            symbol is shown where possible. 
  888.            For more precise placement of controls within a window or dialogue, 
  889.            the Grid button allows you to define and display a 
  890.            placement/movement grid to which controls can adhere. Double click 
  891.            on the button with button 2 of the mouse, and the Grid dialogue 
  892.            provides entry fields that define which grid to use and whether or 
  893.            not to snap new controls to the placement grid. Prominare Designer 
  894.            saves grid values, ensuring that the same grid is used when you next 
  895.            edit the design file. 
  896.            The Generate source code button is used to generate source code for 
  897.            the current design if you have specified such in the New Design or 
  898.            Define Design dialogues. 
  899.            The Save source button is used to enable or disable the generation 
  900.            of the source code when saving the design. If the button is in the 
  901.            down position, the source code will be generated otherwise if the 
  902.            button is in the up position, the source code will not be generated. 
  903.            The View source button is used to display the source code for the 
  904.            dialogue or window you are currently editing. The source will be 
  905.            displayed starting at the top of the dialogue or window procedure. 
  906.  
  907.  
  908. ΓòÉΓòÉΓòÉ 5.4. Status Window ΓòÉΓòÉΓòÉ
  909.  
  910. The status window at the bottom of the Prominare Designer window displays 
  911. information as you select items and make changes. Measurements within the 
  912. window are shown in dialogue units. Horizontally, one dialogue unit is equal to 
  913. one-quarter the width of an average character in the system font. Vertically, 
  914. one dialogue unit equals one-eighth the height of a character in the system 
  915. font. 
  916.  
  917. The status window contains the following information: 
  918.  
  919.  Item                Description 
  920.  Mode                Shows the current operating mode. Modes include selecting 
  921.                      menu items, creating, editing and deleting controls, 
  922.                      viewing, arranging and saving. 
  923.  Groups              Shows the number of controls contained within the 
  924.                      selection group. 
  925.  Control             Shows the type of control currently selected. This may be 
  926.                      Push Button, Auto Check Box, Check Box, etc. When a window 
  927.                      is selected, it displays Window. Likewise, when a dialogue 
  928.                      is selected, it displays Dialogue. 
  929.  Relative            Shows how the current selected window, dialogue, or 
  930.                      control is positioned. For windows or dialogues, the 
  931.                      relative position may be Window, Screen, or Mouse. For 
  932.                      controls, it will always be Window or Dialogue, depending 
  933.                      on the type in which it is placed. 
  934.  [x, y]              Shows the current position of the lower left corner of the 
  935.                      selected window, dialogue, or control. 
  936.  Focus               Displays the ID symbol or value of the control to receive 
  937.                      the initial focus within a dialogue. If a window is 
  938.                      displayed, the N/A symbol is displayed. If no control has 
  939.                      been selected, the Default symbol is displayed. 
  940.  Value               Shows the current ID symbol (or value if no symbol has 
  941.                      been defined) for the window, dialogue, or control 
  942.                      selected. 
  943.  [cx, cy]            Shows the current width and height of the selected window, 
  944.                      dialogue, or control. 
  945.  Target OS           Shows the target operating system for the current design. 
  946.  
  947.  The bottom area of the status window contains an area for additional messages 
  948.  relating to the dialogue or window you are designing. When a PMCX control 
  949.  cannot be located, an error message is displayed stating which control could 
  950.  not be found. The status window is also used to display information regarding 
  951.  a selected control. For example, the cell size of a value set control is 
  952.  displayed. This helps with sizing a control that must accommodate bitmaps of a 
  953.  given size. Next to this message area are a series of check indicators that 
  954.  denote the environment under which the selected control can run. These are: 
  955.  
  956.  Item           Environment 
  957.  OS/2 1.x       OS/2 1.x 
  958.  OS/2 2.x       OS/2 2.x or OS/2 Warp 
  959.  MMPM/2         OS/2 Version 2.1 or Warp with MMPM/2 Version 1.1 or higher 
  960.                 installed 
  961.  Pen for OS/2   OS/2 Version 2.1 with Pen for OS/2 Version 1.0 or higher 
  962.                 installed 
  963.  Windows        Microsoft Windows 3.1 or Microsoft Windows NT 3.1 or higher 
  964.  
  965.  
  966. ΓòÉΓòÉΓòÉ 5.5. Tools Window ΓòÉΓòÉΓòÉ
  967.  
  968. Prominare Designer provides a quick way to select controls to place within a 
  969. window or dialogue. Select the Tools window button in the tool bar and the 
  970. Tools window is displayed. The position is saved when you exit the application. 
  971.  
  972. Select the control you wish to create by clicking on the button representing 
  973. the control you want. 
  974.  
  975.  
  976. ΓòÉΓòÉΓòÉ 5.6. Text/ID Symbol Definition Window ΓòÉΓòÉΓòÉ
  977.  
  978. Prominare Designer provides you with a quick way of changing the text and/or ID 
  979. symbol of a selected control, dialogue, or window. The Text/ID Symbol 
  980. Definition window is displayed when you select the Tools window button in the 
  981. tool bar. The position is saved when you exit the application 
  982.  
  983. When you select a control, dialogue, or window, the text and ID symbol are 
  984. placed in the Text and ID fields. You can then change the text and/or ID symbol 
  985. and have the information recorded for the control, dialogue, or window by 
  986. clicking on the Update button. This is faster then double clicking on the 
  987. control, dialogue, or window to display a styles dialogue in which you can 
  988. change the text and/or ID symbol. 
  989.  
  990.  
  991. ΓòÉΓòÉΓòÉ 5.7. Menus ΓòÉΓòÉΓòÉ
  992.  
  993. The action bar contains the following menus: 
  994.  
  995.  Menu           Contents 
  996.  File           Contains file-oriented operations such as New, Open, Import, 
  997.                 Include Open, Save, Save As, Include Save, Include Save As, and 
  998.                 Include View. These commands allow you to create, open and save 
  999.                 files. 
  1000.  Edit           Contains editing operations that allow you to cut, copy, and 
  1001.                 paste controls, dialogues, and windows, and edit or delete 
  1002.                 displayed controls. Allows you to create a new window or 
  1003.                 dialogue. 
  1004.  Find           Contains search-oriented operations that allow you to search 
  1005.                 for text, ID symbol, or value within the design. 
  1006.  Control        Contains operations to create controls for placement in windows 
  1007.                 or dialogues. Includes buttons, scroll bars, static items, and 
  1008.                 menus. 
  1009.  Resource       Contains operations to add resources to the application you are 
  1010.                 creating or editing. Includes accelerators, strings, help 
  1011.                 tables, icons, pointers, and custom resources. 
  1012.  Source         Contains operations to edit source code generation rules. 
  1013.  Configure      Contains operations to configure Prominare Designer. 
  1014.  Options        Contains operations to arrange controls and menus and define 
  1015.                 design information and resource distribution. 
  1016.  Help           Contains operations to invoke help information for Prominare 
  1017.                 Designer. 
  1018.  
  1019.  
  1020. ΓòÉΓòÉΓòÉ 5.7.1. File Menu ΓòÉΓòÉΓòÉ
  1021.  
  1022. The File menu is used in conjunction with file operations. The File sub-menus 
  1023. are: 
  1024.  
  1025.  Menu Item                Purpose/Usage 
  1026.  New design               Used to start a new design. 
  1027.  Open                     Used to open an existing design file. 
  1028.  Import                   Used to import an existing compiled resource script 
  1029.                           file (.RES), or text script files (.RC), or to 
  1030.                           extract the resource information from a .DLL or .EXE 
  1031.                           and convert to a design file. Both OS/2 and Microsoft 
  1032.                           Windows resources are acceptable. 
  1033.  Merge                    Used to merge an existing design file (.PDF) 
  1034.                           contained on your system with an open, active design. 
  1035.  Include new              Used to start a new include file. If the existing 
  1036.                           include file has not been saved, Prominare Designer 
  1037.                           asks if you want to save the file before starting a 
  1038.                           new one. New include files are Initially untitled. 
  1039.                           You can name the file using the Include Save as... 
  1040.                           menu item. 
  1041.  Include open             Used to open an existing include header file. 
  1042.  Save                     Used to save the design file being edited. If you are 
  1043.                           saving a new design and a file by the same name 
  1044.                           already exists, you will receive a message asking if 
  1045.                           you want to replace the existing file with the new 
  1046.                           one. Clicking Yes causes the existing file to be 
  1047.                           replaced with the new one. Clicking No causes the 
  1048.                           save request to be canceled. 
  1049.  Save as                  Used to name and save design file to disk as well as 
  1050.                           edit history, comments, and version information 
  1051.                           associated with the file. 
  1052.  Quick save               Used to save the current design without updating the 
  1053.                           .RC or .RES file(s). 
  1054.  Refresh .RES             Used to update the .RES file(s) such that any changes 
  1055.                           made to icons, bitmaps, etc. are reflected. You can 
  1056.                           only do this if you have selected the option to save 
  1057.                           to a .RES file instead of saving to a .RC file within 
  1058.                           the New Design or Define Design dialogues. 
  1059.  Include save             Used to save edited include header file to disk. 
  1060.  Include save as          Used to save and name include header to disk. 
  1061.  Print                    Used to print the current window or dialogue or all 
  1062.                           windows or dialogues within the design. 
  1063.  Printer setup            Used to select and/or set up printer. 
  1064.  Save design              Used to save the current window or dialogue to the 
  1065.                           pre-designed library. 
  1066.  Delete design            Used to delete a pre-designed window or dialogue from 
  1067.                           the pre-designed library. 
  1068.  Include view/edit        Used to view and/or edit include header file 
  1069.                           definitions. 
  1070.  Information              Displays a dialogue showing the current selected 
  1071.                           window or dialogue information such as number of 
  1072.                           controls, help items, etc.. 
  1073.  
  1074.  Also shown at the bottom of the File menu are the last eight design files 
  1075.  edited. Selecting one of these entries loads that file as though you had 
  1076.  selected it from the Open dialogue. 
  1077.  
  1078.  
  1079. ΓòÉΓòÉΓòÉ 5.7.1.1. Print menu ΓòÉΓòÉΓòÉ
  1080.  
  1081. The Print sub-menu is used to print either all windows or dialogues within the 
  1082. current design, or just the currently displayed window or dialogue. The 
  1083. sub-menu contains two menu items: 
  1084.  
  1085.  Menu Item                Purpose/Usage 
  1086.  All                      Used to print all windows and dialogues within the 
  1087.                           current design. The Print Design dialogue allows you 
  1088.                           to specify where on the page the image is to be 
  1089.                           printed, along with the size of the image. 
  1090.  Displayed                Used to print the currently displayed window or 
  1091.                           dialogue. The Print Design dialogue allows you to 
  1092.                           specify where on the page the image is to be printed, 
  1093.                           along with the size of the image. 
  1094.  
  1095.  
  1096. ΓòÉΓòÉΓòÉ 5.7.2. Edit Menu ΓòÉΓòÉΓòÉ
  1097.  
  1098. The Edit menu is used in conjunction with edit operations. The Edit sub-menus 
  1099. are: 
  1100.  
  1101.  Menu Item                Purpose/Usage 
  1102.  Undo                     Used to restore an editing or creation action that 
  1103.                           you performed on a control or set of controls. The 
  1104.                           editing actions for the dialogue or window will be 
  1105.                           saved only while that dialogue or window is 
  1106.                           displayed. Once a different dialogue or window is 
  1107.                           selected, the undo stack will be discarded. 
  1108.  Redo                     Used to restore an undo action that you performed on 
  1109.                           a control or set of controls. The undo actions for 
  1110.                           the dialogue or window will be saved only while that 
  1111.                           dialogue or window is displayed. Once a different 
  1112.                           dialogue or window is selected, the undo stack will 
  1113.                           be discarded. 
  1114.  Cut                      Used to cut selected controls, windows, or dialogues 
  1115.                           and place them on the clipboard. Retrieve cut items 
  1116.                           by pasting the design information into another design 
  1117.                           file or back into the current one. Note that when you 
  1118.                           use Cut, you are essentially deleting the controls, 
  1119.                           window, or dialogue from the current design file. 
  1120.  Copy                     Used to copy selected controls, windows, or dialogues 
  1121.                           to the clipboard. Retrieve an item by pasting the 
  1122.                           design information into another design file or back 
  1123.                           into the current one. Unlike the Cut menu item, Copy 
  1124.                           leaves the current version of the controls, window, 
  1125.                           or dialogue in the design file. 
  1126.  Paste                    Used to paste controls, windows, or dialogues from 
  1127.                           the clipboard into Prominare Designer. When you are 
  1128.                           pasting either a window or dialogue, Prominare 
  1129.                           Designer asks if it should paste over the displayed 
  1130.                           item. Selecting Yes replaces the displayed window or 
  1131.                           dialogue with the one on the clipboard. Selecting No 
  1132.                           stores the displayed window or dialogue in memory 
  1133.                           before pasting the window or dialogue on the 
  1134.                           clipboard into the design file. If no window or 
  1135.                           dialogue is displayed, the window or dialogue from 
  1136.                           the clipboard is pasted into the design file and 
  1137.                           immediately displayed. The original ID for the window 
  1138.                           or dialogue is deleted and a new one used in its 
  1139.                           place. Once a window or dialogue has been pasted, 
  1140.                           Window/Dialogue Styles is displayed, allowing you to 
  1141.                           enter the new ID symbol, function name, and other 
  1142.                           information. When pasting, controls are pre-selected 
  1143.                           as a group, making it easy to move them to a new 
  1144.                           location if necessary. 
  1145.  Paste from file          Used to paste selected window/dialogue, resource, 
  1146.                           string/message, and association table items from a 
  1147.                           selected design file. The Paste Open dialogue 
  1148.                           appears; from here, select the design file to paste 
  1149.                           from. The Paste From File dialogue is then displayed. 
  1150.                           Select the elements you wish to paste into the 
  1151.                           current design. 
  1152.  Delete                   Sub-menu that allows deletion of elements within 
  1153.                           current. 
  1154.  New                      Used to create a new window, dialogue, or pop-up menu 
  1155.                           or to retrieve a pre- designed window or dialogue. 
  1156.                           The New Dialogue/Window dialogue lets you select 
  1157.                           which type of window/dialogue to create. 
  1158.  Pop-up menu              Used to edit pop-up menu. 
  1159.  Styles                   Used to edit the styles of a selected window, 
  1160.                           dialogue, or control. 
  1161.  Properties               Sub-menu used to define code page and--for OS/2 1.x 
  1162.                           resources--memory properties of accelerators, 
  1163.                           dialogues, messages, and strings. 
  1164.  
  1165.  
  1166. ΓòÉΓòÉΓòÉ 5.7.2.1. Delete ΓòÉΓòÉΓòÉ
  1167.  
  1168. The Delete sub-menu item deletes items within the current window or dialogue. 
  1169. It contains the following items: 
  1170.  
  1171.  Menu Item                Purpose/Usage 
  1172.  Window/Dialogue          Used to delete displayed window or dialogue. 
  1173.                           Prominare Designer prompts for verification that you 
  1174.                           want to delete the window or dialogue before actually 
  1175.                           deleting it. All control and resource information 
  1176.                           (such as accelerators, help sub- tables, etc.) 
  1177.                           associated with the dialogue is also deleted from the 
  1178.                           design file. 
  1179.  Control                  Used to delete selected controls or to choose 
  1180.                           controls to delete from a window or dialogue. 
  1181.  Action bar menu          Used to select action bar menus to delete from a 
  1182.                           window. Any associated sub-menu items are deleted as 
  1183.                           well. 
  1184.  Sub-menu item            Used to select menu items to delete from a window. 
  1185.  Accelerator              Used to select accelerators to delete. 
  1186.  Association item         Used to select association table items to delete. 
  1187.  Bitmap                   Used to select bitmap resource definitions to delete. 
  1188.  Character table          Used to select character table definitions to delete. 
  1189.  Font                     Used to select font resource definitions to delete. 
  1190.  Font directory           Used to select font directory definitions to delete. 
  1191.  Help                     Sub-menu used to delete help definitions. 
  1192.  Icon                     Used to select icon resource definitions to delete. 
  1193.  Key table                Used to select key table resource definitions to 
  1194.                           delete. 
  1195.  Message                  Used to select message resources to delete. 
  1196.  Pointer                  Used to select pointer resource definitions to 
  1197.                           delete. 
  1198.  Resource                 Used to select custom resource definitions to delete. 
  1199.  String                   Used to select string resources to delete. 
  1200.  Virtual key table        Used to select virtual key table resources to delete. 
  1201.  
  1202.  
  1203. ΓòÉΓòÉΓòÉ 5.7.2.2. Help ΓòÉΓòÉΓòÉ
  1204.  
  1205. The Help sub-menu item is used to delete help definitions: 
  1206.  
  1207.  Menu Item                Purpose/Usage 
  1208.  Table                    Used to select help tables to delete. 
  1209.  Table item               Used to select help table items to delete. 
  1210.  Sub-table                Used to select help sub-tables to delete. 
  1211.  Sub-table item           Used to select help sub-table items to delete. 
  1212.  
  1213.  
  1214. ΓòÉΓòÉΓòÉ 5.7.2.3. Properties ΓòÉΓòÉΓòÉ
  1215.  
  1216. The Properties sub-menu is used to set memory properties. It contains five menu 
  1217. items: 
  1218.  
  1219.  Menu Item                Purpose/Usage 
  1220.  Accelerator              Used to define memory options for accelerator table. 
  1221.  Dialogue                 Used to define memory options for current dialogue. 
  1222.  Menu                     Used to define memory options for menu. 
  1223.  Message                  Used to define memory options for message table. 
  1224.  String                   Used to define memory options for string table. 
  1225.  
  1226.  
  1227. ΓòÉΓòÉΓòÉ 5.7.3. Find Menu ΓòÉΓòÉΓòÉ
  1228.  
  1229. The Find menu is used to locate a text string, symbol, or ID within the design. 
  1230. The Find sub- menus provided are: 
  1231.  
  1232.  Menu Item                Purpose/Usage 
  1233.  Search                   Search design for a symbol or text item. 
  1234.  Search next              Search for the next occurrence of a symbol or text 
  1235.                           item. 
  1236.  
  1237.  
  1238. ΓòÉΓòÉΓòÉ 5.7.4. Control Menu ΓòÉΓòÉΓòÉ
  1239.  
  1240. The Control menu is used in conjunction with creating controls placed within a 
  1241. window or dialogue. The Control sub-menus provided are: 
  1242.  
  1243.  Menu Item                Purpose/Usage 
  1244.  Push button              Used to create a push button control. 
  1245.  Check box                Used to create a check box control. 
  1246.  Radio button             Used to create a radio button control. 
  1247.  Horz. scroll             Used to create a horizontal scroll bar control. 
  1248.  Vert. scroll             Used to create a vertical scroll bar control. 
  1249.  List box                 Used to create a list box control. 
  1250.  Entry field              Used to create an entry field control. 
  1251.  Group box                Used to create a group box control. 
  1252.  Text                     Used to create a text control. 
  1253.  Frame                    Used to create a frame control. 
  1254.  Rectangle                Used to create a rectangle control. 
  1255.  Icon                     Used to create a icon control. 
  1256.  Bitmap                   Used to create a bitmap control. 
  1257.  System icon              Used to create a system icon control. 
  1258.  Combo box                Used to create a combination box control. 
  1259.  Multi-line entry         Used to create a multiple-line entry field control. 
  1260.  Spin button              Used to create a spin button control. 
  1261.  Container                Used to create a container control. 
  1262.  Slider                   Used to create a slider control. 
  1263.  Value set                Used to create a value set control. 
  1264.  Notebook                 Used to create a notebook control. 
  1265.  User defined             Used to create a user-defined control. 
  1266.  Circular slider          Used to create a circular slider control. 
  1267.  Graphic button           Used to create a graphic button control. 
  1268.  Handwriting              Used to create a handwriting control. 
  1269.  Sketch                   Used to create a sketch control. 
  1270.  Window                   Used to create a window. 
  1271.  Menu                     Used to create or edit a menu including action bar 
  1272.                           and sub-menu items. 
  1273.  
  1274.  
  1275. ΓòÉΓòÉΓòÉ 5.7.5. Resource Menu ΓòÉΓòÉΓòÉ
  1276.  
  1277. The Resource menu is used to define application resources. The Resource 
  1278. sub-menus provided are: 
  1279.  
  1280.  Menu Item                Purpose/Usage 
  1281.  Accelerator              Used to create, edit, or delete a keyboard 
  1282.                           accelerator table items. 
  1283.  Association table        Used to create, edit, or delete association table 
  1284.                           items. 
  1285.  Bitmap                   Used to create, edit, or delete bitmap resource 
  1286.                           definitions. 
  1287.  Character table          Used to create, edit, or delete character table 
  1288.                           resource items. 
  1289.  Font                     Used to create, edit, or delete font resource 
  1290.                           definitions. 
  1291.  Font directory           Used to create, edit, or delete font directory 
  1292.                           resource items. 
  1293.  Help                     Sub-menu used to create help tables and sub-tables. 
  1294.  Icon                     Used to create, edit, or delete icon resource 
  1295.                           definitions. 
  1296.  Key table                Used to create, edit, or delete key table resource 
  1297.                           items. 
  1298.  Message                  Used to create, edit, or delete message table 
  1299.                           resource definitions. 
  1300.  Pointer                  Used to create, edit, or delete pointer resource 
  1301.                           definitions. 
  1302.  Resource                 Used to create, edit, or delete custom defined 
  1303.                           resource items. 
  1304.  String                   Used to create, edit, or delete string table resource 
  1305.                           items. 
  1306.  Virtual key table        Used to create, edit, or delete virtual key table 
  1307.                           resource items. 
  1308.  
  1309.  
  1310. ΓòÉΓòÉΓòÉ 5.7.5.1. Help sub-menu ΓòÉΓòÉΓòÉ
  1311.  
  1312. The Help menu item is used to define help definitions. It contains six menu 
  1313. items: 
  1314.  
  1315.  Menu Item                Purpose/Usage 
  1316.  Table                    Used to create, edit, or delete help tables. 
  1317.  Table item               Used to create, edit, or delete help table items. 
  1318.  Sub-table                Used to create, edit, or delete help sub-table. 
  1319.  Sub-table item           Used to create, edit, or delete help sub-table items. 
  1320.  Build help table         Used to build a help table. 
  1321.  Build help sub-table     Used to build a help sub-table. 
  1322.  
  1323.  
  1324. ΓòÉΓòÉΓòÉ 5.7.6. Source Menu ΓòÉΓòÉΓòÉ
  1325.  
  1326. The Source menu is used to define and edit default source code rules to be used 
  1327. during source code generation. The Source sub-menus provided are: 
  1328.  
  1329.  Menu Item                Purpose/Usage 
  1330.  Message                  Used to define the actual source code for window, 
  1331.                           dialogue, and notification messages. 
  1332.  Source                   Used to define the module and header files start, 
  1333.                           along with the standard window and dialogue 
  1334.                           declarations. Commands  Used to define the default 
  1335.                           source code for various WM_COMMAND handling methods. 
  1336.  Layout                   Used to define the default layout rules for windows 
  1337.                           and dialogues. 
  1338.  Export                   Used to export the source code rules to a flat ASCII 
  1339.                           file which contains tags that are used to import the 
  1340.                           file. The source code entries can be edited using a 
  1341.                           standard text editor. 
  1342.  Import                   Used to import the source code rules that were 
  1343.                           exported and edited using a standard text editor. 
  1344.  
  1345.  When you design for CA-CommonView, IBM User Interface Class Libraries, Borland 
  1346.  OWL, or ObjectPM, you have only two menus to select from: Source and Commands. 
  1347.  
  1348.  
  1349. ΓòÉΓòÉΓòÉ 5.7.6.1. Message Sub-menu ΓòÉΓòÉΓòÉ
  1350.  
  1351. The Message sub-menu is used to define the default source code for window, 
  1352. dialogue, and notification messages. The sub-menu contains three menu items: 
  1353.  
  1354.  
  1355. ΓòÉΓòÉΓòÉ 5.7.6.2. Message sub-menu ΓòÉΓòÉΓòÉ
  1356.  
  1357.  Menu Item                Purpose/Usage 
  1358.  Window                   Used to define the default source code for window 
  1359.                           messages. 
  1360.  Dialogue                 Used to define the default source code for dialogue 
  1361.                           messages. 
  1362.  Notification             Used to define the default source code for 
  1363.                           notification messages. 
  1364.  
  1365.  
  1366. ΓòÉΓòÉΓòÉ 5.7.6.3. Commands sub-menu ΓòÉΓòÉΓòÉ
  1367.  
  1368. The Commands sub-menu is used to define source rule methods for the handling of 
  1369. WM_COMMAND messages. The sub-menu contains four menu items: 
  1370.  
  1371.  Menu Item                Purpose/Usage 
  1372.  Menu                     Used to define the source code rule methods for menu 
  1373.                           items that generate a WM_COMMAND message. 
  1374.  Push button              Used to define the source code rule methods for push 
  1375.                           buttons that generate a WM_COMMAND message. 
  1376.  User button              Used to define the source code rule methods for user 
  1377.                           buttons that generate a WM_COMMAND message. 
  1378.  User defined             Used to define the source code rule methods for 
  1379.                           user-defined items that generate a WM_COMMAND 
  1380.                           message. 
  1381.  
  1382.  
  1383. ΓòÉΓòÉΓòÉ 5.7.6.4. Layout sub-menu ΓòÉΓòÉΓòÉ
  1384.  
  1385. The Layout sub-menu is used to define source code layout rules for windows and 
  1386. dialogues. It contains two menu items: 
  1387.  
  1388.  Menu Item                Purpose/Usage 
  1389.  Window                   Used to define the layout rules for window procedures 
  1390.                           in terms of which messages to handle within a typical 
  1391.                           window procedure. 
  1392.  Dialogue                 Used to define the layout rules for dialogue 
  1393.                           procedures in terms of which messages to handle 
  1394.                           within a typical dialogue procedure. 
  1395.  PMCX window              Used to define the layout rules for PMCX window 
  1396.                           procedures in terms of which messages to handle 
  1397.                           within a typical window procedure. 
  1398.  PMCX dialogue            Used to define the layout rules for PMCX dialogue 
  1399.                           procedures in terms of which messages to handle 
  1400.                           within a typical dialogue procedure. 
  1401.  
  1402.  
  1403. ΓòÉΓòÉΓòÉ 5.7.7. Configure Menu ΓòÉΓòÉΓòÉ
  1404.  
  1405. The Configure sub-menu is used to configure Prominare Designer to the way that 
  1406. you work. It contains six menu items: 
  1407.  
  1408.  Menu Item                Purpose/Usage 
  1409.  Creation options         Used to define default control sizes, styles, and 
  1410.                           text for when a control is added to a window or 
  1411.                           dialogue. 
  1412.  CUA compliance           Used to set the IBM Common User Access (CUA) 
  1413.                           compliance rules. 
  1414.  Default usage            Used to define default paths, grid size, and 
  1415.                           autolabel prefixes, as well as key combinations for 
  1416.                           the mouse. 
  1417.  .DFM registration        Used to define additional display units and their 
  1418.                           corresponding dialogue factors or to edit existing 
  1419.                           definitions that can be used with the Show Limits 
  1420.                           button. 
  1421.  PMCX and temporary controls (PMCX)Used to define custom controls that utilize 
  1422.                           the PM Control Extension controls  for use within 
  1423.                           Prominare Designer. 
  1424.  
  1425.  
  1426. ΓòÉΓòÉΓòÉ 5.7.8. Options Menu ΓòÉΓòÉΓòÉ
  1427.  
  1428. The Options menu is used in conjunction with miscellaneous operations. The 
  1429. Options sub- menus provided are: 
  1430.  
  1431.  Menu Item                Purpose/Usage 
  1432.  Arrange controls         Used to arrange display order of controls, set groups 
  1433.                           and tab stops. 
  1434.  Arrange menus            Used to arrange order of action bar and sub-menu 
  1435.                           items. 
  1436.  Define design            Used to define and edit design associations. 
  1437.  Resource distribution    Used to edit or add resource distribution items. 
  1438.  PMCX definition          Used to define the PMCX control being designed. 
  1439.  
  1440.  
  1441. ΓòÉΓòÉΓòÉ 5.7.9. Help Menu ΓòÉΓòÉΓòÉ
  1442.  
  1443. The Help menu provides you with access to on-line help for Prominare Designer. 
  1444. The menu items available are: 
  1445.  
  1446.  Menu Item                Purpose/Usage 
  1447.  Help index               Displays the help index. 
  1448.  General help             Displays general help for the application. 
  1449.  Using help               Displays help for using the help. 
  1450.  Keys help                Displays help for keys. 
  1451.  Support                  Used to submit either a problem report or suggestion. 
  1452.  Product information      Displays information dialogue on Prominare Designer. 
  1453.  
  1454.  
  1455. ΓòÉΓòÉΓòÉ 5.7.9.1. Support sub-menu ΓòÉΓòÉΓòÉ
  1456.  
  1457. The Support sub-menu provides you with an on-line method of requesting support 
  1458. for Prominare Designer. Menu items are: 
  1459.  
  1460.  Menu Item                Purpose/Usage 
  1461.  Submit problem           Used to enter or edit a problem report that can be 
  1462.                           printed or faxed. 
  1463.  Submit suggestion        Used to enter or edit a suggestion that can be 
  1464.                           printed or faxed. 
  1465.  
  1466.  
  1467. ΓòÉΓòÉΓòÉ 5.7.10. Window-list Menu ΓòÉΓòÉΓòÉ
  1468.  
  1469. The Window-list menu allows you select other applications that are running or 
  1470. folders that you have opened. 
  1471.  
  1472.  
  1473. ΓòÉΓòÉΓòÉ 5.8. Startup dialogues ΓòÉΓòÉΓòÉ
  1474.  
  1475.  
  1476. ΓòÉΓòÉΓòÉ 5.8.1. Prominare Designer Startup ΓòÉΓòÉΓòÉ
  1477.  
  1478. When Prominare Designer starts executing, it displays the Prominare Designer 
  1479. Startup dialogue, which helps you begin using Prominare Designer immediately, 
  1480. even if you are not completely familiar with the program. It provides five 
  1481. basic options: 
  1482.  
  1483.  Option                   Purpose 
  1484.  Start new design         Starts a new design through the New Design dialogue. 
  1485.  Open existing design     Opens an existing design file through the Open 
  1486.                           dialogue. 
  1487.  Import resource file     Imports a binary or script resource file using the 
  1488.                           Import dialogue. Can also be used to extract the 
  1489.                           binary resources from an executable or dynamic link 
  1490.                           library file. 
  1491.  Last opened              Opens a recently edited file. Equivalent to selecting 
  1492.                           one of the last edited entries within the File menu. 
  1493.                           When this option is selected, the Last opened 
  1494.                           drop-down below the radio buttons is enabled, 
  1495.                           allowing you to select a file to open. 
  1496.  Display on startup       Displays the Prominare Designer Startup dialogue on 
  1497.                           startup. This option is the same as that in the 
  1498.                           Prominare Designer Default Usage dialogue. 
  1499.  
  1500.  Once you have selected an action to perform, click on the Start button. In the 
  1501.  case of the first option, Start new design, the New Design dialogue appears; 
  1502.  from here, define the type of application you are creating along with the 
  1503.  source code options. The New Dialogue/Window dialogue appears next; here, you 
  1504.  begin to create your first window or dialogue. The equivalent menu steps are 
  1505.  File New... then Edit New... If you select the Open existing design option, 
  1506.  the Open dialogue is displayed; select a design file to open. Once the file is 
  1507.  read into memory, you can immediately make changes to the first window or 
  1508.  dialogue. The equivalent menu command is File Open... 
  1509.  
  1510.  
  1511. ΓòÉΓòÉΓòÉ 5.9. Configuring Prominare Designer ΓòÉΓòÉΓòÉ
  1512.  
  1513.  
  1514. ΓòÉΓòÉΓòÉ 5.9.1. Prominare Designer Default Usage ΓòÉΓòÉΓòÉ
  1515.  
  1516. You can configure various options within Prominare Designer through the 
  1517. Prominare Designer Default Usage dialogue. The dialogue contains a set of tabs 
  1518. which allow you to set the paths where rules and pre-design libraries are 
  1519. located, install and edit custom control libraries, and define or edit the 
  1520. symbol prefixes and labeling options. 
  1521.  
  1522. The first tab, Paths, is used to enter the paths for the pre-designed library, 
  1523. .INI location and the include files. The pre-designed library path is entered 
  1524. through the Pre-designed library labeled entry field. It initially defaults to 
  1525. the directory in which Prominare Designer was installed. For example, if you 
  1526. installed Prominare Designer in Drive C, the path would be C:\PD5. 
  1527.  
  1528. The entry fields for the include paths, OS/2 and Windows, are used to define 
  1529. the location of the OS/2 and Windows headers. These are required by the import 
  1530. routines when you import OS/2 or Microsoft Windows resource script files (.RC). 
  1531.  
  1532. If you have defined an INCLUDE= environment variable, you need not complete 
  1533. either entry field. Enter the paths either when the INCLUDE= environment 
  1534. variable does not exist in your environment or when you dynamically set the 
  1535. INCLUDE= each time you build your applications. 
  1536.  
  1537. The second tab, Extensions, is used to define the extensions for the include 
  1538. header, resource script, binary files, and object files. As it possible that 
  1539. convention designations may change with time, this tab lets you set the 
  1540. designations to conform to any changed designations. You can set the 
  1541. designations for Windows 3.1 and Windows NT, where both areas are provided for 
  1542. designating the file extensions when you import resources. The remaining areas, 
  1543. OS/2 1.x and OS/2 2.x / Warp 3.0 / Warp 4.0, are used in both importing 
  1544. resources and saving the design information as resources. 
  1545.  
  1546. The third tab, Options, is used to enter the control alignment values, the 
  1547. radix, and entry field clearing options. 
  1548.  
  1549. The Auto size group is used to set the manner in which the auto size function 
  1550. works within the Align Controls dialogue. When you select the option to auto 
  1551. size the controls based on the text, the Use display limits target option 
  1552. causes the targeted display font metrics to be used as the basis for sizing the 
  1553. control. The User mode group allows you to specify the mode in which Prominare 
  1554. Designer displays certain dialogues for starting a new design and controls. 
  1555. When the Expert option is selected, the Advanced New Design dialogue will be 
  1556. displayed allowing you to select more options when creating a new design.  It 
  1557. will also cause the Button Styles and Static Styles dialogues to be displayed 
  1558. in place of the individual styles dialogue for buttons and static controls. 
  1559.  
  1560. The Source code group allows you to specify whether or not the tab compression 
  1561. character should be used within the source files saved and what the right 
  1562. margin show be. The Autosave group allows you to specify the frequency in which 
  1563. the automatic saving of the design file should be done.  The Startup group 
  1564. allows you to specify whether or not the initial startup dialogue, Prominare 
  1565. Designer Startup, should be displayed. 
  1566.  
  1567. The Margins group is used to set the left/right and top/bottom margins in which 
  1568. the push buttons are inset when they are arranged. The Control spacings group 
  1569. is used as the value between controls when they are spaced. The Grid values 
  1570. group contains the grid spacing to be displayed. Selecting the Snap to grid 
  1571. option causes the controls to snap to the grid points when created or moved. 
  1572. Finally, the Push button spacing group contains the spacing that should occur 
  1573. between the push buttons when they are arranged. 
  1574.  
  1575. You can configure Prominare Designer to display the ID values for either 
  1576. decimal or hexadecimal by selecting the radix type from one of the following: 
  1577.  
  1578.  Option                   Description 
  1579.  Decimal                  Sets the display of ID values in the status window 
  1580.                           for decimal. 
  1581.  Hex                      Sets the display of ID values in the status window 
  1582.                           for hexadecimal. 
  1583.  
  1584.  You can configure Prominare Designer to clear entry fields within dialogues 
  1585.  that allow multiple items to be entered. These options in the Clear entry 
  1586.  fields group are: 
  1587.  
  1588.  Option                   Description 
  1589.  On add                   Clears the entry fields of the dialogue when you add 
  1590.                           an item with the Add push button. 
  1591.  On change                Clears the entry fields of the dialogue when you 
  1592.                           change an item with the Change push button. 
  1593.  
  1594.  If you wish, Prominare Designer can automatically generate the symbols for 
  1595.  you. The second to last tab, Symbols, allows you to tell Prominare Designer to 
  1596.  generate the control symbols automatically and to use pre-defined symbol 
  1597.  prefixes. You can also enable checking for duplicate symbol IDs within the 
  1598.  same window or dialogue. 
  1599.  
  1600.  The tab displays various entry fields for the different types of controls and 
  1601.  windows. These entry fields are used to designate the symbol prefix to be used 
  1602.  when a symbol is generated for that particular type of control, dialogue, or 
  1603.  window. 
  1604.  
  1605.  The prefixes that can be defined are: 
  1606.  
  1607.  Control             Default Prefix 
  1608.  Push Button         PB_ 
  1609.  Check Box           CB_ 
  1610.  Radio Button        RB_ 
  1611.  Entry Field         EF_ 
  1612.  Group Box           GB_ 
  1613.  Text                ST_ 
  1614.  Frame               FR_ 
  1615.  Rectangle           RE_ 
  1616.  Combo Box           CX_ 
  1617.  Multi-line          MLE_ 
  1618.  Spin Button         SPB_ 
  1619.  Container           CT_ 
  1620.  Slider              SLD_ 
  1621.  Value set           VS_ 
  1622.  Notebook            NB_ 
  1623.  User defined        UD_ 
  1624.  User button         UB_ 
  1625.  Circular slider     CSLD_ 
  1626.  Graphic button      GRB_ 
  1627.  Handwriting         HW_ 
  1628.  Sketch              SK_ 
  1629.  Window              WIN_ 
  1630.  Dialogue            DLG_ 
  1631.  Menu                IDM_ 
  1632.  Sub-menu            IDM_ 
  1633.  Pop-up menu         PUM_ 
  1634.  Tab                 NBKP_ 
  1635.  
  1636.  The tab provides three options that govern how automatic symbol generation 
  1637.  occurs. These options are: 
  1638.  
  1639.  Option                   Description 
  1640.  Auto generate            Allows auto generation of symbols. 
  1641.  Use prefix               When auto generation is allowed, this option causes 
  1642.                           the defined prefix for the control being edited to be 
  1643.                           used. 
  1644.  Check duplicates         Causes Prominare Designer to check for duplicate IDs 
  1645.                           used in the same window or dialogue. 
  1646.  
  1647.  When you allow auto generation, Prominare Designer uses the following methods 
  1648.  to generate the symbol. You must first edit the text of the control to its 
  1649.  final value. When you move from the Text entry field to the symbol entry field 
  1650.  in the dialogue, the symbol is generated. If you have selected the Use prefix 
  1651.  option, the prefix value for the type of control you are editing is used. 
  1652.  
  1653.  The text of the control is used as the symbol, along with a predefined prefix. 
  1654.  For example, if you have just created a new push button and you enter the text 
  1655.  for it as Show example, the symbol generated for the push button will be 
  1656.  SHOWEXAMPLE when you choose not to generate a prefix. If the prefix option is 
  1657.  allowed, and the prefix for push buttons is PB_, the symbol generated will be 
  1658.  PB_SHOWEXAMPLE. 
  1659.  
  1660.  Prominare Designer only generates a symbol when there is no value contained 
  1661.  within the symbol portion of the ID field. If a symbol is already set for the 
  1662.  control and you change the text of the control, Prominare Designer will not 
  1663.  generate a new symbol. 
  1664.  
  1665.  The last tab, Mouse, is used to define the key-mouse button combinations for 
  1666.  mouse operations. A grid of selections for the keys is presented along with a 
  1667.  grid of selections for the mouse buttons. 
  1668.  
  1669.  You can define the following mouse operations: 
  1670.  
  1671.  Option                   Default 
  1672.  Select control           Left button click 
  1673.  Add/subtract group item  Ctrl+Left button click 
  1674.  Move group               Ctrl+Right button click and drag 
  1675.  Rubber band select       Ctrl+Left button click and drag 
  1676.  Set group anchor         Alt+Left button click 
  1677.  Select styles dialogue   Left button double click 
  1678.  Show info                Shift+Left button click 
  1679.  Control context menu     Right button click 
  1680.  
  1681.  The second last operation, Show info, is used to display a control information 
  1682.  balloon like that shown below. The balloon contains the control type, text, 
  1683.  size (in both dialogue units and pixels), ID symbol or value, .RC statements, 
  1684.  and PRESPARAM statements. 
  1685.  
  1686.  
  1687. ΓòÉΓòÉΓòÉ 5.9.2. Default Creation Options ΓòÉΓòÉΓòÉ
  1688.  
  1689. The Default Creation Options dialogue allows you to define the type of 
  1690. window/dialogue created each time you use the New... item in the Edit menu, as 
  1691. well as define the default text, styles and sizes for the OS/2 Presentation 
  1692. Manager controls. 
  1693.  
  1694. The dialogue allows you to customize the how Prominare Designer creates 
  1695. controls, so you can spend time designing your windows and dialogues instead of 
  1696. constantly adjusting the sizes and redefining the styles of controls created 
  1697. through separate tabs. 
  1698.  
  1699. The first tab allows you to define the default nature of the windows or 
  1700. dialogues created in the New Dialogue/Window dialogue. The options in this 
  1701. dialogue are generally the same as those in the Window/Dialogue Styles 
  1702. dialogue. The values you select in this dialogue are initially used for the 
  1703. Window/Dialogue Styles dialogue. The following options can be set through the 
  1704. dialogue: 
  1705.  
  1706.  Option                   Description 
  1707.  Parent window            Designates the default window to be created as the 
  1708.                           parent window. 
  1709.  Child window             Designates the default window to be created as a 
  1710.                           child window. 
  1711.  Dialogue                 Designates the default window to be created as a 
  1712.                           dialogue. 
  1713.  Decimal                  Sets the default display of values as decimal. 
  1714.  Hex                      Sets the default display of values as hexadecimal. 
  1715.  Title bar                Includes a title bar in the default window or 
  1716.                           dialogue. 
  1717.  System menu              Includes a system menu in the default window or 
  1718.                           dialogue. 
  1719.  Horz. scroll bar         Includes a horizontal scroll bar at the bottom of the 
  1720.                           window or dialogue. 
  1721.  Vert. scroll bar         Includes a vertical scroll bar at the right of the 
  1722.                           window or dialogue. 
  1723.  Visible                  Indicates that the window or dialogue is to be 
  1724.                           initially visible. Even if this option is not 
  1725.                           selected, Prominare Designer will display the window 
  1726.                           or dialogue. 
  1727.  Size border              Includes a sizing border as the frame of the window 
  1728.                           or dialogue. 
  1729.  Border                   Includes a simple border as the frame of the window 
  1730.                           or dialogue. 
  1731.  Dialogue frame           Includes a dialogue frame as the frame of the window 
  1732.                           or dialogue. 
  1733.  System modal             Makes the window or dialogue system modal. A system 
  1734.                           modal window or dialogue, when used, does not allow 
  1735.                           the focus to be directed to other windows that may be 
  1736.                           active. This option should be used only when you need 
  1737.                           the user's attention for a critical process; it 
  1738.                           should be used sparingly. 
  1739.  Menu                     Includes an action bar menu in the window. This is 
  1740.                           not available for dialogues. 
  1741.  Min box                  Includes a minimize box in the window or dialogue. 
  1742.  Max box                  Includes a maximize box in the window or dialogue. 
  1743.  Accelerators             Allows accelerators within a window. 
  1744.  Standard                 Sets the window as standard. When this option is 
  1745.                           used, all other selected options are ignored. 
  1746.  Window                   Sets the relative position of the dialogue display 
  1747.                           position to that of its parent window. 
  1748.  Screen                   Sets the relative position of the dialogue display 
  1749.                           position to that of the desktop. 
  1750.  Mouse                    Sets the relative position of the dialogue display 
  1751.                           position to that of the mouse pointer. 
  1752.  
  1753.  The dialogue also allows you to define the defaults for the following controls 
  1754.  by selecting the Tabs: 
  1755.  
  1756.  Tab                 Description 
  1757.  Check box           Allows default values, styles, and sizes to be set for 
  1758.                      check boxes. 
  1759.  Circular slider     Allows default values, styles, and sizes to be set for 
  1760.                      circular sliders. 
  1761.  Combo box           Allows default values, styles, and sizes to be set for 
  1762.                      combination boxes. 
  1763.  Container           Allows default values, styles, and sizes to be set for 
  1764.                      containers. 
  1765.  Entry field         Allows default values, styles, and sizes to be set for 
  1766.                      entry fields. 
  1767.  Frame               Allows default values, styles, and sizes to be set for 
  1768.                      frames. 
  1769.  Graphic button      Allows default values, styles, and sizes to be set for 
  1770.                      graphic buttons. 
  1771.  Group box           Allows default values and sizes to be set for group boxes. 
  1772.  Handwriting         Allows default values, styles, and sizes to be set for 
  1773.                      handwriting controls). 
  1774.  Horz. scroll        Allows default sizes to be set for horizontal scroll bars. 
  1775.  List box            Allows default styles and sizes to be set for list boxes. 
  1776.  Multi-line entry    Allows default values, styles, and sizes to be set for 
  1777.                      multiple-line entry fields. 
  1778.  Notebook            Allows default values, styles, and sizes to be set for 
  1779.                      notebooks. 
  1780.  Push button         Allows default values, styles, and sizes to be set for 
  1781.                      push buttons. 
  1782.  Radio button        Allows default values, styles, and sizes to be set for 
  1783.                      radio buttons. 
  1784.  Rectangle           Allows default values, styles, and sizes to be set for 
  1785.                      rectangles. 
  1786.  Sketch              Allows default values, styles, and sizes to be set for 
  1787.                      sketch controls. 
  1788.  Slider              Allows default values, styles, and sizes to be set for 
  1789.                      sliders. 
  1790.  Spin button         Allows default values, styles, and sizes to be set for 
  1791.                      spin buttons. 
  1792.  Text                Allows default values, styles, and sizes to be set for 
  1793.                      static text. 
  1794.  Value set           Allows default values, styles, and sizes to be set for 
  1795.                      value sets. 
  1796.  Vert. scroll        Allows default sizes to be set for vertical scroll bars. 
  1797.  
  1798.  Selecting one of the above tabs will allow you to define the defaults for that 
  1799.  particular control. Each of the tabs is similar in appearance. They are 
  1800.  divided into four distinct areas: 
  1801.  
  1802.  Area                Purpose 
  1803.  Size/Text           Defines the control's default text, size, ID/symbol, and 
  1804.                      control data. 
  1805.  Options             Defines the control's default styles. 
  1806.  Base styles         Defines the base styles common to all controls. 
  1807.  Example             Displays an example of the control. 
  1808.  
  1809.  Each tab allows you to set the default size, text, and styles for check boxes 
  1810.  created by Prominare Designer through the Control menu or the Tools window. 
  1811.  
  1812.  The tab allows you to enter the size of the control in the entry fields 
  1813.  labeled Width (cx) and Height (cy). The values entered into these fields are 
  1814.  in dialogue units. Clicking on the Show push button at the bottom of the 
  1815.  dialogue allows you to see the new size entered. It also shows the default 
  1816.  text you entered in the Text entry field. You can also set the default ID 
  1817.  through the ID field. 
  1818.  
  1819.  To reset the control to the default size and styles, click on the Defaults 
  1820.  button. The following shows the defaults for each control (width and height 
  1821.  are in dialogue units): 
  1822.  
  1823.   ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  1824.   ΓöéControl        ΓöéWidth   ΓöéHeight  ΓöéText Style                    Γöé
  1825.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1826.   ΓöéCheck box      Γöé38      Γöé10      ΓöéText Check box, Visible, Tab  Γöé
  1827.   Γöé               Γöé        Γöé        Γöéstop                          Γöé
  1828.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1829.   ΓöéCircular SliderΓöé48      Γöé40      ΓöéText Visible                  Γöé
  1830.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1831.   ΓöéCombo box      Γöé64      Γöé32      ΓöéText Simple, Visible, Group   Γöé
  1832.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1833.   ΓöéContainer      Γöé48      Γöé40      ΓöéSingle, Auto position,        Γöé
  1834.   Γöé               Γöé        Γöé        ΓöéVisible, Tab stop             Γöé
  1835.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1836.   ΓöéEntry field    Γöé43      Γöé12      ΓöéText Left aligned, Visible,   Γöé
  1837.   Γöé               Γöé        Γöé        ΓöéTab stop                      Γöé
  1838.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1839.   ΓöéFrame          Γöé16      Γöé12      ΓöéText Foreground, Visible,     Γöé
  1840.   Γöé               Γöé        Γöé        ΓöéGroup                         Γöé
  1841.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1842.   ΓöéGraphic button Γöé48      Γöé14      ΓöéText Visible                  Γöé
  1843.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1844.   ΓöéGroup box      Γöé43      Γöé32      ΓöéText Visible, Group           Γöé
  1845.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1846.   ΓöéHandwriting    Γöé48      Γöé40      ΓöéText Border, Visible          Γöé
  1847.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1848.   ΓöéHorz. Scroll   Γöé43      Γöé8       ΓöéVisible                       Γöé
  1849.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1850.   ΓöéList box       Γöé64      Γöé32      ΓöéNo adjust position, Visible   Γöé
  1851.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1852.   ΓöéMLE            Γöé64      Γöé32      ΓöéText Border, Ignore tab, Horz.Γöé
  1853.   Γöé               Γöé        Γöé        Γöéscroll bar, Vert. scroll bar, Γöé
  1854.   Γöé               Γöé        Γöé        ΓöéDisable undo, Visible, Tab    Γöé
  1855.   Γöé               Γöé        Γöé        Γöéstop                          Γöé
  1856.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1857.   ΓöéNotebook       Γöé48      Γöé40      ΓöéBottom right, Major tab right,Γöé
  1858.   Γöé               Γöé        Γöé        ΓöéSquare, Left status text, LeftΓöé
  1859.   Γöé               Γöé        Γöé        Γöétab text, Solid binding,      Γöé
  1860.   Γöé               Γöé        Γöé        ΓöéVisible, Tab stop             Γöé
  1861.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1862.   ΓöéPush button    Γöé38      Γöé12      ΓöéText Visible, Tab stop        Γöé
  1863.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1864.   ΓöéRadio button   Γöé38      Γöé10      ΓöéText Radio button, Visible,   Γöé
  1865.   Γöé               Γöé        Γöé        ΓöéTab stop                      Γöé
  1866.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1867.   ΓöéRectangle      Γöé16      Γöé12      ΓöéText Foreground, Visible,     Γöé
  1868.   Γöé               Γöé        Γöé        ΓöéGroup                         Γöé
  1869.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1870.   ΓöéSketch         Γöé48      Γöé40      ΓöéBorder, Visible               Γöé
  1871.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1872.   ΓöéSlider         Γöé64      Γöé16      ΓöéHorizontal, Top, Left button  Γöé
  1873.   Γöé               Γöé        Γöé        Γöéplacement, Left home position,Γöé
  1874.   Γöé               Γöé        Γöé        ΓöéScale 1, Visible, Tab stop    Γöé
  1875.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1876.   ΓöéSpin button    Γöé43      Γöé12      ΓöéText Master, Right, Visible,  Γöé
  1877.   Γöé               Γöé        Γöé        ΓöéTab stop                      Γöé
  1878.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1879.   ΓöéText           Γöé20      Γöé8       ΓöéText Left aligned, Top        Γöé
  1880.   Γöé               Γöé        Γöé        Γöéaligned, Visible, Group       Γöé
  1881.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1882.   ΓöéValue set      Γöé48      Γöé40      ΓöéText, Border, Visible, Tab    Γöé
  1883.   Γöé               Γöé        Γöé        Γöéstop                          Γöé
  1884.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  1885.   ΓöéVert. Scroll   Γöé11      Γöé32      ΓöéVisible                       Γöé
  1886.   ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  1887.  
  1888.  The following outlines the different options provided for each tab. 
  1889.  
  1890.  Note:  The circular slider and graphic button controls require MMPM/2 Version 
  1891.         1.1 or higher, along with the MMPM/2 Version 1.1 or higher Toolkit. The 
  1892.         handwriting and sketch controls require Pen for OS/2 Version 1.0 or 
  1893.         higher, along with the Pen for OS/2 Version 1.0 or higher Toolkit. 
  1894.  
  1895.  
  1896. ΓòÉΓòÉΓòÉ 5.9.2.1. Check box tab ΓòÉΓòÉΓòÉ
  1897.  
  1898. To set the default styles of the check box, select from the following options: 
  1899.  
  1900.  Option                   Description 
  1901.  Check box                Designates the check box as a simple check box. The 
  1902.                           check box will not be toggled when selected. 
  1903.  Auto check box           Designates the check box as a toggling check box. The 
  1904.                           check will be toggled when selected. 
  1905.  3 state                  Designates the check box as a complex check box. The 
  1906.                           check box will not be toggled when selected but can 
  1907.                           have three states: unchecked, checked, and 
  1908.                           indeterminate. An indeterminate check box is shown 
  1909.                           with the interior of the box grayed. 
  1910.  Auto 3 state             Designates the check box as a toggled complex check 
  1911.                           box. The check box will be toggled when selected 
  1912.                           between three states, in order: unchecked, checked, 
  1913.                           and indeterminate. 
  1914.  No focus                 Prevents the check box from receiving focus when 
  1915.                           selected. 
  1916.  Autosize                 Automatically sizes the check box control to the 
  1917.                           text. 
  1918.  
  1919.  
  1920. ΓòÉΓòÉΓòÉ 5.9.2.2. Circular slider tab ΓòÉΓòÉΓòÉ
  1921.  
  1922. To set the default styles of the circular slider, select from the following 
  1923. options: 
  1924.  
  1925.  Option                   Description 
  1926.  Mid-point tick           Enlarges the mid-point and end tick marks on the 
  1927.                           dial. 
  1928.  No value buttons         Excludes the + and - buttons. 
  1929.  No dial numbers          Excludes the dial numeric value. 
  1930.  No dial text             Excludes text below the dial. 
  1931.  Direct manipulation      Allows direct manipulation of the dial value with the 
  1932.                           mouse. 
  1933.  360┬░ scroll range        Makes the scroll range 360 . 
  1934.  Proportional ticks       Makes the ticks of the dial proportional. 
  1935.  No ticks                 Prevents the ticks that would appear on the dial from 
  1936.                           being shown. 
  1937.  Circular value           Makes the indicator on the turning dial an indented 
  1938.                           dot instead of a tick mark. 
  1939.  
  1940.  
  1941. ΓòÉΓòÉΓòÉ 5.9.2.3. Combo box tab ΓòÉΓòÉΓòÉ
  1942.  
  1943. To set the default styles of the combination box, select from the following 
  1944. options: 
  1945.  
  1946.  Option                   Description 
  1947.  Simple                   Designates the combination box as a simple 
  1948.                           combination box that always displays its list box. 
  1949.                           The entry field of the combination box can be edited 
  1950.                           by the user or completed by selecting items in the 
  1951.                           displayed list box. 
  1952.  Drop down                Designates the combination box as a combination box 
  1953.                           that only displays the list box when the user clicks 
  1954.                           on the drop-down button at the right of the entry 
  1955.                           field. When the user selects an item in the list box, 
  1956.                           the entry field is completed with the item selected 
  1957.                           and the list box hidden. If the user clicks the 
  1958.                           drop-down button a second time, the list box is also 
  1959.                           hidden. The user can edit the entry field as with the 
  1960.                           simple combination box. 
  1961.  Drop down list           Designates the combination box as a drop-down list. 
  1962.                           This is similar in operation to the drop down 
  1963.                           combination box except that the entry field cannot be 
  1964.                           edited by the user. 
  1965.  Any                      Allows the entry field to contain a mixture of 
  1966.                           double-byte and single-byte characters. 
  1967.  SBCS                     Makes the entry field accept single-byte characters 
  1968.                           only. 
  1969.  DBCS                     Makes the entry field accept double-byte characters 
  1970.                           only. 
  1971.  Mixed                    Allows the entry field to accept a mixture of single- 
  1972.                           and double-byte characters. Unlike the Any option, 
  1973.                           this allows ASCII DBCS data to be converted to EBCDIC 
  1974.                           DBCS data without causing an overflow error. 
  1975.  Horz. scroll             Causes the text within the entry field to be scrolled 
  1976.                           when it is entered by the user. 
  1977.  
  1978.  
  1979. ΓòÉΓòÉΓòÉ 5.9.2.4. Container tab ΓòÉΓòÉΓòÉ
  1980.  
  1981. To set the default styles of the container, select from the following options: 
  1982.  
  1983.  Option                   Description 
  1984.  Single                   Allows only one container item to be selected at a 
  1985.                           time. Single selection is valid for all views and is 
  1986.                           the only type supported for the tree view. 
  1987.  Extended                 Allows one or more container items to be selected in 
  1988.                           any combination. Extended selection is valid for all 
  1989.                           views except the tree view. 
  1990.  Multiple                 Allows the selection of none, some, or all of the 
  1991.                           container items. It is valid for all view except the 
  1992.                           tree view. 
  1993.  Auto position            Allows the container items to be arranged 
  1994.                           automatically when the window size changes, an item 
  1995.                           is inserted, removed, sorted, invalidated, or 
  1996.                           filtered, or when the font or font size changes. It 
  1997.                           is only valid with the icon view. 
  1998.  Mini record              Causes the container to allocate records smaller than 
  1999.                           they would otherwise be. The MINIRECORDCORE data 
  2000.                           structure is used instead of the RECORDCORE data 
  2001.                           structure. 
  2002.  Verify pointer           Verifies that the application pointers are members of 
  2003.                           the container's linked list before they are used. 
  2004.                           Generally, the Verify pointer style is used when 
  2005.                           developing the application. 
  2006.  Read only                Makes the entire container read only, preventing the 
  2007.                           user from editing the container item text. 
  2008.  Mini-icons               Allows the use of mini-icons in the MINIRECORDCORE 
  2009.                           structure. 
  2010.  No control pointer       Prevents the container from sending the 
  2011.                           WM_CONTROLPOINTER message to the window or dialogue 
  2012.                           owning the control. 
  2013.  
  2014.  
  2015. ΓòÉΓòÉΓòÉ 5.9.2.5. Entry field tab ΓòÉΓòÉΓòÉ
  2016.  
  2017. To set the default styles of the entry field, select from the following 
  2018. options: 
  2019.  
  2020.  Option                   Description 
  2021.  Left aligned             Aligns the text in the entry field with the left 
  2022.                           edge. Text entered by the user will shift right 
  2023.                           within the entry field. 
  2024.  Centered                 Centers the text in the entry field. When text is 
  2025.                           entered by the user, the contents of the entry field 
  2026.                           will shift left and right, keeping the text centered 
  2027.                           within the field. 
  2028.  Right aligned            Aligns the text in the entry field with the right 
  2029.                           edge. Text entered by the user will shift left within 
  2030.                           the entry field. 
  2031.  Auto horz. scroll        Causes the text within the entry field to scroll when 
  2032.                           entered by the user. 
  2033.  Margin                   Displays a margin denoting the actual limits of the 
  2034.                           entry field. 
  2035.  Auto tab                 Causes the entry field to tab to the next control 
  2036.                           when the user is entering text and the limit of the 
  2037.                           entry field has been reached. 
  2038.  Read only                Prevents the entry field from accepting text input by 
  2039.                           the user. 
  2040.  Command                  Denotes the entry field as a command entry field. 
  2041.                           This information is used by the Help Manager to 
  2042.                           provide command help if the user requests help for 
  2043.                           the field. Not more than one entry field in the 
  2044.                           window or dialogue should use this style. 
  2045.  Unreadable               Shows all input into the entry field as asterisks 
  2046.                           (*). This option is useful for entry fields such as 
  2047.                           passwords, in which the contents of the entry field 
  2048.                           must be prevented from being determined visually. 
  2049.  Any                      Causes the entry field to contain a mixture of 
  2050.                           double-byte and single-byte characters. 
  2051.  SBCS                     Causes the entry field to accept single-byte 
  2052.                           characters only. 
  2053.  DBCS                     Causes the entry field to accept double-byte 
  2054.                           characters only. 
  2055.  Mixed                    Causes the entry field to accept a mixture of single- 
  2056.                           and double-byte characters. Unlike the Any option, 
  2057.                           allows ASCII DBCS data to be converted to EBCDIC DBCS 
  2058.                           data without causing an overflow error. 
  2059.  Autosize                 Automatically sizes the entry field to the text. 
  2060.  
  2061.  
  2062. ΓòÉΓòÉΓòÉ 5.9.2.6. Frame tab ΓòÉΓòÉΓòÉ
  2063.  
  2064. To set the default styles of the frame, select from the following options: 
  2065.  
  2066.  Option                   Description 
  2067.  Foreground               Designates the frame as a foreground frame. 
  2068.  Halftone                 Designates the frame as a half-tone frame. 
  2069.  Background               Designates the frame as a background frame. 
  2070.  Autosize                 Automatically sizes the frame to the text. 
  2071.  
  2072.  
  2073. ΓòÉΓòÉΓòÉ 5.9.2.7. Graphic button tab ΓòÉΓòÉΓòÉ
  2074.  
  2075. To set the default styles of the graphic button, select from the following 
  2076. options: 
  2077.  
  2078.  Option                   Description 
  2079.  2 state                  Gives the graphic button two states: up and down. The 
  2080.                           button state must be controlled by the owner such 
  2081.                           that when the user presses the button, the owner of 
  2082.                           the button must send a message to the button to set 
  2083.                           the state of the button as down if the button is to 
  2084.                           remain down. 
  2085.  Auto 2 state             Gives the graphic button two states that toggle from 
  2086.                           up to down and from down to up. The owner of the 
  2087.                           button is not required to send messages to the button 
  2088.                           to change the state when the button is selected by 
  2089.                           the user. 
  2090.  Animation                Triggers animation on the button face using a series 
  2091.                           of supplied bitmaps. The owner of the button must 
  2092.                           make the animation start and stop. 
  2093.  Auto animation           Starts and stops the animation on the button face 
  2094.                           when the user selects the button. The animation is 
  2095.                           provided through a series of bitmaps supplied as IDs 
  2096.                           with the button. 
  2097.  Hilite bitmap            Makes the graphic button display a different bitmap 
  2098.                           when highlighted. 
  2099.  Disable bitmap           Makes the graphic button display a different bitmap 
  2100.                           when disabled. 
  2101.  3D recessed text         Makes the graphic button display the button text 
  2102.                           within a recessed area of the button. 
  2103.  3D raised text           Makes the graphic button display the button text 
  2104.                           within a raised area of the button. 
  2105.  
  2106.  
  2107. ΓòÉΓòÉΓòÉ 5.9.2.8. Groupbox tab ΓòÉΓòÉΓòÉ
  2108.  
  2109. To set the default styles of the group boxes, select from the following 
  2110. options: 
  2111.  
  2112.  Option                   Description 
  2113.  Auto size                Allows the group box to be automatically sized 
  2114.                           depending on the text in it. 
  2115.  
  2116.  
  2117. ΓòÉΓòÉΓòÉ 5.9.2.9. Handwriting tab ΓòÉΓòÉΓòÉ
  2118.  
  2119. To set the default styles of the handwriting control, select from the following 
  2120. options: 
  2121.  
  2122.  Option                   Description 
  2123.  Border                   Displays a border around the handwriting control 
  2124.                           input area. 
  2125.  3D border                Displays a  3D border around the handwriting control 
  2126.                           input area. 
  2127.  
  2128.  
  2129. ΓòÉΓòÉΓòÉ 5.9.2.10. Horz. Scroll tab ΓòÉΓòÉΓòÉ
  2130.  
  2131. To set the default styles of the horizontal scroll bar, select from the 
  2132. following options: 
  2133.  
  2134.  Option                   Description 
  2135.  Thumb size               Allows setting of the scroll bar slider size. 
  2136.  Auto track               Allows tracking of the actual slider instead of an 
  2137.                           outline. 
  2138.  Autosize                 Changes the scroll size to reflect the amount of data 
  2139.                           in a window or dialogue. 
  2140.  
  2141.  You can also set default control values through the scroll bar range, item 
  2142.  count, and visible count. 
  2143.  
  2144.  
  2145. ΓòÉΓòÉΓòÉ 5.9.2.11. List box tab ΓòÉΓòÉΓòÉ
  2146.  
  2147. To set the default styles of the list box, select from the following options: 
  2148.  
  2149.  Option                   Description 
  2150.  Multiple selection       Designates the list box as able to handle multiple 
  2151.                           selections of items within it. By default, a list box 
  2152.                           allows only one selection at any given time. 
  2153.  No adjust position       Indicates that the list box should not adjust its 
  2154.                           height to a multiple number of items contained within 
  2155.                           it. 
  2156.  User redraw              Indicates that the window or dialogue owning the list 
  2157.                           box is to draw each item within the list box. 
  2158.  Horz. scroll bar         Includes a horizontal scroll bar at the bottom of the 
  2159.                           list box that allows the contents of the list box to 
  2160.                           be scrolled horizontally when the items displayed in 
  2161.                           the list box are wider than the list box itself. 
  2162.  Extended selection       Designates the list box as able to handle multiple 
  2163.                           selections of the items within it, using a 
  2164.                           combination of the mouse and keyboard where groups 
  2165.                           can be selected quickly. By default, a list box 
  2166.                           allows only one selection at any given time. 
  2167.  
  2168.  
  2169. ΓòÉΓòÉΓòÉ 5.9.2.12. MLE tab ΓòÉΓòÉΓòÉ
  2170.  
  2171. To set the default styles of the multiple-line entry fields, select from the 
  2172. following options: 
  2173.  
  2174.  Option                   Description 
  2175.  None                     Indicates no import/export preference. 
  2176.  Text                     Indicates text import/export format. 
  2177.  No translate             Indicates no translation of CR/LF combinations for 
  2178.                           import/ export. 
  2179.  Windows format           Indicates that Windows CR/LF translation should be 
  2180.                           used for import/export. 
  2181.  Limit horz.              Indicates that the formatting rectangle should be 
  2182.                           limited horizontally. 
  2183.  Limit vert.              Indicates that the formatting rectangle should be 
  2184.                           limited vertically. 
  2185.  Match window             Indicates that the formatting rectangle should match 
  2186.                           the window limits. 
  2187.  Border                   Draws a border around the multiple-line entry field. 
  2188.  Horz. scroll bar         Includes a horizontal scroll bar at the bottom of the 
  2189.                           multiple-line entry field, allowing the user to 
  2190.                           scroll the contents horizontally. 
  2191.  Vert. scroll bar         Includes a vertical scroll bar to the right of the 
  2192.                           multiple-line entry field, allowing the user to 
  2193.                           scroll the contents vertically. 
  2194.  Ignore tab               Prevents the multiple-line entry field from acting on 
  2195.                           the TAB key. 
  2196.  Read only                Prevents the multiple-line entry field from allowing 
  2197.                           the user to enter text in it. 
  2198.  Word wrap                Causes the multiple-line entry field to break lines 
  2199.                           longer than its width into more than one line. The 
  2200.                           text will be broken from one line to the next at a 
  2201.                           space, tab, or line-break. 
  2202.  Disable undo             Prevents the creation of undo buffers (total 128 KB). 
  2203.                           This reduces the memory required for the control, 
  2204.                           making it faster. 
  2205.  
  2206.                           You can specify the size of the MLE via the Size 
  2207.                           entry field. The value entered is used to set the 
  2208.                           total number of characters that the MLE can accept. A 
  2209.                           -1 indicates unbounded input. The starting and ending 
  2210.                           selection points for the MLE are specified in the 
  2211.                           Start and End entry fields and the formatting 
  2212.                           rectangle is defined in the Width and Height entry 
  2213.                           fields. Note that the values for the formatting 
  2214.                           rectangle are in pixels and not dialogue units. 
  2215.  
  2216.  
  2217. ΓòÉΓòÉΓòÉ 5.9.2.13. Notebook tab ΓòÉΓòÉΓòÉ
  2218.  
  2219. To set the notebook default styles, select from the following options: 
  2220.  
  2221.  Option                   Description 
  2222.  Bottom right             Makes the back pages appear on the bottom right. 
  2223.  Bottom left              Makes the back pages appear on the bottom left. 
  2224.  Top right                Makes the back pages appear on the top right. 
  2225.  Top left                 Makes the back pages appear on the top left. 
  2226.  Bottom                   Places the major tabs on the bottom of the notebook. 
  2227.  Top                      Places the major tabs on the top of the notebook. 
  2228.  Left                     Places the major tabs on the left of the notebook. 
  2229.  Right                    Places the major tabs on the right of the notebook. 
  2230.  Square                   Gives the tabs square edges. 
  2231.  Polygon                  Gives the tabs polygon edges. 
  2232.  Rounded                  Gives the tabs rounded edges. 
  2233.  Left Left                justifies the status text. 
  2234.  Center                   Centers the status text. 
  2235.  Right                    Right justifies the status text. 
  2236.  Left Left                justifies the tab text. 
  2237.  Center                   Centers the tab text. 
  2238.  Right                    Right justifies the tab text. 
  2239.  
  2240.  
  2241. ΓòÉΓòÉΓòÉ 5.9.2.14. Push button tab ΓòÉΓòÉΓòÉ
  2242.  
  2243. To set the default styles of the push button, you can select from the following 
  2244. options: 
  2245.  
  2246.  Option                   Description 
  2247.  Default                  Indicates that the push button should contain the 
  2248.                           default emphasis and should be selected when the user 
  2249.                           presses the <ΓöÿENTER key. 
  2250.  Icon                     Indicates that the push button contain an icon image 
  2251.                           within the face of the button. 
  2252.  Help                     Indicates that the push button is used to invoke 
  2253.                           help. 
  2254.  SYSCOMMAND               Indicates that the push button is used to invoke a 
  2255.                           WM_SYSCOMMAND message. 
  2256.  No border                Indicates that the push button should not be drawn 
  2257.                           with a border. 
  2258.  No focus                 Indicates that the push button should not receive the 
  2259.                           focus when selected. 
  2260.  Autosize                 Automatically sizes the button to the text. 
  2261.  Bitmap                   Indicates that the push button is to contain a bitmap 
  2262.                           image within the face of the button. 
  2263.  Text                     Indicates that the push button is able to accept text 
  2264.                           with the icon image. 
  2265.  Mini-icon                Indicates that the push button is to use a smaller 
  2266.                           size of the icon when an icon image is to be used 
  2267.                           within the push button. 
  2268.  
  2269.  
  2270. ΓòÉΓòÉΓòÉ 5.9.2.15. Radio button tab ΓòÉΓòÉΓòÉ
  2271.  
  2272. To set the default styles of the radio button, select from the following 
  2273. options: 
  2274.  
  2275.  Option                   Description 
  2276.  Radio button             Designates the radio button as simple. The 
  2277.                           application must provide the necessary logic to 
  2278.                           deselect other radio buttons in its group. 
  2279.  Auto radio button        Designates the radio button as auto selected within a 
  2280.                           group of radio buttons. When the button is selected, 
  2281.                           it automatically highlights itself and deselects any 
  2282.                           other button in its group. 
  2283.  No focus                 Indicates that the check box is not to receive the 
  2284.                           focus when selected. 
  2285.  No pointer select        Prevents an auto radio button from being 
  2286.                           automatically selected when the user moves the cursor 
  2287.                           to the button with the cursor-movement keys. 
  2288.  Autosize                 Automatically sizes the radio button to the text. 
  2289.  
  2290.  
  2291. ΓòÉΓòÉΓòÉ 5.9.2.16. Rectangle tab ΓòÉΓòÉΓòÉ
  2292.  
  2293. To set the default styles of the rectangle, select from the following options: 
  2294.  
  2295.  Option                   Description 
  2296.  Foreground               Designates the rectangle as a foreground rectangle. 
  2297.  Halftone                 Designates the rectangle as a half-tone rectangle. 
  2298.  Background               Designates the rectangle as a background rectangle. 
  2299.  Autosize                 Automatically sizes the rectangle to the text. 
  2300.  
  2301.  
  2302. ΓòÉΓòÉΓòÉ 5.9.2.17. Sketch tab ΓòÉΓòÉΓòÉ
  2303.  
  2304. To set the default styles of the sketch control, select from the following 
  2305. options: 
  2306.  
  2307.  Option                   Description 
  2308.  Border                   Displays a border around the sketch control input 
  2309.                           area. 
  2310.  3D border                Displays a 3D border around the sketch control input 
  2311.                           area. 
  2312.  
  2313.  
  2314. ΓòÉΓòÉΓòÉ 5.9.2.18. Slider tab ΓòÉΓòÉΓòÉ
  2315.  
  2316. To set the default styles, select from the following options: 
  2317.  
  2318.  Option                   Description 
  2319.  Horizontal               Orients the slider horizontally. 
  2320.  Vertical                 Orients the slider vertically. 
  2321.  Center                   Centers the slider in the slider window. 
  2322.  Bottom                   Positions the slider at the bottom of the slider 
  2323.                           window. This is valid only for horizontal sliders. 
  2324.  Top                      Positions the slider at the top of the slider window. 
  2325.                           This is valid only for horizontal sliders. 
  2326.  Left                     Positions the slider at the left of the slider 
  2327.                           window. This is valid only for vertical sliders. 
  2328.  Right                    Positions the slider at the right of the slider 
  2329.                           window. This is valid only for vertical sliders. 
  2330.  Left                     Locates the incremental buttons to the left of the 
  2331.                           slider shaft. This is valid only for horizontal 
  2332.                           sliders. 
  2333.  Right                    Locates the incremental buttons to the right of the 
  2334.                           slider shaft. This is valid only for horizontal 
  2335.                           sliders. 
  2336.  Bottom                   Locates the incremental buttons to the bottom of the 
  2337.                           slider shaft. This is valid only for vertical 
  2338.                           sliders. 
  2339.  Top                      Locates the incremental buttons to the bottom of the 
  2340.                           slider shaft. This is valid only for vertical 
  2341.                           sliders. 
  2342.  Bottom                   Causes the slider to use the bottom edge as the base 
  2343.                           value for incrementing. This is valid only for 
  2344.                           vertical sliders. 
  2345.  Top                      Causes the slider to use the top edge as the base 
  2346.                           value for incrementing. This is valid only for 
  2347.                           vertical sliders. 
  2348.  Left                     Causes the slider to use the left edge as the base 
  2349.                           value for incrementing. This is valid only for 
  2350.                           horizontal sliders. 
  2351.  Right                    Causes the slider to use the right edge as the base 
  2352.                           value for incrementing. This is valid only for 
  2353.                           horizontal sliders. 
  2354.  Snap to increment        Causes the slider arm to move to the nearest 
  2355.                           increment when it is between two tick marks. 
  2356.  Owner draw               Notifies the application when the slider shaft, 
  2357.                           ribbon strip, and slider background are to be drawn. 
  2358.  Read only                Prevents the user from interacting with the slider. 
  2359.                           Generally, this provides a visual indication of the 
  2360.                           percentage of an operation completed. 
  2361.  Ribbon strip             Fills the slider shaft with a colour different from 
  2362.                           that of the shaft, giving an appearance similar to 
  2363.                           that of the mercury in a thermometer between the home 
  2364.                           position of the slider and the slider arm. 
  2365.  Scale 1                  Causes the slider to use the increment spacing 
  2366.                           specified for scale 1 as the incremental value for 
  2367.                           positioning the slider arm. For horizontal sliders it 
  2368.                           is displayed above the slider and for vertical 
  2369.                           sliders, to the right. 
  2370.  Scale 2                  Causes the slider to use the increment spacing 
  2371.                           specified for scale 2 as the incremental value for 
  2372.                           the positioning the slider arm. For horizontal 
  2373.                           sliders it is displayed below the slider and for 
  2374.                           vertical sliders, to the left. 
  2375.  
  2376.  
  2377. ΓòÉΓòÉΓòÉ 5.9.2.19. Spin button tab ΓòÉΓòÉΓòÉ
  2378.  
  2379. To set the default styles of the spin buttons, select from the following 
  2380. options: 
  2381.  
  2382.  Option                   Description 
  2383.  Master                   Designates the spin button as the master component of 
  2384.                           the button. 
  2385.  Servant                  Designates the spin button as the servant component 
  2386.                           of the button. 
  2387.  Left                     Aligns the text in the spin field against the left 
  2388.                           border of the field. 
  2389.  Center                   Centers the text in the spin field. 
  2390.  Right                    Aligns the text in the spin field against the right 
  2391.                           border of the field. 
  2392.  All characters           Allows the spin button to accept all character input. 
  2393.  Numeric only             Causes the spin button to accept numeric input only. 
  2394.  Read only                Prevents the spin button from allowing the user to 
  2395.                           enter text in it. This option can be used when 
  2396.                           lengthy items of static text must be displayed within 
  2397.                           a window or dialogue. 
  2398.  No border                Draws the spin button without a border around the 
  2399.                           spin fields. 
  2400.  Fast spin                Allows the fast spinning of numbers in the spin 
  2401.                           field. The control skips over numbers to create the 
  2402.                           fast spinning effect. 
  2403.  Zero pad                 Pads the number in the spin field with zeros. 
  2404.  
  2405.  You can set the entry area width of the spin button field via the Size entry 
  2406.  field. Set the starting and ending values of the spin button in the Lower and 
  2407.  Upper entry fields. The values are recognized only if you have selected the 
  2408.  Numeric only style. 
  2409.  
  2410.  
  2411. ΓòÉΓòÉΓòÉ 5.9.2.20. Text tab ΓòÉΓòÉΓòÉ
  2412.  
  2413. To set the default styles of the static text, select from the following 
  2414. options: 
  2415.  
  2416.  Option                   Description 
  2417.  Left aligned             Displays the text left aligned within the limits of 
  2418.                           its display rectangle, as determined by its width and 
  2419.                           height. 
  2420.  Horz. centered           Displays the text horizontally centered within the 
  2421.                           limits of its display rectangle, as determined by its 
  2422.                           width and height. 
  2423.  Right aligned            Displays the text right aligned within the limits of 
  2424.                           its display rectangle, as determined by its width and 
  2425.                           height. 
  2426.  Top aligned              Displays the text top aligned within the limits of 
  2427.                           its display rectangle, as determined by its width and 
  2428.                           height. 
  2429.  Vert. centered           Displays the text centered vertically within the 
  2430.                           limits of its display rectangle, as determined by its 
  2431.                           width and height. 
  2432.  Bottom aligned           Displays the text bottom aligned within the limits of 
  2433.                           its display rectangle, as determined by its width and 
  2434.                           height. 
  2435.  Word wrap                Breaks the text into two or more lines at a space or 
  2436.                           word break to fit within the limits of its display 
  2437.                           rectangle, as determined by its width and height. 
  2438.  Halftone                 Shows the text in half-tone. 
  2439.  Mnemonic                 Allows a mnemonic association for the text. The 
  2440.                           mnemonic is denoted by the tilde character (~) before 
  2441.                           the letter to act as the mnemonic. It will appear 
  2442.                           underlined when displayed. 
  2443.  Autosize                 Automatically sizes the static text to the text. 
  2444.  
  2445.  
  2446. ΓòÉΓòÉΓòÉ 5.9.2.21. Value set tab ΓòÉΓòÉΓòÉ
  2447.  
  2448. To set the value set default styles, select from the following options: 
  2449.  
  2450.  Option                   Description 
  2451.  Bitmap                   Designates the value set items as bitmaps. 
  2452.  Icon                     Designates the value set items as icons. 
  2453.  Text                     Designates the value set items as text. 
  2454.  Colour info              Designates the value set items as RGB colours. 
  2455.  Colour indices           Designates the value set items as index colours. 
  2456.  Border                   Draws a border around the value set, delineating the 
  2457.                           extent of the value set control. 
  2458.  Item border              Draws a border around each value set item. 
  2459.  Scale bitmaps            Scales bitmaps to the value set item size. This is 
  2460.                           used only with the Bitmap option. 
  2461.  Right to left ordering   Causes the value to interpret the column orientation 
  2462.                           as right to left ordering, instead of the default 
  2463.                           left to right. The right column becomes number 1, 
  2464.                           counting up as you move left. 
  2465.  Owner draw               Causes the owning window or dialogue set to draw the 
  2466.                           value. 
  2467.  
  2468.  
  2469. ΓòÉΓòÉΓòÉ 5.9.2.22. Vert Scroll tab ΓòÉΓòÉΓòÉ
  2470.  
  2471. To set the default styles of the vertical scroll bar, select from the following 
  2472. options: 
  2473.  
  2474.  Option                   Description 
  2475.  Thumb size               Allows setting of the scroll bar slider size. 
  2476.  Auto track               Allows tracking of the actual slider instead of an 
  2477.                           outline. 
  2478.  Autosize                 Changes the scroll size to reflect the amount of data 
  2479.                           in a window or dialogue. 
  2480.  
  2481.  You can also set default control values through the scroll bar range, item 
  2482.  count, and visible count. 
  2483.  
  2484.  
  2485. ΓòÉΓòÉΓòÉ 5.9.3. CUA Compliance ΓòÉΓòÉΓòÉ
  2486.  
  2487. To allow you to design to IBM's Common User Access, Prominare Designer lets you 
  2488. set the level of adherence to Common User Access (CUA) compliance that you 
  2489. desire. The CUA Compliance dialogue allows you to select the CUA items that you 
  2490. want Prominare Designer to inform on non-compliance. 
  2491.  
  2492. The dialogue is divided into four areas: Action bars, Pull-downs, Dialogues, 
  2493. and Controls. Each area contains CUA guideline items for which Prominare 
  2494. Designer can provide automatic checking. If Prominare Designer determines that 
  2495. a selected CUA compliance area has been violated, a message is be displayed 
  2496. stating the non-compliance. 
  2497.  
  2498. You can set the following CUA compliance checking options: 
  2499.  
  2500.  Option                   Description 
  2501.  Number menus             Causes Prominare Designer to check those action bar 
  2502.                           menu items that start with a number. 
  2503.  Capitalization           Causes Prominare Designer to check that the first 
  2504.                           letter in the action bar menu item is capitalized. 
  2505.  Mnemonic selection       Causes Prominare Designer to check that action bar 
  2506.                           menu item contain a mnemonic selection. The mnemonic 
  2507.                           selection is denoted by a tilde(~) before the letter 
  2508.                           to act as the mnemonic selection. 
  2509.  Ordering                 Causes Prominare Designer to check that the order of 
  2510.                           the action bar menu items follows the suggested 
  2511.                           guidelines of CUA. For example, it is suggested that 
  2512.                           the action bar start with File, then Edit, ... and 
  2513.                           end with Help. 
  2514.  Double-words             Causes Prominare Designer to check that action bar 
  2515.                           menu items are a single word. 
  2516.  Numbered menus           Causes Prominare Designer to check that pull-down 
  2517.                           menu items do not begin with a numeric character. 
  2518.  Capitalization           Causes Prominare Designer to check that the first 
  2519.                           letter in the pull-down menu item is capitalized and 
  2520.                           that the remaining words in the menu item text begin 
  2521.                           with lower case characters. 
  2522.  Mnemonic selection       Causes Prominare Designer to check that the pull-down 
  2523.                           menu item contains a mnemonic selection. The mnemonic 
  2524.                           selection is denoted by a tilde (~) before the letter 
  2525.                           to act as the mnemonic selection. 
  2526.  System menu              Causes Prominare Designer to check that a system menu 
  2527.                           is included in a dialogue when a title bar is 
  2528.                           contained in that dialogue. 
  2529.  Push button ellipsis     Causes Prominare Designer to check that push buttons 
  2530.                           that contain an ellipsis (...) to denote another 
  2531.                           dialogue are invoked when the push button is 
  2532.                           selected, and that there is not a space between the 
  2533.                           last character of the push button description and the 
  2534.                           ellipsis. 
  2535.  Push button mnemonic     Causes Prominare Designer to check that a mnemonic 
  2536.                           selection is included in the push button. The 
  2537.                           mnemonic selection is denoted by a tilde (~) before 
  2538.                           the letter to act as the mnemonic selection. 
  2539.  Capitalization           Causes Prominare Designer to check that the first 
  2540.                           letter in the control is capitalized and the 
  2541.                           remaining words in the control text begin with lower 
  2542.                           case characters. 
  2543.  Mnemonic selection       Causes Prominare Designer to check that the control 
  2544.                           contains a mnemonic selection. The mnemonic selection 
  2545.                           is denoted by a tilde (~) before the letter to act as 
  2546.                           the mnemonic selection. 
  2547.  
  2548.  
  2549. ΓòÉΓòÉΓòÉ 5.9.4. Dialogue Unit Definition ΓòÉΓòÉΓòÉ
  2550.  
  2551. The Dialogue Unit Definition dialogue is used to register dialogue font metrics 
  2552. created with the DFM.Exe utility. The dialogue font metrics are an enumeration 
  2553. of the fonts for a given display type. Prominare Designer uses this 
  2554. information, along with the dialogue font metrics, for the display that you use 
  2555. to determine the clipping rectangle for controls. This allows you to design 
  2556. your application on a higher resolution display and see what effect a lower 
  2557. resolution display will have on the elements in each window or dialogue. The 
  2558. usual problem encountered when using higher resolution displays for designing 
  2559. is that controls that appear properly displayed at the higher resolution may be 
  2560. clipped at the lower, as shown below: 
  2561.  
  2562. To alleviate the problem of trying to visualize the clipping effect of one 
  2563. display type while working on another display type, Prominare Designer allows 
  2564. you to register the dialogue font metrics in the Dialogue Unit Definition 
  2565. dialogue, which can be used in conjunction with the Show display limits button. 
  2566. This way, the display limits can be estimated and displayed for a current 
  2567. dialogue or window. 
  2568.  
  2569. The following table outlines different dialogue unit factors for the stated 
  2570. displays and video configuration: 
  2571.  
  2572. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  2573. ΓöéDevice          ΓöéResolution  ΓöéColours   Γöé%     Γöé
  2574. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2575. ΓöéIBM VGA         Γöé640 x 480   Γöé16        Γöé100   Γöé
  2576. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2577. ΓöéIBM XGA - 8514  Γöé1024 x 768  Γöé256       Γöé95    Γöé
  2578. ΓöéMonitor         Γöé            Γöé          Γöé      Γöé
  2579. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  2580. ΓöéIBM XGA - 8515  Γöé1024 x 768  Γöé256       Γöé93    Γöé
  2581. ΓöéMonitor         Γöé            Γöé          Γöé      Γöé
  2582. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  2583.  
  2584. As shown in the chart, if you were working on the IBM XGA and an 8514 monitor, 
  2585. creating an image to appear on the IBM VGA display type, the image would appear 
  2586. at 95% of its original size on the VGA system. If you were working on the IBM 
  2587. XGA and an 8515 monitor, the image would appear on the IBM VGA system at 93%. 
  2588.  
  2589. Note that this does not alleviate the need to test dialogue and window designs 
  2590. on the target display; this method is at best an approximation. It only allows 
  2591. you to get within a close range of what would be displayed, so you can develop 
  2592. on a higher-resolution system and then distribute more accurate preliminary 
  2593. code. 
  2594.  
  2595. The Dialogue Unit Definition dialogue allows you to define additional devices 
  2596. you need to support. A utility provided with Prominare Designer, DFM.Exe, can 
  2597. run on any target system running OS/2 2.x, Warp 3.0 or Warp 4.0. DFM.Exe 
  2598. displays a message panel showing information about the system. It also records 
  2599. the font metrics for that display type in a file. You take this file, which 
  2600. should have an extension of .DFM, and register it with the Dialogue Unit 
  2601. Definition dialogue. Enter the name of the file in the entry field labeled .DFM 
  2602. file, or select it from the Files list box. Make sure that you have included a 
  2603. device label in the Device label entry field; this will make it easier to 
  2604. understand the target device against which you are testing. This label is 
  2605. displayed within the Dialogue Unit Limits Selection dialogue; to register the 
  2606. information, click on the Add button. 
  2607.  
  2608. You can change the metrics information by selecting the entry in the Defined 
  2609. list box and clicking on the Replace button. To delete a registration, select 
  2610. an entry in the Defined list box and click on the Delete button. 
  2611.  
  2612.  
  2613. ΓòÉΓòÉΓòÉ 5.9.5. DFM.Exe Utility ΓòÉΓòÉΓòÉ
  2614.  
  2615. The DFM.Exe utility is used in conjunction with the Dialogue Unit Definition 
  2616. dialogue, where the font metrics enumerated on a target display by the DFM.Exe 
  2617. utility are registered. 
  2618.  
  2619. You can enter a device label in the entry field labeled Device label. This 
  2620. should be a descriptive label of the target device, as it will be displayed in 
  2621. the Dialogue Unit Limits Selection dialogue. The name of the dialogue font 
  2622. metrics file is entered in the entry field labeled .DFM filename. 
  2623.  
  2624. Once you have entered the necessary information, click on the Save button. This 
  2625. enumerates the fonts for the display device on the target system and saves them 
  2626. in the file specified. Then register this file in the Dialogue Unit Definition 
  2627. dialogue. 
  2628.  
  2629.  
  2630. ΓòÉΓòÉΓòÉ 5.9.6. PMCX/Temporary Control Definition ΓòÉΓòÉΓòÉ
  2631.  
  2632. The PMCX/Temporary Control Definition dialogue is used to enter and edit the 
  2633. custom control libraries you have added to Prominare Designer. Through the PM 
  2634. Control Extension (PMCX), described in the section four PM Control Extension 
  2635. (PMCX), you can create custom controls to be included in your final 
  2636. application. So Prominare Designer can properly incorporate the custom control 
  2637. within a design, first register the custom control with Prominare Designer. The 
  2638. custom controls provided as examples are automatically registered by Prominare 
  2639. Designer. 
  2640.  
  2641. The entry field, labeled Name, is where the full path of the custom control DLL 
  2642. should be entered. The control can be one of the following types: 
  2643.  
  2644.  Option                   Purpose 
  2645.  PMCX control             Designates the custom control DLL as private to each 
  2646.                           application that use it and based on the PMCX design. 
  2647.  Temporary control        Creates a temporary control with the necessary coding 
  2648.                           within the actual application for its display and 
  2649.                           operation. 
  2650.  
  2651.  Use the list boxes to locate the custom control DLL you wish to use. The path 
  2652.  for the custom control DLL is displayed above the entry field labeled Name; 
  2653.  the name of the DLL appears in the entry field. 
  2654.  
  2655.  When defining a temporary control, select the Temporary control radio button 
  2656.  and type the name for the control in the Name entry field. 
  2657.  
  2658.  Click on the Add button to display the custom control DLL, or the temporary 
  2659.  control will be registered internally within Prominare Designer and you will 
  2660.  be able to select the custom or temporary control from the User define... item 
  2661.  in the Controls menu. 
  2662.  
  2663.  When you have defined a custom or temporary control and wish to edit or delete 
  2664.  it, use the dialogue to edit the location or delete the control registration 
  2665.  from Prominare Designer. Upon selecting one of the entries in the list box, 
  2666.  you can delete it by pressing the Delete push button. 
  2667.  
  2668.  When you delete a custom control, you are only de-registering it from 
  2669.  Prominare Designer; not deleting it from the system. With a temporary control, 
  2670.  you are also de-registering it from Prominare Designer. 
  2671.  
  2672.  To edit the control, edit either the path of the custom control or the name of 
  2673.  the temporary control. When you select the control name in the list box, the 
  2674.  entry field labeled Name will contain either the path or the name of the 
  2675.  control, depending on its type as selected in the Options group box. 
  2676.  
  2677.  You can use the list boxes to locate the custom control DLL you wish to use. 
  2678.  The path for the custom control DLL is displayed above the entry field labeled 
  2679.  Name and the name of the DLL appears in the entry field. When you edit a 
  2680.  temporary control, the Temporary control radio button will be selected and you 
  2681.  will be able to edit the name for the control in the Name entry field. 
  2682.  
  2683.  Click on the Change push button to display the custom control DLL, or the 
  2684.  temporary control will be re-registered internally within Prominare Designer. 
  2685.  You can select the custom or temporary control from the User define... menu 
  2686.  item in the Controls menu or the Tools window. 
  2687.  
  2688.  
  2689. ΓòÉΓòÉΓòÉ 5.10. Starting a new design ΓòÉΓòÉΓòÉ
  2690.  
  2691.  
  2692. ΓòÉΓòÉΓòÉ 5.10.1. New Design ΓòÉΓòÉΓòÉ
  2693.  
  2694. When you start a new design, enter information in this dialogue to set up 
  2695. Prominare Designer for the type of design you desire. Choices here include 
  2696. target operating environment and save options. 
  2697.  
  2698. The New Design dialogue allows you to define the basename of the design, the 
  2699. include file name, and the name of the .IPF file. 
  2700.  
  2701. In the first entry field, Basename, enter the basename of the design. Prominare 
  2702. Designer uses this entry as the name for the design and include files, as well 
  2703. as the base for some design variables used by the main window of the 
  2704. application and the base for the main() function filename. In the second entry 
  2705. field, Include, enter the full filename of the include file. In the third entry 
  2706. field, main(), enter the full filename of the source code module that will 
  2707. contain the main() function.  The following options allow you to specify how 
  2708. Prominare Designer should be used for the project: 
  2709.  
  2710.  Option                   Description 
  2711.  Windows                  Selecting this option causes the design to be 
  2712.                           oriented around the Microsoft Windows 3.x 
  2713.                           environment. Resource script file and source code 
  2714.                           will be based on the Microsoft Windows 3.x APIs. 
  2715.  Windows NT               Selecting this option causes the design to be 
  2716.                           oriented around the Microsoft Windows NT environment. 
  2717.                           Resource script file and source code will be based on 
  2718.                           the Microsoft Windows NT APIs. 
  2719.  OS/2 1.x                 Selecting this option causes the design to be 
  2720.                           oriented around the OS/2 1.x Presentation Manager 
  2721.                           environment. The resource script file will be based 
  2722.                           on the OS/2 1.x Presentation Manager. 
  2723.  OS/2 2.x                 Selecting this option causes the design to be 
  2724.                           oriented around the OS/2 2.x Presentation Manager 
  2725.                           environment. The resource script file will be based 
  2726.                           on the OS/2 2.x Presentation Manager. 
  2727.  OS/2 3.0                 Selecting this option causes the design to be 
  2728.                           oriented around the OS/2 Warp 3.0 Presentation 
  2729.                           Manager environment. The resource script file will be 
  2730.                           based on the OS/2 3.0 Warp Presentation Manager. 
  2731.  OS/2 4.0                 Selecting this option causes the design to be 
  2732.                           oriented around the OS/2 Warp 4.0 Presentation 
  2733.                           Manager environment. The resource script file will be 
  2734.                           based on the OS/2 4.0 Warp Presentation Manager. 
  2735.  C                        Selects C as the language used for source code 
  2736.                           generation. 
  2737.  C++                      Selects C++ as the language used for source code 
  2738.                           generation. 
  2739.  CommonView               Selects CommonView class libraries as the source code 
  2740.                           generation technique. 
  2741.  IBM UI Classes Selects IBM User Interface class libraries as the source code 
  2742.  generation technique. 
  2743.  Borland OWL              Selects Borland OWL class libraries as the source 
  2744.                           code generation technique. 
  2745.  ObjectPM                 Selects ObjectPM class libraries as the source code 
  2746.                           generation technique. 
  2747.  
  2748.  
  2749. ΓòÉΓòÉΓòÉ 5.10.2. Advanced New Design ΓòÉΓòÉΓòÉ
  2750.  
  2751. When you start a new design, enter information in this dialogue to set up 
  2752. Prominare Designer for the type of design you desire. Choices here include 
  2753. target operating environment and save options. 
  2754.  
  2755. The Advanced New Design dialogue allows you to define the basename of the 
  2756. design, the include file name, and the name of the .IPF file. 
  2757.  
  2758. Seven tabs are provided in the notebook contained within the dialogue. In the 
  2759. first entry field, Basename, enter the basename of the design. Prominare 
  2760. Designer uses this entry as the name for the design and include files, as well 
  2761. as the base for some design variables used by the main window of the 
  2762. application and the base for the main() function filename. In the second entry 
  2763. field, Include, enter the full filename of the include file. In the third entry 
  2764. field, main(), enter the full filename of the source code module that will 
  2765. contain the main() function. The next set of tabs each contain one entry field, 
  2766. Base source directory, used to record the base source directory for the source 
  2767. files generated for the environment indicated on the tab. You can enter the 
  2768. base source directory for OS/2 2.x, OS/2 1.x, Windows NT, and Windows 3.1. The 
  2769. entry fields can either be left empty (if the current directory is the location 
  2770. where the source files are to be placed) or it can be a valid path to another 
  2771. location within your system or network. 
  2772.  
  2773. The last tab, Other, provides three entry fields. The first entry field, .IPF 
  2774. name, contains the name for the .IPF file that will be used to created the help 
  2775. file. Help filename, contains the name of the final help file (.HLP). In the 
  2776. last entry field, Window list, enter the text that will appear in the OS/2 
  2777. Window list when you run the final application. 
  2778.  
  2779. You can specify the methods to be used each time the design file is saved 
  2780. through the File Save menu item. The following options allow you to specify how 
  2781. Prominare Designer should be used for the project: 
  2782.  
  2783.  Option                   Description 
  2784.  .RES                     Selecting this option causes the OS/2 resources to be 
  2785.                           saved directly to a .RES file instead of to a 
  2786.                           resource script file (.RC), which must be compiled 
  2787.                           with the Resource Compiler. The major advantage here 
  2788.                           is this feature is inherently faster than the 
  2789.                           resource compiler. It also allows for features 
  2790.                           specific to resources, such as the control focus 
  2791.                           feature, to be enabled. 
  2792.  .RC                      Selecting this option causes the resources to be 
  2793.                           saved to a resource script file that must be compiled 
  2794.                           by the Resource Compiler. 
  2795.  Borland .RC              Selecting this option causes the resources to be 
  2796.                           saved to a resource script file that must be compiled 
  2797.                           by the Borland Resource Compiler. 
  2798.  Use master               When you select this option, all source code is 
  2799.                           generated using the master rules contained in the 
  2800.                           directory specified through the Prominare Designer 
  2801.                           Default Usage dialogue. 
  2802.  Use project              To use rules for generating source code specific to 
  2803.                           the project you are creating, select this option. A 
  2804.                           copy of the master rules is copied into the project 
  2805.                           subdirectory, allowing you to edit the default source 
  2806.                           code rules through the Source menu. 
  2807.  Include header file      Selecting this option causes Prominare Designer to 
  2808.                           save the include file (.H) when symbols have been 
  2809.                           added. 
  2810.  Source code files        Selecting this option causes Prominare Designer to 
  2811.                           save source files each time the design file is saved 
  2812.                           through the File Save or File Save As menus. If no 
  2813.                           source files exist, they are created; if the existing 
  2814.                           source files are found, any new design information 
  2815.                           added to the design file is incorporated into the 
  2816.                           source files. 
  2817.  .IPF file                Selecting this option causes Prominare Designer to 
  2818.                           update .IPF files each time the design file is saved 
  2819.                           through the File Save or File Save As menus. If no 
  2820.                           .IPF file exists, one is created. If an existing .IPF 
  2821.                           file is found, any new design information added to 
  2822.                           the design file is incorporated into the .IPF file. 
  2823.  None                     Prevents advanced deletion control: items deleted or 
  2824.                           renamed in the design are properly deleted or renamed 
  2825.                           within the resource script, include header, and .IPF 
  2826.                           files. 
  2827.  Don't verify             Enables advanced deletion control: items deleted or 
  2828.                           renamed are properly deleted or renamed in the design 
  2829.                           within the resource script, include header, and .IPF 
  2830.                           files. 
  2831.  Verify on save           When you save a design, displays a dialogue showing 
  2832.                           all items that have been deleted or renamed, allowing 
  2833.                           you to ensure that they are properly deleted within 
  2834.                           the resource script, include header, and .IPF files. 
  2835.                           (See Edit Deletion List) 
  2836.  Windows                  Selecting this option causes the design to be 
  2837.                           oriented around the Microsoft Windows 3.x 
  2838.                           environment. Resource script file and source code 
  2839.                           will be based on the Microsoft Windows 3.x APIs. 
  2840.  Windows NT               Selecting this option causes the design to be 
  2841.                           oriented around the Microsoft Windows NT environment. 
  2842.                           Resource script file and source code will be based on 
  2843.                           the Microsoft Windows NT APIs. 
  2844.  OS/2 1.x                 Selecting this option causes the design to be 
  2845.                           oriented around the OS/2 1.x Presentation Manager 
  2846.                           environment. The resource script file will be based 
  2847.                           on the OS/2 1.x Presentation Manager. 
  2848.  OS/2 2.x                 Selecting this option causes the design to be 
  2849.                           oriented around the OS/2 2.x Presentation Manager 
  2850.                           environment. The resource script file will be based 
  2851.                           on the OS/2 2.x Presentation Manager. 
  2852.  OS/2 3.0                 Selecting this option causes the design to be 
  2853.                           oriented around the OS/2 Warp 3.0 Presentation 
  2854.                           Manager environment. The resource script file will be 
  2855.                           based on the OS/2 3.0 Warp Presentation Manager. 
  2856.  OS/2 4.0                 Selecting this option causes the design to be 
  2857.                           oriented around the OS/2 Warp 4.0 Presentation 
  2858.                           Manager environment. The resource script file will be 
  2859.                           based on the OS/2 4.0 Warp Presentation Manager. 
  2860.  C                        Selects C as the language used for source code 
  2861.                           generation. 
  2862.  C++                      Selects C++ as the language used for source code 
  2863.                           generation. 
  2864.  CommonView               Selects CommonView class libraries as the source code 
  2865.                           generation technique. 
  2866.  IBM UI Classes           Selects IBM User Interface class libraries as the 
  2867.                           source code generation technique. 
  2868.  Borland OWL              Selects Borland OWL class libraries as the source 
  2869.                           code generation technique. 
  2870.  ObjectPM                 Selects ObjectPM class libraries as the source code 
  2871.                           generation technique. 
  2872.  Presentation Manager     Bases the design on a normal OS/2 Presentation 
  2873.                           Manager-type application. 
  2874.  Workplace                Bases the design on a Workplace Shell-type 
  2875.                           application. 
  2876.  PMCX control             Bases the design on a PMCX control. 
  2877.  DLL                      Bases the design on a DLL where not main() function 
  2878.                           is generated. 
  2879.  
  2880.  The Notes tab allows you to enter or edit design notes for the design file. 
  2881.  These notes are similar to those for each window or dialogue that you create, 
  2882.  except that they reside at the overall design level. 
  2883.  
  2884.  The tab contains a notebook in which each page displays an entry field labeled 
  2885.  Title, where the note title can be entered. Your name is automatically placed 
  2886.  in the entry field labeled Author. Enter notes in the multiple-line entry 
  2887.  field labeled Entry. The page shows date and time for the note beside the 
  2888.  entry fields. You can select the following options: 
  2889.  
  2890.  Option                   Usage 
  2891.  Word wrap                Causes word wrapping when note text encroaches on the 
  2892.                           right border of the multiple-line entry field. This 
  2893.                           helps ensure that the contents of the note are 
  2894.                           visible. 
  2895.  
  2896.  The Distribution tab allows you to define the resource files in which the 
  2897.  resources for a dialogue and tables are placed. The tab provided in the 
  2898.  dialogue contains two selections, .RC/.RES and Tables. 
  2899.  
  2900.  The .RC/.RES tab allows you to enter the location and names for the .RC and 
  2901.  .RES files that can be saved through Prominare Designer. You can add new 
  2902.  locations in the entry fields labeled .RC and .RES, or by clicking on the Add 
  2903.  push button. Change an entry by selecting the item in the list box and 
  2904.  changing the values in the entry fields, then clicking on the Change button. 
  2905.  Delete entries by selecting the item in the list box and clicking on the 
  2906.  Delete button. 
  2907.  
  2908.  The second tab, Tables, allows you to enter the location in which Prominare 
  2909.  Designer should place the association, message, and string tables. Since each 
  2910.  of these resource types resides in a single table, they cannot be distributed 
  2911.  among different resources. 
  2912.  
  2913.  
  2914. ΓòÉΓòÉΓòÉ 5.10.3. Locate ΓòÉΓòÉΓòÉ
  2915.  
  2916. The Locate dialogue allows you to select the .RES or .RC file to be used. 
  2917. Depending on the entry field containing the cursor, the dialogue will display 
  2918. either .RES or .RC files. Through the Drives/Directories list box, you can 
  2919. navigate to the location of the .RES or .RC file you wish to use as the target. 
  2920.  
  2921. Once there, double click on the file in the Files list box or select the file 
  2922. and then click on the Select button. 
  2923.  
  2924.  
  2925. ΓòÉΓòÉΓòÉ 5.10.4. Define Design ΓòÉΓòÉΓòÉ
  2926.  
  2927. The Define Design dialogue allows you to make changes to the values in the New 
  2928. Design dialogue or the Advanced New Design dialogue, those you initially used 
  2929. to create the design you are working on. The options contained within the 
  2930. Advanced New Design dialogue are similar to those in the Define Design 
  2931. dialogue. 
  2932.  
  2933.  
  2934. ΓòÉΓòÉΓòÉ 5.11. Opening, importing and merging files ΓòÉΓòÉΓòÉ
  2935.  
  2936.  
  2937. ΓòÉΓòÉΓòÉ 5.11.1. Open ΓòÉΓòÉΓòÉ
  2938.  
  2939. The Open dialogue is used to open an existing design file for viewing or 
  2940. editing. The dialogue allows you to select files from the current directory or 
  2941. to select another drive/directory. You can select only design files (.PDF) from 
  2942. within this dialogue. 
  2943.  
  2944. The dialogue displays the current path; an entry field labeled Filename is used 
  2945. to enter the name of the file you wish to open. Alternately, you can 
  2946. double-click on the file in the Files list box to open the required file. After 
  2947. the design file is read into memory, the list of dialogues and windows is 
  2948. placed within the Window/dialogue drop down in the tool bar. The first entry 
  2949. within the list is automatically selected and displayed. 
  2950.  
  2951.  
  2952. ΓòÉΓòÉΓòÉ 5.11.2. Import ΓòÉΓòÉΓòÉ
  2953.  
  2954. Prominare Designer allows you to import an existing resource file that was 
  2955. either compiled using the OS/2 Resource Compiler or created by the Dialogue Box 
  2956. Editor. The Import dialogue is similar to the Open dialogue, except it only 
  2957. lets you import compiled resource files (.RES) and resource script files (.RC), 
  2958. or extract the resources from .DLL or .EXE files. Resources can be either OS/2 
  2959. or Microsoft Windows. 
  2960.  
  2961. Depending on the type of resource you wish to import, you must select the 
  2962. appropriate environment and resource type from the dialogue. The following 
  2963. options are available: 
  2964.  
  2965.  Option                   Usage 
  2966.  OS/2                     Designates that resources are OS/2 format. 
  2967.  Windows 3.1              Designates that resources are Microsoft Windows 3.1 
  2968.                           format. 
  2969.  Windows NT               Designates that resources are Microsoft Windows NT 
  2970.                           format. 
  2971.  .RES file                Indicates that a .RES should be used as the import 
  2972.                           file. 
  2973.  .RC                      Indicates that a .RC should be used as the import 
  2974.                           file. 
  2975.  Borland .RC              Indicates that a Borland .RC should be used as the 
  2976.                           import file. 
  2977.  .EXE                     Indicates that a executable file should be used as 
  2978.                           the import file. 
  2979.  .DLL                     Indicates that a dynamic link library file should be 
  2980.                           used as the import file. 
  2981.  
  2982.  Once you have selected a resource file to open, the program will ask if you 
  2983.  wish to correlate the ID values within the resource file to values within the 
  2984.  include file. This is where symbols with the same value as the resource ID 
  2985.  being imported are matched. This process makes it easier to relate the 
  2986.  imported information to the actual application. 
  2987.  
  2988.  If Prominare Designer determines that you have not opened an include file and 
  2989.  have asked for correlation, you are prompted to open an include header file. 
  2990.  The Include Open dialogue is displayed; from here, select an include header 
  2991.  file. 
  2992.  
  2993.  Prominare Designer will try to match items within the resource file with 
  2994.  values from the include file. If there are items, such as menus and dialogues, 
  2995.  that use the same ID value, you may find that the actual ID symbol of an item 
  2996.  is not the same as you had originally defined. It is suggested that you view 
  2997.  each window and dialogue, checking each control value to ensure that the ID 
  2998.  symbols are the ones you want. 
  2999.  
  3000.  When importing script resources, make sure that you either have the INCLUDE= 
  3001.  variable within the environment set properly or you have set the appropriate 
  3002.  paths within the Prominare Designer Default Usage dialogue. Without the proper 
  3003.  include paths, errors will occur in trying to include header files specified. 
  3004.  
  3005.  At the present time, Prominare Designer imports only the following OS/2 
  3006.  resource items: 
  3007.  
  3008.   ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  3009.   ΓöéControl                  ΓöéRestrictions                            Γöé
  3010.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  3011.   ΓöéButtons, List Boxes,     ΓöéIncluded in parent dialogue.            Γöé
  3012.   ΓöéGroup Boxes, Scroll Bars,Γöé                                        Γöé
  3013.   ΓöéSpin Buttons, Static     Γöé                                        Γöé
  3014.   ΓöéItems, Sliders, Value    Γöé                                        Γöé
  3015.   Γöésets, Notebooks,         Γöé                                        Γöé
  3016.   ΓöéContainers, Circular     Γöé                                        Γöé
  3017.   Γöésliders, Graphic buttons,Γöé                                        Γöé
  3018.   ΓöéHandwriting, Sketch      Γöé                                        Γöé
  3019.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  3020.   ΓöéAction Bar               ΓöéIncluded in a new window in the design  Γöé
  3021.   Γöé                         Γöéfile, unless an existing window with theΓöé
  3022.   Γöé                         Γöésame ID as the menu is found.           Γöé
  3023.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  3024.   ΓöéSub-Menu                 ΓöéIncluded in the same window as its      Γöé
  3025.   Γöé                         Γöéaction bar parent.                      Γöé
  3026.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  3027.   ΓöéDialogues                ΓöéImported without any restrictions.      Γöé
  3028.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  3029.   ΓöéBitmaps, Fonts, Icons,   ΓöéThe definition for the bitmap, font,    Γöé
  3030.   ΓöéPointers                 Γöéicon or pointer is correctly imported.  Γöé
  3031.   Γöé                         ΓöéBitmaps, icons and pointers are         Γöé
  3032.   Γöé                         Γöéextracted from .RES files and saved backΓöé
  3033.   Γöé                         Γöéto disk using the hexadecimal ID values Γöé
  3034.   Γöé                         Γöéunder which they were referenced.       Γöé
  3035.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  3036.   ΓöéMessages, Strings        ΓöéImported without any restrictions.      Γöé
  3037.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  3038.   ΓöéCustom Resources         ΓöéOnly the definition is recorded; it is  Γöé
  3039.   Γöé                         Γöéextracted from .RES files and saved backΓöé
  3040.   Γöé                         Γöéto disk using the hexadecimal ID values Γöé
  3041.   Γöé                         Γöéunder which it was referenced.          Γöé
  3042.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  3043.   ΓöéAccelerators             ΓöéDefinitions are placed within the windowΓöé
  3044.   Γöé                         Γöéassociated with the accelerator table.  Γöé
  3045.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  3046.   ΓöéHelp Tables, Help        ΓöéImported and assigned to appropriate    Γöé
  3047.   ΓöéSub-Tables               Γöédialogues or windows.                   Γöé
  3048.   ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  3049.  
  3050.  At the present time, Prominare Designer imports only the following Microsoft 
  3051.  Windows resource items: 
  3052.  
  3053.   ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  3054.   ΓöéControl                  ΓöéRestrictions                            Γöé
  3055.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  3056.   ΓöéButtons, List Boxes,     ΓöéIncluded in parent dialogue.            Γöé
  3057.   ΓöéGroup Boxes, Scroll Bars,Γöé                                        Γöé
  3058.   ΓöéStatic Items             Γöé                                        Γöé
  3059.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  3060.   ΓöéAction Bar               ΓöéIncluded in a new window in the design  Γöé
  3061.   Γöé                         Γöéfile.                                   Γöé
  3062.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  3063.   ΓöéSub-Menu                 ΓöéIncluded in the same window as its      Γöé
  3064.   Γöé                         Γöéaction bar parent.                      Γöé
  3065.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  3066.   ΓöéDialogues                ΓöéImported without any restrictions.      Γöé
  3067.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  3068.   ΓöéBitmaps, Cursors, Fonts, ΓöéThe definition for the bitmap, font,    Γöé
  3069.   ΓöéIcons                    Γöéicon or pointer is correctly imported.  Γöé
  3070.   Γöé                         ΓöéWindows bitmaps, icons and cursors      Γöé
  3071.   Γöé                         Γöé(pointers) are converted to a compatibleΓöé
  3072.   Γöé                         ΓöéOS/2 2.x format and saved back to disk  Γöé
  3073.   Γöé                         Γöéusing the hexadecimal ID values under   Γöé
  3074.   Γöé                         Γöéwhich they were referenced.             Γöé
  3075.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  3076.   ΓöéStrings                  ΓöéImported without any restrictions.      Γöé
  3077.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  3078.   ΓöéCustom Resources         ΓöéThe definition is recorded; it is       Γöé
  3079.   Γöé                         Γöéextracted from .RES files and saved backΓöé
  3080.   Γöé                         Γöéto disk using the hexadecimal ID values Γöé
  3081.   Γöé                         Γöéunder which it was referenced.          Γöé
  3082.   Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  3083.   ΓöéAccelerators             ΓöéDefinitions are placed within the windowΓöé
  3084.   Γöé                         Γöéassociated with the accelerator table.  Γöé
  3085.   ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  3086.  
  3087.  
  3088. ΓòÉΓòÉΓòÉ 5.11.3. Merge ΓòÉΓòÉΓòÉ
  3089.  
  3090. Prominare Designer allows you to merge an existing design file with the design 
  3091. on which you are currently working. The Merge dialogue allows you to select 
  3092. files from the current directory or to select another drive/directory. You can 
  3093. select only design files (.PDF) from within this dialogue. 
  3094.  
  3095. The dialogue displays the current path. Enter the name of the file you wish to 
  3096. merge in the entry field labeled Filename. Alternately, double click in the 
  3097. Files list box to merge the required file. 
  3098.  
  3099. If the header file associated with the design file selected is different than 
  3100. the current header file, you will be asked if it should be retrieved and merged 
  3101. with the current header file. Prominare Designer will try to match up items 
  3102. within the design file with values from the current ID list. If there are 
  3103. items, such as menus and dialogues, that use the same ID value, you may find 
  3104. that the actual ID symbol of an item is not the same as you had originally 
  3105. defined it. It is suggested that you view each window and dialogue, checking 
  3106. each control value to ensure that the ID symbols are the ones you want. 
  3107.  
  3108. Once the design file is read into memory, the list of dialogues and windows is 
  3109. placed in the Window/dialogue drop down in the tool bar. The first entry in the 
  3110. list is automatically selected and displayed. 
  3111.  
  3112.  
  3113. ΓòÉΓòÉΓòÉ 5.11.4. File Save As ΓòÉΓòÉΓòÉ
  3114.  
  3115. The File Save As dialogue is used to save the design file currently being 
  3116. edited. It allows you to enter a new name for the file; specify if the include 
  3117. (.H) and .IPF files should be automatically saved; and update or edit the 
  3118. history, comments, and version information. 
  3119.  
  3120. The entry field labeled Filename uses the current design filename as the 
  3121. default to save under unless the current file is an untitled design file. In 
  3122. this case, you can edit the name under which you wish to save the design file. 
  3123. You do not need to include the design file extension (.PDF) when entering or 
  3124. editing the name. 
  3125.  
  3126. The multiple-line entry field labeled History is used to enter historical 
  3127. information on the file, such as changes made to the design and date and 
  3128. initiator of those changes. 
  3129.  
  3130. Comments regarding the design can be entered in the multiple-line entry field 
  3131. labeled Comments. The version number or name can be entered in the entry field 
  3132. labeled Version. 
  3133.  
  3134. You can specify whether or not the include file and source code files should be 
  3135. saved each time the design file is saved, using the File Save menu item or this 
  3136. dialogue. The following controls allow you to specify how Prominare Designer 
  3137. should save the files: 
  3138.  
  3139.  Option                   Description 
  3140.  .RES                     Causes the resource information to be written 
  3141.                           directly to the final resource file, bypassing the 
  3142.                           Resource Compiler. This is significantly faster that 
  3143.                           saving to a resource script file and then compiling 
  3144.                           it with the Resource Compiler. 
  3145.  .RC                      Causes the resource information to be written to a 
  3146.                           resource script, which must be compiled to the final 
  3147.                           resource format by the Resource Compiler. 
  3148.  Include file             Saves the include file (.H) each time symbols are 
  3149.                           added. Uses the name of the file unless the include 
  3150.                           file was just created--in which case Prominare 
  3151.                           Designer prompts you for the name. 
  3152.  .IPF file                Saves the .IPF file each time the design file is 
  3153.                           saved. If no .IPF file exists, one is created. If an 
  3154.                           existing .IPF file is found, any new design 
  3155.                           information is incorporated into the .IPF file. 
  3156.  
  3157.  If you try to save a new design and a file by the same name already exists, 
  3158.  you will receive a message asking if you want to replace the existing file 
  3159.  with the new one. Clicking Yes replaces the existing file with the new one. 
  3160.  Clicking No cancels the save request. 
  3161.  
  3162.  
  3163. ΓòÉΓòÉΓòÉ 5.12. Include files ΓòÉΓòÉΓòÉ
  3164.  
  3165.  
  3166. ΓòÉΓòÉΓòÉ 5.12.1. Include Open ΓòÉΓòÉΓòÉ
  3167.  
  3168. The Include Open dialogue is used to open an existing include file (.H) on your 
  3169. hard disk. It is similar to the Open dialogue except that it lets you open only 
  3170. include files (.H). If you have not saved the current include file, you may be 
  3171. prompted to save it before the Include Open dialogue is displayed. This occurs 
  3172. only when symbols have been added to the include file since it was last saved 
  3173. or opened. 
  3174.  
  3175.  
  3176. ΓòÉΓòÉΓòÉ 5.12.2. Include Save As ΓòÉΓòÉΓòÉ
  3177.  
  3178. The Include Save As dialogue is used to save the include file currently being 
  3179. edited. It also allows you to enter a new name for a file. The Filename entry 
  3180. field automatically uses the current include name as the default name to save 
  3181. under, unless the include file is untitled. You can edit the name under which 
  3182. you wish to save the include file here. 
  3183.  
  3184.  
  3185. ΓòÉΓòÉΓòÉ 5.12.3. Include View/Edit ΓòÉΓòÉΓòÉ
  3186.  
  3187. The Include View/Edit dialogue allows you to edit all the include symbols you 
  3188. have defined. Two entry fields contained within the dialogue allow you to enter 
  3189. or edit the include symbols. The entry field labeled Symbol is used for the 
  3190. actual include symbol; the Value entry field is used for the symbol value. 
  3191.  
  3192. The dialogue provides the following options to aid you: 
  3193.  
  3194.  Option                   Description 
  3195.  Decimal                  Changes the displayed ID symbol values in the list 
  3196.                           box from hexadecimal to decimal. This also causes the 
  3197.                           values displayed with the status window to be shown 
  3198.                           in decimal as well. 
  3199.  Hex                      Changes the displayed ID symbol values in the list 
  3200.                           box from decimal to hexadecimal. This also causes the 
  3201.                           values displayed with the status window to be shown 
  3202.                           in hexadecimal as well. 
  3203.  
  3204.  
  3205. ΓòÉΓòÉΓòÉ 5.13. Printing ΓòÉΓòÉΓòÉ
  3206.  
  3207.  
  3208. ΓòÉΓòÉΓòÉ 5.13.1. Print Design ΓòÉΓòÉΓòÉ
  3209.  
  3210. When printing the current window or dialogue (or all windows or dialogues), the 
  3211. Print Design dialogue is used to specify how the output is to be formatted on 
  3212. the page. 
  3213.  
  3214. The dialogue allows you to position the output on the page vertically or 
  3215. horizontally. Select the placement image for the desired effect. You can also 
  3216. specify that the details of the window or dialogue be printed using a selected 
  3217. font. 
  3218.  
  3219. You can scale the output through the spin button labeled Percent scaling. 
  3220. Default scaling is 100%, or 1:1. If you want output to be half size, enter 50. 
  3221. Conversely, if you want to double the size of the output, enter 200. The 
  3222. minimum is 10% and the maximum is 500%. 
  3223.  
  3224.  
  3225. ΓòÉΓòÉΓòÉ 5.13.2. Printer Setup ΓòÉΓòÉΓòÉ
  3226.  
  3227. The Printer Setup dialogue allows you to select the destination device for 
  3228. printed output, as well as to set up the device. 
  3229.  
  3230. Select a printer or output device from the list box. You can set up the device 
  3231. with the Setup... button; device-specific dialogues that let you configure the 
  3232. device or select device options then appear. 
  3233.  
  3234.  
  3235. ΓòÉΓòÉΓòÉ 5.14. Pre-designed dialogues ΓòÉΓòÉΓòÉ
  3236.  
  3237.  
  3238. ΓòÉΓòÉΓòÉ 5.14.1. File Save Window/Dialogue Design ΓòÉΓòÉΓòÉ
  3239.  
  3240. The File Save Window/Dialogue Design dialogue allows you to enter a name under 
  3241. which you can save the window or dialogue you are designing in the pre-designed 
  3242. window/dialogue library. Through the pre-designed item in the New 
  3243. Dialogue/Window dialogue, you can retrieve a window or dialogue to include in 
  3244. your current design. 
  3245.  
  3246. Enter the name for the file in the entry field labeled Filename. If you have 
  3247. saved a previous window or dialogue under the same name, it will be replaced 
  3248. with the new window or dialogue. 
  3249.  
  3250.  
  3251. ΓòÉΓòÉΓòÉ 5.14.2. Delete Pre-designed Window/Dialogue ΓòÉΓòÉΓòÉ
  3252.  
  3253. The Delete Pre-designed Window/Dialogue dialogue allows you to select designs 
  3254. to be deleted from the pre-design window/dialogue library. 
  3255.  
  3256. You can delete more than one design by clicking on the pre-designed 
  3257. window/dialogue description. Clicking the Delete button deletes your selections 
  3258. from the library. 
  3259.  
  3260.  
  3261. ΓòÉΓòÉΓòÉ 5.15. Searching and scanning ΓòÉΓòÉΓòÉ
  3262.  
  3263.  
  3264. ΓòÉΓòÉΓòÉ 5.15.1. Search ΓòÉΓòÉΓòÉ
  3265.  
  3266. You can use the Search dialogue to search for text or symbols within the 
  3267. current design. Enter the item you wish to search for in the appropriate entry 
  3268. field, labeled Text or Symbol. You can search for either text or a symbol but 
  3269. not for both at the same time. 
  3270.  
  3271. The options provided within this dialogue are: 
  3272.  
  3273.  Option                   Usage 
  3274.  Case sensitive           Causes search text to be case sensitive, matching 
  3275.                           exactly with a target string. 
  3276.  Search help tables       Used to search the help tables for the symbol 
  3277.                           entered. This option is used only when a symbol is 
  3278.                           being searched for, as help tables do not contain 
  3279.                           text elements. 
  3280.  
  3281.  When you have entered the text or symbol and selected any options required, 
  3282.  click on the Search push button. Prominare Designer will search through the 
  3283.  file from the beginning until it finds the first occurrence. If it finds a 
  3284.  dialogue or window containing the item searched for, it displays it and 
  3285.  highlights the item if possible. If the item is located within a menu item or 
  3286.  help table, it still tries to show the dialogue or window, but instead of 
  3287.  highlighting a control it denotes the location (either a menu or a help table) 
  3288.  where the match was made. 
  3289.  
  3290.  To search for the next occurrence of the item, either select the Search next 
  3291.  menu item in the Find menu or press F4. 
  3292.  
  3293.  
  3294. ΓòÉΓòÉΓòÉ 5.15.2. Scanning ΓòÉΓòÉΓòÉ
  3295.  
  3296. You can scan for errors at any time by double clicking button 2 when the mouse 
  3297. pointer is over the Scan design button. If any errors are detected, a message 
  3298. pops up. Selecting the Yes push button displays the Design Errors dialogue. 
  3299.  
  3300. The Design Errors dialogue displays all detected errors in a list box. When you 
  3301. click on an item within the list, the error information is displayed in the 
  3302. dialogue below the list boxes. 
  3303.  
  3304. To immediately jump to the problem window or dialogue, just double click on the 
  3305. entry in the list box. The dialogue remains displayed while you make the 
  3306. correction, allowing you to select the next problem you wish to correct. 
  3307.  
  3308. The dialogue is also displayed during the resource save stage if you allow 
  3309. scanning for errors. Note that if the dialogue is displayed during this stage, 
  3310. the resource script or binary files are not updated, as they would be in error. 
  3311. You need to make the corrections to the problems listed within the Design 
  3312. Errors dialogue and then save the design information once again. 
  3313.  
  3314.  
  3315. ΓòÉΓòÉΓòÉ 5.16. Creating windows or dialogues, notebook pages and pop-up menus ΓòÉΓòÉΓòÉ
  3316.  
  3317.  
  3318. ΓòÉΓòÉΓòÉ 5.16.1. New Dialogue/Window ΓòÉΓòÉΓòÉ
  3319.  
  3320. The New Dialogue/Window dialogue allows you to select the type of dialogue, 
  3321. notebook, settings notebook, pop-up menu, pre-designed window or dialogue, or 
  3322. window you wish to create. 
  3323.  
  3324. Each type is represented by a graphical image. The first four are for 
  3325. dialogues; you can select the dialogue type with or without buttons, as 
  3326. follows: 
  3327.  
  3328.  Symbol                   Usage 
  3329.                           Dialogue with buttons aligned at bottom 
  3330.                           Dialogue with buttons aligned at right 
  3331.                           Dialogue with one button at the bottom 
  3332.                           Dialogue with no buttons 
  3333.                           Notebook page 
  3334.                           Notebook settings page 
  3335.                           Pop-up menu 
  3336.                           Pre-designed dialogue or window 
  3337.                           Window 
  3338.  
  3339.  The notebook type is used to create a page for notebooks contained within a 
  3340.  window or dialogue. It is only available when you have placed a notebook 
  3341.  control within a window or dialogue. Once you have selected the type, a 
  3342.  secondary dialogue, Notebook Parent, is displayed. From here you can select 
  3343.  the dialogue or window containing the notebook, as well as the notebook the 
  3344.  page is to reside within. This allows Prominare Designer to display the proper 
  3345.  size of the notebook. The settings notebook type is used to create a Workplace 
  3346.  Settings page. It is only available once you have selected the Workplace 
  3347.  option in the New Design or Define Design dialogues. The pop-up menu type is 
  3348.  used to create a pop-up menu through the Pop-up Menu dialogue. The pre- 
  3349.  designed window/dialogue type displays the Pre-designed Window/Dialogue 
  3350.  dialogue. Select the window or dialogue to retrieve from the list presented. 
  3351.  If no windows or dialogues are predefined, the type is disabled. 
  3352.  
  3353.  
  3354. ΓòÉΓòÉΓòÉ 5.16.2. Window/Dialogue Styles ΓòÉΓòÉΓòÉ
  3355.  
  3356. The Window/Dialogue Styles dialogue allows you to select the following options: 
  3357.  
  3358.  Option                   Description 
  3359.  Type                     Used to select the window or dialogue type. Valid 
  3360.                           types are: 
  3361.                                Type           Purpose 
  3362.                           Dialogue            Designates that a dialogue is to 
  3363.                                               be created. 
  3364.                           Parent window       Designates that a parent window 
  3365.                                               is to be created. 
  3366.                           Child window        Designates that a child window is 
  3367.                                               to be created. 
  3368.                           Notebook page       Designates that a notebook page 
  3369.                                               is to be created. 
  3370.                           Notetab page        Designates that a notetab page is 
  3371.                                               to be created. 
  3372.                           PMCX window         Designates that the window is a 
  3373.                                               PMCX control. 
  3374.                           WP settings page    Designates a panel as a Workplace 
  3375.                                               settings page. 
  3376.  Option                   Description 
  3377.  Relative                 Selects the relative position from which the dialogue 
  3378.                           should orient itself. Valid positions are: 
  3379.                                Type           Purpose 
  3380.                           Window              Sets the position of the dialogue 
  3381.                                               display relative to that of its 
  3382.                                               parent window. You can select 
  3383.                                               this option only when the 
  3384.                                               dialogue option is active. 
  3385.                           Screen              Sets the position of the dialogue 
  3386.                                               display relative to that of the 
  3387.                                               desktop. You can select this 
  3388.                                               option only when the dialogue 
  3389.                                               option is active. 
  3390.                           Mouse               Sets the position of the dialogue 
  3391.                                               display relative to that of the 
  3392.                                               mouse pointer. You can select 
  3393.                                               this option only when the 
  3394.                                               dialogue option is active. 
  3395.  Parent                   Selects the parent of the child window. Valid parents 
  3396.                           are: 
  3397.                                Type           Purpose 
  3398.                           Desktop             Designates that the window being 
  3399.                                               created is a descendent of the 
  3400.                                               desktop. This is the default for 
  3401.                                               parent windows. 
  3402.                           Main window         Designates that the window being 
  3403.                                               created is a descendent of the 
  3404.                                               main parent window of the 
  3405.                                               application. Windows created 
  3406.                                               using this option can reside only 
  3407.                                               within the parent window confines 
  3408.                                               and cannot be moved to the 
  3409.                                               desktop. 
  3410.                           Object window       Designates that the window being 
  3411.                                               created is an object window. 
  3412.  Code page                Selects the code page the window or dialogue template 
  3413.                           should use. Different sets of code pages are 
  3414.                           available depending on the target environment. The 
  3415.                           code page is not used with the Borland Resource 
  3416.                           Compiler. 
  3417.  Generate code            Allows you to generate code for the window or 
  3418.                           dialogue procedure. (There may be cases where you do 
  3419.                           not want to generate code for the window or dialogue 
  3420.                           procedure.) 
  3421.  Method                   Determines where the window is created. Can be one of 
  3422.                           the following: 
  3423.                                Type           Purpose 
  3424.                           None                Indicates that the window 
  3425.                                               creation will be placed within 
  3426.                                               the source code at a later point; 
  3427.                                               Prominare Designer should not 
  3428.                                               provide code to create the 
  3429.                                               window. 
  3430.                           main()              Designates that the window being 
  3431.                                               created should be created within 
  3432.                                               the main() function. 
  3433.                           WM_CREATE           Designates the window being 
  3434.                                               created should be created within 
  3435.                                               the WM_CREATE of another window, 
  3436.                                               selected through the Associated 
  3437.                                               drop down list (which contains 
  3438.                                               the IDs). The list is down only 
  3439.                                               when the window in the Associated 
  3440.                                               list is first being created. If 
  3441.                                               you select this option after the 
  3442.                                               associated window has been 
  3443.                                               created, the creation code will 
  3444.                                               not be placed in the WM_CREATE 
  3445.                                               due to Prominare Designer's code 
  3446.                                               generation rules. 
  3447.  Parent                   Selects the parent dialogue or window in which the 
  3448.                           tab is to be used. 
  3449.  Notebook                 Selects the window in which the notebook is to be 
  3450.                           used. This allows proper sizing of the page and 
  3451.                           proper placement of the controls within it. 
  3452.  Auto-update              Allows the auto-help feature to use the help 
  3453.                           sub-table and panel definitions, automatically 
  3454.                           generating the help sub-table item entries for the 
  3455.                           window or dialogue. Only interactive controls that 
  3456.                           can receive focus are included in the help sub-table. 
  3457.                           Only once you have selected the style dialogue for 
  3458.                           the control and selected the Enter button in the 
  3459.                           dialogue will the help information be updated. 
  3460.  Title bar                Includes a title bar in the window or dialogue. 
  3461.  System menu              Includes a system menu in the window or dialogue. 
  3462.  Horz. scroll bar         Includes a horizontal scroll bar at the bottom of the 
  3463.                           window or dialogue. 
  3464.  Vert. scroll bar         Includes a vertical scroll bar at the right of the 
  3465.                           window or dialogue. 
  3466.  Visible                  Designates the window or dialogue as initially 
  3467.                           visible. Even if this option is not selected, 
  3468.                           Prominare Designer will display the window or 
  3469.                           dialogue. 
  3470.  Size border              Includes a sizing border as the frame of the window 
  3471.                           or dialogue. 
  3472.  Border                   Includes a simple border as the frame of the window 
  3473.                           or dialogue. 
  3474.  Dialogue frame           Includes a dialogue frame as the frame of the window 
  3475.                           or dialogue. 
  3476.  System modal             Makes the window or dialogue system modal. A system 
  3477.                           modal window or dialogue, when used, does not allow 
  3478.                           the focus to be directed to other active windows. 
  3479.                           This option should be used sparingly--only when you 
  3480.                           need the user's attention for a critical process. 
  3481.  Menu                     Includes an action bar menu in the window. This 
  3482.                           option is not available for dialogues. 
  3483.  Min box                  Includes a minimize box in the window or dialogue. 
  3484.  Max box                  Includes a maximize box in the window or dialogue. 
  3485.  Hide button              Includes a hide button in the window or dialogue. 
  3486.                           Used in place of the Min box. 
  3487.  Accelerators             Allows accelerators within a window. 
  3488.  Standard                 Sets the window as standard. When this option is 
  3489.                           used, all other options selected are ignored. 
  3490.                           Standard windows are based on the following options: 
  3491.                           Accelerators, Icon, Menu, Min box, Max Box, Shell 
  3492.                           position, Size board, System menu, Task list, and 
  3493.                           Title bar. 
  3494.  Shell position           Designates that window size and position should be 
  3495.                           determined by the system when it is created. Auto 
  3496.                           icon Prevents the WM_PAINT message from being sent to 
  3497.                           the window when it is minimized. Generally used to 
  3498.                           increase performance. 
  3499.  DBCS status              Causes a DBCS status line to be added to the bottom 
  3500.                           of the window when the application is being executed 
  3501.                           on a DBCS system. 
  3502.  Close button             Causes a close button to be included within the title 
  3503.                           bar.  This style option is available only on OS/2 
  3504.                           Warp Version 4 and above. 
  3505.  Task list                Adds the window or dialogue title to the application 
  3506.                           entries within the OS/2 Task list. 
  3507.  
  3508.  The dialogue also contains fields that allow you to define the window or 
  3509.  dialogue you are creating. The MLE, Title, is used to show the user displayed 
  3510.  title bar text. Enter the text of the title bar in this field. 
  3511.  
  3512.  The second field, ID, is used for the ID symbol of the window or dialogue. 
  3513.  Enter the ID symbol and value or select it from the drop-down list. If the 
  3514.  values you enter are not defined in the include header file, they are added 
  3515.  automatically. 
  3516.  
  3517.  Initially, the ID field contains a number. Each window or dialogue must 
  3518.  contain an ID value between 1 and 65,535. Providing a symbolic value makes it 
  3519.  easy to reference the window or dialogue in the source code. The symbolic 
  3520.  value is usually a simple description of the topic of the window or dialogue. 
  3521.  For example, DLG_FILEOPEN describes the symbolic value for a File Open 
  3522.  dialogue. If the symbol and value you want to use are already defined in the 
  3523.  include header file, you can select the value from the drop-down list. 
  3524.  
  3525.  The next entry field, Function, is used to define the function name for the 
  3526.  window or dialogue. It is used in conjunction with the Filename combination 
  3527.  box, where the function will be located. If you are using Prominare Designer 
  3528.  to generate and update the source modules according the windows and dialogues 
  3529.  within the design file, you must complete these two entry fields. 
  3530.  
  3531.  The Filename combination box contains a list of source modules you've defined. 
  3532.  Select one to place the code generated for the window. Enter the name of the 
  3533.  file where the source code is to be placed, or select an entry from the 
  3534.  combination box drop-down list box. The final entry field, Description, 
  3535.  provides a short description of the window or dialogue. This information must 
  3536.  be entered. 
  3537.  
  3538.  The Distribution tab contains four Tabs: Dialogue, Menu, Accelerator Table, 
  3539.  and Help tables. The Window or Dialogue tab shows the possible resource files 
  3540.  you have defined through the Distribution tab of the Advanced New Design or 
  3541.  Define Design dialogues. Select the resource file location of the dialogue, 
  3542.  window, menu, accelerator or help table by selecting the item from the list 
  3543.  box within the page. 
  3544.  
  3545.  If you are using the OS/2 Resource Compiler to both compile and bind the 
  3546.  resources, you will only be able to bind the first resource file found to the 
  3547.  executable or dynamic link library. The Messages tab allows you to select the 
  3548.  messages to be included within the generated source code for a window or 
  3549.  dialogue procedure. The tab contains a list box from which the possible 
  3550.  messages can be selected. 
  3551.  
  3552.  The messages selected through the Source Code Layout dialogue for a window or 
  3553.  dialogue are pre-selected within the list. If you do not want to include the 
  3554.  message within the window or dialogue procedure, you need only deselect the 
  3555.  item from the list. Add messages by clicking on the message within the list. 
  3556.  Once the source code is generated for the window or dialogue procedure, the 
  3557.  code generator checks to see if the message is contained within the procedure. 
  3558.  If it isn't, the message and the code defined for it are added. When you 
  3559.  create a new window or child window, you need to provide information regarding 
  3560.  storage variables for information returned back to the application by OS/2 
  3561.  Presentation Manager. This information can be created by selecting the 
  3562.  Definitions tab in the dialogue where you are defining the window or child 
  3563.  window. 
  3564.  
  3565.  The Definitions tab contains entry fields for various items. These entry 
  3566.  fields are: 
  3567.  
  3568.  Entry Field              Description 
  3569.  Base                     Defines the base variable name. By entering the base 
  3570.                           name, you can use the Update definitions push button 
  3571.                           to create the default names for most of the other 
  3572.                           entry fields. For example, if you are calling the 
  3573.                           program Test, enter Test in the entry field. 
  3574.  Queue                    Used for the message queue handle variable name. With 
  3575.                           the example name used in the Base entry field, the 
  3576.                           message queue variable would become hmqTest when the 
  3577.                           Update definitions push button is used to generate 
  3578.                           the variable names. 
  3579.  Frame                    Used for the window frame handle variable name. With 
  3580.                           the example name used in the Base entry field, the 
  3581.                           window frame handle variable would become 
  3582.                           hwndTestFrame when the Update definitions push button 
  3583.                           is used to generate the variable names. 
  3584.  Client                   Used for the window client handle variable name. With 
  3585.                           the example name used in the Base entry field, the 
  3586.                           window client handle variable would become hwndTest 
  3587.                           when the Update definitions push button is used to 
  3588.                           generate the variable names. 
  3589.  Menu                     Used for the window menu handle variable name. With 
  3590.                           the example name used in the Base entry field, the 
  3591.                           window menu handle variable would become hmenuTest 
  3592.                           when the Update definitions push button is used to 
  3593.                           generate the variable names. 
  3594.  Name                     Used for the window class name. With the example name 
  3595.                           used in the Base entry field, the window class name 
  3596.                           would become Test when the Update definitions push 
  3597.                           button is used to generate the variable names. 
  3598.  Definition               Used for the window class name variable name. With 
  3599.                           the example name used in the Base entry field, the 
  3600.                           window class name variable would become 
  3601.                           pszTestClassName when the Update definitions push 
  3602.                           button is used to generate the variable names. 
  3603.  
  3604.  You can ensure that variable names are always user defined with the following 
  3605.  option: 
  3606.  
  3607.  Option                   Description 
  3608.  User define              Used to prevent the Update definitions push button 
  3609.                           from overriding entered values. 
  3610.  
  3611.  When you use this option, you must enter the various variable name 
  3612.  definitions. 
  3613.  
  3614.  
  3615. ΓòÉΓòÉΓòÉ 5.16.3. Notebook Parent ΓòÉΓòÉΓòÉ
  3616.  
  3617. The Notebook Parent dialogue is used to select the notebook for which a page is 
  3618. created. The parent of the notebook, namely the window or dialogue that 
  3619. contains the target notebook, must first be selected from the Parent drop-down 
  3620. list. The notebooks contained within the window or dialogue selected are listed 
  3621. in the Notebook drop-down list. Select the notebook for which the page is to be 
  3622. created for from this list. 
  3623.  
  3624.  
  3625. ΓòÉΓòÉΓòÉ 5.16.4. Pre-designed Window/Dialogue ΓòÉΓòÉΓòÉ
  3626.  
  3627. The Pre-designed Window/Dialogue dialogue shows a list of selectable windows 
  3628. and dialogues that have been saved to the pre-designed library. 
  3629.  
  3630. The dialogue list box shows descriptions of the window or dialogue instead of 
  3631. IDs. This lets you fully utilize the pre-design facility, since some of the 
  3632. pre-designed windows or dialogues can be very abstract. 
  3633.  
  3634. Select a window or dialogue by clicking on the entry in the list box and then 
  3635. clicking on the Retrieve button. The window or dialogue selected is then 
  3636. displayed, allowing you to make changes or create another window or dialogue. 
  3637. Care should be exercised with the window or dialogue retrieved, especially if 
  3638. it contains pre-defined ID symbols. Prominare Designer will try to resolve the 
  3639. symbols with ones currently defined, but if the symbol does not yet exist 
  3640. within the current design, it will be added to the include header information. 
  3641.  
  3642.  
  3643. ΓòÉΓòÉΓòÉ 5.16.5. Pop-up Menu ΓòÉΓòÉΓòÉ
  3644.  
  3645. The Pop-up Menu dialogue allows you to enter the ID symbol and value for the 
  3646. pop-up menu. If the symbol and value you want to use are already defined in the 
  3647. include header file, you can easily select the value from the drop-down list. 
  3648. Once you have created the pop-up menu, use the Control menu item or the Tools 
  3649. window to add menu items. 
  3650.  
  3651.  
  3652. ΓòÉΓòÉΓòÉ 5.17. Creating and editing controls ΓòÉΓòÉΓòÉ
  3653.  
  3654. Each styles dialogue allows you to enter the text to be used with the control 
  3655. (if text is used with a control), ID symbol, and value, along with the control 
  3656. styles. Enter the text for the control in the Text MLE and the ID symbol and 
  3657. value through the ID field. Initially, the ID field will contain a value 
  3658. automatically generated by Prominare Designer. This value is chosen by 
  3659. determining the highest control value within the design file and increasing 
  3660. that value by one. 
  3661.  
  3662. You can edit the symbolic ID and the value for the button control. If the 
  3663. symbol and value you want to use are already defined in the include header 
  3664. file, you can easily select it from the drop-down list. 
  3665.  
  3666. It is also possible to set font and colours for the button control. Font and 
  3667. colours control the way the control is displayed within the window or dialogue. 
  3668. Click on the Font & Colours tab, which allows you to set the colours and the 
  3669. font for the button control. 
  3670.  
  3671. If you need to provide bidirectional support for the control, you can use the 
  3672. Bidi tab.  The bidirectional options contained within the tab will be used with 
  3673. the control on systems that support bidirectional languages. 
  3674.  
  3675. Also, if you are enabling your application to be pen aware, the Pen tab will be 
  3676. available if you have Pen for OS/2 installed on your system and are designing 
  3677. an application for OS/2 Warp and above.  The Pen tab will contain a series of 
  3678. tabs that can be used to define the capabilities to pen awareness for the 
  3679. control. The only controls for which the Pen tab will be available are: Entry 
  3680. field, Combo box, MLE, Spin Button and Handwriting. 
  3681.  
  3682. Note:  Options (radio buttons and check boxes) in the following dialogues that 
  3683.        are coloured black are common between OS/2 Presentation Manager and 
  3684.        Microsoft Windows. Options coloured dark red are unique to the target 
  3685.        environment for which you are designing. Bright red options in the OS/2 
  3686.        styles dialogues indicate OS/2 2.x-specific options. Bright green 
  3687.        options in the OS/2 styles dialogues indicate MMPM/2 or Pen for OS/2 
  3688.        options. Bright purple options in the OS/2 styles dialogues indicate 
  3689.        OS/2 Warp-specific options. 
  3690.  
  3691.  
  3692. ΓòÉΓòÉΓòÉ 5.17.1. Button Styles (expert mode) ΓòÉΓòÉΓòÉ
  3693.  
  3694. The following options are available for the styles: 
  3695.  
  3696.  Option                   Description 
  3697.  Push button              Designates the control being created as a push 
  3698.                           button. 
  3699.  Check box                Designates the control being created as a simple 
  3700.                           check box. The check box will not be toggled when 
  3701.                           selected. Auto check box Designates the control being 
  3702.                           created as a toggling check box. The check box will 
  3703.                           be toggled when selected. 
  3704.  Radio button             Designates the control being created as a simple 
  3705.                           radio button. The application must provide the 
  3706.                           necessary logic to deselect other radio buttons 
  3707.                           within the group the button belongs to. 
  3708.  Auto radio button        Designates the control being created as an 
  3709.                           auto-selected radio button within a group of radio 
  3710.                           buttons. When the radio button is selected, it 
  3711.                           automatically highlights itself and deselects any 
  3712.                           other radio button within its group. 
  3713.  3 state                  Designates the control being created as a complex 
  3714.                           check box. The check box will not be toggled when 
  3715.                           selected but can have three states: unchecked, 
  3716.                           checked, and indeterminate. An indeterminate check 
  3717.                           box is shown with the interior of the box grayed. 
  3718.  Auto 3 state             Designates the control being created as a toggled 
  3719.                           complex check box. The check box will be toggled in 
  3720.                           order between three states: unchecked, checked, and 
  3721.                           indeterminate. 
  3722.  User button              Designates the control being created as a user 
  3723.                           button. The application must provide the necessary 
  3724.                           logic to handle the painting, inverting, or disabling 
  3725.                           of the button. The parent is notified when the button 
  3726.                           is selected. 
  3727.  Notebook button          Designates the control being created as a notebook 
  3728.                           button. The button is only used in conjunction with 
  3729.                           the OS/2 Warp Version 4 tabbed notebooks. 
  3730.  Default                  Designates that the push button should contain the 
  3731.                           default emphasis. 
  3732.  SYSCOMMAND               Designates that the push button is used to invoke a 
  3733.                           WM_SYSCOMMAND message. 
  3734.  No pointer select        Prevents an auto radio button from being 
  3735.                           automatically selected when a user moves the cursor 
  3736.                           to the button with the cursor-movement keys. 
  3737.  Checked                  Sets the check state of a radio button, check box, or 
  3738.                           three-state check box. Selecting the option causes 
  3739.                           the button to be selected when the dialogue is first 
  3740.                           displayed. 
  3741.  Autosize                 Causes the button to be automatically sized to the 
  3742.                           text. 
  3743.  Bitmap                   Designates that the push button be able to accept a 
  3744.                           bitmap image. 
  3745.  Icon                     Designates that the push button be able to accept an 
  3746.                           icon image. 
  3747.  Help                     Designates that the push button is used to invoke 
  3748.                           help. 
  3749.  No border                Designates that the push button be drawn without a 
  3750.                           border. 
  3751.  No focus                 Designates that the button control should not receive 
  3752.                           the focus when selected. 
  3753.  Hilighted                Sets the highlight state of a push button. 
  3754.  Text                     Designates that the push button be able to accept 
  3755.                           text with the icon image. 
  3756.  Mini-icon                Designates that the push button use a smaller size of 
  3757.                           the icon when an icon image is used within the push 
  3758.                           button. 
  3759.  
  3760.  When creating push button controls, you should be aware of two predefined 
  3761.  values in OS/2 Presentation Manager that you can use. The first, defined as 
  3762.  DID_OK, is usually associated with the OK push button. The second value, 
  3763.  defined as DID_CANCEL, is generally associated with the Cancel push button. 
  3764.  Prominare Designer allows you to select either value from the ID field but 
  3765.  will not place the definitions within the include header file, since they are 
  3766.  already defined within the OS/2 Presentation Manager include header files. 
  3767.  
  3768.  
  3769. ΓòÉΓòÉΓòÉ 5.17.2. Push Button Styles (non-expert mode) ΓòÉΓòÉΓòÉ
  3770.  
  3771. The following options are available for the styles: 
  3772.  
  3773.  Option                   Description 
  3774.  Default                  Designates that the push button should contain the 
  3775.                           default emphasis. 
  3776.  SYSCOMMAND               Designates that the push button is used to invoke a 
  3777.                           WM_SYSCOMMAND message. 
  3778.  Autosize                 Causes the button to be automatically sized to the 
  3779.                           text. 
  3780.  Bitmap                   Designates that the push button be able to accept a 
  3781.                           bitmap image. 
  3782.  Icon                     Designates that the push button be able to accept an 
  3783.                           icon image. 
  3784.  Help                     Designates that the push button is used to invoke 
  3785.                           help. 
  3786.  No border                Designates that the push button be drawn without a 
  3787.                           border. 
  3788.  No focus                 Designates that the button control should not receive 
  3789.                           the focus when selected. 
  3790.  Hilighted                Sets the highlight state of a push button. 
  3791.  Text                     Designates that the push button be able to accept 
  3792.                           text with the icon image. 
  3793.  Mini-icon                Designates that the push button use a smaller size of 
  3794.                           the icon when an icon image is used within the push 
  3795.                           button. 
  3796.  
  3797.  When creating push button controls, you should be aware of two predefined 
  3798.  values in OS/2 Presentation Manager that you can use. The first, defined as 
  3799.  DID_OK, is usually associated with the OK push button. The second value, 
  3800.  defined as DID_CANCEL, is generally associated with the Cancel push button. 
  3801.  Prominare Designer allows you to select either value from the ID field but 
  3802.  will not place the definitions within the include header file, since they are 
  3803.  already defined within the OS/2 Presentation Manager include header files. 
  3804.  
  3805.  
  3806. ΓòÉΓòÉΓòÉ 5.17.3. Check Box Styles (non-expert mode) ΓòÉΓòÉΓòÉ
  3807.  
  3808. The following options are available for the styles: 
  3809.  
  3810.  Option                   Description 
  3811.  Auto                     Designates the control being created as a toggling 
  3812.                           check box. The check box will be toggled when 
  3813.                           selected. 
  3814.  3 state                  Designates the control being created as a complex 
  3815.                           check box. The check box will not be toggled when 
  3816.                           selected but can have three states: unchecked, 
  3817.                           checked, and indeterminate. An indeterminate check 
  3818.                           box is shown with the interior of the box grayed. 
  3819.  No pointer select        Prevents an auto radio button from being 
  3820.                           automatically selected when a user moves the cursor 
  3821.                           to the button with the cursor-movement keys. 
  3822.  Checked                  Sets the check state of a radio button, check box, or 
  3823.                           three-state check box. Selecting the option causes 
  3824.                           the button to be selected when the dialogue is first 
  3825.                           displayed. 
  3826.  No focus                 Designates that the button control should not receive 
  3827.                           the focus when selected. 
  3828.  Autosize                 Causes the button to be automatically sized to the 
  3829.                           text. 
  3830.  
  3831.  
  3832. ΓòÉΓòÉΓòÉ 5.17.4. Radio Button Styles (non-expert mode) ΓòÉΓòÉΓòÉ
  3833.  
  3834. The following options are available for the styles: 
  3835.  
  3836.  Option                   Description 
  3837.  Auto                     Designates the control being created as an 
  3838.                           auto-selected radio button within a group of radio 
  3839.                           buttons. When the radio button is selected, it 
  3840.                           automatically highlights itself and deselects any 
  3841.                           other radio button within its group. 
  3842.  No pointer select        Prevents an auto radio button from being 
  3843.                           automatically selected when a user moves the cursor 
  3844.                           to the button with the cursor-movement keys. 
  3845.  Checked                  Sets the check state of a radio button, check box, or 
  3846.                           three-state check box. Selecting the option causes 
  3847.                           the button to be selected when the dialogue is first 
  3848.                           displayed. 
  3849.  Autosize                 Causes the button to be automatically sized to the 
  3850.                           text. 
  3851.  No focus                 Designates that the button control should not receive 
  3852.                           the focus when selected. 
  3853.  Hilighted                Sets the highlight state of a push button. 
  3854.  
  3855.  
  3856. ΓòÉΓòÉΓòÉ 5.17.5. Scroll Bar Styles ΓòÉΓòÉΓòÉ
  3857.  
  3858. The following options are available for the styles: 
  3859.  
  3860.  Option                   Description 
  3861.  Thumb size               Sets the size of the scroll bar slider. When you use 
  3862.                           this style, you must complete the entry fields for 
  3863.                           slider range and size. 
  3864.  Auto track               Allows the scroll bar slider to move when selected by 
  3865.                           the mouse pointer. Used instead of an outline 
  3866.                           representation. 
  3867.  Autosize                 Causes the scroll to change size to reflect the 
  3868.                           amount of data within a window or dialogue. 
  3869.  
  3870.  When selecting the Thumb size option, you must enter the range and size of the 
  3871.  scroll bar slider. Enter the low limit of the range in the Low range entry 
  3872.  field and the top limit in the High range entry field. 
  3873.  
  3874.  The actual size of the scroll bar slider is determined by the value entered in 
  3875.  the Visible entry field. Enter the total number of items that the scroll bar 
  3876.  is to handle in the Total entry field. 
  3877.  
  3878.  
  3879. ΓòÉΓòÉΓòÉ 5.17.6. List Box Styles ΓòÉΓòÉΓòÉ
  3880.  
  3881. The following options are available for the styles: 
  3882.  
  3883.  Option                   Description 
  3884.  Multiple selection       Designates the list box as able to handle multiple 
  3885.                           selections of items within it. By default, a list box 
  3886.                           allows only one selection at any given time. 
  3887.  User redraw              Designates that the application program is to draw 
  3888.                           each item within the list box. No adjust position 
  3889.                           Designates that the list box should not adjust its 
  3890.                           height to a multiple number of items contained within 
  3891.                           it. 
  3892.  Horz. scroll             Includes a horizontal scroll bar at the bottom of the 
  3893.                           list box. The bar allows the contents of the list box 
  3894.                           to be scrolled horizontally when the items displayed 
  3895.                           in the list box are wider than the list box itself. 
  3896.  Extended selection       Designates the list box as able to handle multiple 
  3897.                           selections of items within it, using a combination of 
  3898.                           the mouse and keyboard where groups can be selected 
  3899.                           quickly. By default, a list box allows only one 
  3900.                           selection at any given time. 
  3901.  
  3902.  
  3903. ΓòÉΓòÉΓòÉ 5.17.7. Entry Field Styles ΓòÉΓòÉΓòÉ
  3904.  
  3905. The following options are available for the styles: 
  3906.  
  3907.  Option                   Description 
  3908.  Left aligned             Aligns the text in the entry field with the left 
  3909.                           edge. Text entered by the user will shift right 
  3910.                           within the entry field. 
  3911.  Centered                 Centers the text in the entry field. When text is 
  3912.                           entered, the contents of the entry field will shift 
  3913.                           left and right, keeping the middle point of the text 
  3914.                           centered in the entry field. 
  3915.  Right aligned            Aligns the text in the entry field with the right 
  3916.                           edge. Text entered by the user will shift left within 
  3917.                           the entry field. 
  3918.  Auto horz. scroll        Causes text in the entry field to be scrolled when 
  3919.                           entered by the user. 
  3920.  Margin                   Displays a margin denoting the actual limits of the 
  3921.                           entry field. 
  3922.  Auto tab                 Causes the entry field to tab to the next control 
  3923.                           when the user is entering text and the limit of the 
  3924.                           entry field has been reached. 
  3925.  Read only                Prevents the entry field from accepting text input by 
  3926.                           the user. 
  3927.  Command                  Denotes the entry field as a command entry field. 
  3928.                           This information is used by the Help Manager to 
  3929.                           provide command help on user request. No more than 
  3930.                           one entry field in the window or dialogue should use 
  3931.                           this style. 
  3932.  Unreadable               Shows all input into the entry field as asterisks 
  3933.                           (*). This option is useful for entry fields such as 
  3934.                           passwords, in which the contents should be prevented 
  3935.                           from being determined visually. 
  3936.  Autosize                 Automatically sizes the entry field to the text. 
  3937.  Any                      Causes the entry field to contain a mixture of 
  3938.                           double-byte and single-byte 
  3939.  SBCS                     Makes the entry field accept single-byte characters 
  3940.                           only. 
  3941.  DBCS                     Makes the entry field accept double-byte characters 
  3942.                           only. 
  3943.  Mixed                    Makes the entry field accept a mixture of single- and 
  3944.                           double-byte characters. Unlike the Any option, this 
  3945.                           allows ASCII DBCS data to be converted to EBCDIC DBCS 
  3946.                           data without causing an overflow error. 
  3947.  
  3948.  The Start and End labeled entry fields allow you to enter the starting and 
  3949.  ending index positions (zero indexed) of the text to be selected. For example, 
  3950.  if you set the maximum number of characters in the Size entry field to 25, you 
  3951.  can select the entire entry field by entering 0 in the Start entry field and 
  3952.  25 in the End entry field. You can also select portions of the text within the 
  3953.  entry field by setting the appropriate values. 
  3954.  
  3955.  It is possible to set the maximum number of characters that the entry field 
  3956.  can accept by entering the desired value in the Size entry field. In this 
  3957.  case, you need not include any logic within the dialogue procedure to set the 
  3958.  size. 
  3959.  
  3960.  
  3961. ΓòÉΓòÉΓòÉ 5.17.8. Static Styles (expert mode) ΓòÉΓòÉΓòÉ
  3962.  
  3963. The following options are available for the styles: 
  3964.  
  3965.  Option                   Description 
  3966.  Text                     Designates the control as static text. 
  3967.  Group box                Designates the control as a group box. 
  3968.  Icon                     Designates the control as an icon. 
  3969.  Bitmap                   Designates the control as a bitmap. 
  3970.  System icon              Designates the control as a system icon. 
  3971.  Autosize                 Sizes the control area to the control text 
  3972.                           automatically. 
  3973.  Foreground rect.         Designates the control as a foreground rectangle. 
  3974.  Halftone rect.           Designates the control as a halftone rectangle. 
  3975.  Background rect.         Designates the control as a background rectangle. 
  3976.  Foreground frame         Designates the control as a foreground frame. 
  3977.  Halftone frame           Designates the control as a halftone frame. 
  3978.  Background frame         Designates the control as a background frame. 
  3979.  Left aligned             Displays the static text left aligned within the 
  3980.                           limits of its display rectangle, as determined by its 
  3981.                           width and height. 
  3982.  Horz. centered           Displays the static text horizontally centered within 
  3983.                           the limits of its display rectangle, as determined by 
  3984.                           its width and height. 
  3985.  Right aligned            Displays the static text right aligned within the 
  3986.                           limits of its display rectangle, as determined by its 
  3987.                           width and height. 
  3988.  Top aligned              Displays the static text top aligned within the 
  3989.                           limits of its display rectangle, as determined by its 
  3990.                           width and height. 
  3991.  Vert. centered           Displays the static text centered vertically within 
  3992.                           the limits of its display rectangle, as determined by 
  3993.                           its width and height. 
  3994.  Bottom aligned           Displays the static text bottom aligned within the 
  3995.                           limits of its display rectangle, as determined by its 
  3996.                           width and height. 
  3997.  Word wrap                Breaks the static text into two or more lines at a 
  3998.                           space or word break, to fit within the limits of its 
  3999.                           display rectangle as determined by its width and 
  4000.                           height. You should also select the Top aligned option 
  4001.                           if you want the word to break as intended. 
  4002.  Halftone                 Shows the static text in halftone. 
  4003.  Mnemonic                 Allows a mnemonic association for the static text. 
  4004.                           The mnemonic is denoted by the tilde character (~) 
  4005.                           before the letter that is to act as the mnemonic. It 
  4006.                           will appear underlined when drawn. 
  4007.  
  4008.  When you use the Word wrap style, you can force a break in the entered text 
  4009.  using either \n or \r where the word break is to occur. Or press the <ΓöÿENTER 
  4010.  key at that point. 
  4011.  
  4012.  Static Control Restrictions 
  4013.  Text           None. 
  4014.  Group box      Contents of group box will not use font and colours selected. 
  4015.  Frame          Text font and colours do not apply. 
  4016.  Rectangle      Text font and colours do not apply. 
  4017.  
  4018.  
  4019. ΓòÉΓòÉΓòÉ 5.17.9. Group Box Styles (non-expert mode) ΓòÉΓòÉΓòÉ
  4020.  
  4021. The following options are available for the styles: 
  4022.  
  4023.  Option                   Description 
  4024.  Halftone                 Shows the group box text in halftone. 
  4025.  Mnemonic                 Allows a mnemonic association for the group box text. 
  4026.                           The mnemonic is denoted by the tilde character (~) 
  4027.                           before the letter that is to act as the mnemonic. It 
  4028.                           will appear underlined when drawn. 
  4029.  
  4030.  
  4031. ΓòÉΓòÉΓòÉ 5.17.10. Text Styles (non-expert mode) ΓòÉΓòÉΓòÉ
  4032.  
  4033. The following options are available for the styles: 
  4034.  
  4035.  Option                   Description 
  4036.  Left aligned             Displays the static text left aligned within the 
  4037.                           limits of its display rectangle, as determined by its 
  4038.                           width and height. 
  4039.  Horz. centered           Displays the static text horizontally centered within 
  4040.                           the limits of its display rectangle, as determined by 
  4041.                           its width and height. 
  4042.  Right aligned            Displays the static text right aligned within the 
  4043.                           limits of its display rectangle, as determined by its 
  4044.                           width and height. 
  4045.  Top aligned              Displays the static text top aligned within the 
  4046.                           limits of its display rectangle, as determined by its 
  4047.                           width and height. 
  4048.  Option                   Description 
  4049.  Vert. centered           Displays the static text centered vertically within 
  4050.                           the limits of its display rectangle, as determined by 
  4051.                           its width and height. 
  4052.  Bottom aligned           Displays the static text bottom aligned within the 
  4053.                           limits of its display rectangle, as determined by its 
  4054.                           width and height. Word wrap Breaks the static text 
  4055.                           into two or more lines at a space or word break, to 
  4056.                           fit within the limits of its display rectangle as 
  4057.                           determined by its width and height. You should also 
  4058.                           select the Top aligned option if you want the word to 
  4059.                           break as intended. 
  4060.  Halftone                 Shows the static text in halftone. 
  4061.  Mnemonic                 Allows a mnemonic association for the static text. 
  4062.                           The mnemonic is denoted by the tilde character (~) 
  4063.                           before the letter that is to act as the mnemonic. It 
  4064.                           will appear underlined when drawn. 
  4065.  Autosize                 Sizes the control area to the control text 
  4066.                           automatically. 
  4067.  
  4068.  When you use the Word wrap style, you can force a break in the entered text 
  4069.  using either \n or \r where the word break is to occur. Or press the <ΓöÿENTER 
  4070.  key at that point. 
  4071.  
  4072.  
  4073. ΓòÉΓòÉΓòÉ 5.17.11. Icon Styles (non-expert mode) ΓòÉΓòÉΓòÉ
  4074.  
  4075. The value for the icon should be a value that you have used for an icon defined 
  4076. through the Bitmap, Font, Icon and Pointer dialogue. By doing so, OS/2 PM will 
  4077. properly load and display the icon within the final dialogue. 
  4078.  
  4079.  
  4080. ΓòÉΓòÉΓòÉ 5.17.12. Bitmap Styles (non-expert mode) ΓòÉΓòÉΓòÉ
  4081.  
  4082. The value for the bitmap should be a value that you have used for a bitmap 
  4083. defined through the Bitmap, Font, Icon and Pointer dialogue.  By doing so, OS/2 
  4084. PM will properly load and display the bitmap within the final dialogue. 
  4085.  
  4086.  
  4087. ΓòÉΓòÉΓòÉ 5.17.13. Frame Styles (non-expert mode) ΓòÉΓòÉΓòÉ
  4088.  
  4089. The following options are available for the styles: 
  4090.  
  4091.  Option                   Description 
  4092.  Foreground frame         Designates the control as a foreground frame. 
  4093.  Halftone frame           Designates the control as a halftone frame. 
  4094.  Background frame         Designates the control as a background frame. 
  4095.  
  4096.  
  4097. ΓòÉΓòÉΓòÉ 5.17.14. Rectangle Styles (non-expert mode) ΓòÉΓòÉΓòÉ
  4098.  
  4099. The following options are available for the styles: 
  4100.  
  4101.  Option                   Description 
  4102.  Foreground rect.         Designates the control as a foreground rectangle. 
  4103.  Halftone rect.           Designates the control as a halftone rectangle. 
  4104.  Background rect.         Designates the control as a background rectangle. 
  4105.  
  4106.  
  4107. ΓòÉΓòÉΓòÉ 5.17.15. System Icon Styles ΓòÉΓòÉΓòÉ
  4108.  
  4109. You select from the displayed system icons the image to use. 
  4110.  
  4111.  
  4112. ΓòÉΓòÉΓòÉ 5.17.16. Combo Box Styles ΓòÉΓòÉΓòÉ
  4113.  
  4114. The following options are available for the styles: 
  4115.  
  4116.  Option                   Description 
  4117.  Simple                   Designates the combination box as a simple 
  4118.                           combination box that always displays its list box. 
  4119.                           The entry field of the combination box can be edited 
  4120.                           by the user or can be completed by selecting items 
  4121.                           within the displayed list box. 
  4122.  Drop down                Designates the combination box as a combination box 
  4123.                           that displays the list box only when the user clicks 
  4124.                           on the drop-down button at the right end of the entry 
  4125.                           field. When the user selects an item within the list 
  4126.                           box, the entry field is completed with the item 
  4127.                           selected and the list box hidden. If the user clicks 
  4128.                           the drop-down button a second time, the list box is 
  4129.                           also hidden. The user can edit the entry field like 
  4130.                           as in the simple combination box. 
  4131.  Drop down list           Designates the combination box as a drop-down list, 
  4132.                           similar in operation to the drop down combination box 
  4133.                           except that the entry field cannot be edited by the 
  4134.                           user. 
  4135.  Any                      Causes the entry field to contain a mixture of 
  4136.                           double-byte and single-byte characters 
  4137.  SBCS                     Causes the entry field to accept single-byte 
  4138.                           characters only. 
  4139.  DBCS                     Causes the entry field to accept double-byte 
  4140.                           characters only. 
  4141.  Mixed                    Causes the entry field to accept a mixture of single- 
  4142.                           and double-byte characters. Unlike the Any option, 
  4143.                           this allows ASCII DBCS data to be converted to EBCDIC 
  4144.                           DBCS data without causing an overflow error. 
  4145.  Horz. scroll             Causes the text within the entry field to scroll when 
  4146.                           it is entered by the user. 
  4147.  
  4148.  
  4149. ΓòÉΓòÉΓòÉ 5.17.17. Multi-line Entry Styles ΓòÉΓòÉΓòÉ
  4150.  
  4151. The following options are available for the styles: 
  4152.  
  4153.  Option                   Description 
  4154.  None                     Indicates no import/export preference. 
  4155.  Text                     Indicates text import/export format. 
  4156.  No translate             Indicates no translation of CR/LF combinations for 
  4157.                           import/ export. 
  4158.  Windows format           Indicates that Windows CR/LF translation should be 
  4159.                           used for import/export. 
  4160.  Limit horz.              Indicates that the formatting rectangle should be 
  4161.                           limited horizontally. 
  4162.  Limit vert.              Indicates that the formatting rectangle should be 
  4163.                           limited vertically. 
  4164.  Match window             Indicates that the formatting rectangle should match 
  4165.                           the window limits. 
  4166.  Border                   Draws a border around the multiple-line entry field. 
  4167.  Horz. scroll bar         Includes a horizontal scroll bar at the bottom of the 
  4168.                           multiple-line entry field, allowing the user to 
  4169.                           scroll the contents of the multiple-line entry field 
  4170.                           horizontally. 
  4171.  Vert. scroll bar         Includes a vertical scroll bar at the right of the 
  4172.                           multiple-line entry field, allowing the user to 
  4173.                           scroll the contents of the multiple-line entry field 
  4174.                           vertically. 
  4175.  Ignore tab               Prevents the multiple-line entry field from acting on 
  4176.                           the TAB and Shift+TAB keys. 
  4177.  Read only                Prevents the user from entering text in the 
  4178.                           multiple-line entry field. This option can be used 
  4179.                           when lengthy items of static text must be displayed 
  4180.                           within a window or dialogue. 
  4181.  Word wrap                Causes the multiple-line entry field to break lines 
  4182.                           longer than the width of the multiple-line entry 
  4183.                           field into more than one line. The text is broken 
  4184.                           from one line to the next at a space, tab, or 
  4185.                           line-break. 
  4186.  Disable undo             Prevents undo buffers (total 128 KB) from being 
  4187.                           created for the multiple-line entry field. This 
  4188.                           reduces the memory required for the control and makes 
  4189.                           it faster. 
  4190.  Limit vertical scroll    Used to display the last MLE line at the bottom of 
  4191.                           the screen page. When this style is not used, the MLE 
  4192.                           control shows an empty space between the last MLE 
  4193.                           line and the bottom of the screen page. 
  4194.  
  4195.  You can also specify the size of the MLE in the Size entry field. The value 
  4196.  entered is used to set the total number of characters that the MLE can accept. 
  4197.  A value of -1 indicates unbounded input.  The starting and ending selection 
  4198.  points for the MLE are specified via the Start and End entry fields. The 
  4199.  formatting rectangle is defined in the Width and Height entry fields. Note 
  4200.  that the values for the formatting rectangle are in pixels and not dialogue 
  4201.  units. 
  4202.  
  4203.  
  4204. ΓòÉΓòÉΓòÉ 5.17.18. Spin Button Styles ΓòÉΓòÉΓòÉ
  4205.  
  4206. Note:  This control is only available with OS/2 Version 1.3 and above. You need 
  4207.        the IBM OS/2 1.3, 2.x or Warp Toolkit to use it in your final 
  4208.        application. 
  4209.  
  4210.  The following options are available for the styles: 
  4211.  
  4212.  Option                   Description 
  4213.  Master                   Designates the spin button as the master consisting 
  4214.                           of at least one single spin field. 
  4215.  Servant                  Creates a multi-field spin button by spinning 
  4216.                           servants from the master. 
  4217.  Left                     Left justifies text input. 
  4218.  Centered                 Centers text input. 
  4219.  Right                    Right justifies text input. 
  4220.  All characters           Allows any character to be entered in the spin field. 
  4221.  Numeric only             Allows only numeric values to be entered in the spin 
  4222.                           field 
  4223.  Read only                Prevents values from being typed into the spin field. 
  4224.  No border                Creates a spin field without a border 
  4225.  Fast spin                Enables the spin button to increase the spin speed 
  4226.                           with time. (The spin speed doubles every two 
  4227.                           seconds.) 
  4228.  Zero pad                 Pads the output number at the front with zeroes 
  4229.                           between the first non-zero digit number and the field 
  4230.                           width, or with 11 characters (whichever is lesser). 
  4231.  
  4232.  You can set the entry area width of the spin button field in the Size entry 
  4233.  field. Set the starting and ending values of the spin button in the Lower and 
  4234.  Upper entry fields. The values are recognized only if you have selected the 
  4235.  Numeric only style. If the spin button is a servant, you can specify the 
  4236.  master Id of the owning spin button through the Master ID drop-down. 
  4237.  
  4238.  Depending on the level of the operating system with which you are using 
  4239.  Prominare Designer, you may be able to set the width of the entry area, lower 
  4240.  and upper numerical limit, and ID of the master spin button. 
  4241.  
  4242.  
  4243. ΓòÉΓòÉΓòÉ 5.17.19. Container Styles ΓòÉΓòÉΓòÉ
  4244.  
  4245. Note:  The following control, Container, is only available with OS/2 Version 
  4246.        2.x and above. You need the OS/2 2.x or Warp Toolkit to use these in 
  4247.        your final application. 
  4248.  
  4249.  The following options are available for the styles: 
  4250.  
  4251.  Option                   Description 
  4252.  Single                   Allows only one container item to be selected at a 
  4253.                           time. Single selection is valid for all views and is 
  4254.                           the only type supported for the tree view. 
  4255.  Extended                 Allows one or more container items to be selected in 
  4256.                           any combination. Extended selection is valid for all 
  4257.                           views except the tree view. 
  4258.  Multiple                 Allows the selection of none, some, or all of the 
  4259.                           container items. Valid for all views except the tree 
  4260.                           view. 
  4261.  Auto position            Allows the container items to be automatically 
  4262.                           arranged when the window size changes, an item is 
  4263.                           inserted, removed, sorted, invalidated, or filtered, 
  4264.                           or when the font or font size changes. Valid only 
  4265.                           with the icon view. 
  4266.  Verify pointer           Verifies that the application pointers are members of 
  4267.                           the container's linked list before they are used. 
  4268.                           Generally, the Verify pointer style is used when 
  4269.                           developing the application. 
  4270.  Read only                Makes the entire container read only. Prevents a user 
  4271.                           from editing the container item text. 
  4272.  Mini record              Causes the container to allocate records as smaller 
  4273.                           than they would otherwise be. The MINIRECORDCORE data 
  4274.                           structure is used instead of RECORDCORE. 
  4275.  Mini-icons               Allows the use of mini-icons in the MINIRECORDCORE 
  4276.                           structure. 
  4277.  No control pointer       Prevents the container from sending the 
  4278.                           WM_CONTROLPOINTER message to the window or dialogue 
  4279.                           owning the control. 
  4280.  
  4281.  
  4282. ΓòÉΓòÉΓòÉ 5.17.20. Slider Styles ΓòÉΓòÉΓòÉ
  4283.  
  4284. Note:  The following control, Slider, is only available with OS/2 Version 2.x 
  4285.        and above. You need the OS/2 2.x or Warp Toolkit to use these in your 
  4286.        final application. 
  4287.  
  4288.  The following options are available for the styles: 
  4289.  
  4290.  Option                   Description 
  4291.  Horizontal               Orients the slider horizontally. 
  4292.  Vertical                 Orients the slider vertically. 
  4293.  Center                   Centers the slider in the slider window. 
  4294.  Bottom                   Positions the slider at the bottom of the slider 
  4295.                           window. This is valid only for horizontal sliders. 
  4296.  Top                      Positions the slider at the top of the slider window. 
  4297.                           This is valid only for horizontal sliders. 
  4298.  Left                     Positions the slider at the left of the slider 
  4299.                           window. This is valid only for vertical sliders. 
  4300.  Right                    Positions the slider at the right of the slider 
  4301.                           window. This is valid only for vertical sliders. 
  4302.  Left                     Locates the incremental buttons to the left of the 
  4303.                           slider shaft. This is valid only for horizontal 
  4304.                           sliders. 
  4305.  Right                    Locates the incremental buttons to the right of the 
  4306.                           slider shaft. This is valid only for horizontal 
  4307.                           sliders. 
  4308.  Bottom                   Locates the incremental buttons to the bottom of the 
  4309.                           slider shaft. This is valid only for vertical 
  4310.                           sliders. 
  4311.  Top                      Locates the incremental buttons to the bottom of the 
  4312.                           slider shaft. This is valid only for vertical 
  4313.                           sliders. 
  4314.  Bottom                   Causes the slider to use the bottom edge as the base 
  4315.                           value for incrementing. This is valid only for 
  4316.                           vertical sliders. 
  4317.  Top                      Causes the slider to use the top edge as the base 
  4318.                           value for incrementing. This is valid only for 
  4319.                           vertical sliders. 
  4320.  Left                     Causes the slider to use the left edge as the base 
  4321.                           value for incrementing. This is valid only for 
  4322.                           horizontal sliders. 
  4323.  Right                    Causes the slider to use the right edge as the base 
  4324.                           value for incrementing. This is valid only for 
  4325.                           horizontal sliders. 
  4326.  Snap to increment        Causes the slider arm to move to the nearest 
  4327.                           increment when it is between two tick marks. 
  4328.  Owner draw               Notifies the application when the slider shaft, 
  4329.                           ribbon strip, and slider background are to be drawn. 
  4330.  Read only                Prevents the user from interacting with the slider. 
  4331.                           Generally, this is provides a visual indication of 
  4332.                           the percentage of an operation completed. 
  4333.  Ribbon strip             Fills the strip with a colour different from that of 
  4334.                           the slider shaft between the home position of the 
  4335.                           slider and the slider arm, giving the appearance of 
  4336.                           the mercury in a thermometer. 
  4337.  Scale 1                  Uses the increment spacing specified for scale 1 as 
  4338.                           the incremental value for positioning the slider arm. 
  4339.                           For horizontal sliders, displayed above the slider 
  4340.                           and for vertical sliders to the right. 
  4341.  Scale 2                  Uses the increment spacing specified for scale 2 as 
  4342.                           the incremental value for positioning the slider arm. 
  4343.                           For horizontal sliders, displayed below the slider 
  4344.                           and for vertical sliders to the left. 
  4345.  
  4346.  
  4347. ΓòÉΓòÉΓòÉ 5.17.21. Value Set Styles ΓòÉΓòÉΓòÉ
  4348.  
  4349. Note:  The following control, Value Set, is only available with OS/2 Version 
  4350.        2.x and above. You need the OS/2 2.x or Warp Toolkit to use these in 
  4351.        your final application. 
  4352.  
  4353.  The following options are available for the styles: 
  4354.  
  4355.  Option                   Description 
  4356.  Bitmap                   Designates the value set items as bitmaps. 
  4357.  Icon                     Designates the value set items as icons. 
  4358.  Text                     Designates the value set items as text. 
  4359.  Colour info              Designates the value set items as RGB colours 
  4360.  Colour indices           Designates the value set items as colour indices. 
  4361.  Border                   Draws a border around the value set to delineate the 
  4362.                           extents of the value set control. 
  4363.  Item border              Draws borders around each value set item. 
  4364.  Scale bitmaps            Scales bitmaps to the value set item size. This is 
  4365.                           only used with the Bitmap option 
  4366.  Right to left ordering   Causes the value set to interpret the column 
  4367.                           orientation as right to left ordering instead of the 
  4368.                           default left to right ordering. This causes the right 
  4369.                           column to be number 1, counting up as you move to the 
  4370.                           left. 
  4371.  Owner draw               Draws the value set by the owning window or dialogue. 
  4372.  
  4373.  
  4374. ΓòÉΓòÉΓòÉ 5.17.22. Notebook Styles ΓòÉΓòÉΓòÉ
  4375.  
  4376. Note:  The following control, Notebook, is only available with OS/2 Version 2.x 
  4377.        and above. You need the OS/2 2.x or Warp Toolkit to use these in your 
  4378.        final application. 
  4379.  
  4380.  The following options are available for the styles: 
  4381.  
  4382.  Option                   Description 
  4383.  Bottom right             Causes the back pages to appear on the bottom right. 
  4384.  Bottom left              Causes the back pages to appear on the bottom left. 
  4385.  Top right                Causes the back pages to appear on the top right. 
  4386.  Top left                 Causes the back pages to appear on the top left. 
  4387.  Bottom                   Places the major tabs on the bottom of the notebook. 
  4388.  Top                      Places the major tabs on the top of the notebook. 
  4389.  Left                     Places the major tabs on the left of the notebook. 
  4390.  Right                    Places the major tabs on the right of the notebook. 
  4391.  Square                   Gives the tabs square edges. 
  4392.  Polygon                  Gives the tabs polygon edges. 
  4393.  Rounded                  Gives the tabs rounded edges. 
  4394.  Left                     Left justifies the status text. 
  4395.  Center                   Centers the status text. 
  4396.  Right                    Right justifies the status text. 
  4397.  Left                     Left justifies the tab text. 
  4398.  Center                   Centers the tab text. 
  4399.  Right                    Right justifies the tab text. 
  4400.  Spiral                   Gives the notebook a spiral binding. 
  4401.  Solid                    Gives the notebook a solid binding. 
  4402.  Tabbed                   Gives the notebook a tabbed look and feel instead of 
  4403.                           the normal bound or spiral notebook.  This style is 
  4404.                           only available for use in OS/2 Warp Version 4 and 
  4405.                           above. 
  4406.  Button area              Gives the notebook a button area for push buttons. 
  4407.                           This style is only available for use in OS/2 Warp 
  4408.                           Version 4 and above. 
  4409.  
  4410.  
  4411. ΓòÉΓòÉΓòÉ 5.17.23. Circular Slider Styles ΓòÉΓòÉΓòÉ
  4412.  
  4413. Note:  The following control, Circular Slider, is available only with 
  4414.        MultiMedia PM/2 Version 1.1 (MMPM/2 Version 1.1) and above. You need the 
  4415.        IBM OS/2 2.1 or Warp Toolkit along with the MMPM/2 Version 1.1 or Warp 
  4416.        Toolkit to use these in your final application. 
  4417.  
  4418.  The following options are available for the styles: 
  4419.  
  4420.  Option                   Description 
  4421.  Mid-point tick           Enlarges the mid-point and end tick marks on the 
  4422.                           dial. 
  4423.  No value buttons         Excludes the + and - buttons. 
  4424.  No dial numbers          Excludes the dial numeric value. 
  4425.  No dial text             Excludes text below the dial. 
  4426.  Direct manipulation      Allows the direct manipulation of the dial value with 
  4427.                           the mouse. 
  4428.  360┬░ scroll range        Makes the scroll range 360 . 
  4429.  Proportional ticks       Makes the ticks of the dial proportional. 
  4430.  No ticks                 Prevents ticks from appearing on the dial. 
  4431.  Circular value           Makes the indicator on the turning dial an indented 
  4432.                           dot instead of a tick mark. 
  4433.  
  4434.  
  4435. ΓòÉΓòÉΓòÉ 5.17.24. Graphic Button Styles ΓòÉΓòÉΓòÉ
  4436.  
  4437. Note:  The following control, Graphic Button, is available only with MultiMedia 
  4438.        PM/2 Version 1.1 (MMPM/2 Version 1.1) and above. You need the IBM OS/2 
  4439.        2.1 or Warp Toolkit along with the MMPM/2 Version 1.1 or Warp Toolkit to 
  4440.        use these in your final application. 
  4441.  
  4442.  The following options are available for the styles: 
  4443.  
  4444.  Option                   Description 
  4445.  2 state                  Gives graphic button two states, up and down. The 
  4446.                           button state must be controlled by the owner such 
  4447.                           that when the user presses the button, the owner of 
  4448.                           the button must send a message to the button to set 
  4449.                           the state as down if the button is to remain down. 
  4450.  Auto 2 state             Gives graphic button two states that toggle from up 
  4451.                           to down and down to up. The owner of the button is 
  4452.                           not required to send messages to the button to change 
  4453.                           the state when the button is selected by the user. 
  4454.  Animation                Triggers animation on the button face using a series 
  4455.                           of supplied bitmaps. The owner of the button must 
  4456.                           cause the animation to start and stop. 
  4457.  Auto animation           Starts and stops animation on the button face when 
  4458.                           the user selects the button. The animation is 
  4459.                           provided through a series of bitmaps supplied as IDs 
  4460.                           with the button. 
  4461.  Hilite bitmap            Displays a different bitmap when the graphic button 
  4462.                           is highlighted. 
  4463.  Disable bitmap           Displays a different bitmap when the graphic button 
  4464.                           is disabled. 
  4465.  3D recessed text         Displays the button text in a recessed area of the 
  4466.                           button. 
  4467.  3D raised text           Displays the button text in a raised area of the 
  4468.                           button. 
  4469.  
  4470.  
  4471. ΓòÉΓòÉΓòÉ 5.17.25. Handwriting Styles ΓòÉΓòÉΓòÉ
  4472.  
  4473. Note:  The following control, Handwriting, is available only with Pen for OS/2. 
  4474.        You need the Pen for OS/2 Toolkit to use these in your final 
  4475.        application. 
  4476.  
  4477.  The following options are available for the styles: 
  4478.  
  4479.  Option                   Description 
  4480.  Border                   Displays a border around the input area. 
  4481.  3D border                Displays a 3D border around the input area. 
  4482.  
  4483.  
  4484. ΓòÉΓòÉΓòÉ 5.17.26. Sketch Styles ΓòÉΓòÉΓòÉ
  4485.  
  4486. Note:  The following control, Sketch, is available only with Pen for OS/2. You 
  4487.        need the Pen for OS/2 Toolkit to use these in your final application. 
  4488.  
  4489.  The following options are available for the styles: 
  4490.  
  4491.  Option                   Description 
  4492.  Border                   Displays a border around the input area. 
  4493.  3D border                Displays a 3D border around the input area. 
  4494.  
  4495.  
  4496. ΓòÉΓòÉΓòÉ 5.17.27. PMCX/Temporary Control Selection ΓòÉΓòÉΓòÉ
  4497.  
  4498. The PMCX/Temporary Control Selection dialogue allows you to select from both 
  4499. temporary and PM Control Extension (PMCX) custom control dynamic-link libraries 
  4500. that have been defined through the PMCX/Temporary Control Definition dialogue. 
  4501.  
  4502. In the dialogue, select the control you wish to use by clicking on the control 
  4503. name in the list box. An example of the control is displayed in the Example 
  4504. group box, allowing you to ascertain that the correct control has been 
  4505. selected. 
  4506.  
  4507. When you click on the Select button to display, the mouse pointer changes its 
  4508. shape from an arrow to a cross hair. Alternately, you can double-click on the 
  4509. control name within the list box. 
  4510.  
  4511. Once you have selected the location where you want to place the control, press 
  4512. button 1 on the mouse to create the custom or temporary control. Depending on 
  4513. the type being created, either the dialogue for the custom control or the User 
  4514. Defined Temporary Control dialogue will be displayed, allowing  you to enter 
  4515. the classname of the control in the entry field labeled Classname. 
  4516.  
  4517. In the case of the custom control styles dialogue, enter the text via the style 
  4518. dialogue if one is provided. The ID symbol and value are entered via the ID 
  4519. field, which resembles that of a normal OS/2 Presentation Manager control. 
  4520. Initially, the ID field contains a value automatically generated by Prominare 
  4521. Designer. 
  4522.  
  4523. If the symbol and value you want to use are already defined in the include 
  4524. header file, you can select them from the drop-down list. 
  4525.  
  4526.  
  4527. ΓòÉΓòÉΓòÉ 5.17.28. User Defined Temporary Control ΓòÉΓòÉΓòÉ
  4528.  
  4529. In the case of the User Defined Temporary Control dialogue, enter the text for 
  4530. the control in the Text MLE. The ID symbol and value are entered via the ID 
  4531. field. Initially, the ID field contains a value automatically generated by 
  4532. Prominare Designer. 
  4533.  
  4534. If the symbol and value you want to use are already defined in the include 
  4535. header file, you can select them from the drop-down list. 
  4536.  
  4537.  
  4538. ΓòÉΓòÉΓòÉ 5.17.29. Child Window Styles ΓòÉΓòÉΓòÉ
  4539.  
  4540. Through the Child Window Styles dialogue, you can enter the title, ID symbol, 
  4541. and value for the child window, along with selecting the following styles: 
  4542.  
  4543.  Option                   Description 
  4544.  Title bar                Includes a title bar in the window. 
  4545.  System menu              Includes a system menu in the window. 
  4546.  Horz. scroll bar         Includes a horizontal scroll bar at the bottom of the 
  4547.                           window. 
  4548.  Vert. scroll bar         Includes a vertical scroll bar at the right of the 
  4549.                           window. 
  4550.  Visible                  Designates the window as initially visible. Even if 
  4551.                           this option is not selected, Prominare Designer will 
  4552.                           display the window to allow you to design it 
  4553.                           properly. 
  4554.  Size border              Includes a sizing border as the frame of the window. 
  4555.  Border                   Includes a simple border as the frame of the window. 
  4556.  Dialogue frame           Includes a dialogue frame as the frame of the window. 
  4557.  System modal             Makes the window system modal. A system modal window 
  4558.                           or dialogue, when used, does not allow the focus to 
  4559.                           be directed to other windows that may be active. This 
  4560.                           option should be used only when you need the user's 
  4561.                           attention for a critical process. It should be used 
  4562.                           sparingly. 
  4563.  Min box                  Includes a minimize box in the window. 
  4564.  Max box                  Includes a maximize box in the window. 
  4565.  Auto icon                Prevents the WM_PAINT message from being sent to the 
  4566.                           window when it is minimized. It is generally used to 
  4567.                           increase performance. 
  4568.  
  4569.  The dialogue also contains entry fields that allow you to define the child 
  4570.  window you are creating. The MLE, Title, is used for the title bar text. Enter 
  4571.  the text of the title bar in this entry field, giving the window a title when 
  4572.  it is displayed to the user. 
  4573.  
  4574.  The second field, ID, is used for the ID symbol of the window. In it, enter 
  4575.  the ID symbol and value between 1 and 65,535. If the values you enter are not 
  4576.  defined in the include header file, they will be automatically added. 
  4577.  
  4578.  Initially, the ID field contains a number. Each window must contain an ID 
  4579.  value. 
  4580.  
  4581.  Generally, providing a symbolic value lets you easily reference the window 
  4582.  within the source code. It usually provides a simple description of the topic 
  4583.  of the window. For example, ID_CHILDWINDOW describes the symbolic value for 
  4584.  the child window. If the symbol and value you want to use are already defined 
  4585.  in the include header file, you can select them from the drop-down list. 
  4586.  
  4587.  The next entry field, Function, is used to define the function name for the 
  4588.  window. It is used in conjunction with the Filename combination box, where the 
  4589.  function is located. If you are using Prominare Designer to generate and 
  4590.  update the source modules according to the windows and dialogues within the 
  4591.  design file, you must complete the two entry fields. The Filename combination 
  4592.  box contains a list of source modules you have defined, which you can select 
  4593.  to place the code generated for the window within. 
  4594.  
  4595.  To create another window or dialogue during the initialization of the child 
  4596.  window, enter or select the symbolic ID or value in the Associated combination 
  4597.  box. You can also select the invocation method for the window or dialogue by 
  4598.  selecting the method from the Method combination box. Valid methods are: 
  4599.  
  4600.  Method                   Comments 
  4601.  None                     Indicates that the window creation will be placed 
  4602.                           within the source code at a later point and that 
  4603.                           Prominare Designer should not provide the code to 
  4604.                           create the window. 
  4605.  main()                   Designates that the window being created is to be 
  4606.                           created within the main() function. 
  4607.  WM_CREATE                Designates that a window is to be created within the 
  4608.                           WM_CREATE of another window, which is selected 
  4609.                           through the Associated drop down list that contains 
  4610.                           the IDs. This is done only when the window in the 
  4611.                           Associated list is first created. If you select this 
  4612.                           option after the associated window has been created, 
  4613.                           the creation code will not be placed in the WM_CREATE 
  4614.                           due to Prominare Designer's code generation rules. 
  4615.  
  4616.  
  4617. ΓòÉΓòÉΓòÉ 5.18. Formatting controls ΓòÉΓòÉΓòÉ
  4618.  
  4619.  
  4620. ΓòÉΓòÉΓòÉ 5.18.1. Align Controls ΓòÉΓòÉΓòÉ
  4621.  
  4622. To align controls within a window or dialogue, adjust the spacing between them, 
  4623. or make them the same size, use the Align controls button in the tool bar once 
  4624. you have selected the group of controls in the dialogue or window. 
  4625.  
  4626. The Align Controls dialogue is divided into four Tabs: Alignment, Spacing, 
  4627. Size, and Push buttons. Each page contains images representing the type of 
  4628. alignment that can be applied to the selected controls. 
  4629.  
  4630. The first tab, Alignment, contains two sets of alignment options. The top row 
  4631. is used to align the controls with a vertical reference line formed by the left 
  4632. edge of the controls, the centre points of the controls, or the right edge. 
  4633. Select the type of alignment you wish, and Prominare Designer will 
  4634. automatically align the controls. 
  4635.  
  4636. The bottom row is used to align the controls with a horizontal reference line 
  4637. formed by the top edge, centre points, or right edge of the controls. 
  4638.  
  4639. The Spacing tab allows you to space the selected controls using the spacing 
  4640. values defined through the Prominare Designer Default Usage dialogue. 
  4641.  
  4642. The Size tab allows two type of sizing operations for the selected controls. 
  4643. The first lets you autosize controls that have text as a major component 
  4644. including check boxes, radio buttons, and static text. The control will be 
  4645. sized exactly for the text and button contained.  Selecting the Use display 
  4646. limits target option, the target display metrics will be used. 
  4647.  
  4648. The second sizing method uses the highlighted control as the basis of the 
  4649. sizing. The first control in the group of controls selected is highlighted 
  4650. automatically when you first create the group. To change the highlighted 
  4651. control, simply click button 2 with the Alt key pressed when the mouse pointer 
  4652. is over a control within the group. 
  4653.  
  4654. The Push buttons tab aligns the push buttons within the group of controls 
  4655. selected either at the bottom of the dialogue or along the right edge, using 
  4656. the spacing values defined in the Prominare Designer Default Usage dialogue. 
  4657.  
  4658. The last tab, Shift, allows you to shift the group of controls to the location 
  4659. selected. Depending on the shift type selected, the group of controls will be 
  4660. shifted such that they start from the edge or corner selected. This is a fast 
  4661. way of shifting controls to a specific starting point within a window or 
  4662. dialogue. The margins you have previously defined through the Prominare 
  4663. Designer Default Usage dialogue will be used. 
  4664.  
  4665.  
  4666. ΓòÉΓòÉΓòÉ 5.18.2. Arrange Controls ΓòÉΓòÉΓòÉ
  4667.  
  4668. Controls are presented within a dialogue or window in the order that you create 
  4669. them. OS/2 Presentation Manager records this order internally so it can perform 
  4670. enumeration and indexing functions. However, instead of querying the check 
  4671. state of each radio button, you can ask OS/2 Presentation Manager to return the 
  4672. check index. To do this properly, you need to arrange the controls and set up 
  4673. groups. 
  4674.  
  4675. The Arrange Controls dialogue shows all the controls defined in the window or 
  4676. dialogue within a list box. The list box is divided into three columns: Control 
  4677. Text, IDs, and Control Type. Each control is shown with its text, ID, and 
  4678. control type. If the entry is preceded by an , this indicates that the control 
  4679. can be selected using the TAB key. If the line contains the word Group Marker, 
  4680. the control below it is the beginning of a group. 
  4681.  
  4682. By selecting an entry within the list box, you can perform various tasks. When 
  4683. you select an entry, it is displayed above the list box, allowing you to view 
  4684. the item you have selected. This is especially useful if the list box contains 
  4685. many items and you want to move an entry from the bottom of the list to the 
  4686. top. 
  4687.  
  4688. Once you have selected the desired item in the list box, you will notice that 
  4689. as you move the mouse pointer within the list box, its shape changes from the 
  4690. normal arrow to a bar. When the mouse pointer is in the lower half of an entry, 
  4691. it appears as an arrow to allow you to select that particular item. Conversely, 
  4692. when it is in the upper half of an entry, its bar shape indicates that you can 
  4693. move the selected entry to this position. 
  4694.  
  4695. It is also possible to select groups of controls with the Shift/Ctrl/button 1 
  4696. list box selection interface. The controls are moved to a new location in order 
  4697. of appearance even if you are skipping controls. 
  4698.  
  4699. If the entry selected contains the artwork name='\designer\images\tabable.bmp' 
  4700. runin. preface, a push button labeled Delete tab appears at the bottom right of 
  4701. the dialogue. Selecting this button removes the TAB indicator from the control. 
  4702. Conversely, if the control is not preceded by an asterisk, a push button, 
  4703. labeled Tab, allows you to put a TAB indicator on the control. 
  4704.  
  4705. Selecting a Group Marker entry in the list box allows you to delete the group 
  4706. marker by selecting the Delete group push button in the lower right corner of 
  4707. the dialogue. To add a group marker in front of a control, select the control 
  4708. where you want to place the group marker and press the Group marker button. 
  4709.  
  4710.  
  4711. ΓòÉΓòÉΓòÉ 5.19. Formatting controls ΓòÉΓòÉΓòÉ
  4712.  
  4713.  
  4714. ΓòÉΓòÉΓòÉ 5.19.1. Font and Colours ΓòÉΓòÉΓòÉ
  4715.  
  4716. Many of the control styles dialogues allow you to set font and display colours 
  4717. when you select the Font & Colours tab in the invoking dialogue or select the 
  4718. Font & Colours tool bar button. This dialogue is divided into four areas: 
  4719. Dialogues/Menus tabs, Index colours/RGB colours tabs, Fonts, and Font example. 
  4720. The display area tab allows you to set colours for the control or menu. The 
  4721. available options for controls are: 
  4722.  
  4723.  Option                   Description 
  4724.  Foreground               Used to set the foreground colour of the control. 
  4725.  Background               Used to set the background colour of the control. 
  4726.  Hilight foreground       Used to set the highlight foreground colour of the 
  4727.                           control. 
  4728.  Hilight background       Used to set the highlight background colour of the 
  4729.                           control. 
  4730.  Disabled foreground      Used to set the disabled foreground colour of the 
  4731.                           control. 
  4732.  Disabled background      Used to set the disabled background colour of the 
  4733.                           control. 
  4734.  Border                   Used to set the border colour of the control. 
  4735.  Active colour            Used to set the active colour of the control. 
  4736.  Inactive colour          Used to set the inactive colour of the control. 
  4737.  Active text foreground   Used to set the active text foreground colour of the 
  4738.                           control. 
  4739.  Active text background   Used to set the active text background colour of the 
  4740.                           control. 
  4741.  Inactive text foreground Used to set the inactive text background colour of 
  4742.                           the control. 
  4743.  Inactive text foreground Used to set the inactive text background colour of 
  4744.                           the control. 
  4745.  Shadow                   Used to set the shadow colour of the control. 
  4746.  Shadow text              Used to set the shadow colour of the text of a 
  4747.                           container control. 
  4748.  Shadow hilight           Used to set the foreground shadow highlight colour of 
  4749.                           a container control. foreground 
  4750.  Shadow hilight           Used to set the background shadow highlight colour of 
  4751.                           a container control. background 
  4752.  Icon text background     Used to set the icon text background colour of the 
  4753.                           control. 
  4754.  
  4755.  To the right of each check box option is a button showing the current colour 
  4756.  selection. Click the appropriate button in the Dialogues/Menus tab. The Index 
  4757.  colours tab contains boxes with each of the are index mode colours you can 
  4758.  use. Alternately, you can select the RGB colours tab, which contains a RGB 
  4759.  colour selector. Select the colour from the RGB colour circle or by entering 
  4760.  the RGB values in the spin button areas. When you click on one of the colour 
  4761.  buttons, the button colour in the display area you had previously selected 
  4762.  change its colour to that selected. 
  4763.  
  4764.  When setting font and colours for menus, the available options are: 
  4765.  
  4766.  Option                   Description 
  4767.  Foreground               Used to set the foreground colour of the menu. 
  4768.  Background               Used to set the background colour of the menu. 
  4769.  Hilight foreground       Used to set the highlight foreground colour of the 
  4770.                           menu. 
  4771.  Hilight background       Used to set the highlight background colour of the 
  4772.                           menu. 
  4773.  Disabled foreground      Used to set the disabled foreground colour of the 
  4774.                           menu. 
  4775.  Disabled background      Used to set the disabled background colour of the 
  4776.                           menu. 
  4777.  
  4778.  Instead of a font sample, a sample menu is displayed. 
  4779.  
  4780.  When you want to change the font or font size of a control, use the Fonts 
  4781.  area. When you select a font different from that in the Font example area, the 
  4782.  new font is displayed. Change the font size in the Sizes list box. 
  4783.  
  4784.  Once you have selected the desired colour and font, click on the Set button to 
  4785.  cause the selections to be applied to the control or controls selected. 
  4786.  
  4787.  
  4788. ΓòÉΓòÉΓòÉ 5.19.2. Fonts ΓòÉΓòÉΓòÉ
  4789.  
  4790. The Fonts dialogue is invoked when you select the Fonts tool bar button. Use 
  4791. the Fonts area to select the desired font and size. When you select a font 
  4792. different from that shown in the Font example area, the new font is displayed. 
  4793. Change the font size in the Sizes list box. 
  4794.  
  4795. Once you have selected the font for the control, click on the Set push button. 
  4796.  
  4797.  
  4798. ΓòÉΓòÉΓòÉ 5.19.3. Pen Options ΓòÉΓòÉΓòÉ
  4799.  
  4800. The Pen Options dialogue allows you to set the Pen for OS/2 Version 1.03 
  4801. handwriting options for various input controls. Depending on the version of 
  4802. OS/2 you are using, you may be able to define pen options for the combo box, 
  4803. entry field, multiple-line entry field, and spin button. You can also define 
  4804. options for the handwriting control. 
  4805.  
  4806. The dialogue contains a set of five Tabs: Layouts/resources, Options, Inks, 
  4807. Symbol sets, and Include/Exclude. Depending on the type of control for which 
  4808. you are setting the pen options, you may be able to select only certain 
  4809. options. Options that do not apply to the particular control you are editing 
  4810. are disabled. 
  4811.  
  4812. The first tab, Layouts/resources, allows you to specify the name of the DLL in 
  4813. which the pointer resources can reside. If you have placed these resources 
  4814. within the executable, you can leave the name empty. To provide a background 
  4815. bitmap, proximity, or writing pointer, select ID from the ID symbol drop-down 
  4816. boxes. 
  4817.  
  4818. Specify the size of the box handwriting control by entering the width and 
  4819. height in the entry fields of the Box layout group. You can also specify the 
  4820. colour. For all other controls, you can specify line width and spacing in the 
  4821. Line layout group. Selecting the Default check box selects the default layout 
  4822. sizes for box width and height and line width. 
  4823.  
  4824. The second tab, Options, is used to define various usage options. These 
  4825. include: 
  4826.  
  4827.  Option                   Description 
  4828.  Exit proximity           Causes recognition to start when proximity is exited. 
  4829.  Liftoff                  Causes recognition to start when liftoff of pen 
  4830.                           occurs. 
  4831.  Timeout                  Causes recognition to start when timeout occurs. 
  4832.  Focus lost               Causes recognition to start when focus is lost. 
  4833.  Word case                Advises recognition on all upper case, all lower 
  4834.                           case, or the first letter capitalized. 
  4835.  Sentence case            Advises recognition on proper sentence 
  4836.                           capitalization. 
  4837.  Alphanumeric             Advises recognition on grouping alphabetic characters 
  4838.                           and digits separately. 
  4839.  Punctuation              Advises recognition to have punctuation at the 
  4840.                           beginning and end words. 
  4841.  Boxed                    Creates a handwriting control recognition form. This 
  4842.                           option is only available with the handwriting 
  4843.                           control. 
  4844.  Lined                    Creates a lined mode handwriting window. This is 
  4845.                           unavailable with the handwriting control. 
  4846.  Unlined                  Creates an unlined mode handwriting window. This is 
  4847.                           unavailable with the handwriting control. 
  4848.  None                     Disables language modeling. 
  4849.  Advise                   Advises the recognition engine to use the value as a 
  4850.                           hint. The actual result is not coerced into matching 
  4851.                           the word list or dictionary. 
  4852.  Force                    Forces the recognition to match from the word list or 
  4853.                           dictionary. 
  4854.  Reject                   Ignores the recognition if there is no match. 
  4855.  Case force               Forces the recognition after applying case 
  4856.                           sensitivity. 
  4857.  Full                     Indicates that a full symbol set should be used. 
  4858.  Lowercase                Indicates that a lower case symbol set should be 
  4859.                           used. This includes characters a - z. 
  4860.  Uppercase                Indicates that an upper case symbol set should be 
  4861.                           used. This includes characters A - Z. 
  4862.  Digit                    Indicates that a digit set should be used. This 
  4863.                           includes characters 0 - 9. 
  4864.  Punctuation              Indicates that a punctuation set should be used. This 
  4865.                           includes characters ! " & ' ( ) , - . ; ? \ : space. 
  4866.  Special                  Indicates that a special set should be used. This 
  4867.                           includes characters & < > @ [ \ ] ^ { } ~ #. 
  4868.  
  4869.  The third tab, Inks, is used to define inking options. These include: 
  4870.  
  4871.  Option                   Description 
  4872.  System                   Causes system inking to be used. When this is 
  4873.                           selected, all other options (Width, Colour, Line 
  4874.                           type, and Mix) are not selectable. 
  4875.  Window                   Causes window inking to be used. When this is 
  4876.                           selected, all other options (Width, Colour, Line 
  4877.                           type, and Mix) are selectable. 
  4878.  Default                  Sets the line width at default thickness. 
  4879.  Normal                   Sets the line width at normal thickness. 
  4880.  Thick                    Sets the line width at thick. 
  4881.  Default                  Chooses default mix mode (the same as overpaint). 
  4882.  Or                       Chooses logical OR mix mode. 
  4883.  Overpaint                Chooses overpaint mix mode. 
  4884.  Leave alone              Chooses leave-alone (invisible) mix mode. 
  4885.  Xor                      Chooses logical XOR mix mode. 
  4886.  And                      Chooses logical AND mix mode. 
  4887.  Subtract                 Uses the inverse of the source that is AND'ed with 
  4888.                           destination mix mode. 
  4889.  Mask src not             Uses the source that is AND'ed with inversed 
  4890.                           destination mix mode. 
  4891.  Zero                     Uses the all zeros mix mode. 
  4892.  Not merge src            Uses the inverse of the source that has been OR'ed 
  4893.                           with destination mix mode. 
  4894.  Not xor src              Uses the inverse of the source that has been XOR'ed 
  4895.                           with destination mix mode. 
  4896.  Invert                   Uses the inverse destination mix mode. 
  4897.  Merge src not            Uses the source OR'ed with inverted destination mix 
  4898.                           mode. 
  4899.  Not copy src             Uses the inverse of the source mix mode. 
  4900.  Merge not src            Uses the inverse of the source, which is then OR'ed 
  4901.                           with the destination mix mode. 
  4902.  Not mask src             Uses the inverse of the source that has been AND'ed 
  4903.                           with the destination mix mode. 
  4904.  One                      Uses all ones mix mode. 
  4905.  
  4906.  Select the colour of the ink through the Colour group and the line type 
  4907.  through the Line type group. 
  4908.  
  4909.  The forth tab, Symbol sets, is used to define symbol sets to be used during 
  4910.  pen input. The upper set (the gesture set) consists of gestures and letter dot 
  4911.  gestures. The lower set consists of the valid ASCII characters. 
  4912.  
  4913.  The last tab, Include/Exclude regions, is used to define the include and 
  4914.  exclude regions for pen input. The include region is defined through four 
  4915.  entry fields: The starting left and bottom edges through the entry fields 
  4916.  labeled x and y, the width of the region through the field labeled Width, and 
  4917.  the height of the region through the field labeled Height. 
  4918.  
  4919.  If you leave these entry fields blank, Pen for OS/2 Version 1.03 will use the 
  4920.  entire screen area as the include region. 
  4921.  
  4922.  The exclude regions are defined for the controls that allow selection in pen 
  4923.  input mode. The list box below the Include region group contains a list of 
  4924.  controls that are deemed possible for the user. Generally, the user can select 
  4925.  these controls with either the mouse or the pen. 
  4926.  
  4927.  Items selected within the list are excluded from the input region; in pen 
  4928.  writing mode, for example, if you move the pen from its current location to a 
  4929.  control, the input focus is shifted to that control. 
  4930.  
  4931.  The list box allows for multiple selection of items. You can use the extended 
  4932.  selection mechanism for list boxes to select groups of items. 
  4933.  
  4934.  
  4935. ΓòÉΓòÉΓòÉ 5.19.4. Bidirectional Support ΓòÉΓòÉΓòÉ
  4936.  
  4937. The Bidirectional Support dialogue allows you to select the bidirectional 
  4938. support options for a window or control. 
  4939.  
  4940. The dialogue allows you to set window orientation, text type, text orientation, 
  4941. symmetric swapping, word break, numerals, and character shape. You can set the 
  4942. following options: 
  4943.  
  4944.  Option                   Description 
  4945.  Left to right            Sets the window orientation so the left to right 
  4946.                           objects have the lower left corner of the window as 
  4947.                           their point of origin. 
  4948.  Right to left            Sets the window orientation so the right to left 
  4949.                           objects have the lower right corner of the window as 
  4950.                           their point of origin. 
  4951.  Visual                   Sets the text type so the text is not processed for 
  4952.                           sub-segments but is displayed as defined via the text 
  4953.                           orientation option. 
  4954.  Implicit                 Sets the text type so the text is processed for 
  4955.                           sub-segments. 
  4956.  Left to right            Sets the text orientation as left to right. 
  4957.  Right to left            Sets the text orientation as right to left. 
  4958.  Contextual               Sets the text orientation as contextual where the 
  4959.                           text is oriented based on strong characters. 
  4960.  Off                      Sets symmetric swapping of parentheses, brackets, 
  4961.                           braces, etc. to off. 
  4962.  On                       Sets symmetric swapping of parentheses, brackets, 
  4963.                           braces, etc. to on. 
  4964.  Off                      Sets word break scanning to off. 
  4965.  On                       Sets word break scanning to on. 
  4966.  Nominal                  Displays numerals in nominal (i.e. Arabic) form. 
  4967.  Pass through             Displays numerals as stored. 
  4968.  National                 Displays numerals using national (i.e. Hindi) form. 
  4969.  Contextual               Displays numerals according to surrounding text. 
  4970.  Display shaped           Defines character shape determination to imply that 
  4971.                           the text is stored in nominal/base shapes and should 
  4972.                           be automatically shaped upon display. 
  4973.  Nominal                  Defines character shape determination as stored in 
  4974.                           its nominal (base) shapes. 
  4975.  Middle                   Defines character shape determination as the text 
  4976.                           already shaped and ready for display. 
  4977.  Isolated                 Defines character shape determination as the text 
  4978.                           already shaped and ready for display. 
  4979.  Save shaped              Defines character shape determination as the text 
  4980.                           already shaped and ready for display. 
  4981.  Initial                  Defines character shape determination as the text 
  4982.                           already shaped and ready for display. 
  4983.  Final                    Defines character shape determination as the text 
  4984.                           already shaped and ready for display. 
  4985.  
  4986.  
  4987. ΓòÉΓòÉΓòÉ 5.20. Pasting, deleting and replacing controls ΓòÉΓòÉΓòÉ
  4988.  
  4989.  
  4990. ΓòÉΓòÉΓòÉ 5.20.1. Paste Open ΓòÉΓòÉΓòÉ
  4991.  
  4992. To add selected components of another design, use the Paste from file... 
  4993. function in the Edit menu. This displays a series of dialogues. The first, 
  4994. Paste Open, allows you to select files from the current directory or to select 
  4995. another drive/directory. You can select only design files (.PDF) from within 
  4996. this dialogue. 
  4997.  
  4998. The dialogue displays the current path. Enter the name of the file from which 
  4999. you wish to paste in the Filename entry field. Alternately, double click on the 
  5000. file in the Files list box to open the required file. 
  5001.  
  5002. Once you select a file, you are presented with the Paste From File dialogue. 
  5003. The dialogue contains four tabs, listing the various components of the selected 
  5004. file. 
  5005.  
  5006. The first tab, Dialogues/Windows, contains the dialogue and windows from the 
  5007. design. You can select multiple items to be pasted into your design. This 
  5008. available on all tabs in the Paste From File dialogue. 
  5009.  
  5010. Once you have selected the items to paste, click on the Paste button. The items 
  5011. selected are pasted into the current design; any conflicting IDs from the items 
  5012. being pasted are made unique. 
  5013.  
  5014.  
  5015. ΓòÉΓòÉΓòÉ 5.20.2. Delete ΓòÉΓòÉΓòÉ
  5016.  
  5017. To delete a control or set of controls, select Control... in the Edit Delete 
  5018. menu. The Delete Control dialogue appears, showing all the controls within a 
  5019. list box. 
  5020.  
  5021. Select the controls you wish to delete by clicking on each item in the list 
  5022. box. To select all the controls in the list box, click the All button. To 
  5023. deselect a selected control, click on it again. To delete the selected 
  5024. controls, click Delete. As soon as the dialogue disappears, the window or 
  5025. dialogue is updated, showing that the selected controls have been removed. 
  5026.  
  5027.  
  5028. ΓòÉΓòÉΓòÉ 5.20.3. Replace Controls ΓòÉΓòÉΓòÉ
  5029.  
  5030. To replace controls in a window or dialogue, use the Replace controls button. 
  5031. Once you have selected the controls to replace, select the Replace controls 
  5032. button again to display the Replace Controls dialogue. 
  5033.  
  5034. In this dialogue is a list box containing a list of control types with which 
  5035. you can replace the selected controls. If the original control has any 
  5036. specialized data such as entry field size, it is not transferred to the new 
  5037. control type. 
  5038.  
  5039. If you select the user-defined control type in the list box, the PMCX/Temporary 
  5040. Control Selection dialogue is displayed, allowing you to select the custom 
  5041. control to be used as the replacement type. 
  5042.  
  5043.  
  5044. ΓòÉΓòÉΓòÉ 5.21. Creating and editing menus ΓòÉΓòÉΓòÉ
  5045.  
  5046.  
  5047. ΓòÉΓòÉΓòÉ 5.21.1. Standard Menus ΓòÉΓòÉΓòÉ
  5048.  
  5049. Prominare Designer can help you design the menus for the window you are 
  5050. creating. Start editing the menus by either clicking on the Menu tool button or 
  5051. selecting Menu in the Control menu. Prominare Designer will first check to see 
  5052. if any menu items have been defined for the window. If none are found, you will 
  5053. be informed that no menus exist. It will then ask if you want to select menus 
  5054. from a standard menu list. Clicking on the Yes button displays the Standard 
  5055. Menus dialogue; clicking No displays the Menu Styles dialogue. 
  5056.  
  5057. The Standard Menus dialogue consists of eight tabs. Each tab represents an 
  5058. action bar menu item; all are taken from the CUA '91 Guidelines. In all cases, 
  5059. you must first select the check box on the page that denotes the action bar 
  5060. item before you can select a menu item to be used in the menu. Click on the All 
  5061. button to select all action bar and menu items. 
  5062.  
  5063. The first tab, System menu, deals with a child system menu within the action 
  5064. bar. Generally, this item is found in multiple document-style applications. It 
  5065. contains the following: 
  5066.  
  5067.  Check box                Usage 
  5068.  Restore                  Restore menu item. 
  5069.  Move                     Move menu item. 
  5070.  Size                     Size menu item. 
  5071.  Minimize                 Minimize menu item. 
  5072.  Maximize                 Maximize menu item. 
  5073.  Separator                Separator. 
  5074.  Close                    Close menu item. 
  5075.  
  5076.  The second tab, File, deals with a File menu within the action bar. Generally, 
  5077.  this is the first menu item in most applications. It contains the following: 
  5078.  
  5079.  Check box                Usage 
  5080.  New                      New menu item. 
  5081.  Open...                  Open menu item. 
  5082.  Separator                Separator menu item. 
  5083.  Save                     Save menu item. 
  5084.  Save as...               Save as menu item. 
  5085.  Separator                Separator menu item. 
  5086.  Print                    Print menu item. 
  5087.  
  5088.  The next tab, Selected, deals with a Selected menu in the action bar. It 
  5089.  contains the following: 
  5090.  
  5091.  Check box                Usage 
  5092.  Open as                  Open as menu item. 
  5093.  Print                    Print menu item. 
  5094.  
  5095.  The next tab, Edit, deals with a Edit menu in the action bar. It contains the 
  5096.  following: 
  5097.  
  5098.  Check box                Usage 
  5099.  Undo                     Undo menu item. 
  5100.  Redo                     Redo menu item. 
  5101.  Separator                Separator menu item. 
  5102.  Cut                      Cut menu item. 
  5103.  Copy                     Copy menu item. 
  5104.  Create                   Create menu item. 
  5105.  Paste                    Paste menu Item. 
  5106.  Separator                Separator menu item. 
  5107.  Clear                    Clear menu item. 
  5108.  Delete                   Delete menu item. 
  5109.  Separator                Separator menu item. 
  5110.  Find                     Find menu item. 
  5111.  Select all               Select all menu item. 
  5112.  Deselect all             Deselect all menu item. 
  5113.  
  5114.  The View tab deals with a View menu in the action bar. It contains the 
  5115.  following: 
  5116.  
  5117.  Check box                Usage 
  5118.  View names               View names menu item. 
  5119.  Sort                     Sort menu item. 
  5120.  Include                  Include menu item. 
  5121.  Separator                Separator menu item. 
  5122.  Refresh                  Refresh menu item. 
  5123.  Refresh now              Refresh now menu item. 
  5124.  
  5125.  The Options tab deals with a Options menu in the action bar. It contains the 
  5126.  following: 
  5127.  
  5128.  Check box                Usage 
  5129.  Short menus              Short menus menu item. 
  5130.  Full menus               Full menus menu item. 
  5131.  
  5132.  The second to last tab, Windows, deals with a Windows menu in the action bar. 
  5133.  Generally, this is the second to last menu item in most applications. It 
  5134.  contains the following: 
  5135.  
  5136.  Check box                Usage 
  5137.  Window list              Window list menu item. 
  5138.  
  5139.  The last tab, Help, deals with a Help menu in the action bar. Generally, this 
  5140.  item is the last menu item in most applications. It contains the following: 
  5141.  
  5142.  Check box                Usage 
  5143.  Help Index               Help index menu item. 
  5144.  General help             General help menu item. 
  5145.  Using help               Using help menu item. 
  5146.  Keys help                Keys help menu item. 
  5147.  Tutorial                 Tutorial menu item. 
  5148.  Separator                Separator menu item. 
  5149.  Product information      Product information... menu item. 
  5150.  
  5151.  
  5152. ΓòÉΓòÉΓòÉ 5.21.2. Menu Styles ΓòÉΓòÉΓòÉ
  5153.  
  5154. The Menu Styles dialogue allows you to define, delete, or change the text of 
  5155. the action bar and sub-menu items and their symbols, values, and styles. The 
  5156. dialogue displays all defined action bar and sub-menu items in a list box. 
  5157. Action bar items are displayed in dark red. Cascading sub-menus are displayed 
  5158. in green. To edit an item, first select it in the list box. The values of the 
  5159. item selected are placed in the entry fields of the dialogue and the styles of 
  5160. the action bar item are set in the Menu styles area. 
  5161.  
  5162.  Option                   Description 
  5163.  Action bar               Designates the item selected or entered as an action 
  5164.                           bar item. 
  5165.  Sub-menu item            Designates the item selected or entered as a sub-menu 
  5166.                           item. 
  5167.  Text                     Designates the menu item as text. 
  5168.  Bitmap                   Designates the menu item as a bitmap. When this 
  5169.                           option is used, the application must provide the 
  5170.                           necessary logic to draw the bitmap inside the menu 
  5171.                           when requested. The application is sent two messages: 
  5172.                           WM_MEASUREITEM and WM_DRAWITEM. 
  5173.  Child system menu        Designates the action bar menu item as a child system 
  5174.                           menu. 
  5175.  Help                     Denotes that the sub-menu item should generate a 
  5176.                           WM_HELP message when selected by the user. 
  5177.  Separator                Draws a separator between one menu item and the next. 
  5178.  Break                    Inserts a break between one menu item and the next. 
  5179.                           The action bar menu items that follow this item are 
  5180.                           drawn on a separate line within the action bar menu 
  5181.                           area. The sub-menu items that follow this item are 
  5182.                           drawn in a separate column within the sub-menu area. 
  5183.  Break/Separator          Inserts a break between one action bar menu item and 
  5184.                           the next, and draws a separator between the two 
  5185.                           action bar menu lines. Inserts a break between one 
  5186.                           sub-menu item and the next, and draws a separator 
  5187.                           between the two sub-menu columns. 
  5188.  Button separator         Right justifies the action bar menu item along the 
  5189.                           action bar and includes a separator in front of the 
  5190.                           action bar menu item text. 
  5191.  SYSCOMMAND               Indicates that the menu item should generate a 
  5192.                           WM_SYSCOMMAND message when selected by the user. 
  5193.  Sub-menu                 Designates the sub-menu item as a sub-menu item 
  5194.                           containing a cascaded sub- menu. 
  5195.  Owner draw               Designates the sub-menu item as a sub-menu item drawn 
  5196.                           using code defined within the owner window instead of 
  5197.                           system-provided drawing. 
  5198.  Checked                  Indicates that the sub-menu item should be displayed 
  5199.                           initially with a check mark in front of the menu 
  5200.                           text. 
  5201.  Disabled                 Indicates that the sub-menu item should be displayed 
  5202.                           initially disabled. 
  5203.  Framed                   Indicates that the sub-menu item should be displayed 
  5204.                           with a frame. 
  5205.  Highlighted              Indicates that the sub-menu item should be displayed 
  5206.                           highlighted. 
  5207.  No dismiss               Causes sub-menu or menu item to remain displayed 
  5208.                           after the user chooses an item. 
  5209.  
  5210.  You can edit any of the entry fields within the dialogue. The first field, 
  5211.  labeled Text, is used for the text of the actual menu item. Enter the mnemonic 
  5212.  of the menu item by placing a tilde (~) before the character of the mnemonic. 
  5213.  
  5214.  To associate the menu item with an accelerator, use the menu tab separator 
  5215.  (\t) to separate the menu text from the accelerator text, for example: 
  5216.  
  5217.   E~xit\tF3
  5218.  
  5219.  When you do use an accelerator designation within the menu item, Prominare 
  5220.  Designer automatically places the accelerator designation in the accelerator 
  5221.  table if you have specified the use of accelerators in the Window/Dialogue 
  5222.  Styles dialogue. A few rules must be followed for this to happen properly. 
  5223.  
  5224.  For accelerators that are part of a key combination, such as the control key 
  5225.  and F1, you must use the proper short form for the key. The following are the 
  5226.  valid forms: 
  5227.  
  5228.  Key            Short form 
  5229.  Alternate      Alt or ALT 
  5230.  Control        Ctrl or CTRL 
  5231.  Shift          Shift or SHIFT 
  5232.  
  5233.  Key combinations must be separated either by a plus sign (+) or a minus sign 
  5234.  (-). If these conventions are not followed, the accelerator key definition 
  5235.  will not be added and you will have to manually add it through the 
  5236.  Accelerator... menu item in the Resource menu. 
  5237.  
  5238.  Prominare Designer correctly interprets the tab separator designation (\t) 
  5239.  when constructing the menu item in the window. 
  5240.  
  5241.  You can edit the symbolic ID and value for the item. If the symbol and value 
  5242.  you want to use are already defined in the include header file, you can select 
  5243.  the value from the drop-down list. Click on the button beside the ID field to 
  5244.  place a unique value in the field. To add a menu item, complete the entry 
  5245.  fields, select the appropriate styles, and click on the Add button. The item 
  5246.  is then be added to the bottom of the selected parent entries in the list box. 
  5247.  
  5248.  To change an item, select the item in the list box. The values for that item 
  5249.  are then placed in the entry fields of the dialogue and the styles reflected 
  5250.  in the Menu styles area. You can then change the values in the entry fields or 
  5251.  select different styles. After this, select the Change push button to record 
  5252.  the changes. Delete items from the list by selecting the item in the list box 
  5253.  and clicking on the Delete button. 
  5254.  
  5255.  To associate the menu item with a dialogue, enter or select the dialogue 
  5256.  symbolic ID or value in the Dialogue combination box. This is only useful when 
  5257.  prototyping. When you change into test mode using the Test design button, menu 
  5258.  items selected will look for this association and display the associated 
  5259.  dialogue. This allows you to test the look and feel of the application. 
  5260.  
  5261.  It is possible to set the font and colours of action bar and cascading 
  5262.  sub-menus. Once you have selected either the action bar type or the sub-menu 
  5263.  style, you can click on the Font & colours... push button, displaying the Font 
  5264.  & Colours dialogue. You can then set the colour and font for the selected menu 
  5265.  item. 
  5266.  
  5267.  
  5268. ΓòÉΓòÉΓòÉ 5.21.3. Arrange Menus ΓòÉΓòÉΓòÉ
  5269.  
  5270. As you add menu items to a window, you may notice that each item is placed at 
  5271. the end of a menu. At some point, you may want to change the position of menu 
  5272. items within a menu. The Arrange Menus dialogue, which allows you to do this, 
  5273. operates much like the Arrange Controls dialogue. 
  5274.  
  5275. The Arrange Menus dialogue displays all action bar menus and sub-menus defined 
  5276. within the window in a list box. The list box is divided into three columns: 
  5277. Menu Text, IDs, and Menu Type. Each menu is shown with its text, ID, and menu 
  5278. type. If the entry is preceded by an minus (-), the menu is a cascaded 
  5279. sub-menu. If it is preceded by a asterisk (*), it is an action bar menu item. 
  5280. If it is preceded by a plus it is a cascading sub-menu item. 
  5281.  
  5282. Once you select an entry in the list box, you can move it to the proper 
  5283. location. Selected entries are displayed above the list box, allowing you to 
  5284. view them. This is useful if the list box contains many items and you want to 
  5285. move an entry from, say, the bottom of the list to the top. 
  5286.  
  5287. Note that after you have selected an item, as you move the mouse pointer in the 
  5288. list box its shape changes from the normal arrow to a bar. When the mouse 
  5289. pointer is in the lower half of an entry, its arrow shape allows you to select 
  5290. an item. In the upper half of an entry, its bar shape indicates that you can 
  5291. move the selected entry to its position. 
  5292.  
  5293. It is also possible to select groups of menu items using the Shift/Ctrl/button 
  5294. 1 list box selection interface. Menu items moved to the new location are moved 
  5295. in order of appearance even if you are skipping some items. 
  5296.  
  5297.  
  5298. ΓòÉΓòÉΓòÉ 5.22. Defining and editing resources ΓòÉΓòÉΓòÉ
  5299.  
  5300.  
  5301. ΓòÉΓòÉΓòÉ 5.22.1. Accelerator Table Resource ΓòÉΓòÉΓòÉ
  5302.  
  5303. The Accelerator Table dialogue allows you to define and edit accelerators for a 
  5304. window. Three list boxes are displayed near the top of the dialogue. The first 
  5305. list box, Accelerators, contains a list of the accelerators defined. The 
  5306. second, Key Values, contains the possible key values that can be used as an 
  5307. accelerator. The last list box, Menu IDs, contains a list of the defined 
  5308. sub-menu items in the window. Select the key value for the accelerator from the 
  5309. Key Values list box and the ID from the Menu IDs list box. The options for the 
  5310. accelerator are selected in the Key options area. Available options are: 
  5311.  
  5312.  Option                   Description 
  5313.  Virtual key              Denotes that the accelerator key-value is a virtual 
  5314.                           key code. 
  5315.  Scan code                Denotes that the accelerator key-value is a scan 
  5316.                           code. 
  5317.  Char                     Denotes that the accelerator key-value is a character 
  5318.                           code. 
  5319.  Help                     Indicates that the accelerator key-value is to 
  5320.                           generate a WM_HELP message. If this option is not 
  5321.                           selected, the accelerator will translate into a 
  5322.                           WM_COMMAND message. 
  5323.  Alt                      Denotes that the accelerator key-value is a 
  5324.                           Alt+key-value code. The user must press the Alt key 
  5325.                           and the key-value to generate the accelerator. 
  5326.  Ctrl                     Denotes that the accelerator key-value is a 
  5327.                           Ctrl+key-value code. The user must press the Ctrl key 
  5328.                           and the key-value to generate the accelerator. 
  5329.  Shift                    Denotes that the accelerator key-value is a 
  5330.                           Shift+key-value code. The user must press the Shift 
  5331.                           key and the key-value to generate the accelerator. 
  5332.  SYSCOMMAND               Indicates that the accelerator key-value is to 
  5333.                           generate a WM_SYSCOMMAND message. If this option is 
  5334.                           not selected, the accelerator will translate into a 
  5335.                           WM_COMMAND message. 
  5336.  
  5337.  
  5338. ΓòÉΓòÉΓòÉ 5.22.2. Association Table ΓòÉΓòÉΓòÉ
  5339.  
  5340. The Association Table dialogue allows you to define and edit the association 
  5341. information for the application you are designing. The following options are 
  5342. provided: 
  5343.  
  5344.  Option                   Description 
  5345.  Default owner            Denotes that the application containing the file 
  5346.                           association table starts whenever the user selects a 
  5347.                           file matching the file-match-string field from the 
  5348.                           File Manager. 
  5349.  Unchangeable             Denotes that the icon defined in the previous entry 
  5350.                           is used as the icon for the current entry. 
  5351.  Reuse icon               Denotes that the icon entry should not be edited. 
  5352.  
  5353.  The Association name entry field is used to denote the Extended Attribute 
  5354.  types recognized by the application you are designing. It is the same name 
  5355.  used in the .TYPE field of an extended attribute. The Extension entry field is 
  5356.  used to identify the file type if no Extended Attribute type is provided. It 
  5357.  can be a file extension up to three (3) letters in length, excluding the 
  5358.  preceding period (.). The Icon file entry field is used to define the icon to 
  5359.  be used in the Workplace to represent the file type. The two list boxes at the 
  5360.  bottom of the dialogue are provided to allow you to locate the icon file in 
  5361.  your system. The Drives/Directories list box is used to change the location 
  5362.  where the file may be located; the Files list box is used to select the file 
  5363.  in the Icon file entry field. 
  5364.  
  5365.  To add an association table item, complete the entry fields, select the 
  5366.  appropriate options, and click on the Add button. The item is then added to 
  5367.  the bottom of the entries within the list box. Change an association table 
  5368.  item by selecting the item in the list box. The values for that item are 
  5369.  placed in the entry fields of the dialogue and the options are reflected in 
  5370.  the Options area. You can then change the values in the entry fields or select 
  5371.  different options. Select the Change button to record the changes. 
  5372.  
  5373.  Delete items in the list by selecting the item in the list box and click on 
  5374.  the Delete button. 
  5375.  
  5376.  
  5377. ΓòÉΓòÉΓòÉ 5.22.3. Bitmap, Font, Icon and Pointer Resources ΓòÉΓòÉΓòÉ
  5378.  
  5379. The Bitmap, Font, Icon, and Pointer Resources dialogue allows you to define and 
  5380. edit resource definitions for bitmaps, fonts, icons, and pointers. The dialogue 
  5381. provides the following options: 
  5382.  
  5383.  Option                   Description 
  5384.  Bitmap                   Designates the resource as a bitmap definition. 
  5385.  Default icon             Designates the resource as the default icon 
  5386.                           definition. This is not used within the resources of 
  5387.                           the application or DLL but as the default icon within 
  5388.                           the Workplace desktop. The icon is stored in the 
  5389.                           extended attributes of the .EXE or .DLL file when the 
  5390.                           resources are bound to the .EXE or .DLL file. 
  5391.  Font                     Designates the resource as a font definition. 
  5392.  Icon                     Designates the resource as a icon definition. 
  5393.  Pointer                  Designates the resource as a pointer definition. 
  5394.  Default                  Indicates that the resource should use the 
  5395.                           system-defined defaults (Moveable, Load on Call) to 
  5396.                           handle the resource. This option is available only 
  5397.                           when designing OS/2 1.x applications. 
  5398.  Moveable                 Indicates that the resource can be moved within 
  5399.                           memory. This option is available only when designing 
  5400.                           OS/2 1.x applications. 
  5401.  Preload                  Indicates that the resource should be loaded when the 
  5402.                           application is started. If this option is not 
  5403.                           selected, the resource will be loaded when requested 
  5404.                           by the application. This option is available only 
  5405.                           when designing OS/2 1.x applications. 
  5406.  Discard                  Designates that the resource can be discarded when no 
  5407.                           longer required by the application This option is 
  5408.                           available only when designing OS/2 1.x applications. 
  5409.  
  5410.  The symbolic ID and value are defined via the ID field. You can enter the 
  5411.  symbolic ID and the value for the resource item. If the symbol and value you 
  5412.  want to use are already defined in the include header file, select them from 
  5413.  the drop-down list. For a unique ID value, click on the button beside the ID 
  5414.  field, placing a unique value in the field. To add an item, complete the entry 
  5415.  fields and click on the Add button, adding the item to the bottom of the 
  5416.  entries in the list box. Change a bitmap, font, icon or pointer item by 
  5417.  selecting the item within the list box. The values for that item  are then 
  5418.  placed in the entry fields of the dialogue and the type and options reflected. 
  5419.  You can change the values in the entry fields. Select the Change button to 
  5420.  record the changes. 
  5421.  
  5422.  Delete items from the list by selecting the item in the list box and click on 
  5423.  the Delete push button. 
  5424.  
  5425.  The entry field, Filename, is used to describe the filename for the actual 
  5426.  resource. You can locate the desired resource by selecting the file in the 
  5427.  Files list box. An example may be shown to the right of the list box; the 
  5428.  filename is automatically placed in the Filename entry field. 
  5429.  
  5430.  
  5431. ΓòÉΓòÉΓòÉ 5.22.4. Help Table ΓòÉΓòÉΓòÉ
  5432.  
  5433. The Help Table dialogue allows you to define a help table. 
  5434.  
  5435. The Table ID field is used to define the symbol ID and value of the table. 
  5436.  
  5437. You can enter the symbolic ID and the value for the help table; if the symbol 
  5438. and value you want to use are already defined in the include header file, you 
  5439. can select them from the drop- down list. 
  5440.  
  5441.  
  5442. ΓòÉΓòÉΓòÉ 5.22.5. Help Table Items ΓòÉΓòÉΓòÉ
  5443.  
  5444. The Help Table Items dialogue allows you to define the help table item. 
  5445.  
  5446. The dialogue contains a list box showing the defined help tables. Select the 
  5447. table associated with the help table item. 
  5448.  
  5449. The first field, Window ID, is used to define the symbol ID and value of the 
  5450. window of the help table item. The second field, Sub-table ID, is used to 
  5451. define the symbol ID and value of the help sub-table. The last entry field, 
  5452. Extended ID, is used to define the extended help panel symbol ID and value for 
  5453. the table item. 
  5454.  
  5455. You can enter the symbolic IDs and values for the help table item. If the 
  5456. symbol and value you want to use are already defined in the include header 
  5457. file, you can select them from the drop- down list. 
  5458.  
  5459.  
  5460. ΓòÉΓòÉΓòÉ 5.22.6. Help Sub-Table ΓòÉΓòÉΓòÉ
  5461.  
  5462. The Help Sub-Table dialogue allows you to define and edit the help sub-table 
  5463. for a window or dialogue. 
  5464.  
  5465. The Sub-table ID field is used to define the symbol ID and value of the 
  5466. sub-table. The entry field, Sub-item size, is for sub-table item size. If there 
  5467. are more than two sub-table items, you must enter a value here. Otherwise, if 
  5468. it is left empty, a default size of 2 will be used. You can enter the symbolic 
  5469. ID and the value for the help table. If the symbol and value you want to use 
  5470. are already defined in the include header file, you can select them from the 
  5471. drop- down list. 
  5472.  
  5473.  
  5474. ΓòÉΓòÉΓòÉ 5.22.7. Help Sub-Table Items ΓòÉΓòÉΓòÉ
  5475.  
  5476. The Help Sub-Table Items dialogue allows you to define and edit a help 
  5477. sub-table item. The dialogue contains a list box showing the defined help 
  5478. sub-tables. Select the help sub-table that the sub-table item is to belong to. 
  5479.  
  5480. The first field, Window ID, is used to define the symbol ID and value of the 
  5481. window of the help sub-table item. The second field, Panel ID, is used to 
  5482. define the symbol ID and value of the help panel. The last entry field, Other 
  5483. values, is used to define additional table values for the item. 
  5484.  
  5485. You can enter the symbolic IDs and values for the help table item. If the 
  5486. symbol and value you want to use are already defined in the include header 
  5487. file, you can select them from the drop- down list. 
  5488.  
  5489.  
  5490. ΓòÉΓòÉΓòÉ 5.22.8. Build Help Table ΓòÉΓòÉΓòÉ
  5491.  
  5492. The Build Help Table dialogue to allows you to quickly create the help table 
  5493. for the application and edit the constructed help table. Building the help 
  5494. table involves searching the current design for help sub-tables and including 
  5495. those encountered in the help table. 
  5496.  
  5497. The dialogue is displayed at the top a field labeled Table ID. Through this 
  5498. field, you define the table ID and value. Enter the symbolic ID and value; if 
  5499. the symbol and value you want to use are already defined in the include header 
  5500. file, you can select them from the drop-down list. 
  5501.  
  5502. Below these entry fields is a list box containing the list of sub-tables found 
  5503. in the design file. The list box is broken into three columns: Window IDs, 
  5504. Sub-table IDs, and Extended IDs. If you have used symbolic IDs, you will notice 
  5505. that the first two columns contain symbolic IDs, whereas the third column 
  5506. contains only numeric values. 
  5507.  
  5508. Since Prominare Designer does not know when it is constructing the help table 
  5509. (the actual extended help panel IDs), you must edit each entry contained in the 
  5510. list box to provide the final ID value. 
  5511.  
  5512. Select an item in the list box in which the values for the table item are 
  5513. placed into the entry fields at the bottom of the dialogue. The window ID and 
  5514. value is placed in the Window ID field; the sub-table ID and value is placed in 
  5515. the Sub-table ID field; and finally, the extended help panel ID and value is 
  5516. placed in the Extended ID field. 
  5517.  
  5518. Generally, you must provide only the extended help panel ID. You can enter the 
  5519. symbolic ID and value of the panel ID in the Extended ID field. If the symbol 
  5520. and value you want to use are already defined in the include header file, you 
  5521. can select them from the drop-down list. 
  5522.  
  5523.  
  5524. ΓòÉΓòÉΓòÉ 5.22.9. Build Help Sub-Table ΓòÉΓòÉΓòÉ
  5525.  
  5526. The Build Help Sub-Table dialogue allows you to build a help sub-table for the 
  5527. window or dialogue on which you are working. 
  5528.  
  5529. Prominare Designer checks the window or dialogue you are designing for any 
  5530. control that is considered user interactive. Controls that cannot be selected 
  5531. either via the keyboard or mouse are not included in the help sub-table. Action 
  5532. bar menus and sub-menus are considered controls when building the help 
  5533. sub-table. 
  5534.  
  5535. At the top, the dialogue displays the Sub-table ID field and the entry field 
  5536. labeled Sub-item size. It is through these fields that you define the sub-table 
  5537. ID and the table item sizes. You can enter the symbolic ID and value. If the 
  5538. symbol and value you want to use are already defined in the include header 
  5539. file, you can select them from the drop-down list. 
  5540.  
  5541. You must specify the size of the sub-table items. By default, the Sub-item size 
  5542. entry field contains a size of 2. Most of the time, you need only the window ID 
  5543. and panel ID for the table items. If you require more information to be 
  5544. associated with each table item, enter the count of items in this entry field. 
  5545.  
  5546. Below these entry fields is a list box containing the list of interactive 
  5547. controls found in the window or dialogue. The list box is broken into three 
  5548. columns: Window IDs, Panel IDs, and Other Values. If you have used symbolic 
  5549. IDs, you will notice that the first column contains symbolic IDs, whereas the 
  5550. other column contains only numeric values. 
  5551.  
  5552. Since Prominare Designer does not know when it is constructing the help table 
  5553. (the actual help panel IDs), you must edit each entry in the list box to 
  5554. provide the final ID value. 
  5555.  
  5556. Select an item in the list box in which the values for the table item are 
  5557. placed into the entry fields at the bottom of the dialogue. The window ID and 
  5558. value is placed in the Window ID field; the panel ID and value is placed in the 
  5559. Panel ID field; and finally, the other values are placed in the Other values 
  5560. entry field. 
  5561.  
  5562. Generally, you must provide only the help panel ID. You can enter the symbolic 
  5563. ID and value of the panel ID in the Panel ID field. If the symbol and value you 
  5564. want to use are already defined in the include header file, you can select them 
  5565. from the drop-down list. 
  5566.  
  5567.  
  5568. ΓòÉΓòÉΓòÉ 5.22.10. Message/String Resources ΓòÉΓòÉΓòÉ
  5569.  
  5570. The Message Resources dialogue allows you to enter the message table 
  5571. definitions, whereas the String Resources dialogue allows you to enter string 
  5572. table definitions. The two dialogues are similar in appearance and usage. 
  5573.  
  5574. The Text entry field is used for the message or string itself. The symbolic ID 
  5575. and value are defined in the ID field. You can enter the symbolic ID and the 
  5576. value for the message. If the symbol and value you want to use are already 
  5577. defined in the include header file, you can select them from the drop-down 
  5578. list. 
  5579.  
  5580. For a unique ID value, click on the button beside the ID field. This places a 
  5581. unique value in the field. 
  5582.  
  5583. To add a message or string table item, complete the entry fields and click on 
  5584. the Add button. The item is then added to the bottom of the entries in the list 
  5585. box. 
  5586.  
  5587. Change a message or string table item by selecting the item in the list box. 
  5588. The values for that item are placed in the entry fields of the dialogue, where 
  5589. you can change them. Select the Change push button to record the changes. 
  5590. Delete items in the list by selecting the item in the list box and clicking on 
  5591. the Delete button. Note that the maximum length of a string or message is 255 
  5592. characters. This is a system limitation. 
  5593.  
  5594.  
  5595. ΓòÉΓòÉΓòÉ 5.22.11. Custom Resource ΓòÉΓòÉΓòÉ
  5596.  
  5597. The Custom Resource dialogue allows you to define custom resources you want to 
  5598. include in the application. The memory options that can be used with a custom 
  5599. resource are: 
  5600.  
  5601.  Option                   Description 
  5602.  Default                  Indicates that the resource should use the 
  5603.                           system-defined defaults (Moveable, Load on Call) to 
  5604.                           handle the resource. This option is available only 
  5605.                           when designing OS/2 1.x applications. 
  5606.  Moveable                 Indicates that the resource can be moved within 
  5607.                           memory. This option is available only when designing 
  5608.                           OS/2 1.x applications. 
  5609.  Preload                  Indicates that the resource should be loaded when the 
  5610.                           application is started. If this option is not 
  5611.                           selected, the resource will be loaded when it is 
  5612.                           requested by the application. This option is 
  5613.                           available only when designing OS/2 1.x applications. 
  5614.  Discard                  Indicates that the resource can be discarded when no 
  5615.                           longer required by the application. This option is 
  5616.                           available only when designing OS/2 1.x applications. 
  5617.  
  5618.  The symbolic type ID and value are defined through the Type ID field. You can 
  5619.  edit the symbolic type ID and the value for the type. If the symbol and value 
  5620.  you want to use are already defined in the include header file, you can select 
  5621.  them from the drop-down list. 
  5622.  
  5623.  The symbolic ID and value the custom resource are defined through the ID 
  5624.  field. You can edit the symbolic ID and the value for the resource item. If 
  5625.  the symbol and value you want to use are already defined in the include header 
  5626.  file, you can select them from the drop-down list. Click on the button beside 
  5627.  the ID field to causes a unique value to be placed in the field. To add a 
  5628.  resource item, complete the entry fields and click on the Add button. The item 
  5629.  is then added to the bottom of the entries within the list box. 
  5630.  
  5631.  Change a resource item by selecting the item in the list box. The values for 
  5632.  that item will be placed within the entry fields of the dialogue. Change the 
  5633.  values in the entry fields, then select the Change button to record the 
  5634.  changes. 
  5635.  
  5636.  Delete an item in the list by selecting the item in the list box and clicking 
  5637.  on the Delete button. 
  5638.  
  5639.  The entry field Filename is used to describe the filename for the actual 
  5640.  custom resource Through the list boxes, you can locate the desired resource by 
  5641.  selecting the file in the Files list box. The filename is automatically placed 
  5642.  in the Filename entry field. 
  5643.  
  5644.  
  5645. ΓòÉΓòÉΓòÉ 5.22.12. Resource Table ΓòÉΓòÉΓòÉ
  5646.  
  5647. The Resource Table dialogue allows you to define a table resource such as a 
  5648. character table, font directory, key table, or virtual key table. The memory 
  5649. options that can be used with a table resource are: 
  5650.  
  5651.  Option                   Description 
  5652.  Default                  Indicates that the resource should use the 
  5653.                           system-defined defaults (Moveable, Load on Call) to 
  5654.                           handle the resource. This option is available only 
  5655.                           when designing OS/2 1.x applications. 
  5656.  Moveable                 Indicates that the resource can be moved within 
  5657.                           memory. This option is available only when designing 
  5658.                           OS/2 1.x applications. 
  5659.  Preload                  Indicates that the resource should be loaded when the 
  5660.                           application is started. If this option is not 
  5661.                           selected, the resource will be loaded when it is 
  5662.                           requested by the application. This option is 
  5663.                           available only when designing OS/2 1.x applications. 
  5664.  Discard                  Indicates that the resource can be discarded when no 
  5665.                           longer required by the application. This option is 
  5666.                           available only when designing OS/2 1.x applications. 
  5667.  
  5668.  The ID and value are defined through the ID field. You can edit the symbolic 
  5669.  ID and the value for the table; if the symbol and value you want to use are 
  5670.  already defined in the include header file, you can select them from the 
  5671.  drop-down list. 
  5672.  
  5673.  Click on the button beside the ID field to place a unique value in the field. 
  5674.  To add a resource table item, complete the entry fields and click on the Add 
  5675.  button. The item is then added to the bottom of the entries in the list box. 
  5676.  
  5677.  Change a resource table item by selecting the item in the list box. The values 
  5678.  for that item will be placed within the entry fields of the dialogue. You can 
  5679.  change the values, then select the Change button to record the changes. 
  5680.  
  5681.  Delete items from the list is done by selecting the items in the list box and 
  5682.  clicking on the Delete button. 
  5683.  
  5684.  The entry field Filename, is used to describe the filename for the actual 
  5685.  custom resource Through the list boxes, you can locate the desired resource by 
  5686.  selecting the file in the Files list box. The filename is automatically placed 
  5687.  in the Filename entry field. 
  5688.  
  5689.  
  5690. ΓòÉΓòÉΓòÉ 5.23. Source coding rules ΓòÉΓòÉΓòÉ
  5691.  
  5692.  
  5693. ΓòÉΓòÉΓòÉ 5.23.1. Edit Window Messages ΓòÉΓòÉΓòÉ
  5694.  
  5695. The Edit Window Messages dialogue allows you to select messages to define or 
  5696. change source code. The dialogue is similar in appearance and usage to the Edit 
  5697. Dialogue Messages and Edit Notification Messages dialogues. 
  5698.  
  5699. The dialogue displays the messages that can be handled within the source code 
  5700. window procedure generated through Prominare Designer in a combination box. 
  5701. Select the message you wish to edit from the combination box. This displays the 
  5702. default source code in the source code display area below the combination box. 
  5703.  
  5704. The number of macro symbols used in the defined source code are displayed to 
  5705. the right of the messages combination box. This allows you to quickly see the 
  5706. number of macros used. 
  5707.  
  5708. Prominare Designer allows you to edit the comments and the body of the selected 
  5709. message. Comments always appear after the case statement and are generally used 
  5710. as an introductory overview to the source code that follows. You can leave the 
  5711. comments blank if you so desire. 
  5712.  
  5713. Displaying the Comments tab allows you to enter the comments to be used after 
  5714. the case statement. Edit the message handling body by clicking on the Body tab. 
  5715. Through this tab, you can enter local variables to be used during the message 
  5716. handling, as well as the message handling source code itself. The macro symbols 
  5717. that you can use within the body are: 
  5718.  
  5719.  Macro Symbol             Purpose/Usage 
  5720.  <command>                This macro is used to denote the location and 
  5721.                           starting position where the command message control 
  5722.                           handling is to be placed. Generally, this is used 
  5723.                           only within the WM_COMMAND source definition. The 
  5724.                           macro will be replaced with the actual control case 
  5725.                           statements and methods defined. 
  5726.  <notify>                 This macro is used to denote the location and 
  5727.                           starting position where the notification message 
  5728.                           control handling is to be placed. Generally, this is 
  5729.                           used only within the WM_CONTROL source definition. 
  5730.                           The macro will be replaced with the actual control 
  5731.                           case statements and methods defined. 
  5732.  
  5733.  To reset the source code definition to a default state, click on the Defaults 
  5734.  button. This discards the definition entered and replaces it with the default 
  5735.  definition. 
  5736.  
  5737.  For a complete list of macro definitions, consult appendix d, Code Generation 
  5738.  Overview. 
  5739.  
  5740.  Macro Symbol             Purpose/Usage 
  5741.  <id>                     This macro is used to denote an ID value or symbol. 
  5742.  
  5743.  To reset the source code definition to a default state, click on the Defaults 
  5744.  button. This discards the definition entered and replaces it with the default 
  5745.  definition. 
  5746.  
  5747.  
  5748. ΓòÉΓòÉΓòÉ 5.23.2. Edit Default Source ΓòÉΓòÉΓòÉ
  5749.  
  5750. Displaying the Edit Default Source dialogue allows you to edit default source 
  5751. for following areas: 
  5752.  
  5753.  Tab                      Source Area 
  5754.  Module start             Source module start containing #include, module 
  5755.                           purpose and copyright. 
  5756.  Header start             Header module start containing header purpose and 
  5757.                           copyright. 
  5758.  Window                   Window procedure template definition. 
  5759.  Child Window             Child window procedure template definition. 
  5760.  Dialogue                 Dialogue procedure template definition. 
  5761.  main()                   main() function template definition. 
  5762.  Support.C                Support.C module definitions. The functions included 
  5763.                           within the module are PdsLoadTemplate, PdsKeyProc, 
  5764.                           InitApp, CreateStdWindow. It can also contain other 
  5765.                           support functions which would be used by the 
  5766.                           application. 
  5767.  AppDefs.C                Contains the global variable definitions such as hAB. 
  5768.  AppDefs.H                Contains the global variable external definitions. 
  5769.  XxxxRegister             Contains the XxxxRegister function template for a 
  5770.                           PMCX control. 
  5771.  XxxxQuery                Contains the XxxxQuery function template for a PMCX 
  5772.                           control. 
  5773.  XxxxStyles               Contains the XxxxStyles function template for a PMCX 
  5774.                           control. 
  5775.  XxxxWndProc              Contains the window procedure template definition for 
  5776.                           a PMCX control. 
  5777.  InitDLL                  Contains the InitDLL function template. 
  5778.  
  5779.  Various macro symbols that you can use within the body are: 
  5780.  
  5781.  Macro Symbol             Purpose/Usage 
  5782.  <-date->                 Denotes where the current date is to be placed. 
  5783.  <-file->                 Denotes where the filename is to be placed. 
  5784.  <INCL>                   Denotes where the OS/2 INCL_* definitions are to be 
  5785.                           placed. This macro should be located before the 
  5786.                           #include <os2.h> statement. 
  5787.  <include>                Denotes where include header file statements are to 
  5788.                           be placed. 
  5789.  <statics>                Denotes where static variables are to be placed 
  5790.                           within a function. 
  5791.  
  5792.  Various macro symbols that you can use within the body of the window 
  5793.  definitions are: 
  5794.  
  5795.  Macro Symbol             Purpose/Usage 
  5796.  <localvars>              Denotes where local variables are to be placed. 
  5797.  <pfnWndProc>             Denotes a window function name. 
  5798.  <statements>             Denotes where the general statements are to be placed 
  5799.                           within a function. 
  5800.  
  5801.  Various macro symbols that you can use within the dialogue definition body 
  5802.  are: 
  5803.  
  5804.  Macro Symbol             Purpose/Usage 
  5805.  <localvars>              Denotes where local variables are to be placed. 
  5806.  <pfnDlgProc>             Denotes a dialogue function name. 
  5807.  <statements>             Denotes where the general statements are to be placed 
  5808.                           within a function. 
  5809.  
  5810.  
  5811. ΓòÉΓòÉΓòÉ 5.23.3. Edit Command Definitions ΓòÉΓòÉΓòÉ
  5812.  
  5813. The Edit Command Definitions dialogue allows you to select the methods to 
  5814. define or change the source code for WM_COMMAND definitions statements, which 
  5815. are usually the results of menu item or push button selections. The dialogue is 
  5816. used for menu, push button, user button, and user-defined items. 
  5817.  
  5818. This dialogue displays the methods that can be handled by Prominare Designer in 
  5819. a combination box labeled Methods. Select the method you wish to edit from the 
  5820. Methods combination box. This displays the default source code, including local 
  5821. variables for the method, in the source code display area below the combination 
  5822. box. In this area, you can edit the method definition. The following methods 
  5823. are provided: 
  5824.  
  5825.  Method                   Comments 
  5826.  Default                  Does not provide any dialogue invocation. 
  5827.  if ( WinDlgBox(...) )    Invokes the dialogue expecting a return value (either 
  5828.                           TRUE or FALSE) to perform further processing. The 
  5829.                           dialogue will be modal. 
  5830.  WinDlgBox(...)           Invokes the dialogue. The dialogue will be modal. 
  5831.  WinLoadDlg(...)          Invokes the dialogue. The dialogue will be modeless. 
  5832.  WinCreateStdWindow( ... ) Creates a standard window. 
  5833.  WinCreateWindow          Creates a window. 
  5834.  Other                    Indicates that another method of loading and 
  5835.                           displaying the dialogue will be used. This is similar 
  5836.                           to the Default designation in that Prominare Designer 
  5837.                           does not provide any default source coding. 
  5838.  
  5839.  The number of macro symbols used in the defined source code is displayed to 
  5840.  the right of the Methods combination box, allowing you to quickly see the 
  5841.  number of macros used. 
  5842.  
  5843.  If there are any local variables used within the method, you can define them 
  5844.  in the Variables entry area. The body of the method must be fully defined and 
  5845.  can use macro symbols to denote various items required to complete the 
  5846.  definition. The macro symbols you can use within the body are: 
  5847.  
  5848.  Macro Symbol             Purpose/Usage 
  5849.  <DID_CANCEL>             This macro is used to denote the DID_CANCEL ID symbol 
  5850.                           that can be used in case statements in place of the 
  5851.                           <idButton> macro. DID_CANCEL has special meaning in 
  5852.                           both Prominare Designer and OS/2 Presentation 
  5853.                           Manager; it denotes the push button associated with 
  5854.                           ignoring actions performed within a dialogue. 
  5855.  <DID_OK>                 This macro is used to denote the DID_OK ID symbol 
  5856.                           that can be used in case statements in place the 
  5857.                           <idButton> macro. DID_OK has special meaning in both 
  5858.                           Prominare Designer and OS/2 Presentation Manager; it 
  5859.                           denotes the push button associated with accepting 
  5860.                           actions performed within a dialogue. 
  5861.  <hwndFrame>              This macro is used to denote the frame handle 
  5862.                           variable name. 
  5863.  <id>                     This macro is used to denote an ID value or symbol. 
  5864.  <idActionBar>            This macro is used to denote an ID value or symbol 
  5865.                           for an action bar menu item. 
  5866.  <idButton>               This macro is used to denote an ID value or symbol 
  5867.                           for a button. 
  5868.  <idDlg>                  This macro is used to denote an ID value or symbol 
  5869.                           for a dialogue. 
  5870.  <idMenu>                 This macro is used to denote an ID value or symbol 
  5871.                           for a sub-menu item. 
  5872.  <pfnDlgProc>             This macro is used to denote a dialogue function 
  5873.                           name. 
  5874.  <pfnWndProc>             This macro is used to denote a window function name. 
  5875.  
  5876.  You can delete the method definition by clicking on the Clear push button. 
  5877.  When the command area selected is push button or user button, the following 
  5878.  additional methods are provided: 
  5879.  
  5880.  Method                   Comments 
  5881.  DID_OK                   Used for push buttons whose ID is DID_OK. 
  5882.  DID_CANCEL               Used for push buttons whose ID is DID_CANCEL. 
  5883.  The number of macro symbols used within the defined source code are displayed 
  5884.  to the right of the Methods combination box, allowing you to quickly see the 
  5885.  number of macros being used. 
  5886.  
  5887.  
  5888. ΓòÉΓòÉΓòÉ 5.23.4. Source Code Layout ΓòÉΓòÉΓòÉ
  5889.  
  5890. The Source Code Layout dialogue allows you to define the default messages that 
  5891. should be included within a window or dialogue procedure when it is first 
  5892. created. These messages will appear selected when you click on the Messages... 
  5893. button in the Window/Dialogue Styles and Child Window Styles dialogues. 
  5894.  
  5895. The dialogue displays messages that apply to a window procedure within the 
  5896. combination box labeled Message. You can select a message to include in the 
  5897. window procedure from the combination box. The source code for the message will 
  5898. be added to the source code display area and the message added to the 
  5899. combination box labeled Selected. 
  5900.  
  5901. Once you have selected a message from the Message combination box, click on the 
  5902. Added button. Conversely, to delete a message from those selected, first select 
  5903. the message to delete in the Selected combination box and then click on the 
  5904. Delete push button. 
  5905.  
  5906.  
  5907. ΓòÉΓòÉΓòÉ 5.24. PMCX control creation ΓòÉΓòÉΓòÉ
  5908.  
  5909.  
  5910. ΓòÉΓòÉΓòÉ 5.24.1. PMCX Creation ΓòÉΓòÉΓòÉ
  5911.  
  5912. Through the PMCX Creation dialogue, you can set the values required for a PMCX 
  5913. control you are creating via Prominare Designer. These values are generally 
  5914. used to complete the names of the PMCX functions and fill in the USERINFO 
  5915. structure in the XxxxQuery function. 
  5916.  
  5917. Enter the name of the PMCX control in the Control name entry field. This name 
  5918. will become the basis of the PMCX function names, filename, and DLL name. In 
  5919. the entry field labeled Author, enter the name of the person or organization 
  5920. writing the control. The classname for the control is entered in the Classname 
  5921. field. This can be any name accepted within the WinRegisterClass API. Finally, 
  5922. enter a short description in the Description field. 
  5923.  
  5924. If the control you are designing warrants, you can specify the maximum amount 
  5925. of text the control should handle via the spin button labeled Max. text. (The 
  5926. maximum is 512 bytes.) The width of the control (a value between 0 and 32,767) 
  5927. is entered via the Width spin button and the height (0 to 32,767) via the 
  5928. Height spin button. 
  5929.  
  5930. If your control will handle control data, you can specify the amount of control 
  5931. data (a value between 0 and 65,535) via the CTLDATA spin button. Enter the ID 
  5932. of the styles dialogue in the ID field. 
  5933.  
  5934. Enter the version number for the control in the entry fields labeled Major and 
  5935. Minor. 
  5936.  
  5937. The style types and options available are: 
  5938.  
  5939.  Option                   Description 
  5940.  Bitflags                 Defines the style values as bitflags. This means that 
  5941.                           each bit within the lower portion of the style has a 
  5942.                           unique meaning. When using this method to define 
  5943.                           styles, remember that a maximum of 16 styles may be 
  5944.                           defined. 
  5945.  Sequence                 Defines the style values as a sequence. This means 
  5946.                           that each style is a value between 0 and 65,535. 
  5947.  Refresh                  Refreshes the control each time the styles dialogue 
  5948.                           is successfully exited. If the styles dialogue is 
  5949.                           exited through the Cancel button, no refresh is 
  5950.                           performed. 
  5951.  Variable CTLDATA         Indicates that the control being created does not 
  5952.                           have a fixed length control data. When this option is 
  5953.                           used, the mechanism for allocating control data space 
  5954.                           takes into consideration that the amount of data may 
  5955.                           be different based on the user selections within the 
  5956.                           styles dialogue. 
  5957.  Allows style changing    Indicates that the control is capable of updating its 
  5958.                           styles by querying the styles flags. This allows 
  5959.                           Prominare Designer avoid destroying and recreating 
  5960.                           the control each time the control needs refreshing 
  5961.                           after the styles dialogue is exited. 
  5962.  Tabable                  Indicates that the control can receive focus and user 
  5963.                           input, and is therefore tabable. 
  5964.  Help selectable          Indicates that the control should be included within 
  5965.                           any help sub-tables generated, since it can receive 
  5966.                           focus and user input. 
  5967.  
  5968.  
  5969. ΓòÉΓòÉΓòÉ 5.25. Support dialogues ΓòÉΓòÉΓòÉ
  5970.  
  5971.  
  5972. ΓòÉΓòÉΓòÉ 5.25.1. Resource Properties ΓòÉΓòÉΓòÉ
  5973.  
  5974. The Resource Properties dialogue allows the following memory options and code 
  5975. page to be set for accelerators, dialogues, menus, messages, and strings: 
  5976.  
  5977.  Option                   Description 
  5978.  Default                  Designates that the resource should use the 
  5979.                           system-defined defaults (Moveable, Load on Call) for 
  5980.                           handling the resource. This option is available only 
  5981.                           when designing OS/2 1.x applications. 
  5982.  Moveable                 Designates that the resource can be moved within 
  5983.                           memory. This option is available only when designing 
  5984.                           OS/2 1.x applications. 
  5985.  Preload                  Designates that the resource should be loaded when 
  5986.                           the application is started. If this option is not 
  5987.                           selected, the resource will be loaded when requested 
  5988.                           by the application. This option is available only 
  5989.                           when designing OS/2 1.x applications. 
  5990.  Discard                  Designates that the resource can be discarded when no 
  5991.                           longer required by the application. This is available 
  5992.                           only when designing OS/2 1.x applications. 
  5993.  
  5994.  
  5995. ΓòÉΓòÉΓòÉ 5.25.2. Relative Mouse Position ΓòÉΓòÉΓòÉ
  5996.  
  5997. The Relative Mouse Position dialogue allows you to define the absolute position 
  5998. of the dialogue relative to the mouse pointer when that dialogue is created. 
  5999. (You may find that you cannot get the exact position you desire simply by using 
  6000. the Set relative to mouse position button and that you need to specify the 
  6001. exact position.) 
  6002.  
  6003. Specify the horizontal and vertical mouse positions in the entry fields labeled 
  6004. Horizontal (x) and Vertical (y). Positions are relative to the lower left 
  6005. corner of the dialogue. Therefore, it you have a push button at location 5, 5 
  6006. and you want the button to appear under the mouse when the dialogue is created, 
  6007. enter -10, -10, causing the mouse pointer to appear at position 10, 10 when the 
  6008. dialogue is first displayed. 
  6009.  
  6010.  
  6011. ΓòÉΓòÉΓòÉ 5.25.3. Dialogue Unit Limits Selection ΓòÉΓòÉΓòÉ
  6012.  
  6013. The Dialogue Unit Limits Selection dialogue allows you to select a predefined 
  6014. device, or one defined through the Dialogue Unit Definition dialogue. 
  6015.  
  6016. Select the target device from the drop down labeled Device. Selecting an item 
  6017. on the list displays the fields in the dialogue to the number of colours for 
  6018. the device, along with its horizontal and vertical resolution. The dialogue 
  6019. factors are also displayed. 
  6020.  
  6021. The dialogue factors for the device you are currently using, along with the 
  6022. factors from the target device, are used to determine the ratio. You can see 
  6023. the display limits of the controls as they may be created on that particular 
  6024. device by selecting the Show display limits button. 
  6025.  
  6026. Even though this dialogue displays the limits of controls for given devices, 
  6027. you should still test the application against that device--the display limits 
  6028. shown are only a loose approximation of what the limits might be. There is no 
  6029. definitive method of converting the limits of controls from one device to 
  6030. another. 
  6031.  
  6032.  
  6033. ΓòÉΓòÉΓòÉ 5.25.4. Grid ΓòÉΓòÉΓòÉ
  6034.  
  6035. For greater control over the placement of controls within a window or dialogue, 
  6036. Prominare Designer can utilize a placement/movement grid. Double-clicking on 
  6037. the Grid button in the tool bar displays the Grid dialogue, allowing you to 
  6038. define a placement/movement grid and choose whether or not to snap new controls 
  6039. to the placement grid. 
  6040.  
  6041. The first entry field, Horizontal (x), defines the horizontal grid value. The 
  6042. Vertical (y) field defines the vertical grid value. The default value for both 
  6043. is 5. 
  6044.  
  6045. If you select the Snap to check box, new controls snap to the placement grid. 
  6046. For example, if the grid is 5 by 5 and you create a control at location 7, 8 
  6047. with the mouse, the control will be placed at 5, 10. Prominare Designer saves 
  6048. grid values, ensuring that the same grid is used when you next edit the design 
  6049. file. 
  6050.  
  6051.  
  6052. ΓòÉΓòÉΓòÉ 5.25.5. Prominare Designer Information ΓòÉΓòÉΓòÉ
  6053.  
  6054. The Prominare Designer Information dialogue is used to display information for 
  6055. the current design file along with the current window or dialogue displayed. It 
  6056. shows the total number of windows and dialogues in the design, along with the 
  6057. last day and time it was edited. 
  6058.  
  6059. The number of controls, accelerators, action bar and sub-menu items, help 
  6060. table, table items, sub-table, and sub-table items are displayed here, as well 
  6061. as the resource distribution for the dialogue or window, menu, accelerator, and 
  6062. help tables. 
  6063.  
  6064.  
  6065. ΓòÉΓòÉΓòÉ 5.25.6. ID Field ΓòÉΓòÉΓòÉ
  6066.  
  6067. From within many of the style dialogues, you can use the ID field to select ID 
  6068. symbols and values contained in the include header. This field contains all of 
  6069. the symbol definitions entered through the program for the current design file, 
  6070. as well as the symbol definitions read in from the include header file. 
  6071.  
  6072. Within OS/2 Presentation Manager, there are some predefined symbol IDs and 
  6073. values. The following delineates these values and their usage: 
  6074.  
  6075. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  6076. ΓöéID Symbol         ΓöéValue     ΓöéUse                           Γöé
  6077. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6078. ΓöéDID_CANCEL        Γöé2         ΓöéUsed with the Cancel push     Γöé
  6079. Γöé                  Γöé          Γöébutton.                       Γöé
  6080. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6081. ΓöéDID_OK            Γöé1         ΓöéUsed with the Ok push button. Γöé
  6082. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6083. ΓöéSC_SIZE           Γöé0x8000    ΓöéUsed with Size system menu    Γöé
  6084. Γöé                  Γöé          Γöéitem (Alt+F8).                Γöé
  6085. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6086. ΓöéSC_MOVE           Γöé0x8001    ΓöéUsed with Move system menu    Γöé
  6087. Γöé                  Γöé          Γöéitem (Alt+F7).                Γöé
  6088. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6089. ΓöéSC_MINIMIZE       Γöé0x8002    ΓöéUsed with Minimize system menuΓöé
  6090. Γöé                  Γöé          Γöéitem (Alt+F9).                Γöé
  6091. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6092. ΓöéSC_MAXIMIZE       Γöé0x8003    ΓöéUsed with Maximize system menuΓöé
  6093. Γöé                  Γöé          Γöéitem (Alt+F10).               Γöé
  6094. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6095. ΓöéSC_CLOSE          Γöé0x8004    ΓöéUsed with Close system menu   Γöé
  6096. Γöé                  Γöé          Γöéitem (Alt+F4).                Γöé
  6097. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6098. ΓöéSC_NEXT           Γöé0x8005    ΓöéUsed to move focus and        Γöé
  6099. Γöé                  Γöé          Γöéactivation to the next        Γöé
  6100. Γöé                  Γöé          Γöétop-level frame (Alt+TAB).    Γöé
  6101. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6102. ΓöéSC_APPMENU        Γöé0x8006    ΓöéUsed to select a window's     Γöé
  6103. Γöé                  Γöé          Γöéaction bar. When the window   Γöé
  6104. Γöé                  Γöé          Γöéreceives this command message,Γöé
  6105. Γöé                  Γöé          Γöéa MM_STARTMENUMODE message is Γöé
  6106. Γöé                  Γöé          Γöésent to the action bar (F10,  Γöé
  6107. Γöé                  Γöé          ΓöéAlt, or Alt+Graf).            Γöé
  6108. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6109. ΓöéSC_SYSMENU        Γöé0x8007    ΓöéUsed as the ID of the system  Γöé
  6110. Γöé                  Γöé          Γöésub-menu that contains the    Γöé
  6111. Γöé                  Γöé          ΓöéSC_RESTORE, etc. When the     Γöé
  6112. Γöé                  Γöé          Γöéframe window receives the     Γöé
  6113. Γöé                  Γöé          ΓöéSC_SYSMENU command message,   Γöé
  6114. Γöé                  Γöé          ΓöéMM_STARTMENUMODE message is   Γöé
  6115. Γöé                  Γöé          Γöésent to the system menu       Γöé
  6116. Γöé                  Γöé          Γöé(Alt+SPACE or Shift+ ESC).    Γöé
  6117. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6118. ΓöéSC_RESTORE        Γöé0x8008    ΓöéUsed with Restore system menu Γöé
  6119. Γöé                  Γöé          Γöéitem (Alt+ENTER, Alt+NEWLINE  Γöé
  6120. Γöé                  Γöé          Γöéor Alt+F5).                   Γöé
  6121. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6122. ΓöéSC_NEXTFRAME      Γöé0x8009    ΓöéUsed to move the focus and    Γöé
  6123. Γöé                  Γöé          Γöéactivation to the next frame  Γöé
  6124. Γöé                  Γöé          Γöéat the same level as the      Γöé
  6125. Γöé                  Γöé          Γöécurrent frame (Alt+F6).       Γöé
  6126. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6127. ΓöéSC_NEXTWINDOW     Γöé0x8010    ΓöéNot used.                     Γöé
  6128. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6129. ΓöéSC_TASKMANAGER    Γöé0x8011    ΓöéUsed with Task Manager system Γöé
  6130. Γöé                  Γöé          Γöémenu item (Ctrl+ESC).         Γöé
  6131. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6132. ΓöéSC_HELPKEYS       Γöé0x8012    ΓöéGenerated by the Help system. Γöé
  6133. Γöé                  Γöé          ΓöéWhen this command message is  Γöé
  6134. Γöé                  Γöé          Γöéreceived, HM_KEYS_HELP is sentΓöé
  6135. Γöé                  Γöé          Γöéto the help instance          Γöé
  6136. Γöé                  Γöé          Γöéassociated with the window,   Γöé
  6137. Γöé                  Γöé          Γöéwith mp1 and mp2 set to zero. Γöé
  6138. Γöé                  Γöé          ΓöéIf no help instance is found, Γöé
  6139. Γöé                  Γöé          Γöéa WM_SYSCOMMAND message is    Γöé
  6140. Γöé                  Γöé          Γöésent.                         Γöé
  6141. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6142. ΓöéSC_HELPINDEX      Γöé0x8013    ΓöéGenerated by the Help system. Γöé
  6143. Γöé                  Γöé          ΓöéWhen this command message is  Γöé
  6144. Γöé                  Γöé          Γöéreceived, the HM_HELP_INDEX isΓöé
  6145. Γöé                  Γöé          Γöésent to the help instance     Γöé
  6146. Γöé                  Γöé          Γöéassociated with the window,   Γöé
  6147. Γöé                  Γöé          Γöéwith mp1 and mp2 set to zero. Γöé
  6148. Γöé                  Γöé          ΓöéIf no help instance is found, Γöé
  6149. Γöé                  Γöé          ΓöéWM_SYSCOMMAND message is sent.Γöé
  6150. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6151. ΓöéSC_HELPEXTENDED   Γöé0x8014    ΓöéGenerated by the Help system. Γöé
  6152. Γöé                  Γöé          ΓöéWhen this command message is  Γöé
  6153. Γöé                  Γöé          Γöéreceived, the HM_EXT_HELP is  Γöé
  6154. Γöé                  Γöé          Γöésent to the help instance     Γöé
  6155. Γöé                  Γöé          Γöéassociated with the window,   Γöé
  6156. Γöé                  Γöé          Γöéwith mp1 and mp2 set to zero. Γöé
  6157. Γöé                  Γöé          ΓöéIf no help instance is found, Γöé
  6158. Γöé                  Γöé          Γöéa WM_SYSCOMMAND message is    Γöé
  6159. Γöé                  Γöé          Γöésent.                         Γöé
  6160. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6161. ΓöéSC_SWITCHPANELIDS Γöé0x8015    ΓöéGenerated by the Help system. Γöé
  6162. Γöé                  Γöé          ΓöéWhen this message is received,Γöé
  6163. Γöé                  Γöé          Γöéa HM_SET_SHOW_PANEL_ID messageΓöé
  6164. Γöé                  Γöé          Γöéis sent to the help instance, Γöé
  6165. Γöé                  Γöé          Γöéwith mp1 set to               Γöé
  6166. Γöé                  Γöé          ΓöéCMIC_TOGGLE_PANEL_ID and mp2  Γöé
  6167. Γöé                  Γöé          Γöéset to zero.                  Γöé
  6168. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6169. ΓöéSC_DBE_FIRST      Γöé0x8018    ΓöéNot used but provided for     Γöé
  6170. Γöé                  Γöé          Γöéfuture double byte character  Γöé
  6171. Γöé                  Γöé          Γöésupport.                      Γöé
  6172. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  6173. ΓöéSC_DBE_LAST       Γöé0x801F    ΓöéNot used but provided for     Γöé
  6174. Γöé                  Γöé          Γöéfuture double byte character  Γöé
  6175. Γöé                  Γöé          Γöésupport.                      Γöé
  6176. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  6177.  
  6178. These predefined constants are contained in the OS/2 Presentation Manager 
  6179. include header files. 
  6180.  
  6181. They are not placed in the include header file created by Prominare Designer 
  6182. when the files are saved to disk. 
  6183.  
  6184. When you click on the drop-down button of the ID field, the drop-down list is 
  6185. displayed showing these predefined constants, along with those constants read 
  6186. in from the include header file and those defined within the current design. 
  6187. Notice that the list displays the ID symbols and values in different colours. 
  6188.  
  6189. The following lists the colours used and their meaning: 
  6190.  
  6191.  Colour              Meaning 
  6192.  Green               Predefined symbol. 
  6193.  Blue                Symbol used within the design and contained within the 
  6194.                      include header. 
  6195.  Black               Symbol not used within the design but contained within the 
  6196.                      include header. 
  6197.  Red                 Symbol not defined within the include header but used 
  6198.                      within the design. 
  6199.  
  6200.  If you click button 2 of the mouse while in the drop-down list area, a pop-up 
  6201.  menu is displayed; through it you can do one of two things. First, you can 
  6202.  select a letter from the list, causing the drop-down list to jump to first 
  6203.  item in the list which has the first letter of the item matching the selected 
  6204.  letter. 
  6205.  
  6206.  You can also click on the Mask menu item, displaying a small window, ID Symbol 
  6207.  Search Mask which you can enter the characters of the search mask to which the 
  6208.  list should be oriented. This allows you to jump to a specific symbol group, 
  6209.  not just to the major character of the group. 
  6210.  
  6211.  
  6212. ΓòÉΓòÉΓòÉ 5.25.7. Edit Deletion List ΓòÉΓòÉΓòÉ
  6213.  
  6214. Once you have selected Verify on save in the New Design dialogue, the Edit 
  6215. Deletion List dialogue appears, which allows you to edit the items in the 
  6216. deletion list. These items include both deleted and renamed items from the 
  6217. dialogues or windows you have created or edited. 
  6218.  
  6219. The items are shown in a list box in the dialogue, with the ID value, control 
  6220. type, and applicable parent. Select the items you wish to delete from the list 
  6221. and press the Delete button to remove them and begin saving the design to disk. 
  6222. Clicking the All button selects all items in the list box, allowing you to 
  6223. deselect items as required. At the beginning of each entry in the dialogue, a 
  6224. letter appears indicating the type of action performed on the object in 
  6225. question. These abbreviations are: 
  6226.  
  6227.  Abbreviation        Meaning 
  6228.  R                   Object renamed. 
  6229.  D                   Object deleted. 
  6230.  M                   Message deleted. 
  6231.  
  6232.  
  6233. ΓòÉΓòÉΓòÉ 5.25.8. Set ID Value ΓòÉΓòÉΓòÉ
  6234.  
  6235. When you want the New ID button to generate a value other than the current high 
  6236. ID value, you simply click button 2 on the New ID button.  This will cause the 
  6237. Set ID Value dialogue to be displayed.  Within this dialogue you can enter a 
  6238. new value that will be used as the next ID when the New ID button is clicked. 
  6239.  
  6240.  
  6241. ΓòÉΓòÉΓòÉ 5.26. Prominare Designer Limits ΓòÉΓòÉΓòÉ
  6242.  
  6243. The following describe the maximum limits of Prominare Designer: 
  6244.  
  6245.  Area                               Limits 
  6246.  Maximum symbols                    10,208 
  6247.  Maximum controls                   1,264 
  6248.  Maximum window/dialogues           1,008 
  6249.  Maximum Resource Script File lines 24,576 
  6250.  Maximum strings/messages           2,032 
  6251.  Maximum resources (i.e. bitmaps)   2,032 
  6252.  Maximum association items          512 
  6253.  Maximum pre-design windows or dialogues 512 
  6254.  Maximum PMCX or temporary controls unlimited 
  6255.  
  6256.  
  6257. ΓòÉΓòÉΓòÉ 6. section four - PM Control Extension (PMCX) ΓòÉΓòÉΓòÉ
  6258.  
  6259. Prominare Designer's PM Control Extension (PMCX) allows you to design and 
  6260. create custom controls, similar to those of OS/2 Presentation Manager, that can 
  6261. be accessed from within your applications. 
  6262.  
  6263. PMCX has been designed so the controls you create can be accessed through 
  6264. Prominare Designer. As with normal OS/2 Presentation Manager controls, you can 
  6265. view the final control as it would appear in your application. And as with 
  6266. Prominare Designer's other controls, you can define a control in terms of its 
  6267. style, text, and other related information. 
  6268.  
  6269. OS/2 Presentation Manager is designed to allow custom or user-defined controls 
  6270. to be included within dialogues. PMCX uses this feature to let you create 
  6271. controls not found in the default OS/2 Presentation Manager environment. In 
  6272. reality, a custom control is similar to any of the windows created for an 
  6273. application. 
  6274.  
  6275. OS/2 Presentation Manager also provides a mechanism for run-time binding of 
  6276. libraries-- namely, dynamic-link libraries. PMCX uses this mechanism to make 
  6277. the custom control accessible to applications including Prominare Designer. 
  6278.  
  6279.  
  6280. ΓòÉΓòÉΓòÉ 6.1. PMCX Architecture ΓòÉΓòÉΓòÉ
  6281.  
  6282. The PM Control Extension is based on a simple foundation that allows both your 
  6283. application and Prominare Designer to interact with it. With the conventions 
  6284. and methodology that follow, you will learn to create PMCX controls. 
  6285.  
  6286. The architecture of a PMCX control, shown in the following diagram, can be 
  6287. described as three publicly defined functions and a window procedure. The three 
  6288. functions have to follow the naming and usage conventions of PMCX, whereas the 
  6289. window procedure is similar to any other window procedure for a custom control. 
  6290.  
  6291. The first convention deals with naming the control and the functions provided 
  6292. in the PMCX control's DLL. For example, the definition of the initialization 
  6293. routine is: 
  6294.  
  6295.       XxxxRegister(HAB hAB); 
  6296.  
  6297.  Xxxx is the formal name of the control, and also the name of the dynamic-link 
  6298.  library. Therefore, for a control called Ruler, the initialization routine 
  6299.  would be 
  6300.  
  6301.       RulerRegister(HAB hAB); 
  6302.  
  6303.  and the dynamic-link library name would be 
  6304.  
  6305.       RULER.DLL 
  6306.  
  6307.  This convention, the corner-stone for PMCX, allows Prominare Designer to 
  6308.  interact properly with the PMCX control DLL. 
  6309.  
  6310.  PMCX defines three required public functions: 
  6311.  
  6312.  Function                      Purpose 
  6313.  XxxxRegister                  Controls registration routine. 
  6314.  XxxxQuery                     Controls information query routine used by 
  6315.                                Prominare Designer to determine capabilities of 
  6316.                                the control. 
  6317.  XxxxStyles                    Control's styles dialogue procedure, used by 
  6318.                                Prominare Designer to allow styles, text, ID 
  6319.                                symbol and value. When included within a design, 
  6320.                                controls specific information to be defined and 
  6321.                                edited. 
  6322.  
  6323.  A PMCX control must also provide certain resources used by Prominare Designer. 
  6324.  The first resource is a dialogue template used for the XxxxStyles dialogue. 
  6325.  The second resource, although not absolutely required, makes reading resource 
  6326.  script files easier, is a set of entries within a string table. These entries 
  6327.  correspond to the style flags of the PMCX control and are used by Prominare 
  6328.  Designer during resource script generation, allowing the entry for the control 
  6329.  to look exactly like a normal PM control. 
  6330.  
  6331.  
  6332. ΓòÉΓòÉΓòÉ 6.2. How it works ΓòÉΓòÉΓòÉ
  6333.  
  6334. Given the dual nature of a PMCX control, there is an easy part and a hard part 
  6335. to the design process. The easy part is how your application interacts with the 
  6336. control. You only need to use the XxxxRegister function in your application to 
  6337. register the control with PM; let PM do the rest. If the control is part of a 
  6338. dialogue template, PM will create the control as thought it were a normal PM 
  6339. control. It is that simple. 
  6340.  
  6341. The hard part is how the control interacts with Prominare Designer. This is a 
  6342. little more complicated, as you have to fill in a structure describing the 
  6343. control's capabilities to Prominare Designer, as well as create the styles 
  6344. dialogue. 
  6345.  
  6346. PMCX defines a set of structures that allow the custom control to pass 
  6347. information between itself and Prominare Designer. The structures are at all 
  6348. times controlled by Prominare Designer, which is responsible for allocating and 
  6349. de-allocating necessary memory for the structures. Only through a callback 
  6350. routine to Prominare Designer are you allowed to reallocate one area of these 
  6351. structures--the area containing the variable sized control data. 
  6352.  
  6353. Some of the structures are used only once, whereas others must be used many 
  6354. times, by both Prominare Designer and the control. The methods of using the 
  6355. structures within the control are defined to allow the control to access and 
  6356. update the elements of the structure. The best place to start is with the 
  6357. header that defines the structures you will use to interact with Prominare 
  6358. Designer. 
  6359.  
  6360.  
  6361. ΓòÉΓòÉΓòÉ 6.2.1. PMCX Definitions Header - PMCX.H ΓòÉΓòÉΓòÉ
  6362.  
  6363. The PMCX definitions header include file, PMCX.H, is used to define constants, 
  6364. structures, and macros, allowing information to be passed between Prominare 
  6365. Designer and the custom control. The contents of PMCX.H are shown below. 
  6366.  
  6367. /* pmcx.h          Created:    1993-12-14  Revised:    1995-11-08       */
  6368.  
  6369. /* PM Control Extensions (PMCX)                                         */
  6370. /* Definitions Header                                                   */
  6371.  
  6372. /* Consult User's Guide for complete description of PM Control          */
  6373. /* Extensions                                                           */
  6374.  
  6375. /* Copyright Γòò 1989-1997  Prominare Inc.  All Rights Reserved.          */
  6376.  
  6377. /* -------------------------------------------------------------------- */
  6378.  
  6379. /* Function Prototypes (32-bit definition)                              */
  6380. /* -------------------                                                  */
  6381. /*                                                                      */
  6382. /*     Control Initialization:                                          */
  6383. /*                                                                      */
  6384. /*         BOOL EXPENTRY XxxxRegister(HAB hAB);                         */
  6385. /*                                                                      */
  6386. /*     Styles Dialogue Procedures:                                      */
  6387. /*                                                                      */
  6388. /*         MRESULT EXPENTRY XxxxStyles(HWND hWnd, ULONG msg,            */
  6389. /*                                     MPARAM mp1, MPARAM mp2);         */
  6390. /*                                                                      */
  6391. /*     Window Procedure:                                                */
  6392. /*                                                                      */
  6393. /*         MRESULT EXPENTRY XxxxWndProc(HWND hWnd, ULONG msg,           */
  6394. /*                                      MPARAM mp1, MPARAM mp2);        */
  6395. /*                                                                      */
  6396. /*     Control Information Procedure:                                   */
  6397. /*                                                                      */
  6398. /*         BOOL EXPENTRY XxxxQuery(PUSERINFO pUserInfo);                */
  6399. /*                                                                      */
  6400. /*     Set Page Procedure:                                              */
  6401. /*                                                                      */
  6402. /*         BOOL EXPENTRY XxxxSetPage(HWND hwndControl, HWND hwndPage);  */
  6403.  
  6404. /* --- Constant Definitions ------------------------------------------- */
  6405.  
  6406. #define CTYPES              1      /* Maximum Number of User Types      */
  6407. #define CCHCLASS           32      /* Maximum Classname Length          */
  6408. #define CCHNAME            32      /* Maximum Name Length               */
  6409. #define CCHAUTHOR          64      /* Maximum Author Name Length        */
  6410. #define CCHDESC            32      /* Maximum Type Description Length   */
  6411. #define CCHID              32      /* Maximum ID Symbol Length          */
  6412. #define CCHTEXTMAX        512      /* Maximum Control Text Length       */
  6413.  
  6414. #define UTYPE_PRIVATE  0x0002      /* Type:  Private                    */
  6415. #define UTYPE_PUBLIC   0x0004      /* Type:  Public                     */
  6416.  
  6417. #define USER_CWINDOWWORDS   8UL    /* Control Reserved Memory Size      */
  6418.  
  6419. #define QWW_USER  (QWL_USER + 0UL) /* Pointer to User Data              */
  6420. #define QWW_CDATA (QWL_USER + 4UL) /* Pointer to Private Data Pointer   */
  6421.  
  6422. #define CUACHK_MNEMONIC    0       /* CUA Check:  Mnemonic              */
  6423. #define CUACHK_CAPS        1       /* CUA Check:  Capitalization        */
  6424. #define CUACHK_ELLIPSIS    2       /* CUA Check:  Ellipsis              */
  6425.  
  6426. #define STYLETYPE_BITFLAGS 0x0001  /* Style Type:  Bit Flags            */
  6427. #define STYLETYPE_SEQUENCE 0x0002  /* Style Type:  Sequential           */
  6428.  
  6429. #define PMCXOPT_NONE      0x00000000UL
  6430. #define PMCXOPT_REFRESH   0x00000001UL
  6431. #define PMCXOPT_VARICDATA 0x00000002UL
  6432. #define PMCXOPT_STYLECHG  0x00000004UL
  6433. #define PMCXOPT_TABABLE   0x00000008UL
  6434. #define PMCXOPT_HELP      0x00000010UL
  6435. #define PMCXOPT_PAGE      0x00000020UL
  6436.  
  6437. /************************************************************************/
  6438. /************************************************************************/
  6439. /*                                                                      */
  6440. /*     PMCX 32-Bit Structure Definitions                                */
  6441. /*                                                                      */
  6442. /************************************************************************/
  6443. /************************************************************************/
  6444.  
  6445. /* --- User Control Styles Structure ---------------------------------- */
  6446.  
  6447. typedef struct _STYLE              /* st */
  6448.    {                               /* Size:    8 bytes                  */
  6449.    ULONG    flStyleMask;           /* Style Flag Mask                   */
  6450.    ULONG    idStyle;               /* Resource String ID                */
  6451.    } STYLE ;
  6452.  
  6453. /* --- User Control Type Structure ------------------------------------ */
  6454.  
  6455. typedef struct _USERTYPE           /* ut */
  6456.    {                               /* Size:  348 bytes                  */
  6457.    LONG     cx;                    /* Suggested Width of Control        */
  6458.    LONG     cy;                    /* Suggested Height of Control       */
  6459.    ULONG    flStyle;               /* Initial Style Flags               */
  6460.    ULONG    flOptions;             /* Options Flag                      */
  6461.    ULONG    cMaxText;              /* Maximum Text Required             */
  6462.    ULONG    idDlg;                 /* Dialogue ID                       */
  6463.    ULONG    idReserved;            /* Reserved                          */
  6464.    ULONG    flStyleType;           /* Style Type                        */
  6465.    ULONG    cCtlData;              /* Control Data Count                */
  6466.    ULONG    ulType;                /* Control Type                      */
  6467.    ULONG    cMasks;                /* Style Masks Count                 */
  6468.    CHAR     szDescription[CCHDESC];/* Control Name                      */
  6469.    STYLE    stMasks[32];           /* Style Masks Array                 */
  6470.    ULONG    aulReserved[4];        /* Reserved                          */
  6471.    } USERTYPE ;
  6472.  
  6473. /* --- User Control Information Structure ----------------------------- */
  6474.  
  6475. typedef struct _USERINFO           /* ui */
  6476.    {                               /* Size:  512 bytes                  */
  6477.    ULONG     ulMajor;              /* Control Version Number:  Major    */
  6478.    ULONG     ulMinor;              /* Control Version Number:  Minor    */
  6479.    CHAR      szAuthor[CCHAUTHOR];  /* Control Author                    */
  6480.    CHAR      szClassname[CCHCLASS];/* Classname                         */
  6481.    CHAR      szName[CCHNAME];      /* Library Name                      */
  6482.    ULONG     aulReserved[6];       /* Reserved                          */
  6483.    ULONG     cTypes;               /* Number of Control Types Supported */
  6484.    USERTYPE  utDefined[CTYPES];    /* Define User Types Array           */
  6485.    } USERINFO ;
  6486.  
  6487. typedef USERINFO *PUSERINFO;
  6488.  
  6489. /* --- User Control Style Structure ----------------------------------- */
  6490.  
  6491. typedef struct _USERSTYLE          /* ust */
  6492.    {                               /* Size:  112 bytes                  */
  6493.    PFN      pfnSetSymbolID;        /* Symbol/ID Set Function Address    */
  6494.    PFN      pfnGetSymbolID;        /* Symbol/ID Get Function Address    */
  6495.    PFN      pfnGetFontClr;         /* Font/Colours Function Address     */
  6496.    PFN      pfnCUACheck;           /* CUA Compliance Function Address   */
  6497.    PFN      pfnRealloc;            /* Reallocation Function Address     */
  6498.    ULONG    flStyle;               /* Style                             */
  6499.    ULONG    id;                    /* ID Value                          */
  6500.    CHAR     szid[CCHID];           /* ID Symbol                         */
  6501.    PSZ      pszText;               /* Text Pointer                      */
  6502.    ULONG    cText;                 /* Text Count (Including NULL)       */
  6503.    PFN      pfnGetBidi;            /* Bidi Params Function Address      */
  6504.    ULONG    aulReserved[8];        /* Reserved                          */
  6505.    PBYTE    pbCtlData;             /* Variable Control Data Pointer     */
  6506.    ULONG    cbCtlData;             /* Control Data Size                 */
  6507.    BYTE     abCtlData[1];          /* Control Data                      */
  6508.    } USERSTYLE ;
  6509.  
  6510. typedef USERSTYLE *PUSERSTYLE;
  6511.  
  6512. /* --- Macro Helpers for Setting or Retrieving User Style Pointer ------ */
  6513.  
  6514. #define PDATATODLG(hwndClient) ((WinSetWindowPtr(hwndClient, QWL_USER,\
  6515.         (PVOID)mp2)))
  6516.  
  6517. #define PDATAFROMDLG(hwndClient) (((PUSERSTYLE)WinQueryWindowPtr(hwndClient,\
  6518.         QWL_USER)))
  6519. There are a set of constant definitions, provided in the header, that you can 
  6520. use in your implementation of the PMCX control. They are a mixture of limits, 
  6521. options, flags, and service requests: 
  6522.  
  6523.  Constant                      Definition 
  6524.  CTYPES                        Defines the maximum length of the class name 
  6525.                                definition, including null terminating byte. 
  6526.  CCHCLASS                      Defines the maximum length of the class name 
  6527.                                definition, including null terminating byte. 
  6528.  CCHNAME                       Defines the maximum length of the control's 
  6529.                                name, including the null terminating byte. 
  6530.  CCHAUTHOR                     Defines the maximum length of the author's name 
  6531.                                for the control, including null terminating 
  6532.                                byte. 
  6533.  CCHDESC                       Defines the maximum length of the control's 
  6534.                                description, including the null terminating 
  6535.                                byte. 
  6536.  CCHID                         Defines the maximum length of the ID symbol, 
  6537.                                including the null terminating byte. 
  6538.  CCHTEXTMAX                    Defines the maximum length of text that can be 
  6539.                                defined for the control, including the null 
  6540.                                terminating byte. 
  6541.  UTYPE_PRIVATE                 Defines the control as a private class; it must 
  6542.                                be registered specifically by the application 
  6543.                                before it is used. This registration is provided 
  6544.                                the XxxxRegister function within the DLL. 
  6545.  UTYPE_PUBLIC                  Defines the control as a public class that has 
  6546.                                been registered with OS/2 Presentation Manager 
  6547.                                and does not need to be registered by the 
  6548.                                application. 
  6549.  USER_CWINDOWWORDS             Defines the minimum amount of reserved memory 
  6550.                                that must be allocated for the control when it 
  6551.                                is registered with OS/2 Presentation Manager. 
  6552.                                Additional reserved memory can be allocated by 
  6553.                                adding the value to the constant in the 
  6554.                                XxxxRegister function. 
  6555.  QWW_USER                      Used as an index into the control's reserved 
  6556.                                memory, where the pointer to the user data is 
  6557.                                located. Constant  Definition 
  6558.  QWW_CDATA                     Used as an index into the control's reserved 
  6559.                                memory, where the pointer to the private control 
  6560.                                data memory allocated for the control is 
  6561.                                located. 
  6562.  CUACHK_MNEMONIC               Used as an option with the pfnCUACheck function 
  6563.                                to check the text of the control for CUA 
  6564.                                compliance in terms of mnemonic inclusion. 
  6565.  CUACHK_CAPS                   Used as an option with the pfnCUACheck function 
  6566.                                to check the text of the control for CUA 
  6567.                                compliance in terms of capitalization. 
  6568.  CUACHK_ELLIPSIS               Used as an option with the pfnCUACheck function 
  6569.                                to check the text of the control for CUA 
  6570.                                compliance in terms of a space between the text 
  6571.                                and ellipsis. 
  6572.  STYLETYPE_BITFLAGS            Indicstes that the style masks are bitflags and 
  6573.                                that the style generated in the resource script 
  6574.                                can be multiple values when bitwise compared to 
  6575.                                the style masks. 
  6576.  STYLETYPE_SEQUENCE            Indicates that the style masks are sequential in 
  6577.                                nature and that the styles generated within the 
  6578.                                resource script should be based on a single 
  6579.                                value that must match the style mask. 
  6580.  PMCXOPT_NONE                  Indicates that no special options are required. 
  6581.  PMCXOPT_REFRESH               Indicates that the control should be refreshed 
  6582.                                through Prominare Designer, where Prominare 
  6583.                                Designer will delete the previous instance of 
  6584.                                the control and create a new one to show the 
  6585.                                revised styles selected. 
  6586.  PMCXOPT_VARICDATA             Indicates that the control supports variable 
  6587.                                length control data. 
  6588.  PMCXOPT_STYLECHG              Indicates that the control supports the changing 
  6589.                                of the style flags using the WinSetWindowULong 
  6590.                                function and the index of QWL_STYLE. 
  6591.  PMCXOPT_TABABLE               Indicates that the control supports tabbing and 
  6592.                                cursor movement selections. 
  6593.  PMCXOPT_HELP                  Indicates that the control allows the help to be 
  6594.                                selected when it receives focus. 
  6595.  PMCXOPT_PAGE                  Indicates that the control is a page-type 
  6596.                                control which is similar in nature to the PM 
  6597.                                notebook control where a dialogue template is 
  6598.                                used as the contents of the control. 
  6599.  
  6600.  Four structures are defined within the header. Three are used to describe the 
  6601.  PMCX control to Prominare Designer; the fourth is used by Prominare Designer 
  6602.  to communicate with the styles dialogue: 
  6603.  
  6604.  Name                          Purpose 
  6605.  STYLE                         Defines a control style mask and the 
  6606.                                corresponding resource file string table ID. 
  6607.                                Used by the USERTYPE structure. 
  6608.  USERTYPE                      Defines the user control type. The information 
  6609.                                within the structure is for the default 
  6610.                                characteristics of the control, the ID of the 
  6611.                                dialogue template within the control's DLL for 
  6612.                                the styles dialogue, the room necessary for 
  6613.                                additional control data (i.e. picture masks, 
  6614.                                ranges, limits, etc.), control type, styles 
  6615.                                count, and style masks. Used by the USERINFO 
  6616.                                structure. 
  6617.  USERINFO                      Defines information for the control initially 
  6618.                                queried by Prominare Designer to determine the 
  6619.                                capabilities of the control. The control's 
  6620.                                version number, author, class, and types are 
  6621.                                defined. Used only by the XxxxQuery function. 
  6622.  USERSTYLE                     Used by Prominare Designer and the XxxxStyles 
  6623.                                functions to allow a method of communication 
  6624.                                regarding data information entered or edited 
  6625.                                through the dialogue procedure. The structure 
  6626.                                provides helper function addresses that can be 
  6627.                                used to reference the control's style, ID symbol 
  6628.                                and value, and text, and to control specific 
  6629.                                data. 
  6630.  
  6631.  The STYLE structure is defined as: 
  6632.  
  6633.  Field                         Purpose 
  6634.  flStyleMask                   Contains a style flag mask for a possible style 
  6635.                                of the control. Should be in the form of 
  6636.                                0x0000UL. The style mask must correspond with a 
  6637.                                resource string indicated in the idStyle field. 
  6638.  idStyle                       Contains the ID of the resource string for the 
  6639.                                corresponding style mask in the flStyleMask 
  6640.                                field. 
  6641.  
  6642.  The following is an example of how the structure is used: 
  6643.  
  6644.   /* Constants definitions within an include header file */
  6645.  
  6646.   #define EC_NORMALBORDER  0x0001L
  6647.   #define EC_THICKBORDER   0x0002L
  6648.   #define EC_NOBORDER 0x0004L
  6649.  
  6650.   #define IDS_NORMALBORDER 800
  6651.   #define IDS_THICKBORDER  801
  6652.   #define IDS_NOBORDER     802
  6653.  
  6654.   /* Within source code file */
  6655.   USERTYPE utExample;
  6656.  
  6657.   utExample.flStyleType         = STYLETYPE_BITFLAGS;
  6658.   utExample.stMasks[0].flStyleMask   = EC_NORMALBORDER;
  6659.   utExample.stMasks[0].idStyle       = IDS_NORMALBORDER;
  6660.   utExample.stMasks[1].flStyleMask   = EC_THICKBORDER;
  6661.   utExample.stMasks[1].idStyle       = IDS_THICKBORDER;
  6662.   utExample.stMasks[2].flStyleMask   = EC_NOBORDER;
  6663.   utExample.stMasks[2].idStyle       = IDS_NOBORDER;
  6664.  
  6665.   /* Within resource script file */
  6666.  
  6667.   STRINGTABLE
  6668.   BEGIN
  6669.        IDS_NORMALBORDER,   "EC_NORMALBORDER"
  6670.        IDS_THICKBORDER,    "EC_THICKBORDER"
  6671.        IDS_NOBORDER,  "EC_NOBORDER"
  6672.   END
  6673.  
  6674.  The USERTYPE structure is defined as: 
  6675.  
  6676.  Field                         Purpose 
  6677.  cx                            Contains the suggested width of the control in 
  6678.                                dialogue units. This value will be used by 
  6679.                                Prominare Designer as the initial width of the 
  6680.                                control when it is added to a window or 
  6681.                                dialogue. 
  6682.  cy                            Contains the suggested height of the control in 
  6683.                                dialogue units. This value will be used by 
  6684.                                Prominare Designer as the initial height of the 
  6685.                                control when it is added to a window or 
  6686.                                dialogue. 
  6687.  flStyle                       Contains initial style flags of the control when 
  6688.                                it is created by Prominare Designer. 
  6689.  flOptions                     Contains the options flag, which can be one of 
  6690.                                the PMCXOPT_* flags. 
  6691.  cMaxText                      Contains the maximum number of characters that 
  6692.                                the control is capable of handling. This value 
  6693.                                is used by Prominare Designer to allocate space 
  6694.                                for the control text addressed in the pszText 
  6695.                                field in the USERSTYLE structure. 
  6696.  idDlg                         Contains the resource ID of the styles dialogue 
  6697.                                displayed by Prominare Designer when the control 
  6698.                                is first added to a window or dialogue or when 
  6699.                                the user requests to edit the styles of the 
  6700.                                control. 
  6701.  idReserved                    Reserved. 
  6702.  flStyleType                   Contains the style type flag that indicates to 
  6703.                                Prominare Designer how the style masks should be 
  6704.                                interpreted when the resource script statement 
  6705.                                for the control is generated. The current style 
  6706.                                types defined are STYLETYPE_BITFLAGS for bitflag 
  6707.                                styles and STYLETYPE_SEQUENCE for sequential 
  6708.                                styles. 
  6709.  cCtlData                      Contains the number of bytes that should be 
  6710.                                allocated for private data used by the control. 
  6711.                                This data is allocated by Prominare Designer and 
  6712.                                is addressed in the abCtlData field in the 
  6713.                                USER_STYLE structure. 
  6714.  ulType                        Contains the control type, which may be either 
  6715.                                UTYPE_PRIVATE or UTYPE_PUBLIC. 
  6716.  cMasks                        Contains the total count of style masks defined 
  6717.                                in stMasks field. 
  6718.  szDescription[CCHDESC]        Contains a short description that can be 
  6719.                                displayed by Prominare Designer. 
  6720.  stMasks[32]                   Contains the control style flag masks and ID 
  6721.                                string values. aulReserved[4] Reserved. 
  6722.  
  6723.  The following is an example of how the structure is used: 
  6724.  
  6725.   USERTYPE utDefined;
  6726.  
  6727.   utDefined.cx           = 50L;
  6728.   utDefined.cy           = 12L;
  6729.   utDefined.flStyle      = 0UL;
  6730.   utDefined.idDlg        = Dialogue id;
  6731.   utDefined.ulType       = UTYPE_PRIVATE;
  6732.   utDefined.cCtlData     = 20UL;
  6733.   utDefined.cMasks       = 2UL;
  6734.   utDefined.cMaxText     = 5UL;
  6735.   utdefined.flStyleType  = STYLETYPE_BITFLAGS;
  6736.   utDefined.stMasks[0].flStyleMask = 0x0001UL;
  6737.   utDefined.stMasks[0].idStyle     = String id;
  6738.   utDefined.stMasks[1].flStyleMask = 0x0002UL;
  6739.   utDefined.stMasks[1].idStyle     = String id;
  6740.   strcpy(utDefined.szDescription, "Description");
  6741.  
  6742.  The USERINFO structure is defined as: 
  6743.  
  6744.  Field                         Purpose 
  6745.  ulMajor                       Contains the control's major version number. 
  6746.  ulMinor                       Contains the control's minor version number. 
  6747.  szAuthor[CCHAUTHOR]           Contains the control's author name. 
  6748.  szClassname[CCHCLASS]         Contains the classname of the control. 
  6749.  szName[CCHNAME]               Contains the common name for the control. This 
  6750.                                name should correspond to the Xxxx component of 
  6751.                                the required functions as well as to the 
  6752.                                dynamic- link library name. 
  6753.  aulReserved[6]                Reserved. 
  6754.  cTypes                        Contains the number of types supported by the 
  6755.                                control. In Version 1.0 of PMCX, only one type 
  6756.                                is allowed and this field must be 1. 
  6757.  utDefined[CTYPES]             Contains the type information of each of the 
  6758.                                controls supported by the control. In Version 
  6759.                                1.0 of PMCX, only the first array element is 
  6760.                                used. 
  6761.  
  6762.  The following is an example of how the structure is used: 
  6763.  
  6764.   USERINFO uiControl;
  6765.  
  6766.   uiControl.ulMajor = 1UL;
  6767.   uiControl.ulMinor = 0UL;
  6768.   uiControl.cTypes = 1UL;
  6769.   strcpy(uiControl.szAuthor, "Author");
  6770.   strcpy(uiControl.szClassname, "Classname");
  6771.   strcpy(uiControl.szName, "Common Name");
  6772.   uiControl.utDefined[0].cx           = 50L;
  6773.   uiControl.utDefined[0].cy           = 12L;
  6774.   uiControl.utDefined[0].flStyle      = 0UL;
  6775.   uiControl.utDefined[0].idDlg        = Dialogue id;
  6776.   uiControl.utDefined[0].ulType       = UTYPE_PRIVATE;
  6777.   uiControl.utDefined[0].cCtlData     = 20UL;
  6778.   uiControl.utDefined[0].cMasks       = 2UL;
  6779.   uiControl.utDefined[0].cMaxText     = 5UL;
  6780.   uiControl.utDefined[0].flStyleType  = STYLETYPE_BITFLAGS;
  6781.   uiControl.utDefined[0].stMasks[0].flStyleMask = 0x0001UL;
  6782.   uiControl.utDefined[0].stMasks[0].idStyle     = String id;
  6783.   uiControl.utDefined[0].stMasks[1].flStyleMask = 0x0002UL;
  6784.   uiControl.utDefined[0].stMasks[1].idStyle     = String id;
  6785.   strcpy(uiControl.utDefined[0].szDescription, "Description");
  6786.  
  6787.  The USERSTYLE structure is defined as: 
  6788.  
  6789.  Field                         Purpose 
  6790.  pfnSetSymbol                  Contains the function address for the function 
  6791.                                in Prominare Designer that sets the ID field 
  6792.                                symbol and value. 
  6793.  pfnGetSymbol                  Contains the function address for the function 
  6794.                                in Prominare Designer that causes the ID field 
  6795.                                symbol and value to be validated and placed 
  6796.                                within the USERSTYLE structure. 
  6797.  pfnGetFontClr                 Contains the function address for the Font & 
  6798.                                Colours dialogue. Prominare Designer internally 
  6799.                                records the font and colours selected by the 
  6800.                                user on behalf of the control. 
  6801.  pfnCUACheck                   Contains the function address for the CUA 
  6802.                                Compliance checking function. Compliance for 
  6803.                                mnemonics, capitalization, and ellipsis can be 
  6804.                                checked via this function if the control 
  6805.                                supports any of these features. A value of TRUE 
  6806.                                is returned if non-compliance is determined. A 
  6807.                                value of FALSE is returned if the control is 
  6808.                                compliant. 
  6809.  pfnRealloc                    Contains the function address for the control 
  6810.                                data reallocation function, which allows the 
  6811.                                control to reallocate the necessary control data 
  6812.                                memory when it supports variable control data. 
  6813.  flStyle                       Contains the current style flags set for the 
  6814.                                control. 
  6815.  id                            Contains the current ID value for the control. 
  6816.  szid[CCHID]                   Contains the current ID symbol for the control. 
  6817.  pszText                       Contains the address of the text for the 
  6818.                                control. 
  6819.  cText                         Contains the count of characters for the 
  6820.                                control. 
  6821.  pfnGetBidi                    Contains the function address for the 
  6822.                                Bidirectional Support dialogue. Prominare 
  6823.                                Designer internally records the bi-directional 
  6824.                                options selected by the user on behalf of the 
  6825.                                control. 
  6826.  aulReserved[8]                Reserved. 
  6827.  pbCtlData                     Contains the variable control data buffer 
  6828.                                pointer. Used only when the control supports 
  6829.                                variable control data; used in place of the 
  6830.                                abCtlData field. 
  6831.  cbCtlData                     Contains the size of the control data buffer 
  6832.                                pbCtlData when the control supports variable 
  6833.                                control data. 
  6834.  abCtlData[1]                  First element of the private control data. When 
  6835.                                control data is used, the control should cast 
  6836.                                the appropriate structure to the address of the 
  6837.                                array, so it can easily address areas of the 
  6838.                                data. 
  6839.  
  6840.  Two helper macros are defined in the header: 
  6841.  
  6842.  Macro                         Purpose 
  6843.  PDATATODLG                    Places the passed address of the USERSTYLE 
  6844.                                pointer in the dialogue's reserved memory. The 
  6845.                                passed address is contained within the second 
  6846.                                message parameters (MPARAM mp2) and must be 
  6847.                                placed in the dialogue's reserved memory when it 
  6848.                                receives the WM_INITDLG message. 
  6849.  PDATAFROMDLG                  References the memory location in the dialogue 
  6850.                                procedure where the USERSTYLE pointer passed to 
  6851.                                the dialogue is placed. A pointer returned by 
  6852.                                the macro allows reference to the elements of 
  6853.                                the USERSTYLE structure. 
  6854.  
  6855.  
  6856. ΓòÉΓòÉΓòÉ 6.3. PMCX construction ΓòÉΓòÉΓòÉ
  6857.  
  6858. The first item of concern is the naming convention. The best way to illustrate 
  6859. this is by considering the example below: 
  6860.  
  6861. Functions 
  6862.  
  6863.       XxxxRegister 
  6864.  
  6865.       XxxxQuery 
  6866.  
  6867.       XxxxStyles 
  6868.  
  6869.       XxxxSetPage 
  6870.  
  6871.  Dynamic-Link Library 
  6872.  
  6873.       Xxxx.DLL 
  6874.  
  6875.  Xxxx is the common name for the control. (The common name should be restricted 
  6876.  to eight letters to allow for FAT disk systems unless it is to be used 
  6877.  specifically with HPFS disk systems.) The common name is allowed to be a 
  6878.  maximum of 32 bytes long, including the NULL terminating character; the szName 
  6879.  field of the USERINFO structure will accept only that number of characters. 
  6880.  
  6881.  The second item of concern is who is responsible for allocating and 
  6882.  de-allocating memory for the structures. Prominare Designer allocates and 
  6883.  de-allocates the necessary memory for structures used to communicate with the 
  6884.  PMCX control. It provides a pointer to the memory address of the structure and 
  6885.  to the function when communication is required. It is the responsibility of 
  6886.  the PMCX control's style function to save the address of the structure. Any 
  6887.  pointers to memory elements within the structures are also allocated and 
  6888.  deallocated by Prominare Designer on behalf of the control. 
  6889.  
  6890.  The only exception is in the case of a control that allows for variable length 
  6891.  control data. In this case, the control can, through a callback function to 
  6892.  Prominare Designer, reallocate the control data memory. 
  6893.  
  6894.  Since the PMCX control's dialogue procedure is responsible for saving the 
  6895.  address of the USERSTYLE structure address passed to it by Prominare Designer, 
  6896.  you can use the two helper macros defined by the styles dialogue procedure to 
  6897.  save and retrieve the address. To save the USERSTYLE structure address in the 
  6898.  QWL_USER reserved memory location of the dialogue's reserved memory, use the 
  6899.  PDATATODLG macro. To retrieve the USERSTYLE structure address, use 
  6900.  PDATAFROMDLG macro. 
  6901.  
  6902.  To ensure  the success of any PMCX control, you must encapsulate its use to 
  6903.  permit multiple usage, which means that the control must be totally 
  6904.  re-entrant. One way to do this is with dynamically allocated memory. Save this 
  6905.  memory address within the control's reserved memory. These addresses can be 
  6906.  referenced with the QWW_* indices. 
  6907.  
  6908.  Prominare Designer provides a set of helper functions for the control's style 
  6909.  dialogue, which ensure that the dialogue remains consistent with similar 
  6910.  dialogues provided with Prominare Designer. These helper functions must give 
  6911.  the control's dialogue access to the ID field, the Font & Colours dialogue, 
  6912.  symbol verification, and CUA compliance. Prominare Designer must provide the 
  6913.  addresses of these routines within the USERSTYLE structure in the following 
  6914.  elements: 
  6915.  
  6916.  Callback                      Purpose 
  6917.  pfnSetSymbol                  ID field symbol and value set helper function 
  6918.  pfnGetSymbol                  Symbol ID and value validation and retrieval 
  6919.                                helper function 
  6920.  pfnGetFontClr                 Font and colours helper function 
  6921.  pfnCUACheck                   CUA Compliance helper function 
  6922.  pfnGetBidi                    Bidirectional helper function 
  6923.  pfnRealloc                    Memory reallocation function similar to C 
  6924.                                library function realloc( ) 
  6925.  
  6926.  Prominare Designer constructs the necessary statements in the resource script 
  6927.  on behalf of the PMCX control. In turn, the control must provide style masks 
  6928.  and a string table containing the ASCII style definitions in its resources, if 
  6929.  styles are permitted for the control. The style masks and ID values for the 
  6930.  string that corresponds to the style masks are to be placed in the provided 
  6931.  structure elements of the USERINFO structure, along with the count of masks. 
  6932.  The control must also provide the number of control data bytes it requires 
  6933.  through the USERINFO structure. This structure must be completed in the 
  6934.  function XxxxQuery, through the structure address passed to the function when 
  6935.  it is called by Prominare Designer. 
  6936.  
  6937.  The functions defined for the control must be exported in the controls 
  6938.  definition file. The name of the function should be entered along with an 
  6939.  ordinal value. The following ordinals are required: 
  6940.  
  6941.  Function                      Ordinal 
  6942.  XxxxRegister                  1 
  6943.  XxxxQuery                     2 
  6944.  XxxxStyles                    3 
  6945.  XxxxSetPage                   4 
  6946.  
  6947.  
  6948. ΓòÉΓòÉΓòÉ 6.4. Reference ΓòÉΓòÉΓòÉ
  6949.  
  6950. The following describes the use of each of the required functions of the PMCX 
  6951. control. 
  6952.  
  6953.  
  6954. ΓòÉΓòÉΓòÉ 6.4.1. XxxxRegister ΓòÉΓòÉΓòÉ
  6955.  
  6956.  
  6957. ΓòÉΓòÉΓòÉ 6.4.1.1. Purpose ΓòÉΓòÉΓòÉ
  6958.  
  6959. The XxxxRegister function is used to register a private control with OS/2 
  6960. Presentation Manager. It is also used to provide any control specific 
  6961. initialization. 
  6962.  
  6963.  
  6964. ΓòÉΓòÉΓòÉ 6.4.1.2. Prototype Definition ΓòÉΓòÉΓòÉ
  6965.  
  6966. BOOL EXPENTRY XxxxRegister(HAB hAB);
  6967.  
  6968.  
  6969. ΓòÉΓòÉΓòÉ 6.4.1.3. Upon entry ΓòÉΓòÉΓòÉ
  6970.  
  6971. hAB contains the calling application's anchor block handle. When the control is 
  6972. a UTYPE_PRIVATE, the function must register the control with OS/2 Presentation 
  6973. Manager using the WinRegisterClass function, as follows: 
  6974.  
  6975. WinRegisterClass(hAB, pszClassname, XxxxWndProc,
  6976.                  CS_CLIPSIBLINGS | CS_SYNCPAINT |
  6977.                  CS_SIZEREDRAW,  USER_CWINDOWWORDS);
  6978.  
  6979. Additional memory can be reserved for the control by adding the required value 
  6980. to the USER_CWINDOWWORDS constant. Additional class styles can also be defined 
  6981. for the control. The pszClassname must contain the classname of the control and 
  6982. be consistent with the value placed in the USERINFO structure element 
  6983. szClassname in the XxxxQuery function.  The control can use other style flags 
  6984. as is appropriate. 
  6985.  
  6986.  
  6987. ΓòÉΓòÉΓòÉ 6.4.1.4. Upon exit ΓòÉΓòÉΓòÉ
  6988.  
  6989. XxxxRegister must return a value of TRUE, denoting successful registration of 
  6990. the control with OS/2 Presentation Manager. A returned value of FALSE indicates 
  6991. that the control could not be registered and therefore should not be used. 
  6992.  
  6993.  
  6994. ΓòÉΓòÉΓòÉ 6.4.2. XxxxQuery ΓòÉΓòÉΓòÉ
  6995.  
  6996.  
  6997. ΓòÉΓòÉΓòÉ 6.4.2.1. Purpose ΓòÉΓòÉΓòÉ
  6998.  
  6999. The XxxxQuery function is called by Prominare Designer to determine the 
  7000. capabilities of the control and to receive information critical to its 
  7001. successful use within Prominare Designer. The USERINFO structure is completed 
  7002. through this function, in which Prominare Designer passes the function the 
  7003. address of the structure. 
  7004.  
  7005.  
  7006. ΓòÉΓòÉΓòÉ 6.4.2.2. Prototype Definition ΓòÉΓòÉΓòÉ
  7007.  
  7008. BOOL EXPENTRY XxxxQuery (PUSERINFO pUserInfo);
  7009.  
  7010.  
  7011. ΓòÉΓòÉΓòÉ 6.4.2.3. Upon entry ΓòÉΓòÉΓòÉ
  7012.  
  7013. pUserInfo contains the address of the USERINFO structure allocated within 
  7014. Prominare Designer in which the XxxxQuery function can complete. The 
  7015. information placed within the structure is done as follows: 
  7016.  
  7017. pUserInfo->ulMajor = 1UL;
  7018. pUserInfo->ulMinor = 0UL;
  7019. pUserInfo->cTypes = 1UL;
  7020. strcpy(pUserInfo->szAuthor, "Author");
  7021. strcpy(pUserInfo->szClassname, "Classname");
  7022. strcpy(pUserInfo->szName, "Common Name");
  7023. pUserInfo->utDefined[0].cx           = 50L;
  7024. pUserInfo->utDefined[0].cy           = 12L;
  7025. pUserInfo->utDefined[0].flStyle      = 0UL;
  7026. pUserInfo->utDefined[0].idDlg        = Dialogue id;
  7027. pUserInfo->utDefined[0].ulType       = UTYPE_PRIVATE;
  7028. pUserInfo->utDefined[0].cCtlData     = 20UL;
  7029. pUserInfo->utDefined[0].cMasks       = 2UL;
  7030. pUserInfo->utDefined[0].cMaxText     = 5UL;
  7031. pUserInfo->utDefined[0].flStyleType  = STYLETYPE_BITFLAGS;
  7032. pUserInfo->utDefined[0].stMasks[0].flStyleMask = 0x0001UL;
  7033. pUserInfo->utDefined[0].stMasks[0].idStyle     = String id;
  7034. pUserInfo->utDefined[0].stMasks[1].flStyleMask = 0x0002UL;
  7035. pUserInfo->utDefined[0].stMasks[1].idStyle     = String id;
  7036. strcpy(pUserInfo->utDefined[0].szDescription, "Description");
  7037.  
  7038.  
  7039. ΓòÉΓòÉΓòÉ 6.4.2.4. Upon exit ΓòÉΓòÉΓòÉ
  7040.  
  7041. XxxxQuery must return a value of TRUE, denoting successful completion of the 
  7042. structure. A returned value of FALSE indicates that the structure was not 
  7043. completed and the control therefore should not be used. 
  7044.  
  7045.  
  7046. ΓòÉΓòÉΓòÉ 6.4.3. XxxxStyles ΓòÉΓòÉΓòÉ
  7047.  
  7048.  
  7049. ΓòÉΓòÉΓòÉ 6.4.3.1. Purpose ΓòÉΓòÉΓòÉ
  7050.  
  7051. The XxxxStyles function is the PMCX control's style dialogue used through 
  7052. Prominare Designer. 
  7053.  
  7054.  
  7055. ΓòÉΓòÉΓòÉ 6.4.3.2. Prototype Definition ΓòÉΓòÉΓòÉ
  7056.  
  7057. MRESULT EXPENTRY XxxxStyles(HWND hWnd, ULONG msg,
  7058.               MPARAM mp1, MPARAM mp2);
  7059.  
  7060.  
  7061. ΓòÉΓòÉΓòÉ 6.4.3.3. Upon entry ΓòÉΓòÉΓòÉ
  7062.  
  7063. Normal dialogue procedure coding except as noted in Special Considerations 
  7064. below. 
  7065.  
  7066.  
  7067. ΓòÉΓòÉΓòÉ 6.4.3.4. Upon exit ΓòÉΓòÉΓòÉ
  7068.  
  7069. XxxxStyles should return values consistent with normal dialogue procedures. 
  7070.  
  7071.  
  7072. ΓòÉΓòÉΓòÉ 6.4.3.5. Special considerations ΓòÉΓòÉΓòÉ
  7073.  
  7074. During the processing of the WM_INITDLG message, the control should reference 
  7075. message parameter 2 (MPARAM mp2) as follows: 
  7076.  
  7077. PDATATODLG(hWnd);
  7078.  
  7079. This causes the address of the USERSTYLE structure allocated within Prominare 
  7080. Designer to be saved in the dialogue's reserved memory. The dialogue can then 
  7081. reference the information in the USERSTYLE structure with the following method: 
  7082.  
  7083. pust = PDATAFROMDLG(hWnd);
  7084.  
  7085. Also, the entry fields for the dialogue along with any styles should be 
  7086. completed during processing of the WM_INITDLG message. For example, with a 
  7087. control that supported text, the following could be used to fill in the Text 
  7088. and ID fields: 
  7089.  
  7090. if ( (pust = (PUSERSTYLE)mp2) != NULL )
  7091.      {
  7092.      WinSetDlgItemText(hWnd, ID_TEXT, pust->szText);
  7093.      pust->pfnSetSymbolID(hWnd, IDBX_SYMBOLVALUE, pust);
  7094.      }
  7095.  
  7096. When the dialogue is dismissed, the function must return either TRUE through 
  7097. the WinDismissDlg function, to indicate to Prominare Designer changes have been 
  7098. made to the USERSTYLE structure, or FALSE, to indicate that no changes were 
  7099. made. 
  7100.  
  7101. The USERSTYLE structure contains the addresses of the five Prominare Designer 
  7102. helper routines, defined as follows: 
  7103.  
  7104. VOID (EXPENTRY *pfnSetSymbolID)(HWND hWnd, ULONG idSymbol, PUSERSTYLE pust);
  7105. BOOL (EXPENTRY *pfnGetSymbolID)(HWND hWnd, ULONG idSymbol, PUSERSTYLE pust);
  7106. VOID (EXPENTRY *pfnGetFontClr)(HWND hWnd);
  7107. BOOL (EXPENTRY *pfnCUACheck)(HWND hWnd, ULONG idEntryField,
  7108.                              LONG iCUACompliance);
  7109. BOOL (EXPENTRY *pfnRealloc)(PVOID pv, INT cSize);
  7110.  
  7111. In this case, you would use the pfnSetSymbol in conjunction with the ID field. 
  7112. The function is used to set the symbol and value of the control within the ID 
  7113. field, as shown here: 
  7114.  
  7115. if ( (pust = (PUSERSTYLE)mp2) != NULL )
  7116.      pust->pfnSetSymbolID(hWnd, IDBX_SYMBOLVALUE, pust);
  7117.  
  7118. The pfnGetFontClr function allows the user to display the Font & Colours 
  7119. dialogue when he or she clicks on the Font & Colours... button. The function 
  7120. allows the user to set the font and colours for the control, as shown here: 
  7121.  
  7122. case WM_COMMAND :
  7123.      switch ( SHORT1FROMMP(mp1) )
  7124.           {
  7125.           case ID_FONTCLR :
  7126.                if ( (pust = PDATAFROMDLG(hWnd)) != NULL )
  7127.                     pust->pfnGetFontClr(hWnd);
  7128.                break;
  7129.           .
  7130.           .
  7131.           .
  7132.           }
  7133.      break;
  7134.  
  7135. The pfnGetBidi function allows the user to display the Bidirectional Support 
  7136. dialogue when he or she clicks on the Bidi... button. The function allows the 
  7137. user to set the bi-directional options as shown here: 
  7138.  
  7139. case WM_COMMAND :
  7140.      switch ( SHORT1FROMMP(mp1) )
  7141.           {
  7142.           case ID_BIDI :
  7143.                if ( (pust = PDATAFROMDLG(hWnd)) != NULL )
  7144.                     pust->pfnGetBidi(hWnd);
  7145.                break;
  7146.           .
  7147.           .
  7148.           .
  7149.           }
  7150.      break;
  7151.  
  7152. Use the pfnGetSymbol function when the user tells the dialogue to accept the 
  7153. changes made. The function checks the values in the ID field for validity and 
  7154. displays any required error message boxes. If the function returns a value of 
  7155. FALSE, the dialogue procedure should not retrieve any changes made but should 
  7156. simply break the current processing, allowing the user to correct values within 
  7157. the dialogue as he or she sees fit. A return value of TRUE indicates that the 
  7158. dialogue should retrieve all changes made and save them in the USERSTYLE 
  7159. structure before dismissing the dialogue. The function also retrieves the ID 
  7160. symbol and value and places them in the USERSTYLE structure, as shown here: 
  7161.  
  7162. case WM_COMMAND :
  7163.      switch ( SHORT1FROMMP(mp1) )
  7164.           {
  7165.           case DID_OK :
  7166.                if ( (pust = PDATAFROMDLG(hWnd)) != NULL )
  7167.                     if ( !pust->pfnGetSymbolID(hWnd, IDBX_SYMBOLVALUE, pust) )
  7168.                          {
  7169.                          .
  7170.                          .    /* Continue processing */
  7171.                          .
  7172.                          WinDismissDlg(hWnd, TRUE);
  7173.                          }
  7174.                break;
  7175.           .
  7176.           .
  7177.           .
  7178.           }
  7179.      break;
  7180.  
  7181. Use the pfnCUACheck function when the user tells the dialogue to accept the 
  7182. changes made. Depending on the option selected, the function checks the values 
  7183. in the Text entry field for CUA compliance and displays any required error 
  7184. message boxes. If the function returns a value of FALSE, the dialogue procedure 
  7185. should not retrieve any changes made but should simply break the current 
  7186. processing, allowing the user to correct values in the dialogue as he or she 
  7187. sees fit. A return value of TRUE indicates that the dialogue should retrieve 
  7188. all changes made, saving them in the USERSTYLE structure before dismissing the 
  7189. , as shown here: 
  7190.  
  7191. case WM_COMMAND :
  7192.      switch ( SHORT1FROMMP(mp1) )
  7193.           {
  7194.           case DID_OK :
  7195.                if ( (pust = PDATAFROMDLG(hWnd)) != NULL )
  7196.                     if ( pust->pfnCUACheck(hWnd, ID_TEXT, CUACHK_CAPS) )
  7197.                          break;
  7198.                     else
  7199.                          {
  7200.                          .    /* Continue processing */
  7201.                          .
  7202.                          .
  7203.                          WinDismissDlg(hWnd, TRUE);
  7204.                          }
  7205.                break;
  7206.           .
  7207.           .
  7208.           }
  7209.      break;
  7210.  
  7211. Finally, use the pfnRealloc function when the control allows variable-length 
  7212. control data and the user has indicated a wish to save the information for the 
  7213. control. You must use the function to reallocate the data buffer for the 
  7214. control data, since Prominare Designer controls memory allocation for the 
  7215. structures. The function utilizes the memory management routines of Prominare 
  7216. Designer; care must therefore be exercised so the function is not misused. 
  7217. Otherwise, Prominare Designer may develop a fatal unrecoverable error 
  7218. condition. The function is exactly like the C library realloc( ) function in 
  7219. usage. It is shown here: 
  7220.  
  7221. case WM_COMMAND :
  7222.      switch ( SHORT1FROMMP(mp1) )
  7223.           {
  7224.           case DID_OK :
  7225.                if ( (pust = PDATAFROMDLG(hWnd)) != NULL )
  7226.                     {
  7227.                     if ( !(pust->pbCtlData =
  7228.                          (PBYTE)pust->pfnRealloc(pust->pbCtlData,
  7229.                                              sizeof(COMBOBOXCDATA) - 1L)) )
  7230.                          {
  7231.                          WinMessageBox(HWND_DESKTOP, hWnd,
  7232.                                         "Memory error on reallocating control data!",
  7233.                                         "Super Combo Box Control", 0,
  7234.                                         MB_OK | MB_ICONEXCLAMATION);
  7235.                          return(0L);
  7236.                          }
  7237.  
  7238.                     pust->cbCtlData = sizeof(COMBOBOXCDATA) - 1 + n;
  7239.  
  7240.                     pcbd = (PCOMBOBOXCDATA)pust->pbCtlData;
  7241.                     pcbd->cb = sizeof(COMBOBOXCDATA) - 1 + n;
  7242.                     pcbd->cItems = cItems;
  7243.                     memcpy(pcbd->abList, pchData, n);
  7244.                     }
  7245.                break;
  7246.           .
  7247.           .
  7248.           }
  7249.      break;
  7250.  
  7251.  
  7252. ΓòÉΓòÉΓòÉ 6.4.4. XxxxSetPage ΓòÉΓòÉΓòÉ
  7253.  
  7254.  
  7255. ΓòÉΓòÉΓòÉ 6.4.4.1. Purpose ΓòÉΓòÉΓòÉ
  7256.  
  7257. The XxxxSetPage function is used to take a dialogue window handle that is to be 
  7258. used as the page contents. The PMCX control can then take the handle and use it 
  7259. for the page contents. 
  7260.  
  7261.  
  7262. ΓòÉΓòÉΓòÉ 6.4.4.2. Prototype Definition ΓòÉΓòÉΓòÉ
  7263.  
  7264. BOOL EXPENTRY XxxxSetPage(HWND hwndCntrl, HWND hwndPage);
  7265.  
  7266.  
  7267. ΓòÉΓòÉΓòÉ 6.4.4.3. Upon entry ΓòÉΓòÉΓòÉ
  7268.  
  7269. hwndCtrl is the handle of the page control.  hwndPage is the handle of the 
  7270. dialogue window that is to be placed within the control. 
  7271.  
  7272.  
  7273. ΓòÉΓòÉΓòÉ 6.4.4.4. Upon exit ΓòÉΓòÉΓòÉ
  7274.  
  7275. XxxxSetPage must return a value of TRUE, denoting successful registration of 
  7276. the placement of the dialogue window within the control. A returned value of 
  7277. FALSE indicates that the control could not be place the dialogue window within 
  7278. the control. 
  7279.  
  7280.  
  7281. ΓòÉΓòÉΓòÉ 6.5. DLL construction ΓòÉΓòÉΓòÉ
  7282.  
  7283. To correctly construct a custom control according to the PMCX, use the 
  7284. following outline: 
  7285.  
  7286.  File                          Contents 
  7287.  PMCX.H                        PMCX constants, macros, and structure 
  7288.                                definitions. This file is provided with the 
  7289.                                Prominare Designer package and can be found in 
  7290.                                the PD\Include sub- directory. 
  7291.  Xxxx.Lnk                      Contains the link response file needed by the 
  7292.                                linker. 
  7293.  Xxxx.C                        Contains source code for the custom code using 
  7294.                                PMCX. 
  7295.  Xxxx.Def                      Contains the definition statements required by 
  7296.                                the linker to construct the final dynamic link 
  7297.                                library. 
  7298.  Xxxx.Mak                      Contains the MAKE file necessary to create the 
  7299.                                object and resource files. 
  7300.  Xxxx.Rc                       Contains the resource script file with the 
  7301.                                control's style dialogue template and styles 
  7302.                                string table. 
  7303.  
  7304.  
  7305. ΓòÉΓòÉΓòÉ 6.6. PMCX samples ΓòÉΓòÉΓòÉ
  7306.  
  7307. Examples using PMCX (including full source code) are contained in the 
  7308. Source\Designer sub-directories, if you allowed the source code to be installed 
  7309. on your system during installation of Prominare Designer. Following are some of 
  7310. the PMCX controls implemented. 
  7311.  
  7312.  Directory                     Purpose 
  7313.  3D                            Example of a PMCX control 3D text field. 
  7314.  ChkMark                       Example of a PMCX control check mark control. 
  7315.  Combined                      Example of a set of 3D controls combined into 
  7316.                                one DLL with separate PMCX interface DLLs. 
  7317.  ComboBox                      Example of variable control data usage PMCX 
  7318.                                control using a combo box. 
  7319.  ComboMin                      Example of variable control data usage PMCX 
  7320.                                control using a combo box and allowing for the 
  7321.                                combo box to specify the depth of the drop down 
  7322.                                when used with tight areas. 
  7323.  Control                       Example of simple PMCX control. 
  7324.  DateFld                       Example of a PMCX control for a date entry 
  7325.                                field. 
  7326.  Frame                         Example of a PMCX control for a shadowed frame. 
  7327.                                This PMCX example shows how to utilize Font & 
  7328.                                Colours within a custom control. 
  7329.  ImageBtn                      Example of a PMCX control push button containing 
  7330.                                a graphic bitmap image. 
  7331.  Line3D                        Example of a PMCX control 3D line. 
  7332.  ListBox                       Example of variable control data usage PMCX 
  7333.                                control using a list box. This includes the code 
  7334.                                from the OS/2 Developer article on list box 
  7335.                                design. 
  7336.  Notebook                      Example of notebook usage within a design. It 
  7337.                                shows the manner in which a notebook must be 
  7338.                                programmed. A second dialogue using the 
  7339.                                following custom control shows an easier method 
  7340.                                of handling notebooks. 
  7341.  NotePage                      Example of variable control data usage PMCX 
  7342.                                controls using a notebook. 
  7343.  NoteTab                       Example of a PMCX page control which is similar 
  7344.                                to an OS/2 PM notebook control but with a 
  7345.                                different graphical appearance and a simpler 
  7346.                                programming interface. 
  7347.  Pattern                       Example of a PMCX control pattern field. 
  7348.  SpinBtn                       Example of variable control data usage PMCX 
  7349.                                control using a spin button. 
  7350.  TestBed                       Facility to test PMCX controls. The utility 
  7351.                                provides the means to debug and test the control 
  7352.                                dialogues. 
  7353.  TimeFld                       Example of a PMCX control for a time entry 
  7354.                                field. 
  7355.  
  7356.  
  7357. ΓòÉΓòÉΓòÉ 7. section five - Advanced Support ΓòÉΓòÉΓòÉ
  7358.  
  7359. This section explains how to use the advanced support features provided in 
  7360. Prominare Designer. In each of the Prominare Designer Help menu, you will find 
  7361. a sub-menu item called Support containing two menu items, Submit problem... and 
  7362. Submit suggestion... 
  7363.  
  7364. When you encounter problems, use the Submit problem... menu item to complete a 
  7365. series of notebook pages describing your environment and problem. To make a 
  7366. suggestion about enhancing some aspect of Prominare Designer (suggestions are 
  7367. always welcome), use the Submit suggestion... menu item to complete a series of 
  7368. pages describing your idea. 
  7369.  
  7370. The main purpose of the two features is to provide you with a simple yet 
  7371. effective way to communicate with Prominare support. It is also helpful, 
  7372. especially when problems occur, to have necessary information--such as machine 
  7373. configuration files, exception reports, and memory conditions--provided 
  7374. automatically. 
  7375.  
  7376. The following section describes each of the submission areas in detail. When 
  7377. you experience problems with Prominare Designer, select Support Submit 
  7378. problem... in the Help menu to display the Support Entry Form. This dialogue 
  7379. contains four tabs: Identification, Product, System, and Problem. 
  7380.  
  7381.  
  7382. ΓòÉΓòÉΓòÉ 7.1. Submitting problems ΓòÉΓòÉΓòÉ
  7383.  
  7384.  
  7385. ΓòÉΓòÉΓòÉ 7.1.1. Identification ΓòÉΓòÉΓòÉ
  7386.  
  7387. The first tab is used to identify yourself, determine the support location to 
  7388. which the report should be submitted, and retrieve previously submitted reports 
  7389. for updating or reference. Complete the following areas: 
  7390.  
  7391.  Area           Contents 
  7392.  Contact        Name of contact person. Your name is automatically entered; it 
  7393.                 can be changed if someone else is handling the specific 
  7394.                 problem. 
  7395.  Address        Your present address. 
  7396.  Voice          The telephone number where you can be reached. 
  7397.  Fax            Your facsimile telephone number, through which we can send 
  7398.                 additional printed information or ask additional questions. 
  7399.  Modem          Your modem telephone number. 
  7400.  CompuServe     Your CompuServe ID. 
  7401.  Internet       Your Internet e-mail ID and address. 
  7402.  
  7403.  The final form, as printed on your printer, will contain the facsimile number 
  7404.  and email addresses to which you should send the form. 
  7405.  
  7406.  You can retrieve previously submitted reports by selecting them from the 
  7407.  Reports drop-down list. The values for that particular report will be 
  7408.  retrieved from your hard disk and used to complete the various entry areas of 
  7409.  the forms. You can then edit, add, or delete relevant areas and resubmit them 
  7410.  or use them as reference. 
  7411.  
  7412.  To create a new form, simply click on the New push button. This increments the 
  7413.  report number so that if you select the Save option the report will be saved 
  7414.  to disk. To retrieve a report, select it from the Reports drop-down. 
  7415.  
  7416.  You can also save the report information such that it can be emailed instead 
  7417.  of faxed. You only need to select the Save as text for email check box and 
  7418.  enter the filename to save the information within in entry field labeled File. 
  7419.  You can alternately save the text to the clipboard by clicking on the Save to 
  7420.  clipboard check box. This will allow you to paste the information into an 
  7421.  email note. 
  7422.  
  7423.  
  7424. ΓòÉΓòÉΓòÉ 7.1.2. Product ΓòÉΓòÉΓòÉ
  7425.  
  7426. The second tab, Product, is used to select the Prominare product, problem type, 
  7427. and font to print with. The following options are available: 
  7428.  
  7429.  Option                   Application 
  7430.  Prominare Designer       Prominare Designer. 
  7431.  Other                    Another area within Prominare Designer. 
  7432.  
  7433.  The application from which you selected the support feature is automatically 
  7434.  selected. You can change the selection if this is not the application for 
  7435.  which you wish to submit the problem. When you select the Other option, please 
  7436.  make sure to enter the name of the application or area in the entry field 
  7437.  beside the Other radio button. You can enter up to 63 characters in this 
  7438.  field. You can select one of the following problem types: 
  7439.  
  7440.  Option         Application 
  7441.  Fatal error    The problem creates a fatal error condition, generally an 
  7442.                 exception violation. Commonly, fatal errors occur when the 
  7443.                 operating system exhibits abnormal behavior, eventually causing 
  7444.                 things to grind to a halt. The swapper file could grow 
  7445.                 abnormally large. 
  7446.  Recurrent      The problem recurs consistently; the problem can be duplicated 
  7447.                 at will using the description provided in the report. 
  7448.  Intermittent   The problem recurs inconsistently but may be duplicated using 
  7449.                 the description provided in the report. 
  7450.  Unknown        The problem is difficult to reproduce but can be described. 
  7451.                 This includes fatal errors that cannot be reproduced. 
  7452.  
  7453.  Select fonts to print or fax with via the two drop-down lists near the top of 
  7454.  the tab, Fonts and Size. Immediately above these drop-downs is the printer 
  7455.  currently selected as the output device. Use the Printer setup... button at 
  7456.  the bottom of the dialogue to select a different output device, which may be 
  7457.  another printer or a fax. You can also set up specific printer characteristics 
  7458.  such as paper location, paper size, etc. 
  7459.  
  7460.  
  7461. ΓòÉΓòÉΓòÉ 7.1.3. System ΓòÉΓòÉΓòÉ
  7462.  
  7463. The third tab, System, is used to describe your system in detail. 
  7464.  
  7465. Include the make, model, and brand name of your computer, monitor, and video 
  7466. card, your hard disk size, etc. in this description. 
  7467.  
  7468.  
  7469. ΓòÉΓòÉΓòÉ 7.1.4. Problem ΓòÉΓòÉΓòÉ
  7470.  
  7471. The last tab, Problem, is used to describe the problem you are experiencing. 
  7472. The multiple-line entry field can hold up to 32,768 bytes of information; you 
  7473. may wish to include source code segments that illustrate the problem. 
  7474.  
  7475. When you have completed all areas of the report, you can print it out. 
  7476.  
  7477.  
  7478. ΓòÉΓòÉΓòÉ 7.2. Submitting suggestions ΓòÉΓòÉΓòÉ
  7479.  
  7480. When you would like to see a new feature or a simplified task in Prominare 
  7481. Designer, select Support Submit suggestion... in the Help menu , which displays 
  7482. the Suggestion Entry Form. This dialogue contains three tabs, Identification, 
  7483. Product and Problem. 
  7484.  
  7485.  
  7486. ΓòÉΓòÉΓòÉ 7.2.1. Identification ΓòÉΓòÉΓòÉ
  7487.  
  7488. The first tab is used to identify yourself, determine the location where 
  7489. suggestions should be submitted, and retrieve previous suggestions submitted 
  7490. for updating or reference. The areas you should complete are: 
  7491.  
  7492.  Area           Contents 
  7493.  Contact        Name of contact person. Your name is automatically entered; it 
  7494.                 can be changed if someone else is handling the specific 
  7495.                 problem. 
  7496.  Address        Your present address. 
  7497.  Voice          The telephone number where you can be reached. 
  7498.  Fax            Your facsimile telephone number, through which we can send 
  7499.                 additional printed information or ask additional questions. 
  7500.  Modem          Your modem telephone number. 
  7501.  CompuServe     Your CompuServe ID. 
  7502.  Internet       Your Internet e-mail ID and address. 
  7503.  
  7504.  The final form, as printed on your printer, will contain the facsimile number 
  7505.  and email addresses to which you should send the form. You can retrieve 
  7506.  previously submitted reports by selecting them from the Reports drop-down 
  7507.  list. 
  7508.  
  7509.  The values for that particular report will be retrieved from your hard disk 
  7510.  and used to complete the various entry areas of the forms. You can then edit, 
  7511.  add, or delete relevant areas and resubmit them or use them as reference. 
  7512.  
  7513.  To create a new form, simply click on the New push button. This increments the 
  7514.  report number so that if you select the Save option the report will be saved 
  7515.  to disk. To retrieve a report, select it from the Reports drop-down. 
  7516.  
  7517.  You can also save the report information such that it can be emailed instead 
  7518.  of faxed. You only need to select the Save as text for email check box and 
  7519.  enter the filename to save the information within in entry field labeled File. 
  7520.  You can alternately save the text to the clipboard by clicking on the Save to 
  7521.  clipboard check box. This will allow you to paste the information into an 
  7522.  email note. 
  7523.  
  7524.  
  7525. ΓòÉΓòÉΓòÉ 7.2.2. Product ΓòÉΓòÉΓòÉ
  7526.  
  7527. The second tab, Product, is used to select the Prominare product and font to 
  7528. print with. The following options are available: 
  7529.  
  7530.  Option                   Application 
  7531.  Prominare Designer       Prominare Designer. 
  7532.  Other                    Another area within Prominare Designer. 
  7533.  
  7534.  The application from which you selected the support feature is automatically 
  7535.  selected. You can change the selection if this is not the application for 
  7536.  which you wish to submit the suggestion. The options for the problem types are 
  7537.  not selectable from this tab. 
  7538.  
  7539.  Select fonts to print or fax with via the two drop-down lists near the top of 
  7540.  the tab, Fonts and Size. Immediately above these drop-downs is the printer 
  7541.  currently selected as the output device. Use the Printer setup... button at 
  7542.  the bottom of the dialogue to select a different output device, which may be 
  7543.  another printer or a fax. You can also set up specific printer characteristics 
  7544.  such as paper location, paper size, etc. 
  7545.  
  7546.  
  7547. ΓòÉΓòÉΓòÉ 7.2.3. Suggestion ΓòÉΓòÉΓòÉ
  7548.  
  7549. The last tab, Suggestion, is used to describe the suggestion you wish to make. 
  7550. The multiple line entry field can hold up to 32,768 bytes of information; you 
  7551. may wish to include source code segments that illustrate the suggestion. 
  7552.  
  7553. When you have completed all areas of the suggestion, you can print it out. 
  7554.  
  7555.  
  7556. ΓòÉΓòÉΓòÉ 7.3. Finding fixes ΓòÉΓòÉΓòÉ
  7557.  
  7558. Through the Prominare WWW site you can find a list of known problems and fixes. 
  7559. You can access this site at 
  7560.  
  7561. http://www.prominare.com
  7562.  
  7563. Once you are presented with the home page, you will find the links to the 
  7564. Prominare Designer Known Problems and Fixes home page. 
  7565.  
  7566. Although the Web site provides web links to the fix files contained in our FTP 
  7567. archive, you can also FTP to the fixes. They are found in our FTP site 
  7568.  
  7569. ftp://ftp.prominare.com/pub/prominare/fixes/release5c
  7570.  
  7571.  
  7572. ΓòÉΓòÉΓòÉ 8. appendix a - Program Accelerator Keys ΓòÉΓòÉΓòÉ
  7573.  
  7574. Prominare Designer provides accelerator keys that allow you to select functions 
  7575. quickly through the keyboard instead of using the action bar menus. The 
  7576. following tables show the defined accelerator keys for each of the Prominare 
  7577. Designer applications. 
  7578.  
  7579. ΓöîΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö¼ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÉ
  7580. ΓöéAccelerator    ΓöéMenu Equivalent               ΓöéUsage                         Γöé
  7581. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7582. ΓöéCtrl+A         ΓöéFile Save as                  ΓöéSave as                       Γöé
  7583. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7584. ΓöéCtrl+C         ΓöéEdit Styles                   ΓöéEdit styles                   Γöé
  7585. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7586. ΓöéCtrl+D         Γöé                              ΓöéDuplicate                     Γöé
  7587. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7588. ΓöéCtrl+F         Γöé                              ΓöéSet initial focus             Γöé
  7589. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7590. ΓöéCtrl+G         ΓöéOptions Arrange controls      ΓöéArrange controls              Γöé
  7591. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7592. ΓöéCtrl+I         Γöé                              ΓöéAlign controls                Γöé
  7593. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7594. ΓöéCtrl+L         Γöé                              ΓöéDisplay tools                 Γöé
  7595. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7596. ΓöéCtrl+M         ΓöéOptions Arrange menus         ΓöéArrange menus                 Γöé
  7597. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7598. ΓöéCtrl+N         ΓöéFile New                      ΓöéNew design file               Γöé
  7599. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7600. ΓöéCtrl+P         Γöé                              ΓöéSave window position          Γöé
  7601. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7602. ΓöéCtrl+O         ΓöéFile Open                     ΓöéOpen design file              Γöé
  7603. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7604. ΓöéCtrl+R         Γöé                              ΓöéReplace controls              Γöé
  7605. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7606. ΓöéCtrl+S         ΓöéFile Save                     ΓöéSave design file              Γöé
  7607. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7608. ΓöéCtrl+T         Γöé                              ΓöéTest window/dialogue          Γöé
  7609. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7610. ΓöéCtrl+V         Γöé                              ΓöéVieww windows/dialogues list  Γöé
  7611. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7612. ΓöéCtrl+W         ΓöéEdit New                      ΓöéNew window or dialogue        Γöé
  7613. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7614. ΓöéF1             ΓöéHelp General help             ΓöéHelp                          Γöé
  7615. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7616. ΓöéF4             ΓöéSearch Next                   ΓöéSearch for next occurrence of Γöé
  7617. Γöé               Γöé                              Γöésearch for item               Γöé
  7618. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7619. ΓöéF8             Γöé                              ΓöéDisplay Resource Distribution Γöé
  7620. Γöé               Γöé                              Γöédialogue                      Γöé
  7621. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7622. ΓöéDel            ΓöéEdit Delete                   ΓöéControl Delete selected       Γöé
  7623. Γöé               Γöé                              Γöécontrols                      Γöé
  7624. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7625. ΓöéCtrl+Ins       ΓöéEdit Copy                     ΓöéCopy window/dialogue/controls Γöé
  7626. Γöé               Γöé                              Γöéto clipboard                  Γöé
  7627. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7628. ΓöéShift+Del      ΓöéEdit Cut                      ΓöéCut window/dialogue/controls  Γöé
  7629. Γöé               Γöé                              Γöéto clipboard                  Γöé
  7630. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7631. ΓöéShift+Ins      ΓöéEdit Paste                    ΓöéPaste window/dialogue/controlsΓöé
  7632. Γöé               Γöé                              Γöéfrom clipboard into file      Γöé
  7633. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7634. ΓöéAlt+Ins        ΓöéEdit Paste File               ΓöéPaste from file               Γöé
  7635. Γö£ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö╝ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöñ
  7636. ΓöéAlt+Ctrl+M     ΓöéFile Merge                    ΓöéMerge file                    Γöé
  7637. ΓööΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓö┤ΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÇΓöÿ
  7638.  
  7639.  
  7640. ΓòÉΓòÉΓòÉ 9. appendix b - Resource DLLs ΓòÉΓòÉΓòÉ
  7641.  
  7642.  You can use Prominare Designer to construct resource-only dynamic link 
  7643. libraries. Unlike normal dynamic link libraries, a resource-only DLL contains 
  7644. no executable code or data. Use them when you want to either reduce the size of 
  7645. your executable or share resources between applications. Use Prominare Designer 
  7646. to construct the necessary resources and produce a resource script file that 
  7647. can be compiled by the Resource Compiler. A small assembly language program is 
  7648. needed to allow to bind the compile resources to the final DLL. The module 
  7649. Resource.Asm, below, or Resource.Obj can be used for this purpose. 
  7650.  
  7651. ; ------- Resource.Asm ---------------------------------- ;
  7652. ;                                                         ;
  7653. ;    Assembly language module for resource-only           ;
  7654. ;    dynamic link libraries.                              ;
  7655. ;                                                         ;
  7656. ;    Created:  1992-01-01                                 ;
  7657. ;    Revised:                                             ;
  7658. ;                                                         ;
  7659. ; ------- Copyright Γòò 1989-1997  Prominare  Inc. -------- ;
  7660.  
  7661. CODE      SEGMENT   WORD
  7662.           DB   "Copyright Γòò 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996 Prominare Inc. "
  7663.           DB   "All Rights Reserved."
  7664. CODE      ENDS
  7665.           END
  7666.  
  7667. Define a dummy code segment for the linker; otherwise, the resultant DLL will 
  7668. be marked unloadable by the linker. The example above shows the definition of 
  7669. the code segment and a simple string of bytes being defined. In the example, a 
  7670. copyright notice is used. You can, if you want, define a single byte within the 
  7671. code segment; this will placate the linker. The necessary definitions file used 
  7672. to create the DLL is shown below. 
  7673.  
  7674. LIBRARY   String
  7675.  
  7676. DESCRIPTION    'Prominare Designer Resource - Strings'
  7677.  
  7678. STUB NULSTUB.EXE'
  7679.  
  7680. Since you use the same code segment for the resource-only DLLs, create the link 
  7681. response file similar to that shown below. Use the Resource.Obj file as the 
  7682. object file but then use the name of the final resource-only DLL for the 
  7683. executable, map, and definition file names. 
  7684.  
  7685. Resource
  7686. String.Dll
  7687. String.Map
  7688.  
  7689. String.Def
  7690.  
  7691. Use the same methods you would normally use to create an application, except 
  7692. you will not have a parent window complete with title bar or menus. Generally, 
  7693. include those within the resources for the main application. You can place 
  7694. string tables, bitmaps, some icons and dialogue templates within resource-only 
  7695. DLLs. 
  7696.  
  7697. Place the main application's icon within the application's own resources, since 
  7698. OS/2 Presentation Manager is not set up for loading the dialogue from a 
  7699. resource only DLL and also loading the icon that may be displayed within the 
  7700. dialogue from the same DLL. The same applies to bitmaps. 
  7701.  
  7702. When you invoke the dialogue, replace the parameter, (HMODULE)NULL, with the 
  7703. module handle returned to you. Use the DosLoadModule call when you load the DLL 
  7704. for use by your application, as shown below. The same is true for other 
  7705. resources. 
  7706.  
  7707. CHAR szString[128]; /* String Resource Buffer               */
  7708. HMODULE   hmod;     /* Resource DLL Module Handle           */
  7709.  
  7710. DosLoadModule(szFailName, sizeof(szFailName), "String", &hmod);
  7711.  
  7712. /* Normal usage of WinLoadString where string resource is   */
  7713. /* contained within the .EXE would be:                      */
  7714. /*                                                          */
  7715. /*   WinLoadString(hAB, (HMODULE)NULL, IDS_STRING,          */
  7716. /*                 sizeof(szString), szString);             */
  7717.  
  7718. WinLoadString(hAB, hmod, IDS_STRING, sizeof(szString), szString);
  7719. DosFreeModule(hmod);
  7720.  
  7721. Consult the OS/2 Toolkit manuals for information regarding loading, usage and 
  7722. releasing of dynamic link libraries to fully understand how you can use this 
  7723. facility in your OS/2 Presentation Manager applications. 
  7724.  
  7725.  
  7726. ΓòÉΓòÉΓòÉ 10. appendix c - Window Controls ΓòÉΓòÉΓòÉ
  7727.  
  7728. Prominare Designer allows you to place controls in windows and child windows. 
  7729. So you can fully utilize this facility, code is created in the Support.C or 
  7730. Support.Cpp module when source code is generated for a design. 
  7731.  
  7732. Two of the functions provided within the module are called by your window 
  7733. procedures. The first function, PDSGetTemplate, is used in the WM_CREATE 
  7734. message handling to load the control template from the applications resources 
  7735. and place the controls correctly within the window. 
  7736.  
  7737. The second function, PDSKeyProc, is used in conjunction with the WM_CHAR 
  7738. message to provide a keyboard interface for the controls. 
  7739.  
  7740. These functions are automatically placed within your window procedure when you 
  7741. place any controls in the window you are designing. The example, MultiWin, 
  7742. shows how this is done. The following shows the header declaration of the 
  7743. functions contained in the DLL. These will be provided within the window source 
  7744. code module to allow proper compiling and linking of the final application. 
  7745.  
  7746. VOID    PDSGetTemplate(HWND, LONG);
  7747. MRESULT PDSKeyProc(HWND, ULONG, MPARAM, MPARAM);
  7748.  
  7749. Even if you do not place controls in a window, the functions are created within 
  7750. the Support.C or Support.Cpp module to allow you to add controls to the window 
  7751. at a later point. You should not delete these functions unless you are sure 
  7752. that you are not going to place controls within a window. In this case, delete 
  7753. the two functions from the Support.C or Support.Cpp module and delete any 
  7754. references to the functions from your window procedures. 
  7755.  
  7756. PDSGetTemplate essentially reads in the window template from the resources of 
  7757. your executable and decodes the information (by converting the dialogue units 
  7758. recorded for the size and position of a control to window units) before 
  7759. creating the control. 
  7760.  
  7761. PDSKeyProc provides a keyboard interface for the controls when the user presses 
  7762. a key. In your dialogues, this is handled by the WinDefDlgProc function. 
  7763. WinDefWindowProc does not provide any similar functionality; it assumes that 
  7764. the window will handle all keyboard requests. The WM_CHAR message is used to 
  7765. decode the keystroke and shift the focus from one control to another if the 
  7766. keyboard is used appropriately. 
  7767.  
  7768. When you are developing your application using the IBM User Interface Class 
  7769. Libraries or the IBM Open Class Libraries, similar functions are provided for 
  7770. control support in non-canvas class windows. The following shows the prototype 
  7771. definitions for these adaptations. 
  7772.  
  7773. VOID    PDSGetTemplate(HWND, LONG);
  7774. MRESULT PDSKeyProc(HWND, ULONG, MPARAM, MPARAM);
  7775.  
  7776. The code defined for both functions can be edited through the Support.C tab in 
  7777. the Edit Default Source dialogue accessed from the Source... menu item of the 
  7778. Source menu for the C and C++ source coding rules definitions. The functions 
  7779. can be defined in a similar manner for the IBM User Interface Class Libraries 
  7780. or the IBM Open Class Libraries rules. 
  7781.  
  7782.  
  7783. ΓòÉΓòÉΓòÉ 11. appendix d - Code Generation Overview ΓòÉΓòÉΓòÉ
  7784.  
  7785. Prominare Designer provides the means for you to create the appropriate source 
  7786. code for your window interface design. You can tell Prominare Designer to 
  7787. generate the source code when you save your design files to disk. This appendix 
  7788. outlines significant issues relating to source code generation as performed 
  7789. through Prominare Designer. 
  7790.  
  7791.  
  7792. ΓòÉΓòÉΓòÉ 11.1. Files generated ΓòÉΓòÉΓòÉ
  7793.  
  7794. When you have Prominare Designer generate the source code for your design, a 
  7795. set of files is automatically created. Special attention should be taken with 
  7796. some of the files, in that they should not be altered in a manner that will 
  7797. prevent the code generation engines from recognizing the statements and adding 
  7798. what is thought to be missing source code statements. Following are the minimum 
  7799. files created: 
  7800.  
  7801.  File                Contents 
  7802.  basename.C          Contains the main() function source code for application 
  7803.                      environment setup, application window creation, and 
  7804.                      program termination. 
  7805.  basename.H          Contains the constant definitions used within the 
  7806.                      applications as defined through Prominare Designer for 
  7807.                      controls, menus, and windows created by Prominare 
  7808.                      Designer. 
  7809.  basename.Rc         Contains resource script information for the application 
  7810.                      as defined through Prominare Designer for each window or 
  7811.                      dialogue. Created and updated by Prominare Designer as you 
  7812.                      make changes to the design of the application. 
  7813.  basename.Res        Contains resource script information for the application 
  7814.                      as defined through Prominare Designer for each window or 
  7815.                      dialogue. Created and updated by Prominare Designer as you 
  7816.                      make changes to the design of the application. 
  7817.  AppDefs.C           Contains application variables required by the 
  7818.                      application, such as frame and client window handles, 
  7819.                      mouse queue handle, action bar menu handle, etc. 
  7820.                      Automatically created for each design by Prominare 
  7821.                      Designer. 
  7822.  AppDefs.H           Contains external declarations of the variables defined 
  7823.                      within AppDefs.C needed by the different source modules 
  7824.                      when the source code is compiled. Also contains the 
  7825.                      function prototypes for the functions created through 
  7826.                      Prominare Designer. The function prototypes ensure proper 
  7827.                      declaration and usage of functions within the various 
  7828.                      source modules; the header file is included in most of the 
  7829.                      source code modules created through Prominare Designer. 
  7830.                      The header file is automatically created by Prominare 
  7831.                      Designer. 
  7832.  Support.C           Contains program initialization source code and a function 
  7833.                      call, InitApp, which is called by the main function. Also 
  7834.                      contains the PDSGetTemplate and PDSKeyProc functions, 
  7835.                      which are used to support controls within windows. The 
  7836.                      function used to create and size a window, 
  7837.                      CreateStdWindow, is also contained within this module. 
  7838.                      This module is automatically created by Prominare Designer 
  7839.                      for each design. 
  7840.  
  7841.  
  7842. ΓòÉΓòÉΓòÉ 11.2. main() ΓòÉΓòÉΓòÉ
  7843.  
  7844. Additional files are created under filenames that you enter through the 
  7845. Window/Dialogues Styles dialogue when you create or edit a window or dialogue. 
  7846.  
  7847. The main() function is placed in a source module specified through the New 
  7848. Design dialogue  when you start a new design. 
  7849.  
  7850. Prominare Designer always generates code for this module based on the windows 
  7851. you have created in your design. It also creates the code necessary for 
  7852. registration of the application's help with the OS/2 Help Manager. 
  7853.  
  7854. For this particular module, you should not change the overall statements as 
  7855. generated; you can, however, add your own as required within the statements. 
  7856. Statements that are particularly sensitive to their format and location within 
  7857. the module are shown in bold text: 
  7858.  
  7859. #define INCL_DOS                   /* Include OS/2 PM DOS Kernal        */
  7860. #define INCL_WIN                   /* Include OS/2 PM Windows Interface */
  7861.  
  7862. #include <os2.h>
  7863.  
  7864. #include "appdefs.h"
  7865. #include "example.h"
  7866.  
  7867. PSZ pszExampleClassName = "Example";
  7868.  
  7869. INT main(INT argc, CHAR *argv[ ])
  7870.  
  7871. {
  7872. QMSG  qmsg;                        /* PM Message Queue Holder           */
  7873.  
  7874.                        /* Initialize the program for PM and create the  */
  7875.                        /* message queue                                 */
  7876. hAB = WinInitialize(0);
  7877. hmqExample = WinCreateMsgQueue(hAB, 0);
  7878.  
  7879.                        /* Register the window class                     */
  7880.  
  7881. if ( !WinRegisterClass(hAB, pszExampleClassName, ExampleWndProc,
  7882.                        CS_SYNCPAINT | CS_SIZEREDRAW, 0) )
  7883.    return(0);
  7884.                        /* Create the main program window                */
  7885.  
  7886. if ( !(hwndExampleFrame = CreateStdWindow(HWND_DESKTOP, WS_VISIBLE,
  7887.                                           FCF_NOBYTEALIGN | FCF_STANDARD,
  7888.                                           pszExampleClassName,
  7889.                                           "Example Window", 0L,
  7890.                                           (HMODULE)NULL, ID_WINDOW,
  7891.                                           &hwndExample, 10, 10, 100, 100)) )
  7892.    return(0);
  7893.                        /* Create Help instance and associate it with    */
  7894.                        /* the programs frame window                     */
  7895.  
  7896. if ( hwndHelp = WinCreateHelpInstance(hAB, &helpinit) )
  7897.    WinAssociateHelpInstance(hwndHelp, hwndExampleFrame);
  7898.  
  7899. InitProg( );
  7900.  
  7901. while ( WinGetMsg(hAB, &qmsg, (HWND)NULL, 0, 0) )
  7902.    WinDispatchMsg(hAB, &qmsg);
  7903.  
  7904.                        /* Destroy the Help instance associated with the */
  7905.                        /* the programs frame window                     */
  7906. if ( hwndHelp )
  7907.    {
  7908.    WinAssociateHelpInstance((HWND)NULL, hwndExampleFrame);
  7909.    WinDestroyHelpInstance(hwndHelp);
  7910.    }
  7911.                        /* Have received a WM_QUIT, start the program    */
  7912.                        /* shutdown by destroying the program windows    */
  7913.                        /* and destroying the message queue              */
  7914.  
  7915. WinDestroyWindow(hwndExampleFrame);
  7916. WinDestroyMsgQueue(hmqExample);
  7917.  
  7918.                        /* Notify PM that main program thread not needed */
  7919.                        /* any longer                                    */
  7920. WinTerminate(hAB);
  7921.                        /* Exit back to OS/2 cleanly                     */
  7922. return(0);
  7923. }
  7924.  
  7925.  
  7926. ΓòÉΓòÉΓòÉ 11.3. Support.C / Support.Cpp ΓòÉΓòÉΓòÉ
  7927.  
  7928. The Support.C or Support.Cpp source module contains two functions called from 
  7929. main(), namely, InitApp( ) and CreateStdWindow( ), along with two functions 
  7930. that may be called from your window procedures, PDSGetTemplate( ) and 
  7931. PDSKeyProc( ). These are support functions used to initialize the application 
  7932. and register it with the Task Manager as defined through the application. They 
  7933. also set the window positions of any child windows that have been defined 
  7934. through a design. 
  7935.  
  7936. One of the main tenants of windowing systems is device independence, and 
  7937. dialogue units are a device independent unit; the CreateStdWindow( ) function 
  7938. is used to convert the dialogue units for the size and position of the window 
  7939. into actual window coordinates at run time, after the window has been created. 
  7940.  
  7941.  
  7942. ΓòÉΓòÉΓòÉ 11.4. Window/Dialogue functions ΓòÉΓòÉΓòÉ
  7943.  
  7944. You can use either old or new style methods of declaring window functions 
  7945. within window or dialogue procedures created through Prominare Designer. The 
  7946. following shows both methods, plus the components of each that must be present 
  7947. for Prominare Designer to locate the start of the window or dialogue procedure 
  7948. within the source code modules that you have edited: 
  7949.  
  7950. MRESULT EXPENTRY FrameWndProc(HWND hWnd, ULONG msg, MPARAM mp1, MPARAM mp2)
  7951.  
  7952. or 
  7953.  
  7954. MRESULT EXPENTRY FrameWndProc(hWnd, msg, mp1, mp2)
  7955. HWND   hWnd;
  7956. ULONG  msg;
  7957. MPARAM mp1;
  7958. MPARAM mp2;
  7959.  
  7960. Prominare Designer lets you control how it deletes information from your source 
  7961. and resource script files. When you allow deletion, understand that Prominare 
  7962. Designer does its best to delete only the appropriate source code. In some 
  7963. cases, Prominare Designer may delete more than you would like; this could 
  7964. influence how you comment your source code. For example, if the following 
  7965. construct was in your original source module: 
  7966.  
  7967.                         /* Process control selections                   */
  7968. case WM_CONTROL :
  7969.     switch ( SHORT2FROMMP(mp1) )
  7970.         {
  7971.                         /* Button clicked notification                  */
  7972.         case BN_DBLCLICKED :
  7973.             switch ( SHORT1FROMMP(mp1) )
  7974.                 {
  7975.                         /* Process single click on check box example    */
  7976.                 case CB_EXAMPLE :
  7977.                     break;
  7978.                         /* Process single click on radio button example */
  7979.                 case RB_EXAMPLE :
  7980.                     break;
  7981.                 }
  7982.             break;
  7983.         }
  7984.     break;
  7985.  
  7986. Assume that the BN_DBLCLICKED notification message is removed for the 
  7987. CB_EXAMPLE check box control. The same example would appear as: 
  7988.  
  7989.                         /* Process control selections                   */
  7990. case WM_CONTROL :
  7991.     switch ( SHORT2FROMMP(mp1) )
  7992.         {
  7993.                         /* Button clicked notification                  */
  7994.         case BN_DBLCLICKED :
  7995.             switch ( SHORT1FROMMP(mp1) )
  7996.                 {
  7997.                         /* Process single click on check box example    */
  7998.                 case RB_EXAMPLE :
  7999.                     break;
  8000.                 }
  8001.             break;
  8002.         }
  8003.     break;
  8004.  
  8005. Prominare Designer was able to locate the proper source code for the deleted 
  8006. check box notification, but it also deleted the comment line before the 
  8007. RB_EXAMPLE case statement and left the comment that had appeared before the 
  8008. deleted code. 
  8009.  
  8010. You may wish to place you comments within the case break construct to ensure 
  8011. that when code is removed by Prominare Designer, it takes the correct comments 
  8012. with it. Prominare Designer performs analysis of the code when deleting it; it 
  8013. deletes all lines from the start of the construct up to the first statement 
  8014. after the construct. 
  8015.  
  8016. Similarly, when Prominare Designer deletes the source code for window or 
  8017. dialogue procedures, comments that appear before the function declaration are 
  8018. not deleted. The rules defined for code generation include a set of macro 
  8019. symbols used by the code generation engines to selectively place relevant 
  8020. source code in those places. Some of the macros can be used in various 
  8021. locations, whereas others are defined for use in specific source areas. The 
  8022. following table defines the macros that can be used in any location: 
  8023.  
  8024.  Macro               Usage 
  8025.  <-company->         Company name. 
  8026.  <-date->            Current date. 
  8027.  <-file->            Current filename. 
  8028.  <-name->            User name. 
  8029.  
  8030.  The following macros are defined for use within the source definition 
  8031.  locations through the Source menu item in the Source menu. The areas to which 
  8032.  the macros are restricted are defined with each macro for OS/2 C/C++: 
  8033.  
  8034.  Macro               Usage 
  8035.  <classes>           Class name definitions - main() 
  8036.  <create>            Window creation - main() 
  8037.  <helpcreate>        Help create statements - main() 
  8038.  <helpdestroy>       Help destroy statements - main() 
  8039.  <hmq>               Message queue handle - main() 
  8040.  <hwndClient>        Client window handle - main() 
  8041.  < hwndFrame>        Frame window handle - main() 
  8042.  <INCL>              OS/2 defines - Module start 
  8043.  <include>           C includes - Module start 
  8044.  <localvars>         Local function variables - Window declaration, child 
  8045.                      window declaration, dialogue declaration 
  8046.  <mmpm>              MMPM/2 control registration - main() 
  8047.  <pfnDlgProc>        Dialogue function name - Dialogue declaration 
  8048.  <pfnWndProc>        Window function name - Window declaration, child window 
  8049.                      declaration 
  8050.  <prototypes>        Global functions - AppDefs.H 
  8051.  <register>          Class registration - main() 
  8052.  <variables>         Global variables - AppDefs.C, AppDefs.H 
  8053.  <windowlist>        Window list text - main() 
  8054.  <XxxxRegister>      PMCX control registration - main() 
  8055.  
  8056.  The following macros are defined for use within the message areas defined 
  8057.  through the Commands menu item in the Source menu for OS/2 C/C++: 
  8058.  
  8059.  Macro               Usage 
  8060.  <classname>         Classname 
  8061.  <cx>                Window width 
  8062.  <cy>                Window height 
  8063.  <DID_CANCEL>        DID_CANCEL ID 
  8064.  <DID_OK>            DID_OK ID 
  8065.  <FCF>               FCF_* flags 
  8066.  <hwndClient>        Client window handle 
  8067.  <hwndFrame>         Frame window handle 
  8068.  <hwndParent>        Parent window handle 
  8069.  <id>                ID 
  8070.  <idButton>          Push button ID 
  8071.  <idDlg>             Dialogue ID 
  8072.  <idMenu>            Menu item ID 
  8073.  <pfnDlgProc>        Dialogue procedure function name 
  8074.  <style>             Style flags 
  8075.  <titlebar>          Title bar text 
  8076.  <x>                 Window position 
  8077.  <y>                 Window height 
  8078.  
  8079.  The following macros are defined for use within the source definition 
  8080.  locations through the Source menu item item in the Source menu. The areas to 
  8081.  which the macros are restricted are defined with each macro for the IBM UICL 
  8082.  or IBM Open Class: 
  8083.  
  8084.  Macro               Usage 
  8085.  <classname>         Classname definition - Window declaration, child window 
  8086.                      declaration, dialogue declaration 
  8087.  <idDlg>             Dialogue ID - Dialogue declaration 
  8088.  <INCL>              OS/2 defines - Module start 
  8089.  <include>           C includes - Module start, include header start, main() 
  8090.  <localvars>         Local function variables - main() 
  8091.  <pfnDlgProc>        Dialogue function name - Dialogue declaration 
  8092.  <pfnWndProc>        Window function name - Window declaration, child window 
  8093.                      declaration 
  8094.  <sentinal>          Header include sentinal - Class header 
  8095.  <statements>        PMCX control registration - Window declaration, child 
  8096.                      window declaration, dialogue declaration, class header 
  8097.  
  8098.  The following macros are defined for usage within the message areas defined 
  8099.  through the Commands menu item in the Source menu for the IBM UICL or IBM Open 
  8100.  Class: 
  8101.  
  8102.  Macro               Usage 
  8103.  <classname>         Classname 
  8104.  <command>           Handler command 
  8105.  <derived>           Derived declarations 
  8106.  <private>           Private declarations 
  8107.  <virtual>           Virtual declarations 
  8108.  
  8109.  
  8110. ΓòÉΓòÉΓòÉ 12. appendix e - Mouse Pointers ΓòÉΓòÉΓòÉ
  8111.  
  8112. The following is a compendium of the special mouse pointers used in Prominare 
  8113. Designer. There are times that a pointer is used to signify acceptable 
  8114. conditions (i.e. when an operation is acceptable) or to convey the information 
  8115. that a specific type of mode is active. 
  8116.  
  8117.  Pointer   Usage 
  8118.            Used in the Arrange Controls and Arrange Menus dialogues to indicate 
  8119.            that the selected item or items can be inserted between the items 
  8120.            above and below the pointer. 
  8121.            Used when creating a control. The crosshair indicates the location 
  8122.            where the lower left corner of the control will be placed. 
  8123.            Used when setting the initial focus for a dialogue. When the mouse 
  8124.            pointer is over a control showing this shape, it is permissible to 
  8125.            set the focus to this item. 
  8126.            Used when a control is movable. 
  8127.            Used when moving a control. 
  8128.            Used to indicate that duplicate control mode is active. When 
  8129.            selecting a control while the pointer is this shape, the control 
  8130.            selected will be duplicated. 
  8131.            Used to indicate the parent of the control when creating a control 
  8132.            within a context that contains a child window within a parent 
  8133.            window. Since the control needs to be owned by one of the windows 
  8134.            and since it is possible that the control is actually overlapped by 
  8135.            a child window, it is necessary to select the window that is to be 
  8136.            the parent. 
  8137.  
  8138.  
  8139. ΓòÉΓòÉΓòÉ 13. appendix f - Dialogue Display ΓòÉΓòÉΓòÉ
  8140.  
  8141. A common problem with GUI applications is that when you design your dialogue on 
  8142. one system and then run it on a different system, the display of the dialogue 
  8143. doesn't look the same. This is due to the different display resolutions. 
  8144.  
  8145. Even though dialogues are defined in dialogue units instead of pixels, the 
  8146. basis for the dialogue unit is the system font. Depending on the display type 
  8147. and resolution, OS/2 selects a system font, System Proportional, that is either 
  8148. 12 pts or 10 pts. It is this selection that causes some of the problems. 
  8149.  
  8150. Further complicating this is when a system has changed the default system font 
  8151. from System Proportional to something else, say Helv. 
  8152.  
  8153. Prominare Designer provides two mechanisms to allow you to minimize this 
  8154. problem. The first is the usage of the Dialogue Unit Definition dialogue from 
  8155. the Configure .DFM registration... menu.  This dialogue allows you to define 
  8156. dialogue font metric files for systems that have been queried using the DFM.EXE 
  8157. utility. The font metrics for the raster fonts are queried and recorded such 
  8158. that you can target the system through the Show control limits tool bar button. 
  8159. When you double click the right mouse button on the tool bar button, you will 
  8160. be presented with the Dialogue Unit Limits Selection dialogue which allows you 
  8161. to select the target system display type. Then, by selecting the tool bar 
  8162. button, the display limits for each control with text will be displayed either 
  8163. in a red border or green border. When the border colour is red, the control 
  8164. needs to be widened since the text will be clipped on the target device. If the 
  8165. border colour is green, the width of the control is sufficient to display the 
  8166. text on the target device. 
  8167.  
  8168. By using this mechanism, you can insure that the dialogues that you are 
  8169. designing on a high- resolution system correctly display on a VGA system. Also 
  8170. using the Show VGA template tool bar button helps you fit the dialogue to a VGA 
  8171. display. 
  8172.  
  8173. To help you display your dialogues correctly on systems which have had there 
  8174. default font changed from System Proportional to something else, you can use 
  8175. the replacement APIs found within the DlgEx.Dll.  The WinLoadDlg, WinDlgBox, 
  8176. DosGetResource and DosFreeResource APIs have been replaced with versions that 
  8177. patch the dialogue templates such that the dialogues are displayed in the 
  8178. correct proportions. An additional API provided in the DLL is 
  8179. WinMapDialogPointsEx allows you to determine the dialogue/window points using 
  8180. the patching formula. 
  8181.  
  8182. To allow this patching to be effective, Prominare Designer will add a 
  8183. presentation parameter to the dialogue template. This presentation parameter 
  8184. uses the index value of PP_USER to record the system font name and size used to 
  8185. design the dialogue. This is then used by the patching routines found within 
  8186. DlgEx.Dll to size the dialogue based on that font and not the system font that 
  8187. may be present. 
  8188.  
  8189. This also helps in correctly sizing the dialogue on systems such as VGA where 
  8190. the original dialogue was designed on a high-resolution system even though 
  8191. System Proportional fonts are on both. The difference between the two systems 
  8192. may be the size of the font. 
  8193.  
  8194. If you want to utilize this facility you only need to include the DlgEx.Lib 
  8195. during your linking. You do not need to change your source code unless you want 
  8196. to use the WinMapDialogPointsEx API.