⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 about_message.c

📁 linux C语言写的俄罗斯方块 GTK
💻 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 + -