home *** CD-ROM | disk | FTP | other *** search
/ Chip 2001 February / Chip_2001-02_cd1.bin / sharewar / vecad / source / DwgProc.cpp < prev    next >
C/C++ Source or Header  |  2000-09-20  |  3KB  |  136 lines

  1. /********************************************************************
  2. * Project: VeCAD ver.5.1
  3. * Copyright (C) 1999-2000 by Oleg Kolbaskin.
  4. * All rights reserved.
  5. *
  6. * VeCAD drawing procedure
  7. ********************************************************************/
  8. #include <windows.h>
  9. #include <stdio.h>
  10. #include <tchar.h>
  11. #include "vecres.h"
  12. #include "mru.h"
  13.  
  14. extern HINSTANCE ghInst;     // app instance
  15. extern HWND      ghwMain;    // Main App window
  16. extern CMruList  gMruList;
  17.  
  18. void OnCmFileNew  ();
  19. void OnCmFileOpen ();
  20.  
  21. static void UpdateMainTitle ();
  22.  
  23. //-------------------------------------
  24. int CALLBACK DwgProc (int iDwg, UINT Msg, int Prm1, int Prm2, double Prm3, double Prm4, void* Prm5)
  25. {
  26.   TCHAR szStr[256];
  27.  
  28.   switch( Msg ){
  29.     case VM_ERROR:
  30. #ifdef _DEBUG
  31.       _stprintf( szStr, _T("Error code %d"), Prm1 );
  32. //      MessageBox( 0, szStr, _T("Vecad.dll"), MB_OK | MB_ICONSTOP );
  33. #endif
  34.       break;
  35.  
  36.     case VM_GETSTRING:
  37. //      if (Prm1<11202){
  38. //        LoadString( theApp.m_hInstance, Prm1, (LPTSTR)Prm5, 256 );
  39. //        return 1;
  40. //      }
  41.       break;
  42.  
  43.     case VM_ZOOM:
  44.       break;
  45.  
  46.     case VM_MOUSEMOVE:
  47. //      _stprintf( szStr, _T("%.3f : %.3f"), Prm3, Prm4 );
  48.       break;
  49.  
  50.     case VM_ENDPAINT:
  51. //      vlDrawPoint( 100,150, VL_PNT_ROMB, 10 );
  52. //      vlDrawPoint( -100,150, VL_PNT_ROMB, 10 );
  53. //      vlDrawLine( -100,100, 100,150 );
  54.       break;
  55.  
  56.     case VM_OBJACTIVE:
  57.       if (Prm1==VL_OBJ_PAGE){
  58.         UpdateMainTitle();
  59.       }
  60.       break;
  61.  
  62.     case VM_DWGLOADED:
  63.     case VM_DWGSAVED:
  64.       gMruList.Add( (LPCTSTR)Prm5 );
  65.     case VM_DWGSELECT:
  66.       UpdateMainTitle();
  67.       break;
  68.  
  69.     case VM_DWGLOADING:
  70.     case VM_DWGSAVING:
  71.       _stprintf( szStr, _T("Loading: %d%%"), Prm1 );
  72.       vlStatBarSetText( VL_SB_COORD, szStr );
  73.       break;
  74.  
  75.  
  76.     case VM_EXECUTE:
  77.       if (Prm2!=0 && 
  78.           (Prm1==VC_FILE_NEW || Prm1==VC_FILE_OPEN))
  79.       {
  80.         switch( Prm1 ){
  81.           case VC_FILE_NEW:  OnCmFileNew();  break;
  82.           case VC_FILE_OPEN: OnCmFileOpen(); break;
  83.         }
  84.       }
  85.       break;
  86.  
  87.     case VM_GRIPMOVE:
  88. //      vlDataSetInt( VD_POLY_C_VER, Prm1, Prm2-1 );
  89. //      id = (int)vlDataGetDouble( VD_POLY_VER_R, Prm1 );
  90.       break;
  91.  
  92.     case VM_TOOLOPEN:
  93.       if (Prm1==VC_CUSTOM+1){
  94.         return 1;
  95.       }
  96.       break;
  97.  
  98.     case VM_TOOLCLICK:
  99.       if (Prm1==VC_CUSTOM+1){
  100.         MessageBox( 0, "aaa", "qqq", MB_OK );
  101.       }
  102.       break;
  103.  
  104.     case VM_LBDOWN:
  105. #ifdef _DEBUG
  106. //      return CmdPaint2();
  107. #endif
  108.       break;
  109.  
  110.   }
  111.   return 0;
  112. }
  113.  
  114.  
  115. //-------------------------------------
  116. //  Update title of the main window
  117. //-------------------------------------
  118. static void UpdateMainTitle ()
  119. {
  120.   TCHAR szPgName[64], szTitle[256], szFmt[64], szFName[256];
  121.  
  122.   int iPage = vlPageIndex( NULL, 0  );
  123.   int nPage = vlPageCount();
  124.   ZeroMemory( szPgName, sizeof(szPgName) );
  125.   ZeroMemory( szFName, sizeof(szFName) );
  126.   vlPropGet( VD_PAGE_NAME, iPage, szPgName );
  127.   vlPropGet( VD_DWG_FILENAME, -1, szFName );
  128.   if (_tcscmp(szFName,_T(""))==0){
  129.     LoadString( ghInst, STR_NONAME, szFName,32 );
  130.   }
  131.   LoadString( ghInst, STR_APP_TITLE2, szFmt, 60 );
  132.   _stprintf( szTitle, szFmt, szFName, iPage+1, nPage, szPgName );
  133.   SetWindowText( ghwMain, szTitle );
  134. }
  135.  
  136.