PreviousUpNext

15.3.780  src/lib/x-kit/xclient/src/window/selection.api

## selection.api
#
# A window-level view of the low-level selection operations.
#
# See also:
#     src/lib/x-kit/xclient/src/window/selection-imp-old.api

# Compiled by:
#     src/lib/x-kit/xclient/xclient-internals.sublib



stipulate
    include package   threadkit;        # threadkit                     is from   src/lib/src/lib/thread-kit/src/core-thread-kit/threadkit.pkg
    #
    package xt  =  xtypes;              # xtypes                        is from   src/lib/x-kit/xclient/src/wire/xtypes.pkg
    package xj  =  xsession_junk;       # xsession_junk                 is from   src/lib/x-kit/xclient/src/window/xsession-junk.pkg
#   package ww  =  window;              # window                        is from   src/lib/x-kit/xclient/src/window/window.pkg
    package sep =  client_to_selection; # client_to_selection           is from   src/lib/x-kit/xclient/src/window/client-to-selection.pkg
herein

    # This api is implemented in:
    #
    #     src/lib/x-kit/xclient/src/window/selection.pkg

    api Selection {

        Selection_Handle;
        Atom;                           #  = xtypes::Atom
        Xserver_Timestamp;              #  = xserver_timestamp::Xserver_Timestamp;

        # Selection owner operations.
        #
        acquire_selection
            :
            (xj::Window, Atom, Xserver_Timestamp, sep::Selection_Plea -> Void)
            ->
            Null_Or( Selection_Handle );

        selection_of:  Selection_Handle -> Atom;
        timestamp_of:  Selection_Handle -> Xserver_Timestamp;

#       selection_req_mailop
#           :
#           Selection_Handle
#           ->
#           Mailop
#             {
#               target:       Atom,
#               timestamp:    Null_Or( Xserver_Timestamp ),
#               reply:        Null_Or( xt::Property_Value ) -> Void
#             }
#           ; 
            #
            # This event is enabled once for each request for the selection.
            # The target field is the requested target type;
            # The time field is the server-time of the gesture that caused the request;
            # The reply field is a function for sending the reply.


        selection_rel_mailop
            :
            Selection_Handle
            ->
            Mailop( Void )
            ;
            #
            # This event becomes enabled when the
            # selection is lost, either by the owner
            # releasing it, or by some other client
            # acquiring ownership.


        release_selection:  Selection_Handle -> Void;
            #
            # Release ownership of the selection.


        # Selection requestor operations.
        #
        request_selection
            :
            {
              window:     xj::Window,
              #
              selection:  Atom,
              target:     Atom,
              property:   Atom,
              #
              timestamp:  Xserver_Timestamp
            }
            ->
            Mailop( Null_Or( xt::Property_Value ) );
                #
                # Request the value of the selection.
                #  The window field is the requesting window;
                #  the selection field is the requested selection,
                #  the target field is the requested target type, and
                #  the time field is the server-time of the gesture
                #  causing the request.
                # This returns a mailop that will become
                # enabled when the reply is received.
    };
end;

## COPYRIGHT (c) 1994 by AT&T Bell Laboratories.  See SMLNJ-COPYRIGHT file for details.
## Subsequent changes by Jeff Prothero Copyright (c) 2010-2015,
## released per terms of SMLNJ-COPYRIGHT.


Comments and suggestions to: bugs@mythryl.org

PreviousUpNext