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

📄 ex21_6.c

📁 linux 高级编程的例子源码,包括了本书上的所有代码
💻 C
字号:
/*filename:ex21_6.c*/
#include <gtk/gtk.h>

gint delete_handle(GtkWidget *widget,gpointer gdata)
{
	g_print("application quitting----\n");
	gtk_main_quit();
	return FALSE;
}
GtkWidget *create_box_from_xpm_label( GtkWidget *parent,
                          gchar     *xpm_filename,
                          gchar     *label_text )
{
    GtkWidget *box1;
    GtkWidget *label;
    GtkWidget *pixmapwid;
    GdkPixmap *pixmap;
    GdkBitmap *mask;
    GtkStyle *style;

    box1 = gtk_hbox_new (FALSE, 0);
    gtk_container_set_border_width (GTK_CONTAINER (box1), 0);

    style = gtk_widget_get_style(parent);

    pixmap = gdk_pixmap_create_from_xpm (parent->window, &mask,
					 &style->bg[GTK_STATE_NORMAL],
					 xpm_filename);
    pixmapwid = gtk_pixmap_new (pixmap, mask);

    label = gtk_label_new (label_text);

    gtk_box_pack_start (GTK_BOX (box1),
			pixmapwid, FALSE, FALSE, 3);
    gtk_box_pack_start (GTK_BOX (box1), label, FALSE, FALSE, 3);

    gtk_widget_show(pixmapwid);
    gtk_widget_show(label);
    return(box1);
}
int main (int argc, char *argv[])
{
    GtkWidget *window;    
    GtkWidget *button;
	GtkWidget *box;

    gtk_init (&argc, &argv);
    
    window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
	gtk_window_set_title(GTK_WINDOW(window),"Test Pixmap Button");
	gtk_container_border_width(GTK_CONTAINER(window),10);
	gtk_signal_connect(GTK_OBJECT(window),"delete_event",
		           GTK_SIGNAL_FUNC(delete_handle),NULL);
   
    gtk_widget_realize(window);
    button=gtk_button_new();
    gtk_container_add (GTK_CONTAINER (window), button);
    gtk_widget_show(button);

    box=create_box_from_xpm_label(window,"info.xpm","My Cool Button");
    gtk_container_add (GTK_CONTAINER (button), box);
	 gtk_widget_show(box);

    gtk_widget_show(window);    
    gtk_main ();
    
	 return 0;
} 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -