亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? xdnd.h

?? 安裝DDD之前
?? H
字號:
/* * LessTif ID : $Id: xdnd.h,v 1.1 2004/08/28 19:23:36 dannybackx Exp $ * * This file is maintained by Paul Sheer. * Integration with LessTif should be outside this source, so Paul can * maintain this file and guarantee that other users (GTK+, ...) use * the same version. * * If the integration is not possible without changing this file, * please contact Paul. *//* xdnd.c, xdnd.h - C program library for handling the Xdnd protocol   Copyright (C) 1998  Paul Sheer   This library is free software; you can redistribute it and/or   modify it under the terms of the GNU Library General Public   License as published by the Free Software Foundation; either   version 2 of the License, or (at your option) any later version.   This library is distributed in the hope that it will be useful,   but WITHOUT ANY WARRANTY; without even the implied warranty of   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU   Library General Public License for more details.   You should have received a copy of the GNU Library General Public   License along with this library; if not, write to the Free   Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.   Further info can also be obtained by emailing the author at,       psheer@obsidian.co.za */#ifndef _X_DND_H#define _X_DND_H#ifdef  __cplusplusextern "C" {#endif#define XDND_VERSION 2/* XdndEnter */#define XDND_THREE 3#define XDND_ENTER_SOURCE_WIN(e)	((e)->xclient.data.l[0])#define XDND_ENTER_THREE_TYPES(e)	(((e)->xclient.data.l[1] & 0x1UL) == 0)#define XDND_ENTER_THREE_TYPES_SET(e,b)	(e)->xclient.data.l[1] = ((e)->xclient.data.l[1] & ~0x1UL) | (((b) == 0) ? 0 : 0x1UL)#define XDND_ENTER_VERSION(e)		((e)->xclient.data.l[1] >> 24)#define XDND_ENTER_VERSION_SET(e,v)	(e)->xclient.data.l[1] = ((e)->xclient.data.l[1] & ~(0xFF << 24)) | ((v) << 24)#define XDND_ENTER_TYPE(e,i)		((e)->xclient.data.l[2 + i])	/* i => (0, 1, 2) *//* XdndPosition */#define XDND_POSITION_SOURCE_WIN(e)	((e)->xclient.data.l[0])#define XDND_POSITION_ROOT_X(e)		((e)->xclient.data.l[2] >> 16)#define XDND_POSITION_ROOT_Y(e)		((e)->xclient.data.l[2] & 0xFFFFUL)#define XDND_POSITION_ROOT_SET(e,x,y)	(e)->xclient.data.l[2]  = ((x) << 16) | ((y) & 0xFFFFUL)#define XDND_POSITION_TIME(e)		((e)->xclient.data.l[3])#define XDND_POSITION_ACTION(e)		((e)->xclient.data.l[4])/* XdndStatus */#define XDND_STATUS_TARGET_WIN(e)	((e)->xclient.data.l[0])#define XDND_STATUS_WILL_ACCEPT(e)	((e)->xclient.data.l[1] & 0x1L)#define XDND_STATUS_WILL_ACCEPT_SET(e,b) (e)->xclient.data.l[1] = ((e)->xclient.data.l[1] & ~0x1UL) | (((b) == 0) ? 0 : 0x1UL)#define XDND_STATUS_WANT_POSITION(e)	((e)->xclient.data.l[1] & 0x2UL)#define XDND_STATUS_WANT_POSITION_SET(e,b) (e)->xclient.data.l[1] = ((e)->xclient.data.l[1] & ~0x2UL) | (((b) == 0) ? 0 : 0x2UL)#define XDND_STATUS_RECT_X(e)		((e)->xclient.data.l[2] >> 16)#define XDND_STATUS_RECT_Y(e)		((e)->xclient.data.l[2] & 0xFFFFL)#define XDND_STATUS_RECT_WIDTH(e)	((e)->xclient.data.l[3] >> 16)#define XDND_STATUS_RECT_HEIGHT(e)	((e)->xclient.data.l[3] & 0xFFFFL)#define XDND_STATUS_RECT_SET(e,x,y,w,h)	{(e)->xclient.data.l[2] = ((x) << 16) | ((y) & 0xFFFFUL); (e)->xclient.data.l[3] = ((w) << 16) | ((h) & 0xFFFFUL); }#define XDND_STATUS_ACTION(e)		((e)->xclient.data.l[4])/* XdndLeave */#define XDND_LEAVE_SOURCE_WIN(e)	((e)->xclient.data.l[0])/* XdndDrop */#define XDND_DROP_SOURCE_WIN(e)		((e)->xclient.data.l[0])#define XDND_DROP_TIME(e)		((e)->xclient.data.l[2])/* XdndFinished */#define XDND_FINISHED_TARGET_WIN(e)	((e)->xclient.data.l[0])struct _DndCursor {    int width, height;    int x, y;    unsigned char *image_data, *mask_data;    char *_action;    Pixmap image_pixmap, mask_pixmap;    Cursor cursor;    Atom action;};typedef struct _DndCursor DndCursor;typedef struct _DndClass DndClass;struct _DndClass {/* insert chars sequentionally into the target widget, type will be the same as `desired_type'   returned from widget_apply_position. This may be called several times in succession    with sequention blocks of data. Must return non-zero on failure */    int (*widget_insert_drop) (DndClass * dnd, unsigned char *data, int length, int remaining, Window into, Window from, Atom type);/* In response to DELETE requests : FIXME - not yet used */    int (*widget_delete_selection) (DndClass * dnd, Window window, Window from);/* returns 1 if widget exists, zero otherwise. If this method is not    set then the code assumes that no widgets have support for recieving drops.   In this case none of the widget methods need be set. */    int (*widget_exists) (DndClass * dnd, Window window);/* must update the widgets border to its default appearance */    void (*widget_apply_leave) (DndClass * dnd, Window widgets_window);/* must update the widgets border to give the appearance of being able to recieve a drop,   plus return all data to pointers. As per the protocol, if the widget cannot   perform the action specified by `action' then it should return either XdndActionPrivate   or XdndActionCopy into supported_action (leaving 0 supported_action unchanged is equivalent   to XdndActionCopy). Returns 1 if ready to ok drop */    int (*widget_apply_position) (DndClass * dnd, Window widgets_window, Window from,		      Atom action, int x, int y, Time t, Atom * typelist,	int *want_position, Atom * supported_action, Atom * desired_type,				  XRectangle * rectangle);/* returns drag data of the specified type. This will be one of `typelist' given to xdnd_drag */    void (*widget_get_data) (DndClass * dnd, Window window, unsigned char **data, int *length, Atom type);/* this is called from with the main event loop if an expose event is recieved and is optional */    void (*handle_expose_events) (DndClass * dnd, XEvent * xevent);/* creates a chooser dialog if the action is XdndActionAsk. Returns non-zero on cancel */    int (*action_choose_dialog) (DndClass * dnd, char **descriptions, Atom * actions, Atom * result);    void *pad1[8];    DndCursor *cursors;    Display *display;    Atom XdndAware;    Atom XdndSelection;    Atom XdndEnter;    Atom XdndLeave;    Atom XdndPosition;    Atom XdndDrop;    Atom XdndFinished;    Atom XdndStatus;    Atom XdndActionCopy;    Atom XdndActionMove;    Atom XdndActionLink;    Atom XdndActionAsk;    Atom XdndActionPrivate;    Atom XdndTypeList;    Atom XdndActionList;    Atom XdndActionDescription;    Atom Xdnd_NON_PROTOCOL_ATOM;    Atom version;    Atom pad2[16];    Window root_window;#define XDND_DROP_STAGE_IDLE		0#define XDND_DRAG_STAGE_DRAGGING	1#define XDND_DRAG_STAGE_ENTERED		2#define XDND_DROP_STAGE_CONVERTING	3#define XDND_DROP_STAGE_ENTERED		4    int stage;    int dragging_version;    int internal_drag;    int want_position;    int ready_to_drop;    int will_accept;    XRectangle rectangle;    Window dropper_window, dragger_window;    Atom *dragger_typelist;    Atom desired_type;    Atom supported_action;    Time time;/* drop position from last XdndPosition */    int x, y;    int pad3[16];/* move euclidian pixels before considering this to be an actual drag */    float drag_threshold;/* block for only this many seconds on not receiving a XdndFinished from target, default : 10 */    int time_out;#define XDND_OPTION_NO_HYSTERESIS (1<<0)    int options;/* user hooks */    void *user_hook1;    void *user_hook2;    void *user_hook3;    void *pad4[16];};void xdnd_init (DndClass * dnd, Display * display);void xdnd_shut (DndClass *dnd);void xdnd_set_dnd_aware (DndClass * dnd, Window window, Atom * typelist);int xdnd_is_dnd_aware (DndClass * dnd, Window window, int *version, Atom * typelist);void xdnd_set_type_list (DndClass * dnd, Window window, Atom * typelist);void xdnd_set_actions (DndClass * dnd, Window window, Atom * actions, char **descriptions);int xdnd_get_actions (DndClass * dnd, Window window, Atom ** actions, char ***descriptions);int xdnd_choose_action_dialog (DndClass * dnd, Atom * actions, char **descriptions, Atom * result);void xdnd_send_enter (DndClass * dnd, Window window, Window from, Atom * typelist);void xdnd_send_position (DndClass * dnd, Window window, Window from, Atom action, int x, int y, unsigned long etime);void xdnd_send_status (DndClass * dnd, Window window, Window from, int will_accept,	     int want_position, int x, int y, int w, int h, Atom action);void xdnd_send_leave (DndClass * dnd, Window window, Window from);void xdnd_send_drop (DndClass * dnd, Window window, Window from, unsigned long etime);void xdnd_send_finished (DndClass * dnd, Window window, Window from, int error);int xdnd_convert_selection (DndClass * dnd, Window window, Window requester, Atom type);void xdnd_selection_send (DndClass * dnd, XSelectionRequestEvent * request, unsigned char *data, int length);int xdnd_get_selection (DndClass * dnd, Window from, Atom property, Window insert);Atom xdnd_drag (DndClass * dnd, Window from, Atom action, Atom * typelist);/* Returns 1 if event is handled, This must be placed in the widget libraries main event   loop and be called if the event type is ClientMessage or SelectionNotify */int xdnd_handle_drop_events (DndClass * dnd, XEvent * xevent);Atom xdnd_get_drop (Display * display, XEvent * xevent, Atom * typelist, Atom * actionlist,	  unsigned char **data, int *length, Atom * type, int *x, int *y);#ifdef  __cplusplus}#endif#endif 	/* !_X_DND_H */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
午夜精品福利在线| 麻豆视频一区二区| 日本高清不卡在线观看| 欧美日韩成人综合天天影院| 久久久久久**毛片大全| 国产成人精品亚洲日本在线桃色 | 亚洲香肠在线观看| 欧美日韩国产综合一区二区| 青青草国产成人av片免费| 日韩免费电影一区| 成人va在线观看| 亚洲欧美日韩久久精品| 欧美日本精品一区二区三区| 国产一区欧美日韩| 亚洲欧美在线高清| 7777精品伊人久久久大香线蕉完整版| 久久99国产乱子伦精品免费| 国产精品美女久久久久久| 欧美三级日韩三级国产三级| 精品一区二区影视| 亚洲男帅同性gay1069| 91精品午夜视频| 国产成人综合在线观看| 亚洲香蕉伊在人在线观| 久久综合视频网| 欧美色图一区二区三区| 国产一区二区三区四区五区美女 | eeuss影院一区二区三区| 亚洲综合色成人| 久久久综合网站| 欧美在线免费观看亚洲| 狠狠色综合日日| 亚洲午夜久久久久久久久久久| 久久综合久久综合亚洲| 日本精品一级二级| 国产精品1区2区3区在线观看| 亚洲综合一区二区精品导航| 久久精品夜色噜噜亚洲aⅴ| 在线看一区二区| 成人夜色视频网站在线观看| 日韩av电影免费观看高清完整版在线观看| 中文字幕国产精品一区二区| 4438x亚洲最大成人网| 99久久99久久精品免费观看 | 日韩国产成人精品| 中文字幕一区二区在线播放| 日韩精品一区二| 911精品产国品一二三产区| 成人av午夜电影| 国产精品原创巨作av| 日韩高清在线电影| 亚洲影院在线观看| 综合婷婷亚洲小说| 国产精品伦理在线| 久久精品亚洲一区二区三区浴池| 欧美男男青年gay1069videost| 91色在线porny| voyeur盗摄精品| 国产.欧美.日韩| 国产精品自拍三区| 黑人精品欧美一区二区蜜桃| 日本亚洲三级在线| 视频在线观看国产精品| 亚洲成av人片一区二区三区| 亚洲自拍偷拍网站| 亚洲午夜久久久久久久久久久| 亚洲乱码国产乱码精品精可以看| 精品播放一区二区| 日韩精品一区在线观看| 91精品国产综合久久福利软件 | av一区二区三区四区| 国产成人免费视频一区| 蜜臀av性久久久久蜜臀aⅴ四虎 | 久久亚洲精品国产精品紫薇| 久久日一线二线三线suv| 欧美不卡一二三| 精品久久免费看| 久久蜜桃一区二区| 国产女同互慰高潮91漫画| 国产日韩欧美精品综合| 国产精品无圣光一区二区| 国产精品成人一区二区三区夜夜夜| 欧美国产日韩亚洲一区| 国产精品成人免费| 亚洲精品福利视频网站| 性感美女久久精品| 日韩中文字幕av电影| 老司机一区二区| 国产成人aaa| 91在线免费看| 欧美日韩在线电影| 欧美一区二区三区视频免费播放| 日韩免费性生活视频播放| 日韩精品一区二区三区在线播放| 久久婷婷国产综合国色天香| 国产精品久久久久婷婷| 亚洲综合自拍偷拍| 美腿丝袜亚洲综合| 国产91色综合久久免费分享| 一本大道久久精品懂色aⅴ| 欧美日韩极品在线观看一区| 精品国产自在久精品国产| 国产色一区二区| 夜夜精品视频一区二区| 日本aⅴ免费视频一区二区三区| 精品一区二区三区欧美| 成人av电影在线观看| 欧美日韩色一区| 久久久久久99久久久精品网站| 亚洲人成影院在线观看| 日韩国产高清在线| 99久免费精品视频在线观看| 欧美丰满高潮xxxx喷水动漫| 国产亚洲欧美色| 亚洲第一二三四区| 国产精品一卡二| 欧美日韩国产美女| 国产欧美精品在线观看| 午夜久久久久久电影| 国产成a人亚洲精品| 欧美日韩在线播放三区四区| 欧美国产在线观看| 六月丁香婷婷久久| 在线观看成人小视频| 久久人人爽爽爽人久久久| 亚洲国产欧美在线| 国产91高潮流白浆在线麻豆| 日韩一区二区三区在线视频| 一区二区日韩电影| 粉嫩在线一区二区三区视频| 制服丝袜一区二区三区| 亚洲日本在线天堂| 国产精品123| 日韩一区二区免费在线电影| 亚洲精选免费视频| 国产成人福利片| 欧美刺激脚交jootjob| 亚洲1区2区3区4区| 色婷婷国产精品| 欧美激情资源网| 激情欧美日韩一区二区| 欧美一区二区三区在线视频 | 亚洲视频免费在线观看| 国产原创一区二区| 日韩精品中文字幕在线不卡尤物| 亚洲福利视频一区二区| 色综合天天综合网天天狠天天| 国产无遮挡一区二区三区毛片日本| 日本欧美久久久久免费播放网| 色哦色哦哦色天天综合| 中文字幕一区二区三| 粉嫩蜜臀av国产精品网站| 精品日韩欧美在线| 蜜臂av日日欢夜夜爽一区| 欧美日本在线看| 丝袜诱惑亚洲看片| 欧美日韩成人在线一区| 亚洲福利视频一区二区| 欧美艳星brazzers| 亚洲二区视频在线| 欧美怡红院视频| 亚洲国产sm捆绑调教视频| 91极品视觉盛宴| 亚洲h精品动漫在线观看| 欧美日韩国产另类不卡| 日韩中文欧美在线| 日韩欧美高清dvd碟片| 老司机一区二区| 久久精品水蜜桃av综合天堂| 国产91在线观看丝袜| 中文字幕一区在线观看视频| 色老汉av一区二区三区| 亚洲国产成人va在线观看天堂| 欧美欧美欧美欧美首页| 毛片基地黄久久久久久天堂| 2023国产精品视频| 成人午夜免费视频| 亚洲另类中文字| 欧美系列日韩一区| 免费三级欧美电影| 天天色综合天天| 91精品国产91综合久久蜜臀| 久久精品国产色蜜蜜麻豆| 国产天堂亚洲国产碰碰| a亚洲天堂av| 亚洲成a人片在线观看中文| 日韩精品一区国产麻豆| 国产精品1区二区.| 夜夜爽夜夜爽精品视频| 日韩一区二区高清| 国产69精品久久99不卡| 亚洲黄色小视频| 91精品国产色综合久久不卡蜜臀| 国产美女精品在线| 亚洲日穴在线视频| 欧美成人欧美edvon| 91亚洲资源网| 美女网站视频久久| 亚洲日本乱码在线观看| 欧美一区二区三区不卡|