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

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

?? basic.c

?? 樹大根深三棱盡所標桿ssfsfsa fdsafs
?? C
字號:
/*****************************************************************************    Copyright (C) 1994,1997 Ivan A. Curtis.  All rights reserved.This code must not be re-distributed without these copyright notices intact.**************************************************************************************************************************************************************Filename:	~icurtis/src/mx/basic.cDescription:	Update History:   (most recent first)   I. Curtis   9-Apr-97 12:02 -- Updated   I. Curtis  22-Mar-94 23:11 -- Created.******************************************************************************/#include <stdlib.h>#include "X11/Xlib.h"#include "X11/Xutil.h"#include "X11/cursorfont.h"#include "basic.h"/*************************************************** * Default Stipple Pattern for Disabled Menu Items * ***************************************************/#define DEFAULT_PIX_WIDTH  8#define DEFAULT_PIX_HEIGHT 8static unsigned char mx_default_bits [] = {  0x55, 0xaa, 0x55, 0xaa, 0x55, 0xaa, 0x55, 0xaa };/***************************** * Default pixmap for button * *****************************/#define BUTTON_PIX_WIDTH  8#define BUTTON_PIX_HEIGHT 8static unsigned char mx_button_bits [] = {  0x3c, 0x7e, 0xff, 0xff, 0xff, 0xff, 0x7e, 0x3c };/*************************** * Default pixmap for tick * ***************************/#define TICK_PIX_WIDTH  8#define TICK_PIX_HEIGHT 10static unsigned char mx_tick_bits [] = {  0xc0, 0xc0, 0xe0, 0x60, 0x70, 0x31, 0x3b, 0x1f, 0x1e, 0x0c };/********************* * Create a new item * *********************/mx_menu_item *mx_menu_item_new(char *text){  mx_menu_item *mi;  mi = (mx_menu_item *)malloc(sizeof(mx_menu_item));  mi->length = strlen(text);  mi->text = (char *)malloc(mi->length + 1);  strcpy(mi->text, text);  return mi;}/************************************* * Create a new appearance structure * *************************************/mx_appearance *mx_appearance_create(Display *display, int screen,				    Window window,				    char *font_name,				    int win_border, int item_border,				    int pix_width, int pix_height,				    char *pix_bits,				    int (*expose_fun)(XEvent *event)){  mx_appearance *app;  XCharStruct xcs;  int dir, asc, desc;  app = (mx_appearance *)malloc(sizeof(mx_appearance));  app->expose_fun = expose_fun;  app->win_border = win_border;  app->item_border = item_border;				/* set up font */  if (!(app->font = XLoadQueryFont(display, font_name))) {    app->font = XLoadQueryFont(display, "fixed");  }  if (app->font == NULL) {	/* named font and "fixed" not available! */    return NULL;  }				/* compute font dimensions */  XTextExtents(app->font, "M", 1,	       &dir, &asc, &desc, &xcs);  app->em = xcs.lbearing + xcs.rbearing;  app->ascent = xcs.ascent;  app->descent = xcs.descent;				/* make the flipping GC */  app->gcf = XCreateGC(display, window, 0, 0);  XSetState(display, app->gcf, 0xffffffff, 0, 	    GXxor, BlackPixel(display, screen) ^ WhitePixel(display, screen));  XSetLineAttributes(display, app->gcf, 0, LineSolid, CapButt, JoinMiter);  XSetFont(display, app->gcf, app->font->fid);				/* make the drawing GC */  app->gcd = XCreateGC(display, window, 0, 0);  XSetState(display, app->gcd, BlackPixel(display, screen),	    WhitePixel(display, screen), GXcopy, 0xffffffff);  XSetLineAttributes(display, app->gcd, 0, LineSolid, CapButt, JoinMiter);  XSetFont(display, app->gcd, app->font->fid);  				/* make stipple pattern */  if (pix_bits) {		/* user define stipple bitmap */    app->stipple = XCreateBitmapFromData(display, window, 					 pix_bits, pix_width, pix_height);  }  else {			/* use default stipple */    app->stipple = XCreateBitmapFromData(display, window, 					      mx_default_bits,					      DEFAULT_PIX_WIDTH,					      DEFAULT_PIX_HEIGHT);  }  app->button =  XCreateBitmapFromData(display, window, 				       mx_tick_bits,				       TICK_PIX_WIDTH,				       TICK_PIX_HEIGHT);  app->button_width = TICK_PIX_WIDTH;  app->button_height = TICK_PIX_HEIGHT;  return app;}/********************************************* * Create a panel structure from an array of * * menu items                                * *********************************************/mx_panel *mx_panel_create(Display *display, mx_appearance *app,			  int n_items, mx_menu_item *mi){  mx_panel *panel;  int i, dir, asc, desc;  XCharStruct xcs;  panel = (mx_panel *)malloc(sizeof(mx_panel));  panel->app = app;  panel->width = 0;  panel->height = 0;  panel->first_item = 0;  panel->last_item = n_items - 1;  panel->n_items = n_items;  panel->item = mi;  for (i = 0; i < n_items; i++) {    mi[i].length = strlen(mi[i].text);    XTextExtents(app->font, mi[i].text, mi[i].length,		 &dir, &asc, &desc, &xcs);    if (xcs.lbearing + xcs.rbearing > panel->width)      panel->width = xcs.lbearing + xcs.rbearing;    if (asc + desc > panel->height)      panel->height = asc + desc;  }  return panel;}/************************************ * Open a window on the root window * ************************************/Window mx_window_open(Display *display, int screen, char *title,		   int WindowXSize, int WindowYSize, int WindowBorder){  Window new_window;  XSizeHints hint;				/*** Set hints for window manager ***/  hint.x = 0; hint.y = 0;  hint.width = WindowXSize; hint.height = WindowYSize;  hint.flags = PPosition|PSize;				/*** Create the top level window ***/  new_window = XCreateSimpleWindow(display, DefaultRootWindow(display),				   0, 0, WindowXSize, WindowYSize, 				   WindowBorder,				   BlackPixel(display,screen),				   WhitePixel(display,screen));				/*** Tell window manager about hints ***/  XSetStandardProperties(display, new_window, title, title, None,			 NULL, 0, &hint);				/*** Initially Select only exposure events ***/  XSelectInput(display, new_window, ExposureMask);				/*** Show the window ***/  XMapRaised(display, new_window);  return new_window;}/********************************** * Open a transient window on the * * root window                    * **********************************/Window mx_transient_window_open(Display *display, int screen, int border,			     int xpos, int ypos, int xsize, int ysize){  Window new_window;  XSetWindowAttributes xswa;  unsigned long valuemask;    valuemask = 0;  xswa.cursor = XCreateFontCursor(display, XC_left_ptr);  valuemask |= CWCursor;  xswa.background_pixel = WhitePixel(display,screen);  valuemask |= CWBackPixel;  xswa.override_redirect = True;  valuemask |= CWOverrideRedirect;				/*** Create the window ***/  new_window = XCreateWindow(display, DefaultRootWindow(display),			     xpos, ypos, xsize, ysize, border,			     CopyFromParent, InputOutput, CopyFromParent,			     valuemask, &xswa);				/*** Initially select some events ***/  XSelectInput(display, new_window,	       ExposureMask | OwnerGrabButtonMask |	       ButtonPressMask | ButtonReleaseMask |	       EnterWindowMask | LeaveWindowMask);				/*** Show the window ***/  XMapRaised(display, new_window);  return new_window;}/****************** * Close a window * ******************/void mx_window_close(Display *display, Window window){  XDestroyWindow(display, window);}/************************************* * Draw the menu items in the window * *************************************/void mx_items_draw(Display *display, Window window, mx_appearance *app,		   mx_menu_item *item, int start_item, int max_items,		   int width, int height,		   int tlx, int tly){  int i, x, dir, asc, desc;  XCharStruct xcs;  for (i = start_item; i < max_items + start_item; i++) {    XTextExtents(app->font, item[i].text, item[i].length,		 &dir, &asc, &desc, &xcs);				/* determine x position given alignment */    switch (item[i].flag & MXItemMask_Align) {    case MXItemFlag_Center:      x = (width - xcs.lbearing - xcs.rbearing) / 2;      break;    case MXItemFlag_Right:      x = width - app->item_border - (xcs.lbearing + xcs.rbearing);      break;    case MXItemFlag_Left:    default:			/* default is left alignment */      x = app->item_border;      break;    }    if (item[i].flag & MXItemFlag_Disabled) {      XSetStipple(display, app->gcd, app->stipple);      XSetFillStyle(display, app->gcd, FillStippled);      XDrawString(display, window, app->gcd,		  tlx + x, 		  tly + (i - start_item) * height + app->item_border + app->ascent,		  item[i].text, item[i].length);      XSetFillStyle(display, app->gcd, FillSolid);    }    else      XDrawString(display, window, app->gcd,		  tlx + x,		  tly + (i - start_item) * height + app->item_border + app->ascent,		  item[i].text, item[i].length);				/* possibly overline item */    if ((item[i].flag & MXItemFlag_Overlined) && (i != start_item))      XFillRectangle(display, window, app->gcd,		     0, tly + (i - start_item) * height,		     width, app->item_border);				/* possible underline item */    if ((item[i].flag & MXItemFlag_Underlined) &&	(i != max_items + start_item - 1))      XFillRectangle(display, window, app->gcd,		     0, tly + (i - start_item) * height + app->item_border + app->ascent +		     app->descent, width, app->item_border);  }}/******************************************************** * Adjust the top left coordinates 'x' and 'y' so that  * * a window positioned there with geometry 'width' and  * * 'height' will not be off the edge of the root window * ********************************************************/void mx_adjust_xy(Display *display, int width, int height, int *x, int *y){  Window root;  int root_x, root_y;  unsigned int root_w, root_h, root_border, root_depth;				/* determine size of root window */  XGetGeometry(display, DefaultRootWindow(display),	       &root, &root_x, &root_y, &root_w, &root_h,	       &root_border, &root_depth);				/* maybe adjust x coord */  if (*x + width > root_x + root_w)    *x = root_x + root_w - width;				/* maybe adjust y coord */  if (*y + height > root_y + root_h)    *y = root_y + root_h - height;}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲青青青在线视频| 韩国一区二区三区| 精品在线播放免费| 色综合久久九月婷婷色综合| 91精品国产综合久久福利| 国产欧美精品一区| 五月激情综合网| 一本大道久久a久久精二百| 精品福利一二区| 香蕉影视欧美成人| 色狠狠桃花综合| 中文字幕免费不卡| 国产一区999| 日韩精品专区在线| 亚洲不卡在线观看| 在线免费不卡视频| 中文字幕一区二区三区乱码在线 | 精品欧美一区二区久久| 亚洲码国产岛国毛片在线| 国模大尺度一区二区三区| 欧美精品 日韩| 亚洲国产精品久久人人爱| 91麻豆福利精品推荐| 国产精品理伦片| 成人午夜碰碰视频| 久久久噜噜噜久噜久久综合| 久久福利资源站| 精品国产露脸精彩对白| 久久av中文字幕片| 精品国产一区二区三区忘忧草 | 国产一区二区三区美女| 精品日韩av一区二区| 奇米色一区二区| 日韩免费观看高清完整版| 七七婷婷婷婷精品国产| 日韩一卡二卡三卡国产欧美| 日本不卡一区二区| 欧美一级在线观看| 捆绑变态av一区二区三区| 日韩免费在线观看| 国产成人精品一区二区三区网站观看| 2019国产精品| 成人午夜免费av| 亚洲欧美日韩小说| 欧美日韩在线观看一区二区 | 亚洲欧美国产毛片在线| 欧洲精品中文字幕| 日韩精品免费专区| 精品国产伦一区二区三区免费| 国产在线不卡一区| 中文字幕一区二区三区在线播放 | 伊人一区二区三区| 欧美精品少妇一区二区三区| 久久狠狠亚洲综合| 国产日本欧洲亚洲| 欧美综合一区二区| 免费观看久久久4p| 国产精品日日摸夜夜摸av| 色又黄又爽网站www久久| 亚洲成人激情自拍| 2020国产精品自拍| 91蜜桃视频在线| 日本va欧美va瓶| 国产精品久久久一区麻豆最新章节| 97se亚洲国产综合自在线观| 五月天中文字幕一区二区| 欧美v亚洲v综合ⅴ国产v| 成人免费毛片aaaaa**| 亚洲成人动漫av| 欧美激情一区二区三区在线| 精品污污网站免费看| 国产精品77777| 亚洲第一成人在线| 久久精品夜色噜噜亚洲aⅴ| 欧美在线啊v一区| 国产一区二区电影| 亚州成人在线电影| 亚洲国产精品精华液ab| 91麻豆精品91久久久久同性| 不卡视频在线看| 久久精品国产精品亚洲精品 | 国产午夜精品在线观看| 欧美日本韩国一区二区三区视频| 国产乱对白刺激视频不卡| 亚洲一区二区欧美日韩| 国产欧美日韩综合| 日韩一区和二区| 欧美中文字幕久久| 成人免费的视频| 国产伦精品一区二区三区视频青涩 | 国产美女精品人人做人人爽| 亚洲不卡在线观看| 亚洲视频在线一区观看| 国产亚洲欧美日韩日本| 日韩午夜在线播放| 欧美无砖砖区免费| 91香蕉视频污在线| 国产999精品久久久久久绿帽| 美女视频黄 久久| 午夜欧美电影在线观看| 亚洲欧洲制服丝袜| 中文字幕一区二区在线观看| 国产亚洲美州欧州综合国| 精品乱人伦一区二区三区| 欧美日韩美女一区二区| 色综合久久天天| 色婷婷av久久久久久久| 99久久er热在这里只有精品66| 国产黄人亚洲片| 国产一级精品在线| 国产精品影视网| 国产不卡在线视频| 国产精品中文字幕一区二区三区| 国内外精品视频| 国产一区二区三区免费| 国产精品综合网| 国产精品1区2区| 丁香激情综合国产| 成人午夜电影小说| 99麻豆久久久国产精品免费| 91在线你懂得| 欧美亚洲动漫制服丝袜| 欧美日韩国产另类一区| 欧美巨大另类极品videosbest | 在线观看免费成人| 欧美图片一区二区三区| 欧美欧美欧美欧美首页| 欧美一区二区网站| 久久网这里都是精品| 中文字幕av一区 二区| 国产精品丝袜在线| 亚洲男人电影天堂| 爽好多水快深点欧美视频| 免费在线看一区| 国产成人a级片| 99精品久久只有精品| 欧美日韩一级视频| 日韩免费电影一区| 国产精品三级av| 午夜亚洲福利老司机| 美国十次了思思久久精品导航| 国产精品自拍av| 色乱码一区二区三区88| 正在播放一区二区| 国产人成一区二区三区影院| 亚洲激情成人在线| 蜜臀av性久久久久av蜜臀妖精| 国产黄色91视频| 欧美日韩国产一级片| 日韩精品一区二区三区视频播放| 国产精品午夜春色av| 天天做天天摸天天爽国产一区| 国产精品一区二区在线观看网站| 一本到不卡精品视频在线观看| 91麻豆精品国产综合久久久久久| 久久精品视频在线看| 亚洲午夜电影在线| 国产凹凸在线观看一区二区| 欧美日韩国产高清一区二区三区 | 精品国产伦一区二区三区免费| 亚洲色图视频网| 韩国女主播一区| 欧美日韩一区成人| 1024亚洲合集| 国产一二精品视频| 欧美高清视频不卡网| 国产精品情趣视频| 久久精品国产久精国产| 欧美撒尿777hd撒尿| 国产精品久久午夜| 极品尤物av久久免费看| 欧美日高清视频| 一区二区三区在线观看动漫| 国产成人精品亚洲777人妖| 欧美高清dvd| 玉米视频成人免费看| 成人av先锋影音| 欧美成人r级一区二区三区| 午夜一区二区三区视频| 99re视频精品| 中文在线资源观看网站视频免费不卡 | 精品一区二区在线播放| 欧美嫩在线观看| 亚洲午夜激情av| 91福利国产成人精品照片| 国产精品护士白丝一区av| 国产精品资源在线| 精品999在线播放| 久久精品免费观看| 日韩视频一区二区三区在线播放 | 国产乱人伦精品一区二区在线观看| 91精品午夜视频| 日韩va亚洲va欧美va久久| 一本久久综合亚洲鲁鲁五月天| 中文字幕亚洲一区二区va在线| 国产精品资源网| 国产日本亚洲高清| 成人av网址在线观看| 1024亚洲合集| 色欧美乱欧美15图片|