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

📄 combo3.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>typedef struct cdata {  GtkWidget *combo;  GList *cbitems;} CData;static voidGetComboEntry(GtkWidget *widget, CData *data){  char *val = (char *) NULL;  val = gtk_entry_get_text(GTK_ENTRY(GTK_COMBO(data->combo)->entry));  if ( val )    printf( "Value entered/selected is %s\n", val );}static voidAddComboEntry(GtkWidget *widget, CData *data){  char *buf, *val = (char *) NULL;  GtkWidget *item, *label, *hbox;  val = gtk_entry_get_text(GTK_ENTRY(GTK_COMBO(data->combo)->entry));  if ( val != (char *) NULL ) {    hbox = gtk_hbox_new (FALSE, 0);    gtk_widget_show (hbox);    item = gtk_list_item_new();    gtk_container_add (GTK_CONTAINER (item), hbox);    buf = (char *) malloc( strlen( val ) + 1 );    if ( buf != (char *) NULL ) {      strcpy( buf, val );      label = gtk_label_new( buf );      gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0);      gtk_combo_set_item_string(GTK_COMBO(data->combo),         GTK_ITEM(item), buf);      gtk_container_add( GTK_CONTAINER(GTK_COMBO(data->combo)->list), item);      gtk_widget_show (item);    }  }}main( int argc, char *argv[] ){  GtkWidget *dialog_window, *button;  CData data;  data.cbitems = NULL;  gtk_init( &argc, &argv );  dialog_window = gtk_dialog_new();  gtk_window_position (GTK_WINDOW (dialog_window), GTK_WIN_POS_MOUSE);  data.combo = gtk_combo_new();  data.cbitems = g_list_append(data.cbitems, "Joe's Pizza Shack" );  data.cbitems = g_list_append(data.cbitems, "Burgers And Stuff" );  data.cbitems = g_list_append(data.cbitems, "Vegetarian Delights" );  data.cbitems = g_list_append(data.cbitems, "El Taco Shop" );  gtk_combo_set_popdown_strings (GTK_COMBO (data.combo), data.cbitems);//  gtk_combo_disable_activate(data.combo);  gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dialog_window)->vbox),     data.combo, TRUE, TRUE, 0);  button = gtk_button_new_with_label ("Ok");  gtk_signal_connect (GTK_OBJECT (button), "clicked",    GTK_SIGNAL_FUNC(GetComboEntry), &data);  gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dialog_window)->action_area),    button, TRUE, TRUE, 0);  button = gtk_button_new_with_label ("Add");  gtk_signal_connect (GTK_OBJECT (button), "clicked",    GTK_SIGNAL_FUNC(AddComboEntry), &data);  gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dialog_window)->action_area),    button, TRUE, TRUE, 0);  gtk_widget_show_all (dialog_window);  gtk_main();}

⌨️ 快捷键说明

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