diff gtk/dw.c @ 571:828e6a66c5c5

Add dw_listbox_list_append()
author mhessling@81767d24-ef19-dc11-ae90-00e081727c95
date Tue, 20 Jul 2004 07:36:11 +0000
parents a126f4ec9570
children e72f61a8f492
line wrap: on
line diff
--- a/gtk/dw.c	Tue Jul 20 07:31:53 2004 +0000
+++ b/gtk/dw.c	Tue Jul 20 07:36:11 2004 +0000
@@ -8646,6 +8646,65 @@
 }
 
 /*
+ * Appends the specified text items to the listbox's (or combobox) entry list.
+ * Parameters:
+ *          handle: Handle to the listbox to be appended to.
+ *          text: Text strings to append into listbox.
+ *          count: Number of text strings to append
+ */
+void dw_listbox_list_append(HWND handle, char **text, int count)
+{
+	GtkWidget *handle2 = handle;
+	int _locked_by_me = FALSE;
+
+	DW_MUTEX_LOCK;
+	if(GTK_IS_SCROLLED_WINDOW(handle))
+	{
+		GtkWidget *tmp = (GtkWidget *)gtk_object_get_user_data(GTK_OBJECT(handle));
+		if(tmp)
+			handle2 = tmp;
+	}
+	gtk_object_set_data(GTK_OBJECT(handle), "_dw_appending", (gpointer)1);
+	if(GTK_IS_LIST(handle2))
+	{
+		GtkWidget *list_item;
+		GList *tmp;
+		char *font = (char *)gtk_object_get_data(GTK_OBJECT(handle), "_dw_font");
+		GdkColor *fore = (GdkColor *)gtk_object_get_data(GTK_OBJECT(handle2), "_dw_foregdk");
+		GdkColor *back = (GdkColor *)gtk_object_get_data(GTK_OBJECT(handle2), "_dw_backgdk");
+
+		list_item=gtk_list_item_new_with_label(*text);
+
+		if(font)
+			_set_font(GTK_LIST_ITEM(list_item)->item.bin.child, font);
+		if(fore && back)
+			_set_color(GTK_LIST_ITEM(list_item)->item.bin.child,
+					   DW_RGB(fore->red, fore->green, fore->blue),
+					   DW_RGB(back->red, back->green, back->blue));
+
+		tmp  = g_list_append(NULL, list_item);
+		gtk_widget_show(list_item);
+		gtk_list_append_items(GTK_LIST(handle2),tmp);
+	}
+	else if(GTK_IS_COMBO(handle2))
+	{
+		GList *tmp = (GList *)gtk_object_get_user_data(GTK_OBJECT(handle2));
+		char *addtext;
+		int i;
+
+		for (i=0;i<count;i++)
+		{
+			addtext = strdup(text[i]);
+			tmp = g_list_append(tmp, addtext);
+		}
+		gtk_object_set_user_data(GTK_OBJECT(handle2), tmp);
+		gtk_combo_set_popdown_strings(GTK_COMBO(handle2), tmp);
+	}
+	gtk_object_set_data(GTK_OBJECT(handle), "_dw_appending", NULL);
+	DW_MUTEX_UNLOCK;
+}
+
+/*
  * Clears the listbox's (or combobox) list of all entries.
  * Parameters:
  *          handle: Handle to the listbox to be cleared.