#include <gtk/gtkwidget.h>
#include <gtk/gtkcombobox.h>
+enum {
+ COMBOBOX_TEXT,
+ COMBOBOX_DATA,
+ COMBOBOX_SENS
+};
+
+
#define COMBOBOX_ADD(menu, label, data) \
{ \
gtk_list_store_append(menu, &iter); \
gtk_list_store_set(menu, &iter, \
- 0, (label ? label : ""), \
- 1, data, \
+ COMBOBOX_TEXT, (label ? label : ""), \
+ COMBOBOX_DATA, data, \
+ COMBOBOX_SENS, TRUE, \
-1); \
}
gchar *tmp_esc = g_markup_printf_escaped("%s", label); \
gtk_list_store_append(menu, &iter); \
gtk_list_store_set(menu, &iter, \
- 0, (tmp_esc ? tmp_esc : ""), \
- 1, data, \
+ COMBOBOX_TEXT, (tmp_esc ? tmp_esc : ""), \
+ COMBOBOX_DATA, data, \
+ COMBOBOX_SENS, TRUE, \
-1); \
g_free(tmp_esc); \
}
#include "manage_window.h"
#include "base64.h"
#include "manual.h"
+#include "combobox.h"
gboolean gtkut_get_font_size(GtkWidget *widget,
gint *width, gint *height)
GtkListStore *menu;
GtkCellRenderer *rend;
- menu = gtk_list_store_new(2, G_TYPE_STRING, G_TYPE_INT);
+ menu = gtk_list_store_new(3, G_TYPE_STRING, G_TYPE_INT, G_TYPE_BOOLEAN);
combobox = gtk_combo_box_new_with_model(GTK_TREE_MODEL(menu));
rend = gtk_cell_renderer_text_new();
gtk_cell_layout_pack_start(GTK_CELL_LAYOUT(combobox), rend, TRUE);
gtk_cell_layout_set_attributes(GTK_CELL_LAYOUT(combobox), rend,
- "markup", 0,
+ "markup", COMBOBOX_TEXT,
+ "sensitive", COMBOBOX_SENS,
NULL);
if( eventbox != NULL )
GtkWidget *vbox3;
GtkWidget *smtp_auth_checkbtn;
GtkWidget *optmenu;
- GtkWidget *optmenu_menu;
- GtkWidget *menuitem;
+ GtkListStore *menu;
+ GtkTreeIter iter;
GtkWidget *vbox4;
GtkWidget *hbox_spc;
GtkWidget *label;
gtk_widget_show (label);
gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, FALSE, 0);
- optmenu = gtk_option_menu_new ();
+ optmenu = gtkut_sc_combobox_create(NULL, FALSE);
+ menu = GTK_LIST_STORE(gtk_combo_box_get_model(GTK_COMBO_BOX(optmenu)));
gtk_widget_show (optmenu);
gtk_box_pack_start (GTK_BOX (hbox), optmenu, FALSE, FALSE, 0);
- optmenu_menu = gtk_menu_new ();
-
- MENUITEM_ADD (optmenu_menu, menuitem, _("Automatic"), 0);
- MENUITEM_ADD (optmenu_menu, menuitem, "PLAIN", SMTPAUTH_PLAIN);
- MENUITEM_ADD (optmenu_menu, menuitem, "LOGIN", SMTPAUTH_LOGIN);
- MENUITEM_ADD (optmenu_menu, menuitem, "CRAM-MD5", SMTPAUTH_CRAM_MD5);
- MENUITEM_ADD (optmenu_menu, menuitem, "DIGEST-MD5", SMTPAUTH_DIGEST_MD5);
- gtk_widget_set_sensitive (menuitem, FALSE);
-
- gtk_option_menu_set_menu (GTK_OPTION_MENU (optmenu), optmenu_menu);
+ COMBOBOX_ADD (menu, _("Automatic"), 0);
+ COMBOBOX_ADD (menu, "PLAIN", SMTPAUTH_PLAIN);
+ COMBOBOX_ADD (menu, "LOGIN", SMTPAUTH_LOGIN);
+ COMBOBOX_ADD (menu, "CRAM-MD5", SMTPAUTH_CRAM_MD5);
+ COMBOBOX_ADD (menu, "DIGEST-MD5", SMTPAUTH_DIGEST_MD5);
+ gtk_list_store_set(menu, &iter, COMBOBOX_SENS, FALSE, -1);
PACK_VSPACER(vbox4, vbox_spc, VSPACING_NARROW_2);
static void prefs_account_smtp_auth_type_set_data_from_optmenu(PrefParam *pparam)
{
- GtkWidget *menu;
- GtkWidget *menuitem;
-
- menu = gtk_option_menu_get_menu(GTK_OPTION_MENU(*pparam->widget));
- menuitem = gtk_menu_get_active(GTK_MENU(menu));
- *((RecvProtocol *)pparam->data) = GPOINTER_TO_INT
- (g_object_get_data(G_OBJECT(menuitem), MENU_VAL_ID));
+ *((RecvProtocol *)pparam->data) =
+ combobox_get_active_data(GTK_COMBO_BOX(*pparam->widget));
}
static void prefs_account_smtp_auth_type_set_optmenu(PrefParam *pparam)
{
SMTPAuthType type = *((SMTPAuthType *)pparam->data);
- GtkOptionMenu *optmenu = GTK_OPTION_MENU(*pparam->widget);
- GtkWidget *menu;
- GtkWidget *menuitem;
-
- switch (type) {
- case SMTPAUTH_PLAIN:
- gtk_option_menu_set_history(optmenu, 1);
- break;
- case SMTPAUTH_LOGIN:
- gtk_option_menu_set_history(optmenu, 2);
- break;
- case SMTPAUTH_CRAM_MD5:
- gtk_option_menu_set_history(optmenu, 3);
- break;
- case SMTPAUTH_DIGEST_MD5:
- gtk_option_menu_set_history(optmenu, 4);
- break;
- case 0:
- default:
- gtk_option_menu_set_history(optmenu, 0);
- }
+ GtkComboBox *optmenu = GTK_COMBO_BOX(*pparam->widget);
- menu = gtk_option_menu_get_menu(optmenu);
- menuitem = gtk_menu_get_active(GTK_MENU(menu));
- gtk_menu_item_activate(GTK_MENU_ITEM(menuitem));
+ combobox_select_by_data(optmenu, type);
}
static void prefs_account_set_string_from_optmenu(PrefParam *pparam)