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

📄 ex23_1.c

📁 linux 高级编程的例子源码,包括了本书上的所有代码
💻 C
字号:
/*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 + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -