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

📄 misc.c

📁 开发linux应用-用gtk+和gdk开发linux图形用户界面应用--的实例
💻 C
字号:
/* * Sample GUI application front end. * * Auth: Eric Harlow * */#include <gtk/gtk.h>extern GtkWidget           *win_main;extern GtkAcceleratorTable *accelerator_table;extern GtkTooltips         *tooltips;//// CreateWidgetFromXpm//// Using the window information and the string with the icon color/data, // create a widget that represents the data.  Once done, this widget can// be added to buttons or other container widgets.//GtkWidget *CreateWidgetFromXpm (GtkWidget *window, gchar **xpm_data){    GdkBitmap *mask;    GdkPixmap *pixmap_data;    GtkWidget *pixmap_widget;    pixmap_data = gdk_pixmap_create_from_xpm_d (                                 win_main->window,                                  &mask,                                 NULL,                                 (gchar **) xpm_data);    pixmap_widget = gtk_pixmap_new (pixmap_data, mask);    gtk_widget_show (pixmap_widget);    return (pixmap_widget);}//// CreateMenuItem//// Creates an item and puts it in the menu and returns the item.//// menu - container menu// szName - Name of the menu - NULL for a separator// szAccel - Acceleration string - "^C" for Control-C// szTip - Tool tips// func - Call back function// data - call back function data//// returns new menuitem//GtkWidget *CreateMenuItem (GtkWidget *menu,                            char *szName,                            char *szAccel,                           char *szTip,                            GtkSignalFunc func,                           gpointer data){    GtkWidget *menuitem;    // --- If there's a name, create the item and put a    // --- Signal handler on it.    if (szName && strlen (szName)) {        menuitem = gtk_menu_item_new_with_label (szName);        gtk_signal_connect (GTK_OBJECT (menuitem), "activate",                    GTK_SIGNAL_FUNC(func), data);    } else {        // --- Create a separator        menuitem = gtk_menu_item_new ();    }    // --- Add menu item to the menu and show it.    gtk_menu_append (GTK_MENU (menu), menuitem);    gtk_widget_show (menuitem);    // --- If there was an accelerator    if (szAccel && szAccel[0] == '^') {        gtk_widget_install_accelerator (menuitem,                                         accelerator_table,                                        "activate",                                         szAccel[1],                                         GDK_CONTROL_MASK);    }    // --- If there was a tool tip    if (szTip && strlen (szTip)) {        gtk_tooltips_set_tip (tooltips, menuitem, szTip, NULL);    }    return (menuitem);}//// CreateMenuCheck//// Create a menu checkbox//// menu - container menu// szName - name of the menu// func - Call back function.// data - call back function data//// returns new menuitem// GtkWidget *CreateMenuCheck (GtkWidget *menu,                             char *szName,                             GtkSignalFunc func,                             gpointer data){    GtkWidget *menuitem;    // --- Create menu item    menuitem = gtk_check_menu_item_new_with_label (szName);    // --- Add it to the menu    gtk_menu_append (GTK_MENU (menu), menuitem);    gtk_widget_show (menuitem);    // --- Listen for "toggled" messages    gtk_signal_connect (GTK_OBJECT (menuitem), "toggled",                        GTK_SIGNAL_FUNC(func), data);    return (menuitem);}//// CreateSubMenu//// Create a submenu off the menubar.//// menubar - obviously, the menu bar.// szName - Label given to the new submenu//// returns new menu widget//GtkWidget *CreateSubMenu (GtkWidget *menubar, char *szName){    GtkWidget *menuitem;    GtkWidget *menu;     // --- Create menu    menuitem = gtk_menu_item_new_with_label (szName);    // --- Add it to the menubar    gtk_widget_show (menuitem);    gtk_menu_append (GTK_MENU (menubar), menuitem);    // --- Get a menu and attach to the menuitem    menu = gtk_menu_new ();    gtk_menu_item_set_submenu (GTK_MENU_ITEM (menuitem), menu);    // --- Viola!    return (menu);}//// CreateBarSubMenu//// Create a submenu within an existing submenu.  (In other words, it's not// the menubar.)//// menu - existing submenu// szName - label to be given to the new submenu off of this submenu//// returns new menu widget // GtkWidget *CreateBarSubMenu (GtkWidget *menu, char *szName){    GtkWidget *menuitem;    GtkWidget *submenu;     // --- Create menu    menuitem = gtk_menu_item_new_with_label (szName);    // --- Add it to the menubar    gtk_menu_bar_append (GTK_MENU_BAR (menu), menuitem);    gtk_widget_show (menuitem);    // --- Get a menu and attach to the menuitem    submenu = gtk_menu_new ();    gtk_menu_item_set_submenu (GTK_MENU_ITEM (menuitem), submenu);    // --- Viola!    return (submenu);}

⌨️ 快捷键说明

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