xserver

xserver with xephyr scale patch
git clone https://git.neptards.moe/u3shit/xserver.git
Log | Files | Refs | README | LICENSE

x-selection.h (3569B)


      1 /* x-selection.h -- proxies between NSPasteboard and X11 selections
      2  *
      3  * Copyright (c) 2002-2012 Apple Inc. All rights reserved.
      4  *
      5  * Permission is hereby granted, free of charge, to any person
      6  * obtaining a copy of this software and associated documentation files
      7  * (the "Software"), to deal in the Software without restriction,
      8  * including without limitation the rights to use, copy, modify, merge,
      9  * publish, distribute, sublicense, and/or sell copies of the Software,
     10  * and to permit persons to whom the Software is furnished to do so,
     11  * subject to the following conditions:
     12  *
     13  * The above copyright notice and this permission notice shall be
     14  * included in all copies or substantial portions of the Software.
     15  *
     16  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
     17  * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
     18  * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
     19  * NONINFRINGEMENT.  IN NO EVENT SHALL THE ABOVE LISTED COPYRIGHT
     20  * HOLDER(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
     21  * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
     22  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
     23  * DEALINGS IN THE SOFTWARE.
     24  *
     25  * Except as contained in this notice, the name(s) of the above
     26  * copyright holders shall not be used in advertising or otherwise to
     27  * promote the sale, use or other dealings in this Software without
     28  * prior written authorization.
     29  */
     30 
     31 #ifndef X_SELECTION_H
     32 #define X_SELECTION_H 1
     33 
     34 #include "pbproxy.h"
     35 
     36 #define  Cursor X_Cursor
     37 #include <X11/extensions/Xfixes.h>
     38 #undef Cursor
     39 
     40 #include <AppKit/NSPasteboard.h>
     41 
     42 /* This stores image data or text. */
     43 struct propdata {
     44     unsigned char *data;
     45     size_t length;
     46     int format;
     47 };
     48 
     49 struct atom_list {
     50     Atom primary, clipboard, text, utf8_string, string, targets, multiple,
     51          cstring, image_png, image_jpeg, incr, atom, clipboard_manager,
     52          compound_text, atom_pair;
     53 };
     54 
     55 @interface x_selection : NSObject
     56 {
     57     @private
     58 
     59     /* The unmapped window we use for fetching selections. */
     60     Window _selection_window;
     61 
     62     Atom request_atom;
     63 
     64     struct {
     65         struct propdata propdata;
     66         Window requestor;
     67         Atom selection;
     68     } pending;
     69 
     70     /*
     71      * This is the number of times the user has requested a copy.
     72      * Once the copy is completed, we --pending_copy, and if the
     73      * pending_copy is > 0 we do it again.
     74      */
     75     int pending_copy;
     76     /*
     77      * This is used for the same purpose as pending_copy, but for the
     78      * CLIPBOARD.  It also prevents a race with INCR transfers.
     79      */
     80     int pending_clipboard;
     81 
     82     struct atom_list atoms[1];
     83 }
     84 
     85 - (void)x_active:(Time)timestamp;
     86 - (void)x_inactive:(Time)timestamp;
     87 
     88 - (void)x_copy:(Time)timestamp;
     89 
     90 - (void)clear_event:(XSelectionClearEvent *)e;
     91 - (void)request_event:(XSelectionRequestEvent *)e;
     92 - (void)notify_event:(XSelectionEvent *)e;
     93 - (void)property_event:(XPropertyEvent *)e;
     94 - (void)xfixes_selection_notify:(XFixesSelectionNotifyEvent *)e;
     95 - (void)handle_selection:(Atom) selection type:(Atom) type propdata:(struct
     96                                                                      propdata
     97                                                                      *)pdata;
     98 - (void)claim_clipboard;
     99 - (BOOL)set_clipboard_manager_status:(BOOL)value;
    100 - (void)own_clipboard;
    101 - (void)copy_completed:(Atom)selection;
    102 
    103 - (void)reload_preferences;
    104 - (BOOL)is_active;
    105 - (void)send_none:(XSelectionRequestEvent *)e;
    106 @end
    107 
    108 /* main.m */
    109 extern x_selection * _selection_object;
    110 
    111 #endif /* X_SELECTION_H */