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

📄 notebook.c

📁 linux下电话本所依赖的一些图形库
💻 C
字号:
#include <stdio.h>#include <gtk/gtk.h>/* This function rotates the position of the tabs */static void rotate_book( GtkButton   *button,                         GtkNotebook *notebook ){    gtk_notebook_set_tab_pos (notebook, (notebook->tab_pos + 1) % 4);}/* Add/Remove the page tabs and the borders */static void tabsborder_book( GtkButton   *button,                             GtkNotebook *notebook ){    gint tval = FALSE;    gint bval = FALSE;    if (notebook->show_tabs == 0)	    tval = TRUE;     if (notebook->show_border == 0)	    bval = TRUE;        gtk_notebook_set_show_tabs (notebook, tval);    gtk_notebook_set_show_border (notebook, bval);}/* Remove a page from the notebook */static void remove_book( GtkButton   *button,                         GtkNotebook *notebook ){    gint page;        page = gtk_notebook_get_current_page (notebook);    gtk_notebook_remove_page (notebook, page);    /* Need to refresh the widget --      This forces the widget to redraw itself. */    gtk_widget_queue_draw (GTK_WIDGET (notebook));}static gboolean delete( GtkWidget *widget,                        GtkWidget *event,                        gpointer   data ){    gtk_main_quit ();    return FALSE;}int main( int argc,          char *argv[] ){    GtkWidget *window;    GtkWidget *button;    GtkWidget *table;    GtkWidget *notebook;    GtkWidget *frame;    GtkWidget *label;    GtkWidget *checkbutton;    int i;    char bufferf[32];    char bufferl[32];        gtk_init (&argc, &argv);        window = gtk_window_new (GTK_WINDOW_TOPLEVEL);        g_signal_connect (G_OBJECT (window), "delete_event",	              G_CALLBACK (delete), NULL);        gtk_container_set_border_width (GTK_CONTAINER (window), 10);    table = gtk_table_new (3, 6, FALSE);    gtk_container_add (GTK_CONTAINER (window), table);        /* Create a new notebook, place the position of the tabs */    notebook = gtk_notebook_new ();    gtk_notebook_set_tab_pos (GTK_NOTEBOOK (notebook), GTK_POS_TOP);    gtk_table_attach_defaults (GTK_TABLE (table), notebook, 0, 6, 0, 1);    gtk_widget_show (notebook);        /* Let's append a bunch of pages to the notebook */    for (i = 0; i < 5; i++) {	sprintf(bufferf, "Append Frame %d", i + 1);	sprintf(bufferl, "Page %d", i + 1);		frame = gtk_frame_new (bufferf);	gtk_container_set_border_width (GTK_CONTAINER (frame), 10);	gtk_widget_set_size_request (frame, 100, 75);	gtk_widget_show (frame);		label = gtk_label_new (bufferf);	gtk_container_add (GTK_CONTAINER (frame), label);	gtk_widget_show (label);		label = gtk_label_new (bufferl);	gtk_notebook_append_page (GTK_NOTEBOOK (notebook), frame, label);    }          /* Now let's add a page to a specific spot */    checkbutton = gtk_check_button_new_with_label ("Check me please!");    gtk_widget_set_size_request (checkbutton, 100, 75);    gtk_widget_show (checkbutton);       label = gtk_label_new ("Add page");    gtk_notebook_insert_page (GTK_NOTEBOOK (notebook), checkbutton, label, 2);        /* Now finally let's prepend pages to the notebook */    for (i = 0; i < 5; i++) {	sprintf (bufferf, "Prepend Frame %d", i + 1);	sprintf (bufferl, "PPage %d", i + 1);		frame = gtk_frame_new (bufferf);	gtk_container_set_border_width (GTK_CONTAINER (frame), 10);	gtk_widget_set_size_request (frame, 100, 75);	gtk_widget_show (frame);		label = gtk_label_new (bufferf);	gtk_container_add (GTK_CONTAINER (frame), label);	gtk_widget_show (label);		label = gtk_label_new (bufferl);	gtk_notebook_prepend_page (GTK_NOTEBOOK (notebook), frame, label);    }        /* Set what page to start at (page 4) */    gtk_notebook_set_current_page (GTK_NOTEBOOK (notebook), 3);    /* Create a bunch of buttons */    button = gtk_button_new_with_label ("close");    g_signal_connect_swapped (G_OBJECT (button), "clicked",			      G_CALLBACK (delete), NULL);    gtk_table_attach_defaults (GTK_TABLE (table), button, 0, 1, 1, 2);    gtk_widget_show (button);        button = gtk_button_new_with_label ("next page");    g_signal_connect_swapped (G_OBJECT (button), "clicked",			      G_CALLBACK (gtk_notebook_next_page),			      G_OBJECT (notebook));    gtk_table_attach_defaults (GTK_TABLE (table), button, 1, 2, 1, 2);    gtk_widget_show (button);        button = gtk_button_new_with_label ("prev page");    g_signal_connect_swapped (G_OBJECT (button), "clicked",			      G_CALLBACK (gtk_notebook_prev_page),			      G_OBJECT (notebook));    gtk_table_attach_defaults (GTK_TABLE (table), button, 2, 3, 1, 2);    gtk_widget_show (button);        button = gtk_button_new_with_label ("tab position");    g_signal_connect (G_OBJECT (button), "clicked",                      G_CALLBACK (rotate_book),	              (gpointer) notebook);    gtk_table_attach_defaults (GTK_TABLE (table), button, 3, 4, 1, 2);    gtk_widget_show (button);        button = gtk_button_new_with_label ("tabs/border on/off");    g_signal_connect (G_OBJECT (button), "clicked",                      G_CALLBACK (tabsborder_book),                      (gpointer) notebook);    gtk_table_attach_defaults (GTK_TABLE (table), button, 4, 5, 1, 2);    gtk_widget_show (button);        button = gtk_button_new_with_label ("remove page");    g_signal_connect (G_OBJECT (button), "clicked",                      G_CALLBACK (remove_book),                      (gpointer) notebook);    gtk_table_attach_defaults (GTK_TABLE (table), button, 5, 6, 1, 2);    gtk_widget_show (button);        gtk_widget_show (table);    gtk_widget_show (window);        gtk_main ();        return 0;}

⌨️ 快捷键说明

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