/*
* Sylpheed -- a GTK+ based, lightweight, and fast e-mail client
- * Copyright (C) 1999-2009 Hiroyuki Yamamoto and the Claws Mail team
+ * Copyright (C) 1999-2011 Hiroyuki Yamamoto and the Claws Mail team
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
#include "expldifdlg.h"
#include "browseldap.h"
#include "addrcustomattr.h"
-
+#ifdef G_OS_WIN32
+#undef interface
+#endif
typedef enum
{
COL_SOURCES = 0,
static void addressbook_create (void);
static gint addressbook_close (void);
-static void addressbook_button_set_sensitive (void);
static gboolean address_index_has_focus = FALSE;
static gboolean address_list_has_focus = FALSE;
void addressbook_set_target_compose(Compose *target)
{
addrbook.target_compose = target;
- addressbook_button_set_sensitive();
}
Compose *addressbook_get_target_compose(void)
static gboolean key_pressed(GtkWidget *widget, GdkEventKey *event, gpointer data)
{
- if (event && event->keyval == GDK_Escape)
+ if (event && event->keyval == GDK_KEY_Escape)
addressbook_close();
- else if (event && event->keyval == GDK_Delete) {
+ else if (event && event->keyval == GDK_KEY_Delete) {
/* TODO: enable deletion when focus is in ctree (needs implementation in _del_clicked() */
if ( /* address_index_has_focus || */ address_list_has_focus )
addressbook_del_clicked(NULL, NULL);
/* Address index */
ctree = gtk_sctree_new_with_titles(N_INDEX_COLS, 0, index_titles);
- GTK_WIDGET_UNSET_FLAGS(GTK_CMCLIST(ctree)->column[0].button,
- GTK_CAN_FOCUS);
+ gtkut_widget_set_can_focus(GTK_CMCLIST(ctree)->column[0].button, FALSE);
gtk_container_add(GTK_CONTAINER(ctree_swin), ctree);
gtk_cmclist_set_selection_mode(GTK_CMCLIST(ctree), GTK_SELECTION_BROWSE);
gtk_cmclist_set_column_width(GTK_CMCLIST(ctree), 0, COL_FOLDER_WIDTH);
- if (prefs_common.enable_dotted_lines) {
- gtk_cmctree_set_line_style(GTK_CMCTREE(ctree), GTK_CMCTREE_LINES_DOTTED);
- gtk_cmctree_set_expander_style(GTK_CMCTREE(ctree),
- GTK_CMCTREE_EXPANDER_SQUARE);
- } else {
- gtk_cmctree_set_line_style(GTK_CMCTREE(ctree), GTK_CMCTREE_LINES_NONE);
- gtk_cmctree_set_expander_style(GTK_CMCTREE(ctree),
- GTK_CMCTREE_EXPANDER_TRIANGLE);
- }
+ gtk_cmctree_set_line_style(GTK_CMCTREE(ctree), GTK_CMCTREE_LINES_NONE);
+ gtk_cmctree_set_expander_style(GTK_CMCTREE(ctree),
+ GTK_CMCTREE_EXPANDER_TRIANGLE);
gtk_sctree_set_stripes(GTK_SCTREE(ctree), prefs_common.use_stripes_in_summaries);
gtk_cmctree_set_indent(GTK_CMCTREE(ctree), CTREE_INDENT);
gtk_cmclist_set_compare_func(GTK_CMCLIST(ctree),
clist = gtk_sctree_new_with_titles(N_LIST_COLS, 0, list_titles);
gtk_container_add(GTK_CONTAINER(clist_swin), clist);
gtk_cmclist_set_selection_mode(GTK_CMCLIST(clist), GTK_SELECTION_EXTENDED);
- if (prefs_common.enable_dotted_lines) {
- gtk_cmctree_set_line_style(GTK_CMCTREE(clist), GTK_CMCTREE_LINES_DOTTED);
- gtk_cmctree_set_expander_style(GTK_CMCTREE(clist),
- GTK_CMCTREE_EXPANDER_SQUARE);
- } else {
- gtk_cmctree_set_line_style(GTK_CMCTREE(clist), GTK_CMCTREE_LINES_NONE);
- gtk_cmctree_set_expander_style(GTK_CMCTREE(clist),
- GTK_CMCTREE_EXPANDER_TRIANGLE);
- }
+ gtk_cmctree_set_line_style(GTK_CMCTREE(clist), GTK_CMCTREE_LINES_NONE);
+ gtk_cmctree_set_expander_style(GTK_CMCTREE(clist),
+ GTK_CMCTREE_EXPANDER_TRIANGLE);
gtk_sctree_set_stripes(GTK_SCTREE(ctree), prefs_common.use_stripes_in_summaries);
gtk_cmctree_set_indent(GTK_CMCTREE(clist), CTREE_INDENT);
gtk_cmclist_set_column_width(GTK_CMCLIST(clist), COL_NAME,
G_CALLBACK(addressbook_address_list_focus_evt_out), NULL);
for (i = 0; i < N_LIST_COLS; i++)
- GTK_WIDGET_UNSET_FLAGS(GTK_CMCLIST(clist)->column[i].button,
- GTK_CAN_FOCUS);
+ gtkut_widget_set_can_focus(GTK_CMCLIST(clist)->column[i].button,
+ FALSE);
g_signal_connect(G_OBJECT(clist), "tree_select_row",
G_CALLBACK(addressbook_list_row_selected), NULL);
gtkut_stock_button_add_help(hbbox, &help_btn);
edit_btn = gtk_button_new_from_stock(GTK_STOCK_EDIT);
- GTK_WIDGET_SET_FLAGS(edit_btn, GTK_CAN_DEFAULT);
+ gtkut_widget_set_can_default(edit_btn, TRUE);
gtk_box_pack_start(GTK_BOX(hbbox), edit_btn, TRUE, TRUE, 0);
del_btn = gtk_button_new_from_stock(GTK_STOCK_DELETE);
- GTK_WIDGET_SET_FLAGS(del_btn, GTK_CAN_DEFAULT);
+ gtkut_widget_set_can_default(del_btn, TRUE);
gtk_box_pack_start(GTK_BOX(hbbox), del_btn, TRUE, TRUE, 0);
reg_btn = gtk_button_new_from_stock(GTK_STOCK_NEW);
- GTK_WIDGET_SET_FLAGS(reg_btn, GTK_CAN_DEFAULT);
+ gtkut_widget_set_can_default(reg_btn, TRUE);
gtk_box_pack_start(GTK_BOX(hbbox), reg_btn, TRUE, TRUE, 0);
lup_btn = gtk_button_new_from_stock(GTK_STOCK_FIND);
- GTK_WIDGET_SET_FLAGS(lup_btn, GTK_CAN_DEFAULT);
+ gtkut_widget_set_can_default(lup_btn, TRUE);
gtk_box_pack_start(GTK_BOX(hbox), lup_btn, TRUE, TRUE, 0);
g_signal_connect(G_OBJECT(help_btn), "clicked",
to_btn = gtk_button_new_with_label
(prefs_common_translated_header_name("To:"));
- GTK_WIDGET_SET_FLAGS(to_btn, GTK_CAN_DEFAULT);
+ gtkut_widget_set_can_default(to_btn, TRUE);
gtk_box_pack_start(GTK_BOX(hbbox), to_btn, TRUE, TRUE, 0);
cc_btn = gtk_button_new_with_label
(prefs_common_translated_header_name("Cc:"));
- GTK_WIDGET_SET_FLAGS(cc_btn, GTK_CAN_DEFAULT);
+ gtkut_widget_set_can_default(cc_btn, TRUE);
gtk_box_pack_start(GTK_BOX(hbbox), cc_btn, TRUE, TRUE, 0);
bcc_btn = gtk_button_new_with_label
(prefs_common_translated_header_name("Bcc:"));
- GTK_WIDGET_SET_FLAGS(bcc_btn, GTK_CAN_DEFAULT);
+ gtkut_widget_set_can_default(bcc_btn, TRUE);
gtk_box_pack_start(GTK_BOX(hbbox), bcc_btn, TRUE, TRUE, 0);
close_btn = gtk_button_new_from_stock(GTK_STOCK_CLOSE);
- GTK_WIDGET_SET_FLAGS(close_btn, GTK_CAN_DEFAULT);
+ gtkut_widget_set_can_default(close_btn, TRUE);
gtk_box_pack_start(GTK_BOX(hbbox), close_btn, TRUE, TRUE, 0);
g_signal_connect(G_OBJECT(to_btn), "clicked",
addressbook_status_show( addressbook_msgbuf );
}
-static void addressbook_button_set_sensitive(void)
-{
- gboolean to_sens = FALSE;
- gboolean cc_sens = FALSE;
- gboolean bcc_sens = FALSE;
-
- if (!addrbook.window) return;
-
- if (addrbook.target_compose) {
- to_sens = TRUE;
- cc_sens = TRUE;
- bcc_sens = TRUE;
- }
-
- gtk_widget_set_sensitive(addrbook.to_btn, to_sens);
- gtk_widget_set_sensitive(addrbook.cc_btn, cc_sens);
- gtk_widget_set_sensitive(addrbook.bcc_btn, bcc_sens);
-}
-
static void addressbook_edit_clicked(GtkButton *button, gpointer data)
{
addressbook_edit_address_cb(NULL, NULL);
addr = (char *)gtk_entry_get_text( GTK_ENTRY( addrbook.entry) );
if ( addr ) {
compose_entry_append(
- compose, addr, (ComposeEntryType)data );
+ compose, addr, (ComposeEntryType)data , PREF_NONE);
}
/* Select from address list */
aio->type == ADDR_ITEM_EMAIL ) {
addr = addressbook_format_address( aio );
compose_entry_append(
- compose, addr, (ComposeEntryType) data );
+ compose, addr, (ComposeEntryType) data, PREF_NONE );
g_free( addr );
}
else if( aio->type == ADDR_ITEM_GROUP ) {
addr = addressbook_format_address(
( AddrItemObject * ) email );
compose_entry_append(
- compose, addr, (ComposeEntryType) data );
+ compose, addr, (ComposeEntryType) data, PREF_NONE );
g_free( addr );
nodeMail = g_list_next( nodeMail );
}
addr = addressbook_format_address(
( AddrItemObject * ) email );
compose_entry_append(
- compose, addr, (ComposeEntryType) data );
+ compose, addr, (ComposeEntryType) data, PREF_NONE );
g_free( addr );
nodeMail = g_list_next( nodeMail );
}
gtk_widget_set_sensitive( addrbook.edit_btn, canEdit );
gtk_widget_set_sensitive( addrbook.del_btn, canDelete );
+ if (addrbook.target_compose) {
+ gtk_widget_set_sensitive(addrbook.to_btn, obj ? TRUE : FALSE);
+ gtk_widget_set_sensitive(addrbook.cc_btn, obj ? TRUE : FALSE);
+ gtk_widget_set_sensitive(addrbook.bcc_btn, obj ? TRUE : FALSE);
+ }
#ifdef USE_LDAP
cm_menu_set_sensitive_full( addrbook.ui_manager, "Popups/ABListPopup/BrowseEntry", canBrowse );
#endif
gtk_cmctree_get_node_info(ctree, node, text, &spacing,
&pix_cl, &pix_op,
&is_leaf, &expanded);
- gtk_sctree_set_node_info(ctree, node, name, spacing,
+ gtk_cmctree_set_node_info(ctree, node, name, spacing,
pix_cl, pix_op,
is_leaf, expanded);
}
if( obj->type == ADDR_DATASOURCE ) {
/* Remove node from tree */
gtk_cmctree_remove_node( ctree, node );
-
+
+ if (delType == ADDRTREE_DEL_DATA &&
+ ds->interface && ds->interface->type == ADDR_IF_BOOK)
+ addrbook_delete_book_file((AddressBookFile *) ds->rawDataSource);
+
/* Remove data source. */
if( addrindex_index_remove_datasource( _addressIndex_, ds ) ) {
addrindex_free_datasource( ds );
static gboolean addressbook_entry_key_pressed(GtkWidget *widget, GdkEventKey *event, gpointer data)
{
- if (event && (event->keyval == GDK_Return || event->keyval == GDK_KP_Enter))
+ if (event && (event->keyval == GDK_KEY_Return || event->keyval == GDK_KEY_KP_Enter))
addressbook_lup_clicked(NULL, NULL);
return FALSE;
}
/* Set up idler function */
idleID = g_idle_add(
- ( GtkFunction ) addressbook_search_idle,
+ (GSourceFunc) addressbook_search_idle,
GINT_TO_POINTER( queryID ) );
/* Start search, sit back and wait for something to happen */
AddressTypeControlItem *atci;
/* Build icons */
- g_object_unref(interfacexpm);
- g_object_unref(folderxpm);
- g_object_unref(folderopenxpm);
- g_object_unref(groupxpm);
- g_object_unref(vcardxpm);
- g_object_unref(bookxpm);
- g_object_unref(addressxpm);
- g_object_unref(jpilotxpm);
- g_object_unref(categoryxpm);
- g_object_unref(ldapxpm);
- g_object_unref(addrsearchxpm);
+ if (interfacexpm)
+ g_object_unref(interfacexpm);
+ if (folderxpm)
+ g_object_unref(folderxpm);
+ if (folderopenxpm)
+ g_object_unref(folderopenxpm);
+ if (groupxpm)
+ g_object_unref(groupxpm);
+ if (vcardxpm)
+ g_object_unref(vcardxpm);
+ if (bookxpm)
+ g_object_unref(bookxpm);
+ if (addressxpm)
+ g_object_unref(addressxpm);
+ if (jpilotxpm)
+ g_object_unref(jpilotxpm);
+ if (categoryxpm)
+ g_object_unref(categoryxpm);
+ if (ldapxpm)
+ g_object_unref(ldapxpm);
+ if (addrsearchxpm)
+ g_object_unref(addrsearchxpm);
stock_pixbuf_gdk(window, STOCK_PIXMAP_INTERFACE, &interfacexpm );
stock_pixbuf_gdk(window, STOCK_PIXMAP_DIR_CLOSE, &folderxpm);
stock_pixbuf_gdk(window, STOCK_PIXMAP_DIR_OPEN, &folderopenxpm);
if (aio && aio->type == ADDR_ITEM_PERSON) {
if( ds && ds->interface && ds->interface->readOnly)
gtk_selection_data_set(selection_data,
- selection_data->target, 8,
+ gtk_selection_data_get_target(selection_data), 8,
(const guchar *)"Dummy_addr_copy", 15);
else
gtk_selection_data_set(selection_data,
- selection_data->target, 8,
+ gtk_selection_data_get_target(selection_data), 8,
(const guchar *)"Dummy_addr_move", 15);
}
}
guint time,
void *data)
{
+ GtkAllocation allocation;
+ GtkRequisition requisition;
gint row, column;
GtkCMCTreeNode *node = NULL;
gboolean acceptable = FALSE;
- gint height = addrbook.ctree->allocation.height;
- gint total_height = addrbook.ctree->requisition.height;
+ gtk_widget_get_allocation(GTK_WIDGET(addrbook.ctree), &allocation);
+ gint height = allocation.height;
+ gtk_widget_get_requisition(GTK_WIDGET(addrbook.ctree), &requisition);
+ gint total_height = requisition.height;
GtkAdjustment *pos = gtk_scrolled_window_get_vadjustment(
GTK_SCROLLED_WINDOW(addrbook.ctree_swin));
- gfloat vpos = pos->value;
+ gfloat vpos = gtk_adjustment_get_value(pos);
if (gtk_cmclist_get_selection_info
(GTK_CMCLIST(widget), x - 24, y - 24, &row, &column)) {
(G_OBJECT(widget),
G_CALLBACK(addressbook_tree_selected), NULL);
gdk_drag_status(context,
- (context->actions == GDK_ACTION_COPY ?
+ (gdk_drag_context_get_actions(context) == GDK_ACTION_COPY ?
GDK_ACTION_COPY : GDK_ACTION_MOVE) , time);
} else {
gdk_drag_status(context, 0, time);
GtkCMCTreeNode *node;
GtkCMCTreeNode *lastopened = addrbook.opened;
- if (!strncmp(data->data, "Dummy_addr", 10)) {
+ if (!strncmp(gtk_selection_data_get_data(data), "Dummy_addr", 10)) {
if (gtk_cmclist_get_selection_info
(GTK_CMCLIST(widget), x - 24, y - 24, &row, &column) == 0) {
return;
return;
gtk_cmclist_freeze(GTK_CMCLIST(addrbook.clist));
- if (drag_context->action == GDK_ACTION_COPY ||
- !strcmp(data->data, "Dummy_addr_copy"))
+ if (gdk_drag_context_get_selected_action(drag_context) == GDK_ACTION_COPY ||
+ !strcmp(gtk_selection_data_get_data(data), "Dummy_addr_copy"))
addressbook_clip_copy_cb(NULL, NULL);
else
addressbook_clip_cut_cb(NULL, NULL);