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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? scribble-xinput.c

?? linux下電話本所依賴的一些圖形庫
?? C
字號:
/* GTK - The GIMP Toolkit * Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald * * 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., 59 Temple Place - Suite 330, * Boston, MA 02111-1307, USA. */#include <gtk/gtk.h>/* Backing pixmap for drawing area */static GdkPixmap *pixmap = NULL;/* Create a new backing pixmap of the appropriate size */static gbooleanconfigure_event (GtkWidget *widget, GdkEventConfigure *event){  if (pixmap)     g_object_unref (pixmap);  pixmap = gdk_pixmap_new (widget->window,                           widget->allocation.width,                           widget->allocation.height,                           -1);  gdk_draw_rectangle (pixmap,                      widget->style->white_gc,                      TRUE,                      0, 0,                      widget->allocation.width,                      widget->allocation.height);  return TRUE;}/* Redraw the screen from the backing pixmap */static gbooleanexpose_event (GtkWidget *widget, GdkEventExpose *event){  gdk_draw_drawable (widget->window,                     widget->style->fg_gc[GTK_WIDGET_STATE (widget)],                     pixmap,                     event->area.x, event->area.y,                     event->area.x, event->area.y,                     event->area.width, event->area.height);  return FALSE;}/* Draw a rectangle on the screen, size depending on pressure,   and color on the type of device */static voiddraw_brush (GtkWidget *widget, GdkInputSource source,            gdouble x, gdouble y, gdouble pressure){  GdkGC *gc;  GdkRectangle update_rect;  switch (source)    {    case GDK_SOURCE_MOUSE:      gc = widget->style->dark_gc[GTK_WIDGET_STATE (widget)];      break;    case GDK_SOURCE_PEN:      gc = widget->style->black_gc;      break;    case GDK_SOURCE_ERASER:      gc = widget->style->white_gc;      break;    default:      gc = widget->style->light_gc[GTK_WIDGET_STATE (widget)];    }  update_rect.x = x - 10 * pressure;  update_rect.y = y - 10 * pressure;  update_rect.width = 20 * pressure;  update_rect.height = 20 * pressure;  gdk_draw_rectangle (pixmap, gc, TRUE,                      update_rect.x, update_rect.y,                      update_rect.width, update_rect.height);  gtk_widget_queue_draw_area (widget,                       update_rect.x, update_rect.y,                      update_rect.width, update_rect.height);}static voidprint_button_press (GdkDevice *device){  g_print ("Button press on device '%s'\n", device->name);}static gbooleanbutton_press_event (GtkWidget *widget, GdkEventButton *event){  print_button_press (event->device);    if (event->button == 1 && pixmap != NULL) {    gdouble pressure;    gdk_event_get_axis ((GdkEvent *)event, GDK_AXIS_PRESSURE, &pressure);    draw_brush (widget, event->device->source, event->x, event->y, pressure);  }  return TRUE;}static gbooleanmotion_notify_event (GtkWidget *widget, GdkEventMotion *event){  gdouble x, y;  gdouble pressure;  GdkModifierType state;  if (event->is_hint)     {      gdk_device_get_state (event->device, event->window, NULL, &state);      gdk_event_get_axis ((GdkEvent *)event, GDK_AXIS_X, &x);      gdk_event_get_axis ((GdkEvent *)event, GDK_AXIS_Y, &y);      gdk_event_get_axis ((GdkEvent *)event, GDK_AXIS_PRESSURE, &pressure);    }  else    {      x = event->x;      y = event->y;      gdk_event_get_axis ((GdkEvent *)event, GDK_AXIS_PRESSURE, &pressure);      state = event->state;    }      if (state & GDK_BUTTON1_MASK && pixmap != NULL)    draw_brush (widget, event->device->source, x, y, pressure);    return TRUE;}voidinput_dialog_destroy (GtkWidget *w, gpointer data){  *((GtkWidget **)data) = NULL;}voidcreate_input_dialog (){  static GtkWidget *inputd = NULL;  if (!inputd)    {      inputd = gtk_input_dialog_new();      g_signal_connect (G_OBJECT (inputd), "destroy",                        G_CALLBACK (input_dialog_destroy), (gpointer) &inputd);      g_signal_connect_swapped (G_OBJECT (GTK_INPUT_DIALOG (inputd)->close_button),                                "clicked",                                G_CALLBACK (gtk_widget_hide),                                G_OBJECT (inputd));      gtk_widget_hide (GTK_INPUT_DIALOG (inputd)->save_button);      gtk_widget_show (inputd);    }  else    {      if (!GTK_WIDGET_MAPPED (inputd))        gtk_widget_show (inputd);      else        gdk_window_raise (inputd->window);    }}voidintmain (int argc, char *argv[]){  GtkWidget *window;  GtkWidget *drawing_area;  GtkWidget *vbox;  GtkWidget *button;  gtk_init (&argc, &argv);  window = gtk_window_new (GTK_WINDOW_TOPLEVEL);  gtk_widget_set_name (window, "Test Input");  vbox = gtk_vbox_new (FALSE, 0);  gtk_container_add (GTK_CONTAINER (window), vbox);  gtk_widget_show (vbox);  g_signal_connect (G_OBJECT (window), "destroy",                    G_CALLBACK (gtk_main_quit), NULL);  /* Create the drawing area */  drawing_area = gtk_drawing_area_new ();  gtk_widget_set_size_request (GTK_WIDGET (drawing_area), 200, 200);  gtk_box_pack_start (GTK_BOX (vbox), drawing_area, TRUE, TRUE, 0);  gtk_widget_show (drawing_area);  /* Signals used to handle backing pixmap */  g_signal_connect (G_OBJECT (drawing_area), "expose_event",                    G_CALLBACK (expose_event), NULL);  g_signal_connect (G_OBJECT(drawing_area),"configure_event",                    G_CALLBACK (configure_event), NULL);  /* Event signals */  g_signal_connect (G_OBJECT (drawing_area), "motion_notify_event",                    G_CALLBACK (motion_notify_event), NULL);  g_signal_connect (G_OBJECT (drawing_area), "button_press_event",                    G_CALLBACK (button_press_event), NULL);  gtk_widget_set_events (drawing_area, GDK_EXPOSURE_MASK                         | GDK_LEAVE_NOTIFY_MASK                         | GDK_BUTTON_PRESS_MASK                         | GDK_POINTER_MOTION_MASK                         | GDK_POINTER_MOTION_HINT_MASK);  /* The following call enables tracking and processing of extension     events for the drawing area */  gtk_widget_set_extension_events (drawing_area, GDK_EXTENSION_EVENTS_CURSOR);  /* .. And some buttons */  button = gtk_button_new_with_label ("Input Dialog");  gtk_box_pack_start (GTK_BOX (vbox), button, FALSE, FALSE, 0);  g_signal_connect (G_OBJECT (button), "clicked",                    G_CALLBACK (create_input_dialog), NULL);  gtk_widget_show (button);  button = gtk_button_new_with_label ("Quit");  gtk_box_pack_start (GTK_BOX (vbox), button, FALSE, FALSE, 0);  g_signal_connect_swapped (G_OBJECT (button), "clicked",                            G_CALLBACK (gtk_widget_destroy),                            G_OBJECT (window));  gtk_widget_show (button);  gtk_widget_show (window);  gtk_main ();  return 0;}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美日韩在线精品一区二区三区激情 | 日韩精品一区二区在线观看| 91精品国产综合久久久久久漫画 | 精品一区二区三区在线视频| 国产a精品视频| 欧美视频一二三区| 久久综合色之久久综合| 国产精品成人在线观看| 亚洲bt欧美bt精品| 激情综合色丁香一区二区| av色综合久久天堂av综合| 欧美视频在线一区二区三区 | 岛国精品一区二区| 欧美视频一区二区在线观看| 精品久久久久久久久久久久久久久| 国产精品久久久爽爽爽麻豆色哟哟| 亚洲无线码一区二区三区| 国产一区二区h| 欧美色精品天天在线观看视频| 久久久综合视频| 亚洲综合色网站| 国产麻豆午夜三级精品| 精品视频资源站| 亚洲国产成人在线| 日韩成人免费电影| 暴力调教一区二区三区| 精品美女一区二区| 亚洲一区二区视频在线| 国产91对白在线观看九色| 欧美日韩美少妇| 日韩伦理av电影| 韩国在线一区二区| 欧美日本不卡视频| 最新成人av在线| 国产盗摄精品一区二区三区在线| 777a∨成人精品桃花网| 亚洲人成精品久久久久久| 国产精品一卡二卡| 777a∨成人精品桃花网| 一区二区成人在线视频| 成人午夜视频在线| 日韩精品一区二区三区四区| 午夜亚洲福利老司机| 99免费精品视频| 日本一区二区视频在线| 免费成人在线网站| 欧美日韩国产首页| 亚洲日本一区二区| caoporn国产精品| 久久久午夜精品| 美腿丝袜亚洲三区| 在线成人免费视频| 夜夜夜精品看看| 91在线播放网址| 国产精品久久国产精麻豆99网站| 国产自产视频一区二区三区| 制服.丝袜.亚洲.另类.中文| 亚洲一区二区影院| 一本一本大道香蕉久在线精品 | 成人av动漫网站| 国产欧美一区二区精品性| 韩国视频一区二区| 欧美变态口味重另类| 免费在线观看精品| 欧美一级生活片| 日本亚洲欧美天堂免费| 在线观看91av| 免费成人你懂的| 日韩欧美国产麻豆| 毛片一区二区三区| 精品三级av在线| 黑人精品欧美一区二区蜜桃| 欧美精品一区二区在线观看| 久久精品国产亚洲高清剧情介绍| 日韩小视频在线观看专区| 免费视频一区二区| 精品剧情在线观看| 国产一区二区三区四区五区美女| 久久综合色天天久久综合图片| 韩国成人福利片在线播放| 久久久午夜电影| 国产91精品入口| 中文字幕在线观看一区| 色综合久久88色综合天天6| 一个色妞综合视频在线观看| 欧美日韩精品欧美日韩精品| 蜜臀va亚洲va欧美va天堂| 欧美成人一区二区三区在线观看 | 中文在线免费一区三区高中清不卡| 国产suv精品一区二区6| 亚洲欧美综合色| 欧美三级日韩三级| 日本va欧美va瓶| 久久久亚洲高清| 99r精品视频| 亚洲国产三级在线| 91精品国产高清一区二区三区蜜臀| 美女视频一区二区三区| 久久一区二区视频| 99视频精品在线| 天天影视涩香欲综合网| 欧美成人免费网站| 成人综合在线观看| 一区二区三区精品视频| 91精品国产丝袜白色高跟鞋| 国产毛片精品一区| 亚洲视频在线观看一区| 欧美日韩国产一区| 免费的成人av| 中文字幕一区二| 欧美日韩视频在线第一区 | 欧美国产欧美综合| 色先锋久久av资源部| 免费黄网站欧美| 国产拍欧美日韩视频二区| 在线观看成人小视频| 精品夜夜嗨av一区二区三区| 国产精品国模大尺度视频| 欧美日韩免费在线视频| 国产一区二区女| 亚洲制服丝袜av| 久久久精品黄色| 欧美视频日韩视频| 国产在线精品不卡| 一区二区三区四区在线免费观看| 日韩欧美国产wwwww| 一本色道亚洲精品aⅴ| 精品一区二区在线免费观看| 亚洲靠逼com| 欧美精品一区二区三区很污很色的| 91在线观看下载| 免费的国产精品| 亚洲摸摸操操av| 26uuu国产在线精品一区二区| 在线观看精品一区| 国产大片一区二区| 日本欧美韩国一区三区| 最新久久zyz资源站| 欧美电影免费观看高清完整版在线| 91免费看片在线观看| 国产一区二区视频在线| 视频一区二区三区中文字幕| 国产精品国产三级国产普通话99| 日韩欧美一二三区| 色综合久久久久综合99| 国产99久久久国产精品潘金 | 精品不卡在线视频| 欧洲国产伦久久久久久久| 成人综合婷婷国产精品久久蜜臀| 日韩和欧美一区二区三区| 综合久久久久综合| 久久久久国产精品麻豆ai换脸 | 国产精品18久久久久久久久久久久| 亚洲va韩国va欧美va| 一区精品在线播放| 久久婷婷国产综合国色天香| 7777精品伊人久久久大香线蕉的| 色女孩综合影院| 波波电影院一区二区三区| 国产激情精品久久久第一区二区| 蜜臀a∨国产成人精品| 亚洲狠狠爱一区二区三区| 中文字幕色av一区二区三区| 国产三级欧美三级日产三级99| 日韩精品一区二区三区swag | 久久99精品久久只有精品| 日日噜噜夜夜狠狠视频欧美人| 亚洲日穴在线视频| 国产精品久久久久久久浪潮网站| 久久久久国产精品厨房| 精品国产乱码91久久久久久网站| 91精品国产乱码久久蜜臀| 欧美日韩久久久一区| 欧美视频中文一区二区三区在线观看| 91免费视频观看| 色婷婷一区二区三区四区| 色屁屁一区二区| 91福利在线播放| 在线影视一区二区三区| 日本韩国一区二区三区| 色欧美乱欧美15图片| 91黄色在线观看| 日韩欧美一区在线| 成人av在线电影| 国产在线日韩欧美| 麻豆成人综合网| 精品写真视频在线观看| 精品午夜久久福利影院| 精品一区二区三区欧美| 蜜臀99久久精品久久久久久软件| 日韩中文字幕区一区有砖一区 | 成人h动漫精品一区二区| 国产成人精品影院| 粉嫩13p一区二区三区| 成人激情电影免费在线观看| 成人91在线观看| 欧洲色大大久久| 56国语精品自产拍在线观看| 欧美一区二区黄| 精品日韩在线一区|