ex23_1.c
来自「linux 高级编程的例子源码,包括了本书上的所有代码」· C语言 代码 · 共 77 行
C
77 行
/*filename:ex23_1.c*/
#include <gtk/gtk.h>
int context_id;
GtkWidget *statusbar;
gint delete_handle(GtkWidget *widget,gpointer gdata)
{
g_print("application quitting----\n");
gtk_main_quit();
return FALSE;
}
void OnAddItem (GtkWidget *widget, gpointer data)
{
static int count = 1;
char buff[15];
g_snprintf(buff, 15, "Item %d", count++);
gtk_statusbar_push(GTK_STATUSBAR(statusbar),
GPOINTER_TO_INT(data),buff);
return;
}
void OnDeleteItem(GtkWidget *widget, gpointer data)
{
gtk_statusbar_pop(GTK_STATUSBAR(statusbar),
GPOINTER_TO_INT(data) );
return;
}
int main(int argc,char *argv[])
{
GtkWidget *window;
GtkWidget *button;
GtkWidget *box1,*box2;
gtk_init(&argc,&argv);
window=gtk_window_new(GTK_WINDOW_TOPLEVEL);
gtk_window_set_title(GTK_WINDOW(window),"Test Status Bar");
gtk_signal_connect(GTK_OBJECT(window),"delete_event",
GTK_SIGNAL_FUNC(delete_handle),NULL);
box1 = gtk_vbox_new(FALSE, 0);
gtk_container_add(GTK_CONTAINER(window),box1);
statusbar=gtk_statusbar_new();
context_id=gtk_statusbar_get_context_id(GTK_STATUSBAR(statusbar),
"StatusBar Examples");
box2=gtk_hbox_new(FALSE,0);
gtk_box_pack_start(GTK_BOX(box1),box2,TRUE,TRUE,0);
button=gtk_button_new_with_label("AddItem");
gtk_box_pack_start(GTK_BOX(box2),button,TRUE,TRUE,0);
gtk_widget_show(button);
gtk_signal_connect(GTK_OBJECT(button),"clicked",
GTK_SIGNAL_FUNC(OnAddItem),
GINT_TO_POINTER(context_id));
button=gtk_button_new_with_label("DeleteItem");
gtk_box_pack_start(GTK_BOX(box2),button,TRUE,TRUE,0);
gtk_widget_show(button);
gtk_signal_connect(GTK_OBJECT(button),"clicked",
GTK_SIGNAL_FUNC(OnDeleteItem),
GINT_TO_POINTER(context_id));
gtk_widget_show(box2);
gtk_box_pack_start(GTK_BOX(box1), statusbar, TRUE, TRUE, 0);
gtk_widget_show(statusbar);
gtk_widget_show(box1);
gtk_widget_show(window);
gtk_main();
return 0;
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?