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

📄 notebook.c

📁 这些GTK+程序都是基于常用的API来实现熟悉这些API为目的
💻 C
字号:
/* * * Sample Code for Gtk+ Programming in C, 1st Edition, Prentice Hall * * Copyright 2000 - 2002 Syd Logan, All Rights Reserved * * This code is distributed without warranty. You are free to use this * code for any purpose, however, if this code is republished or * redistributed in its original form, as hardcopy or electronically, * then you must include this copyright notice along with the code. * * Questions or comments regarding this code or any bugs it contains can * be directed to the author via e-mail at slogan@cts.com **/#include <gtk/gtk.h>static GtkWidget *notebook;// function to create a new pixmapstatic GtkWidget *new_pixmap (char *file, GdkWindow *window, GdkColor *background){  GdkPixmap *pmap;  GdkBitmap *mask;  GtkWidget *wpmap;  pmap = gdk_pixmap_create_from_xpm(window, &mask, background, file);  wpmap = gtk_pixmap_new(pmap, mask);  gtk_pixmap_set_build_insensitive(GTK_PIXMAP(wpmap), 1);  return( wpmap );}// ensure the popup is disabled before exiting main loop to avoid warningsvoidCloseDown( GtkWidget *widget, gpointer unused ){	// disable the popup menu	gtk_notebook_popup_disable( GTK_NOTEBOOK( notebook ) );	gtk_main_quit();}int main( int argc, char *argv[] ){ 	GtkWidget *tab_label, *pixmap, *window, *hbox, *vbox, 		*hbox_menu, *label; 	gtk_init(&argc, &argv);	// create a window  	window = gtk_window_new(GTK_WINDOW_TOPLEVEL); 	gtk_signal_connect(GTK_OBJECT(window), "destroy",   	GTK_SIGNAL_FUNC (CloseDown), "WM destroy"); 	gtk_window_set_title(GTK_WINDOW(window), "Notebook"); 	gtk_widget_set_usize(GTK_WIDGET(window), 250, 100); 	gtk_widget_show(window);	// create a notebook and add it to the window	notebook = gtk_notebook_new();	gtk_notebook_popup_enable( GTK_NOTEBOOK( notebook ) );		gtk_notebook_set_tab_border( GTK_NOTEBOOK( notebook ), 2 );	gtk_notebook_set_homogeneous_tabs( GTK_NOTEBOOK( notebook ), TRUE ); 	gtk_container_add(GTK_CONTAINER (window), notebook); 	gtk_widget_show( notebook );	// create first panel. vbox is the panel content	vbox = gtk_vbox_new( FALSE, 10 );	gtk_widget_show( vbox );	// add a label to the vbox, this is what the panel displays, and	// the user sees	label = gtk_label_new( "Panel 1" );	gtk_box_pack_start_defaults( GTK_BOX( vbox ), label );	gtk_widget_show( label );	// create the panel tab content, which will be a pixmap and label	// managed by a horizontal box widget. First create the pixmap.	pixmap = new_pixmap("test1.xpm", window->window,    &window->style->bg[GTK_STATE_NORMAL]);	gtk_widget_show( pixmap );	// then create the label	tab_label = gtk_label_new( "Panel 1" );	gtk_widget_show( tab_label );	// pack both of these into the horiontal box	hbox = gtk_hbox_new( FALSE, 10 );	gtk_box_pack_start_defaults( GTK_BOX( hbox ), pixmap );	gtk_box_pack_start_defaults( GTK_BOX( hbox ), tab_label );	// next create the menu item. This also consists of an image and	// label packed into a horizontal box. We must create new instances	// of each (the image, the box, and the label) since any given	// widget can only be managed by one parent	pixmap = new_pixmap("test1.xpm", window->window,    &window->style->bg[GTK_STATE_NORMAL]);	gtk_widget_show( pixmap );	tab_label = gtk_label_new( "Panel 1" );	gtk_widget_show( tab_label );	hbox_menu = gtk_hbox_new( FALSE, 10 );	gtk_box_pack_start_defaults( GTK_BOX( hbox_menu ), pixmap );	gtk_box_pack_start_defaults( GTK_BOX( hbox_menu ), tab_label );	// now that we have the panel content, the tab label, and the	// popup menu item, call gtk_notebook_append_page_menu() to	// add all three to the notebook.	gtk_notebook_append_page_menu( GTK_NOTEBOOK( notebook ), 		vbox, hbox, hbox_menu ); 	// repeat the above steps for panels 2 and 3. First, panel 2.	vbox = gtk_vbox_new( FALSE, 10 );	gtk_widget_show( vbox );	label = gtk_label_new( "Panel 2" );	gtk_box_pack_start_defaults( GTK_BOX( vbox ), label );	gtk_widget_show( label );	pixmap = new_pixmap("test2.xpm", window->window,    &window->style->bg[GTK_STATE_NORMAL]);	gtk_widget_show( pixmap );	tab_label = gtk_label_new( "Panel 2" );	gtk_widget_show( tab_label );	hbox = gtk_hbox_new( FALSE, 10 );	gtk_box_pack_start_defaults( GTK_BOX( hbox ), pixmap );	gtk_box_pack_start_defaults( GTK_BOX( hbox ), tab_label );	pixmap = new_pixmap("test2.xpm", window->window,    &window->style->bg[GTK_STATE_NORMAL]);	gtk_widget_show( pixmap );	tab_label = gtk_label_new( "Panel 2" );	gtk_widget_show( tab_label );	hbox_menu = gtk_hbox_new( FALSE, 10 );	gtk_box_pack_start_defaults( GTK_BOX( hbox_menu ), pixmap );	gtk_box_pack_start_defaults( GTK_BOX( hbox_menu ), tab_label );	gtk_notebook_append_page_menu( GTK_NOTEBOOK( notebook ), 		vbox, hbox, hbox_menu ); 	// finally, do panel 3	vbox = gtk_vbox_new( FALSE, 10 );	gtk_widget_show( vbox );	label = gtk_label_new( "Panel 3" );	gtk_box_pack_start_defaults( GTK_BOX( vbox ), label );	gtk_widget_show( label );	pixmap = new_pixmap("test3.xpm", window->window,    &window->style->bg[GTK_STATE_NORMAL]);	gtk_widget_show( pixmap );	tab_label = gtk_label_new( "Panel 3" );	gtk_widget_show( tab_label );	hbox = gtk_hbox_new( FALSE, 10 );	gtk_box_pack_start_defaults( GTK_BOX( hbox ), pixmap );	gtk_box_pack_start_defaults( GTK_BOX( hbox ), tab_label );	pixmap = new_pixmap("test3.xpm", window->window,    &window->style->bg[GTK_STATE_NORMAL]);	gtk_widget_show( pixmap );	tab_label = gtk_label_new( "Panel 3" );	gtk_widget_show( tab_label );	hbox_menu = gtk_hbox_new( FALSE, 10 );	gtk_box_pack_start_defaults( GTK_BOX( hbox_menu ), pixmap );	gtk_box_pack_start_defaults( GTK_BOX( hbox_menu ), tab_label );	gtk_notebook_append_page_menu( GTK_NOTEBOOK( notebook ), 		vbox, hbox, hbox_menu ); 	gtk_notebook_set_tab_label_packing( GTK_NOTEBOOK(notebook), vbox,		TRUE, FALSE, GTK_PACK_START ); 	gtk_main ();  	return(0);}

⌨️ 快捷键说明

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