#include <stdarg.h>
#include <sys/stat.h>
+#include "combobox.h"
+
#if HAVE_LIBCOMPFACE
# include <compface.h>
#endif
}
GtkWidget *gtkut_account_menu_new(GList *ac_list,
- GCallback callback,
- gpointer data)
+ GCallback callback,
+ gpointer data)
{
GList *cur_ac;
- GtkWidget *menu;
+ GtkWidget *optmenu;
+ GtkListStore *menu;
+ GtkTreeIter iter;
+ PrefsAccount *account;
+ gchar *name;
g_return_val_if_fail(ac_list != NULL, NULL);
- menu = gtk_menu_new();
+ optmenu = gtkut_sc_combobox_create(NULL, FALSE);
+ menu = GTK_LIST_STORE(gtk_combo_box_get_model(GTK_COMBO_BOX(optmenu)));
for (cur_ac = ac_list; cur_ac != NULL; cur_ac = cur_ac->next) {
- gchar *name;
- GtkWidget *menuitem;
- PrefsAccount *account;
-
account = (PrefsAccount *) cur_ac->data;
if (account->name)
name = g_strdup_printf("%s: %s <%s>",
name = g_strdup_printf("%s: %s",
account->account_name,
account->address);
- MENUITEM_ADD(menu, menuitem, name, account->account_id);
+ COMBOBOX_ADD_ESCAPED(menu, name, account->account_id);
g_free(name);
- if (callback != NULL)
- g_signal_connect(G_OBJECT(menuitem), "activate",
- callback, data);
}
- return menu;
+ gtk_combo_box_set_active(GTK_COMBO_BOX(optmenu), 0);
+
+ if( callback != NULL )
+ g_signal_connect(G_OBJECT(optmenu), "changed", callback, data);
+
+ return optmenu;
}
void gtkut_set_widget_bgcolor_rgb(GtkWidget *widget, guint rgbvalue)
pixmap = gdk_pixmap_create_from_xpm_d
(window, &mask,
background, xpm_xface);
- return gtk_image_new_from_pixmap(pixmap, mask);
+ return gtk_image_new_from_pixbuf(
+ gdk_pixbuf_new_from_xpm_data((const char **)xpm_xface));
}
#endif
return btn;
}
+static gboolean _combobox_separator_func(GtkTreeModel *model,
+ GtkTreeIter *iter, gpointer data)
+{
+ gchar *txt = NULL;
+
+ g_return_val_if_fail(model != NULL, FALSE);
+
+ gtk_tree_model_get(model, iter, COMBOBOX_TEXT, &txt, -1);
+
+ if( txt == NULL )
+ return TRUE;
+ return FALSE;
+}
+
GtkWidget *gtkut_sc_combobox_create(GtkWidget *eventbox, gboolean focus_on_click)
{
GtkWidget *combobox;
#if GTK_CHECK_VERSION(2,6,0)
gtk_combo_box_set_focus_on_click(GTK_COMBO_BOX(combobox), focus_on_click);
#endif
+
+ gtk_combo_box_set_row_separator_func(GTK_COMBO_BOX(combobox),
+ (GtkTreeViewRowSeparatorFunc)_combobox_separator_func, NULL, NULL);
+
return combobox;
}
return gtk_tree_model_iter_nth_child(model, iter, NULL, count - 1);
}
-#ifdef MAEMO
-HildonWindow *gtkut_window_new (GtkWindowType type,
- const gchar *class)
-{
- HildonWindow *window = HILDON_WINDOW(hildon_window_new());
- gtk_window_set_role(GTK_WINDOW(window), class);
- hildon_program_add_window(hildon_program(), window);
- return window;
-}
-#else
GtkWidget *gtkut_window_new (GtkWindowType type,
const gchar *class)
{
+#ifndef MAEMO
GtkWidget *window = gtk_window_new(type);
+#else
+ GtkWidget *window = hildon_window_new();
+ hildon_program_add_window(hildon_program, HILDON_WINDOW(window));
+#endif
gtk_window_set_role(GTK_WINDOW(window), class);
return window;
}
-#endif
gboolean gtkut_tree_iter_comp(GtkTreeModel *model,
GtkTreeIter *iter1,