|
From: <kr_...@us...> - 2003-07-09 17:17:03
|
Update of /cvsroot/htoolkit/port/src/cbits/GTK
In directory sc8-pr-cvs1:/tmp/cvs-serv26039/src/cbits/GTK
Modified Files:
PopUp.c
Log Message:
bugfix: use "changed" signal from GtkEntry to determine whether the current
selection is changed.
Index: PopUp.c
===================================================================
RCS file: /cvsroot/htoolkit/port/src/cbits/GTK/PopUp.c,v
retrieving revision 1.5
retrieving revision 1.6
diff -C2 -d -r1.5 -r1.6
*** PopUp.c 29 Mar 2003 08:12:18 -0000 1.5
--- PopUp.c 9 Jul 2003 17:17:00 -0000 1.6
***************
*** 1,77 ****
! #include "PopUp.h"
! #include "Internals.h"
! #include "Handlers_stub.h"
!
! static void handleLBoxClick(GtkList *list, gpointer user_data)
! {
! handleControlCommand((GtkWidget *) user_data);
! };
!
! WindowHandle osCreatePopUp(WindowHandle window)
! {
! GtkWidget *popup;
!
! popup = gtk_combo_new();
! gtk_entry_set_editable (GTK_ENTRY(GTK_COMBO(popup)->entry), gtk_false());
! gtk_combo_set_use_arrows_always(GTK_COMBO(popup), gtk_true());
! gtk_signal_connect (GTK_OBJECT(GTK_COMBO(popup)->list), "selection-changed",
! GTK_SIGNAL_FUNC(handleLBoxClick),
! popup);
! gtk_fixed_put(GTK_FIXED(GTK_BIN(GTK_BIN(window)->child)->child), popup, 0, 0);
! gtk_widget_show(popup);
! return popup;
! };
!
! void osAppendPopUpItem(WindowHandle popup, char *title)
! {
! GtkWidget *lbox = GTK_COMBO(popup)->list;
! GtkWidget *li = gtk_list_item_new_with_label(title);
! gtk_list_append_items(GTK_LIST(lbox), g_list_append(NULL,li));
! gtk_widget_show(li);
! };
!
! void osInsertPopUpItem(WindowHandle popup, int index, char *title)
! {
! GtkWidget *lbox = GTK_COMBO(popup)->list;
! GtkWidget *li = gtk_list_item_new_with_label(title);
! gtk_list_insert_items(GTK_LIST(lbox), g_list_append(NULL,li), index);
! gtk_widget_show(li);
! };
!
! void osRemovePopUpItem(WindowHandle popup, int index)
! {
! GtkWidget *lbox = GTK_COMBO(popup)->list;
! GList *tmp_list = g_list_append(NULL, g_list_nth(GTK_LIST(lbox)->children, index)->data);
! gtk_list_remove_items (GTK_LIST(lbox),tmp_list);
! g_list_free(tmp_list);
! };
!
! void osRemoveAllPopUpItems(WindowHandle popup)
! {
! GtkWidget *lbox = GTK_COMBO(popup)->list;
! gtk_list_remove_items (GTK_LIST(lbox),GTK_LIST(lbox)->children);
! };
!
! void osGetPopUpReqSize(WindowHandle popup, int *res)
! {
! res[0] = 100;
! res[1] = 100;
! };
!
! int osGetPopUpSelection(WindowHandle popup)
! {
! GtkWidget *lbox = GTK_COMBO(popup)->list;
! if (!GTK_LIST(lbox)->selection)
! return -1;
!
! return gtk_list_child_position(GTK_LIST(lbox), (GtkWidget *) GTK_LIST(lbox)->selection->data);
! };
!
! void osSetPopUpSelection(WindowHandle popup, int index)
! {
! GtkWidget *lbox = GTK_COMBO(popup)->list;
! if (index > 0)
! gtk_list_select_item(GTK_LIST(lbox),index);
! else
! gtk_list_unselect_all(GTK_LIST(lbox));
! };
--- 1,78 ----
! #include "PopUp.h"
! #include "Internals.h"
! #include "Handlers_stub.h"
!
! static void handleLBoxClick(GtkList *list, gpointer user_data)
! {
! handleControlCommand((GtkWidget *) user_data);
! };
!
! WindowHandle osCreatePopUp(WindowHandle window)
! {
! GtkWidget *popup;
!
! popup = gtk_combo_new();
! gtk_entry_set_editable (GTK_ENTRY(GTK_COMBO(popup)->entry), gtk_false());
! gtk_combo_set_use_arrows_always(GTK_COMBO(popup), gtk_true());
! gtk_signal_connect(GTK_OBJECT(GTK_COMBO(popup)->entry),
! "changed",
! GTK_SIGNAL_FUNC(handleLBoxClick),
! popup);
! gtk_fixed_put(GTK_FIXED(GTK_BIN(GTK_BIN(window)->child)->child), popup, 0, 0);
! gtk_widget_show(popup);
! return popup;
! };
!
! void osAppendPopUpItem(WindowHandle popup, char *title)
! {
! GtkWidget *lbox = GTK_COMBO(popup)->list;
! GtkWidget *li = gtk_list_item_new_with_label(title);
! gtk_list_append_items(GTK_LIST(lbox), g_list_append(NULL,li));
! gtk_widget_show(li);
! };
!
! void osInsertPopUpItem(WindowHandle popup, int index, char *title)
! {
! GtkWidget *lbox = GTK_COMBO(popup)->list;
! GtkWidget *li = gtk_list_item_new_with_label(title);
! gtk_list_insert_items(GTK_LIST(lbox), g_list_append(NULL,li), index);
! gtk_widget_show(li);
! };
!
! void osRemovePopUpItem(WindowHandle popup, int index)
! {
! GtkWidget *lbox = GTK_COMBO(popup)->list;
! GList *tmp_list = g_list_append(NULL, g_list_nth(GTK_LIST(lbox)->children, index)->data);
! gtk_list_remove_items (GTK_LIST(lbox),tmp_list);
! g_list_free(tmp_list);
! };
!
! void osRemoveAllPopUpItems(WindowHandle popup)
! {
! GtkWidget *lbox = GTK_COMBO(popup)->list;
! gtk_list_remove_items (GTK_LIST(lbox),GTK_LIST(lbox)->children);
! };
!
! void osGetPopUpReqSize(WindowHandle popup, int *res)
! {
! res[0] = 100;
! res[1] = 100;
! };
!
! int osGetPopUpSelection(WindowHandle popup)
! {
! GtkWidget *lbox = GTK_COMBO(popup)->list;
! if (!GTK_LIST(lbox)->selection)
! return -1;
!
! return gtk_list_child_position(GTK_LIST(lbox), (GtkWidget *) GTK_LIST(lbox)->selection->data);
! };
!
! void osSetPopUpSelection(WindowHandle popup, int index)
! {
! GtkWidget *lbox = GTK_COMBO(popup)->list;
! if (index > 0)
! gtk_list_select_item(GTK_LIST(lbox),index);
! else
! gtk_list_unselect_all(GTK_LIST(lbox));
! };
|