📄 about_message.c
字号:
#include<gtk/gtk.h>#include"about_message.h"extern GdkPixbuf* image;static MsgDInfo _drawinfo;static MsgDInfo* drawinfo=&_drawinfo;static gbooleanmsg_configure(GtkWidget* widget, gpointer data){ GtkWidget* pixmap; drawinfo->gc=gdk_gc_new(widget->window); drawinfo->pixmap=gdk_pixmap_new(widget->window, 330,180,-1); pixmap=gdk_pixmap_new(widget->window, gdk_pixbuf_get_width(image), gdk_pixbuf_get_height(image), -1); gdk_pixbuf_render_to_drawable(image, pixmap, drawinfo->gc, 0,0,0,0, gdk_pixbuf_get_width(image), gdk_pixbuf_get_height(image), GDK_RGB_DITHER_NORMAL, 0,0); gdk_draw_rectangle(drawinfo->pixmap, drawinfo->gc, TRUE,0,0, 330, 180); gdk_draw_drawable(drawinfo->pixmap, drawinfo->gc, pixmap, 30,0,120,30, 30,30); gdk_draw_drawable(drawinfo->pixmap, drawinfo->gc, pixmap, 30,0,150,30, 30,30); gdk_draw_drawable(drawinfo->pixmap, drawinfo->gc, pixmap, 30,0,180,30, 30,30); gdk_draw_drawable(drawinfo->pixmap, drawinfo->gc, pixmap, 30,0,180,60, 30,30); gdk_draw_drawable(drawinfo->pixmap, drawinfo->gc, pixmap, 60,0,150,90, 30,30); gdk_draw_drawable(drawinfo->pixmap, drawinfo->gc, pixmap, 60,0,180,120, 30,30); gdk_draw_drawable(drawinfo->pixmap, drawinfo->gc, pixmap, 60,0,150,120, 30,30); gdk_draw_drawable(drawinfo->pixmap, drawinfo->gc, pixmap, 60,0,120,120, 30,30); gtk_widget_queue_draw(widget); return TRUE;}static gbooleanmsg_expose(GtkWidget* widget, gpointer data){ gdk_draw_drawable(widget->window, drawinfo->gc, drawinfo->pixmap, 0,0,0,0, widget->allocation.width, widget->allocation.height); return TRUE;}voidshow_about_message(GtkWidget* widget, gpointer data){ GtkWidget* dialog; GtkWidget* label; GtkWidget* canvas; GtkWidget* pixbuf; dialog=gtk_dialog_new_with_buttons("About message", GTK_WINDOW(data), GTK_DIALOG_DESTROY_WITH_PARENT, GTK_STOCK_OK, GTK_RESPONSE_NONE, NULL); canvas=gtk_drawing_area_new(); gtk_drawing_area_size(GTK_DRAWING_AREA(canvas), 330,180); gtk_signal_connect(GTK_OBJECT(canvas), "configure_event", GTK_SIGNAL_FUNC(msg_configure), drawinfo); gtk_signal_connect(GTK_OBJECT(canvas), "expose_event", GTK_SIGNAL_FUNC(msg_expose), drawinfo); gtk_container_add(GTK_CONTAINER(GTK_DIALOG(dialog)->vbox), canvas); label=gtk_label_new("\n Writen by LiXujia.\n \This is a interesting game, I writen it while\n I was \ learning GTK+. So it may inclued many\n bugs, anyone\ has suggestion, send a Email to:\n apmlove@gmail.com.\n"); /* Ensure that the dialog box is destroyed when the user responds. */ g_signal_connect_swapped(dialog, "response", G_CALLBACK(gtk_widget_destroy), dialog); gtk_container_add(GTK_CONTAINER(GTK_DIALOG(dialog)->vbox), label); gtk_widget_show_all (dialog);}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -