home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 1998 November / pcwk_11_98a.iso / Wtestowe / SOFTSRC / vtrial15.exe / DATA.1 / Vutil.cpp < prev    next >
C/C++ Source or Header  |  1997-02-09  |  2KB  |  89 lines

  1. /*
  2. Vdraft API support - Vutil.cpp
  3.     (C) Copyright 1997 by SoftSource.  All rights reserved.
  4. Scott Sherman 2-97
  5.  
  6.     This code provides useful functionality for talking to Vdraft.
  7. */
  8.  
  9. #include "stdafx.h"
  10. #include "Vdraft.h"
  11.  
  12.  
  13. // base class for encapsulating handling Vdraft Plug-in events
  14. cVdraftEvent::cVdraftEvent(IVdraft& vdraft, vtAddOnID id)
  15. {
  16.     // we're keeping an extra reference to the Vdraft object
  17.     vdraft.m_lpDispatch->AddRef();
  18.     m_vdraft.AttachDispatch(vdraft.m_lpDispatch);
  19.     // remember so we can pass it to Vdraft when requesting events
  20.     m_id = id;
  21. }
  22.  
  23.  
  24. // the user has picked a point or done something related to picking a point
  25. veReturn vfPickEvent(vtAddOnID id, vePickEvent event, double* point, long info)
  26. {
  27.     cPickEvent *pick = (cPickEvent *)info;
  28.     switch (event)
  29.     {
  30.         case vePE_Point:
  31.             pick->Pick(point);
  32.             delete pick;        // events are over - get rid of event object
  33.             break;
  34.         case vePE_Cancel:
  35.             pick->Cancel();
  36.             delete pick;        // events are over - get rid of event object
  37.             break;
  38.         case vePE_Done:
  39.             pick->Done();
  40.             break;
  41.         case vePE_Properties:
  42.             pick->Properties();
  43.             break;
  44.         case vePE_Undo:
  45.             pick->Undo();
  46.             break;
  47.     }
  48.     return veR_OK;
  49. }
  50.  
  51. // the user has picked a point, finished or cancelled drawing
  52. veReturn vfDrawEvent(vtAddOnID id, veDrawEvent event, double* point, short picknumber, long info)
  53. {
  54.     cDrawEvent *draw = (cDrawEvent *)info;
  55.     switch (event)
  56.     {
  57.         case veDE_Done:
  58.             draw->Done();        // let event object handle Done
  59.             delete draw;        // events are over - get rid of event object
  60.             break;
  61.         case veDE_Cancel:
  62.             draw->Cancel();    // let event object handle Cancel
  63.             delete draw;        // events are over - get rid of event object
  64.             break;
  65.         case veDE_Pick:
  66.             draw->Pick(point,picknumber);    // let event object handle point pick
  67.             break;
  68.     }
  69.     return veR_OK;
  70. }
  71.  
  72. // the user has finished selecting objects
  73. veReturn vfSelectEvent(vtAddOnID id, veSelectEvent event, long info)
  74. {
  75.     cSelectEvent *select = (cSelectEvent *)info;
  76.     switch (event)
  77.     {
  78.         case veSE_Done:
  79.             select->Done();    // let event object handle Done
  80.             delete select;        // events are over - get rid of event object
  81.             break;
  82.         case veSE_Cancel:
  83.             select->Cancel();    // let event object handle Cancel
  84.             delete select;        // events are over - get rid of event object
  85.             break;
  86.     }
  87.     return veR_OK;
  88. }
  89.