PreviousUpNext

15.4.1645  src/lib/x-kit/xclient/src/window/selection-old.pkg

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

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






###              "If there is a problem you can't solve,
###               then there is an easier problem you
###               can't solve: find it."
###
###                                 -- George Polya


# This stuff is likely based on Dusty Deboer's
# thesis work: See Chapter 5 (pp46) in:
#     http://mythryl.org/pub/exene/dusty-thesis.pdf

stipulate
    package sn = xsession_old;                  # xsession_old          is from   src/lib/x-kit/xclient/src/window/xsession-old.pkg
    package dt = draw_types_old;                # draw_types_old        is from   src/lib/x-kit/xclient/src/window/draw-types-old.pkg
    package ts = xserver_timestamp;             # xserver_timestamp     is from   src/lib/x-kit/xclient/src/wire/xserver-timestamp.pkg
    package si = selection_imp_old;             # selection_imp_old     is from   src/lib/x-kit/xclient/src/window/selection-imp-old.pkg
    package xt = xtypes;                        # xtypes                is from   src/lib/x-kit/xclient/src/wire/xtypes.pkg
herein


    package   selection_old
    : (weak)  Selection_Old                     # Selection_Old         is from   src/lib/x-kit/xclient/src/window/selection-old.api
    {
        Selection_Handle = si::Selection_Handle;

        Atom = xt::Atom;

        Xserver_Timestamp = ts::Xserver_Timestamp;

        fun selection_imp_of_screen ( { xsession=>{ selection_imp, ... }: sn::Xsession, ... }: sn::Screen )
            =
            selection_imp;

        fun acquire_selection ({ window_id, screen, ... }: dt::Window, selection, time)
            =
            si::acquire_selection
                (selection_imp_of_screen  screen)
                (window_id, selection, time);

        release_selection    = si::release_selection;
        selection_of         = si::selection_of;
        timestamp_of         = si::timestamp_of;
        selection_req_mailop = si::plea_mailop;
        selection_rel_mailop = si::release_mailop;

        fun request_selection
            {
              window => { window_id, screen, ... }: dt::Window,
              selection,
              target,
              property,
              timestamp
            }
            =
            si::request_selection
                (selection_imp_of_screen  screen)
                {
                  window  => window_id,
                  selection,
                  target,
                  property,
                  timestamp
                };
    };

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