home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / wpsprgm.zip / AFOLDER.C next >
C/C++ Source or Header  |  1993-06-14  |  4KB  |  156 lines

  1.  
  2. /*
  3.  * This file was generated by the SOM Compiler.
  4.  * FileName: afolder.c.
  5.  * Generated using:
  6.  *     SOM Precompiler spc: 1.22
  7.  *     SOM Emitter emitc: 1.24
  8.  */
  9.  
  10. #define aFolder_Class_Source
  11. #include "afolder.ih"
  12. #include "afolder.rh"
  13.  
  14.  
  15. PFNWP        pfnOldProc        = NULL;
  16. HMODULE        hmod            = NULLHANDLE;
  17.  
  18. HMODULE   SOMLINK QueryModuleHandle(aFolder *somSelf)
  19. {
  20.     APIRET rc;
  21.  
  22.     if(!somSelf)
  23.         return NULLHANDLE;
  24.  
  25.     if (hmod == NULLHANDLE)
  26.     {
  27.      zString zsPathName;
  28.        /*
  29.         *   Retrieve registered pathname of our module (DLL) and query the
  30.         *   module handle.
  31.         */
  32.        zsPathName =
  33.        _somLocateClassFile( SOMClassMgrObject, SOM_IdFromString("aFolder"),
  34.                                               aFolder_MajorVersion, aFolder_MinorVersion);
  35.  
  36.        if(!zsPathName)
  37.             return NULLHANDLE;
  38.        rc = DosQueryModuleHandle( zsPathName, &hmod);
  39.        if (rc)
  40.             return NULLHANDLE;
  41.  
  42.     }   /* end if (hmod == NULLHANDLE) */
  43.  
  44.     return (hmod);
  45. }
  46.  
  47.  
  48.  
  49. MRESULT EXPENTRY aFolderSubProc(HWND hwnd, ULONG msg, MPARAM mp1, MPARAM mp2)
  50. {
  51.     HACCEL        hAccel;
  52.  
  53.     switch(msg)
  54.     {
  55.         case WM_DESTROY:
  56.             hAccel = WinQueryAccelTable(WinQueryAnchorBlock(hwnd), hwnd);
  57.             if(hAccel)
  58.                 WinDestroyAccelTable(hAccel);
  59.             break;
  60.         case WM_COMMAND:
  61.             switch(SHORT1FROMMP(mp1))
  62.             {
  63.                 case IDM_EXIT:
  64.                     WinPostMsg(hwnd, WM_CLOSE, MPVOID, MPVOID);
  65.                     return (MRESULT) TRUE;
  66.                 case IDM_ARRANGE:
  67.                     if( SHORT1FROMMP(mp2) == CMDSRC_MENU)
  68.                         break;
  69.                     WinPostMsg(hwnd, WM_COMMAND, MPFROM2SHORT(IDM_ARRANGE, 0), MPFROM2SHORT(CMDSRC_MENU, TRUE) );
  70.                     return (MRESULT) TRUE;
  71.                 case IDM_SETTINGS:
  72.                     WinPostMsg(hwnd, WM_COMMAND, MPFROM2SHORT(IDM_WPSSETTINGS, 0), MPFROM2SHORT(CMDSRC_MENU, TRUE) );
  73.                     return (MRESULT) TRUE;
  74.             }
  75.             break;
  76.     }
  77.     if(pfnOldProc)
  78.         return pfnOldProc(hwnd, msg, mp1, mp2);
  79.     else
  80.         return WinDefWindowProc(hwnd, msg, mp1, mp2);
  81. }
  82.  
  83.  
  84. SOM_Scope HWND   SOMLINK afolder_wpOpen(aFolder *somSelf, HWND hwndCnr, ULONG ulView, ULONG param)
  85. {
  86.     HWND    hwnd;
  87.     HACCEL    hAccel;
  88.     int        idAccel;
  89.  
  90.     aFolderMethodDebug("aFolder","afolder_wpOpen");
  91.     
  92.     if(!somSelf)
  93.         return NULLHANDLE;
  94.  
  95.     hwnd = parent_wpOpen(somSelf,hwndCnr,ulView,param);
  96.     if(!hwnd)
  97.         return NULLHANDLE;
  98.         
  99.     switch(ulView)
  100.     {
  101.         case OPEN_CONTENTS:
  102.         case OPEN_TREE:
  103.         case OPEN_DETAILS:
  104.             /*
  105.             ** Load and associate an Accelerator table.
  106.             */
  107.             pfnOldProc = WinSubclassWindow(hwnd, (PFNWP) aFolderSubProc);
  108.             if( _somRespondsTo(somSelf, SOM_IdFromString("wpIsCurrentDesktop") ) )
  109.                 idAccel = IDM_DESKFOLDER;
  110.             else
  111.                 idAccel = IDM_AFOLDER;
  112.                 
  113.             hAccel = WinLoadAccelTable(WinQueryAnchorBlock(hwnd), hmod, idAccel);
  114.             if(hAccel)
  115.                 WinSendMsg(hwnd, WM_SETACCELTABLE, (MPARAM) hAccel, MPVOID);
  116.             break;
  117.     }
  118.     return hwnd;
  119. }
  120.  
  121. SOM_Scope BOOL   SOMLINK afolder_wpMenuItemSelected(aFolder *somSelf, HWND hwndFrame, ULONG ulMenuId)
  122. {
  123.     aFolderMethodDebug("aFolder","afolder_wpMenuItemSelected");
  124.     
  125.     if(ulMenuId == IDM_WPSARRANGE)
  126.     {
  127.         char szBuf[256];
  128.         
  129.         strcpy(szBuf, "Arrange '");
  130.         strcat(szBuf, _wpQueryTitle(somSelf) );
  131.         strcat(szBuf, "'" );
  132.         if( WinMessageBox(HWND_DESKTOP, hwndFrame, "Are you sure?", szBuf, 20, MB_YESNO | MB_ICONQUESTION | MB_APPLMODAL | MB_MOVEABLE) != MBID_YES)
  133.             return FALSE;
  134.     }
  135.     
  136.     if( ulMenuId == IDM_ARRANGE )
  137.         ulMenuId = IDM_WPSARRANGE;
  138.     
  139.     return (parent_wpMenuItemSelected(somSelf,hwndFrame,ulMenuId));
  140. }
  141.  
  142. #undef SOM_CurrentClass
  143. #define SOM_CurrentClass SOMMeta
  144.  
  145.  
  146. #undef SOM_CurrentClass
  147. #define SOM_CurrentClass SOMMeta
  148. SOM_Scope void   SOMLINK afolderM_wpclsInitData(M_aFolder *somSelf)
  149. {
  150.     M_aFolderMethodDebug("M_aFolder","afolderM_wpclsInitData");
  151.  
  152.     hmod = QueryModuleHandle(somSelf);
  153.     
  154.     parent_wpclsInitData(somSelf);
  155. }
  156.