>  Docs Center  >  Libraries  >  CATALYST  >  ANNOTATEINTERACTION__DEFINE
Libraries

ANNOTATEINTERACTION__DEFINE

ANNOTATEINTERACTION__DEFINE

Name


      ANNOTATEINTERACTION__DEFINE

Purpose



      The purpose of this routine is to provide an interaction for creating
      and manipulating SELECTABLEOBJECT objects. An interaction takes over
      draw widget event handling for the duration of the interaction and then
      restores it to its normal funcitoning. We spent a LOT of time implementing
      this, and while it works, it is extremely complicated (bordering on iTools
      complicated!). I am not happy with the complexity, and I am not sure this
      is what is needed anyway. I think interaction functionality is too user-specific
      to be handled like this. In practice, I seldom use interactions, but code
      the functionality I want for a particular application in the event handlers.
      That said, this particular interaction is amazingly useful for annotating
      graphics windows.

Authors



        FANNING SOFTWARE CONSULTING BURRIDGE COMPUTING
        1645 Sheely Drive 18 The Green South
        Fort Collins Warborough, Oxon
        CO 80526 USA OX10 7DN, ENGLAND
        Phone: 970-221-0438 Phone: +44 (0)1865 858279
        E-mail: davidf@dfanning.com E-mail: davidb@burridgecomputing.co.uk

Category



      Objects.

Syntax



      theObject = Obj_New("ANNOTATEINTERACTION")

Superclasses



      INTERACTION
      CATCONTAINER IDLITCOMPONENT
      IDL_CONTAINER

Class Structure



  class = { ANNOTATEINTERACTION, $
            align_gui_tlb: Obj_New(), $ ; The align GUI top-level base object.
            align_tb: 0L, $ ; The current align top/bottom value.
            align_lr: 0L, $ ; The current align left/right value.
            distribute_gui_tlb: Obj_New(), $ ; The distrubute GUI top-level base object.
            distribute_h: 0L, $ ; The current distribute horizontal value.
            distribute_v: 0L, $ ; The current distribute vertical value.
            distribute_gap_h: Obj_New(), $ ; The distribute horizonal gap field object.
            distribute_gap_v: Obj_New(), $ ; The distribute vertical gap field object.
            selectedObjects: Ptr_New(), $ ; The currently selected objects.
            sx: 0L, $ ; The static X location.
            sy: 0L, $ ; The static Y location.
            defaultObject: Obj_New(), $ ; The default (or current) selectable object.
            defTextObject: Obj_New(), $ ; The default TEXTLINE object.
            defAngleObject: Obj_New(), $ ; The default ANGLETOOL object.
            defArrowObject: Obj_New(), $ ; The default ARROW object.
            defBoxObject: Obj_New(), $ ; The default BOX object.
            defEllipseObject: Obj_New(), $ ; The default ELLIPSE object.
            defPolygonObject: Obj_New(), $ ; The default POLYGON object.
            defMeasureObject: Obj_New(), $ ; The default MEASUREMENT object.
            layerObject: Obj_New(), $ ; A layer object for holding selectable annotation objects.
            angleID: Obj_New(), $ ; The ANGLE MEASURMENT button on the ControlPanel.
            annotateOn: Obj_New(), $ ; The ANNOTATE_LAYER_ON button on the ControlPanel.
            annotateOff: Obj_New(), $ ; The ANNOTATE_LAYER_OFF button on the ControlPanel.
            arrowID: Obj_New(), $ ; The ARROW button on ControlPanel.
            boxID: Obj_New(), $ ; The BOX button on ControlPanel.
            ellipseID: Obj_New(), $ ; The ELLIPSE button on the ControlPanel.
            globalID: Obj_New(), $ ; The GLOBAL_PROPERTY button on ControlPanel.
            measureID: Obj_New(), $ ; The MEASUREMENT button on the ControlPanel.
            polygonID: Obj_New(), $ ; The POLYGON button on the ControlPanel.
            saveID: Obj_New(), $ ; The SAVE_WINDOW button on ControlPanel.
            selectID: Obj_New(), $ ; The SELECT button on ControlPanel.
            textID: Obj_New(), $ ; The TEXT button on ControlPanel.
            INHERITS INTERACTION $
          }

Messages



  None.

Notes



  The way the interaction works is by copying the contents of the draw widget into a pixmap,
  so they can be redrawn appropriately. This is only successful if the contents of the draw
  widget can be drawn in the pixmap. Images, for example, might have their WID keyword set and
  be attached to a draw widget already. (This is especially the case if they are responding to
  color table events of some kind.) These kinds of images are not appropriate for annotation
  interactions, because they can't be drawn in the pixmap.

Modification History



      Written by: David W. Fanning, 9 August 2004.



© 2024 NV5 Geospatial Solutions, Inc. |  Legal
My Account    |    Contact Us