2021-08-29 00:02:47 +08:00

47 lines
1.6 KiB
C

#include <gtk/gtk.h>
#include <glade/glade.h>
#include "list.h"
char *name1[]={"Colben","Shelly","Saferin","Ada","Obo","Kathy",NULL}; //之前
char *name2[]={"Colben","Shelly","Bather","Ada","Obo","Kathy","Jathy","Rassol","Colben","Shelly","Bather","Rassol","Colben","Shelly","Bather","Ada","Obo","Kathy",NULL}; //之后
void list_select_back(gpointer data) //双击选中回调
{
LIST *list=(LIST *)data;
gtk_label_set_text(GTK_LABEL(list->out),cgtk_list_get_select_text(list));
printf("\n>>>>>>----------%d----------<<<<<<\n",cgtk_list_get_select_num(list));
printf("\n>>>>>>----------%s----------<<<<<<\n",cgtk_list_get_select_text(list));
}
void button_refresh_list(GtkWidget *widget,gpointer data) //按钮单击回调
{
LIST *list=(LIST *)data;
cgtk_list_refresh(list,name2);
}
int main(int argc,char *argv[])
{
gtk_init(&argc,&argv);
GladeXML *gxml=glade_xml_new("test.glade",NULL,NULL);
GtkWidget *main_window=glade_xml_get_widget(gxml,"window1");
g_signal_connect(main_window,"destroy",G_CALLBACK(gtk_main_quit),NULL);
GtkWidget *fixed=glade_xml_get_widget(gxml,"fixed1");
GtkWidget *label=glade_xml_get_widget(gxml,"label1");
LIST *list=cgtk_list_new(name1,240,40,8,label); //创建列表,指针即可,无需分配空间
if(NULL == list)
{
printf("\n>>>>>> !!! Memory not enough !!! <<<<<<\n");
return -1;
}
gtk_fixed_put(GTK_FIXED(fixed),list->event_box,500,80); //把列表添加到主窗口的固定布局中
GtkWidget *button=glade_xml_get_widget(gxml,"button1");
g_signal_connect(button,"clicked",G_CALLBACK(button_refresh_list),list); //按钮信号注册
gtk_widget_show_all(main_window);
gtk_main();
return 0;
}