home *** CD-ROM | disk | FTP | other *** search
/ Power GUI Programming with VisualAge C++ / powergui.iso / powergui / dm / spindrag / spinitem.cpp < prev    next >
Text File  |  1996-10-29  |  2KB  |  59 lines

  1. //************************************************************
  2. // Direct Manipulation - Spin Button Example
  3. //
  4. // Copyright (C) 1994, Law, Leong, Love, Olson, Tsuji.
  5. // Copyright (c) 1997 John Wiley & Sons, Inc. 
  6. // All Rights Reserved.
  7. //************************************************************
  8. #include <ispintxt.hpp>
  9. #include <ientryfd.hpp>
  10. #include <itrace.hpp>
  11. #include "spinitem.hpp"
  12.  
  13.  
  14. // Construct IDMItem with type=text, operations=copyable.
  15. SpinButtonItem::SpinButtonItem ( IDMSourceOperation* srcOp )
  16.       : IDMItem( srcOp, IDM::text, IDMItem::copyable | IDMItem::moveable )
  17.   {
  18.   // Support intraprocess drag and drop only.
  19.   this -> addRMF( IDMItem::rmfFrom( IDM::rmLibrary,
  20.                                     IDMItem::rfForThisProcess() ) );
  21.   // Set item contents to selected spin button text.
  22.   IEntryField
  23.     *pEF = (IEntryField*)( srcOp->sourceWindow() );
  24.   ITRACE_DEVELOP( pEF->selectedText() );
  25.  
  26.   this->setContents( pEF->selectedText() );
  27.   }
  28.  
  29.  
  30. Boolean SpinButtonItem::generateSourceItems ( IDMSourceOperation* srcOp )
  31.   {
  32.   // Source item is object of this class.
  33.   IDMItem::Handle
  34.     item( new SpinButtonItem( srcOp ) );
  35.   // Add it to the source operation.
  36.   srcOp -> addItem( item );
  37.  
  38.   // Indicate an item is available to drag.
  39.   return true;
  40.   }
  41.  
  42. Boolean SpinButtonItem::targetDrop ( IDMTargetDropEvent& event )
  43.   {
  44.   // Add dropped text to the spin button.
  45.   ITextSpinButton
  46.    *pSpin = (ITextSpinButton*)( event.window()->parent() );
  47.   pSpin -> addAsLast( this->contents() );
  48.   pSpin -> spinTo( this->contents() );
  49.   return true;
  50.   }
  51.  
  52. unsigned long
  53.     SpinButtonItem::supportedOperationsFor ( const IString& selectedRMF ) const
  54.   {
  55.   // Permit copying only.
  56.   return IDMItem::copyable;
  57.   }
  58.  
  59.