


                                                                XmDisplay(3X)



   NAME
     XXmmDDiissppllaayy-The Display widget class

   SYNOPSIS
     ##iinncclluuddee <<XXmm//DDiissppllaayy..hh>>

   DESCRIPTION
     The XmDisplay object is used by the Motif widgets to store information
     that is specific to a display.  It also allows the toolkit to access
     certain information on widget hierarchies that would otherwise be una-
     vailable.  Each client has one XmDisplay object for each display it
     accesses.

     An XmDisplay object is automatically created when the application
     creates the first shell on a display (usually accomplished by a call to
     XXttAAppppIInniittiiaalliizzee or XXttAAppppCCrreeaatteeSShheellll).  It is not necessary to create an
     XmDisplay object by any other means.  An application can use the func-
     tion XXmmGGeettXXmmDDiissppllaayy to obtain the widget ID of the XmDisplay object for
     a given display.

     An application cannot supply initial values for XmDisplay resources as
     arguments to a call to any function that creates widgets.  The applica-
     tion or user can supply initial values in a resource file.  After creat-
     ing the first shell on the display, the application can use
     XXmmGGeettXXmmDDiissppllaayy to obtain the widget ID of the XmDisplay object and then
     call XXttSSeettVVaalluueess to set the XmDisplay resources.

     XmDisplay resources specify the drag protocol style for a client parti-
     cipating in drag and drop transactions.  There are two basic protocol
     types, preregister and dynamic.  When a preregister protocol is used,
     the toolkit handles any communication between the initiator and receiver
     clients, and displays the appropriate drag-over and drag-under visual
     effects.  A client registers its drop sites in advance and this informa-
     tion is stored in a property for each top-level window.  When the drag
     pointer enters a top level window, the drop site information is read by
     the initiator.  A dynamic protocol allows the source and destination
     clients to dynamically communicate drag and drop state information
     between each other, and to update their respective visuals accordingly.
     The toolkit provides drop site information as the pointer passes over
     any given drop site.  In this mode, a receiver can supply a procedure to
     generate its own drag-under effects.

     Classes

     Display inherits behavior and resources from CCoorree, CCoommppoossiittee, SShheellll,
     WWMMSShheellll, VVeennddoorrSShheellll, TTooppLLeevveellSShheellll, and AApppplliiccaattiioonnSShheellll classes.

     The class pointer is xxmmDDiissppllaayyCCllaassss.

     The class name is XXmmDDiissppllaayy.





   1-285






   XmDisplay(3X)


     New Resources

     The following table defines a set of widget resources used by the pro-
     grammer to specify data.  The programmer can also set the resource
     values for the inherited classes to set attributes for this widget.  To
     reference a resource by name or by class in an ..XXddeeffaauullttss file, remove
     the XXmmNN or XXmmCC prefix and use the remaining letters.  To specify one of
     the defined values for a resource in an ..XXddeeffaauullttss file, remove the XXmm
     prefix and use the remaining letters (in either lowercase or uppercase,
     but include any underscores between words).  The codes in the access
     column indicate if the given resource can be set at creation time (CC),
     set by using XXttSSeettVVaalluueess (SS), retrieved by using XXttGGeettVVaalluueess (GG), or is
     not applicable (NN//AA).
                                                 XXmmDDiissppllaayy RReessoouurrccee SSeett
   NNaammee                            CCllaassss                           TTyyppee            DDeeffaauulltt                     AAcccceessss
   __________________________________________________________________________________________________________________
   XmNdefaultVirtualBindings       DefaultVirtualBindings          String          dynamic                     CG
   XmNdragInitiatorProtocolStyle   XmCDragInitiatorProtocolStyle   unsigned char   XmDRAG_PREFER_RECEIVER      CG
   XmNdragReceiverProtocolStyle    XmCDragReceiverProtocolStyle    unsigned char   XmDRAG_PREFER_PREREGISTER   CG

     XXmmNNddeeffaauullttVViirrttuuaallBBiinnddiinnggss
               Specifies the default virtual bindings for the display.  Fol-
               lowing is an example of a specification for the ddeeffaauullttVViirrttuu--
               aallBBiinnddiinnggss resource in a resource file:
               *defaultVirtualBindings: \
                    osfBackSpace   :    <Key>BackSpace\n\
                    osfInsert      :    <Key>InsertChar\n\
               ...
                    osfDelete      :    <Key>DeleteChar

     XXmmNNddrraaggIInniittiiaattoorrPPrroottooccoollSSttyyllee
               Specifies the drag and drop protocol requirements or prefer-
               ence when the client is an initiator.  The possible values are

               XXmmDDRRAAGG__PPRREERREEGGIISSTTEERR
                 As an initiator, this client does not use the dynamic proto-
                 col and can only arrange visual effects with receivers who
                 provide preregistered information.

               XXmmDDRRAAGG__DDYYNNAAMMIICC
                 As an initiator, this client does not make use of any prere-
                 gistered drop site information made available by other
                 clients, and can only arrange visual effects with receivers
                 who use the dynamic protocol.

               XXmmDDRRAAGG__NNOONNEE
                 Specifies that drag and drop is disabled for this client.

               XXmmDDRRAAGG__DDRROOPP__OONNLLYY
                 As an initiator, this client does not use either the prere-
                 gistered drop site information or the dynamic protocol.  It
                 supports dragging, and any time the cursor is over a client
                 that supports drag and drop, valid feedback is provided.
                 There are no other visual effects.


   1-286






                                                                XmDisplay(3X)



               XXmmDDRRAAGG__PPRREEFFEERR__DDYYNNAAMMIICC
                 As an initiator, this client can support both the preregis-
                 ter and dynamic protocols, but prefers to use dynamic proto-
                 cols whenever possible in order to provide high-quality
                 drag-under feedback.

               XXmmDDRRAAGG__PPRREEFFEERR__PPRREERREEGGIISSTTEERR
                 As an initiator, this client can support both the preregis-
                 ter and dynamic protocols, but prefers to use the preregis-
                 ter protocol whenever possible in order to accommodate per-
                 formance needs or to provide consistent drag-over feedback.

               XXmmDDRRAAGG__PPRREEFFEERR__RREECCEEIIVVEERR
                 Indicates that this client can support both preregister and
                 dynamic protocols, but will defer to the preference of the
                 receiver client.  This value is valid only for the XXmmNNddrraa--
                 ggIInniittiiaattoorrPPrroottooccoollSSttyyllee resource, and is its default value.

     XXmmNNddrraaggRReecceeiivveerrPPrroottooccoollSSttyyllee
               Specifies the drag and drop protocol requirements or prefer-
               ence when this client is a receiver.  The values are

               XXmmDDRRAAGG__PPRREERREEGGIISSTTEERR
                 As a receiver, this client preregisters drop site informa-
                 tion and does not use the dynamic protocol.  It can only
                 arrange visual effects with initiators who make use of the
                 preregistered information.

               XXmmDDRRAAGG__DDYYNNAAMMIICC
                 As a receiver, this client uses the dynamic protocol and
                 does not preregister drop site information.  It can only
                 arrange visual effects with initiators who use the dynamic
                 protocol.

               XXmmDDRRAAGG__NNOONNEE
                 Specifies that drag and drop is disabled for this client.

               XXmmDDRRAAGG__DDRROOPP__OONNLLYY
                 As a receiver, this client neither uses the dynamic protocol
                 nor preregisters drop site information.  It supports drop-
                 ping, and when dragging over this client, valid feedback is
                 always provided, but there are no other visual effects.

               XXmmDDRRAAGG__PPRREEFFEERR__DDYYNNAAMMIICC
                 As a receiver, this client can support both the preregister
                 and dynamic protocols, but prefers to use dynamic protocol
                 whenever possible in order to provide high-quality drag-
                 under feedback.

               XXmmDDRRAAGG__PPRREEFFEERR__PPRREERREEGGIISSTTEERR
                 As a receiver, this client can support both the preregister
                 and dynamic protocols, but prefers to use the preregister
                 protocol whenever possible in order to accommodate


   1-287






   XmDisplay(3X)


                 performance needs.
               The actual protocol used between an initiator and a receiver
               is based on the protocol style of the receiver and initiator.
               The decision matrix is as follows:
               DD rr aa gg   II nn ii tt ii aa tt oo rr                     DDrraagg RReecceeiivveerr PPrroottooccooll SSttyyllee
               PP rr oo tt oo cc oo ll   SS tt yy ll ee   _______________________________________________________________
                          PPrreerreeggiisstteerr   PPrreeffeerr PPrreerreeggiisstteerr   PPrreeffeerr DDyynnaammiicc   DDyynnaammiicc
     __________________________________________________________________________________
            PPrreerreeggiisstteerr   Preregister   Preregister          Preregister      Drop Only
     __________________________________________________________________________________
     PPrreeffeerr PPrreerreeggiisstteerr   Preregister   Preregister          Preregister      Dynamic
     __________________________________________________________________________________
        PPrreeffeerr RReecceeiivveerr   Preregister   Preregister          Dynamic          Dynamic
     __________________________________________________________________________________
         PPrreeffeerr DDyynnaammiicc   Preregister   Dynamic              Dynamic          Dynamic
     __________________________________________________________________________________
                DDyynnaammiicc   Drop Only     Dynamic              Dynamic          Dynamic
               The value XXmmDDRRAAGG__NNOONNEE does not appear in the above matrix.
               When specified for either the initiator or receiver side,
               XXmmDDRRAAGG__NNOONNEE implies that drag and drop transactions are not
               supported.  A value of XXmmDDRRAAGG__DDRROOPP__OONNLLYY (Drop Only) results
               when an initiator and receiver cannot compromise protocol
               styles, that is, one client requires dynamic mode while the
               other can only support preregister mode, or if either expli-
               citly has specified XXmmDDRRAAGG__DDRROOPP__OONNLLYY.

     Inherited Resources

     All of the superclass resources inherited by XmDisplay are designated
     N/A (not applicable).

   RELATED INFORMATION
     AApppplliiccaattiioonnSShheellll((33XX)), CCoommppoossiittee((33XX)), CCoorree((33XX)), TTooppLLeevveellSShheellll((33XX)),
     VVeennddoorrSShheellll((33XX)), WWMMSShheellll((33XX)), XXmmGGeettXXmmDDiissppllaayy((33XX)), and XXmmSSccrreeeenn((33XX)).






















   1-288






                                                             XmDragCancel(3X)



   NAME
     XXmmDDrraaggCCaanncceell-A Drag and Drop function that terminates a drag transaction

   SYNOPSIS
     ##iinncclluuddee <<XXmm//DDrraaggDDrroopp..hh>>
     vvooiidd XXmmDDrraaggCCaanncceell ((_d_r_a_g_c_o_n_t_e_x_t))
          WWiiddggeett      _d_r_a_g_c_o_n_t_e_x_t;;

   DESCRIPTION
     XXmmDDrraaggCCaanncceell terminates a drag operation and cancels any pending actions
     of the specified DragContext.  This routine can only be called by the
     initiator client.

     _d_r_a_g_c_o_n_t_e_x_t
            Specifies the ID of the DragContext widget associated with the
            drag and drop transaction to be terminated

     For a complete definition of DragContext and its associated resources,
     see XXmmDDrraaggCCoonntteexxtt((33XX)).

   RELATED INFORMATION
     XXmmDDrraaggCCoonntteexxtt((33XX)) and XXmmDDrraaggSSttaarrtt((33XX)).

































   1-289






   XmDragContext(3X)



   NAME
     XXmmDDrraaggCCoonntteexxtt-The DragContext widget class

   SYNOPSIS
     ##iinncclluuddee <<XXmm//DDrraaggDDrroopp..hh>>

   DESCRIPTION
     DragContexts are special widgets used in drag and drop transactions.  A
     DragContext is implemented as a widget, but a client does not explicitly
     create a DragContext widget.  Instead, a client initiates a drag and
     drop transaction by calling XXmmDDrraaggSSttaarrtt, and this routine initializes
     and returns a DragContext widget.  There is a unique DragContext for
     each drag operation.  The toolkit frees a DragContext when a transaction
     is complete; therefore, an application programmer should not explicitly
     destroy a DragContext.

     Initiator and receiver clients both use DragContexts to track the state
     of a transaction.  When the initiator and receiver of a transaction are
     in the same client, they share the same DragContext instance.  If they
     are in different clients, there are two separate DragContexts.  In this
     case, the initiator calls XXmmDDrraaggSSttaarrtt and the toolkit provides a
     DragContext for the receiver client.  The only resources pertinent to
     the receiver are XXmmNNeexxppoorrttTTaarrggeettss and XXmmNNnnuummEExxppoorrttTTaarrggeettss.  These can
     both be passed as arguments to the XXmmDDrrooppSSiitteeRReettrriieevvee function to obtain
     information about the current drop site.

     In general, in order to receive data, a drop site must share at least
     one target type and operation in common with a drag source.  The
     DragContext resource, XXmmNNeexxppoorrttTTaarrggeettss, identifies the selection targets
     for the drag source.  These export targets are compared with the XXmmNNiimm--
     ppoorrttTTaarrggeettss resource list specified by a drop site.  The DragContext
     resource, XXmmNNddrraaggOOppeerraattiioonnss, identifies the valid operations that can be
     applied to the source data by the initiator.  The drop site counterpart
     resource is XXmmNNddrrooppSSiitteeOOppeerraattiioonnss, which indicates a drop site's sup-
     ported operations.

     A client uses DragIcon widgets to define the drag-over animation effects
     associated with a given drag and drop transaction. An initiator speci-
     fies a set of drag icons, selects a blending model, and sets foreground
     and background cursor colors with DragContext resources.

     The type of drag-over visual used to represent a drag operation depends
     on the drag protocol style.  In preregister mode, the server is grabbed,
     and either a cursor or a pixmap may be used as a drag-over visual.  In
     dynamic mode, drag-over visuals must be implemented with the X cursor.
     If the resulting drag protocol style is Drop Only or None and the
     XXmmNNddrraaggIInniittiiaattoorrPPrroottooccoollSSttyyllee is XXmmDDRRAAGG__DDYYNNAAMMIICC or
     XXmmDDRRAAGG__PPRREEFFEERR__DDYYNNAAMMIICC, then a dynamic visual style (cursor) is used.
     Otherwise, a preregister visual style is used.






   1-290






                                                            XmDragContext(3X)


     Classes

     DragContext inherits behavior and resources from CCoorree.

     The class pointer is xxmmDDrraaggCCoonntteexxttCCllaassss.

     The class name is XXmmDDrraaggCCoonntteexxtt.

     New Resources

     The following table defines a set of widget resources used by the pro-
     grammer to specify data.  The programmer can also set the resource
     values for the inherited classes to set attributes for this widget.  To
     reference a resource by name or by class in a .Xdefaults file, remove
     the XXmmNN or XXmmCC prefix and use the remaining letters.  To specify one of
     the defined values for a resource in a .Xdefaults file, remove the XXmm
     prefix and use the remaining letters (in either lowercase or uppercase,
     but include any underscores between words).  The codes in the access
     column indicate if the given resource can be set at creation time (CC),
     set by using XXttSSeettVVaalluueess (SS), retrieved by using XXttGGeettVVaalluueess (GG), or is
     not applicable (NN//AA).

                                                 XXmmDDrraaggCCoonntteexxtt RReessoouurrccee SSeett
   NNaammee                          CCllaassss                    TTyyppee                         DDeeffaauulltt                     AAcccceessss
   ______________________________________________________________________________________________________________________
   XmNblendModel                 XmCBlendModel            unsigned char                XmBLEND_ALL                 CG
   XmNclientData                 XmCClientData            XtPointer                    NULL                        CSG
   XmNconvertProc                XmCConvertProc           XtConvertSelectionIncrProc   NULL                        CSG
   XmNcursorBackground           XmCCursorBackground      Pixel                        dynamic                     CSG
   XmNcursorForeground           XmCCursorForeground      Pixel                        dynamic                     CSG
   XmNdragDropFinishCallback     XmCCallback              XtCallbackList               NULL                        CSG
   XmNdragMotionCallback         XmCCallback              XtCallbackList               NULL                        C
   XmNdragOperations             XmCDragOperations        unsigned char                XmDROP_COPY | XmDROP_MOVE   C
   XmNdropFinishCallback         XmCCallback              XtCallbackList               NULL                        C
   XmNdropSiteEnterCallback      XmCCallback              XtCallbackList               NULL                        C
   XmNdropSiteLeaveCallback      XmCCallback              XtCallbackList               NULL                        C
   XmNdropStartCallback          XmCCallback              XtCallbackList               NULL                        C
   XmNexportTargets              XmCExportTargets         Atom *                       NULL                        CSG
   XmNincremental                XmCIncremental           Boolean                      False                       CSG
   XmNinvalidCursorForeground    XmCCursorForeground      Pixel                        dynamic                     CSG
   XmNnoneCursorForeground       XmCCursorForeground      Pixel                        dynamic                     CSG
   XmNnumExportTargets           XmCNumExportTargets      Cardinal                     0                           CSG
   XmNoperationChangedCallback   XmCCallback              XtCallbackList               NULL                        C
   XmNoperationCursorIcon        XmCOperationCursorIcon   Widget                       dynamic                     CSG
   XmNsourceCursorIcon           XmCSourceCursorIcon      Widget                       dynamic                     CSG
   XmNsourcePixmapIcon           XmCSourcePixmapIcon      Widget                       dynamic                     CSG
   XmNstateCursorIcon            XmCStateCursorIcon       Widget                       dynamic                     CSG
   XmNtopLevelEnterCallback      XmCCallback              XtCallbackList               NULL                        C
   XmNtopLevelLeaveCallback      XmCCallback              XtCallbackList               NULL                        C
   XmNvalidCursorForeground      XmCCursorForeground      Pixel                        dynamic                     CSG

     XXmmNNbblleennddMMooddeell
               Specifies which combination of DragIcons are blended to pro-
               duce a drag-over visual.


   1-291






   XmDragContext(3X)



               XXmmBBLLEENNDD__AALLLL
                         Blends all three DragIcons - the source, state and
                         operation icon.  The icons are layered from top to
                         bottom with the operation icon on top and the source
                         icon on the bottom.  The hotspot is derived from the
                         state icon.

               XXmmBBLLEENNDD__SSTTAATTEE__SSOOUURRCCEE
                         Blends the state and source icons only.  The hotspot
                         is derived from the state icon.

               XXmmBBLLEENNDD__JJUUSSTT__SSOOUURRCCEE
                         Specifies that only the source icon is used, which
                         the initiator updates as required.

               XXmmBBLLEENNDD__NNOONNEE
                         Specifies that no drag-over visual is generated.
                         The client tracks the drop site status through call-
                         back routines and updates the drag-over visuals as
                         necessary.

     XXmmNNcclliieennttDDaattaa
               Specifies the client data to be passed to the XXmmNNccoonnvveerrttPPrroocc
               when it is invoked.

     XXmmNNccoonnvveerrttPPrroocc
               Specifies a procedure of type XXttCCoonnvveerrttSSeelleeccttiioonnIInnccrrPPrroocc that
               converts the source data to the format(s) requested by the
               receiver client.  The _w_i_d_g_e_t argument passed to this procedure
               is the DragContext widget.  The selection atom passed is
               _MOTIF_DROP.  If XXmmNNiinnccrreemmeennttaall is False, the procedure should
               ignore the _m_a_x__l_e_n_g_t_h, _c_l_i_e_n_t__d_a_t_a, and _r_e_q_u_e_s_t__i_d arguments
               and should handle the conversion atomically.  Data returned by
               XXmmNNccoonnvveerrttPPrroocc must be allocated using XXttMMaalllloocc and will be
               freed automatically by the toolkit after the transfer.  For
               additional information on selection conversion procedures, see
               _X _T_o_o_l_k_i_t _I_n_t_r_i_n_s_i_c_s-_C _L_a_n_g_u_a_g_e _I_n_t_e_r_f_a_c_e.

     XXmmNNccuurrssoorrBBaacckkggrroouunndd
               Specifies the background pixel value of the cursor.

     XXmmNNccuurrssoorrFFoorreeggrroouunndd
               Specifies the foreground pixel value of the cursor when the
               state icon is not blended.  This resource defaults to the
               foreground color of the widget passed to the XXmmDDrraaggSSttaarrtt func-
               tion.

     XXmmNNddrraaggDDrrooppFFiinniisshhCCaallllbbaacckk
               Specifies the list of callbacks that are called when the tran-
               saction is completed.  The type of the structure whose address
               is passed to this callback is XXmmDDrraaggDDrrooppFFiinniisshhCCaallllbbaacckkSSttrruucctt.
               The reason sent by the callback is XXmmCCRR__DDRRAAGG__DDRROOPP__FFIINNIISSHH.



   1-292






                                                            XmDragContext(3X)


     XXmmNNddrraaggMMoottiioonnCCaallllbbaacckk
               Specifies the list of callbacks that are invoked when the
               pointer moves.  The type of structure whose address is passed
               to this callback is XXmmDDrraaggMMoottiioonnCCaallllbbaacckkSSttrruucctt.   The reason
               sent by the callback is XXmmCCRR__DDRRAAGG__MMOOTTIIOONN.

     XXmmNNddrraaggOOppeerraattiioonnss
               Specifies the set of valid operations associated with an ini-
               tiator client for a drag transaction.  This resource is a bit
               mask that is formed by combining one or more of the following
               values using a bitwise operation such as inclusive OR (|):
               XXmmDDRROOPP__CCOOPPYY, XXmmDDRROOPP__LLIINNKK, XXmmDDRROOPP__MMOOVVEE.  The value XXmmDDRROOPP__NNOOOOPP
               for this resource indicates that no operations are valid.  For
               Text and TextField widgets, this resource is set to
               XXmmDDRROOPP__CCOOPPYY | XXmmDDRROOPP__MMOOVVEE; for List widgets, it is set to
               XXmmDDRROOPP__CCOOPPYY.

     XXmmNNddrrooppFFiinniisshhCCaallllbbaacckk
               Specifies the list of callbacks that are invoked when the drop
               is completed.   The type of the structure whose address is
               passed to this callback is XXmmDDrrooppFFiinniisshhCCaallllbbaacckkSSttrruucctt.   The
               reason sent by the callback is XXmmCCRR__DDRROOPP__FFIINNIISSHH.

     XXmmNNddrrooppSSiitteeEEnntteerrCCaallllbbaacckk
               Specifies the list of callbacks that are invoked when the
               pointer enters a drop site.  The type of the structure whose
               address is passed to this callback is XXmmDDrrooppSSiitteeEEnntteerrCCaallllbbaacckk--
               SSttrruucctt.  The reason sent by the callback is
               XXmmCCRR__DDRROOPP__SSIITTEE__EENNTTEERR.

     XXmmNNddrrooppSSiitteeLLeeaavveeCCaallllbbaacckk
               Specifies the list of callbacks that are invoked when the
               pointer leaves a drop site.  The type of the structure whose
               address is passed to this callback is XXmmDDrrooppSSiitteeLLeeaavveeCCaallllbbaacckk--
               SSttrruucctt.  The reason sent by the callback is
               XXmmCCRR__DDRROOPP__SSIITTEE__LLEEAAVVEE.

     XXmmNNddrrooppSSttaarrttCCaallllbbaacckk
               Specifies the list of callbacks that are invoked when a drop
               is initiated.  The type of the structure whose address is
               passed to this callback is XXmmDDrrooppSSttaarrttCCaallllbbaacckkSSttrruucctt.  The
               reason sent by the callback is XXmmCCRR__DDRROOPP__SSTTAARRTT.

     XXmmNNeexxppoorrttTTaarrggeettss
               Specifies the list of target atoms associated with this
               source.  This resource identifies the selection targets this
               source can be converted to.

     XXmmNNiinnccrreemmeennttaall
               Specifies a Boolean value that indicates whether the transfer
               on the initiator side uses the Xt incremental selection
               transfer mechanism described in _X _T_o_o_l_k_i_t _I_n_t_r_i_n_s_i_c_s-_C
               _L_a_n_g_u_a_g_e _I_n_t_e_r_f_a_c_e.  If the value is True, the initiator uses
               incremental transfer; if the value is False, the initiator


   1-293






   XmDragContext(3X)


               uses atomic transfer.

     XXmmNNiinnvvaalliiddCCuurrssoorrFFoorreeggrroouunndd
               Specifies the foreground pixel value of the cursor when the
               state is invalid.  This resource defaults to the value of the
               XXmmNNccuurrssoorrFFoorreeggrroouunndd resource.

     XXmmNNnnoonneeCCuurrssoorrFFoorreeggrroouunndd
               Specifies the foreground pixel value of the cursor when the
               state is none.  This resource defaults to the value of the
               XXmmNNccuurrssoorrFFoorreeggrroouunndd resource.

     XXmmNNnnuummEExxppoorrttTTaarrggeettss
               Specifies the number of entries in the list of export targets.

     XXmmNNooppeerraattiioonnCChhaannggeeddCCaallllbbaacckk
               Specifies the list of callbacks that are invoked when the drag
               is started and when the user requests that a different opera-
               tion be applied to the drop.  The type of the structure whose
               address is passed to this callback is XXmmOOppeerraattiioonnCChhaannggeedd--
               CCaallllbbaacckkSSttrruucctt.  The reason sent by the callback is
               XXmmCCRR__OOPPEERRAATTIIOONN__CCHHAANNGGEEDD.

     XXmmNNooppeerraattiioonnCCuurrssoorrIIccoonn
               Specifies the cursor icon used to designate the type of opera-
               tion performed by the drag transaction.  If  NULL, XXmmSSccrreeeenn
               resources provide default icons for copy, link, and move
               operations.

     XXmmNNssoouurrcceeCCuurrssoorrIIccoonn
               Specifies the cursor icon used to represent the source when a
               dynamic visual style is used.  If NULL, the XXmmNNddeeffaauullttSSoouurr--
               cceeCCuurrssoorrIIccoonn resource of XXmmSSccrreeeenn provides a default cursor
               icon.

     XXmmNNssoouurrcceePPiixxmmaappIIccoonn
               Specifies the pixmap icon used to represent the source when a
               preregister visual style is used.  The icon is used in con-
               junction with the colormap of the widget passed to XXmmDDrraagg--
               SSttaarrtt.  If NULL, XXmmNNssoouurrcceeCCuurrssoorrIIccoonn is used.

     XXmmNNssttaatteeCCuurrssoorrIIccoonn
               Specifies the cursor icon used to designate the state of a
               drop site.  If NULL, XXmmSSccrreeeenn resources provide default icons
               for a valid, invalid, and no drop site condition.

     XXmmNNttooppLLeevveellEEnntteerrCCaallllbbaacckk
               Specifies the list of callbacks that are called when the
               pointer enters a top-level window or root window (due to
               changing screens).  The type of the structure whose address is
               passed to this callback is XXmmTTooppLLeevveellEEnntteerrCCaallllbbaacckkSSttrruucctt.  The
               reason sent by the callback is XXmmCCRR__TTOOPP__LLEEVVEELL__EENNTTEERR.

     XXmmNNttooppLLeevveellLLeeaavveeCCaallllbbaacckk


   1-294






                                                            XmDragContext(3X)


               Specifies the list of callbacks that are called when the
               pointer leaves a top level window or the root window (due to
               changing screens).  The type of the structure whose address is
               passed to this callback is XXmmTTooppLLeevveellLLeeaavveeCCaallllbbaacckkSSttrruucctt.  The
               reason sent by the callback is XXmmCCRR__TTOOPP__LLEEVVEELL__LLEEAAVVEE.

     XXmmNNvvaalliiddCCuurrssoorrFFoorreeggrroouunndd
               Specifies the foreground pixel value of the cursor designated
               as a valid cursor icon.

     Inherited Resources

     DragContext inherits behavior and resources from the following super-
     class.  For a complete description of each resource, refer to the CCoorree
     man page.

                                                 CCoorree RReessoouurrccee SSeett
   NNaammee                            CCllaassss                           TTyyppee             DDeeffaauulltt                AAcccceessss
   ______________________________________________________________________________________________________________
   XmNaccelerators                 XmCAccelerators                 XtAccelerators   dynamic                CSG
   XmNancestorSensitive            XmCSensitive                    Boolean          dynamic                G
   XmNbackground                   XmCBackground                   Pixel            dynamic                CSG
   XmNbackgroundPixmap             XmCPixmap                       Pixmap           XmUNSPECIFIED_PIXMAP   CSG
   XmNborderColor                  XmCBorderColor                  Pixel            XtDefaultForeground    CSG
   XmNborderPixmap                 XmCPixmap                       Pixmap           XmUNSPECIFIED_PIXMAP   CSG
   XmNborderWidth                  XmCBorderWidth                  Dimension        0                      CSG
   XmNcolormap                     XmCColormap                     Colormap         dynamic                CG
   XmNdepth                        XmCDepth                        int              dynamic                CG
   XmNdestroyCallback              XmCCallback                     XtCallbackList   NULL                   C
   XmNheight                       XmCHeight                       Dimension        dynamic                CSG
   XmNinitialResourcesPersistent   XmCInitialResourcesPersistent   Boolean          True                   C
   XmNmappedWhenManaged            XmCMappedWhenManaged            Boolean          True                   CSG
   XmNscreen                       XmCScreen                       Screen *         dynamic                CG
   XmNsensitive                    XmCSensitive                    Boolean          True                   CSG
   XmNtranslations                 XmCTranslations                 XtTranslations   dynamic                CSG
   XmNwidth                        XmCWidth                        Dimension        dynamic                CSG
   XmNx                            XmCPosition                     Position         0                      CSG
   XmNy                            XmCPosition                     Position         0                      CSG

     Callback Information

     Each of the DragContext callbacks has an associated callback structure.

     A pointer to the following structure is passed to the XXmmNNddrraaggDDrrooppFFiinniisshh--
     CCaallllbbaacckk callback.
     ttyyppeeddeeff ssttrruucctt
     {{
       iinntt          _r_e_a_s_o_n;;
       XXEEvveenntt       **_e_v_e_n_t;;
       TTiimmee         _t_i_m_e_S_t_a_m_p;;
     }}XXmmDDrraaggDDrrooppFFiinniisshhCCaallllbbaacckkSSttrruucctt,, **XXmmDDrraaggDDrrooppFFiinniisshhCCaallllbbaacckk;;

     _r_e_a_s_o_n      Indicates why the callback was invoked.



   1-295






   XmDragContext(3X)


     _e_v_e_n_t       Points to the XXEEvveenntt that triggered the callback.

     _t_i_m_e_s_t_a_m_p   Specifies the time at which either the drag or the drop was
                 completed.

     A pointer to the following structure is passed to callbacks for XXmmNNddrraagg--
     MMoottiioonnCCaallllbbaacckk.
     ttyyppeeddeeff ssttrruucctt
     {{
       iinntt          _r_e_a_s_o_n;;
       XXEEvveenntt       **_e_v_e_n_t;;
       TTiimmee         _t_i_m_e_S_t_a_m_p;;
       uunnssiiggnneedd cchhaarr_o_p_e_r_a_t_i_o_n;;
       uunnssiiggnneedd cchhaarr_o_p_e_r_a_t_i_o_n_s;;
       uunnssiiggnneedd cchhaarr_d_r_o_p_S_i_t_e_S_t_a_t_u_s;;
       PPoossiittiioonn     _x;;
       PPoossiittiioonn     _y;;
     }}XXmmDDrraaggMMoottiioonnCCaallllbbaacckkSSttrruucctt,, **XXmmDDrraaggMMoottiioonnCCaallllbbaacckk;;

     _r_e_a_s_o_n      Indicates why the callback was invoked.

     _e_v_e_n_t       Points to the XXEEvveenntt that triggered the callback.

     _t_i_m_e_S_t_a_m_p   Specifies the timestamp of the logical event.

     _o_p_e_r_a_t_i_o_n   Identifies an operation.
                 If the toolkit has just called a DropSite's XXmmNNddrraaggPPrroocc, the
                 toolkit initializes _o_p_e_r_a_t_i_o_n to the value of the _o_p_e_r_a_t_i_o_n
                 member of the XXmmDDrraaggPPrrooccCCaallllbbaacckkSSttrruucctt at the time the
                 DropSite's XXmmNNddrraaggPPrroocc returns.
                 If the toolkit has not called an XXmmNNddrraaggPPrroocc and the pointer
                 is within an active drop site, the toolkit initializes
                 _o_p_e_r_a_t_i_o_n by selecting an operation from the bitwise AND of
                 the initial value of the _o_p_e_r_a_t_i_o_n_s member and the value of
                 the DropSite's XXmmNNddrrooppSSiitteeOOppeerraattiioonnss resource.  The toolkit
                 searches this set first for XXmmDDRROOPP__MMOOVVEE, then for
                 XXmmDDRROOPP__CCOOPPYY, then for XXmmDDRROOPP__LLIINNKK, and initializes _o_p_e_r_a_t_i_o_n
                 to the first operation it finds in the set.  If the toolkit
                 finds none of these operations in the set, it initializes
                 _o_p_e_r_a_t_i_o_n to XXmmDDRROOPP__NNOOOOPP.
                 If the toolkit has not called an XXmmNNddrraaggPPrroocc and the pointer
                 is not within an active drop site, the toolkit initializes
                 _o_p_e_r_a_t_i_o_n by selecting an operation from the initial value
                 of the _o_p_e_r_a_t_i_o_n_s member.  The toolkit searches this set
                 first for XXmmDDRROOPP__MMOOVVEE, then for XXmmDDRROOPP__CCOOPPYY, then for
                 XXmmDDRROOPP__LLIINNKK, and initializes _o_p_e_r_a_t_i_o_n to the first opera-
                 tion it finds in the set.  If the toolkit finds none of
                 these operations in the set, it initializes _o_p_e_r_a_t_i_o_n to
                 XXmmDDRROOPP__NNOOOOPP.

     _o_p_e_r_a_t_i_o_n_s  Indicates the set of operations supported for the source
                 data.
                 If the toolkit has just called a DropSite's XXmmNNddrraaggPPrroocc, the
                 toolkit initializes _o_p_e_r_a_t_i_o_n_s to the bitwise AND of the


   1-296






                                                            XmDragContext(3X)


                 DropSite's XXmmNNddrrooppOOppeerraattiioonnss and the value of the _o_p_e_r_a_t_i_o_n_s
                 member of the XXmmDDrraaggPPrrooccCCaallllbbaacckkSSttrruucctt at the time the
                 DropSite's XXmmNNddrraaggPPrroocc returns.  If the resulting set of
                 operations is empty, the toolkit initializes _o_p_e_r_a_t_i_o_n_s to
                 XXmmDDRROOPP__NNOOOOPP.
                 If the toolkit has not called an XXmmNNddrraaggPPrroocc and the user
                 does not select an operation (by pressing a modifier key),
                 the toolkit initializes _o_p_e_r_a_t_i_o_n_s to the value of the
                 DragContext's XXmmNNddrraaggOOppeerraattiioonnss resource.
                 If the toolkit has not called an XXmmNNddrraaggPPrroocc and the user
                 does select an operation, the toolkit initializes _o_p_e_r_a_t_i_o_n_s
                 to the bitwise AND of the corresponding operation and the
                 value of the DragContext's XXmmNNddrraaggOOppeerraattiioonnss resource.  If
                 the resulting set of operations is empty, the toolkit ini-
                 tializes _o_p_e_r_a_t_i_o_n_s to XXmmDDRROOPP__NNOOOOPP.

     _d_r_o_p_S_i_t_e_S_t_a_t_u_s
                 Indicates whether or not a drop site is valid.
                 If the toolkit has just called a DropSite's XXmmNNddrraaggPPrroocc, the
                 toolkit initializes _d_r_o_p_S_i_t_e_S_t_a_t_u_s to the value of the _d_r_o_p_-
                 _S_i_t_e_S_t_a_t_u_s member of the XXmmDDrraaggPPrrooccCCaallllbbaacckkSSttrruucctt at the
                 time the DropSite's XXmmNNddrraaggPPrroocc returns.
                 If the toolkit has not called an XXmmNNddrraaggPPrroocc, it initializes
                 _d_r_o_p_S_i_t_e_S_t_a_t_u_s as follows: the toolkit initializes _d_r_o_p_S_i_-
                 _t_e_S_t_a_t_u_s to XXmmNNOO__DDRROOPP__SSIITTEE if the pointer is over an inac-
                 tive drop site or is not over a drop site.  The toolkit ini-
                 tializes _d_r_o_p_S_i_t_e_S_t_a_t_u_s to XXmmDDRROOPP__SSIITTEE__VVAALLIIDD if all the fol-
                 lowing conditions are met:

                   ++oo  The pointer is over an active drop site.

                   ++oo  The DragContext's XXmmNNeexxppoorrttTTaarrggeettss and the DropSite's
                      XXmmNNiimmppoorrttTTaarrggeettss are compatible.

                   ++oo  The initial value of the _o_p_e_r_a_t_i_o_n member is not
                      XXmmDDRROOPP__NNOOOOPP.
                 Otherwise, the toolkit initializes _d_r_o_p_S_i_t_e_S_t_a_t_u_s to
                 XXmmDDRROOPP__SSIITTEE__IINNVVAALLIIDD.

     A pointer to the following structure is passed for the XXmmNNddrrooppFFiinniisshh--
     CCaallllbbaacckk callback:
     ttyyppeeddeeff ssttrruucctt
     {{
       iinntt          _r_e_a_s_o_n;;
       XXEEvveenntt       **_e_v_e_n_t;;
       TTiimmee         _t_i_m_e_S_t_a_m_p;;
       uunnssiiggnneedd cchhaarr_o_p_e_r_a_t_i_o_n;;
       uunnssiiggnneedd cchhaarr_o_p_e_r_a_t_i_o_n_s;;
       uunnssiiggnneedd cchhaarr_d_r_o_p_S_i_t_e_S_t_a_t_u_s;;
       uunnssiiggnneedd cchhaarr_d_r_o_p_A_c_t_i_o_n;;
       uunnssiiggnneedd cchhaarr_c_o_m_p_l_e_t_i_o_n_S_t_a_t_u_s;;
     }}XXmmDDrrooppFFiinniisshhCCaallllbbaacckkSSttrruucctt,, **XXmmDDrrooppFFiinniisshhCCaallllbbaacckk;;

     _r_e_a_s_o_n      Indicates why the callback was invoked.


   1-297






   XmDragContext(3X)



     _e_v_e_n_t       Points to the XXEEvveenntt that triggered the callback.

     _t_i_m_e_S_t_a_m_p   Specifies the time at which the drop was completed.

     _o_p_e_r_a_t_i_o_n   Identifies an operation.
                 If the pointer is over an active drop site when the drop
                 begins, the toolkit initializes _o_p_e_r_a_t_i_o_n to the value of
                 the _o_p_e_r_a_t_i_o_n member of the XXmmDDrrooppPPrrooccCCaallllbbaacckkSSttrruucctt at the
                 time the DropSite's XXmmNNddrrooppPPrroocc returns.
                 If the pointer is not over an active drop site when the drop
                 begins, the toolkit initializes _o_p_e_r_a_t_i_o_n by selecting an
                 operation from the initial value of the _o_p_e_r_a_t_i_o_n_s member.
                 The toolkit searches this set first for XXmmDDRROOPP__MMOOVVEE, then
                 for XXmmDDRROOPP__CCOOPPYY, then for XXmmDDRROOPP__LLIINNKK, and initializes
                 _o_p_e_r_a_t_i_o_n to the first operation it finds in the set.  If it
                 finds none of these operations in the set, it initializes
                 _o_p_e_r_a_t_i_o_n to XXmmDDRROOPP__NNOOOOPP.

     _o_p_e_r_a_t_i_o_n_s  Indicates the set of operations supported for the source
                 data.
                 If the pointer is over an active drop site when the drop
                 begins, the toolkit initializes _o_p_e_r_a_t_i_o_n_s to the bitwise
                 AND of the DropSite's XXmmNNddrrooppOOppeerraattiioonnss and the value of the
                 _o_p_e_r_a_t_i_o_n_s member of the XXmmDDrrooppPPrrooccCCaallllbbaacckkSSttrruucctt at the
                 time the DropSite's XXmmNNddrrooppPPrroocc returns.  If the resulting
                 set of operations is empty, the toolkit initializes _o_p_e_r_a_-
                 _t_i_o_n_s to XXmmDDRROOPP__NNOOOOPP.
                 If the pointer is not over an active drop site when the drop
                 begins and if the user does not select an operation (by
                 pressing a modifier key), the toolkit initializes _o_p_e_r_a_t_i_o_n_s
                 to the value of the DragContext's XXmmNNddrraaggOOppeerraattiioonnss
                 resource.
                 If the pointer is not over an active drop site when the drop
                 begins and if the user does select an operation, the toolkit
                 initializes _o_p_e_r_a_t_i_o_n_s to the bitwise AND of the correspond-
                 ing operation and the value of the DragContext's XXmmNNddrraaggOO--
                 ppeerraattiioonnss resource.  If the resulting set of operations is
                 empty, the toolkit initializes _o_p_e_r_a_t_i_o_n_s to XXmmDDRROOPP__NNOOOOPP.

     _d_r_o_p_S_i_t_e_S_t_a_t_u_s
                 Indicates whether or not a drop site is valid.
                 If the pointer is over an active drop site when the drop
                 begins, the toolkit initializes _d_r_o_p_S_i_t_e_S_t_a_t_u_s to the value
                 of the _d_r_o_p_S_i_t_e_S_t_a_t_u_s member of the XXmmDDrrooppPPrrooccCCaallllbbaacckkSSttrruucctt
                 at the time the DropSite's XXmmNNddrrooppPPrroocc returns.
                 If the pointer is not over an active drop site when the drop
                 begins, the toolkit initializes _d_r_o_p_S_i_t_e_S_t_a_t_u_s to
                 XXmmNNOO__DDRROOPP__SSIITTEE.

     _d_r_o_p_A_c_t_i_o_n  Identifies the drop action.  The values are: XXmmDDRROOPP,
                 XXmmDDRROOPP__CCAANNCCEELL, XXmmDDRROOPP__HHEELLPP, and XXmmDDRROOPP__IINNTTEERRRRUUPPTT.  The value
                 XXmmDDRROOPP__IINNTTEERRRRUUPPTT is currently unsupported; if specified, it
                 will be interpreted as an XXmmDDRROOPP__CCAANNCCEELL.


   1-298






                                                            XmDragContext(3X)



     _c_o_m_p_l_e_t_i_o_n_S_t_a_t_u_s
                 An IN/OUT member that indicates the status of the drop
                 action.  After the last callback procedure has returned, the
                 final value of this member determines what visual transition
                 effects will be applied.  There are two values:

                 XXmmDDRROOPP__SSUUCCCCEESSSS
                    The drop was successful.

                 XXmmDDRROOPP__FFAAIILLUURREE
                    The drop was unsuccessful.

     A pointer to the following structure is passed to callbacks for XXmmNNddrroopp--
     SSiitteeEEnntteerrCCaallllbbaacckk:
     ttyyppeeddeeff ssttrruucctt
     {{
       iinntt          _r_e_a_s_o_n;;
       XXEEvveenntt       **_e_v_e_n_t;;
       TTiimmee         _t_i_m_e_S_t_a_m_p;;
       uunnssiiggnneedd cchhaarr_o_p_e_r_a_t_i_o_n;;
       uunnssiiggnneedd cchhaarr_o_p_e_r_a_t_i_o_n_s;;
       uunnssiiggnneedd cchhaarr_d_r_o_p_S_i_t_e_S_t_a_t_u_s;;
       PPoossiittiioonn     _x;;
       PPoossiittiioonn     _y;;
     }}XXmmDDrrooppSSiitteeEEnntteerrCCaallllbbaacckkSSttrruucctt,, **XXmmDDrrooppSSiitteeEEnntteerrCCaallllbbaacckk;;

     _r_e_a_s_o_n      Indicates why the callback was invoked.

     _e_v_e_n_t       Points to the XXEEvveenntt that triggered the callback.

     _t_i_m_e_s_t_a_m_p   Specifies the time the crossing event occurred.

     _o_p_e_r_a_t_i_o_n   Identifies an operation.
                 If the toolkit has just called a DropSite's XXmmNNddrraaggPPrroocc, the
                 toolkit initializes _o_p_e_r_a_t_i_o_n to the value of the _o_p_e_r_a_t_i_o_n
                 member of the XXmmDDrraaggPPrrooccCCaallllbbaacckkSSttrruucctt at the time the
                 DropSite's XXmmNNddrraaggPPrroocc returns.
                 If the toolkit has not called an XXmmNNddrraaggPPrroocc, it initializes
                 _o_p_e_r_a_t_i_o_n by selecting an operation from the bitwise AND of
                 the initial value of the _o_p_e_r_a_t_i_o_n_s member and the value of
                 the DropSite's XXmmNNddrrooppSSiitteeOOppeerraattiioonnss resource.  The toolkit
                 searches this set first for XXmmDDRROOPP__MMOOVVEE, then for
                 XXmmDDRROOPP__CCOOPPYY, then for XXmmDDRROOPP__LLIINNKK, and initializes _o_p_e_r_a_t_i_o_n
                 to the first operation it finds in the set.  If the toolkit
                 finds none of these operations in the set, it initializes
                 _o_p_e_r_a_t_i_o_n to XXmmDDRROOPP__NNOOOOPP.

     _o_p_e_r_a_t_i_o_n_s  Indicates the set of operations supported for the source
                 data.
                 If the toolkit has just called a DropSite's XXmmNNddrraaggPPrroocc, the
                 toolkit initializes _o_p_e_r_a_t_i_o_n_s to the bitwise AND of the
                 DropSite's XXmmNNddrrooppOOppeerraattiioonnss and the value of the _o_p_e_r_a_t_i_o_n_s
                 member of the XXmmDDrraaggPPrrooccCCaallllbbaacckkSSttrruucctt at the time the


   1-299






   XmDragContext(3X)


                 DropSite's XXmmNNddrraaggPPrroocc returns.  If the resulting set of
                 operations is empty, the toolkit initializes _o_p_e_r_a_t_i_o_n_s to
                 XXmmDDRROOPP__NNOOOOPP.
                 If the toolkit has not called an XXmmNNddrraaggPPrroocc and the user
                 does not select an operation (by pressing a modifier key),
                 the toolkit initializes _o_p_e_r_a_t_i_o_n_s to the value of the
                 DragContext's XXmmNNddrraaggOOppeerraattiioonnss resource.
                 If the toolkit has not called an XXmmNNddrraaggPPrroocc and the user
                 does select an operation, the toolkit initializes _o_p_e_r_a_t_i_o_n_s
                 to the bitwise AND of the corresponding operation and the
                 value of the DragContext's XXmmNNddrraaggOOppeerraattiioonnss resource.  If
                 the resulting set of operations is empty, the toolkit ini-
                 tializes _o_p_e_r_a_t_i_o_n_s to XXmmDDRROOPP__NNOOOOPP.

     _d_r_o_p_S_i_t_e_S_t_a_t_u_s
                 Indicates whether or not a drop site is valid.
                 If the toolkit has just called a DropSite's XXmmNNddrraaggPPrroocc, the
                 toolkit initializes _d_r_o_p_S_i_t_e_S_t_a_t_u_s to the value of the _d_r_o_p_-
                 _S_i_t_e_S_t_a_t_u_s member of the XXmmDDrraaggPPrrooccCCaallllbbaacckkSSttrruucctt at the
                 time the DropSite's XXmmNNddrraaggPPrroocc returns.
                 If the toolkit has not called an XXmmNNddrraaggPPrroocc, it initializes
                 _d_r_o_p_S_i_t_e_S_t_a_t_u_s as follows: the toolkit initializes _d_r_o_p_S_i_-
                 _t_e_S_t_a_t_u_s to XXmmDDRROOPP__SSIITTEE__VVAALLIIDD if the DragContext's XXmmNNeexx--
                 ppoorrttTTaarrggeettss and the DropSite's XXmmNNiimmppoorrttTTaarrggeettss are compati-
                 ble and if the initial value of the _o_p_e_r_a_t_i_o_n member is not
                 XXmmDDRROOPP__NNOOOOPP.  Otherwise, the toolkit initializes _d_r_o_p_S_i_t_e_S_-
                 _t_a_t_u_s to XXmmDDRROOPP__SSIITTEE__IINNVVAALLIIDD.

     _x           Indicates the x-coordinate of the pointer in root window
                 coordinates.

     _y           Indicates the y-coordinate of the pointer in root window
                 coordinates.

     A pointer to the following structure is passed to callbacks for XXmmNNddrroopp--
     SSiitteeLLeeaavveeCCaallllbbaacckk.
     ttyyppeeddeeff ssttrruucctt
     {{
       iinntt          _r_e_a_s_o_n;;
       XXEEvveenntt       **_e_v_e_n_t;;
       TTiimmee         _t_i_m_e_S_t_a_m_p;;
     }}XXmmDDrrooppSSiitteeLLeeaavveeCCaallllbbaacckkSSttrruucctt,, **XXmmDDrrooppSSiitteeLLeeaavveeCCaallllbbaacckk;;

     _r_e_a_s_o_n      Indicates why the callback was invoked.

     _e_v_e_n_t       Points to the XXEEvveenntt that triggered the callback.

     _t_i_m_e_S_t_a_m_p   Specifies the timestamp of the logical event.

     A pointer to the following structure is passed for the XXmmNNddrrooppSSttaarrttCCaallll--






   1-300






                                                            XmDragContext(3X)


     bbaacckk callback:
     ttyyppeeddeeff ssttrruucctt
     {{
       iinntt          _r_e_a_s_o_n;;
       XXEEvveenntt       **_e_v_e_n_t;;
       TTiimmee         _t_i_m_e_S_t_a_m_p;;
       uunnssiiggnneedd cchhaarr_o_p_e_r_a_t_i_o_n;;
       uunnssiiggnneedd cchhaarr_o_p_e_r_a_t_i_o_n_s;;
       uunnssiiggnneedd cchhaarr_d_r_o_p_S_i_t_e_S_t_a_t_u_s;;
       uunnssiiggnneedd cchhaarr_d_r_o_p_A_c_t_i_o_n;;
       PPoossiittiioonn     _x;;
       PPoossiittiioonn     _y;;
     }}XXmmDDrrooppSSttaarrttCCaallllbbaacckkSSttrruucctt,, **XXmmDDrrooppSSttaarrttCCaallllbbaacckk;;

     _r_e_a_s_o_n      Indicates why the callback was invoked.

     _e_v_e_n_t       Points to the XXEEvveenntt that triggered the callback.

     _t_i_m_e_S_t_a_m_p   Specifies the time at which the drag was completed.

     _o_p_e_r_a_t_i_o_n   Identifies an operation.
                 If the pointer is over an active drop site when the drop
                 begins, the toolkit initializes _o_p_e_r_a_t_i_o_n to the value of
                 the _o_p_e_r_a_t_i_o_n member of the XXmmDDrrooppPPrrooccCCaallllbbaacckkSSttrruucctt at the
                 time the DropSite's XXmmNNddrrooppPPrroocc returns.
                 If the pointer is not over an active drop site when the drop
                 begins, the toolkit initializes _o_p_e_r_a_t_i_o_n by selecting an
                 operation from the initial value of the _o_p_e_r_a_t_i_o_n_s member.
                 The toolkit searches this set first for XXmmDDRROOPP__MMOOVVEE, then
                 for XXmmDDRROOPP__CCOOPPYY, then for XXmmDDRROOPP__LLIINNKK, and initializes
                 _o_p_e_r_a_t_i_o_n to the first operation it finds in the set.  If it
                 finds none of these operations in the set, it initializes
                 _o_p_e_r_a_t_i_o_n to XXmmDDRROOPP__NNOOOOPP.

     _o_p_e_r_a_t_i_o_n_s  Indicates the set of operations supported for the source
                 data.
                 If the pointer is over an active drop site when the drop
                 begins, the toolkit initializes _o_p_e_r_a_t_i_o_n_s to the bitwise
                 AND of the DropSite's XXmmNNddrrooppOOppeerraattiioonnss and the value of the
                 _o_p_e_r_a_t_i_o_n_s member of the XXmmDDrrooppPPrrooccCCaallllbbaacckkSSttrruucctt at the
                 time the DropSite's XXmmNNddrrooppPPrroocc returns.  If the resulting
                 set of operations is empty, the toolkit initializes _o_p_e_r_a_-
                 _t_i_o_n_s to XXmmDDRROOPP__NNOOOOPP.
                 If the pointer is not over an active drop site when the drop
                 begins and if the user does not select an operation (by
                 pressing a modifier key), the toolkit initializes _o_p_e_r_a_t_i_o_n_s
                 to the value of the DragContext's XXmmNNddrraaggOOppeerraattiioonnss
                 resource.
                 If the pointer is not over an active drop site when the drop
                 begins and if the user does select an operation, the toolkit
                 initializes _o_p_e_r_a_t_i_o_n_s to the bitwise AND of the correspond-
                 ing operation and the value of the DragContext's XXmmNNddrraaggOO--
                 ppeerraattiioonnss resource.  If the resulting set of operations is
                 empty, the toolkit initializes _o_p_e_r_a_t_i_o_n_s to XXmmDDRROOPP__NNOOOOPP.


   1-301






   XmDragContext(3X)



     _d_r_o_p_S_i_t_e_S_t_a_t_u_s
                 Indicates whether or not a drop site is valid.
                 If the pointer is over an active drop site when the drop
                 begins, the toolkit initializes _d_r_o_p_S_i_t_e_S_t_a_t_u_s to the value
                 of the _d_r_o_p_S_i_t_e_S_t_a_t_u_s member of the XXmmDDrrooppPPrrooccCCaallllbbaacckkSSttrruucctt
                 at the time the DropSite's XXmmNNddrrooppPPrroocc returns.
                 If the pointer is not over an active drop site when the drop
                 begins, the toolkit initializes _d_r_o_p_S_i_t_e_S_t_a_t_u_s to
                 XXmmNNOO__DDRROOPP__SSIITTEE.

     _d_r_o_p_A_c_t_i_o_n  An IN/OUT member that identifies the drop action.  The
                 values are XXmmDDRROOPP, XXmmDDRROOPP__CCAANNCCEELL, XXmmDDRROOPP__HHEELLPP, and
                 XXmmDDRROOPP__IINNTTEERRRRUUPPTT.  The value of _d_r_o_p_A_c_t_i_o_n can be modified
                 to change the action actually initiated. The value
                 XXmmDDRROOPP__IINNTTEERRRRUUPPTT is currently unsupported; if specified, it
                 will be interpreted as a XXmmDDRROOPP__CCAANNCCEELL.

     _x           Indicates the x-coordinate of the pointer in root window
                 coordinates.

     _y           Indicates the y-coordinate of the pointer in root window
                 coordinates.

     A pointer to the following structure is passed to the XXmmNNooppeerraattiioonn--
     CChhaannggeeddCCaallllbbaacckk callback:
     ttyyppeeddeeff ssttrruucctt
     {{
       iinntt          _r_e_a_s_o_n;;
       XXEEvveenntt       **_e_v_e_n_t;;
       TTiimmee         _t_i_m_e_S_t_a_m_p;;
       uunnssiiggnneedd cchhaarr_o_p_e_r_a_t_i_o_n;;
       uunnssiiggnneedd cchhaarr_o_p_e_r_a_t_i_o_n_s;;
       uunnssiiggnneedd cchhaarr_d_r_o_p_S_i_t_e_S_t_a_t_u_s;;
     }}XXmmOOppeerraattiioonnCChhaannggeeddCCaallllbbaacckkSSttrruucctt,, **XXmmOOppeerraattiioonnCChhaannggeeddCCaallllbbaacckk;;

     _r_e_a_s_o_n      Indicates why the callback was invoked.

     _e_v_e_n_t       Points to the XXEEvveenntt that triggered the callback.

     _t_i_m_e_s_t_a_m_p   Specifies the time at which the crossing event occurred.

     _o_p_e_r_a_t_i_o_n   Identifies an operation.
                 If the toolkit has just called a DropSite's XXmmNNddrraaggPPrroocc, the
                 toolkit initializes _o_p_e_r_a_t_i_o_n to the value of the _o_p_e_r_a_t_i_o_n
                 member of the XXmmDDrraaggPPrrooccCCaallllbbaacckkSSttrruucctt at the time the
                 DropSite's XXmmNNddrraaggPPrroocc returns.
                 If the toolkit has not called an XXmmNNddrraaggPPrroocc and the pointer
                 is within an active drop site, the toolkit initializes
                 _o_p_e_r_a_t_i_o_n by selecting an operation from the bitwise AND of
                 the initial value of the _o_p_e_r_a_t_i_o_n_s member and the value of
                 the DropSite's XXmmNNddrrooppSSiitteeOOppeerraattiioonnss resource.  The toolkit
                 searches this set first for XXmmDDRROOPP__MMOOVVEE, then for
                 XXmmDDRROOPP__CCOOPPYY, then for XXmmDDRROOPP__LLIINNKK, and initializes _o_p_e_r_a_t_i_o_n


   1-302






                                                            XmDragContext(3X)


                 to the first operation it finds in the set.  If the toolkit
                 finds none of these operations in the set, it initializes
                 _o_p_e_r_a_t_i_o_n to XXmmDDRROOPP__NNOOOOPP.
                 If the toolkit has not called an XXmmNNddrraaggPPrroocc and the pointer
                 is not within an active drop site, the toolkit initializes
                 _o_p_e_r_a_t_i_o_n by selecting an operation from the initial value
                 of the _o_p_e_r_a_t_i_o_n_s member.  The toolkit searches this set
                 first for XXmmDDRROOPP__MMOOVVEE, then for XXmmDDRROOPP__CCOOPPYY, then for
                 XXmmDDRROOPP__LLIINNKK, and initializes _o_p_e_r_a_t_i_o_n to the first opera-
                 tion it finds in the set.  If the toolkit finds none of
                 these operations in the set, it initializes _o_p_e_r_a_t_i_o_n to
                 XXmmDDRROOPP__NNOOOOPP.

     _o_p_e_r_a_t_i_o_n_s  Indicates the set of operations supported for the source
                 data.
                 If the toolkit has just called a DropSite's XXmmNNddrraaggPPrroocc, the
                 toolkit initializes _o_p_e_r_a_t_i_o_n_s to the bitwise AND of the
                 DropSite's XXmmNNddrrooppOOppeerraattiioonnss and the value of the _o_p_e_r_a_t_i_o_n_s
                 member of the XXmmDDrraaggPPrrooccCCaallllbbaacckkSSttrruucctt at the time the
                 DropSite's XXmmNNddrraaggPPrroocc returns.  If the resulting set of
                 operations is empty, the toolkit initializes _o_p_e_r_a_t_i_o_n_s to
                 XXmmDDRROOPP__NNOOOOPP.
                 If the toolkit has not called an XXmmNNddrraaggPPrroocc and the user
                 does not select an operation (by pressing a modifier key),
                 the toolkit initializes _o_p_e_r_a_t_i_o_n_s to the value of the
                 DragContext's XXmmNNddrraaggOOppeerraattiioonnss resource.
                 If the toolkit has not called an XXmmNNddrraaggPPrroocc and the user
                 does select an operation, the toolkit initializes _o_p_e_r_a_t_i_o_n_s
                 to the bitwise AND of the corresponding operation and the
                 value of the DragContext's XXmmNNddrraaggOOppeerraattiioonnss resource.  If
                 the resulting set of operations is empty, the toolkit ini-
                 tializes _o_p_e_r_a_t_i_o_n_s to XXmmDDRROOPP__NNOOOOPP.

     _d_r_o_p_S_i_t_e_S_t_a_t_u_s
                 Indicates whether or not a drop site is valid.
                 If the toolkit has just called a DropSite's XXmmNNddrraaggPPrroocc, the
                 toolkit initializes _d_r_o_p_S_i_t_e_S_t_a_t_u_s to the value of the _d_r_o_p_-
                 _S_i_t_e_S_t_a_t_u_s member of the XXmmDDrraaggPPrrooccCCaallllbbaacckkSSttrruucctt at the
                 time the DropSite's XXmmNNddrraaggPPrroocc returns.
                 If the toolkit has not called an XXmmNNddrraaggPPrroocc, it initializes
                 _d_r_o_p_S_i_t_e_S_t_a_t_u_s as follows: the toolkit initializes _d_r_o_p_S_i_-
                 _t_e_S_t_a_t_u_s to XXmmNNOO__DDRROOPP__SSIITTEE if the pointer is over an inac-
                 tive drop site or is not over a drop site.  The toolkit ini-
                 tializes _d_r_o_p_S_i_t_e_S_t_a_t_u_s to XXmmDDRROOPP__SSIITTEE__VVAALLIIDD if all the fol-
                 lowing conditions are met:

                   ++oo  The pointer is over an active drop site

                   ++oo  The DragContext's XXmmNNeexxppoorrttTTaarrggeettss and the DropSite's
                      XXmmNNiimmppoorrttTTaarrggeettss are compatible

                   ++oo  The initial value of the _o_p_e_r_a_t_i_o_n member is not
                      XXmmDDRROOPP__NNOOOOPP
                 Otherwise, the toolkit initializes _d_r_o_p_S_i_t_e_S_t_a_t_u_s to


   1-303






   XmDragContext(3X)


     XXmmDDRROOPP__SSIITTEE__IINNVVAALLIIDD.

     A pointer to the following structure is passed to callbacks for XXmmNNttoo--
     ppLLeevveellEEnntteerrCCaallllbbaacckk:
     ttyyppeeddeeff ssttrruucctt
     {{
       iinntt          _r_e_a_s_o_n;;
       XXEEvveenntt       **_e_v_e_n_t;;
       TTiimmee         _t_i_m_e_s_t_a_m_p;;
       SSccrreeeenn       _s_c_r_e_e_n;;
       WWiinnddooww       _w_i_n_d_o_w;;
       PPoossiittiioonn     _x;;
       PPoossiittiioonn     _y;;
       uunnssiiggnneedd cchhaarr_d_r_a_g_P_r_o_t_o_c_o_l_S_t_y_l_e;;
     }}XXmmTTooppLLeevveellEEnntteerrCCaallllbbaacckkSSttrruucctt,, **XXmmTTooppLLeevveellEEnntteerrCCaallllbbaacckk;;

     _r_e_a_s_o_n      Indicates why the callback was invoked.

     _e_v_e_n_t       Points to the XXEEvveenntt that triggered the callback.

     _t_i_m_e_S_t_a_m_p   Specifies the timestamp of the logical event.

     _s_c_r_e_e_n      Specifies the screen associated with the top-level window or
                 root window being entered.

     _w_i_n_d_o_w      Specifies the ID of the top-level window or root window
                 being entered.

     _x           Indicates the x-coordinate of the pointer in root window
                 coordinates.

     _y           Indicates the y-coordinate of the pointer in root window
                 coordinates.

     _d_r_a_g_P_r_o_t_o_c_o_l_S_t_y_l_e
                 Specifies the protocol style adopted by the initiator.  The
                 values are XXmmDDRRAAGG__DDRROOPP__OONNLLYY, XXmmDDRRAAGG__DDYYNNAAMMIICC, XXmmDDRRAAGG__NNOONNEE,
                 and XXmmDDRRAAGG__PPRREERREEGGIISSTTEERR.

     A pointer to the following structure is passed to callbacks for XXmmNNttoo--
     ppLLeevveellLLeeaavveeCCaallllbbaacckk:
     ttyyppeeddeeff ssttrruucctt
     {{
       iinntt          _r_e_a_s_o_n;;
       XXEEvveenntt       **_e_v_e_n_t;;
       TTiimmee         _t_i_m_e_s_t_a_m_p;;
       SSccrreeeenn       _s_c_r_e_e_n;;
       WWiinnddooww       _w_i_n_d_o_w;;
     }}XXmmTTooppLLeevveellLLeeaavveeCCaallllbbaacckkSSttrruucctt,, **XXmmTTooppLLeevveellLLeeaavveeCCaallllbbaacckk;;

     _r_e_a_s_o_n      Indicates why the callback was invoked.

     _e_v_e_n_t       Points to the XXEEvveenntt that triggered the callback.



   1-304






                                                            XmDragContext(3X)


     _t_i_m_e_S_t_a_m_p   Specifies the timestamp of the logical event.

     _s_c_r_e_e_n      Specifies a screen associated with the top-level window or
                 root window being left.

     _w_i_n_d_o_w      Specifies the ID of the top-level window or root window
                 being left.

     Translations

     The XmDragContext translations are listed below.  These translations may
     not directly correspond to a translation table.
     BBDDrraagg MMoottiioonn::  DDrraaggMMoottiioonn(())
     BBDDrraagg RReelleeaassee:: FFiinniisshhDDrraagg(())
     KKCCaanncceell::       CCaanncceellDDrraagg(())
     KKHHeellpp::         HHeellppDDrraagg(())

     Action Routines

     The XmDragContext action routines are described below:

     CCaanncceellDDrraagg(()):
               Cancels the drag operation and frees the associated DragCon-
               text.

     DDrraaggMMoottiioonn(()):
               Drags the selected data as the pointer is moved.

     FFiinniisshhDDrraagg(()):
               Finishes the drag operation and starts the drop operation.

     HHeellppDDrraagg(()):
               Initiates a conditional drop that enables the receiver to pro-
               vide help information to the user.  The user can cancel or
               continue the drop operation in response to this information.

     Virtual Bindings

     The bindings for virtual keys are vendor specific.  For information
     about bindings for virtual buttons and keys, see VViirrttuuaallBBiinnddiinnggss((33XX)).

   RELATED INFORMATION
     CCoorree((33XX)), XXmmDDiissppllaayy((33XX)), XXmmDDrraaggCCaanncceell((33XX)), XXmmDDrraaggIIccoonn((33XX)),
     XXmmDDrraaggSSttaarrtt((33XX)), XXmmDDrrooppSSiittee((33XX)), XXmmDDrrooppTTrraannssffeerr((33XX)), and XXmmSSccrreeeenn((33XX)).












   1-305






   XmDragIcon(3X)



   NAME
     XXmmDDrraaggIIccoonn-The DragIcon widget class

   SYNOPSIS
     ##iinncclluuddee <<XXmm//DDrraaggDDrroopp..hh>>

   DESCRIPTION
     A DragIcon is a component of the visual used to represent the source
     data in a drag and drop transaction.  During a drag operation, a real or
     simulated X cursor provides drag-over visuals consisting of a static
     portion that represents the object being dragged, and dynamic cues that
     provide visual feedback during the drag operation.  The visual is
     attained by blending together various XXmmDDrraaggIIccoonnss specified in the
     XXmmDDrraaggCCoonntteexxtt associated with the drag operation.

     The static portion of the drag-over visual is the graphic representation
     that identifies the drag source.  For example, when a user drags several
     items within a list, a DragIcon depicting a list might be supplied as
     the visual.  The XXmmDDrraaggCCoonntteexxtt resources, XXmmNNssoouurrcceeCCuurrssoorrIIccoonn or
     XXmmNNssoouurrcceePPiixxmmaappIIccoonn, specify a DragIcon to use for the static portion of
     the visual.

     A drag-over visual incorporates dynamic cues in order to provide visual
     feedback in response to the user's actions.  For instance, the drag-over
     visual might use different indicators to identify the type of operation
     (copy, link, or move) being performed.  Dynamic cues could also alert
     the user that a drop site is valid or invalid as the pointer traverses
     the drop site.  The XXmmNNooppeerraattiioonnCCuurrssoorrIIccoonn and XXmmNNssttaatteeCCuurrssoorrIIccoonn
     resources of XXmmDDrraaggCCoonntteexxtt specify DragIcons for dynamic cues.

     A drag-over visual typically consists of a source, operation and state
     DragIcon.  The XXmmNNbblleennddMMooddeell resource of XXmmDDrraaggCCoonntteexxtt offers several
     options that determine which icons are blended to produce the drag-over
     visual.  DragIcon resources control the relative position of the opera-
     tion and state icons (if used).  If a particular DragIcon is not speci-
     fied, the toolkit uses the XXmmSSccrreeeenn default DragIcons.

     An application initializes a DragIcon with the function XXmmCCrreeaatteeDDrraaggIIccoonn
     or through entries in the resource database.  If a pixmap and its mask
     (optional) are specified in the resource database, the toolkit converts
     the values in the X11 Bitmap file format and assigns values to the
     corresponding resources.

     Classes

     DragIcon inherits behavior and a resource from OObbjjeecctt.

     The class pointer is xxmmDDrraaggIIccoonnOObbjjeeccttCCllaassss.

     The class name is XXmmDDrraaggIIccoonn.





   1-306






                                                               XmDragIcon(3X)


     New Resources

     The following table defines a set of widget resources used by the pro-
     grammer to specify data.  The programmer can also set the resource
     values for the inherited classes to set attributes for this widget.  To
     reference a resource by name or by class in a .Xdefaults file, remove
     the XXmmNN or XXmmCC prefix and use the remaining letters.  To specify one of
     the defined values for a resource in a .Xdefaults file, remove the XXmm
     prefix and use the remaining letters (in either lowercase or uppercase,
     but include any underscores between words).  The codes in the access
     column indicate if the given resource can be set at creation time (CC),
     set by using XXttSSeettVVaalluueess (SS), retrieved by using XXttGGeettVVaalluueess (GG), or is
     not applicable (NN//AA).

                              XXmmDDrraaggIIccoonn RReessoouurrccee SSeett
   NNaammee            CCllaassss           TTyyppee            DDeeffaauulltt                AAcccceessss
   _____________________________________________________________________________
   XmNattachment   XmCAttachment   unsigned char   XmATTACH_NORTH_WEST    CSG
   XmNdepth        XmCDepth        int             1                      CSG
   XmNheight       XmCHeight       Dimension       0                      CSG
   XmNhotX         XmCHot          Position        0                      CSG
   XmNhotY         XmCHot          Position        0                      CSG
   XmNmask         XmCPixmap       Pixmap          XmUNSPECIFIED_PIXMAP   CSG
   XmNoffsetX      XmCOffset       Position        0                      CSG
   XmNoffsetY      XmCOffset       Position        0                      CSG
   XmNpixmap       XmCPixmap       Pixmap          XmUNSPECIFIED_PIXMAP   CSG
   XmNwidth        XmCWidth        Dimension       0                      CSG

     XXmmNNaattttaacchhmmeenntt
                 Specifies a relative location on the source icon for the
                 attachment of the state or operation icon.  The origin of
                 the state and operation icons is aligned with the specified
                 compass point on the source icon.  The XXmmNNooffffsseettXX and
                 XXmmNNooffffsseettYY resources can be used to further refine the icon
                 positions.  The possible values are

                 XXmmAATTTTAACCHH__NNOORRTTHH__WWEESSTT
                           Attaches the origin of the state or operation icon
                           to the northwest point on the source icon.

                 XXmmAATTTTAACCHH__NNOORRTTHH
                           Attaches the origin of the state or operation icon
                           to the north point on the source icon.

                 XXmmAATTTTAACCHH__NNOORRTTHH__EEAASSTT
                           Attaches the origin of the state or operation icon
                           to the northeast point on the source icon.

                 XXmmAATTTTAACCHH__EEAASSTT
                           Attaches the origin of the state or operation icon
                           to the east point on the source icon.

                 XXmmAATTTTAACCHH__SSOOUUTTHH__EEAASSTT
                           Attaches the origin of the state or operation icon


   1-307






   XmDragIcon(3X)


                           to the southeast point on the source icon.

                 XXmmAATTTTAACCHH__SSOOUUTTHH
                           Attaches the origin of the state or operation icon
                           to the south point on the source icon.

                 XXmmAATTTTAACCHH__SSOOUUTTHH__WWEESSTT
                           Attaches the origin of the state or operation icon
                           to the southwest point on the source icon.

                 XXmmAATTTTAACCHH__WWEESSTT
                           Attaches the origin of the state or operation icon
                           to the west point on the source icon.

                 XXmmAATTTTAACCHH__CCEENNTTEERR
                           Attaches the origin of the state or operation icon
                           to the center of the source icon.  The XXmmNNooffffsseettXX
                           and XXmmNNooffffsseettYY resources may be used to center the
                           attached icon.

                 XXmmAATTTTAACCHH__HHOOTT
                           Attaches the hotspot coordinates of a state or
                           operation DragIcon to an _x,_y position on the
                           source icon.  The _x,_y coordinate is taken from the
                           event passed to the XXmmDDrraaggSSttaarrtt function, and made
                           relative to the widget passed as an argument to
                           the same function.

     XXmmNNddeepptthh    Specifies the depth of the pixmap.

     XXmmNNhheeiigghhtt   Specifies the height of the pixmap.

     XXmmNNhhoottXX     Specifies the x-coordinate of the hotspot of a cursor DragI-
                 con in relation to the origin of the pixmap bounding box.

     XXmmNNhhoottYY     Specifies the y-coordinate of the hotspot of a cursor DragI-
                 con in relation to the origin of the pixmap bounding box.

     XXmmNNmmaasskk     Specifies a pixmap of depth one to use as the DragIcon mask
                 pixmap.

     XXmmNNooffffsseettXX  Specifies a horizontal offset (in pixels) of the origin of
                 the state or operation icon relative to the attachment point
                 on the source icon.  A positive offset value moves the ori-
                 gin to the right; a negative value moves the origin to the
                 left.

     XXmmNNooffffsseettYY  Specifies a vertical offset (in pixels) of the origin of the
                 state or operation icon relative to the attachment point on
                 the source icon.  A positive offset value moves the origin
                 down; a negative value moves the origin up.

     XXmmNNppiixxmmaapp   Specifies a pixmap to use as the DragIcon pixmap.



   1-308






                                                               XmDragIcon(3X)


     XXmmNNwwiiddtthh    Specifies the width of the pixmap.

     Inherited Resources

     DragIcon inherits behavior and a resource from OObbjjeecctt.  For a complete
     description of this resource, refer to the OObbjjeecctt man page.

                               OObbjjeecctt RReessoouurrccee SSeett
       NNaammee                 CCllaassss         TTyyppee             DDeeffaauulltt   AAcccceessss
       ____________________________________________________________________
       XmNdestroyCallback   XmCCallback   XtCallbackList   NULL      C

   RELATED INFORMATION
     OObbjjeecctt((33XX)), XXmmCCrreeaatteeDDrraaggIIccoonn((33XX)), XXmmDDiissppllaayy((33XX)), XXmmDDrraaggCCoonntteexxtt((33XX)),
     XXmmDDrrooppSSiittee((33XX)), XXmmDDrrooppTTrraannssffeerr((33XX)), and XXmmSSccrreeeenn((33XX)).









































   1-309






   XmDragStart(3X)



   NAME
     XXmmDDrraaggSSttaarrtt-A Drag and Drop function that initiates a drag and drop
     transaction

   SYNOPSIS
     ##iinncclluuddee <<XXmm//DDrraaggDDrroopp..hh>>
     WWiiddggeett XXmmDDrraaggSSttaarrtt ((_w_i_d_g_e_t, _e_v_e_n_t, _a_r_g_l_i_s_t, _a_r_g_c_o_u_n_t))
          WWiiddggeett         _w_i_d_g_e_t;;
          XXEEvveenntt         **_e_v_e_n_t;;
          AArrggLLiisstt        _a_r_g_l_i_s_t;;
          CCaarrddiinnaall       _a_r_g_c_o_u_n_t;;

   DESCRIPTION
     XXmmDDrraaggSSttaarrtt initiates a drag operation.  This routine returns the
     DragContext widget that it initializes for the associated drag transac-
     tion.  The toolkit is responsible for freeing the DragContext when the
     drag and drop transaction is complete.

     _w_i_d_g_e_t Specifies the ID of the smallest widget and/or gadget that
            encloses the source elements selected for a drag operation.

     _e_v_e_n_t  Specifies the XXEEvveenntt that triggered the drag operation.  This
            event must be a ButtonPress event.

     _a_r_g_l_i_s_tSpecifies the argument list.  Any XXmmDDrraaggCCoonntteexxtt resources not
            specified in the argument list are obtained from the resource
            database or are set to their default values.

     _a_r_g_c_o_u_n_t
            Specifies the number of attribute/value pairs in the argument
            list (_a_r_g_l_i_s_t)

     For a complete definition of DragContext and its associated resources,
     see XXmmDDrraaggCCoonntteexxtt((33XX)).

   RETURN VALUE
     Returns the ID of the DragContext widget that controls this drag and
     drop transaction.

   RELATED INFORMATION
     XXmmDDrraaggCCaanncceell((33XX)) and XXmmDDrraaggCCoonntteexxtt((33XX)).














   1-310






                                                            XmDrawingArea(3X)



   NAME
     XXmmDDrraawwiinnggAArreeaa-The DrawingArea widget class

   SYNOPSIS
     ##iinncclluuddee <<XXmm//DDrraawwiinnggAA..hh>>

   DESCRIPTION
     DrawingArea is an empty widget that is easily adaptable to a variety of
     purposes.  It does no drawing and defines no behavior except for invok-
     ing callbacks.  Callbacks notify the application when graphics need to
     be drawn (exposure events or widget resize) and when the widget receives
     input from the keyboard or mouse.

     Applications are responsible for defining appearance and behavior as
     needed in response to DrawingArea callbacks.

     DrawingArea is also a composite widget and subclass of XXmmMMaannaaggeerr that
     supports minimal geometry management for multiple widget or gadget chil-
     dren.

     Classes

     DrawingArea inherits behavior and resources from the CCoorree, CCoommppoossiittee,
     CCoonnssttrraaiinntt, and XXmmMMaannaaggeerr classes.

     The class pointer is xxmmDDrraawwiinnggAArreeaaWWiiddggeettCCllaassss.

     The class name is XXmmDDrraawwiinnggAArreeaa.

     New Resources

     The following table defines a set of widget resources used by the pro-
     grammer to specify data.  The programmer can also set the resource
     values for the inherited classes to set attributes for this widget.  To
     reference a resource by name or by class in a .Xdefaults file, remove
     the XXmmNN or XXmmCC prefix and use the remaining letters.  To specify one of
     the defined values for a resource in a .Xdefaults file, remove the XXmm
     prefix and use the remaining letters (in either lowercase or uppercase,
     but include any underscores between words).  The codes in the access
     column indicate if the given resource can be set at creation time (C),
     set by using XXttSSeettVVaalluueess (S), retrieved by using XXttGGeettVVaalluueess (G), or is
     not applicable (N/A).
                            XXmmDDrraawwiinnggAArreeaa RReessoouurrccee SSeett
   NNaammee                CCllaassss             TTyyppee             DDeeffaauulltt        AAcccceessss
   ____________________________________________________________________________
   XmNexposeCallback   XmCCallback       XtCallbackList   NULL           C
   XmNinputCallback    XmCCallback       XtCallbackList   NULL           C
   XmNmarginHeight     XmCMarginHeight   Dimension        10             CSG
   XmNmarginWidth      XmCMarginWidth    Dimension        10             CSG
   XmNresizeCallback   XmCCallback       XtCallbackList   NULL           C
   XmNresizePolicy     XmCResizePolicy   unsigned char    XmRESIZE_ANY   CSG




   1-311






   XmDrawingArea(3X)



     XXmmNNeexxppoosseeCCaallllbbaacckk
               Specifies the list of callbacks that is called when
               DrawingArea receives an exposure event.  The callback reason
               is XXmmCCRR__EEXXPPOOSSEE.  The callback structure also includes the
               exposure event.
               The default bit gravity for Manager windows is NNoorrtthhWWeessttGGrraavv--
               iittyy.  This may cause the XXmmNNeexxppoosseeCCaallllbbaacckk procedures not to
               be invoked when the DrawingArea window is made smaller.

     XXmmNNiinnppuuttCCaallllbbaacckk
               Specifies the list of callbacks that is called when the
               DrawingArea receives a keyboard or mouse event (key or button,
               up or down).  The callback reason is XXmmCCRR__IINNPPUUTT.  The callback
               structure also includes the input event.

     XXmmNNmmaarrggiinnHHeeiigghhtt
               Specifies the minimum spacing in pixels between the top or
               bottom edge of DrawingArea and any child widget.

     XXmmNNmmaarrggiinnWWiiddtthh
               Specifies the minimum spacing in pixels between the left or
               right edge of DrawingArea and any child widget.

     XXmmNNrreessiizzeeCCaallllbbaacckk
               Specifies the list of callbacks that is called when the
               DrawingArea is resized.  The callback reason is XXmmCCRR__RREESSIIZZEE.

     XXmmNNrreessiizzeePPoolliiccyy
               Controls the policy for resizing DrawingArea widgets.  Possi-
               ble values include XXmmRREESSIIZZEE__NNOONNEE (fixed size), XXmmRREESSIIZZEE__AANNYY
               (shrink or grow as needed), and XXmmRREESSIIZZEE__GGRROOWW (grow only).

     Inherited Resources

     DrawingArea inherits behavior and resources from the following superc-
     lasses.  For a complete description of each resource, refer to the man
     page for that superclass.
                                        XXmmMMaannaaggeerr RReessoouurrccee SSeett
   NNaammee                    CCllaassss                   TTyyppee                DDeeffaauulltt                AAcccceessss
   _________________________________________________________________________________________________
   XmNbottomShadowColor    XmCBottomShadowColor    Pixel               dynamic                CSG
   XmNbottomShadowPixmap   XmCBottomShadowPixmap   Pixmap              XmUNSPECIFIED_PIXMAP   CSG
   XmNforeground           XmCForeground           Pixel               dynamic                CSG
   XmNhelpCallback         XmCCallback             XtCallbackList      NULL                   C
   XmNhighlightColor       XmCHighlightColor       Pixel               dynamic                CSG
   XmNhighlightPixmap      XmCHighlightPixmap      Pixmap              dynamic                CSG
   XmNinitialFocus         XmCInitialFocus         Widget              NULL                   CSG
   XmNnavigationType       XmCNavigationType       XmNavigationType    XmTAB_GROUP            CSG
   XmNshadowThickness      XmCShadowThickness      Dimension           0                      CSG
   XmNstringDirection      XmCStringDirection      XmStringDirection   dynamic                CG
   XmNtopShadowColor       XmCTopShadowColor       Pixel               dynamic                CSG
   XmNtopShadowPixmap      XmCTopShadowPixmap      Pixmap              dynamic                CSG
   XmNtraversalOn          XmCTraversalOn          Boolean             True                   CSG


   1-312






                                                            XmDrawingArea(3X)


   XmNunitType             XmCUnitType             unsigned char       dynamic                CSG
   XmNuserData             XmCUserData             XtPointer           NULL                   CSG
                              CCoommppoossiittee RReessoouurrccee SSeett
      NNaammee                CCllaassss               TTyyppee          DDeeffaauulltt   AAcccceessss
      ______________________________________________________________________
      XmNchildren         XmCReadOnly         WidgetList    NULL      G
      XmNinsertPosition   XmCInsertPosition   XtOrderProc   NULL      CSG
      XmNnumChildren      XmCReadOnly         Cardinal      0         G
                                                 CCoorree RReessoouurrccee SSeett
   NNaammee                            CCllaassss                           TTyyppee             DDeeffaauulltt                AAcccceessss
   ______________________________________________________________________________________________________________
   XmNaccelerators                 XmCAccelerators                 XtAccelerators   dynamic                CSG
   XmNancestorSensitive            XmCSensitive                    Boolean          dynamic                G
   XmNbackground                   XmCBackground                   Pixel            dynamic                CSG
   XmNbackgroundPixmap             XmCPixmap                       Pixmap           XmUNSPECIFIED_PIXMAP   CSG
   XmNborderColor                  XmCBorderColor                  Pixel            XtDefaultForeground    CSG
   XmNborderPixmap                 XmCPixmap                       Pixmap           XmUNSPECIFIED_PIXMAP   CSG
   XmNborderWidth                  XmCBorderWidth                  Dimension        0                      CSG
   XmNcolormap                     XmCColormap                     Colormap         dynamic                CG
   XmNdepth                        XmCDepth                        int              dynamic                CG
   XmNdestroyCallback              XmCCallback                     XtCallbackList   NULL                   C
   XmNheight                       XmCHeight                       Dimension        dynamic                CSG
   XmNinitialResourcesPersistent   XmCInitialResourcesPersistent   Boolean          True                   C
   XmNmappedWhenManaged            XmCMappedWhenManaged            Boolean          True                   CSG
   XmNscreen                       XmCScreen                       Screen *         dynamic                CG
   XmNsensitive                    XmCSensitive                    Boolean          True                   CSG
   XmNtranslations                 XmCTranslations                 XtTranslations   dynamic                CSG
   XmNwidth                        XmCWidth                        Dimension        dynamic                CSG
   XmNx                            XmCPosition                     Position         0                      CSG
   XmNy                            XmCPosition                     Position         0                      CSG

     Callback Information

     A pointer to the following structure is passed to each callback:
     ttyyppeeddeeff ssttrruucctt
     {{
       iinntt      _r_e_a_s_o_n;;
       XXEEvveenntt   * _e_v_e_n_t;;
       WWiinnddooww   _w_i_n_d_o_w;;
     }} XXmmDDrraawwiinnggAArreeaaCCaallllbbaacckkSSttrruucctt;;

     _r_e_a_s_o_n Indicates why the callback was invoked

     _e_v_e_n_t  Points to the XXEEvveenntt that triggered the callback.  This is NULL
            for the XXmmNNrreessiizzeeCCaallllbbaacckk.

     _w_i_n_d_o_w Is set to the widget window









   1-313






   XmDrawingArea(3X)



     Translations

     XmDrawingArea inherits translations from XmManager.  Before calling the
     XmManager actions, all events in the inherited translations except
     <<BBttnnMMoottiioonn>>, <<EEnntteerrWWiinnddooww>>, <<LLeeaavveeWWiinnddooww>>, <<FFooccuussIInn>>, and <<FFooccuussOOuutt>>
     also call the DDrraawwiinnggAArreeaaIInnppuutt(()) action.

     XmDrawingArea has the additional translations listed below.  These
     translations may not directly correspond to a translation table.
     MMAAnnyy BBAAnnyy PPrreessss::DDrraawwiinnggAArreeaaIInnppuutt(())
     MMAAnnyy BBAAnnyy RReelleeaassee::DDrraawwiinnggAArreeaaIInnppuutt(())
     MMAAnnyy KKAAnnyy PPrreessss::DDrraawwiinnggAArreeaaIInnppuutt(())
                    MMaannaaggeerrGGaaddggeettKKeeyyIInnppuutt(())
     MMAAnnyy KKAAnnyy RReelleeaassee::DDrraawwiinnggAArreeaaIInnppuutt(())

     Action Routines

     The XmDrawingArea action routines are described below:

     DDrraawwiinnggAArreeaaIInnppuutt(()):
               Unless the event takes place in a gadget, calls the callbacks
               for XXmmNNiinnppuuttCCaallllbbaacckk.

     MMaannaaggeerrGGaaddggeettKKeeyyIInnppuutt(()):
               Causes the current gadget to process a keyboard event.

     Additional Behavior

     The XmDrawingArea widget has the additional behavior described below:

     <<EExxppoossee>>: Calls the callbacks for XXmmNNeexxppoosseeCCaallllbbaacckk.

     <<WWiiddggeett RReessiizzee>>:
               Calls the callbacks for XXmmNNrreessiizzeeCCaallllbbaacckk.

     Virtual Bindings

     The bindings for virtual keys are vendor specific.  For information
     about bindings for virtual buttons and keys, see VViirrttuuaallBBiinnddiinnggss((33XX)).

   RELATED INFORMATION
     CCoommppoossiittee((33XX)), CCoonnssttrraaiinntt((33XX)), CCoorree((33XX)), XXmmCCrreeaatteeDDrraawwiinnggAArreeaa((33XX)), and
     XXmmMMaannaaggeerr((33XX)).












   1-314






                                                            XmDrawnButton(3X)



   NAME
     XXmmDDrraawwnnBBuuttttoonn-The DrawnButton widget class

   SYNOPSIS
     ##iinncclluuddee <<XXmm//DDrraawwnnBB..hh>>

   DESCRIPTION
     The DrawnButton widget consists of an empty widget window surrounded by
     a shadow border.  It provides the application developer with a graphics
     area that can have PushButton input semantics.

     Callback types are defined for widget exposure and widget resize to
     allow the application to redraw or reposition its graphics.  If the
     DrawnButton widget has a highlight and shadow thickness, the application
     should not draw in that area.  To avoid drawing in the highlight and
     shadow area, create the graphics context with a clipping rectangle for
     drawing in the widget.  The clipping rectangle should take into account
     the size of the widget's highlight thickness and shadow.

     Classes

     DrawnButton inherits behavior and resources from CCoorree, XXmmPPrriimmiittiivvee, and
     XXmmLLaabbeell Classes.

     The class pointer is xxmmDDrraawwnnBBuuttttoonnWWiiddggeettCCllaassss.

     The class name is XXmmDDrraawwnnBBuuttttoonn.

     New Resources

     The following table defines a set of widget resources used by the pro-
     grammer to specify data.  The programmer can also set the resource
     values for the inherited classes to set attributes for this widget.  To
     reference a resource by name or by class in a .Xdefaults file, remove
     the XXmmNN or XXmmCC prefix and use the remaining letters.  To specify one of
     the defined values for a resource in a .Xdefaults file, remove the XXmm
     prefix and use the remaining letters (in either lowercase or uppercase,
     but include any underscores between words).  The codes in the access
     column indicate if the given resource can be set at creation time (C),
     set by using XXttSSeettVVaalluueess (S), retrieved by using XXttGGeettVVaalluueess (G), or is
     not applicable (N/A).
                                   XXmmDDrraawwnnBBuuttttoonn RReessoouurrccee SSeett
   NNaammee                   CCllaassss                  TTyyppee             DDeeffaauulltt              AAcccceessss
   __________________________________________________________________________________________
   XmNactivateCallback    XmCCallback            XtCallbackList   NULL                 C
   XmNarmCallback         XmCCallback            XtCallbackList   NULL                 C
   XmNdisarmCallback      XmCCallback            XtCallbackList   NULL                 C
   XmNexposeCallback      XmCCallback            XtCallbackList   NULL                 C
   XmNmultiClick          XmCMultiClick          unsigned char    dynamic              CSG
   XmNpushButtonEnabled   XmCPushButtonEnabled   Boolean          False                CSG
   XmNresizeCallback      XmCCallback            XtCallbackList   NULL                 C
   XmNshadowType          XmCShadowType          unsigned char    XmSHADOW_ETCHED_IN   CSG



   1-315






   XmDrawnButton(3X)


     XXmmNNaaccttiivvaatteeCCaallllbbaacckk
               Specifies the list of callbacks that is called when the widget
               becomes selected.  The reason sent by the callback is
               XXmmCCRR__AACCTTIIVVAATTEE.

     XXmmNNaarrmmCCaallllbbaacckk
               Specifies the list of callbacks that is called when the widget
               becomes armed.  The reason sent by the callback is XXmmCCRR__AARRMM.

     XXmmNNddiissaarrmmCCaallllbbaacckk
               Specifies the list of callbacks that is called when the widget
               becomes disarmed.  The reason sent by the callback is
               XXmmCCRR__DDIISSAARRMM.

     XXmmNNeexxppoosseeCCaallllbbaacckk
               Specifies the list of callbacks that is called when the widget
               receives an exposure event.  The reason sent by the callback
               is XXmmCCRR__EEXXPPOOSSEE.

     XXmmNNmmuullttiiCClliicckk
               If a button click is followed by another button click within
               the time span specified by the display's multi-click time, and
               this resource is set to XXmmMMUULLTTIICCLLIICCKK__DDIISSCCAARRDD, do not process
               the second click.  If this resource is set to
               XXmmMMUULLTTIICCLLIICCKK__KKEEEEPP, process the event and increment _c_l_i_c_k__c_o_u_n_t
               in the callback structure.  When the button is not in a menu,
               the default value is XXmmMMUULLTTIICCLLIICCKK__KKEEEEPP.

     XXmmNNppuusshhBBuuttttoonnEEnnaabblleedd
               Enables or disables the three-dimensional shadow drawing as in
               PushButton.

     XXmmNNrreessiizzeeCCaallllbbaacckk
               Specifies the list of callbacks that is called when the widget
               receives a resize event.  The reason sent by the callback is
               XXmmCCRR__RREESSIIZZEE.  The event returned for this callback is NULL.

     XXmmNNsshhaaddoowwTTyyppee
               Describes the drawing style for the DrawnButton.  This
               resource can have the following values:

                 ++oo  XXmmSSHHAADDOOWW__IINN-draws the DrawnButton so that the shadow
                    appears inset.  This means that the bottom shadow visuals
                    and top shadow visuals are reversed.

                 ++oo  XXmmSSHHAADDOOWW__OOUUTT-draws the DrawnButton so that the shadow
                    appears outset.









   1-316






                                                            XmDrawnButton(3X)



                 ++oo  XXmmSSHHAADDOOWW__EETTCCHHEEDD__IINN-draws the DrawnButton using a double
                    line.  This gives the effect of a line etched into the
                    window.  The thickness of the double line is equal to the
                    value of XXmmNNsshhaaddoowwTThhiicckknneessss.

                 ++oo  XXmmSSHHAADDOOWW__EETTCCHHEEDD__OOUUTT-draws the DrawnButton using a double
                    line.  This gives the effect of a line coming out of the
                    window.  The thickness of the double line is equal to the
                    value of XXmmNNsshhaaddoowwTThhiicckknneessss.

     Inherited Resources

     DrawnButton inherits behavior and resources from the following superc-
     lasses.  For a complete description of each resource, refer to the man
     page for that superclass.
                                              XXmmLLaabbeell RReessoouurrccee SSeett
   NNaammee                        CCllaassss                       TTyyppee                DDeeffaauulltt                  AAcccceessss
   ___________________________________________________________________________________________________________
   XmNaccelerator              XmCAccelerator              String              NULL                     N/A
   XmNacceleratorText          XmCAcceleratorText          XmString            NULL                     N/A
   XmNalignment                XmCAlignment                unsigned char       dynamic                  CSG
   XmNfontList                 XmCFontList                 XmFontList          dynamic                  CSG
   XmNlabelInsensitivePixmap   XmCLabelInsensitivePixmap   Pixmap              XmUNSPECIFIED_PIXMAP     CSG
   XmNlabelPixmap              XmCLabelPixmap              Pixmap              XmUNSPECIFIED_PIXMAP     CSG
   XmNlabelString              XmCXmString                 XmString            "\0"                     CSG
   XmNlabelType                XmCLabelType                unsigned char       XmSTRING                 CSG
   XmNmarginBottom             XmCMarginBottom             Dimension           0                        CSG
   XmNmarginHeight             XmCMarginHeight             Dimension           2                        CSG
   XmNmarginLeft               XmCMarginLeft               Dimension           0                        CSG
   XmNmarginRight              XmCMarginRight              Dimension           0                        CSG
   XmNmarginTop                XmCMarginTop                Dimension           0                        CSG
   XmNmarginWidth              XmCMarginWidth              Dimension           2                        CSG
   XmNmnemonic                 XmCMnemonic                 KeySym              NULL                     N/A
   XmNmnemonicCharSet          XmCMnemonicCharSet          String              XmFONTLIST_DEFAULT_TAG   N/A
   XmNrecomputeSize            XmCRecomputeSize            Boolean             True                     CSG
   XmNstringDirection          XmCStringDirection          XmStringDirection   dynamic                  CSG
                                       XXmmPPrriimmiittiivvee RReessoouurrccee SSeett
   NNaammee                    CCllaassss                   TTyyppee               DDeeffaauulltt                AAcccceessss
   ________________________________________________________________________________________________
   XmNbottomShadowColor    XmCBottomShadowColor    Pixel              dynamic                CSG
   XmNbottomShadowPixmap   XmCBottomShadowPixmap   Pixmap             XmUNSPECIFIED_PIXMAP   CSG
   XmNforeground           XmCForeground           Pixel              dynamic                CSG
   XmNhelpCallback         XmCCallback             XtCallbackList     NULL                   C
   XmNhighlightColor       XmCHighlightColor       Pixel              dynamic                CSG
   XmNhighlightOnEnter     XmCHighlightOnEnter     Boolean            False                  CSG
   XmNhighlightPixmap      XmCHighlightPixmap      Pixmap             dynamic                CSG
   XmNhighlightThickness   XmCHighlightThickness   Dimension          2                      CSG
   XmNnavigationType       XmCNavigationType       XmNavigationType   XmNONE                 CSG
   XmNshadowThickness      XmCShadowThickness      Dimension          2                      CSG
   XmNtopShadowColor       XmCTopShadowColor       Pixel              dynamic                CSG
   XmNtopShadowPixmap      XmCTopShadowPixmap      Pixmap             dynamic                CSG
   XmNtraversalOn          XmCTraversalOn          Boolean            True                   CSG
   XmNunitType             XmCUnitType             unsigned char      dynamic                CSG


   1-317






   XmDrawnButton(3X)


   XmNuserData             XmCUserData             XtPointer          NULL                   CSG
                                                 CCoorree RReessoouurrccee SSeett
   NNaammee                            CCllaassss                           TTyyppee             DDeeffaauulltt                AAcccceessss
   ______________________________________________________________________________________________________________
   XmNaccelerators                 XmCAccelerators                 XtAccelerators   dynamic                CSG
   XmNancestorSensitive            XmCSensitive                    Boolean          dynamic                G
   XmNbackground                   XmCBackground                   Pixel            dynamic                CSG
   XmNbackgroundPixmap             XmCPixmap                       Pixmap           XmUNSPECIFIED_PIXMAP   CSG
   XmNborderColor                  XmCBorderColor                  Pixel            XtDefaultForeground    CSG
   XmNborderPixmap                 XmCPixmap                       Pixmap           XmUNSPECIFIED_PIXMAP   CSG
   XmNborderWidth                  XmCBorderWidth                  Dimension        0                      CSG
   XmNcolormap                     XmCColormap                     Colormap         dynamic                CG
   XmNdepth                        XmCDepth                        int              dynamic                CG
   XmNdestroyCallback              XmCCallback                     XtCallbackList   NULL                   C
   XmNheight                       XmCHeight                       Dimension        dynamic                CSG
   XmNinitialResourcesPersistent   XmCInitialResourcesPersistent   Boolean          True                   C
   XmNmappedWhenManaged            XmCMappedWhenManaged            Boolean          True                   CSG
   XmNscreen                       XmCScreen                       Screen *         dynamic                CG
   XmNsensitive                    XmCSensitive                    Boolean          True                   CSG
   XmNtranslations                 XmCTranslations                 XtTranslations   dynamic                CSG
   XmNwidth                        XmCWidth                        Dimension        dynamic                CSG
   XmNx                            XmCPosition                     Position         0                      CSG
   XmNy                            XmCPosition                     Position         0                      CSG

     Callback Information

     A pointer to the following structure is passed to each callback:
     ttyyppeeddeeff ssttrruucctt
     {{
       iinntt      _r_e_a_s_o_n;;
       XXEEvveenntt   * _e_v_e_n_t;;
       WWiinnddooww   _w_i_n_d_o_w;;
       iinntt      _c_l_i_c_k__c_o_u_n_t;;
     }} XXmmDDrraawwnnBBuuttttoonnCCaallllbbaacckkSSttrruucctt;;

     _r_e_a_s_o_n Indicates why the callback was invoked.

     _e_v_e_n_t  Points to the XXEEvveenntt that triggered the callback.  This is  NULL
            for XXmmNNrreessiizzeeCCaallllbbaacckk.

     _w_i_n_d_o_w Is set to the window ID in which the event occurred.

     _c_l_i_c_k__c_o_u_n_t
            Contains the number of clicks in the last multiclick sequence if
            the XXmmNNmmuullttiiCClliicckk resource is set to XXmmMMUULLTTIICCLLIICCKK__KKEEEEPP, otherwise
            it contains 11.  The activate callback is invoked for each click
            if XXmmNNmmuullttiiCClliicckk is set to XXmmMMUULLTTIICCLLIICCKK__KKEEEEPP.

     Translations

     XmDrawnButton includes translations from Primitive.  Additional XmDrawn-
     Button translations are listed below.  These translations may not
     directly correspond to a translation table.
     BBSSeelleecctt PPrreessss:: AArrmm(())


   1-318






                                                            XmDrawnButton(3X)


     BBSSeelleecctt CClliicckk:: AAccttiivvaattee(())
                    DDiissaarrmm(())
     BBSSeelleecctt RReelleeaassee::AAccttiivvaattee(())
                    DDiissaarrmm(())
     BBSSeelleecctt PPrreessss 22++::MMuullttiiAArrmm(())
     BBSSeelleecctt RReelleeaassee 22++::MMuullttiiAAccttiivvaattee(())
     KKSSeelleecctt::       AArrmmAAnnddAAccttiivvaattee(())
     KKHHeellpp::         HHeellpp(())

     Action Routines

     The XmDrawnButton action routines are described below:

     AAccttiivvaattee(()):
               If XXmmNNppuusshhBBuuttttoonnEEnnaabblleedd is True, redraws the shadow in the
               unselected state; otherwise, redraws the shadow according to
               XXmmNNsshhaaddoowwTTyyppee.  If the pointer is within the DrawnButton,
               calls the XXmmNNaaccttiivvaatteeCCaallllbbaacckk callbacks.

     AArrmm(()):    If XXmmNNppuusshhBBuuttttoonnEEnnaabblleedd is True, redraws the shadow in the
               selected state; otherwise, redraws the shadow according to
               XXmmNNsshhaaddoowwTTyyppee.  Calls the callbacks for XXmmNNaarrmmCCaallllbbaacckk.

     AArrmmAAnnddAAccttiivvaattee(()):
               If XXmmNNppuusshhBBuuttttoonnEEnnaabblleedd is True, redraws the shadow in the
               selected state; otherwise, redraws the shadow according to
               XXmmNNsshhaaddoowwTTyyppee.  Calls the callbacks for XXmmNNaarrmmCCaallllbbaacckk.
               Arranges for the following to happen, either immediately or at
               a later time: If XXmmNNppuusshhBBuuttttoonnEEnnaabblleedd is True, the shadow is
               redrawn in the unselected state; otherwise, the shadow is
               redrawn according to XXmmNNsshhaaddoowwTTyyppee.  The callbacks for XXmmNNaacc--
               ttiivvaatteeCCaallllbbaacckk and XXmmNNddiissaarrmmCCaallllbbaacckk are called.

     DDiissaarrmm(()): Marks the DrawnButton as unselected and calls the callbacks
               for XXmmNNddiissaarrmmCCaallllbbaacckk.

     HHeellpp(()):   Calls the callbacks for XXmmNNhheellppCCaallllbbaacckk if any exist.  If
               there are no help callbacks for this widget, this action calls
               the help callbacks for the nearest ancestor that has them.

     MMuullttiiAAccttiivvaattee(()):
               If XXmmNNmmuullttiiCClliicckk is XXmmMMUULLTTIICCLLIICCKK__DDIISSCCAARRDD, this action does
               nothing.  If XXmmNNmmuullttiiCClliicckk is XXmmMMUULLTTIICCLLIICCKK__KKEEEEPP, this action
               does the following: Increments _c_l_i_c_k__c_o_u_n_t in the callback
               structure.  If XXmmNNppuusshhBBuuttttoonnEEnnaabblleedd is True, redraws the sha-
               dow in the unselected state; otherwise, redraws the shadow
               according to XXmmNNsshhaaddoowwTTyyppee.  If the pointer is within the
               DrawnButton,  calls the XXmmNNaaccttiivvaatteeCCaallllbbaacckk callbacks.  Calls
               the callbacks for XXmmNNddiissaarrmmCCaallllbbaacckk.







   1-319






   XmDrawnButton(3X)



     MMuullttiiAArrmm(()):
               If XXmmNNmmuullttiiCClliicckk is XXmmMMUULLTTIICCLLIICCKK__DDIISSCCAARRDD, this action does
               nothing.  If XXmmNNmmuullttiiCClliicckk is XXmmMMUULLTTIICCLLIICCKK__KKEEEEPP, this action
               does the following: If XXmmNNppuusshhBBuuttttoonnEEnnaabblleedd is True, redraws
               the shadow in the selected state; otherwise, redraws the sha-
               dow according to XXmmNNsshhaaddoowwTTyyppee.  Calls the callbacks for
               XXmmNNaarrmmCCaallllbbaacckk.

     Additional Behavior

     This widget has the additional behavior described below:

     <<EEnntteerrWWiinnddooww>>:
               Draws the shadow in its selected state if XXmmNNppuusshhBBuuttttoonnEEnnaabblleedd
               is True and if the cursor leaves and re-enters the window
               while BBSSeelleecctt is pressed.

     <<LLeeaavveeWWiinnddooww>>:
               Draws the shadow in its unselected state if XXmmNNppuusshhBBuuttttoonnEEnn--
               aabblleedd is True and if the cursor leaves the window while
               BBSSeelleecctt is pressed.

     Virtual Bindings

     The bindings for virtual keys are vendor specific.  For information
     about bindings for virtual buttons and keys, see VViirrttuuaallBBiinnddiinnggss((33XX)).

   RELATED INFORMATION
     CCoorree((33XX)), XXmmCCrreeaatteeDDrraawwnnBBuuttttoonn, XXmmLLaabbeell((33XX)), XXmmPPrriimmiittiivvee((33XX)), XXmmPPuusshhBBuutt--
     ttoonn, and XXmmSSeeppaarraattoorr((33XX)).

























   1-320






                                                               XmDropSite(3X)



   NAME
     XXmmDDrrooppSSiittee-The DropSite Registry

   SYNOPSIS
     ##iinncclluuddee <<XXmm//DDrraaggDDrroopp..hh>>

   DESCRIPTION
     A client registers a widget or gadget as a drop site using the XXmmDDrrooppSSii--
     tteeRReeggiisstteerr function.  In addition, this routine defines the behavior and
     capabilities of a drop site by specifying appropriate resources.  For
     example, the XXmmNNiimmppoorrttTTaarrggeettss and XXmmNNnnuummIImmppoorrttTTaarrggeettss resources identify
     respectively the selection target types and number of types supported by
     a drop site.  The visual animation effects associated with a drop site
     are also described with DropSite resources.

     Drop site animation effects that occur in response to the pointer enter-
     ing a valid drop site are called drag-under effects.  A receiver can
     select from several animation styles supplied by the toolkit or can pro-
     vide customized animation effects.  Drag-under effects supplied by the
     toolkit include border highlighting, shadow in/out drawing, and pixmap
     representation.

     When a preregister drag protocol style is used, the toolkit generates
     drag-under visual effects based on the value of the XXmmNNaanniimmaattiioonnSSttyyllee
     resource.  In dynamic mode, if the drop site XXmmNNddrraaggPPrroocc resource is
     NULL, the toolkit also provides animation effects based on the XXmmNNaanniimmaa--
     ttiioonnSSttyyllee resource.  Otherwise, if the XXmmNNddrraaggPPrroocc routine is specified,
     the receiver can either assume responsibility for animation effects
     (through the XXmmNNddrraaggPPrroocc routine) or rely on the toolkit to provide ani-
     mation.

     Drop sites may overlap.  The initial stacking order corresponds to the
     order in which the drop sites were registered.  When a drop site over-
     laps another drop site, the drag-under effects of the drop site under-
     neath are clipped by the obscuring drop site(s).

     The XXmmDDrrooppSSiitteeUUppddaattee routine sets resources for a widget that is
     registered as a drop site.  XXmmDDrrooppSSiitteeRReettrriieevvee gets drop site resource
     values previously specified for a registered widget.  These routines are
     used instead of XXttSSeettVVaalluueess and XXttGGeettVVaalluueess.

     Classes

     XmDropSite does not inherit from any widget class.

     New Resources

     The following table defines a set of widget resources used by the pro-
     grammer to specify data.  To reference a resource by name or by class in
     a .Xdefaults file, remove the XXmmNN or XXmmCC prefix and use the remaining
     letters.  To specify one of the defined values for a resource in a .Xde-
     faults file, remove the XXmm prefix and use the remaining letters (in
     either lowercase or uppercase, but include any underscores between


   1-321






   XmDropSite(3X)


     words).  The codes in the access column indicate if the given resource
     can be set at creation time (CC), set by using XXmmDDrrooppSSiitteeUUppddaattee (SS),
     retrieved by using XXmmDDrrooppSSiitteeRReettrriieevvee (GG), or is not applicable (NN//AA).

                                           XXmmDDrrooppSSiittee RReessoouurrccee SSeett
   NNaammee                      CCllaassss                     TTyyppee             DDeeffaauulltt                     AAcccceessss
   _______________________________________________________________________________________________________
   XmNanimationMask          XmCAnimationMask          Pixmap           XmUNSPECIFIED_PIXMAP        CSG
   XmNanimationPixmap        XmCAnimationPixmap        Pixmap           XmUNSPECIFIED_PIXMAP        CSG
   XmNanimationPixmapDepth   XmCAnimationPixmapDepth   int              0                           CSG
    XmNanimationStyle        XmCAnimationStyle         unsigned char    XmDRAG_UNDER_HIGHLIGHT      CSG
   XmNdragProc               XmCDragProc               XtCallbackProc   NULL                        CSG
   XmNdropProc               XmCDropProc               XtCallbackProc   NULL                        CSG
   XmNdropRectangles         XmCDropRectangles         XRectangle *     dynamic                     CSG
   XmNdropSiteActivity       XmCDropSiteActivity       unsigned char    XmDROP_SITE_ACTIVE          CSG
   XmNdropSiteOperations     XmCDropSiteOperations     unsigned char    XmDROP_MOVE | XmDROP_COPY   CSG
   XmNdropSiteType           XmCDropSiteType           unsigned char    XmDROP_SITE_SIMPLE          CG
   XmNimportTargets          XmCImportTargets          Atom *           NULL                        CSG
   XmNnumDropRectangles      XmCNumDropRectangles      Cardinal         1                           CSG
   XmNnumImportTargets       XmCNumImportTargets       Cardinal         0                           CSG

     XXmmNNaanniimmaattiioonnMMaasskk
               Specifies a mask to use with the pixmap specified by XXmmNNaanniimmaa--
               ttiioonnPPiixxmmaapp when the animation style is XXmmDDRRAAGG__UUNNDDEERR__PPIIXXMMAAPP.

     XXmmNNaanniimmaattiioonnPPiixxmmaapp
               Specifies a pixmap for drag-under animation when the animation
               style is XXmmDDRRAAGG__UUNNDDEERR__PPIIXXMMAAPP.  The pixmap is drawn with its
               origin at the upper left corner of the bounding box of the
               drop site.  If the drop site window is larger than the anima-
               tion pixmap, the portion of the window not covered by the pix-
               map will be tiled with the window's background color.

     XXmmNNaanniimmaattiioonnPPiixxmmaappDDeepptthh
               Specifies the depth of the pixmap specified by the XXmmNNaanniimmaa--
               ttiioonnPPiixxmmaapp resource.  When the depth is 1, the colors are
               taken from the foreground and background of the drop site
               widget.  For any other value, drop site animation occurs only
               if the XXmmNNaanniimmaattiioonnPPiixxmmaappDDeepptthh matches the depth of the drop
               site window.  Colors are derived from the current colormap.

     XXmmNNaanniimmaattiioonnSSttyyllee
               Specifies the drag-under animation style used when a drag
               enters a valid drop site.  The possible values are

               XXmmDDRRAAGG__UUNNDDEERR__HHIIGGHHLLIIGGHHTT
                 The drop site uses highlighting effects.

               XXmmDDRRAAGG__UUNNDDEERR__SSHHAADDOOWW__OOUUTT
                 The drop site uses an outset shadow.

               XXmmDDRRAAGG__UUNNDDEERR__SSHHAADDOOWW__IINN
                 The drop site uses an inset shadow.



   1-322






                                                               XmDropSite(3X)


               XXmmDDRRAAGG__UUNNDDEERR__PPIIXXMMAAPP
                 The drop site uses the pixmap specified by XXmmNNaanniimmaattiioonnPPiixx--
                 mmaapp to indicate that it can receive the drop.

               XXmmDDRRAAGG__UUNNDDEERR__NNOONNEE
                 The drop site does not use animation effects.  A client
                 using a dynamic protocol, may provide drag-under effects in
                 its XXmmNNddrraaggPPrroocc routine.

     XXmmNNddrraaggPPrroocc
               Specifies the procedure that is invoked when the drop site
               receives a crossing, motion, or operation changed message.
               This procedure is called only when a dynamic protocol is used.
               The type of structure whose address is passed to this pro-
               cedure is XXmmDDrraaggPPrrooccCCaallllbbaacckkSSttrruucctt.  The reason sent to the
               procedure is one of the following:

               XXmmCCRR__DDRROOPP__SSIITTEE__EENNTTEERR__MMEESSSSAAGGEE

               XXmmCCRR__DDRROOPP__SSIITTEE__LLEEAAVVEE__MMEESSSSAAGGEE

               XXmmCCRR__DDRRAAGG__MMOOTTIIOONN__MMEESSSSAAGGEE

               XXmmCCRR__OOPPEERRAATTIIOONN__CCHHAANNGGEEDD__MMEESSSSAAGGEE
               The drag procedure may change the values of some members of
               the XXmmDDrraaggPPrrooccCCaallllbbaacckkSSttrruucctt passed to it.  After the drag
               procedure returns, the toolkit uses the final values in ini-
               tializing some members of the callback struct passed to the
               appropriate callbacks of the initiator (the DragContext's
               XXmmNNddrrooppSSiitteeEEnntteerrCCaallllbbaacckk, XXmmNNddrrooppSSiitteeLLeeaavveeCCaallllbbaacckk, XXmmNNddrraaggMMoo--
               ttiioonnCCaallllbbaacckk, or XXmmNNooppeerraattiioonnCChhaannggeeddCCaallllbbaacckk callbacks).

     XXmmNNddrrooppPPrroocc
               Specifies the procedure that is invoked when a drop (excluding
               a cancel or interrupt action) occurs on a drop site regardless
               of the status of the drop site.  The type of the structure
               whose address is passed to this procedure is XXmmDDrrooppPPrroocc--
               CCaallllbbaacckkSSttrruucctt.  The reason sent to the procedure is
               XXmmCCRR__DDRROOPP__MMEESSSSAAGGEE.
               The drop procedure may change the values of some members of
               the XXmmDDrrooppPPrrooccCCaallllbbaacckkSSttrruucctt passed to it.  After the drop
               procedure returns, the toolkit uses the final values in ini-
               tializing some members of the XXmmDDrrooppSSttaarrttCCaallllbbaacckkSSttrruucctt passed
               to the initiator's drop start callbacks (the DragContext's
               XXmmNNddrrooppSSttaarrttCCaallllbbaacckk callbacks).

     XXmmNNddrrooppRReeccttaanngglleess
               Specifies a list of rectangles that describe the shape of a
               drop site.  The locations of the rectangles are relative to
               the origin of the enclosing object.  When XXmmNNddrrooppRReeccttaanngglleess is
               NULL, the drop site is assumed to be the sensitive area of the
               enclosing widget.  If XXmmNNddrrooppSSiitteeTTyyppee is
               XXmmDDRROOPP__SSIITTEE__CCOOMMPPOOSSIITTEE, this resource cannot be specified by
               the application.


   1-323






   XmDropSite(3X)



     XXmmNNddrrooppSSiitteeAAccttiivviittyy
               Indicates whether a drop site is active or inactive.  The
               values are XXmmDDRROOPP__SSIITTEE__AACCTTIIVVEE and XXmmDDRROOPP__SSIITTEE__IINNAACCTTIIVVEE.  An
               active drop site can receive a drop, whereas an inactive drop
               site is dormant.  An inactive drop site is treated as if it
               was not a registered drop site and any drag-under visuals
               associated with entering or leaving the drop site do not
               occur.  However, it is still used for clipping drag-under
               effects.

     XXmmNNddrrooppSSiitteeOOppeerraattiioonnss
               Specifies the set of valid operations associated with a drop
               site.  This resource is a bit mask that is formed by combining
               one or more of the following values using a bitwise operation
               such as inclusive OR (|): XXmmDDRROOPP__CCOOPPYY, XXmmDDRROOPP__LLIINNKK, and
               XXmmDDRROOPP__MMOOVVEE.  The value XXmmDDRROOPP__NNOOOOPP for this resource indi-
               cates that no operations are valid.

     XXmmNNddrrooppSSiitteeTTyyppee
               Specifies the type of the drop site. The possible values are

               XXmmDDRROOPP__SSIITTEE__SSIIMMPPLLEE
                 The widget does not have any additional children that are
                 registered as drop sites.

               XXmmDDRROOPP__SSIITTEE__CCOOMMPPOOSSIITTEE
                 The widget will have children that are registered as drop
                 sites.

     XXmmNNiimmppoorrttTTaarrggeettss
               Specifies the list of target atoms that this drop site
               accepts.

     XXmmNNnnuummDDrrooppRReeccttaanngglleess
               Specifies the number of rectangles in the XXmmNNddrrooppRReeccttaanngglleess
               list.  If the drop site type is XXmmDDRROOPP__SSIITTEE__CCOOMMPPOOSSIITTEE, this
               resource can not be specified by the application.

     XXmmNNnnuummIImmppoorrttTTaarrggeettss
               Specifies the number of atoms in the target atom list.

     Callback Information

     A pointer to the following structure is passed to the XXmmNNddrraaggPPrroocc rou-
     tine when the drop site receives crossing, motion, or operation changed
     messages.
     ttyyppeeddeeff ssttrruucctt
     {{
             iinntt    _r_e_a_s_o_n;;
       XXEEvveenntt       **_e_v_e_n_t;;
       TTiimmee         _t_i_m_e_S_t_a_m_p;;
       WWiiddggeett       _d_r_a_g_C_o_n_t_e_x_t
       PPoossiittiioonn     _x;;


   1-324






                                                               XmDropSite(3X)


       PPoossiittiioonn     _y;;
       uunnssiiggnneedd cchhaarr_d_r_o_p_S_i_t_e_S_t_a_t_u_s;;
       uunnssiiggnneedd cchhaarr_o_p_e_r_a_t_i_o_n;;
       uunnssiiggnneedd cchhaarr_o_p_e_r_a_t_i_o_n_s;;
       BBoooolleeaann      _a_n_i_m_a_t_e;;
     }} XXmmDDrraaggPPrrooccCCaallllbbaacckkSSttrruucctt,, **XXmmDDrraaggPPrrooccCCaallllbbaacckk;;

     _r_e_a_s_o_n      Indicates why the callback was invoked.

     _e_v_e_n_t       Points to the XXEEvveenntt that triggered the callback.

     _t_i_m_e_S_t_a_m_p   Specifies the timestamp of the logical event.

     _d_r_a_g_C_o_n_t_e_x_t Specifies the ID of the DragContext widget associated with
                 the transaction.

     _x           Indicates the x-coordinate of the pointer relative to the
                 drop site.

     _y           Indicates the y-coordinate of the pointer relative to the
                 drop site.

     _d_r_o_p_S_i_t_e_S_t_a_t_u_s
                 An IN/OUT member that indicates whether or not a drop site
                 is valid.
                 When the _r_e_a_s_o_n is XXmmCCRR__DDRROOPP__SSIITTEE__EENNTTEERR__MMEESSSSAAGGEE or
                 XXmmCCRR__OOPPEERRAATTIIOONN__CCHHAANNGGEEDD__MMEESSSSAAGGEE, or when the reason is
                 XXmmCCRR__DDRRAAGG__MMOOTTIIOONN__MMEESSSSAAGGEE or XXmmCCRR__DDRROOPP__SSIITTEE__LLEEAAVVEE__MMEESSSSAAGGEE and
                 the pointer is not in the same drop site as on the previous
                 invocation of the drag procedure, the toolkit initializes
                 _d_r_o_p_S_i_t_e_S_t_a_t_u_s as follows: the toolkit initializes _d_r_o_p_S_i_-
                 _t_e_S_t_a_t_u_s to XXmmDDRROOPP__SSIITTEE__VVAALLIIDD if the DragContext's XXmmNNeexx--
                 ppoorrttTTaarrggeettss and the DropSite's XXmmNNiimmppoorrttTTaarrggeettss are compati-
                 ble and if the initial value of the _o_p_e_r_a_t_i_o_n member is not
                 XXmmDDRROOPP__NNOOOOPP.  Otherwise, the toolkit initializes _d_r_o_p_S_i_t_e_S_-
                 _t_a_t_u_s to XXmmDDRROOPP__SSIITTEE__IINNVVAALLIIDD.
                 When the _r_e_a_s_o_n is XXmmCCRR__DDRRAAGG__MMOOTTIIOONN__MMEESSSSAAGGEE or
                 XXmmCCRR__DDRROOPP__SSIITTEE__LLEEAAVVEE__MMEESSSSAAGGEE and the pointer is within the
                 same drop site as on the previous invocation of the drag
                 procedure, the toolkit initializes _d_r_o_p_S_i_t_e_S_t_a_t_u_s to the
                 value of _d_r_o_p_S_i_t_e_S_t_a_t_u_s at the time the previous invocation
                 of the drag procedure returns.
                 The drag procedure may change the value of this member.
                 After the drag procedure returns, the toolkit uses the final
                 value in initializing the _d_r_o_p_S_i_t_e_S_t_a_t_u_s member of the call-
                 back struct passed to the appropriate callbacks of the ini-
                 tiator.

     _o_p_e_r_a_t_i_o_n   An IN/OUT member that identifies an operation.
                 The toolkit initializes _o_p_e_r_a_t_i_o_n by selecting an operation
                 from the bitwise AND of the initial value of the _o_p_e_r_a_t_i_o_n_s
                 member and the value of the DropSite's XXmmNNddrrooppSSiitteeOOppeerraattiioonnss
                 resource.  The toolkit searches this set first for
                 XXmmDDRROOPP__MMOOVVEE, then for XXmmDDRROOPP__CCOOPPYY, then for XXmmDDRROOPP__LLIINNKK, and


   1-325






   XmDropSite(3X)


                 initializes _o_p_e_r_a_t_i_o_n to the first operation it finds in the
                 set.  If the toolkit finds none of these operations in the
                 set, it initializes _o_p_e_r_a_t_i_o_n to XXmmDDRROOPP__NNOOOOPP.
                 The drag procedure may change the value of this member.
                 After the drag procedure returns, the toolkit uses the final
                 value in initializing the _o_p_e_r_a_t_i_o_n member of the callback
                 struct passed to the appropriate callbacks of the initiator.

     _o_p_e_r_a_t_i_o_n_s  An IN/OUT member that indicates the set of operations sup-
                 ported for the source data.
                 If the user does not select an operation (by pressing a
                 modifier key), the toolkit initializes _o_p_e_r_a_t_i_o_n_s to the
                 value of the DragContext's XXmmNNddrraaggOOppeerraattiioonnss resource.  If
                 the user does select an operation, the toolkit initializes
                 _o_p_e_r_a_t_i_o_n_s to the bitwise AND of the corresponding operation
                 and the value of the DragContext's XXmmNNddrraaggOOppeerraattiioonnss
                 resource.  If the resulting set of operations is empty, the
                 toolkit initializes _o_p_e_r_a_t_i_o_n_s to XXmmDDRROOPP__NNOOOOPP.
                 The drag procedure may change the value of this member.
                 After the drag procedure returns, the toolkit uses the final
                 value in initializing the _o_p_e_r_a_t_i_o_n_s member of the callback
                 struct passed to the appropriate callbacks of the initiator.

     _a_n_i_m_a_t_e     An OUT member that indicates whether the toolkit or the
                 receiver client provides drag-under effects for a valid drop
                 site.  If _a_n_i_m_a_t_e is set to True, the toolkit provides drop
                 site animation per the XXmmNNaanniimmaattiioonnSSttyyllee resource value; if
                 it is set to False, the receiver generates drag-under anima-
                 tion effects.

     A pointer to the following structure is passed to the XXmmNNddrrooppPPrroocc rou-
     tine when the drop site receives a drop message:
     ttyyppeeddeeff ssttrruucctt
     {{
             iinntt    _r_e_a_s_o_n;;
       XXEEvveenntt       **_e_v_e_n_t;;
       TTiimmee         _t_i_m_e_S_t_a_m_p;;
       WWiiddggeett       _d_r_a_g_C_o_n_t_e_x_t;;
       PPoossiittiioonn     _x;;
       PPoossiittiioonn     _y;;
       uunnssiiggnneedd cchhaarr_d_r_o_p_S_i_t_e_S_t_a_t_u_s;;
       uunnssiiggnneedd cchhaarr_o_p_e_r_a_t_i_o_n;;
       uunnssiiggnneedd cchhaarr_o_p_e_r_a_t_i_o_n_s;;
       uunnssiiggnneedd cchhaarr_d_r_o_p_A_c_t_i_o_n;;
     }} XXmmDDrrooppPPrrooccCCaallllbbaacckkSSttrruucctt,, **XXmmDDrrooppPPrrooccCCaallllbbaacckk;;

     _r_e_a_s_o_n      Indicates why the callback was invoked.

     _e_v_e_n_t       Specifies the XXEEvveenntt that triggered the callback.

     _t_i_m_e_S_t_a_m_p   Specifies the timestamp of the logical event.

     _d_r_a_g_C_o_n_t_e_x_t Specifies the ID of the DragContext widget associated with
                 the transaction.


   1-326






                                                               XmDropSite(3X)



     _x           Indicates the x-coordinate of the pointer relative to the
                 drop site.

     _y           Indicates the y-coordinate of the pointer relative to the
                 drop site.

     _d_r_o_p_S_i_t_e_S_t_a_t_u_s
                 An IN/OUT member that indicates whether or not a drop site
                 is valid.
                 The toolkit initializes _d_r_o_p_S_i_t_e_S_t_a_t_u_s to XXmmDDRROOPP__SSIITTEE__VVAALLIIDD
                 if the DragContext's XXmmNNeexxppoorrttTTaarrggeettss and the DropSite's
                 XXmmNNiimmppoorrttTTaarrggeettss are compatible and if the initial value of
                 the _o_p_e_r_a_t_i_o_n member is not XXmmDDRROOPP__NNOOOOPP.  Otherwise, the
                 toolkit initializes _d_r_o_p_S_i_t_e_S_t_a_t_u_s to XXmmDDRROOPP__SSIITTEE__IINNVVAALLIIDD.
                 The drop procedure may change the value of this member.
                 After the drop procedure returns, the toolkit uses the final
                 value in initializing the _d_r_o_p_S_i_t_e_S_t_a_t_u_s member of the
                 XXmmDDrrooppSSttaarrttCCaallllbbaacckkSSttrruucctt passed to the initiator's drop
                 start callbacks (the DragContext's XXmmNNddrrooppSSttaarrttCCaallllbbaacckk
                 callbacks).

     _o_p_e_r_a_t_i_o_n   An IN/OUT member that identifies an operation.
                 The toolkit initializes _o_p_e_r_a_t_i_o_n by selecting an operation
                 from the bitwise AND of the initial value of the _o_p_e_r_a_t_i_o_n_s
                 member and the value of the DropSite's XXmmNNddrrooppSSiitteeOOppeerraattiioonnss
                 resource.  The toolkit searches this set first for
                 XXmmDDRROOPP__MMOOVVEE, then for XXmmDDRROOPP__CCOOPPYY, then for XXmmDDRROOPP__LLIINNKK, and
                 initializes _o_p_e_r_a_t_i_o_n to the first operation it finds in the
                 set.  If it finds none of these operations in the set, it
                 initializes _o_p_e_r_a_t_i_o_n to XXmmDDRROOPP__NNOOOOPP.
                 The drop procedure may change the value of this member.
                 After the drop procedure returns, the toolkit uses the final
                 value in initializing the _o_p_e_r_a_t_i_o_n member of the
                 XXmmDDrrooppSSttaarrttCCaallllbbaacckkSSttrruucctt passed to the initiator's drop
                 start callbacks (the DragContext's XXmmNNddrrooppSSttaarrttCCaallllbbaacckk
                 callbacks).

     _o_p_e_r_a_t_i_o_n_s  An IN/OUT member that indicates the set of operations sup-
                 ported for the source data.
                 If the user does not select an operation (by pressing a
                 modifier key), the toolkit initializes _o_p_e_r_a_t_i_o_n_s to the
                 value of the DragContext's XXmmNNddrraaggOOppeerraattiioonnss resource.  If
                 the user does select an operation, the toolkit initializes
                 _o_p_e_r_a_t_i_o_n_s to the bitwise AND of the corresponding operation
                 and the value of the DragContext's XXmmNNddrraaggOOppeerraattiioonnss
                 resource.  If the resulting set of operations is empty, the
                 toolkit initializes _o_p_e_r_a_t_i_o_n_s to XXmmDDRROOPP__NNOOOOPP.
                 The drop procedure may change the value of this member.
                 After the drop procedure returns, the toolkit uses the final
                 value in initializing the _o_p_e_r_a_t_i_o_n_s member of the
                 XXmmDDrrooppSSttaarrttCCaallllbbaacckkSSttrruucctt passed to the initiator's drop
                 start callbacks (the DragContext's XXmmNNddrrooppSSttaarrttCCaallllbbaacckk
                 callbacks).


   1-327






   XmDropSite(3X)



     _d_r_o_p_A_c_t_i_o_n  An IN/OUT member that identifies the action associated with
                 the drop.  The possible values are

                 XXmmDDRROOPP
                    A drop was attempted.  If the drop site is valid, drop
                    transfer handling proceeds.

                 XXmmDDRROOPP__HHEELLPP
                    The user has requested help on the drop site.
                 The drop procedure may change the value of this member.
                 After the drop procedure returns, the toolkit uses the final
                 value in initializing the _d_r_o_p_A_c_t_i_o_n member of the
                 XXmmDDrrooppSSttaarrttCCaallllbbaacckkSSttrruucctt passed to the initiator's drop
                 start callbacks (the DragContext's XXmmNNddrrooppSSttaarrttCCaallllbbaacckk
                 callbacks).

   RELATED INFORMATION
     XXmmDDrraaggCCoonntteexxtt((33XX)), XXmmDDrraaggIIccoonn((33XX)), XXmmDDrrooppSSiitteeCCoonnffiigguurreeSSttaacckkiinnggOOrrddeerr((33XX)),
     XXmmDDrrooppSSiitteeEEnnddUUppddaattee((33XX)), XXmmDDrrooppSSiitteeQQuueerryySSttaacckkiinnggOOrrddeerr((33)),
     XXmmDDrrooppSSiitteeRReeggiisstteerr((33XX)), XXmmDDrrooppSSiitteeSSttaarrttUUppddaattee((33XX)), XXmmDDrrooppSSiitteeUUppddaattee((33XX)),
     XXmmDDrrooppSSiitteeUUnnrreeggiisstteerr((33XX)), XXmmDDrrooppTTrraannssffeerr((33XX)), and
     XXmmTTaarrggeettssAArreeCCoommppaattiibbllee((33XX)).

































   1-328






                                         XmDropSiteConfigureStackingOrder(3X)



   NAME
     XXmmDDrrooppSSiitteeCCoonnffiigguurreeSSttaacckkiinnggOOrrddeerr-A Drag and Drop function that reorders
     a stack of widgets that are registered drop sites

   SYNOPSIS
     ##iinncclluuddee <<XXmm//DDrraaggDDrroopp..hh>>
     vvooiidd XXmmDDrrooppSSiitteeCCoonnffiigguurreeSSttaacckkiinnggOOrrddeerr ((_w_i_d_g_e_t, _s_i_b_l_i_n_g, _s_t_a_c_k__m_o_d_e))
          WWiiddggeett      _w_i_d_g_e_t;;
          WWiiddggeett      _s_i_b_l_i_n_g;;
          CCaarrddiinnaall    _s_t_a_c_k__m_o_d_e;;

   DESCRIPTION
     XXmmDDrrooppSSiitteeCCoonnffiigguurreeSSttaacckkiinnggOOrrddeerr changes the stacking order of the drop
     site specified by _w_i_d_g_e_t.  The stacking order controls the manner in
     which drag-under effects are clipped by overlapping siblings, regardless
     of whether they are active.  The stack mode is relative either to the
     entire stack, or to another drop site within the stack.  The stack order
     can be modified only if the drop sites are siblings in both the widget
     and drop site hierarchy, and the widget parent of the drop sites is
     registered as a composite drop site.

     _w_i_d_g_e_t Specifies the drop site to be restacked.

     _s_i_b_l_i_n_gSpecifies a sibling drop site for stacking operations.  If speci-
            fied, then _w_i_d_g_e_t is restacked relative to this drop site's stack
            position.

     _s_t_a_c_k__m_o_d_e
            Specifies the new stack position for the specified widget.  The
            values are XXmmAABBOOVVEE and XXmmBBEELLOOWW.  If a sibling is specified, then
            _w_i_d_g_e_t is restacked as follows:

            XXmmAABBOOVVEE
               The widget is placed just above the sibling.

            XXmmBBEELLOOWW
               The widget is placed just below the sibling.
            If the _s_i_b_l_i_n_g parameter is not specified, then _w_i_d_g_e_t is res-
            tacked as follows:

            XXmmAABBOOVVEE
               The widget is placed at the top of the stack.

            XXmmBBEELLOOWW
               The widget is placed at the bottom of the stack.

     For a complete definition of DropSite and its associated resources, see
     XXmmDDrrooppSSiittee((33XX)).

   RELATED INFORMATION
     XXmmDDrrooppSSiittee((33XX)), XXmmDDrrooppSSiitteeRReettrriieevvee((33XX)), and
     XXmmDDrrooppSSiitteeQQuueerryySSttaacckkiinnggOOrrddeerr((33XX)).



   1-329






   XmDropSiteEndUpdate(3X)



   NAME
     XXmmDDrrooppSSiitteeEEnnddUUppddaattee-A Drag and Drop function that facilitates processing
     updates to multiple drop sites

   SYNOPSIS
     ##iinncclluuddee <<XXmm//DDrraaggDDrroopp..hh>>
     vvooiidd XXmmDDrrooppSSiitteeEEnnddUUppddaattee ((_w_i_d_g_e_t))
          WWiiddggeett      _w_i_d_g_e_t;;

   DESCRIPTION
     XXmmDDrrooppSSiitteeEEnnddUUppddaattee is used in conjunction with XXmmDDrrooppSSiitteeSSttaarrttUUppddaattee to
     process updates to multiple drop sites within the same hierarchy.
     XXmmDDrrooppSSiitteeSSttaarrttUUppddaattee and XXmmDDrrooppSSiitteeEEnnddUUppddaattee signal the beginning and
     the end respectively of a series of calls to XXmmDDrrooppSSiitteeUUppddaattee.  Calls to
     XXmmDDrrooppSSiitteeSSttaarrttUUppddaattee and XXmmDDrrooppSSiitteeEEnnddUUppddaattee can be recursively
     stacked.  Using these routines optimizes the processing of update infor-
     mation.

     _w_i_d_g_e_t Specifies the ID of any widget within a given hierarchy.  The
            function uses this widget to identify the shell that contains the
            drop sites.

     For a complete definition of DropSite and its associated resources, see
     XXmmDDrrooppSSiittee((33XX)).

   RELATED INFORMATION
     XXmmDDrrooppSSiitteeSSttaarrttUUppddaattee((33XX)) and XXmmDDrrooppSSiitteeUUppddaattee((33XX)).




























   1-330






                                             XmDropSiteQueryStackingOrder(3X)



   NAME
     XXmmDDrrooppSSiitteeQQuueerryySSttaacckkiinnggOOrrddeerr-A Drag and Drop function that returns the
     parent, a list of children, and the number of children for a specified
     widget

   SYNOPSIS
     ##iinncclluuddee <<XXmm//DDrraaggDDrroopp..hh>>
     SSttaattuuss XXmmDDrrooppSSiitteeQQuueerryySSttaacckkiinnggOOrrddeerr ((_w_i_d_g_e_t, _p_a_r_e_n_t__r_e_t_u_r_n, _c_h_i_l_d__r_e_t_u_r_n_s, _n_u_m__c_h_i_l_d__r_e_t_u_r_n_s))
          WWiiddggeett      _w_i_d_g_e_t;;
          WWiiddggeett      **_p_a_r_e_n_t__r_e_t_u_r_n;;
          WWiiddggeett      ****_c_h_i_l_d__r_e_t_u_r_n_s;;
          CCaarrddiinnaall    **_n_u_m__c_h_i_l_d__r_e_t_u_r_n_s;;

   DESCRIPTION
     XXmmDDrrooppSSiitteeQQuueerryySSttaacckkiinnggOOrrddeerr obtains the parent, a list of children
     registered as drop sites, and the number of children registered as drop
     sites for a given widget.  The children are listed in current stacking
     order, from bottom-most (first child) to the top-most (last child).
     This function allocates memory for the returned data that must be freed
     by calling XXttFFrreeee.

     _w_i_d_g_e_t Specifies the widget ID.  For this widget, you obtain the list of
            its children, its parent, and the number of children.

     _p_a_r_e_n_t__r_e_t_u_r_n
            Returns the widget ID of the drop site parent of the specified
            widget.

     _c_h_i_l_d__r_e_t_u_r_n_s
            Returns a pointer to the list of drop site children associated
            with the specified widget.

     _n_u_m__c_h_i_l_d__r_e_t_u_r_n_s
            Returns the number of drop site children for the specified
            widget.

     For a complete definition of DropSite and its associated resources, see
     XXmmDDrrooppSSiittee((33XX)).

   RETURN VALUE
     Returns zero if the routine fails; returns a nonzero value if it
     succeeds.

   RELATED INFORMATION
     XXmmDDrrooppSSiittee((33XX)) and XXmmDDrrooppSSiitteeCCoonnffiigguurreeSSttaacckkiinnggOOrrddeerr((33XX)).










   1-331






   XmDropSiteRegister(3X)



   NAME
     XXmmDDrrooppSSiitteeRReeggiisstteerr-A Drag and Drop function that identifies a drop site
     and assigns resources that specify its behavior

   SYNOPSIS
     ##iinncclluuddee <<XXmm//DDrraaggDDrroopp..hh>>
     vvooiidd XXmmDDrrooppSSiitteeRReeggiisstteerr ((_w_i_d_g_e_t, _a_r_g_l_i_s_t, _a_r_g_c_o_u_n_t))
          WWiiddggeett      _w_i_d_g_e_t;;
          AArrggLLiisstt     _a_r_g_l_i_s_t;;
          CCaarrddiinnaall    _a_r_g_c_o_u_n_t;;

   DESCRIPTION
     XXmmDDrrooppSSiitteeRReeggiisstteerr identifies the specified widget or gadget as a drop
     site and sets resource values that define the drop site's behavior.  The
     routine assigns default values to any resources that are not specified
     in the argument list.  The toolkit generates a warning message if a drop
     site is registered with XXmmNNddrrooppSSiitteeAAccttiivviittyy set to XXmmDDRROOPP__SSIITTEE__AACCTTIIVVEE
     and the XXmmNNddrrooppPPrroocc resource is NULL.

     If the drop site is a descendant of a widget that is registered as a
     drop site, the XXmmNNddrrooppSSiitteeTTyyppee resource of the ancestor drop site must
     be specified as XXmmDDRROOPP__SSIITTEE__CCOOMMPPOOSSIITTEE.  The ancestor must be registered
     before the descendant.  The drop site is stacked above all other sibling
     drop sites already registered.

     _w_i_d_g_e_t Specifies the ID of the widget to be registered.

     _a_r_g_l_i_s_tSpecifies the argument list.

     _a_r_g_c_o_u_n_t
            Specifies the number of attribute/value pairs in the argument
            list (_a_r_g_l_i_s_t).

     For a complete definition of DropSite and its associated resources, see
     XXmmDDrrooppSSiittee((33XX)).

   RELATED INFORMATION
     XXmmDDiissppllaayy((33XX)), XXmmDDrrooppSSiittee((33XX)), XXmmDDrrooppSSiitteeEEnnddUUppddaattee((33XX)),
     XXmmDDrrooppSSiitteeSSttaarrttUUppddaattee((33XX)), XXmmDDrrooppSSiitteeUUppddaattee((33XX)),
     XXmmDDrrooppSSiitteeUUnnrreeggiisstteerr((33XX)), and XXmmSSccrreeeenn((33XX)).















   1-332






                                                       XmDropSiteRetrieve(3X)



   NAME
     XXmmDDrrooppSSiitteeRReettrriieevvee-A Drag and Drop function that retrieves resource
     values set on a drop site

   SYNOPSIS
     ##iinncclluuddee <<XXmm//DDrraaggDDrroopp..hh>>
     vvooiidd XXmmDDrrooppSSiitteeRReettrriieevvee ((_w_i_d_g_e_t, _a_r_g_l_i_s_t, _a_r_g_c_o_u_n_t))
          WWiiddggeett      _w_i_d_g_e_t;;
          AArrggLLiisstt     _a_r_g_l_i_s_t;;
          CCaarrddiinnaall    _a_r_g_c_o_u_n_t;;

   DESCRIPTION
     XXmmDDrrooppSSiitteeRReettrriieevvee extracts values for the given resources from the drop
     site specified by _w_i_d_g_e_t.  An initiator can also obtain information
     about the current drop site by passing the associated DragContext widget
     as the _w_i_d_g_e_t parameter to this routine.  The initiator can retrieve all
     of the drop site resources except XXmmNNddrraaggPPrroocc and XXmmNNddrrooppPPrroocc using this
     method.

     _w_i_d_g_e_t Specifies the ID of the widget that encloses the drop site.

     _a_r_g_l_i_s_tSpecifies the argument list.

     _a_r_g_c_o_u_n_t
            Specifies the number of attribute/value pairs in the argument
            list (_a_r_g_l_i_s_t).

     For a complete definition of DropSite and its associated resources, see
     XXmmDDrrooppSSiittee((33XX)).

   RELATED INFORMATION
     XXmmDDrrooppSSiittee((33XX)) and XXmmDDrrooppSSiitteeUUppddaattee((33XX)).























   1-333






   XmDropSiteStartUpdate(3X)



   NAME
     XXmmDDrrooppSSiitteeSSttaarrttUUppddaattee-A Drag and Drop function that facilitates process-
     ing updates to multiple drop sites

   SYNOPSIS
     ##iinncclluuddee <<XXmm//DDrraaggDDrroopp..hh>>
     vvooiidd XXmmDDrrooppSSiitteeSSttaarrttUUppddaattee ((_w_i_d_g_e_t))
          WWiiddggeett      _w_i_d_g_e_t;;

   DESCRIPTION
     XXmmDDrrooppSSiitteeSSttaarrttUUppddaattee is used in conjunction with XXmmDDrrooppSSiitteeEEnnddUUppddaattee to
     process updates to multiple drop sites within the same shell widget.
     XXmmDDrrooppSSiitteeSSttaarrttUUppddaattee and XXmmDDrrooppSSiitteeEEnnddUUppddaattee signal the beginning and
     the end respectively of a series of calls to XXmmDDrrooppSSiitteeUUppddaattee.  Calls to
     XXmmDDrrooppSSiitteeSSttaarrttUUppddaattee and XXmmDDrrooppSSiitteeEEnnddUUppddaattee can be recursively
     stacked.  Using these routines optimizes the processing of update infor-
     mation.

     _w_i_d_g_e_t Specifies the ID of any widget within a given hierarchy.  The
            function uses this widget to identify the shell that contains the
            drop sites.

     For a complete definition of DropSite and its associated resources, see
     XXmmDDrrooppSSiittee((33XX)).

   RELATED INFORMATION
     XXmmDDrrooppSSiittee((33XX)), XXmmDDrrooppSSiitteeEEnnddUUppddaattee((33XX)), and XXmmDDrrooppSSiitteeUUppddaattee((33XX)).




























   1-334






                                                     XmDropSiteUnregister(3X)



   NAME
     XXmmDDrrooppSSiitteeUUnnrreeggiisstteerr-A Drag and Drop function that frees drop site
     information

   SYNOPSIS
     ##iinncclluuddee <<XXmm//DDrraaggDDrroopp..hh>>
     vvooiidd XXmmDDrrooppSSiitteeUUnnrreeggiisstteerr ((_w_i_d_g_e_t))
          WWiiddggeett      _w_i_d_g_e_t;;

   DESCRIPTION
     XXmmDDrrooppSSiitteeUUnnrreeggiisstteerr informs the toolkit that the specified widget is no
     longer a registered drop site.  The function frees all associated drop
     site information.

     _w_i_d_g_e_t Specifies the ID of the widget, registered as a drop site, that
            is to be unregistered

     For a complete definition of DropSite and its associated resources, see
     XXmmDDrrooppSSiittee((33XX)).

   RELATED INFORMATION
     XXmmDDrrooppSSiittee((33XX)) and XXmmDDrrooppSSiitteeRReeggiisstteerr((33XX)).

































   1-335






   XmDropSiteUpdate(3X)



   NAME
     XXmmDDrrooppSSiitteeUUppddaattee-A Drag and Drop function that sets resource values for
     a drop site

   SYNOPSIS
     ##iinncclluuddee <<XXmm//DDrraaggDDrroopp..hh>>
     vvooiidd XXmmDDrrooppSSiitteeUUppddaattee ((_w_i_d_g_e_t, _a_r_g_l_i_s_t, _a_r_g_c_o_u_n_t))
          WWiiddggeett      _w_i_d_g_e_t;;
          AArrggLLiisstt     _a_r_g_l_i_s_t;;
          CCaarrddiinnaall    _a_r_g_c_o_u_n_t;;

   DESCRIPTION
     XXmmDDrrooppSSiitteeUUppddaattee modifies drop site resources associated with the speci-
     fied widget.  This routine updates the drop site resources specified in
     the _a_r_g_l_i_s_t.

     _w_i_d_g_e_t Specifies the ID of the widget registered as a drop site

     _a_r_g_l_i_s_tSpecifies the argument list

     _a_r_g_c_o_u_n_t
            Specifies the number of attribute/value pairs in the argument
            list (_a_r_g_l_i_s_t)

     For a complete definition of DropSite and its associated resources, see
     XXmmDDrrooppSSiittee((33XX)).

   RELATED INFORMATION
     XXmmDDrrooppSSiittee((33XX)), XXmmDDrrooppSSiitteeEEnnddUUppddaattee((33XX)), XXmmDDrrooppSSiitteeRReeggiisstteerr((33XX)),
     XXmmDDrrooppSSiitteeSSttaarrttUUppddaattee((33XX)), and XXmmDDrrooppSSiitteeUUnnrreeggiisstteerr((33XX)).

























   1-336






                                                           XmDropTransfer(3X)



   NAME
     XXmmDDrrooppTTrraannssffeerr-The DropTransfer widget class

   SYNOPSIS
     ##iinncclluuddee <<XXmm//DDrraaggDDrroopp..hh>>

   DESCRIPTION
     DropTransfer provides a set of resources that identifies the procedures
     and associated information required by the toolkit in order to process
     and complete a drop transaction.  Clients should not explicitly create a
     DropTransfer widget.  Instead, a client initiates a transfer by calling
     XXmmDDrrooppTTrraannssffeerrSSttaarrtt, which initializes and returns a DropTransfer
     widget.  If this function is called within an XXmmNNddrrooppPPrroocc callback, the
     actual transfers are initiated after the callback returns.  Even if no
     data needs to be transferred, XXmmDDrrooppTTrraannssffeerrSSttaarrtt needs to be called
     (typically with no arguments, or just setting XXmmNNttrraannssffeerrSSttaattuuss) to fin-
     ish the drag and drop transaction.

     The XXmmNNddrrooppTTrraannssffeerrss resource specifies a transfer list that describes
     the requested target types for the source data.  A transfer list is an
     array of XXmmDDrrooppTTrraannssffeerrEEnnttrryyRReecc structures, each of which identifies a
     target type.  The transfer list is analogous to the MULTIPLE selections
     capability defined in the _I_n_t_e_r-_C_l_i_e_n_t _C_o_m_m_u_n_i_c_a_t_i_o_n _C_o_n_v_e_n_t_i_o_n_s _M_a_n_u_a_l
     (ICCCM).

     The DropTransfer resource, XXmmNNttrraannssffeerrPPrroocc, specifies a transfer pro-
     cedure of type XtSelectionCallbackProc that delivers the requested
     selection data.  This procedure operates in conjunction with the under-
     lying Xt selection capabilities and is called for each target in the
     transfer list.  Additional target types can be requested after a
     transfer is initiated by calling the XXmmDDrrooppTTrraannssffeerrAAdddd function.

     Structures

     An XXmmDDrrooppTTrraannssffeerrEEnnttrryy is a pointer to the following structure of type
     XXmmDDrrooppTTrraannssffeerrEEnnttrryyRReecc, which identifies a selection target associated
     with a given drop transaction:
     ttyyppeeddeeff ssttrruucctt
     {{
       XXttPPooiinntteerr _c_l_i_e_n_t__d_a_t_a;;
       AAttoomm      _t_a_r_g_e_t;;
     }} XXmmDDrrooppTTrraannssffeerrEEnnttrryyRReecc,, **XXmmDDrrooppTTrraannssffeerrEEnnttrryy;;

     _c_l_i_e_n_t__d_a_t_a
               Specifies any additional information required by this selec-
               tion target

     _t_a_r_g_e_t    Specifies a selection target associated with the drop opera-
               tion






   1-337






   XmDropTransfer(3X)


     Classes

     DropTransfer inherits behavior and a resource from OObbjjeecctt.

     The class pointer is xxmmDDrrooppTTrraannssffeerrOObbjjeeccttCCllaassss.

     The class name is XXmmDDrrooppTTrraannssffeerr.

     New Resources

     The following table defines a set of widget resources used by the pro-
     grammer to specify data.  The programmer can also set the resource
     values for the inherited classes to set attributes for this widget.  To
     reference a resource by name or by class in a .Xdefaults file, remove
     the XXmmNN or XXmmCC prefix and use the remaining letters.  To specify one of
     the defined values for a resource in a .Xdefaults file, remove the XXmm
     prefix and use the remaining letters (in either lowercase or uppercase,
     but include any underscores between words).  The codes in the access
     column indicate if the given resource can be set at creation time (CC),
     set by using XXttSSeettVVaalluueess (SS), retrieved by using XXttGGeettVVaalluueess (GG), or is
     not applicable (NN//AA).

                                      XXmmDDrrooppTTrraannssffeerr RReessoouurrccee SSeett
   NNaammee                  CCllaassss                 TTyyppee                       DDeeffaauulltt              AAcccceessss
   __________________________________________________________________________________________________
   XmNdropTransfers      XmCDropTransfers      XmDropTransferEntryRec *   NULL                 CG
   XmNincremental        XmCIncremental        Boolean                    False                CSG
   XmNnumDropTransfers   XmCNumDropTransfers   Cardinal                   0                    CSG
   XmNtransferProc       XmCTransferProc       XtSelectionCallbackProc    NULL                 CSG
   XmNtransferStatus     XmCTransferStatus     unsigned char              XmTRANSFER_SUCCESS   CSG

     XXmmNNddrrooppTTrraannssffeerrss
               Specifies the address of an array of drop transfer entry
               records.  The drop transfer is complete when all the entries
               in the list have been processed.

     XXmmNNiinnccrreemmeennttaall
               Specifies a Boolean value that indicates whether the transfer
               on the receiver side uses the Xt incremental selection
               transfer mechanism described in _X _T_o_o_l_k_i_t _I_n_t_r_i_n_s_i_c_s-_C
               _L_a_n_g_u_a_g_e _I_n_t_e_r_f_a_c_e.  If the value is True, the receiver uses
               incremental transfer; if the value is False, the receiver uses
               atomic transfer.

     XXmmNNnnuummDDrrooppTTrraannssffeerrss
               Specifies the number of entries in XXmmNNddrrooppTTrraannssffeerrss.  If this
               resource is set to 0 at any time, the transfer is considered
               complete.  The value of XXmmNNttrraannssffeerrSSttaattuuss determines the com-
               pletion handshaking process.

     XXmmNNttrraannssffeerrPPrroocc
               Specifies a procedure of type XXttSSeelleeccttiioonnCCaallllbbaacckkPPrroocc that
               delivers the requested selection values.  The _w_i_d_g_e_t argument
               passed to this procedure is the DropTransfer widget.  The


   1-338






                                                           XmDropTransfer(3X)


               selection atom passed is _MOTIF_DROP.  For additional informa-
               tion on selection callback procedures, see _X _T_o_o_l_k_i_t
               _I_n_t_r_i_n_s_i_c_s-_C _L_a_n_g_u_a_g_e _I_n_t_e_r_f_a_c_e.

     XXmmNNttrraannssffeerrSSttaattuuss
               Specifies the current status of the drop transfer.  The client
               updates this value when the transfer ends and communicates the
               value to the initiator.  The possible values are

               XXmmTTRRAANNSSFFEERR__SSUUCCCCEESSSS  The transfer succeeded.

               XXmmTTRRAANNSSFFEERR__FFAAIILLUURREE  The transfer failed.

     Inherited Resources

     DropTransfer inherits behavior and a resource from OObbjjeecctt.  For a com-
     plete description of this resource, refer to the OObbjjeecctt reference page.

                               OObbjjeecctt RReessoouurrccee SSeett
       NNaammee                 CCllaassss         TTyyppee             DDeeffaauulltt   AAcccceessss
       ____________________________________________________________________
       XmNdestroyCallback   XmCCallback   XtCallbackList   NULL      C

   RELATED INFORMATION
     OObbjjeecctt((33XX)), XXmmDDiissppllaayy((33XX)), XXmmDDrraaggCCoonntteexxtt((33XX)), XXmmDDrraaggIIccoonn((33XX)),
     XXmmDDrrooppSSiittee((33XX)), XXmmDDrrooppTTrraannssffeerrAAdddd((33XX)), and XXmmDDrrooppTTrraannssffeerrSSttaarrtt((33XX)).






























   1-339






   XmDropTransferAdd(3X)



   NAME
     XXmmDDrrooppTTrraannssffeerrAAdddd-A Drag and Drop function that enables additional drop
     transfer entries to be processed after initiating a drop transfer

   SYNOPSIS
     ##iinncclluuddee <<XXmm//DDrraaggDDrroopp..hh>>
     vvooiidd XXmmDDrrooppTTrraannssffeerrAAdddd ((_d_r_o_p__t_r_a_n_s_f_e_r, _t_r_a_n_s_f_e_r_s, _n_u_m__t_r_a_n_s_f_e_r_s))
          WWiiddggeett           _d_r_o_p__t_r_a_n_s_f_e_r;;
          XXmmDDrrooppTTrraannssffeerrEEnnttrryyRReecc**_t_r_a_n_s_f_e_r_s;;
          CCaarrddiinnaall         _n_u_m__t_r_a_n_s_f_e_r_s;;

   DESCRIPTION
     XXmmDDrrooppTTrraannssffeerrAAdddd identifies a list of additional drop transfer entries
     to be processed after a drop transfer is started.

     _d_r_o_p__t_r_a_n_s_f_e_r
            Specifies the ID of the DropTransfer widget returned by XXmmDDrroopp--
            TTrraannssffeerrSSttaarrtt

     _t_r_a_n_s_f_e_r_s
            Specifies the additional drop transfer entries that the receiver
            wants processed

     _n_u_m__t_r_a_n_s_f_e_r_s
            Specifies the number of items in the _t_r_a_n_s_f_e_r_s array

     For a complete definition of DropTransfer and its associated resources,
     see XXmmDDrrooppTTrraannssffeerr((33XX)).

   RELATED INFORMATION
     XXmmDDrraaggCCoonntteexxtt((33XX)), XXmmDDrrooppTTrraannssffeerr((33XX)), and XXmmDDrrooppTTrraannssffeerrSSttaarrtt((33XX))..
























   1-340






                                                      XmDropTransferStart(3X)



   NAME
     XXmmDDrrooppTTrraannssffeerrSSttaarrtt-A Drag and Drop function that initiates a drop
     transfer

   SYNOPSIS
     ##iinncclluuddee <<XXmm//DDrraaggDDrroopp..hh>>
     WWiiddggeett XXmmDDrrooppTTrraannssffeerrSSttaarrtt ((_w_i_d_g_e_t, _a_r_g_l_i_s_t, _a_r_g_c_o_u_n_t))
          WWiiddggeett      _w_i_d_g_e_t;;
          AArrggLLiisstt     _a_r_g_l_i_s_t;;
          CCaarrddiinnaall    _a_r_g_c_o_u_n_t;;

   DESCRIPTION
     XXmmDDrrooppTTrraannssffeerrSSttaarrtt initiates a drop transfer and uses the specified
     argument list to initialize an XXmmDDrrooppTTrraannssffeerr object.  The DropTransfer
     object can be manipulated with XXttSSeettVVaalluueess and XXttGGeettVVaalluueess until the
     last call to the XXmmNNttrraannssffeerrPPrroocc procedure is made.  After that point,
     the result of using the widget pointer is undefined.  The DropTransfer
     object is freed by the toolkit when a transfer is complete.

     _r_e_f_w_i_d_g_e_t
            Specifies the ID of the DragContext widget associated with the
            transaction

     _a_r_g_l_i_s_tSpecifies the argument list

     _a_r_g_c_o_u_n_t
            Specifies the number of attribute/value pairs in the argument
            list (_a_r_g_l_i_s_t)

     For a complete definition of DropTransfer and its associated resources,
     see XXmmDDrrooppTTrraannssffeerr((33XX)).

   RETURN VALUE
     Returns the ID of the DropTransfer widget.

   RELATED INFORMATION
     XXmmDDrraaggCCoonntteexxtt((33XX)), XXmmDDrrooppTTrraannssffeerr((33XX)), and XXmmDDrrooppTTrraannssffeerrAAdddd((33XX)).


















   1-341



 n
