home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / NEWPM.ZIP / DIALOG.NPM next >
Text File  |  1992-12-02  |  11KB  |  382 lines

  1. ; ===========================================================================
  2. ; This creates a shell OS/2 PM application using a DIALOG BOX as the main
  3. ; window.
  4. ; This is a template file to be used with the NEWPM.EXE utility.
  5. ; ie .. NEWPM project dialog.npm
  6. ; ===========================================================================
  7.  
  8. ; Source Module
  9. {$$.c}
  10. /*===========================================================================
  11. //                            MODULE DESCRIPTION
  12. //
  13. //  Module: {$$prj}.c
  14. //   Title: Main Source Module for {$$prj}
  15. //    Date: {$$date}
  16. //  Author: 
  17. //   Notes: 
  18. //===========================================================================
  19. //                           MAINTENANCE HISTORY
  20. //
  21. // RR.VVV    Date         PROJ #  Description
  22. // ------  --------  ---  ------  ------------------------------------------
  23. // 01.000  {$$date}               Original Creation
  24. //===========================================================================
  25. //                             MODULE NARRATIVE
  26. //
  27. //
  28. //=========================================================================*/
  29.  
  30. #define INCL_WIN
  31. #define INCL_GPI
  32. #define INCL_DOS
  33.  
  34. #include <os2.h>
  35.  
  36. #include <string.h>
  37.  
  38. #include "{$$prj}.h"
  39.  
  40.  
  41. HAB    hab;
  42. HMQ    hmq;
  43. QMSG   qmsg;
  44. HWND   hSwitch;
  45. CHAR     title[64] = "{$$prj}";
  46.  
  47. static HWND AddSwitchEntry(HWND, CHAR *);
  48.  
  49. /*===========================================================================
  50. //    Function: VOID cdecl main(int argc,char **argv)
  51. // Description:
  52. //      Inputs:
  53. //     Outputs:
  54. // Return Code:
  55. //=========================================================================*/
  56. VOID cdecl main(int argc,char **argv)
  57.     {
  58.     hab = WinInitialize(0);
  59.     hmq = WinCreateMsgQueue(hab, 0);
  60.     WinDlgBox(HWND_DESKTOP, HWND_DESKTOP, MainDlgProc, 0, IDD_MAIN, 0);
  61.     WinRemoveSwitchEntry(hSwitch);
  62.     WinDestroyMsgQueue(hmq);
  63.     WinTerminate(hab);
  64.     }
  65.  
  66. /*===========================================================================
  67. //    Function: MRESULT EXPENTRY MainDlgProc(hwnd,msg,mp1,mp2)
  68. // Description:
  69. //      Inputs:
  70. //     Outputs:
  71. // Return Code:
  72. //=========================================================================*/
  73. MRESULT EXPENTRY MainDlgProc(HWND hwnd,USHORT msg,MPARAM mp1,MPARAM mp2)
  74.     {
  75.     HWND   hDlgBoxIcon;
  76.     USHORT cmd;
  77.  
  78.     switch (msg)
  79.         {
  80.         case WM_INITDLG:
  81.             WinSetWindowText(hwnd, title);
  82.             hSwitch = AddSwitchEntry(hwnd, "{$$prj}");
  83.            hDlgBoxIcon = WinLoadPointer(HWND_DESKTOP, 0, ID_ICON);
  84.            WinDefDlgProc(hwnd, WM_SETICON, (MPARAM)hDlgBoxIcon, (MPARAM)0);
  85.             return 0L;
  86.  
  87.         case WM_COMMAND:
  88.             cmd = SHORT1FROMMP(mp1);
  89.             switch (cmd)
  90.                 {
  91.                 case DID_OK:
  92.                     WinSetWindowPos(hwnd,0,0,0,0,0,SWP_MINIMIZE);
  93.                     return 0L;
  94.  
  95.                 case DID_CANCEL:
  96.                     WinDismissDlg(hwnd, FALSE);
  97.                     return 0L;
  98.                 return 0L;
  99.                 }
  100.  
  101.         case WM_ADJUSTWINDOWPOS:
  102.             if (((PSWP)mp1)->fs & SWP_MINIMIZE)
  103.                 WinShowWindow(WinWindowFromID(hwnd, DID_OK), FALSE);
  104.            else
  105.                 if (((PSWP)mp1)->fs & SWP_RESTORE)
  106.                     WinShowWindow(WinWindowFromID(hwnd, DID_OK), TRUE);
  107.               break;
  108.  
  109.         }
  110.  
  111.     return (WinDefDlgProc(hwnd, msg, mp1, mp2));
  112.     }
  113.  
  114. /*===========================================================================
  115. //    Function: static HWND AddSwitchEntry(HWND hwnd, CHAR *szTitle)
  116. // Description:
  117. //      Inputs:
  118. //     Outputs:
  119. // Return Code:
  120. //=========================================================================*/
  121. static HWND AddSwitchEntry(HWND hwnd, CHAR *szTitle)
  122.     {
  123.     SWCNTRL PgmEntry;
  124.   
  125.     PgmEntry.hwnd              = hwnd;
  126.     PgmEntry.hwndIcon          = NULL;
  127.     PgmEntry.hprog              = NULL;
  128.     PgmEntry.idProcess      = 0;
  129.     PgmEntry.idSession      = 0;
  130.     PgmEntry.uchVisibility = SWL_VISIBLE;
  131.     PgmEntry.fbJump          = SWL_JUMPABLE;
  132.     strcpy(PgmEntry.szSwtitle, szTitle);
  133.   
  134.     return WinAddSwitchEntry(&PgmEntry);
  135.     }
  136.  
  137. {$$end}
  138.  
  139. ; Definition File
  140. {$$.def}
  141. ;*===========================================================================
  142. ;/                            MODULE DESCRIPTION
  143. ;/
  144. ;/  Module: {$$prj}.def
  145. ;/   Title: linker definition file for {$$prj}
  146. ;/    Date: {$$date}
  147. ;/  Author: 
  148. ;/   Notes:
  149. ;/===========================================================================
  150. ;/                           MAINTENANCE HISTORY
  151. ;/
  152. ;/ RR.VVV    Date         PROJ #  Description
  153. ;/ ------  --------  ---  ------  ------------------------------------------
  154. ;/ 01.000  {$$date}               Original Creation
  155. ;/===========================================================================
  156. ;/                             MODULE NARRATIVE
  157. ;/
  158. ;/
  159. ;/=========================================================================*/
  160.  
  161. NAME    {$$prj}     WINDOWAPI
  162. DESCRIPTION 'PM {$$prj} application'
  163. STACKSIZE 8096
  164. ;STUB    'OS2STUB.EXE'
  165. {$$end}
  166.  
  167. ; Dialog Templates
  168. {$$.dlg}
  169. /*===========================================================================
  170. //                            MODULE DESCRIPTION
  171. //
  172. //  Module: {$$prj}.dlg
  173. //   Title: Dialog Template file Module for {$$prj}
  174. //    Date: {$$date}
  175. //  Author: 
  176. //   Notes:
  177. //===========================================================================
  178. //                           MAINTENANCE HISTORY
  179. //
  180. // RR.VVV    Date         PROJ #  Description
  181. // ------  --------  ---  ------  ------------------------------------------
  182. // 01.000  {$$date}               Original Creation
  183. //===========================================================================
  184. //                             MODULE NARRATIVE
  185. //
  186. //
  187. //=========================================================================*/
  188.  
  189. DLGTEMPLATE IDD_MAIN MOVEABLE DISCARDABLE
  190. BEGIN
  191.     DIALOG "", IDD_MAIN, 20, 31, 180, 88,
  192.                 FS_NOBYTEALIGN | FS_DLGBORDER | WS_CLIPSIBLINGS |
  193.                 WS_SAVEBITS, FCF_TITLEBAR | FCF_SYSMENU | FCF_MINBUTTON
  194.     BEGIN
  195.         DEFPUSHBUTTON "OK", DID_OK, 5, 5, 35, 13
  196.         PUSHBUTTON "E~xit", DID_CANCEL, 45, 5, 35, 13
  197.     END
  198. END
  199.  
  200. DLGTEMPLATE IDD_ABOUT LOADONCALL MOVEABLE DISCARDABLE
  201. BEGIN
  202.     DIALOG "About {$$prj}", IDD_ABOUT, 20, 31, 180, 88,
  203.                 FS_NOBYTEALIGN | FS_DLGBORDER | WS_CLIPSIBLINGS |
  204.                 WS_SAVEBITS, FCF_TITLEBAR
  205.     BEGIN
  206.         CTEXT "{$$prj}", -1, 5, 75, 170, 8
  207.         CTEXT "{Version x.xx}", -1, 5, 62, 170, 8
  208.         CTEXT "Copyright", -1, 5, 46, 170,  8
  209.         CTEXT "{Company Name}", -1, 5, 36, 170, 8
  210.         CTEXT "All Rights Reserved", -1, 5, 26, 170, 8
  211.         DEFPUSHBUTTON "OK", 1, 68, 5, 34, 13
  212.     END
  213. END
  214. {$$end}
  215.  
  216. ; Header File
  217. {$$.h}
  218. /*===========================================================================
  219. //                            MODULE DESCRIPTION
  220. //
  221. //  Module: {$$prj}.h
  222. //   Title: Header file for {$$prj}
  223. //    Date: {$$date}
  224. //  Author: 
  225. //   Notes:
  226. //===========================================================================
  227. //                           MAINTENANCE HISTORY
  228. //
  229. // RR.VVV    Date         PROJ #  Description
  230. // ------  --------  ---  ------  ------------------------------------------
  231. // 01.000  {$$date}               Original Creation
  232. //===========================================================================
  233. //                             MODULE NARRATIVE
  234. //
  235. //
  236. //=========================================================================*/
  237.  
  238.  
  239. #define     ID_MENUBAR    998
  240. #define     ID_ICON       999
  241.  
  242. /* Menu ID's */
  243.  
  244. #define     IDM_NEW      1000
  245. #define     IDM_OPEN     1001
  246. #define     IDM_SAVE     1002
  247. #define     IDM_SAVEAS   1003
  248. #define     IDM_PRINT    1004
  249. #define     IDM_EXIT     1005
  250. #define     IDM_UNDO     1006
  251. #define     IDM_CUT      1007
  252. #define     IDM_COPY     1008
  253. #define     IDM_PASTE    1009
  254. #define     IDM_CLEAR    1010
  255. #define     IDM_ABOUT    1011
  256.  
  257.  
  258. /* Dialog ID's */
  259.  
  260. #define     IDD_MAIN      1500
  261. #define     IDD_ABOUT    1520
  262.  
  263.  
  264. /* function prototypes */
  265.  
  266. MRESULT EXPENTRY MainDlgProc(HWND,USHORT,MPARAM,MPARAM);
  267. MRESULT EXPENTRY AboutDlgProc(HWND,USHORT,MPARAM,MPARAM);
  268. {$$end}
  269.  
  270.  
  271. ; Icon Source File
  272. ; No source .ico file specifiedm, use default
  273. {$$.ico}
  274. {$$end}
  275.  
  276.  
  277. ; Link Control File
  278. {$$.lrf}
  279. {$$prj}
  280. {$$prj} /align:16 /CO /NOD
  281. {$$prj} /map
  282. llibcep os2
  283. {$$prj}.def
  284. {$$end}
  285.  
  286.  
  287. ; Make File
  288. {$$.mak}
  289. #*===========================================================================
  290. #/                            MODULE DESCRIPTION
  291. #/
  292. #/  Module: {$$prj}.mak
  293. #/   Title: Make file for {$$prj}
  294. #/    Date: {$$date}
  295. #/  Author: 
  296. #/   Notes:
  297. #/===========================================================================
  298. #/                           MAINTENANCE HISTORY
  299. #/
  300. #/ RR.VVV    Date         PROJ #  Description
  301. #/ ------  --------  ---  ------  ------------------------------------------
  302. #/ 01.000  {$$date}               Original Creation
  303. #/===========================================================================
  304. #/                             MODULE NARRATIVE
  305. #/
  306. #/
  307. #/=========================================================================*/
  308.  
  309. cp=cl /c /W4 /G2sw /Od /ALw /Zi
  310.  
  311. {$$prj}.exe: {$$prj}.obj {$$prj}.res {$$prj}.def
  312.     link @{$$prj}.lrf
  313.     rc {$$prj}.res
  314.  
  315. {$$prj}.res: {$$prj}.rc {$$prj}.h {$$prj}.dlg
  316.     rc -r {$$prj}.rc
  317.  
  318. {$$prj}.obj: {$$prj}.c {$$prj}.h
  319.     $(cp) {$$prj}.c
  320. {$$end}
  321.  
  322.  
  323. ; Resource File
  324. {$$.rc}
  325. /*===========================================================================
  326. //                            MODULE DESCRIPTION
  327. //
  328. //  Module: {$$prj}.rc
  329. //   Title: Resource file for {$$prj}
  330. //    Date: {$$date}
  331. //  Author: 
  332. //   Notes: 
  333. //===========================================================================
  334. //                           MAINTENANCE HISTORY
  335. //
  336. // RR.VVV    Date         PROJ #  Description
  337. // ------  --------  ---  ------  ------------------------------------------
  338. // 01.000  {$$date}               Original Creation
  339. //===========================================================================
  340. //                             MODULE NARRATIVE
  341. //
  342. //
  343. //=========================================================================*/
  344.  
  345. #include <os2.h>
  346. #include "{$$prj}.h"
  347.  
  348. ICON ID_ICON {$$prj}.ico
  349.  
  350. MENU ID_MENUBAR
  351. BEGIN
  352.     SUBMENU           "~File", 2
  353.     BEGIN
  354.           MENUITEM    "~New",            IDM_NEW, MIS_TEXT
  355.           MENUITEM    "~Open...",        IDM_OPEN
  356.           MENUITEM    "~Save",           IDM_SAVE
  357.           MENUITEM    "Save ~As...",     IDM_SAVEAS
  358.           MENUITEM    "~Print",          IDM_PRINT
  359.           MENUITEM    "",                IDM_PRINT, MIS_SEPARATOR
  360.           MENUITEM    "E~xit {$$prj}",   IDM_EXIT, MIS_TEXT
  361.     END
  362.  
  363.     SUBMENU           "~Edit", 3
  364.     BEGIN
  365.           MENUITEM    "~Undo    ALT+BKSP",   IDM_UNDO,MIS_TEXT,MIA_DISABLED
  366.           MENUITEM    "",                  IDM_UNDO,MIS_SEPARATOR         
  367.           MENUITEM    "Cu~t    Shift+Del",   IDM_CUT,MIS_TEXT,MIA_DISABLED
  368.           MENUITEM    "~Copy    Ctrl+Ins",   IDM_COPY,MIS_TEXT,MIA_DISABLED
  369.           MENUITEM    "~Paste    Shift+Ins", IDM_PASTE,MIS_TEXT,MIA_DISABLED
  370.           MENUITEM    "C~lear    Del",       IDM_CLEAR,MIS_TEXT,MIA_DISABLED
  371.     END
  372.     SUBMENU           "~Help", 4
  373.     BEGIN
  374.           MENUITEM    "A~bout {$$prj}...",    IDM_ABOUT
  375.     END
  376. END
  377.  
  378.  
  379. RCINCLUDE {$$prj}.dlg
  380. {$$end}
  381.