home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / NEWPM.ZIP / WINDOW.NPM < prev   
Text File  |  1992-12-02  |  11KB  |  374 lines

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