diff --git a/gnome/configure.ac b/gnome/configure.ac index 575d369ce0796a2387f5d037d62d7b27066f4dce..d0425638cb9f7ae8bf46f0e8bc1c1e03beccb4f8 100644 --- a/gnome/configure.ac +++ b/gnome/configure.ac @@ -25,13 +25,15 @@ AC_DEFINE_UNQUOTED(SFLPHONE_UIDIR_UNINSTALLED, "`pwd`/src/", [path to uninstalled SFLphone UI dir]) PKG_CHECK_MODULES(DBUSGLIB, dbus-glib-1 >= 0.75, HAVE_DBUS_G_PROXY_SET_DEFAULT_TIMEOUT=true, HAVE_DBUS_G_PROXY_SET_DEFAULT_TIMEOUT=false); -PKG_CHECK_MODULES([LIBNOTIFY], [libnotify >= 0.7.2], [AC_DEFINE([LIBNOTIFY_VERSION_0_7_2],[],[Using libnotify-0.7.2 or higher])],[PKG_CHECK_MODULES([LIBNOTIFY], [libnotify >= 0.4])]) -PKG_CHECK_MODULES(GTK, gtk+-2.0 >= 2.20) +PKG_CHECK_MODULES([LIBNOTIFY], [libnotify >= 0.7.2]) +if echo "$LIBNOTIFY_LIBS" | grep -q gtk+-x11-2.0; then + AC_MSG_ERROR([Your libnotify is linked with GTK+2 ! Install libnotify4-dev]) + exit 1 +fi +PKG_CHECK_MODULES(GTK, gtk+-3.0) +PKG_CHECK_MODULES(GCONF, gconf-2.0) PKG_CHECK_MODULES(GLIB, glib-2.0 >= 2.24) -PKG_CHECK_MODULES(WEBKIT, webkit-1.0) -PKG_CHECK_MODULES(LIBGNOMEUI, libgnomeui-2.0) -PKG_CHECK_MODULES(GNOMEDOCUTILS, gnome-doc-utils) - +PKG_CHECK_MODULES(WEBKIT, webkitgtk-3.0) # This macro is defined in check.m4 and tests if check.h and # libcheck.a are installed in your system. It sets CHECK_CFLAGS and diff --git a/gnome/src/Makefile.am b/gnome/src/Makefile.am index 3348f1b2d72d09e41986f50577a8269886b67c75..bded0118565e9d790f6c94e3dc8edb98f6600023 100644 --- a/gnome/src/Makefile.am +++ b/gnome/src/Makefile.am @@ -26,8 +26,8 @@ sflphone_client_gnome_SOURCES = \ statusicon.c \ codeclist.c \ reqaccount.c \ - shortcuts.c \ - eel-gconf-extensions.c + eel-gconf-extensions.c \ + shortcuts.c noinst_HEADERS = actions.h sflnotify.h mainwindow.h dialpad.h codeclist.h \ reqaccount.h sflphone_const.h uimanager.h \ @@ -35,12 +35,12 @@ noinst_HEADERS = actions.h sflnotify.h mainwindow.h dialpad.h codeclist.h \ shortcuts.h eel-gconf-extensions.h logger.h imwindow.h unused.h sflphone_client_gnome_LDADD = $(DBUSGLIB_LIBS) $(LIBNOTIFY_LIBS) $(NOTIFY_LIBS) $(SFLPHONEGTK_LIBS) $(X11_LIBS) \ - $(GTK_LIBS) $(GLIB_LIBS) $(WEBKIT_LIBS) $(LIBGNOMEUI_LIBS) $(GNOMEDOCUTILS_LIBS) $(LD_LIBS) + $(GTK_LIBS) $(GLIB_LIBS) $(WEBKIT_LIBS) $(LD_LIBS) $(GCONF_LIBS) -sflphone_client_gnome_CFLAGS = $(DBUSGLIB_CFLAGS) $(LIBNOTIFY_CFLAGS) $(NOTIFY_CFLAGS) $(SFLPHONEGTK_CFLAGS) $(X11_CFLAGS) \ - $(GTK_CFLAGS) $(GLIB_CFLAGS) $(WEBKIT_CFLAGS) $(LIBGNOMEUI_CFLAGS) $(GNOMEDOCUTILS_CFLAGS) +sflphone_client_gnome_CFLAGS = $(DBUSGLIB_CFLAGS) $(LIBNOTIFY_CFLAGS) $(NOTIFY_CFLAGS) $(GTK_CFLAGS) $(X11_CFLAGS) \ + $(GLIB_CFLAGS) $(WEBKIT_CFLAGS) $(GCONF_CFLAGS) -# add symbolic link +# add symbolic link install-exec-local: echo $(prefix); echo $(bindir); echo $(datadir); echo $(libdir) cd $(DESTDIR)$(bindir); ln -sf sflphone-client-gnome sflphone diff --git a/gnome/src/config/Makefile.am b/gnome/src/config/Makefile.am index cb21b3a015d69fc503774da9cfe8fca71bd0b8f6..7fc8210f5fe8b3b34c7a512923f1835037dcdf6f 100644 --- a/gnome/src/config/Makefile.am +++ b/gnome/src/config/Makefile.am @@ -26,14 +26,11 @@ libconfig_la_SOURCES = \ utils.h \ zrtpadvanceddialog.h -libconfig_la_LDFLAGS = $(DBUSGLIB_LDFLAGS) $(LIBNOTIFY_LDFLAGS) \ - $(GTK_LDFLAGS) $(GLIB_LDFLAGS) $(WEBKIT_LDFLAGS) $(LIBGNOMEUI_LDFLAGS) \ - $(GNOMEDOCUTILS_LDFLAGS) +libconfig_la_LDFLAGS = $(DBUSGLIB_LDFLAGS) $(LIBNOTIFY_LDFLAGS) $(GCONF_LDFLAGS) \ + $(GTK_LDFLAGS) $(GLIB_LDFLAGS) $(WEBKIT_LDFLAGS) -libconfig_la_LIBADD = $(DBUSGLIB_LIBS) $(LIBNOTIFY_LIBSI) \ - $(GTK_LIBS) $(GLIB_LIBS) $(WEBKIT_LIBS) $(LIBGNOMEUI_LIBS) \ - $(GNOMEDOCUTILS_LIBS) +libconfig_la_LIBADD = $(DBUSGLIB_LIBS) $(LIBNOTIFY_LIBS) $(GCONF_LIBS) \ + $(GTK_LIBS) $(GLIB_LIBS) $(WEBKIT_LIBS) -libconfig_la_CFLAGS = $(DBUSGLIB_CFLAGS) $(LIBNOTIFY_CFLAGS) \ - $(GTK_CFLAGS) $(GLIB_CFLAGS) $(WEBKIT_CFLAGS) $(LIBGNOMEUI_CFLAGS) \ - $(GNOMEDOCUTILS_CFLAGS) +libconfig_la_CFLAGS = $(DBUSGLIB_CFLAGS) $(LIBNOTIFY_CFLAGS) $(GCONF_CFLAGS) \ + $(GTK_CFLAGS) $(GLIB_CFLAGS) $(WEBKIT_CFLAGS) diff --git a/gnome/src/config/accountconfigdialog.c b/gnome/src/config/accountconfigdialog.c index 2e5f08d6665d60eec4dc813ac87ea52843fa688e..87d6fb9a91987525c2670dd91db56746e8ce7cc3 100644 --- a/gnome/src/config/accountconfigdialog.c +++ b/gnome/src/config/accountconfigdialog.c @@ -47,7 +47,6 @@ #include "accountconfigdialog.h" #include "zrtpadvanceddialog.h" #include "tlsadvanceddialog.h" -#include "audioconf.h" #include "dbus/dbus.h" #include "utils.h" #include "unused.h" @@ -130,7 +129,7 @@ static void show_password_cb(GtkWidget *widget UNUSED, gpointer data) /* Signal to protocolComboBox 'changed' */ void change_protocol_cb(account_t *currentAccount UNUSED) { - gchar *protocol = gtk_combo_box_get_active_text(GTK_COMBO_BOX(protocolComboBox)); + gchar *protocol = gtk_combo_box_text_get_active_text(GTK_COMBO_BOX_TEXT(protocolComboBox)); // Only if tabs are not NULL if (security_tab && advanced_tab) { @@ -202,7 +201,6 @@ static void update_credential_cb(GtkWidget *widget, gpointer data UNUSED) static GtkWidget* create_basic_tab(account_t *currentAccount) { g_assert(currentAccount); - DEBUG("Config: Create basic account tab"); // Load from SIP/IAX/Unknown ? gchar *curAccountType = g_hash_table_lookup(currentAccount->properties, ACCOUNT_TYPE); @@ -258,12 +256,12 @@ static GtkWidget* create_basic_tab(account_t *currentAccount) label = gtk_label_new_with_mnemonic(_("_Protocol")); gtk_table_attach(GTK_TABLE(table), label, 0, 1, row, row+1, GTK_EXPAND | GTK_FILL, GTK_EXPAND | GTK_FILL, 0, 0); gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5); - protocolComboBox = gtk_combo_box_new_text(); + protocolComboBox = gtk_combo_box_text_new(); gtk_label_set_mnemonic_widget(GTK_LABEL(label), protocolComboBox); - gtk_combo_box_append_text(GTK_COMBO_BOX(protocolComboBox), "SIP"); + gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(protocolComboBox), "SIP"); if (dbus_is_iax2_enabled()) - gtk_combo_box_append_text(GTK_COMBO_BOX(protocolComboBox), "IAX"); + gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(protocolComboBox), "IAX"); if (g_strcmp0(curAccountType, "SIP") == 0) gtk_combo_box_set_active(GTK_COMBO_BOX(protocolComboBox),0); @@ -272,7 +270,7 @@ static GtkWidget* create_basic_tab(account_t *currentAccount) else { DEBUG("Config: Error: Account protocol not valid"); /* Should never come here, add debug message. */ - gtk_combo_box_append_text(GTK_COMBO_BOX(protocolComboBox), _("Unknown")); + gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(protocolComboBox), _("Unknown")); gtk_combo_box_set_active(GTK_COMBO_BOX(protocolComboBox), 2); } @@ -459,7 +457,7 @@ static void editing_started_cb(GtkCellRenderer *cell UNUSED, GtkCellEditable * e static void show_advanced_zrtp_options_cb(GtkWidget *widget UNUSED, gpointer data) { - gchar *proto = gtk_combo_box_get_active_text(GTK_COMBO_BOX(keyExchangeCombo)); + gchar *proto = gtk_combo_box_text_get_active_text(GTK_COMBO_BOX_TEXT(keyExchangeCombo)); if (g_strcasecmp(proto, "ZRTP") == 0) show_advanced_zrtp_options((GHashTable *) data); @@ -477,7 +475,7 @@ static void show_advanced_tls_options_cb(GtkWidget *widget UNUSED, gpointer data static void key_exchange_changed_cb(GtkWidget *widget UNUSED, gpointer data UNUSED) { - gchar *active_text = gtk_combo_box_get_active_text(GTK_COMBO_BOX(keyExchangeCombo)); + gchar *active_text = gtk_combo_box_text_get_active_text(GTK_COMBO_BOX_TEXT(keyExchangeCombo)); DEBUG("Key exchange changed %s", active_text); gboolean set_sensitive = FALSE; @@ -569,7 +567,7 @@ get_interface_addr_from_name(const gchar * const iface_name) static void local_interface_changed_cb(GtkWidget * widget UNUSED, gpointer data UNUSED) { if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(sameAsLocalRadioButton))) { - gchar *local_iface_name = gtk_combo_box_get_active_text(GTK_COMBO_BOX(localAddressCombo)); + gchar *local_iface_name = gtk_combo_box_text_get_active_text(GTK_COMBO_BOX_TEXT(localAddressCombo)); gchar *local_iface_addr = get_interface_addr_from_name(local_iface_name); gtk_entry_set_text(GTK_ENTRY(localAddressEntry), local_iface_addr); @@ -631,7 +629,7 @@ static void use_stun_cb(GtkWidget *widget, gpointer data UNUSED) static void same_as_local_cb(GtkWidget * widget, gpointer data UNUSED) { if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget))) { - gchar *local_interface = gtk_combo_box_get_active_text(GTK_COMBO_BOX(localAddressCombo)); + gchar *local_interface = gtk_combo_box_text_get_active_text(GTK_COMBO_BOX_TEXT(localAddressCombo)); gchar *local_address = dbus_get_address_from_interface_name(local_interface); gtk_entry_set_text(GTK_ENTRY(publishedAddressEntry), local_address); @@ -743,21 +741,18 @@ GtkWidget* create_security_widget(account_t *a) if (a) { curKeyExchange = g_hash_table_lookup(a->properties, ACCOUNT_KEY_EXCHANGE); - if (curKeyExchange == NULL) { + if (curKeyExchange == NULL) curKeyExchange = "none"; - } curSRTPEnabled = g_hash_table_lookup(a->properties, ACCOUNT_SRTP_ENABLED); - if (curSRTPEnabled == NULL) { + if (curSRTPEnabled == NULL) curSRTPEnabled = "false"; - } curTLSEnabled = g_hash_table_lookup(a->properties, TLS_ENABLE); - if (curTLSEnabled == NULL) { + if (curTLSEnabled == NULL) curTLSEnabled = "false"; - } } gnome_main_section_new_with_table(_("Security"), &frame, &table, 2, 3); @@ -779,11 +774,11 @@ GtkWidget* create_security_widget(account_t *a) /* ZRTP subsection */ label = gtk_label_new_with_mnemonic(_("SRTP key exchange")); gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5); - keyExchangeCombo = gtk_combo_box_new_text(); + keyExchangeCombo = gtk_combo_box_text_new(); gtk_label_set_mnemonic_widget(GTK_LABEL(label), keyExchangeCombo); - gtk_combo_box_append_text(GTK_COMBO_BOX(keyExchangeCombo), "ZRTP"); - gtk_combo_box_append_text(GTK_COMBO_BOX(keyExchangeCombo), "SDES"); - gtk_combo_box_append_text(GTK_COMBO_BOX(keyExchangeCombo), _("Disabled")); + gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(keyExchangeCombo), "ZRTP"); + gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(keyExchangeCombo), "SDES"); + gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(keyExchangeCombo), _("Disabled")); advancedZrtpButton = gtk_button_new_from_stock(GTK_STOCK_PREFERENCES); g_signal_connect(G_OBJECT(advancedZrtpButton), "clicked", G_CALLBACK(show_advanced_zrtp_options_cb),a->properties); @@ -792,11 +787,11 @@ GtkWidget* create_security_widget(account_t *a) gtk_combo_box_set_active(GTK_COMBO_BOX(keyExchangeCombo), 2); gtk_widget_set_sensitive(advancedZrtpButton, FALSE); } else { - if (g_strcmp0(curKeyExchange, ZRTP) == 0) { + if (g_strcmp0(curKeyExchange, ZRTP) == 0) gtk_combo_box_set_active(GTK_COMBO_BOX(keyExchangeCombo),0); - } else if (g_strcmp0(curKeyExchange, SDES) == 0) { + else if (g_strcmp0(curKeyExchange, SDES) == 0) gtk_combo_box_set_active(GTK_COMBO_BOX(keyExchangeCombo),1); - } else { + else { gtk_combo_box_set_active(GTK_COMBO_BOX(keyExchangeCombo), 2); gtk_widget_set_sensitive(advancedZrtpButton, FALSE); } @@ -888,62 +883,32 @@ GtkWidget* create_network(account_t *a) * Retreive the list of IP interface from the * the daemon and build the combo box. */ + localAddressCombo = gtk_combo_box_text_new(); - GtkListStore * ipInterfaceListStore; - GtkTreeIter iter; - ipInterfaceListStore = gtk_list_store_new(1, G_TYPE_STRING); label = gtk_label_new_with_mnemonic(_("Local address")); gtk_table_attach(GTK_TABLE(table), label, 0, 1, 0, 1, GTK_EXPAND | GTK_FILL, GTK_EXPAND | GTK_FILL, 0, 0); gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5); - GtkTreeIter current_local_iface_iter = iter; - gchar ** iface_list = NULL; - // iface_list =(gchar**) dbus_get_all_ip_interface(); - iface_list =(gchar**) dbus_get_all_ip_interface_by_name(); - gchar ** iface = NULL; - - // flag to determine if local_address is found - gboolean iface_found = FALSE; - - if (iface_list != NULL) { - // fill the iterface combo box - for (iface = iface_list; *iface; iface++) { - DEBUG("Interface %s", *iface); - gtk_list_store_append(ipInterfaceListStore, &iter); - gtk_list_store_set(ipInterfaceListStore, &iter, 0, *iface, -1); - - // set the current local address - if (!iface_found &&(g_strcmp0(*iface, local_interface) == 0)) { - DEBUG("Setting active local address combo box"); - current_local_iface_iter = iter; - iface_found = TRUE; - } - } + gchar **iface_list = dbus_get_all_ip_interface_by_name(); - if (!iface_found) { - DEBUG("Did not find local ip address, take fisrt in the list"); - gtk_tree_model_get_iter_first(GTK_TREE_MODEL(ipInterfaceListStore), ¤t_local_iface_iter); - } + int idx = 0; + for (gchar **iface = iface_list; iface && *iface; iface++, idx++) { + + gtk_combo_box_text_append(GTK_COMBO_BOX_TEXT(localAddressCombo), NULL, *iface); + if (g_strcmp0(*iface, local_interface) == 0) + gtk_combo_box_set_active(GTK_COMBO_BOX(localAddressCombo), idx); } + if (!local_interface) + gtk_combo_box_set_active(GTK_COMBO_BOX(localAddressCombo), 0); + - localAddressCombo = gtk_combo_box_new_with_model(GTK_TREE_MODEL(ipInterfaceListStore)); gtk_label_set_mnemonic_widget(GTK_LABEL(label), localAddressCombo); gtk_table_attach(GTK_TABLE(table), localAddressCombo, 1, 2, 0, 1, GTK_EXPAND | GTK_FILL, GTK_EXPAND | GTK_FILL, 0, 0); - g_object_unref(G_OBJECT(ipInterfaceListStore)); - - - GtkCellRenderer * ipInterfaceCellRenderer; - ipInterfaceCellRenderer = gtk_cell_renderer_text_new(); - - gtk_cell_layout_pack_start(GTK_CELL_LAYOUT(localAddressCombo), ipInterfaceCellRenderer, TRUE); - gtk_cell_layout_set_attributes(GTK_CELL_LAYOUT(localAddressCombo), ipInterfaceCellRenderer, "text", 0, NULL); - gtk_combo_box_set_active_iter(GTK_COMBO_BOX(localAddressCombo), ¤t_local_iface_iter); - // Fill the text entry with the ip address of local interface selected localAddressEntry = gtk_entry_new(); - gchar *local_iface_name = gtk_combo_box_get_active_text(GTK_COMBO_BOX(localAddressCombo)); + gchar *local_iface_name = gtk_combo_box_text_get_active_text(GTK_COMBO_BOX_TEXT(localAddressCombo)); gchar *local_iface_addr = get_interface_addr_from_name(local_iface_name); g_free(local_iface_name); gtk_entry_set_text(GTK_ENTRY(localAddressEntry), local_iface_addr); @@ -1065,27 +1030,27 @@ GtkWidget* create_advanced_tab(account_t *a) // Build the advanced tab, to appear on the account configuration panel DEBUG("Config: Build advanced tab"); - GtkWidget *ret, *frame; + GtkWidget *vbox, *frame; - ret = gtk_vbox_new(FALSE, 10); - gtk_container_set_border_width(GTK_CONTAINER(ret), 10); + vbox = gtk_vbox_new(FALSE, 10); + gtk_container_set_border_width(GTK_CONTAINER(vbox), 10); frame = create_registration_expire(a); - gtk_box_pack_start(GTK_BOX(ret), frame, FALSE, FALSE, 0); + gtk_box_pack_start(GTK_BOX(vbox), frame, FALSE, FALSE, 0); frame = create_network(a); - gtk_box_pack_start(GTK_BOX(ret), frame, FALSE, FALSE, 0); + gtk_box_pack_start(GTK_BOX(vbox), frame, FALSE, FALSE, 0); frame = create_published_address(a); - gtk_box_pack_start(GTK_BOX(ret), frame, FALSE, FALSE, 0); + gtk_box_pack_start(GTK_BOX(vbox), frame, FALSE, FALSE, 0); - gtk_widget_show_all(ret); + gtk_widget_show_all(vbox); use_stun_cb(useStunCheckBox, NULL); set_published_addr_manually_cb(publishedAddrRadioButton, NULL); - return ret; + return vbox; } void ringtone_enabled(GtkWidget *widget UNUSED, gpointer data, const gchar *accountID UNUSED) @@ -1160,13 +1125,13 @@ static GtkWidget* create_audiocodecs_configuration(account_t *currentAccount) gtk_widget_set_sensitive(fileChooser, ringtoneEnabled); GtkFileFilter *filter = gtk_file_filter_new(); - gtk_file_filter_set_name(filter , _("Audio Files")); - gtk_file_filter_add_pattern(filter , "*.wav"); - gtk_file_filter_add_pattern(filter , "*.ul"); - gtk_file_filter_add_pattern(filter , "*.au"); + gtk_file_filter_set_name(filter, _("Audio Files")); + gtk_file_filter_add_pattern(filter, "*.wav"); + gtk_file_filter_add_pattern(filter, "*.ul"); + gtk_file_filter_add_pattern(filter, "*.au"); + gtk_file_chooser_add_filter(GTK_FILE_CHOOSER(fileChooser) , filter); - gtk_table_attach(GTK_TABLE(table), fileChooser, 0, 1, 1, 2, GTK_EXPAND | - GTK_FILL, GTK_EXPAND | GTK_FILL, 0, 0); + gtk_table_attach(GTK_TABLE(table), fileChooser, 0, 1, 1, 2, GTK_EXPAND | GTK_FILL, GTK_EXPAND | GTK_FILL, 0, 0); gtk_widget_show_all(vbox); @@ -1250,7 +1215,7 @@ void show_account_window(account_t * currentAccount) gchar *currentProtocol; if (protocolComboBox) - currentProtocol = gtk_combo_box_get_active_text(GTK_COMBO_BOX(protocolComboBox)); + currentProtocol = gtk_combo_box_text_get_active_text(GTK_COMBO_BOX_TEXT(protocolComboBox)); else currentProtocol = g_strdup("SIP"); @@ -1289,7 +1254,7 @@ void show_account_window(account_t * currentAccount) gchar *proto; if (protocolComboBox) - proto = gtk_combo_box_get_active_text(GTK_COMBO_BOX(protocolComboBox)); + proto = gtk_combo_box_text_get_active_text(GTK_COMBO_BOX_TEXT(protocolComboBox)); else proto = g_strdup("SIP"); @@ -1365,7 +1330,7 @@ void show_account_window(account_t * currentAccount) g_hash_table_replace(currentAccount->properties, g_strdup(PUBLISHED_PORT), g_strdup((gchar *) gtk_entry_get_text(GTK_ENTRY(localPortSpinBox)))); - gchar *local_interface = gtk_combo_box_get_active_text(GTK_COMBO_BOX(localAddressCombo)); + gchar *local_interface = gtk_combo_box_text_get_active_text(GTK_COMBO_BOX_TEXT(localAddressCombo)); gchar *published_address = dbus_get_address_from_interface_name(local_interface); g_free(local_interface); @@ -1384,7 +1349,7 @@ void show_account_window(account_t * currentAccount) g_hash_table_replace(currentAccount->properties, g_strdup(ACCOUNT_DTMF_TYPE), g_strdup(SIPINFO)); } - gchar* keyExchange = gtk_combo_box_get_active_text(GTK_COMBO_BOX(keyExchangeCombo)); + gchar* keyExchange = gtk_combo_box_text_get_active_text(GTK_COMBO_BOX_TEXT(keyExchangeCombo)); if (g_strcasecmp(keyExchange, "ZRTP") == 0) { g_hash_table_replace(currentAccount->properties, g_strdup(ACCOUNT_SRTP_ENABLED), g_strdup("true")); @@ -1413,7 +1378,7 @@ void show_account_window(account_t * currentAccount) g_hash_table_replace(currentAccount->properties, g_strdup(LOCAL_INTERFACE), - gtk_combo_box_get_active_text(GTK_COMBO_BOX(localAddressCombo))); + gtk_combo_box_text_get_active_text(GTK_COMBO_BOX_TEXT(localAddressCombo))); g_hash_table_replace(currentAccount->properties, g_strdup(LOCAL_PORT), diff --git a/gnome/src/config/accountlistconfigdialog.c b/gnome/src/config/accountlistconfigdialog.c index 47d7aa86b74ae46c3fe9afd225a4dc172389de6f..06a04e7c6af39008d61dbbf34552cc2768e02156 100644 --- a/gnome/src/config/accountlistconfigdialog.c +++ b/gnome/src/config/accountlistconfigdialog.c @@ -39,7 +39,6 @@ #include "unused.h" #include "logger.h" #include <string.h> -#include <libgnome/gnome-help.h> static const int CONTEXT_ID_REGISTRATION = 0; @@ -367,12 +366,9 @@ help_contents_cb(GtkWidget * widget UNUSED, gpointer data UNUSED) { GError *error = NULL; - - gnome_help_display("sflphone.xml", "accounts", &error); - + gtk_show_uri(NULL, "ghelp:sflphone?accounts", GDK_CURRENT_TIME, &error); if (error != NULL) { g_warning("%s", error->message); - g_error_free(error); } } @@ -603,10 +599,8 @@ show_account_list_config_dialog(void) /* Status bar for the account list */ status_bar = gtk_statusbar_new(); - gtk_statusbar_set_has_resize_grip(GTK_STATUSBAR(status_bar), FALSE); - gtk_widget_show(status_bar); - gtk_box_pack_start(GTK_BOX(gtk_dialog_get_content_area(accountListDialog)), - status_bar, TRUE, TRUE, 0); + gtk_widget_show (status_bar); + gtk_box_pack_start (GTK_BOX (gtk_dialog_get_content_area(accountListDialog)), status_bar, TRUE, TRUE, 0); int number_accounts = account_list_get_registered_accounts(); diff --git a/gnome/src/config/audioconf.c b/gnome/src/config/audioconf.c index 77fe694fde4f44fe82e6d4a89fa58402bbd62292..9fe1a769825d9bafc209b0a9e466f86e8ae86aff 100644 --- a/gnome/src/config/audioconf.c +++ b/gnome/src/config/audioconf.c @@ -761,7 +761,6 @@ static void record_path_changed(GtkFileChooser *chooser , GtkLabel *label UNUSED { gchar* path; path = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(chooser)); - DEBUG("path2 %s", path); dbus_set_record_path(path); } diff --git a/gnome/src/config/preferencesdialog.c b/gnome/src/config/preferencesdialog.c index 52393533ef1c7e34efba7c76b14b9c2ba09fb930..16f46bac0878beadd6ffb488a7b5c4bf69c6fb5a 100644 --- a/gnome/src/config/preferencesdialog.c +++ b/gnome/src/config/preferencesdialog.c @@ -36,6 +36,8 @@ #include <stdlib.h> #include <stdio.h> #include <string.h> +#include <assert.h> + #include "eel-gconf-extensions.h" #include "dbus.h" #include "logger.h" @@ -44,7 +46,6 @@ #include "preferencesdialog.h" #include "addressbook-config.h" #include "shortcuts-config.h" -#include "audioconf.h" #include "hooks-config.h" #include "audioconf.h" #include "uimanager.h" @@ -54,24 +55,16 @@ /** * Local variables */ -gboolean accDialogOpen = FALSE; -gboolean dialogOpen = FALSE; -gboolean ringtoneEnabled = TRUE; +static gboolean dialogOpen = FALSE; +static GtkWidget * history_value; -GtkWidget * status; -GtkWidget * history_value; +static GtkWidget *starthidden; +static GtkWidget *popupwindow; +static GtkWidget *neverpopupwindow; -GtkWidget *starthidden; -GtkWidget *popupwindow; -GtkWidget *neverpopupwindow; - -GtkWidget *treeView; -GtkWidget *iconview; -GtkCellRenderer *renderer; -GtkTreeViewColumn *column; -GtkTreeSelection *selection; -GtkWidget * notebook; +static GtkWidget *iconview; +static GtkWidget * notebook; enum { @@ -80,12 +73,6 @@ enum { PAGE_NUMBER }; -typedef struct { - gchar* icon_descr; - gchar* icon_name; - gint page_number; -} browser_t; - // history preference parameters static int history_limit; static gboolean history_enabled = TRUE; @@ -105,9 +92,8 @@ set_popup_mode(GtkWidget *widget, gpointer *userdata UNUSED) { gboolean currentstate = eel_gconf_get_integer(POPUP_ON_CALL); - if (currentstate || gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget))) { + if (currentstate || gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget))) eel_gconf_set_integer(POPUP_ON_CALL, !currentstate); - } } void @@ -137,7 +123,6 @@ static void instant_messaging_enabled_cb(GtkWidget *widget) { instant_messaging_enabled = gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget)); - eel_gconf_set_integer(INSTANT_MESSAGING_ENABLED, !eel_gconf_get_integer(INSTANT_MESSAGING_ENABLED)); } @@ -167,7 +152,6 @@ void showstatusicon_cb(GtkWidget *widget, gpointer data UNUSED) GtkWidget* create_general_settings() { - GtkWidget *ret, *notifAll, *frame, *checkBoxWidget, *label, *table, *showstatusicon; gboolean statusicon; @@ -285,10 +269,8 @@ create_general_settings() void save_configuration_parameters(void) { - if (addrbook) { - // Address book config + if (addrbook) addressbook_config_save_parameters(); - } hooks_save_parameters(); @@ -308,14 +290,12 @@ void instant_messaging_load_configuration() { instant_messaging_enabled = eel_gconf_get_integer(INSTANT_MESSAGING_ENABLED); - } void selection_changed_cb(GtkIconView *view, gpointer user_data UNUSED) { - GtkTreeModel *model; GtkTreeIter iter; GList *list; @@ -338,6 +318,53 @@ selection_changed_cb(GtkIconView *view, gpointer user_data UNUSED) g_list_free(list); } +/* + * Get an 48x48 icon from the default theme or fallback to an application icon. + */ +static GdkPixbuf *get_icon(const gchar *name, GtkWidget *widget) +{ + GtkIconTheme *theme = gtk_icon_theme_get_default(); + GdkPixbuf *pixbuf = gtk_icon_theme_load_icon(theme, name, 48, 0, NULL); + if (!pixbuf) + pixbuf = gtk_widget_render_icon(widget, name, GTK_ICON_SIZE_DIALOG, NULL); + + return pixbuf; +} + +static GtkTreeModel* create_model(GtkWidget *widget) +{ + static const struct { + gchar* icon_descr; + gchar* icon_name; + gint page_number; + } browser_entries_full[] = { + {"General", GTK_STOCK_PREFERENCES, 0}, + {"Audio", GTK_STOCK_AUDIO_CARD, 1}, + {"Hooks", "applications-development", 2}, + {"Shortcuts", "preferences-desktop-keyboard", 3}, + {"Address Book", GTK_STOCK_ADDRESSBOOK, 4}, + }; + GdkPixbuf *pixbuf; + GtkTreeIter iter; + gint i, nb_entries; + + GtkListStore *store = gtk_list_store_new(3, GDK_TYPE_PIXBUF, G_TYPE_STRING, G_TYPE_INT); + nb_entries = sizeof(browser_entries_full) / sizeof(browser_entries_full[0]); + + for (i = 0; i < nb_entries; i++) { + gtk_list_store_append (store, &iter); + pixbuf = get_icon(browser_entries_full[i].icon_name, widget); + gtk_list_store_set(store, &iter, + PIXBUF_COL, pixbuf, + TEXT_COL, _(browser_entries_full[i].icon_descr), + PAGE_NUMBER, browser_entries_full[i].page_number, + -1); + if (pixbuf) + gdk_pixbuf_unref(pixbuf); + } + + return GTK_TREE_MODEL(store); +} /** @@ -346,35 +373,30 @@ selection_changed_cb(GtkIconView *view, gpointer user_data UNUSED) guint show_preferences_dialog() { - GtkDialog * dialog; - GtkWidget * hbox; - GtkWidget * tab; - guint result; - dialogOpen = TRUE; - - dialog = GTK_DIALOG(gtk_dialog_new_with_buttons(_("Preferences"), - GTK_WINDOW(get_main_window()), - GTK_DIALOG_DESTROY_WITH_PARENT, - GTK_STOCK_CLOSE, - GTK_RESPONSE_ACCEPT, - NULL)); + GtkDialog *dialog = GTK_DIALOG(gtk_dialog_new_with_buttons(_("Preferences"), + GTK_WINDOW(get_main_window()), + GTK_DIALOG_DESTROY_WITH_PARENT, + GTK_STOCK_CLOSE, + GTK_RESPONSE_ACCEPT, + NULL)); // Set window properties gtk_window_set_default_size(GTK_WINDOW(dialog), 600, 400); gtk_container_set_border_width(GTK_CONTAINER(dialog), 0); - hbox = gtk_hbox_new(FALSE, 10); + GtkWidget *hbox = gtk_hbox_new(FALSE, 10); // Create tree view - iconview = gtk_icon_view_new_with_model(createModel()); - g_object_set(iconview, - "selection-mode", GTK_SELECTION_BROWSE, - "text-column", TEXT_COL, - "pixbuf-column", PIXBUF_COL, - "columns", 1, - "margin", 10, - NULL); + iconview = gtk_icon_view_new_with_model(create_model(hbox)); + g_object_set (iconview, + "selection-mode", GTK_SELECTION_BROWSE, + "text-column", TEXT_COL, + "pixbuf-column", PIXBUF_COL, + "columns", 1, + "margin", 10, + NULL); + // Connect the callback when clicking on an item g_signal_connect(G_OBJECT(iconview), "selection-changed", G_CALLBACK(selection_changed_cb), NULL); gtk_box_pack_start(GTK_BOX(hbox), iconview, TRUE, TRUE, 0); @@ -390,12 +412,13 @@ show_preferences_dialog() gtk_widget_show(notebook); // General settings tab - tab = create_general_settings(); + GtkWidget *tab = create_general_settings(); gtk_notebook_append_page(GTK_NOTEBOOK(notebook), tab, gtk_label_new(_("General"))); gtk_notebook_page_num(GTK_NOTEBOOK(notebook), tab); // Audio tab tab = create_audio_configuration(); + gtk_notebook_append_page(GTK_NOTEBOOK(notebook), tab, gtk_label_new(_("Audio"))); gtk_notebook_page_num(GTK_NOTEBOOK(notebook), tab); @@ -421,7 +444,7 @@ show_preferences_dialog() // Highlight the corresponding icon gtk_icon_view_select_path(GTK_ICON_VIEW(iconview), gtk_tree_path_new_first()); - result = gtk_dialog_run(dialog); + guint result = gtk_dialog_run(dialog); save_configuration_parameters(); update_actions(); @@ -431,50 +454,3 @@ show_preferences_dialog() gtk_widget_destroy(GTK_WIDGET(dialog)); return result; } - -#define NB_MAX_ENTRIES 5 - -GtkTreeModel* createModel() -{ - browser_t browser_entries_full[NB_MAX_ENTRIES] = { - {_("General"), "preferences-system", 0}, - {_("Audio"), "multimedia-volume-control", 1}, - {_("Hooks"), "gnome-globe", 2}, - {_("Shortcuts"), "preferences-desktop-keyboard", 3}, - {_("Address Book"), "address-book-new", 4}, - }; - - GdkPixbuf *pixbuf; - GtkTreeIter iter; - GtkListStore *store; - GError *error = NULL; - gint i, nb_entries; - - nb_entries = addrbook ? 5 : 4; - - store = gtk_list_store_new(3, GDK_TYPE_PIXBUF, G_TYPE_STRING, G_TYPE_INT); - GtkIconTheme* theme = gtk_icon_theme_get_default(); - - - for (i = 0; i < nb_entries; i++) { - - gtk_list_store_append(store, &iter); - - pixbuf = gtk_icon_theme_load_icon(theme, browser_entries_full[i].icon_name, 48, 0, &error); - - gtk_list_store_set(store, &iter, - PIXBUF_COL, pixbuf, - TEXT_COL, browser_entries_full[i].icon_descr, - PAGE_NUMBER, browser_entries_full[i].page_number, - -1); - - if (pixbuf != NULL) { - gdk_pixbuf_unref(pixbuf); - } else { - DEBUG("Couldn't load icon: %s", error->message); - g_clear_error(&error); - } - } - - return GTK_TREE_MODEL(store); -} diff --git a/gnome/src/config/shortcuts-config.c b/gnome/src/config/shortcuts-config.c index ba3fc72ff9b80430d6c7a76893fae82ce7dd85af..450ada7d2315745325b1715029a89d39a94fd9f5 100644 --- a/gnome/src/config/shortcuts-config.c +++ b/gnome/src/config/shortcuts-config.c @@ -28,12 +28,12 @@ * as that of the covered work. */ +#include <gdk/gdk.h> #include "shortcuts-config.h" #include "shortcuts.h" #include "unused.h" #include "logger.h" -#include <gdk/gdkx.h> static void accel_cleared(GtkCellRendererAccel *renderer UNUSED, gchar *path, @@ -61,10 +61,8 @@ accel_edited(GtkCellRendererAccel *renderer UNUSED, gchar *path, guint accel_key gtk_tree_model_get_iter_first(model, &iter); Accelerator* list = shortcuts_get_list(); - const guint code = XKeysymToKeycode(GDK_DISPLAY(), accel_key); - guint i = 0; - - while (list[i].action != NULL) { + const guint code = XKeysymToKeycode(GDK_DISPLAY_XDISPLAY(gdk_display_get_default()), accel_key); + for (guint i = 0; list[i].action != NULL; ++i) { if (list[i].key == code && list[i].mask == mask) { gtk_list_store_set(GTK_LIST_STORE(model), &iter, MASK, 0, VALUE, 0, -1); @@ -72,7 +70,6 @@ accel_edited(GtkCellRendererAccel *renderer UNUSED, gchar *path, guint accel_key } gtk_tree_model_iter_next(model, &iter); - i++; } // Update treeview @@ -127,15 +124,12 @@ create_shortcuts_settings() Accelerator* list = shortcuts_get_list(); - guint i = 0; - - while (list[i].action != NULL) { + for (guint i = 0; list[i].action != NULL; ++i) { GtkTreeIter iter; gtk_list_store_append(store, &iter); gtk_list_store_set(store, &iter, ACTION, _(list[i].action), MASK, (gint) list[i].mask, VALUE, - XKeycodeToKeysym(GDK_DISPLAY(), list[i].key, 0), -1); - i++; + XKeycodeToKeysym(GDK_DISPLAY_XDISPLAY(gdk_display_get_default()), list[i].key, 0), -1); } gtk_tree_view_set_model(GTK_TREE_VIEW(treeview), GTK_TREE_MODEL(store)); diff --git a/gnome/src/config/tlsadvanceddialog.c b/gnome/src/config/tlsadvanceddialog.c index e7552bc191605591d7ef22e704cf53751651fa2f..5fc6852507b5912c0eae4c255136a25c47c860b3 100644 --- a/gnome/src/config/tlsadvanceddialog.c +++ b/gnome/src/config/tlsadvanceddialog.c @@ -191,8 +191,8 @@ void show_advanced_tls_options(GHashTable * properties) gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5); gchar** supported_tls_method = dbus_get_supported_tls_method(); - GtkTreeIter supported_tls_method_iter = iter; + GtkTreeIter supported_tls_method_iter; for (char **supported_tls_method_ptr = supported_tls_method; supported_tls_method_ptr && *supported_tls_method_ptr; supported_tls_method_ptr++) { gtk_list_store_append(tlsProtocolMethodListStore, &iter); gtk_list_store_set(tlsProtocolMethodListStore, &iter, 0, *supported_tls_method_ptr, -1); @@ -268,7 +268,6 @@ void show_advanced_tls_options(GHashTable * properties) gtk_widget_show_all(ret); if (gtk_dialog_run(GTK_DIALOG(tlsDialog)) == GTK_RESPONSE_ACCEPT) { - g_hash_table_replace(properties, g_strdup(TLS_LISTENER_PORT), g_strdup((gchar *) gtk_entry_get_text(GTK_ENTRY(tlsListenerPort)))); @@ -287,7 +286,7 @@ void show_advanced_tls_options(GHashTable * properties) g_hash_table_replace(properties, g_strdup(TLS_METHOD), - g_strdup((gchar *) gtk_combo_box_get_active_text(GTK_COMBO_BOX(tlsProtocolMethodCombo)))); + g_strdup((gchar *) gtk_combo_box_text_get_active_text(GTK_COMBO_BOX_TEXT(tlsProtocolMethodCombo)))); g_hash_table_replace(properties, g_strdup(TLS_CIPHERS), diff --git a/gnome/src/contacts/Makefile.am b/gnome/src/contacts/Makefile.am index b6fc155e2d235066265732629dd4c3622680360d..9c2343de99e5c356e2308252924acd41dcdd3ebd 100644 --- a/gnome/src/contacts/Makefile.am +++ b/gnome/src/contacts/Makefile.am @@ -20,9 +20,7 @@ libcontacts_la_SOURCES = \ searchbar.h libcontacts_la_LDFLAGS = $(DBUSGLIB_LDFLAGS) $(LIBNOTIFY_LDFLAGS) \ - $(GTK_LDFLAGS) $(GLIB_LDFLAGS) $(WEBKIT_LDFLAGS) $(LIBGNOMEUI_LDFLAGS) \ - $(GNOMEDOCUTILS_LDFLAGS) + $(GTK_LDFLAGS) $(GLIB_LDFLAGS) $(WEBKIT_LDFLAGS) libcontacts_la_CFLAGS = $(DBUSGLIB_CFLAGS) $(LIBNOTIFY_CFLAGS) \ - $(GTK_CFLAGS) $(GLIB_CFLAGS) $(WEBKIT_CFLAGS) $(LIBGNOMEUI_CFLAGS) \ - $(GNOMEDOCUTILS_CFLAGS) + $(GTK_CFLAGS) $(GLIB_CFLAGS) $(WEBKIT_CFLAGS) $(GCONF_CFLAGS) diff --git a/gnome/src/contacts/searchbar.c b/gnome/src/contacts/searchbar.c index 6a14a7e18dbac3dfd229f42706edf0bb5c6e7da2..2ef065ee5811d1295663d53eb945f19f1b135a4c 100644 --- a/gnome/src/contacts/searchbar.c +++ b/gnome/src/contacts/searchbar.c @@ -76,7 +76,7 @@ static void cbox_changed_cb(GtkWidget *widget, gpointer user_data UNUSED) if (!addrbook) return; - addrbook->set_current_book(gtk_combo_box_get_active_text(GTK_COMBO_BOX(widget))); + addrbook->set_current_book(gtk_combo_box_text_get_active_text(GTK_COMBO_BOX_TEXT(widget))); AddressBook_Config *addressbook_config = addressbook_config_load_parameters(); addrbook->search(addrbook->search_cb, GTK_ENTRY(addressbookentry), addressbook_config); } @@ -89,7 +89,6 @@ void set_focus_on_addressbook_searchbar() void update_searchbar_addressbook_list() { GtkTreeIter iter, activeIter; - gchar *activeText; GSList *book_list_iterator; book_data_t *book_data; GSList *books_data = NULL; @@ -104,16 +103,14 @@ void update_searchbar_addressbook_list() DEBUG("Searchbar: Update addressbook list"); - // we must disconnect signal from teh cbox while updating its content - gtk_signal_disconnect(cbox, cboxSignalId); + // we must disconnect signal from the cbox while updating its content + g_signal_handler_disconnect(cbox, cboxSignalId); // store the current active text - activeText = g_strdup(gtk_combo_box_get_active_text(GTK_COMBO_BOX(cbox))); - - if (activeText == NULL) { + gchar *activeText = g_strdup(gtk_combo_box_text_get_active_text(GTK_COMBO_BOX_TEXT(cbox))); + if (activeText == NULL) activeText = g_strdup(""); - } gtk_list_store_clear(liststore); @@ -143,19 +140,17 @@ void update_searchbar_addressbook_list() addrbook->set_current_book(activeText); } else { gtk_combo_box_set_active(GTK_COMBO_BOX(cbox), 0); - gtk_combo_box_get_active_text(GTK_COMBO_BOX(cbox)); - addrbook->set_current_book(gtk_combo_box_get_active_text(GTK_COMBO_BOX(cbox))); + addrbook->set_current_book(gtk_combo_box_text_get_active_text(GTK_COMBO_BOX_TEXT(cbox))); } } g_free(activeText); - cboxSignalId = gtk_signal_connect(GTK_OBJECT(cbox), "changed", G_CALLBACK(cbox_changed_cb), NULL); + cboxSignalId = g_signal_connect(G_OBJECT(cbox), "changed", G_CALLBACK(cbox_changed_cb), NULL); } static void select_search_type(GtkWidget *item, GtkEntry *entry UNUSED) { - if (addrbook) { DEBUG("Searchbar: %s", gtk_menu_item_get_label(GTK_MENU_ITEM(item))); @@ -175,6 +170,8 @@ static void select_search_type(GtkWidget *item, GtkEntry *entry UNUSED) addrbook->search(addrbook->search_cb, GTK_ENTRY(addressbookentry), addressbook_config); } + AddressBook_Config *addressbook_config = addressbook_config_load_parameters(); + addrbook->search (addrbook->search_cb, GTK_ENTRY (addressbookentry), addressbook_config); } static void search_all(GtkWidget *item UNUSED, GtkEntry *entry) @@ -343,10 +340,9 @@ GtkWidget* history_searchbar_new(void) GtkWidget* contacts_searchbar_new() { - GtkWidget *ret; GtkWidget *align; - int count, cbox_height, cbox_width; + int count; GtkTreeIter iter, activeIter; GtkCellRenderer *cell; gchar **book_list; @@ -408,11 +404,11 @@ GtkWidget* contacts_searchbar_new() gtk_alignment_set_padding(GTK_ALIGNMENT(align), 0, 2, 6, 6); gtk_container_add(GTK_CONTAINER(align), cbox); + gint cbox_width, cbox_height; gtk_widget_get_size_request(GTK_WIDGET(cbox), &cbox_width, &cbox_height); gtk_widget_set_size_request(GTK_WIDGET(cbox), cbox_width, 26); - cboxSignalId = gtk_signal_connect(GTK_OBJECT(cbox), "changed", G_CALLBACK(cbox_changed_cb), NULL); - // cbox_changed_cb (GTK_WIDGET (cbox), NULL); + cboxSignalId = g_signal_connect(G_OBJECT(cbox), "changed", G_CALLBACK(cbox_changed_cb), NULL); cell = gtk_cell_renderer_text_new(); gtk_cell_layout_pack_start(GTK_CELL_LAYOUT(cbox), cell, TRUE); @@ -430,7 +426,6 @@ GtkWidget* contacts_searchbar_new() gtk_entry_set_icon_tooltip_text(GTK_ENTRY(addressbookentry), GTK_ENTRY_ICON_PRIMARY, tooltip_text); - // Set the clean insensitive text_changed_cb(GTK_ENTRY(addressbookentry), NULL); @@ -454,23 +449,10 @@ GtkWidget* contacts_searchbar_new() g_free(tooltip_text); g_strfreev(book_list); - // current_addressbook = gtk_combo_box_get_active_text (GTK_COMBO_BOX (cbox)); - // set_current_addressbook (current_addressbook); - return ret; } -void activateWaitingLayer() -{ - gtk_widget_show(waitingLayer); -} - -void deactivateWaitingLayer() -{ - gtk_widget_hide(waitingLayer); -} - -SearchType get_current_history_search_type(void) +SearchType get_current_history_search_type (void) { return HistorySearchType; } diff --git a/gnome/src/dbus/Makefile.am b/gnome/src/dbus/Makefile.am index c9fa5b156f89c82f446802678c8fd0c07570f22d..4c5ce7683b9290ca6b56a7207e8e16819d272797 100644 --- a/gnome/src/dbus/Makefile.am +++ b/gnome/src/dbus/Makefile.am @@ -26,15 +26,13 @@ libdbus_la_SOURCES= \ $(BUILT_SOURCES) libdbus_la_LDFLAGS= $(DBUSGLIB_LDFLAGS) $(LIBNOTIFY_LDFLAGS) \ - $(GTK_LDFLAGS) $(GLIB_LDFLAGS) $(WEBKIT_LDFLAGS) $(LIBGNOMEUI_LDFLAGS) \ - $(GNOMEDOCUTILS_LDFLAGS) + $(GTK_LDFLAGS) $(GLIB_LDFLAGS) $(WEBKIT_LDFLAGS) \ + $(GCONF_LDFLAGS) libdbus_la_CFLAGS= $(DBUSGLIB_CFLAGS) $(LIBNOTIFY_CFLAGS) \ - $(GTK_CFLAGS) $(GLIB_CFLAGS) $(WEBKIT_CFLAGS) $(LIBGNOMEUI_CFLAGS) \ - $(GNOMEDOCUTILS_CFLAGS) + $(GTK_CFLAGS) $(GLIB_CFLAGS) $(WEBKIT_CFLAGS) \ + $(GCONF_CFLAGS) -EXTRA_DIST= \ - marshaller.list +EXTRA_DIST= marshaller.list -CLEANFILES= \ - $(BUILT_SOURCES) +CLEANFILES= $(BUILT_SOURCES) diff --git a/gnome/src/eel-gconf-extensions.c b/gnome/src/eel-gconf-extensions.c index eca8c5ce29c7d230acf59e795659b9e60b28b29b..c1947f24ae8ad3a10529d974a2dbc19e393dc7f7 100644 --- a/gnome/src/eel-gconf-extensions.c +++ b/gnome/src/eel-gconf-extensions.c @@ -23,13 +23,13 @@ */ #include <stdlib.h> -#include <config.h> +#include "config.h" #include "eel-gconf-extensions.h" #include <gconf/gconf-client.h> #include <gconf/gconf.h> #include <gtk/gtk.h> -#include <libgnome/gnome-i18n.h> +#include <glib/gi18n.h> static GConfClient *global_gconf_client = NULL; diff --git a/gnome/src/icons/Makefile.am b/gnome/src/icons/Makefile.am index b9cdfbdcbf420f6508f0372cacb136c3a9d623bc..ecb4274268bf03772f37b30e7f99547d4a3b7dbf 100644 --- a/gnome/src/icons/Makefile.am +++ b/gnome/src/icons/Makefile.am @@ -7,9 +7,7 @@ libicons_la_SOURCES = icon_factory.c \ pixmap_data.h libicons_la_LDFLAGS = $(DBUSGLIB_LDFLAGS) $(LIBNOTIFY_LDFLAGS) \ - $(GTK_LDFLAGS) $(GLIB_LDFLAGS) $(WEBKIT_LDFLAGS) $(LIBGNOMEUI_LDFLAGS) \ - $(GNOMEDOCUTILS_LDFLAGS) + $(GTK_LDFLAGS) $(GLIB_LDFLAGS) $(WEBKIT_LDFLAGS) libicons_la_CFLAGS = $(DBUSGLIB_CFLAGS) $(LIBNOTIFY_CFLAGS) \ - $(GTK_CFLAGS) $(GLIB_CFLAGS) $(WEBKIT_CFLAGS) $(LIBGNOMEUI_CFLAGS) \ - $(GNOMEDOCUTILS_CFLAGS) + $(GTK_CFLAGS) $(GLIB_CFLAGS) $(WEBKIT_CFLAGS) diff --git a/gnome/src/icons/icon_factory.c b/gnome/src/icons/icon_factory.c index 8a8093ea7d234db4f73cf4454a538334c00560cf..3d66d611bcf4a51b4bfa2adc46e3974f239aaf54 100644 --- a/gnome/src/icons/icon_factory.c +++ b/gnome/src/icons/icon_factory.c @@ -39,15 +39,11 @@ static GtkIconFactory *icon_factory = NULL; void add_icon(GtkIconFactory *factory, const gchar *stock_id, const guint8 *icon_data, GtkIconSize size) { - GtkIconSet *icons; - GtkIconSource *source; - GdkPixbuf *pixbuf; - - icons = gtk_icon_factory_lookup(factory, stock_id); + GtkIconSet *icons = gtk_icon_factory_lookup(factory, stock_id); if (!icons) { - pixbuf = gdk_pixbuf_new_from_inline(-1, icon_data, FALSE, NULL); - source = gtk_icon_source_new(); + GdkPixbuf *pixbuf = gdk_pixbuf_new_from_inline(-1, icon_data, FALSE, NULL); + GtkIconSource *source = gtk_icon_source_new(); gtk_icon_source_set_pixbuf(source, pixbuf); gtk_icon_source_set_size(source, size); diff --git a/gnome/src/icons/icon_factory.h b/gnome/src/icons/icon_factory.h index 2443cfca69ee57ba505199f21fde6d4c0a6348d2..974714a57b4cc4a3677202e8e40151566fbdff10 100644 --- a/gnome/src/icons/icon_factory.h +++ b/gnome/src/icons/icon_factory.h @@ -44,6 +44,7 @@ #define GTK_STOCK_SFLPHONE "gnome-stock-sflphone" #define GTK_STOCK_FAIL "gnome-stock-fail" #define GTK_STOCK_USER "gnome-stock-user" +#define GTK_STOCK_AUDIO_CARD "audio-card" void init_icon_factory (void); diff --git a/gnome/src/imwindow.c b/gnome/src/imwindow.c index 43d8608033dc3652abaf9caca7332b042a6deb09..cc37883111ccf3ca24b4ce848f1c028f35d91ffe 100644 --- a/gnome/src/imwindow.c +++ b/gnome/src/imwindow.c @@ -81,7 +81,7 @@ on_delete(GtkWidget * widget UNUSED, gpointer data UNUSED) } static void -on_switch_page(GtkNotebook *notebook, GtkNotebookPage *page UNUSED, guint page_num, gpointer userdata UNUSED) +on_switch_page(GtkNotebook *notebook, gpointer page UNUSED, guint page_num, gpointer userdata UNUSED) { GtkWidget *tab = gtk_notebook_get_nth_page(GTK_NOTEBOOK(notebook), page_num); diff --git a/gnome/src/main.c b/gnome/src/main.c index 027099114c1f2e1ec3e774ecada02dfcb13e66b6..5998bbcc681e4418462c76a85bafe0598d43101a 100644 --- a/gnome/src/main.c +++ b/gnome/src/main.c @@ -28,17 +28,14 @@ * as that of the covered work. */ -#include <actions.h> -#include <calllist.h> -#include <config.h> -#include <logger.h> -#include <dbus/dbus.h> -#include <mainwindow.h> -#include <statusicon.h> -#include <libgnome/libgnome.h> -#include <libgnomeui/libgnomeui.h> -#include <eel-gconf-extensions.h> - +#include "actions.h" +#include "calllist.h" +#include "config.h" +#include "logger.h" +#include "dbus/dbus.h" +#include "mainwindow.h" +#include "statusicon.h" +#include "eel-gconf-extensions.h" #include <gtk/gtk.h> #include <stdlib.h> @@ -85,11 +82,6 @@ main(int argc, char *argv[]) bindtextdomain("sflphone-client-gnome", LOCALEDIR); textdomain("sflphone-client-gnome"); - // Initialises the GNOME libraries - gnome_program_init("sflphone", VERSION, LIBGNOMEUI_MODULE, argc, argv, - GNOME_PROGRAM_STANDARD_PROPERTIES, - NULL) ; - if (!sflphone_init(&error)) { ERROR(error->message); GtkWidget *dialog = gtk_message_dialog_new( diff --git a/gnome/src/mainwindow.c b/gnome/src/mainwindow.c index eea520d9f4430efcc776583783778507a3cc8feb..91d2bcd537ecfd3dff5ef540e0d7d3b64ae254c7 100644 --- a/gnome/src/mainwindow.c +++ b/gnome/src/mainwindow.c @@ -43,23 +43,17 @@ #include "contacts/searchbar.h" #include "statusicon.h" /* for set_minimized */ #include "assistant.h" -#include "widget/gtkscrollbook.h" #include "widget/minidialog.h" #include "uimanager.h" #include "unused.h" #include "config/audioconf.h" +#include "eel-gconf-extensions.h" + #include <sys/stat.h> #include <gtk/gtk.h> -/* Backward compatibility for gtk < 2.22.0 */ -#if GTK_CHECK_VERSION(2,22,0) -#include <gdk/gdkkeysyms-compat.h> -#else #include <gdk/gdkkeysyms.h> -#endif - -#include <eel-gconf-extensions.h> /** Local variables */ static GtkUIManager *ui_manager; @@ -71,7 +65,6 @@ static GtkWidget *dialpad; static GtkWidget *speaker_control; static GtkWidget *mic_control; static GtkWidget *statusBar; -static PidginScrollBook *embedded_error_notebook; static gchar *status_current_message; static GMutex *gmutex; @@ -152,7 +145,7 @@ on_key_released(GtkWidget *widget UNUSED, GdkEventKey *event, gpointer user_data if (focus_is_on_searchbar) return TRUE; - if (event->keyval == GDK_Return) { + if (event->keyval == GDK_KEY_Return) { if (active_calltree_tab == current_calls_tab) { sflphone_keypad(event->keyval, event->string); return TRUE; @@ -165,13 +158,13 @@ on_key_released(GtkWidget *widget UNUSED, GdkEventKey *event, gpointer user_data event->keyval == '<' || event->keyval == '>' || event->keyval == '\"'|| - event->keyval == GDK_Tab || - event->keyval == GDK_Return || - event->keyval == GDK_Left || - event->keyval == GDK_Up || - event->keyval == GDK_Right || - event->keyval == GDK_Down || - (event->keyval >= GDK_F1 && event->keyval <= GDK_F12) || + event->keyval == GDK_KEY_Tab || + event->keyval == GDK_KEY_Return || + event->keyval == GDK_KEY_Left || + event->keyval == GDK_KEY_Up || + event->keyval == GDK_KEY_Right || + event->keyval == GDK_KEY_Down || + (event->keyval >= GDK_KEY_F1 && event->keyval <= GDK_KEY_F12) || event->keyval == ' ') return FALSE; else @@ -252,10 +245,6 @@ create_main_window() gtk_box_pack_start(GTK_BOX(vbox), subvbox, FALSE /*expand*/, FALSE /*fill*/, 0 /*padding*/); - embedded_error_notebook = PIDGIN_SCROLL_BOOK(pidgin_scroll_book_new()); - gtk_box_pack_start(GTK_BOX(subvbox), GTK_WIDGET(embedded_error_notebook), - FALSE, FALSE, 0); - if (SHOW_VOLUME) { speaker_control = create_slider("speaker"); gtk_box_pack_end(GTK_BOX(subvbox), speaker_control, FALSE /*expand*/, @@ -392,17 +381,22 @@ statusbar_update_clock(const gchar * const msg) g_free(message); } + static void -add_error_dialog(GtkWidget *dialog, callable_obj_t * call) +destroy_error_dialog_cb(GtkWidget *dialog UNUSED, GtkWidget *win) { - gtk_container_add(GTK_CONTAINER(embedded_error_notebook), dialog); - call_add_error(call, dialog); + gtk_widget_destroy(win); } static void -destroy_error_dialog_cb(GtkObject *dialog, callable_obj_t * call) +add_error_dialog(GtkWidget *dialog) { - call_remove_error(call, dialog); + GtkWidget *win = gtk_window_new(GTK_WINDOW_TOPLEVEL); + gtk_container_add(GTK_CONTAINER(win), dialog); + + g_signal_connect_after(dialog, "destroy", (GCallback)destroy_error_dialog_cb, win); + + gtk_widget_show(win); } void @@ -420,9 +414,9 @@ main_window_zrtp_not_supported(callable_obj_t * c) DEBUG("Account is null callID %s", c->_callID); GHashTable * properties = sflphone_get_ip2ip_properties(); - if (properties != NULL) - warning_enabled = g_hash_table_lookup(properties, - ACCOUNT_ZRTP_NOT_SUPP_WARNING); + if (properties) + warning_enabled = g_hash_table_lookup (properties, + ACCOUNT_ZRTP_NOT_SUPP_WARNING); } if (g_strcasecmp(warning_enabled, "true") == 0) { @@ -437,9 +431,7 @@ main_window_zrtp_not_supported(callable_obj_t * c) pidgin_mini_dialog_add_button(mini_dialog, _("Stop Call"), sflphone_hang_up, NULL); - g_signal_connect_after(mini_dialog, "destroy", (GCallback)destroy_error_dialog_cb, c); - - add_error_dialog(GTK_WIDGET(mini_dialog), c); + add_error_dialog(GTK_WIDGET(mini_dialog)); } } @@ -465,8 +457,7 @@ main_window_zrtp_negotiation_failed(const gchar* const callID, const gchar* cons pidgin_mini_dialog_add_button(mini_dialog, _("Stop Call"), sflphone_hang_up, NULL); - g_signal_connect_after(mini_dialog, "destroy",(GCallback) destroy_error_dialog_cb, c); - add_error_dialog(GTK_WIDGET(mini_dialog), c); + add_error_dialog(GTK_WIDGET(mini_dialog)); } void @@ -483,5 +474,5 @@ main_window_confirm_go_clear(callable_obj_t * c) pidgin_mini_dialog_add_button(mini_dialog, _("Stop Call"), sflphone_hang_up, NULL); - add_error_dialog(GTK_WIDGET(mini_dialog), c); + add_error_dialog(GTK_WIDGET(mini_dialog)); } diff --git a/gnome/src/sflnotify.c b/gnome/src/sflnotify.c index 8aef29f78a7a6dbfc680fefb7c23ceb8a809899a..622c67ab302c2e108e090c332009c3fa7dc52293 100644 --- a/gnome/src/sflnotify.c +++ b/gnome/src/sflnotify.c @@ -27,9 +27,9 @@ * shall include the source code for the parts of OpenSSL used as well * as that of the covered work. */ -#include "eel-gconf-extensions.h" #include "config.h" +#include "eel-gconf-extensions.h" #include "sflnotify.h" #include "logger.h" @@ -49,16 +49,8 @@ create_new_gnome_notification(gchar *title, gchar *body, NotifyUrgency urgency, notify_init("SFLphone"); // Set struct fields -#ifdef LIBNOTIFY_VERSION_0_7_2 notif.notification = notify_notification_new(title, body, NULL); -#else - notif.notification = notify_notification_new(title, body, NULL, NULL); -#endif notif.icon = gdk_pixbuf_new_from_file(LOGO_SMALL, NULL); -#ifdef LIBNOTIFY_VERSION_0_7_2 -#else - notify_notification_attach_to_status_icon(notif.notification , get_status_icon()); -#endif notify_notification_set_urgency(notif.notification, urgency); diff --git a/gnome/src/shortcuts.c b/gnome/src/shortcuts.c index 014e4298d323913884ac03e6be87448633a7827a..b35333bcec4d894f8b244c17cffe9727a632122c 100644 --- a/gnome/src/shortcuts.c +++ b/gnome/src/shortcuts.c @@ -49,11 +49,10 @@ #include "unused.h" static void -ungrab_key(guint key, GdkModifierType mask, const GdkWindow *root); +ungrab_key(guint key, GdkModifierType mask, GdkWindow *root); static void -grab_key(guint key, GdkModifierType mask, const GdkWindow *root); - +grab_key(guint key, GdkModifierType mask, GdkWindow *root); // used to store accelerator config static Accelerator* accelerators_list; @@ -72,36 +71,18 @@ static GHashTable* shortcutsMap; static GdkFilterReturn filter_keys(const GdkXEvent *xevent, const GdkEvent *event UNUSED, gpointer data UNUSED) { - XEvent *xev = NULL; - XKeyEvent *key = NULL; - GdkModifierType keystate = 0; - int i = 0; - - xev = (XEvent *) xevent; - - if (xev->type != KeyPress) { + if (((XEvent *) xevent)->type != KeyPress) return GDK_FILTER_CONTINUE; - } - - key = (XKeyEvent *) xevent; - keystate = key->state & ~(Mod2Mask | Mod5Mask | LockMask); - // try to find corresponding action - while (accelerators_list[i].action != NULL) { - if (accelerators_list[i].key == key->keycode && accelerators_list[i].mask - == keystate) { - DEBUG("Shortcuts: Catched key for action: %s", accelerators_list[i].action, - accelerators_list[i].key); + XKeyEvent *key = (XKeyEvent *) xevent; + GdkModifierType keystate = key->state & ~(Mod2Mask | Mod5Mask | LockMask); - // call associated callback function + for (int i = 0; accelerators_list[i].action; ++i) + if (accelerators_list[i].key == key->keycode && accelerators_list[i].mask == keystate) { accelerators_list[i].callback(); - return GDK_FILTER_REMOVE; } - i++; - } - return GDK_FILTER_CONTINUE; } @@ -491,62 +472,54 @@ shortcuts_get_list() * Remove key "catcher" from GDK layer */ static void -ungrab_key(guint key, GdkModifierType mask, const GdkWindow *root) +ungrab_key(guint key, GdkModifierType mask, GdkWindow *root) { DEBUG("Shortcuts: Ungrabbing key %d+%d", mask, key); gdk_error_trap_push(); - - XUngrabKey(GDK_DISPLAY(), key, mask, GDK_WINDOW_XID((GdkDrawable*) root)); - XUngrabKey(GDK_DISPLAY(), key, Mod2Mask | mask, GDK_WINDOW_XID((GdkDrawable*) root)); - XUngrabKey(GDK_DISPLAY(), key, Mod5Mask | mask, GDK_WINDOW_XID((GdkDrawable*) root)); - XUngrabKey(GDK_DISPLAY(), key, LockMask | mask, GDK_WINDOW_XID((GdkDrawable*) root)); - XUngrabKey(GDK_DISPLAY(), key, Mod2Mask | Mod5Mask | mask, - GDK_WINDOW_XID((GdkDrawable*) root)); - XUngrabKey(GDK_DISPLAY(), key, Mod2Mask | LockMask | mask, - GDK_WINDOW_XID((GdkDrawable*) root)); - XUngrabKey(GDK_DISPLAY(), key, Mod5Mask | LockMask | mask, - GDK_WINDOW_XID((GdkDrawable*) root)); - XUngrabKey(GDK_DISPLAY(), key, Mod2Mask | Mod5Mask | LockMask | mask, - GDK_WINDOW_XID((GdkDrawable*) root)); + Display *d = GDK_DISPLAY_XDISPLAY(gdk_display_get_default()); + XID x = GDK_WINDOW_XID(root); + + XUngrabKey(d, key, mask | 0, x); + XUngrabKey(d, key, mask | Mod2Mask, x); + XUngrabKey(d, key, mask | Mod5Mask, x); + XUngrabKey(d, key, mask | LockMask, x); + XUngrabKey(d, key, mask | Mod2Mask | LockMask, x); + XUngrabKey(d, key, mask | Mod2Mask | Mod5Mask, x); + XUngrabKey(d, key, mask | Mod2Mask | LockMask, x); + XUngrabKey(d, key, mask | Mod5Mask | LockMask, x); + XUngrabKey(d, key, mask | Mod2Mask | Mod5Mask | LockMask, x); gdk_flush(); - if (gdk_error_trap_pop()) { + if (gdk_error_trap_pop()) ERROR("Shortcuts: Error: Ungrabbing key %d+%d", mask, key); - } } /* * Add key "catcher" to GDK layer */ static void -grab_key(guint key, GdkModifierType mask, const GdkWindow *root) +grab_key(guint key, GdkModifierType mask, GdkWindow *root) { gdk_error_trap_push(); DEBUG("Shortcuts: Grabbing key %d+%d", mask, key); - XGrabKey(GDK_DISPLAY(), key, mask, GDK_WINDOW_XID((GdkDrawable*) root), True, - GrabModeAsync, GrabModeAsync); - XGrabKey(GDK_DISPLAY(), key, Mod2Mask | mask, GDK_WINDOW_XID((GdkDrawable*) root), True, - GrabModeAsync, GrabModeAsync); - XGrabKey(GDK_DISPLAY(), key, Mod5Mask | mask, GDK_WINDOW_XID((GdkDrawable*) root), True, - GrabModeAsync, GrabModeAsync); - XGrabKey(GDK_DISPLAY(), key, LockMask | mask, GDK_WINDOW_XID((GdkDrawable*) root), True, - GrabModeAsync, GrabModeAsync); - XGrabKey(GDK_DISPLAY(), key, Mod2Mask | Mod5Mask | mask, - GDK_WINDOW_XID((GdkDrawable*) root), True, GrabModeAsync, GrabModeAsync); - XGrabKey(GDK_DISPLAY(), key, Mod2Mask | LockMask | mask, - GDK_WINDOW_XID((GdkDrawable*) root), True, GrabModeAsync, GrabModeAsync); - XGrabKey(GDK_DISPLAY(), key, Mod5Mask | LockMask | mask, - GDK_WINDOW_XID((GdkDrawable*) root), True, GrabModeAsync, GrabModeAsync); - XGrabKey(GDK_DISPLAY(), key, Mod2Mask | Mod5Mask | LockMask | mask, - GDK_WINDOW_XID((GdkDrawable*) root), True, GrabModeAsync, GrabModeAsync); + Display *d = GDK_DISPLAY_XDISPLAY(gdk_display_get_default()); + XID x = GDK_WINDOW_XID(root); + + XGrabKey(d, key, mask | 0, x, True, GrabModeAsync, GrabModeAsync); + XGrabKey(d, key, mask | Mod2Mask, x, True, GrabModeAsync, GrabModeAsync); + XGrabKey(d, key, mask | Mod5Mask, x, True, GrabModeAsync, GrabModeAsync); + XGrabKey(d, key, mask | LockMask, x, True, GrabModeAsync, GrabModeAsync); + XGrabKey(d, key, mask | Mod2Mask | Mod5Mask, x, True, GrabModeAsync, GrabModeAsync); + XGrabKey(d, key, mask | Mod2Mask | LockMask, x, True, GrabModeAsync, GrabModeAsync); + XGrabKey(d, key, mask | Mod5Mask | LockMask, x, True, GrabModeAsync, GrabModeAsync); + XGrabKey(d, key, mask | Mod2Mask | Mod5Mask | LockMask, x, True, GrabModeAsync, GrabModeAsync); gdk_flush(); - if (gdk_error_trap_pop()) { + if (gdk_error_trap_pop()) ERROR("Shortcuts: Error: Grabbing key %d+%d", mask, key); - } } diff --git a/gnome/src/sliders.c b/gnome/src/sliders.c index 85f869a55e57aea21994d7b8670782ab14a1a57b..16cfd8cdd7d7aa5a3249683eeda92e91737bae36 100644 --- a/gnome/src/sliders.c +++ b/gnome/src/sliders.c @@ -122,13 +122,13 @@ set_slider(const gchar * device, gdouble newval) else dev = MIKE; - gtk_signal_handler_block(GTK_OBJECT(slider[dev]), movedConnId[dev]); + g_signal_handler_block(G_OBJECT(slider[dev]), movedConnId[dev]); gtk_range_set_value(GTK_RANGE(slider[dev]), newval); - gtk_signal_handler_unblock(slider[dev], movedConnId[dev]); + g_signal_handler_unblock(slider[dev], movedConnId[dev]); - gtk_signal_handler_block(GTK_OBJECT(button[dev]),toggledConnId[dev]); + g_signal_handler_block(G_OBJECT(button[dev]),toggledConnId[dev]); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button[dev]), (newval == 0 ? TRUE: FALSE)); - gtk_signal_handler_unblock(button[dev], toggledConnId[dev]); + g_signal_handler_unblock(button[dev], toggledConnId[dev]); update_icons(dev); } diff --git a/gnome/src/statusicon.c b/gnome/src/statusicon.c index 60e12a186748ba8be34e554ce2510e5cc41ad461..2fe79ee9b61e5735d3aaf8f655dede4448c16107 100644 --- a/gnome/src/statusicon.c +++ b/gnome/src/statusicon.c @@ -40,7 +40,7 @@ static GtkStatusIcon *status; static GtkWidget *show_menu_item, *hangup_menu_item; -static gboolean __minimized = MINIMIZED; +static gboolean minimized_ = MINIMIZED; void popup_main_window(void) @@ -93,7 +93,7 @@ status_icon_unminimize() gboolean main_widget_minimized() { - return __minimized; + return minimized_; } void @@ -193,7 +193,7 @@ statusicon_set_tooltip() gchar *accounts = g_markup_printf_escaped(n_("%i active account", "%i active accounts", count), count); gchar *tip = g_markup_printf_escaped("%s - %s", _("SFLphone"), accounts); g_free(accounts); - gtk_status_icon_set_tooltip(status, tip); + gtk_status_icon_set_tooltip_markup(status, tip); g_free(tip); } } @@ -221,6 +221,6 @@ get_status_icon(void) void set_minimized(gboolean state) { - __minimized = state; + minimized_ = state; gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(show_menu_item), !state); } diff --git a/gnome/src/uimanager.c b/gnome/src/uimanager.c index 6f61b02f897551e2943426b2f9e4c8b1ba8e02d9..e3284b343a1decaca1af2956712978eb0540a3e9 100644 --- a/gnome/src/uimanager.c +++ b/gnome/src/uimanager.c @@ -37,7 +37,6 @@ #include <gtk/gtk.h> #include <string.h> #include <glib/gprintf.h> -#include <libgnome/gnome-help.h> #include "uimanager.h" #include "statusicon.h" @@ -53,6 +52,8 @@ #include "contacts/calltab.h" #include "config/addressbook-config.h" +#include "eel-gconf-extensions.h" + #include "accountlist.h" #include "config/accountlistconfigdialog.h" @@ -265,12 +266,12 @@ update_actions() gtk_toolbar_insert(GTK_TOOLBAR(toolbar_), GTK_TOOL_ITEM(holdToolbar_), pos++); gtk_toolbar_insert(GTK_TOOLBAR(toolbar_), GTK_TOOL_ITEM(transferToolbar_), pos++); gtk_toolbar_insert(GTK_TOOLBAR(toolbar_), GTK_TOOL_ITEM(recordWidget_), pos++); - gtk_signal_handler_block(GTK_OBJECT(transferToolbar_), transferButtonConnId_); + g_signal_handler_block(transferToolbar_, transferButtonConnId_); gtk_toggle_tool_button_set_active(GTK_TOGGLE_TOOL_BUTTON(transferToolbar_), FALSE); - gtk_signal_handler_unblock(transferToolbar_, transferButtonConnId_); - g_signal_handler_block(GTK_OBJECT(recordWidget_), recordButtonConnId_); + g_signal_handler_unblock(transferToolbar_, transferButtonConnId_); + g_signal_handler_block(recordWidget_, recordButtonConnId_); gtk_toggle_tool_button_set_active(GTK_TOGGLE_TOOL_BUTTON(recordWidget_), FALSE); - g_signal_handler_unblock(GTK_OBJECT(recordWidget_), recordButtonConnId_); + g_signal_handler_unblock(recordWidget_, recordButtonConnId_); if (instant_messaging_enabled) { gtk_action_set_sensitive(imAction_, TRUE); @@ -292,12 +293,12 @@ update_actions() gtk_toolbar_insert(GTK_TOOLBAR(toolbar_), GTK_TOOL_ITEM(holdToolbar_), pos++); gtk_toolbar_insert(GTK_TOOLBAR(toolbar_), GTK_TOOL_ITEM(transferToolbar_), pos++); gtk_toolbar_insert(GTK_TOOLBAR(toolbar_), GTK_TOOL_ITEM(recordWidget_), pos++); - gtk_signal_handler_block(GTK_OBJECT(transferToolbar_), transferButtonConnId_); + g_signal_handler_block(transferToolbar_, transferButtonConnId_); gtk_toggle_tool_button_set_active(GTK_TOGGLE_TOOL_BUTTON(transferToolbar_), FALSE); - gtk_signal_handler_unblock(transferToolbar_, transferButtonConnId_); - g_signal_handler_block(GTK_OBJECT(recordWidget_), recordButtonConnId_); + g_signal_handler_unblock(transferToolbar_, transferButtonConnId_); + g_signal_handler_block(recordWidget_, recordButtonConnId_); gtk_toggle_tool_button_set_active(GTK_TOGGLE_TOOL_BUTTON(recordWidget_), TRUE); - g_signal_handler_unblock(GTK_OBJECT(recordWidget_), recordButtonConnId_); + g_signal_handler_unblock(recordWidget_, recordButtonConnId_); if (instant_messaging_enabled) { gtk_action_set_sensitive(imAction_, TRUE); @@ -315,9 +316,9 @@ update_actions() case CALL_STATE_TRANSFER: gtk_toolbar_insert(GTK_TOOLBAR(toolbar_), GTK_TOOL_ITEM(hangUpWidget_), 1); gtk_toolbar_insert(GTK_TOOLBAR(toolbar_), GTK_TOOL_ITEM(transferToolbar_), 2); - gtk_signal_handler_block(GTK_OBJECT(transferToolbar_), transferButtonConnId_); + g_signal_handler_block(transferToolbar_, transferButtonConnId_); gtk_toggle_tool_button_set_active(GTK_TOGGLE_TOOL_BUTTON(transferToolbar_), TRUE); - gtk_signal_handler_unblock(transferToolbar_, transferButtonConnId_); + g_signal_handler_unblock(transferToolbar_, transferButtonConnId_); gtk_action_set_sensitive(hangUpAction_, TRUE); gtk_widget_set_sensitive(holdMenu_, TRUE); gtk_widget_set_sensitive(holdToolbar_, TRUE); @@ -465,9 +466,7 @@ static void help_contents_cb(GtkAction *action UNUSED) { GError *error = NULL; - - gnome_help_display("sflphone.xml", NULL, &error); - + gtk_show_uri(NULL, "ghelp:sflphone", GDK_CURRENT_TIME, &error); if (error != NULL) { g_warning("%s", error->message); g_error_free(error); @@ -477,8 +476,7 @@ help_contents_cb(GtkAction *action UNUSED) static void help_about(void * foo UNUSED) { - gchar - *authors[] = { + static const gchar *authors[] = { "Pierre-Luc Bacon <pierre-luc.bacon@savoirfairelinux.com>", "Jean-Philippe Barrette-LaPierre", "Pierre-Luc Beaudoin <pierre-luc.beaudoin@savoirfairelinux.com>", @@ -492,17 +490,21 @@ help_about(void * foo UNUSED) "Julien Plissonneau Duquene <julien.plissonneau.duquene@savoirfairelinux.com>", "Alexandre Savard <alexandre.savard@savoirfairelinux.com>", NULL }; - gchar *artists[] = { "Pierre-Luc Beaudoin <pierre-luc.beaudoin@savoirfairelinux.com>", - "Emmanuel Milou <emmanuel.milou@savoirfairelinux.com>", NULL - }; - - gtk_show_about_dialog(GTK_WINDOW(get_main_window()), "artists", artists, - "authors", authors, "comments", - _("SFLphone is a VoIP client compatible with SIP and IAX2 protocols."), - "copyright", "Copyright © 2004-2011 Savoir-faire Linux Inc.", "name", - PACKAGE, "title", _("About SFLphone"), "version", VERSION, "website", - "http://www.sflphone.org", NULL); + static const gchar *artists[] = { + "Pierre-Luc Beaudoin <pierre-luc.beaudoin@savoirfairelinux.com>", + "Emmanuel Milou <emmanuel.milou@savoirfairelinux.com>", NULL + }; + gtk_show_about_dialog(GTK_WINDOW(get_main_window()), + "artists", artists, + "authors", authors, + "comments", _("SFLphone is a VoIP client compatible with SIP and IAX2 protocols."), + "copyright", "Copyright © 2004-2011 Savoir-faire Linux Inc.", + "name", PACKAGE, + "title", _("About SFLphone"), + "version", VERSION, + "website", "http://www.sflphone.org", + NULL); } /* ----------------------------------------------------------------- */ @@ -948,7 +950,6 @@ toggle_addressbook_cb(GtkToggleAction *action, gpointer user_data UNUSED) } static const GtkActionEntry menu_entries[] = { - // Call Menu { "Call", NULL, N_("Call"), NULL, NULL, NULL}, { @@ -1028,19 +1029,13 @@ static const GtkActionEntry menu_entries[] = { // Help menu { "Help", NULL, N_("_Help"), NULL, NULL, NULL }, - { - "HelpContents", GTK_STOCK_HELP, N_("Contents"), "F1", - N_("Open the manual"), G_CALLBACK(help_contents_cb) - }, - { - "About", GTK_STOCK_ABOUT, NULL, NULL, - N_("About this application"), G_CALLBACK(help_about) - } - + { "HelpContents", GTK_STOCK_HELP, N_("Contents"), "F1", + N_("Open the manual"), G_CALLBACK(help_contents_cb) }, + { "About", GTK_STOCK_ABOUT, NULL, NULL, + N_("About this application"), G_CALLBACK(help_about) } }; static const GtkToggleActionEntry toggle_menu_entries[] = { - { "Transfer", GTK_STOCK_TRANSFER, N_("_Transfer"), "<control>T", N_("Transfer the call"), NULL, TRUE }, { "Record", GTK_STOCK_MEDIA_RECORD, N_("_Record"), "<control>R", N_("Record the current conversation"), NULL, TRUE }, { "Toolbar", NULL, N_("_Show toolbar"), "<control>T", N_("Show the toolbar"), NULL, TRUE }, diff --git a/gnome/src/widget/Makefile.am b/gnome/src/widget/Makefile.am index 7d67024bd31d970a0a517caabb678ef8b795747e..180597ee25f8970c72a8a187b8e2e75e77fdd73d 100644 --- a/gnome/src/widget/Makefile.am +++ b/gnome/src/widget/Makefile.am @@ -2,23 +2,14 @@ include ../../globals.mak noinst_LTLIBRARIES = libwidget.la -libwidget_la_SOURCES = \ - gtkscrollbook.c \ - gtkscrollbook.h \ - minidialog.h \ - minidialog.c \ - imwidget.c \ - imwidget.h +libwidget_la_SOURCES = minidialog.h minidialog.c imwidget.c imwidget.h libwidget_la_LDFLAGS = $(DBUSGLIB_LDFLAGS) $(LIBNOTIFY_LDFLAGS) \ - $(GTK_LDFLAGS) $(GLIB_LDFLAGS) $(WEBKIT_LDFLAGS) $(LIBGNOMEUI_LDFLAGS) \ - $(GNOMEDOCUTILS_LDFLAGS) + $(GTK_LDFLAGS) $(GLIB_LDFLAGS) $(WEBKIT_LDFLAGS) libwidget_la_LIBADD = $(DBUSGLIB_LIBS) $(LIBNOTIFY_LIBS) \ - $(GTK_LIBS) $(GLIB_LIBS) $(WEBKIT_LIBS) $(LIBGNOMEUI_LIBS) \ - $(GNOMEDOCUTILS_LIBS) + $(GTK_LIBS) $(GLIB_LIBS) $(WEBKIT_LIBS) libwidget_la_CFLAGS = $(DBUSGLIB_CFLAGS) $(LIBNOTIFY_CFLAGS) \ $(GTK_CFLAGS) $(GLIB_CFLAGS) $(WEBKIT_CFLAGS) $(LIBEBOOK_CFLAGS) \ - $(LIBEDATASERVER_CFLAGS) $(LIBEDATASERVERUI_CFLAGS) $(LIBGNOMEUI_CFLAGS) \ - $(GNOMEDOCUTILS_CFLAGS) + $(LIBEDATASERVER_CFLAGS) $(LIBEDATASERVERUI_CFLAGS) diff --git a/gnome/src/widget/gtkscrollbook.c b/gnome/src/widget/gtkscrollbook.c deleted file mode 100644 index 0e8d5e9556a55bb2a4e3dee0cf76eed02c3c378c..0000000000000000000000000000000000000000 --- a/gnome/src/widget/gtkscrollbook.c +++ /dev/null @@ -1,274 +0,0 @@ -/* - * @file gtkscrollbook.c GTK+ Scrolling notebook widget - * @ingroup pidgin - */ - -/* pidgin - * - * Pidgin is the legal property of its developers, whose names are too numerous - * to list here. Please refer to the COPYRIGHT file distributed with this - * source distribution. - * - * 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 - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA - */ - -#include "gtkscrollbook.h" -#include "unused.h" -#include "sflphone_const.h" - -static void pidgin_scroll_book_init(PidginScrollBook *scroll_book); -static void pidgin_scroll_book_class_init(PidginScrollBookClass *klass); -static void pidgin_scroll_book_forall(GtkContainer *c, - gboolean include_internals, - GtkCallback callback, - gpointer user_data); - -GType -pidgin_scroll_book_get_type(void) -{ - static GType scroll_book_type = 0; - - if (!scroll_book_type) { - static const GTypeInfo scroll_book_info = { - sizeof(PidginScrollBookClass), - NULL, /* base_init */ - NULL, /* base_finalize */ - (GClassInitFunc) pidgin_scroll_book_class_init, - NULL, /* class_finalize */ - NULL, /* class_data */ - sizeof(PidginScrollBook), - 0, - (GInstanceInitFunc) pidgin_scroll_book_init, - NULL /* value_table */ - }; - - scroll_book_type = g_type_register_static(GTK_TYPE_VBOX, - "PidginScrollBook", - &scroll_book_info, - 0); - } - - return scroll_book_type; -} - -static gboolean -scroll_left_cb(PidginScrollBook *scroll_book) -{ - int page_index = gtk_notebook_get_current_page(GTK_NOTEBOOK(scroll_book->notebook)); - - if (page_index > 0) - gtk_notebook_set_current_page(GTK_NOTEBOOK(scroll_book->notebook), page_index - 1); - - return TRUE; -} - -static gboolean -scroll_right_cb(PidginScrollBook *scroll_book) -{ - int page_index = gtk_notebook_get_current_page(GTK_NOTEBOOK(scroll_book->notebook)); - int count = gtk_notebook_get_n_pages(GTK_NOTEBOOK(scroll_book->notebook)); - - if (page_index + 1 < count) - gtk_notebook_set_current_page(GTK_NOTEBOOK(scroll_book->notebook), page_index + 1); - - return TRUE; -} - -static void -refresh_scroll_box(PidginScrollBook *scroll_book, int book_index, int count) -{ - gtk_widget_show_all(GTK_WIDGET(scroll_book)); - - if (count < 1) - gtk_widget_hide_all(scroll_book->hbox); - else { - gtk_widget_show_all(scroll_book->hbox); - - if (count == 1) { - gtk_widget_hide(scroll_book->label); - gtk_widget_hide(scroll_book->left_arrow); - gtk_widget_hide(scroll_book->right_arrow); - } - } - - char *label = g_strdup_printf("<span size='smaller' weight='bold'>(%d/%d)</span>", book_index+1, count); - gtk_label_set_markup(GTK_LABEL(scroll_book->label), label); - g_free(label); - - gtk_widget_set_sensitive(scroll_book->left_arrow, book_index != 0); - gtk_widget_set_sensitive(scroll_book->right_arrow, book_index + 1 != count); -} - - -static void -page_count_change_cb(PidginScrollBook *scroll_book) -{ - int page_index = gtk_notebook_get_current_page(GTK_NOTEBOOK(scroll_book->notebook)); - int count = gtk_notebook_get_n_pages(GTK_NOTEBOOK(scroll_book->notebook)); - refresh_scroll_box(scroll_book, page_index, count); -} - -static gboolean -scroll_close_cb(PidginScrollBook *scroll_book) -{ - gtk_widget_destroy(gtk_notebook_get_nth_page(GTK_NOTEBOOK(scroll_book->notebook), gtk_notebook_get_current_page(GTK_NOTEBOOK(scroll_book->notebook)))); - return FALSE; -} - -static void -switch_page_cb(GtkNotebook *notebook UNUSED, GtkNotebookPage *page UNUSED, guint page_num, PidginScrollBook *scroll_book) -{ - int count = gtk_notebook_get_n_pages(GTK_NOTEBOOK(scroll_book->notebook)); - refresh_scroll_box(scroll_book, page_num, count); -} - -static void -pidgin_scroll_book_add(GtkContainer *container, GtkWidget *widget) -{ - PidginScrollBook *scroll_book; - - g_return_if_fail(GTK_IS_WIDGET(widget)); - g_return_if_fail(gtk_widget_get_parent(widget) == NULL); - - scroll_book = PIDGIN_SCROLL_BOOK(container); - scroll_book->children = g_list_append(scroll_book->children, widget); - gtk_widget_show(widget); - gtk_notebook_append_page(GTK_NOTEBOOK(scroll_book->notebook), widget, NULL); - page_count_change_cb(PIDGIN_SCROLL_BOOK(container)); -} - -static void -pidgin_scroll_book_remove(GtkContainer *container, GtkWidget *widget) -{ - g_return_if_fail(GTK_IS_WIDGET(widget)); - - PidginScrollBook *scroll_book = PIDGIN_SCROLL_BOOK(container); - scroll_book->children = g_list_remove(scroll_book->children, widget); - - int page = gtk_notebook_page_num(GTK_NOTEBOOK(PIDGIN_SCROLL_BOOK(container)->notebook), widget); - - if (page >= 0) - gtk_notebook_remove_page(GTK_NOTEBOOK(PIDGIN_SCROLL_BOOK(container)->notebook), page); -} - -static void -pidgin_scroll_book_forall(GtkContainer *container, - gboolean include_internals, - GtkCallback callback, - gpointer callback_data) -{ - g_return_if_fail(GTK_IS_CONTAINER(container)); - - PidginScrollBook *scroll_book = PIDGIN_SCROLL_BOOK(container); - - if (include_internals) { - (*callback)(scroll_book->hbox, callback_data); - (*callback)(scroll_book->notebook, callback_data); - } -} - -static void -pidgin_scroll_book_class_init(PidginScrollBookClass *klass) -{ - GtkContainerClass *container_class = (GtkContainerClass*) klass; - - container_class->add = pidgin_scroll_book_add; - container_class->remove = pidgin_scroll_book_remove; - container_class->forall = pidgin_scroll_book_forall; -} - -static gboolean -close_button_left_cb(GtkWidget *widget UNUSED, GdkEventCrossing *event, GtkLabel *label) -{ - static GdkCursor *ptr = NULL; - - if (ptr == NULL) { - ptr = gdk_cursor_new(GDK_LEFT_PTR); - } - - gtk_label_set_markup(label, "×"); - gdk_window_set_cursor(event->window, ptr); - return FALSE; -} - -static gboolean -close_button_entered_cb(GtkWidget *widget UNUSED, GdkEventCrossing *event, GtkLabel *label) -{ - static GdkCursor *hand = NULL; - - if (hand == NULL) { - hand = gdk_cursor_new(GDK_HAND2); - } - - gtk_label_set_markup(label, "<u>×</u>"); - gdk_window_set_cursor(event->window, hand); - return FALSE; -} - -static void -pidgin_scroll_book_init(PidginScrollBook *scroll_book) -{ - GtkWidget *eb; - GtkWidget *close_button; - - scroll_book->hbox = gtk_hbox_new(FALSE, 0); - - /* Close */ - eb = gtk_event_box_new(); - gtk_box_pack_end(GTK_BOX(scroll_book->hbox), eb, FALSE, FALSE, 0); - gtk_event_box_set_visible_window(GTK_EVENT_BOX(eb), FALSE); - gtk_widget_set_events(eb, GDK_ENTER_NOTIFY_MASK | GDK_LEAVE_NOTIFY_MASK); - close_button = gtk_label_new("×"); - g_signal_connect(G_OBJECT(eb), "enter-notify-event", G_CALLBACK(close_button_entered_cb), close_button); - g_signal_connect(G_OBJECT(eb), "leave-notify-event", G_CALLBACK(close_button_left_cb), close_button); - gtk_container_add(GTK_CONTAINER(eb), close_button); - g_signal_connect_swapped(G_OBJECT(eb), "button-press-event", G_CALLBACK(scroll_close_cb), scroll_book); - - /* Right arrow */ - eb = gtk_event_box_new(); - gtk_box_pack_end(GTK_BOX(scroll_book->hbox), eb, FALSE, FALSE, 0); - scroll_book->right_arrow = gtk_arrow_new(GTK_ARROW_RIGHT, GTK_SHADOW_NONE); - gtk_container_add(GTK_CONTAINER(eb), scroll_book->right_arrow); - g_signal_connect_swapped(G_OBJECT(eb), "button-press-event", G_CALLBACK(scroll_right_cb), scroll_book); - - /* Count */ - scroll_book->label = gtk_label_new(NULL); - gtk_box_pack_end(GTK_BOX(scroll_book->hbox), scroll_book->label, FALSE, FALSE, 0); - - /* Left arrow */ - eb = gtk_event_box_new(); - gtk_box_pack_end(GTK_BOX(scroll_book->hbox), eb, FALSE, FALSE, 0); - scroll_book->left_arrow = gtk_arrow_new(GTK_ARROW_LEFT, GTK_SHADOW_NONE); - gtk_container_add(GTK_CONTAINER(eb), scroll_book->left_arrow); - g_signal_connect_swapped(G_OBJECT(eb), "button-press-event", G_CALLBACK(scroll_left_cb), scroll_book); - - gtk_box_pack_start(GTK_BOX(scroll_book), scroll_book->hbox, FALSE, FALSE, 0); - - scroll_book->notebook = gtk_notebook_new(); - gtk_notebook_set_show_tabs(GTK_NOTEBOOK(scroll_book->notebook), FALSE); - gtk_notebook_set_show_border(GTK_NOTEBOOK(scroll_book->notebook), FALSE); - - gtk_box_pack_start(GTK_BOX(scroll_book), scroll_book->notebook, TRUE, TRUE, 0); - - g_signal_connect_swapped(G_OBJECT(scroll_book->notebook), "remove", G_CALLBACK(page_count_change_cb), scroll_book); - g_signal_connect(G_OBJECT(scroll_book->notebook), "switch-page", G_CALLBACK(switch_page_cb), scroll_book); - gtk_widget_show_all(scroll_book->notebook); -} - -GtkWidget * -pidgin_scroll_book_new() -{ - return g_object_new(PIDGIN_TYPE_SCROLL_BOOK, NULL); -} diff --git a/gnome/src/widget/gtkscrollbook.h b/gnome/src/widget/gtkscrollbook.h deleted file mode 100644 index a012f7825923bb04a5ccf5a8e39eebfac2729627..0000000000000000000000000000000000000000 --- a/gnome/src/widget/gtkscrollbook.h +++ /dev/null @@ -1,78 +0,0 @@ -/* - * @file gtkscrollbook GTK+ Scrolling notebook Widget - * @ingroup pidgin - */ - -/* pidgin - * - * Pidgin is the legal property of its developers, whose names are too numerous - * to list here. Please refer to the COPYRIGHT file distributed with this - * source distribution. - * - * 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 - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA - */ - -#ifndef __PIDGIN_SCROLL_BOOK_H__ -#define __PIDGIN_SCROLL_BOOK_H__ - -#include <gtk/gtk.h> - -G_BEGIN_DECLS - -#define PIDGIN_TYPE_SCROLL_BOOK (pidgin_scroll_book_get_type ()) -#define PIDGIN_SCROLL_BOOK(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), PIDGIN_TYPE_SCROLL_BOOK, PidginScrollBook)) -#define PIDGIN_SCROLL_BOOK_CLASS(vtable) (G_TYPE_CHECK_CLASS_CAST ((vtable), PIDGIN_TYPE_SCROLL_BOOK, PidginScrollBookClass)) -#define PIDGIN_IS_SCROLL_BOOK(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), PIDGIN_TYPE_SCROLL_BOOK)) -#define PIDGIN_IS_SCROLL_BOOK_CLASS(vtable) (G_TYPE_CHECK_CLASS_TYPE ((vtable), PIDGIN_TYPE_SCROLL_BOOK)) -#define PIDGIN_SCROLL_BOOK_GET_CLASS(inst) (G_TYPE_INSTANCE_GET_CLASS ((inst), PIDGIN_TYPE_SCROLL_BOOK, PidginScrollBookClass)) - -typedef struct _PidginScrollBook PidginScrollBook; -typedef struct _PidginScrollBookClass PidginScrollBookClass; - -struct _PidginScrollBook { - GtkVBox parent_instance; - - GtkWidget *notebook; - GtkWidget *hbox; - GtkWidget *label; - GtkWidget *left_arrow; - GtkWidget *right_arrow; - GList *children; - - /* Padding for future expansion */ - void (*_gtk_reserved1) (void); - void (*_gtk_reserved2) (void); - void (*_gtk_reserved3) (void); - -}; - - -struct _PidginScrollBookClass { - GtkContainerClass parent_class; - - /* Padding for future expansion */ - void (*_gtk_reserved0) (void); - void (*_gtk_reserved1) (void); - void (*_gtk_reserved2) (void); - void (*_gtk_reserved3) (void); -}; - - -GType pidgin_scroll_book_get_type (void) G_GNUC_CONST; -GtkWidget *pidgin_scroll_book_new (void); - -G_END_DECLS - -#endif /* __PIDGIN_SCROLL_BOOK_H__ */ diff --git a/gnome/src/widget/imwidget.c b/gnome/src/widget/imwidget.c index 84e83adbe48cdfe6e6b85af5e3fa465f72e361b8..ce39d006f1825863d08bc7ba3233957d91a6244a 100644 --- a/gnome/src/widget/imwidget.c +++ b/gnome/src/widget/imwidget.c @@ -166,8 +166,8 @@ on_Textview_changed(GtkWidget *widget UNUSED, GdkEventKey *event, gpointer user_ if (event->type == GDK_KEY_PRESS) { switch (event->keyval) { - case GDK_Return: - case GDK_KP_Enter: + case GDK_KEY_Return: + case GDK_KEY_KP_Enter: /* We want to send the message on pressing ENTER */ if (gtk_text_buffer_get_char_count(buffer) != 0) {