static void toolbar_actions_execute_cb (GtkWidget *widget,
gpointer data);
+static void toolbar_plugins_execute_cb (GtkWidget *widget,
+ gpointer data);
static void toolbar_send_cb (GtkWidget *widget,
{ "A_CLAWS_ACTIONS", N_("Claws Mail Actions Feature") },
{ "A_CANCEL_INC", N_("Cancel receiving") },
{ "A_CLOSE", N_("Close window") },
- { "A_SEPARATOR", N_("Separator") }
+ { "A_SEPARATOR", N_("Separator") },
+ { "A_CLAWS_PLUGINS", N_("Claws Mail Plugins") },
};
/* struct holds configuration files and a list of
{
GSList *cur;
- if ((action == A_SEPARATOR) || (action == A_CLAWS_ACTIONS))
+ if ((action == A_SEPARATOR) || (action == A_CLAWS_ACTIONS) || (action == A_CLAWS_PLUGINS))
return FALSE;
for (cur = toolbar_config[source].item_list; cur != NULL; cur = cur->next) {
if (g_utf8_collate(name, TOOLBAR_ICON_FILE) == 0)
item->file = g_strdup (value);
else if (g_utf8_collate(name, TOOLBAR_ICON_TEXT) == 0)
- item->text = g_strdup (gettext(value));
+ item->text = g_strdup (*value ? gettext(value):"");
else if (g_utf8_collate(name, TOOLBAR_ICON_ACTION) == 0)
item->index = toolbar_ret_val_from_text(value);
if (item->index == -1 && !strcmp(value, "A_DELETE")) {
toolbar_action_execute(widget, action_list, parent, toolbar_item->type);
}
+static void toolbar_plugins_execute_cb(GtkWidget *widget, gpointer data)
+{
+ ToolbarItem *toolbar_item = data;
+ prefs_toolbar_execute_plugin_item(toolbar_item->parent, toolbar_item->type, toolbar_item->text);
+}
+
static MainWindow *get_mainwin(gpointer data)
{
ToolbarItem *toolbar_item = (ToolbarItem*)data;
{ A_CHECK_SPELLING, toolbar_check_spelling_cb },
#endif
{ A_CLAWS_ACTIONS, toolbar_actions_execute_cb },
- { A_CANCEL_INC, toolbar_cancel_inc_cb }
+ { A_CANCEL_INC, toolbar_cancel_inc_cb },
+ { A_CLAWS_PLUGINS, toolbar_plugins_execute_cb },
};
num_items = sizeof(callbacks)/sizeof(callbacks[0]);
#ifndef GENERIC_UMPC
#define TOOLBAR_ITEM(item,icon,text,tooltip) { \
item = GTK_WIDGET(gtk_tool_button_new(icon, text)); \
+ gtk_widget_set_can_focus(gtk_bin_get_child(GTK_BIN(item)), FALSE); \
gtk_tool_item_set_homogeneous(GTK_TOOL_ITEM(item), FALSE); \
gtk_tool_item_set_is_important(GTK_TOOL_ITEM(item), TRUE); \
g_signal_connect (G_OBJECT(item), "clicked", G_CALLBACK(toolbar_buttons_cb), toolbar_item); \
gchild = gtk_container_get_children( \
GTK_CONTAINER(child)); \
btn = (GtkWidget *)gchild->data; \
+ gtk_widget_set_can_focus(btn, FALSE); \
arr = (GtkWidget *)(gchild->next?gchild->next->data:NULL); \
+ gtk_widget_set_can_focus(arr, FALSE); \
g_list_free(gchild); \
gchild = gtk_container_get_children(GTK_CONTAINER(arr)); \
gtk_widget_set_size_request(GTK_WIDGET(gchild->data), 9, -1); \
#else
#define TOOLBAR_ITEM(item,icon,text,tooltip) { \
item = GTK_WIDGET(gtk_tool_button_new(icon, text)); \
+ gtk_widget_set_can_focus(gtk_bin_get_child(GTK_BIN(item)), FALSE); \
gtk_tool_item_set_homogeneous(GTK_TOOL_ITEM(item), FALSE); \
gtk_tool_item_set_is_important(GTK_TOOL_ITEM(item), TRUE); \
g_signal_connect (G_OBJECT(item), "clicked", G_CALLBACK(toolbar_buttons_cb), toolbar_item); \
gchild = gtk_container_get_children( \
GTK_CONTAINER(child)); \
btn = (GtkWidget *)gchild->data; \
+ gtk_widget_set_can_focus(btn, FALSE); \
arr = (GtkWidget *)(gchild->next?gchild->next->data:NULL); \
+ gtk_widget_set_can_focus(arr, FALSE); \
g_list_free(gchild); \
gchild = gtk_container_get_children(GTK_CONTAINER(arr)); \
gtk_widget_set_size_request(GTK_WIDGET(gchild->data), 9, -1); \
TOOLBAR_ITEM(item,icon_wid,toolbar_item->text,_("Cancel receiving"));
toolbar_data->cancel_inc_btn = item;
break;
+ case A_CLAWS_PLUGINS:
+ TOOLBAR_ITEM(item,icon_wid,toolbar_item->text, toolbar_item->text);
+ break;
default:
TOOLBAR_ITEM(item,icon_wid,toolbar_item->text,
toolbar_ret_descr_from_val(toolbar_item->index));
item = GTK_WIDGET(gtk_tool_item_new());
gtk_container_add (GTK_CONTAINER (item), progressbar);
gtk_widget_show(item);
- gtk_widget_show(progressbar);
gtk_widget_set_size_request(progressbar, 70, -1);
gtk_toolbar_insert(GTK_TOOLBAR(toolbar), GTK_TOOL_ITEM(item), -1);
mainwin->progressbar = progressbar;