diff --git a/daemon/src/dbus/configurationmanager-introspec.xml b/daemon/src/dbus/configurationmanager-introspec.xml index eb6c41ce0e7961fbaa4b18250db969faed7a59bb..1b1a618096fdaa8101050082ded41755f8e8cf83 100755 --- a/daemon/src/dbus/configurationmanager-introspec.xml +++ b/daemon/src/dbus/configurationmanager-introspec.xml @@ -936,10 +936,6 @@ <tp:docstring> </tp:docstring> </arg> - <arg type="s" name="format" direction="in"> - <tp:docstring> - </tp:docstring> - </arg> <arg type="i" name="shmKey" direction="out"> <tp:docstring> </tp:docstring> diff --git a/daemon/src/dbus/configurationmanager.cpp b/daemon/src/dbus/configurationmanager.cpp index 13dd8d0a09c4569c8fcc8d2f849e887b9e18e587..fabb6ba488ca83844cd87431b7cf2f8299e025c7 100644 --- a/daemon/src/dbus/configurationmanager.cpp +++ b/daemon/src/dbus/configurationmanager.cpp @@ -573,7 +573,7 @@ void ConfigurationManager::setCredentials (const std::string& accountID, } -void ConfigurationManager::startVideoPreview(const int32_t &width, const int32_t &height, const std::string &fmt, int32_t &shmKey, int32_t &semKey, int32_t &videoBufferSize) +void ConfigurationManager::startVideoPreview(const int32_t &width, const int32_t &height, int32_t &shmKey, int32_t &semKey, int32_t &videoBufferSize) { if (preview_.get()) { _error("Video preview was already started!"); @@ -583,7 +583,6 @@ void ConfigurationManager::startVideoPreview(const int32_t &width, const int32_t return; } - _debug("Starting video preview"); using std::map; using std::string; @@ -593,7 +592,6 @@ void ConfigurationManager::startVideoPreview(const int32_t &width, const int32_t args["width"] = ssWidth.str(); ssHeight << height; args["height"] = ssHeight.str(); - args["format"] = fmt; preview_.reset(new sfl_video::VideoPreview(args)); preview_->start(); diff --git a/daemon/src/dbus/configurationmanager.h b/daemon/src/dbus/configurationmanager.h index 3d19878a2cf140ad3ee27ffa8464308821194a74..4ce60449f1d70594eb85feb54dbcde82adfd8adb 100644 --- a/daemon/src/dbus/configurationmanager.h +++ b/daemon/src/dbus/configurationmanager.h @@ -167,7 +167,7 @@ class ConfigurationManager std::map< std::string, std::string > getShortcuts (); void setShortcuts (const std::map< std::string, std::string >& shortcutsMap); - void startVideoPreview(const int32_t &width, const int32_t &height, const std::string &fmt, int32_t &shmKey, int32_t &semKey, int32_t &videoBufferSize); + void startVideoPreview(const int32_t &width, const int32_t &height, int32_t &shmKey, int32_t &semKey, int32_t &videoBufferSize); void stopVideoPreview(); }; diff --git a/daemon/src/video/test/test_video_preview.cpp b/daemon/src/video/test/test_video_preview.cpp index 66e34e4481a1cb4a51dcfcdce373641931e88840..6a9e6d8e21c61c12c2e5b384479a04851c95583d 100644 --- a/daemon/src/video/test/test_video_preview.cpp +++ b/daemon/src/video/test/test_video_preview.cpp @@ -40,7 +40,6 @@ void VideoPreviewTest::testPreview() { std::map<std::string, std::string> args; args["input"] = "/dev/video0"; - args["format"] = "rgb24"; args["width"] = "640"; args["height"] = "480"; diff --git a/daemon/src/video/video_receive_thread.cpp b/daemon/src/video/video_receive_thread.cpp index 9ab10de29bb6a1b9689099ce0b52f3253214721a..e28eb51420efb1122cda851e69d832f384bdd3a4 100644 --- a/daemon/src/video/video_receive_thread.cpp +++ b/daemon/src/video/video_receive_thread.cpp @@ -55,6 +55,8 @@ extern "C" { #include "video_picture.h" #include "fileutils.h" +static const enum PixelFormat video_rgb_format = PIX_FMT_BGRA; + namespace sfl_video { namespace { // anonymouse namespace @@ -224,13 +226,6 @@ void VideoReceiveThread::setup() { dstWidth_ = atoi(args_["width"].c_str()); dstHeight_ = atoi(args_["height"].c_str()); - format_ = av_get_pix_fmt(args_["format"].c_str()); - if (format_ == -1) - { - _error("%s:Couldn't find a pixel format for \"%s\"", - __PRETTY_FUNCTION__, args_["format"].c_str()); - ost::Thread::exit(); - } AVInputFormat *file_iformat = 0; @@ -331,7 +326,7 @@ void VideoReceiveThread::setup() } // determine required buffer size and allocate buffer - videoBufferSize_ = bufferSize(dstWidth_, dstHeight_, format_); + videoBufferSize_ = bufferSize(dstWidth_, dstHeight_, video_rgb_format); // create shared memory segment and attach to it shmID_ = createShm(videoBufferSize_, &shmKey_); @@ -366,7 +361,7 @@ void VideoReceiveThread::createScalingContext() // Create scaling context, no scaling done here imgConvertCtx_ = sws_getCachedContext(imgConvertCtx_, decoderCtx_->width, decoderCtx_->height, decoderCtx_->pix_fmt, dstWidth_, - dstHeight_, (enum PixelFormat) format_, SWS_BICUBIC, + dstHeight_, video_rgb_format, SWS_BICUBIC, NULL, NULL, NULL); if (imgConvertCtx_ == 0) { @@ -397,7 +392,6 @@ VideoReceiveThread::VideoReceiveThread(const std::map<std::string, std::string> void VideoReceiveThread::run() { setup(); - enum PixelFormat fmt = (enum PixelFormat) format_; if (!test_source_) createScalingContext(); @@ -424,7 +418,7 @@ void VideoReceiveThread::run() goto next_packet; avpicture_fill(reinterpret_cast<AVPicture *>(scaledPicture_), - reinterpret_cast<uint8_t*>(shmBuffer_), fmt, dstWidth_, dstHeight_); + reinterpret_cast<uint8_t*>(shmBuffer_), video_rgb_format, dstWidth_, dstHeight_); sws_scale(imgConvertCtx_, rawFrame_->data, rawFrame_->linesize, 0, decoderCtx_->height, scaledPicture_->data, @@ -434,8 +428,8 @@ void VideoReceiveThread::run() { // assign appropriate parts of buffer to image planes in scaledPicture avpicture_fill(reinterpret_cast<AVPicture *>(scaledPicture_), - reinterpret_cast<uint8_t*>(shmBuffer_), fmt, dstWidth_, dstHeight_); - const AVPixFmtDescriptor *pixdesc = &av_pix_fmt_descriptors[format_]; + reinterpret_cast<uint8_t*>(shmBuffer_), video_rgb_format, dstWidth_, dstHeight_); + const AVPixFmtDescriptor *pixdesc = &av_pix_fmt_descriptors[video_rgb_format]; int components = pixdesc->nb_components; int planes = 0; for (int i = 0; i < components; i++) diff --git a/daemon/src/video/video_receive_thread.h b/daemon/src/video/video_receive_thread.h index 4d8d2a95f9b1b9910b3b3fa1ff8d6fdf93f66b53..c3fdc2e688eb857cf9bd701cbb0be95144ef29cf 100644 --- a/daemon/src/video/video_receive_thread.h +++ b/daemon/src/video/video_receive_thread.h @@ -68,7 +68,6 @@ class VideoReceiveThread : public ost::Thread { int dstWidth_; int dstHeight_; - int format_; void setup(); void createScalingContext(); diff --git a/daemon/src/video/video_rtp_session.cpp b/daemon/src/video/video_rtp_session.cpp index 0caa8b6afeb31c4454d92c40b3edbd2d09bf4f60..ebafdc9bb99d21b910803d856d48df68fead864b 100644 --- a/daemon/src/video/video_rtp_session.cpp +++ b/daemon/src/video/video_rtp_session.cpp @@ -48,7 +48,6 @@ VideoRtpSession::VideoRtpSession() : sending_(true), receiving_(true) { txArgs_ = Manager::instance().videoPreference.getVideoSettings(); txArgs_["bitrate"] = "500000"; - rxArgs_["format"] = "rgb24"; } VideoRtpSession::VideoRtpSession(const std::map<std::string, std::string> &txArgs, diff --git a/gnome/configure.ac b/gnome/configure.ac index 9fa4ed843abe11815440814267ee71dfba464b3e..9f11878f82258211fcd62cc1599f3784b62a59fd 100644 --- a/gnome/configure.ac +++ b/gnome/configure.ac @@ -27,12 +27,11 @@ AC_DEFINE_UNQUOTED(SFLPHONE_UIDIR_UNINSTALLED, "`pwd`/src/", 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(CLUTTER, clutter-1.0) -PKG_CHECK_MODULES(CLUTTERGTK, clutter-gtk-0.10) -PKG_CHECK_MODULES(GTK, gtk+-2.0 > 2.20) +PKG_CHECK_MODULES(CLUTTERGTK, clutter-gtk-1.0) +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 diff --git a/gnome/src/Makefile.am b/gnome/src/Makefile.am index a1670ad0a79c086123911ff4944514ce4a5913e7..9909fcec7833a34f0fcf1e42f8a3424fd51ebcf3 100644 --- a/gnome/src/Makefile.am +++ b/gnome/src/Makefile.am @@ -28,8 +28,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 \ @@ -37,12 +37,12 @@ noinst_HEADERS = actions.h sflnotify.h mainwindow.h dialpad.h codeclist.h \ shortcuts.h eel-gconf-extensions.h logger.h imwindow.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) $(GTK_CFLAGS) $(X11_CFLAGS) \ - $(GLIB_CFLAGS) $(WEBKIT_CFLAGS) $(LIBGNOMEUI_CFLAGS) $(GNOMEDOCUTILS_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/actions.c b/gnome/src/actions.c index ac7c7fe1a6366ea8a1d212808eb621888883d32f..cb2db073700a81ac6e281c0520a8236300f117f5 100644 --- a/gnome/src/actions.c +++ b/gnome/src/actions.c @@ -30,12 +30,7 @@ */ #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 <glib/gprintf.h> #include <stdlib.h> #include <string.h> @@ -217,7 +212,6 @@ sflphone_hung_up (callable_obj_t * c) calllist_remove_call (current_calls, c->_callID); calltree_remove_call (current_calls, c, NULL); c->_state = CALL_STATE_DIALING; - call_remove_all_errors (c); update_actions(); if(c->_confID) { @@ -373,7 +367,6 @@ sflphone_hang_up() break; case CALL_STATE_RINGING: dbus_hang_up (selectedCall); - call_remove_all_errors (selectedCall); selectedCall->_state = CALL_STATE_DIALING; //selectedCall->_stop = 0; break; @@ -382,7 +375,6 @@ sflphone_hang_up() case CALL_STATE_BUSY: case CALL_STATE_RECORD: dbus_hang_up (selectedCall); - call_remove_all_errors (selectedCall); selectedCall->_state = CALL_STATE_DIALING; time (&selectedCall->_time_stop); @@ -391,18 +383,15 @@ sflphone_hang_up() break; case CALL_STATE_FAILURE: dbus_hang_up (selectedCall); - call_remove_all_errors (selectedCall); selectedCall->_state = CALL_STATE_DIALING; break; case CALL_STATE_INCOMING: dbus_refuse (selectedCall); - call_remove_all_errors (selectedCall); selectedCall->_state = CALL_STATE_DIALING; DEBUG ("from sflphone_hang_up : "); break; case CALL_STATE_TRANSFER: dbus_hang_up (selectedCall); - call_remove_all_errors (selectedCall); time (&selectedCall->_time_stop); break; default: @@ -612,14 +601,14 @@ process_dialing (callable_obj_t *c, guint keyval, gchar *key) dbus_start_tone (FALSE, 0); switch (keyval) { - case GDK_Return: - case GDK_KP_Enter: + case GDK_KEY_Return: + case GDK_KEY_KP_Enter: sflphone_place_call (c); break; - case GDK_Escape: + case GDK_KEY_Escape: sflphone_hang_up (); break; - case GDK_BackSpace: + case GDK_KEY_BackSpace: { gchar *num = (c->_state == CALL_STATE_TRANSFER) ? c->_trsft_to : c->_peer_number; size_t len = strlen(num); @@ -634,16 +623,16 @@ process_dialing (callable_obj_t *c, guint keyval, gchar *key) } break; } - case GDK_Tab: - case GDK_Alt_L: - case GDK_Control_L: - case GDK_Super_L: - case GDK_Caps_Lock: + case GDK_KEY_Tab: + case GDK_KEY_Alt_L: + case GDK_KEY_Control_L: + case GDK_KEY_Super_L: + case GDK_KEY_Caps_Lock: break; default: if (keyval < 127 /* ascii */ || - (keyval >= GDK_Mode_switch && keyval <= GDK_KP_9) /* num keypad */) { + (keyval >= GDK_KEY_Mode_switch && keyval <= GDK_KEY_KP_9) /* num keypad */) { if (c->_state == CALL_STATE_TRANSFER) { gchar *new_trsft = g_strconcat (c->_trsft_to, key, NULL); @@ -695,10 +684,10 @@ sflphone_keypad (guint keyval, gchar * key) if ( (active_calltree != current_calls) || (active_calltree == current_calls && !c)) { switch (keyval) { - case GDK_Return: - case GDK_KP_Enter: - case GDK_Escape: - case GDK_BackSpace: + case GDK_KEY_Return: + case GDK_KEY_KP_Enter: + case GDK_KEY_Escape: + case GDK_KEY_BackSpace: break; default: calltree_display (current_calls); @@ -714,7 +703,7 @@ sflphone_keypad (guint keyval, gchar * key) case CALL_STATE_CURRENT: switch (keyval) { - case GDK_Escape: + case GDK_KEY_Escape: dbus_hang_up (c); time (&c->_time_stop); calltree_update_call (history, c, NULL); @@ -729,13 +718,13 @@ sflphone_keypad (guint keyval, gchar * key) case CALL_STATE_INCOMING: switch (keyval) { - case GDK_Return: - case GDK_KP_Enter: + case GDK_KEY_Return: + case GDK_KEY_KP_Enter: c->_history_state = INCOMING; calltree_update_call (history, c, NULL); dbus_accept (c); break; - case GDK_Escape: + case GDK_KEY_Escape: dbus_refuse (c); break; } @@ -744,13 +733,13 @@ sflphone_keypad (guint keyval, gchar * key) case CALL_STATE_TRANSFER: switch (keyval) { - case GDK_Return: - case GDK_KP_Enter: + case GDK_KEY_Return: + case GDK_KEY_KP_Enter: dbus_transfer (c); time (&c->_time_stop); calltree_remove_call(current_calls, c, NULL); break; - case GDK_Escape: + case GDK_KEY_Escape: sflphone_unset_transfer (); break; default: // When a call is on transfer, typing new numbers will add it to c->_peer_number @@ -762,11 +751,11 @@ sflphone_keypad (guint keyval, gchar * key) case CALL_STATE_HOLD: switch (keyval) { - case GDK_Return: - case GDK_KP_Enter: + case GDK_KEY_Return: + case GDK_KEY_KP_Enter: dbus_unhold (c); break; - case GDK_Escape: + case GDK_KEY_Escape: dbus_hang_up (c); break; default: // When a call is on hold, typing new numbers will create a new call @@ -780,7 +769,7 @@ sflphone_keypad (guint keyval, gchar * key) case CALL_STATE_FAILURE: switch (keyval) { - case GDK_Escape: + case GDK_KEY_Escape: dbus_hang_up (c); calltree_update_call (history, c, NULL); break; diff --git a/gnome/src/callable_obj.c b/gnome/src/callable_obj.c index b4bf453d8f11c476ad2c5236651bad506234527f..9cb3ea0fc808ee8918f8d963b8abf245ecf5ada4 100644 --- a/gnome/src/callable_obj.c +++ b/gnome/src/callable_obj.c @@ -95,21 +95,6 @@ out: return ret; } -void call_add_error (callable_obj_t * call, gpointer dialog) -{ - g_ptr_array_add (call->_error_dialogs, dialog); -} - -void call_remove_error (callable_obj_t * call, gpointer dialog) -{ - g_ptr_array_remove (call->_error_dialogs, dialog); -} - -void call_remove_all_errors (callable_obj_t * call) -{ - g_ptr_array_foreach (call->_error_dialogs, (GFunc) gtk_widget_destroy, NULL); -} - callable_obj_t *create_new_call (callable_type_t type, call_state_t state, const gchar* const callID, const gchar* const accountID, @@ -120,7 +105,6 @@ callable_obj_t *create_new_call (callable_type_t type, call_state_t state, callable_obj_t *obj = g_new0 (callable_obj_t, 1); - obj->_error_dialogs = g_ptr_array_new(); obj->_type = type; obj->_state = state; obj->_callID = *callID ? g_strdup (callID) : g_strdup_printf("%d", rand()); diff --git a/gnome/src/callable_obj.h b/gnome/src/callable_obj.h index fb03aa31d06de6330051ec04daf46ef3ff99bea1..07be3e5ff20a38daf17f40acae9400b14aedc72d 100644 --- a/gnome/src/callable_obj.h +++ b/gnome/src/callable_obj.h @@ -138,14 +138,6 @@ typedef struct { */ GdkPixbuf *_contact_thumbnail; - /** - * Maintains a list of error dialogs - * associated with that call so that - * they could be destroyed at the right - * moment. - */ - GPtrArray * _error_dialogs; - /** * The recording file for this call, if NULL, no recording available * Should be used only for history items @@ -170,12 +162,6 @@ callable_obj_t *create_new_call_from_details (const gchar *, GHashTable *); callable_obj_t *create_history_entry_from_serialized_form (const gchar *); -void call_add_error (callable_obj_t * call, gpointer dialog); - -void call_remove_error (callable_obj_t * call, gpointer dialog); - -void call_remove_all_errors (callable_obj_t * call); - /* * GCompareFunc to compare a callID (gchar* and a callable_obj_t) */ diff --git a/gnome/src/config/Makefile.am b/gnome/src/config/Makefile.am index f11a89bb6c5bfdc89097c4ab601ea211aca71654..ec61feef57595336d76ed239219105fe179f75d8 100644 --- a/gnome/src/config/Makefile.am +++ b/gnome/src/config/Makefile.am @@ -27,14 +27,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) @CLUTTER_LIBS@ +libconfig_la_LDFLAGS = $(DBUSGLIB_LDFLAGS) $(LIBNOTIFY_LDFLAGS) $(GCONF_LDFLAGS) \ + $(GTK_LDFLAGS) $(GLIB_LDFLAGS) $(WEBKIT_LDFLAGS) @CLUTTER_LIBS@ -libconfig_la_LIBADD = $(DBUSGLIB_LIBS) $(LIBNOTIFY_LIBSI) \ - $(GTK_LIBS) $(GLIB_LIBS) $(WEBKIT_LIBS) $(LIBGNOMEUI_LIBS) \ - $(GNOMEDOCUTILS_LIBS) @CLUTTER_LIBS@ +libconfig_la_LIBADD = $(DBUSGLIB_LIBS) $(LIBNOTIFY_LIBS) $(GCONF_LIBS) \ + $(GTK_LIBS) $(GLIB_LIBS) $(WEBKIT_LIBS) @CLUTTER_LIBS@ -libconfig_la_CFLAGS = $(DBUSGLIB_CFLAGS) $(LIBNOTIFY_CFLAGS) \ - $(GTK_CFLAGS) $(GLIB_CFLAGS) $(WEBKIT_CFLAGS) $(LIBGNOMEUI_CFLAGS) \ - $(GNOMEDOCUTILS_CFLAGS) @CLUTTER_CFLAGS@ \ No newline at end of file +libconfig_la_CFLAGS = $(DBUSGLIB_CFLAGS) $(LIBNOTIFY_CFLAGS) $(GCONF_CFLAGS) \ + $(GTK_CFLAGS) $(GLIB_CFLAGS) $(WEBKIT_CFLAGS) @CLUTTER_CFLAGS@ diff --git a/gnome/src/config/accountconfigdialog.c b/gnome/src/config/accountconfigdialog.c index decd58bbf9d514d8ad09d1627f68724b4f702582..51bd15e2c5b78521812c169175993d753d3dae96 100644 --- a/gnome/src/config/accountconfigdialog.c +++ b/gnome/src/config/accountconfigdialog.c @@ -132,7 +132,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) { @@ -258,12 +258,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 +272,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); } @@ -458,7 +458,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); else @@ -475,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; @@ -566,7 +566,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); @@ -628,7 +628,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); @@ -776,11 +776,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); @@ -885,49 +885,26 @@ 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_text(GTK_COMBO_BOX_TEXT(localAddressCombo), *iface); + + if (g_strcmp0(*iface, local_interface) == 0) + gtk_combo_box_set_active(GTK_COMBO_BOX(localAddressCombo), idx); } - 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; @@ -935,12 +912,11 @@ GtkWidget* create_network(account_t *a) 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); @@ -1279,7 +1255,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"); @@ -1319,7 +1295,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"); @@ -1395,7 +1371,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); @@ -1414,7 +1390,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")); @@ -1445,7 +1421,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 78724bda7f06a4228e6fcccd6528e655e9e46e79..586f4a03e17118344fcc3b0fbd6bb9f97bf6bae8 100644 --- a/gnome/src/config/accountlistconfigdialog.c +++ b/gnome/src/config/accountlistconfigdialog.c @@ -37,7 +37,6 @@ #include "mainwindow.h" #include "utils.h" #include <string.h> -#include <libgnome/gnome-help.h> #define CONTEXT_ID_REGISTRATION 0 @@ -363,6 +362,8 @@ static void help_contents_cb (GtkWidget * widget UNUSED, gpointer data UNUSED) { +#warning FIXME : port to GTK3 +/* GError *error = NULL; gnome_help_display ("sflphone.xml", "accounts", &error); @@ -372,6 +373,7 @@ help_contents_cb (GtkWidget * widget UNUSED, g_error_free (error); } + */ } static void @@ -602,7 +604,6 @@ 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); diff --git a/gnome/src/config/shortcuts-config.c b/gnome/src/config/shortcuts-config.c index 71d475b8ddf24955a043e53787a5d29d2b907065..21d9cad735e2353049a86101a7a35170a0692a33 100644 --- a/gnome/src/config/shortcuts-config.c +++ b/gnome/src/config/shortcuts-config.c @@ -63,7 +63,7 @@ accel_edited (GtkCellRendererAccel *renderer UNUSED, gchar *path, guint accel_ke Accelerator* list = shortcuts_get_list (); model = gtk_tree_view_get_model (treeview); - guint code = XKeysymToKeycode (GDK_DISPLAY(), accel_key); + guint code = XKeysymToKeycode (GDK_DISPLAY_XDISPLAY(gdk_display_get_default()), accel_key); // Disable existing binding if key already used int i = 0; @@ -141,8 +141,8 @@ create_shortcuts_settings () while (list[i].action != NULL) { 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); + (gint) list[i].mask, VALUE, + XKeycodeToKeysym (GDK_DISPLAY_XDISPLAY(gdk_display_get_default()), list[i].key, 0), -1); i++; } diff --git a/gnome/src/config/tlsadvanceddialog.c b/gnome/src/config/tlsadvanceddialog.c index 8e929819a7506b5fe77c8f705c76beb38a7dc035..c29899797d5940c76c95ce0670c35332bc9ad000 100644 --- a/gnome/src/config/tlsadvanceddialog.c +++ b/gnome/src/config/tlsadvanceddialog.c @@ -183,34 +183,28 @@ void show_advanced_tls_options (GHashTable * properties) gtk_table_attach (GTK_TABLE (table), privateKeyPasswordEntry, 1, 2, 6, 7, GTK_EXPAND | GTK_FILL, GTK_EXPAND | GTK_FILL, 0, 0); /* TLS protocol methods */ - GtkTreeIter iter; - - GtkListStore * tlsProtocolMethodListStore = gtk_list_store_new (1, G_TYPE_STRING); label = gtk_label_new_with_mnemonic (_ ("TLS protocol method")); gtk_table_attach (GTK_TABLE (table), label, 0, 1, 7, 8, GTK_EXPAND | GTK_FILL, GTK_EXPAND | GTK_FILL, 0, 0); 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; + GtkWidget *tlsProtocolMethodCombo = gtk_combo_box_text_new(); - 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); + gchar** supported_tls_method = dbus_get_supported_tls_method(); + int idx = 0; + for (char **method = supported_tls_method; method && *method; method++, idx++) { + gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(tlsProtocolMethodCombo), *method); - if (g_strcmp0 (*supported_tls_method_ptr, tls_method) == 0) - supported_tls_method_iter = iter; + if (g_strcmp0 (*method, tls_method) == 0) + gtk_combo_box_set_active(GTK_COMBO_BOX(tlsProtocolMethodCombo), idx); } - GtkWidget *tlsProtocolMethodCombo = gtk_combo_box_new_with_model (GTK_TREE_MODEL (tlsProtocolMethodListStore)); gtk_label_set_mnemonic_widget (GTK_LABEL (label), tlsProtocolMethodCombo); gtk_table_attach (GTK_TABLE (table), tlsProtocolMethodCombo, 1, 2, 7, 8, GTK_EXPAND | GTK_FILL, GTK_EXPAND | GTK_FILL, 0, 0); - g_object_unref (G_OBJECT (tlsProtocolMethodListStore)); GtkCellRenderer *tlsProtocolMethodCellRenderer; tlsProtocolMethodCellRenderer = gtk_cell_renderer_text_new(); gtk_cell_layout_pack_start (GTK_CELL_LAYOUT (tlsProtocolMethodCombo), tlsProtocolMethodCellRenderer, TRUE); gtk_cell_layout_set_attributes (GTK_CELL_LAYOUT (tlsProtocolMethodCombo), tlsProtocolMethodCellRenderer, "text", 0, NULL); - gtk_combo_box_set_active_iter (GTK_COMBO_BOX (tlsProtocolMethodCombo), &supported_tls_method_iter); /* Cipher list */ GtkWidget * cipherListEntry; @@ -287,7 +281,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/config/videoconf.c b/gnome/src/config/videoconf.c index 13e1198e6757a7d54e369b5b757d89733b20c854..53da10fa8542551322be97533f1e18ea4f682e7d 100644 --- a/gnome/src/config/videoconf.c +++ b/gnome/src/config/videoconf.c @@ -54,17 +54,12 @@ static GtkListStore *v4l2RateList; static GtkWidget *v4l2_hbox; static GtkWidget *v4l2_nodev; -static GtkWidget *receivingVideoWindow; -static GtkWidget *receivingVideoArea; -static VideoRenderer *video_renderer = NULL; - static GtkWidget *preview_button = NULL; static GtkWidget *drawarea = NULL; static int using_clutter; static int drawWidth = 352; // FIXME: should come from dbus signals static int drawHeight = 288; -static const char *drawFormat; static VideoRenderer *preview = NULL; static GtkWidget *codecTreeView; // View used instead of store to get access to selection @@ -141,7 +136,7 @@ video_started_cb(DBusGProxy *proxy, gint OUT_shmId, gint OUT_semId, gint OUT_vid } DEBUG("Preview started shm:%d sem:%d size:%d", OUT_shmId, OUT_semId, OUT_videoBufferSize); - preview = video_renderer_new(drawarea, drawWidth, drawHeight, drawFormat, OUT_shmId, OUT_semId, OUT_videoBufferSize); + preview = video_renderer_new(drawarea, drawWidth, drawHeight, OUT_shmId, OUT_semId, OUT_videoBufferSize); g_signal_connect (preview, "notify::running", G_CALLBACK (preview_is_running_cb), preview_button); if (video_renderer_run(preview)) { ERROR("Video preview run returned an error, unreffing\n"); @@ -154,13 +149,8 @@ preview_button_clicked(GtkButton *button, gpointer data UNUSED) { preview_button = GTK_WIDGET(button); if (g_strcmp0(gtk_button_get_label(button), _("_Start")) == 0) { - - static const char *formats[2] = { "rgb24", "bgra" }; - - drawFormat = using_clutter ? formats[0] : formats[1]; - dbus_start_video_preview(drawWidth, drawHeight, drawFormat); - } - else { /* user clicked stop */ + dbus_start_video_preview(drawWidth, drawHeight); + } else { /* user clicked stop */ if (!preview) /* preview was not created yet on the server */ return ; video_renderer_stop(preview); @@ -655,7 +645,7 @@ static void fill_devices(void) gtk_widget_show_all(v4l2_hbox); gtk_widget_hide(v4l2_nodev); } else { - gtk_widget_hide_all(v4l2_hbox); + gtk_widget_hide(v4l2_hbox); gtk_widget_show(v4l2_nodev); } } @@ -665,74 +655,6 @@ void video_device_event_cb(DBusGProxy *proxy UNUSED, void * foo UNUSED) fill_devices(); } -static void receiving_video_window_deleted_cb(GtkWidget *widget UNUSED, gpointer data UNUSED) -{ - sflphone_hang_up(); -} - - -// FIXME: Should not be in config, also only handling clutter case for now -void receiving_video_event_cb(DBusGProxy *proxy, gint shmKey, gint semKey, - gint videoBufferSize, gint destWidth, - gint destHeight, GError *error, gpointer userdata) -{ - if (!receivingVideoWindow) { - receivingVideoWindow = gtk_window_new (GTK_WINDOW_TOPLEVEL); - g_signal_connect (receivingVideoWindow, "delete-event", G_CALLBACK (receiving_video_window_deleted_cb), NULL); - } - - (void)proxy; - (void)error; - (void)userdata; - gboolean using_clutter = clutter_init(NULL, NULL) == CLUTTER_INIT_SUCCESS; - g_assert(using_clutter); - - if (!receivingVideoArea) { - receivingVideoArea = gtk_clutter_embed_new(); - gtk_container_add(GTK_CONTAINER(receivingVideoWindow), receivingVideoArea); - } - g_assert(receivingVideoArea); - g_assert(gtk_clutter_embed_get_stage(GTK_CLUTTER_EMBED(receivingVideoArea))); - - if (shmKey == -1 || semKey == -1 || videoBufferSize == -1) - return; - - gtk_widget_set_size_request (receivingVideoArea, destWidth, destHeight); - gtk_widget_show_all(receivingVideoWindow); - - drawFormat = "rgb24"; - DEBUG("Video started for shm:%d sem:%d bufferSz:%d width:%d height:%d", - shmKey, semKey, videoBufferSize, destWidth, destHeight); - - video_renderer = video_renderer_new(receivingVideoArea, destWidth, destHeight, drawFormat, shmKey, semKey, videoBufferSize); - g_assert(video_renderer); - if (video_renderer_run(video_renderer)) { - g_object_unref(video_renderer); - video_renderer = NULL; - DEBUG("Could not run video renderer"); - } - else - DEBUG("Running video renderer"); -} - -// FIXME: Should not be in config, only doing clutter case for now -void stopped_receiving_video_event_cb(DBusGProxy *proxy, gint shmKey, gint semKey, GError *error, gpointer userdata) -{ - (void)proxy; - (void)error; - (void)userdata; - - DEBUG("Video stopped for shm:%d sem:%d", shmKey, semKey); - - if (video_renderer) { - if (receivingVideoWindow) { - if (GTK_IS_WIDGET(receivingVideoWindow)) - gtk_widget_destroy(receivingVideoWindow); - receivingVideoArea = receivingVideoWindow = NULL; - } - video_renderer = NULL; - } -} static GtkWidget* v4l2_box () @@ -883,10 +805,6 @@ GtkWidget* create_video_configuration() } if (!using_clutter) drawarea = gtk_drawing_area_new(); - - GdkWindow *win = gtk_widget_get_window(drawarea); - if (win && GDK_IS_WINDOW(win)) - gdk_window_clear(win); g_signal_connect(drawarea, "unrealize", G_CALLBACK(on_drawarea_unrealize), NULL); gtk_widget_set_size_request (drawarea, drawWidth, drawHeight); diff --git a/gnome/src/config/videoconf.h b/gnome/src/config/videoconf.h index 27168d9b0e75480ebe3a3b22d4fda0a1971dbfb8..05217120951d6d81badf1053c820b7147c0df90e 100644 --- a/gnome/src/config/videoconf.h +++ b/gnome/src/config/videoconf.h @@ -38,10 +38,5 @@ GtkWidget* create_video_configuration(); GtkWidget* videocodecs_box(); void video_started_cb(DBusGProxy *proxy, gint OUT_shmId, gint OUT_semId, gint OUT_videoBufferSize, GError *error, gpointer userdata); void video_device_event_cb(DBusGProxy *proxy UNUSED, void * foo UNUSED); -void receiving_video_event_cb(DBusGProxy *proxy, gint shmId, gint semId, - gint videoBufferSize, gint destWidth, - gint destHeight, GError *error, - gpointer userdata); -void stopped_receiving_video_event_cb(DBusGProxy *proxy, gint shmId, gint semId, GError *error, gpointer userdata); #endif // __VIDEO_CONF_H__ diff --git a/gnome/src/contacts/Makefile.am b/gnome/src/contacts/Makefile.am index b6fc155e2d235066265732629dd4c3622680360d..e7bc5965f28b13e86df9cfd1a4ce05b94895d68e 100644 --- a/gnome/src/contacts/Makefile.am +++ b/gnome/src/contacts/Makefile.am @@ -20,9 +20,9 @@ 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) \ + $(GCONF_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/calltree.c b/gnome/src/contacts/calltree.c index 1953698af1994cc558d1509797e3213ed64dd6df..761ca417c2646ac9bb3e266b14ed6719f0f8ec64 100644 --- a/gnome/src/contacts/calltree.c +++ b/gnome/src/contacts/calltree.c @@ -33,7 +33,8 @@ #include <calltree.h> #include <stdlib.h> #include <glib/gprintf.h> -#include <eel-gconf-extensions.h> +#include "eel-gconf-extensions.h" + #include "dbus.h" #include "calllist.h" diff --git a/gnome/src/contacts/searchbar.c b/gnome/src/contacts/searchbar.c index 16c39b384e4fca9f95b89bdd6501338b0112a1b2..44d138e6c83b6db42dd9f6e4cc495aa2cac19829 100644 --- a/gnome/src/contacts/searchbar.c +++ b/gnome/src/contacts/searchbar.c @@ -35,7 +35,6 @@ #include <calltree.h> #include <config/addressbook-config.h> #include <contacts/addressbook.h> -// #include <contacts/addressbook/eds.h> #include <contacts/addrbookfactory.h> GtkWidget * searchbox; @@ -74,12 +73,12 @@ void searchbar_entry_changed (GtkEntry* entry UNUSED, gchar* arg1 UNUSED, gpoint } } -static void cbox_changed_cb (GtkWidget *widget, gpointer user_data UNUSED) +static void cbox_changed_cb (GtkComboBox *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); } @@ -107,14 +106,12 @@ 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); + 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) { - + 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); @@ -145,40 +142,36 @@ void update_searchbar_addressbook_list() } 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))); + gtk_combo_box_text_get_active_text(GTK_COMBO_BOX_TEXT(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 (GTK_COMBO_BOX(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))); - - gtk_entry_set_icon_tooltip_text (GTK_ENTRY (addressbookentry), GTK_ENTRY_ICON_PRIMARY, - gtk_menu_item_get_label (GTK_MENU_ITEM (item))); + if(!addrbook) + return; + gtk_entry_set_icon_tooltip_text (GTK_ENTRY (addressbookentry), GTK_ENTRY_ICON_PRIMARY, + gtk_menu_item_get_label (GTK_MENU_ITEM (item))); - if (g_strcmp0 ("Search is", gtk_menu_item_get_label (GTK_MENU_ITEM (item))) == 0) { - addrbook->set_search_type(ABOOK_QUERY_IS); - } - else if (g_strcmp0 ("Search begins with", gtk_menu_item_get_label (GTK_MENU_ITEM (item))) == 0) { - addrbook->set_search_type(ABOOK_QUERY_BEGINS_WITH); - } - else if (g_strcmp0 ("Search contains", gtk_menu_item_get_label (GTK_MENU_ITEM (item))) == 0) { - addrbook->set_search_type(ABOOK_QUERY_CONTAINS); - } - - AddressBook_Config *addressbook_config = addressbook_config_load_parameters(); - addrbook->search (addrbook->search_cb, GTK_ENTRY (addressbookentry), addressbook_config); + if (g_strcmp0 ("Search is", gtk_menu_item_get_label (GTK_MENU_ITEM (item))) == 0) { + addrbook->set_search_type(ABOOK_QUERY_IS); + } + else if (g_strcmp0 ("Search begins with", gtk_menu_item_get_label (GTK_MENU_ITEM (item))) == 0) { + addrbook->set_search_type(ABOOK_QUERY_BEGINS_WITH); + } + else if (g_strcmp0 ("Search contains", gtk_menu_item_get_label (GTK_MENU_ITEM (item))) == 0) { + addrbook->set_search_type(ABOOK_QUERY_CONTAINS); } + 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) @@ -247,25 +240,18 @@ static void icon_press_cb (GtkEntry *entry, gint position, GdkEventButton *event static void text_changed_cb (GtkEntry *entry, GParamSpec *pspec UNUSED) { - gboolean has_text; - - has_text = gtk_entry_get_text_length (entry) > 0; - gtk_entry_set_icon_sensitive (entry, GTK_ENTRY_ICON_SECONDARY, has_text); + gtk_entry_set_icon_sensitive (entry, GTK_ENTRY_ICON_SECONDARY, gtk_entry_get_text_length (entry) > 0); } GtkWidget *addressbook_menu_new (void) { - - GtkWidget *menu, *item; - - // Create the menu - menu = gtk_menu_new (); + GtkWidget *menu = gtk_menu_new (); gtk_menu_attach_to_widget (GTK_MENU (menu), contacts->searchbar, NULL); // Populate menu - item = gtk_menu_item_new_with_label ("Search is"); + GtkWidget *item = gtk_menu_item_new_with_label ("Search is"); g_signal_connect (item, "activate", G_CALLBACK (select_search_type), searchbox); gtk_menu_shell_append (GTK_MENU_SHELL (menu), item); @@ -349,10 +335,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; @@ -414,10 +399,11 @@ GtkWidget* contacts_searchbar_new () gtk_alignment_set_padding (GTK_ALIGNMENT (align), 0, 2, 6, 6); gtk_container_add (GTK_CONTAINER (align), cbox); + int cbox_height, cbox_width; 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); + cboxSignalId = g_signal_connect (GTK_COMBO_BOX(cbox), "changed", G_CALLBACK (cbox_changed_cb), NULL); // cbox_changed_cb (GTK_WIDGET (cbox), NULL); cell = gtk_cell_renderer_text_new(); @@ -460,22 +446,9 @@ 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) { return HistorySearchType; diff --git a/gnome/src/dbus/Makefile.am b/gnome/src/dbus/Makefile.am index c9fa5b156f89c82f446802678c8fd0c07570f22d..a23276d9bd795fc5f2ad2855ec633209f6210232 100644 --- a/gnome/src/dbus/Makefile.am +++ b/gnome/src/dbus/Makefile.am @@ -26,13 +26,11 @@ 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 diff --git a/gnome/src/dbus/configurationmanager-introspec.xml b/gnome/src/dbus/configurationmanager-introspec.xml index 96ebb09a15323cd940770e8b8886e354b30e396f..c0ccba720bede073d05170a1ff443ec811b8ed47 100755 --- a/gnome/src/dbus/configurationmanager-introspec.xml +++ b/gnome/src/dbus/configurationmanager-introspec.xml @@ -936,10 +936,6 @@ <tp:docstring> </tp:docstring> </arg> - <arg type="s" name="format" direction="in"> - <tp:docstring> - </tp:docstring> - </arg> <arg type="i" name="shmKey" direction="out"> <tp:docstring> </tp:docstring> diff --git a/gnome/src/dbus/dbus.c b/gnome/src/dbus/dbus.c index 9e6b9011db8192cb9a20ba4f166c24cba30270a1..c30782e25dc6ca91e6a12e02d3fcddd71f0a4bb8 100644 --- a/gnome/src/dbus/dbus.c +++ b/gnome/src/dbus/dbus.c @@ -49,8 +49,10 @@ #include <widget/imwidget.h> -#include <eel-gconf-extensions.h> -#include "videoconf.h" +#include "eel-gconf-extensions.h" + +#include "video/video_renderer.h" +#include "config/videoconf.h" #define DEFAULT_DBUS_TIMEOUT 30000 @@ -2518,11 +2520,11 @@ dbus_send_text_message (const gchar* callID, const gchar *message) } void -dbus_start_video_preview (int width, int height, const char *format) +dbus_start_video_preview (int width, int height) { GError *error = NULL; org_sflphone_SFLphone_ConfigurationManager_start_video_preview_async ( - configurationManagerProxy, width, height, format, video_started_cb, &error); + configurationManagerProxy, width, height, video_started_cb, &error); if (error) { ERROR ("Failed to call start_video_preview () on ConfigurationManager: %s", diff --git a/gnome/src/dbus/dbus.h b/gnome/src/dbus/dbus.h index d2fce97e232a8b5cb75aabd2a7881e08ca261849..fba7161e060e21988c10197e8c2d704fd86cc1e0 100644 --- a/gnome/src/dbus/dbus.h +++ b/gnome/src/dbus/dbus.h @@ -618,7 +618,7 @@ gboolean dbus_start_recorded_file_playback(const gchar *); void dbus_stop_recorded_file_playback(const gchar *); -void dbus_start_video_preview(int width, int height, const char *format); +void dbus_start_video_preview(int width, int height); void dbus_stop_video_preview(); #endif diff --git a/gnome/src/eel-gconf-extensions.c b/gnome/src/eel-gconf-extensions.c index c9fdf210f59ab1a9854244de9b9e6a46246fe0c7..f062107658646023a877b6643f34e56610022505 100644 --- a/gnome/src/eel-gconf-extensions.c +++ b/gnome/src/eel-gconf-extensions.c @@ -29,7 +29,7 @@ #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; @@ -70,7 +70,7 @@ eel_gconf_client_get_global (void) GTK_DIALOG_MODAL, GTK_MESSAGE_ERROR, GTK_BUTTONS_OK, - _ ("Cannot find a schema for gpdf preferences. \n" + _("Cannot find a schema for gpdf preferences. \n" "Check your gconf setup, look at gpdf FAQ for \n" "more info")); gtk_dialog_run (GTK_DIALOG (dialog)); diff --git a/gnome/src/icons/Makefile.am b/gnome/src/icons/Makefile.am index b9cdfbdcbf420f6508f0372cacb136c3a9d623bc..c490f3e1ae01abad55fe64d9076bc3ef07996b84 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/imwindow.c b/gnome/src/imwindow.c index 301ae698ed96310993acfbc0870982c1c292f88f..0929e7556c888dbfd95ca28c019c680355c2145c 100644 --- a/gnome/src/imwindow.c +++ b/gnome/src/imwindow.c @@ -32,7 +32,7 @@ #include <config.h> #include <gtk/gtk.h> -#include <eel-gconf-extensions.h> +#include "eel-gconf-extensions.h" #include <sflphone_const.h> #include <imwindow.h> @@ -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 8b4e0d4a2c98be49892ce4e97ab1b40259813a99..0599543fb136bf37139ebffbac20739f541379ae 100644 --- a/gnome/src/main.c +++ b/gnome/src/main.c @@ -35,10 +35,8 @@ #include <dbus/dbus.h> #include <mainwindow.h> #include <statusicon.h> -#include <libgnome/libgnome.h> -#include <libgnomeui/libgnomeui.h> -#include <eel-gconf-extensions.h> +#include "eel-gconf-extensions.h" #include <gtk/gtk.h> #include <stdlib.h> @@ -85,10 +83,7 @@ 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) ; + gtk_init(&argc, &argv); if (!sflphone_init (&error)) { ERROR (error->message); diff --git a/gnome/src/mainwindow.c b/gnome/src/mainwindow.c index e37d40a0e64dfc800f49de6d1509954098fed3bd..fff9a7c9a4af981ad13e09853719e3cc475803e7 100644 --- a/gnome/src/mainwindow.c +++ b/gnome/src/mainwindow.c @@ -40,22 +40,16 @@ #include "sliders.h" #include "contacts/searchbar.h" #include "assistant.h" -#include "widget/gtkscrollbook.h" #include "widget/minidialog.h" #include "uimanager.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; @@ -67,7 +61,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; @@ -147,7 +140,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 == current_calls) { sflphone_keypad(event->keyval, event->string); return TRUE; @@ -161,13 +154,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 @@ -246,10 +239,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*/, @@ -385,17 +374,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 @@ -430,9 +424,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)); } } @@ -458,8 +450,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 @@ -476,5 +467,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 b3fc8a8611a85a2851cb2397e75bd446d1fa73a2..54a39c600f023bff63781951203c4e91ce0796c4 100644 --- a/gnome/src/sflnotify.c +++ b/gnome/src/sflnotify.c @@ -27,10 +27,10 @@ * 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 "sflnotify.h" +#include "eel-gconf-extensions.h" + typedef struct { NotifyNotification *notification; diff --git a/gnome/src/shortcuts.c b/gnome/src/shortcuts.c index dc56c3cd3e78aee1066e5e0d9982f10ea94ac489..014b18d1f5db10f68d3ee7be516076ccdb276db4 100644 --- a/gnome/src/shortcuts.c +++ b/gnome/src/shortcuts.c @@ -46,10 +46,10 @@ #include "actions.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 @@ -69,36 +69,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); + XKeyEvent *key = (XKeyEvent *) xevent; + GdkModifierType 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); - - // call associated callback function + for (int i = 0; accelerators_list[i].action != NULL; 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; } @@ -220,33 +202,21 @@ get_action_callback (const gchar* action) static void remove_bindings () { - GdkDisplay *display = NULL; - GdkScreen *screen = NULL; - GdkWindow *root = NULL; - int i, j = 0; - - display = gdk_display_get_default (); + GdkDisplay *display = gdk_display_get_default (); - for (i = 0; i < gdk_display_get_n_screens (display); i++) { - screen = gdk_display_get_screen (display, i); + for (int i = 0; i < gdk_display_get_n_screens (display); i++) { + GdkScreen *screen = gdk_display_get_screen (display, i); + if (screen == NULL) + continue; - if (screen != NULL) { - j = 0; - root = gdk_screen_get_root_window (screen); + GdkWindow *root = gdk_screen_get_root_window (screen); - // remove filter - gdk_window_remove_filter (root, (GdkFilterFunc) filter_keys, NULL); + gdk_window_remove_filter (root, (GdkFilterFunc) filter_keys, NULL); - // unbind shortcuts - while (accelerators_list[j].action != NULL) { - if (accelerators_list[j].key != 0) { - ungrab_key (accelerators_list[j].key, - accelerators_list[j].mask, root); - } - - j++; - } - } + // unbind shortcuts + for (int j = 0; accelerators_list[j].action != NULL; j++) + if (accelerators_list[j].key != 0) + ungrab_key (accelerators_list[j].key, accelerators_list[j].mask, root); } } @@ -256,33 +226,21 @@ remove_bindings () static void create_bindings () { - GdkDisplay *display; - GdkScreen *screen; - GdkWindow *root; - int i, j = 0; - - display = gdk_display_get_default (); + GdkDisplay *display = gdk_display_get_default (); - for (i = 0; i < gdk_display_get_n_screens (display); i++) { - screen = gdk_display_get_screen (display, i); + for (int i = 0; i < gdk_display_get_n_screens (display); i++) { + GdkScreen *screen = gdk_display_get_screen (display, i); + if (screen == NULL) + continue; - if (screen != NULL) { - j = 0; - root = gdk_screen_get_root_window (screen); + GdkWindow *root = gdk_screen_get_root_window (screen); - // add filter - gdk_window_add_filter (root, (GdkFilterFunc) filter_keys, NULL); + gdk_window_add_filter (root, (GdkFilterFunc) filter_keys, NULL); - // bind shortcuts - while (accelerators_list[j].action != NULL) { - if (accelerators_list[j].key != 0) { - grab_key (accelerators_list[j].key, - accelerators_list[j].mask, root); - } - - j++; - } - } + // bind shortcuts + for (int j = 0; accelerators_list[j].action; j++) + if (accelerators_list[j].key != 0) + grab_key (accelerators_list[j].key, accelerators_list[j].mask, root); } } @@ -292,27 +250,17 @@ create_bindings () static void initialize_binding (const gchar* action, guint key, GdkModifierType mask) { - int i = 0; - - while (accelerators_list[i].action != NULL) { + for (int i = 0; accelerators_list[i].action != NULL; i++) { if (g_strcmp0 (action, accelerators_list[i].action) == 0) { - break; - } + accelerators_list[i].key = key; + accelerators_list[i].mask = mask; - i++; - } - - if (accelerators_list[i].action == NULL) { - ERROR ("Shortcut: Error: Cannot find corresponding action"); - return; + create_bindings (); + return; + } } - // update config value - accelerators_list[i].key = key; - accelerators_list[i].mask = mask; - - // update bindings - create_bindings (); + ERROR ("Shortcut: Error: Cannot find corresponding action"); } /* @@ -487,24 +435,25 @@ 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); + +#define UNGRAB(mod) XUngrabKey(d, key, mask | (mod), x) + UNGRAB(0); + UNGRAB(Mod2Mask); + UNGRAB(Mod5Mask); + UNGRAB(LockMask); + UNGRAB(Mod2Mask | Mod5Mask); + UNGRAB(Mod2Mask | LockMask); + UNGRAB(Mod5Mask | LockMask); + UNGRAB(Mod2Mask | Mod5Mask | LockMask); +#undef UNGRAB gdk_flush (); @@ -517,28 +466,25 @@ ungrab_key (guint key, GdkModifierType mask, const GdkWindow *root) * 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); + +#define GRAB(mod) XGrabKey (d, key, mask | (mod), x, True, GrabModeAsync, GrabModeAsync) + GRAB(0); + GRAB(Mod2Mask); + GRAB(Mod5Mask); + GRAB(LockMask); + GRAB(Mod2Mask | Mod5Mask); + GRAB(Mod2Mask | LockMask); + GRAB(Mod5Mask | LockMask); + GRAB(Mod2Mask | Mod5Mask | LockMask); +#undef GRAB gdk_flush (); diff --git a/gnome/src/shortcuts.h b/gnome/src/shortcuts.h index 79348c7f00574021d57b9d68ba36e8083183a0e5..10045620081de002332dcb8331e41d784209e592 100644 --- a/gnome/src/shortcuts.h +++ b/gnome/src/shortcuts.h @@ -33,10 +33,6 @@ #include <gdk/gdkx.h> -#ifndef GDK_DISPLAY -#define GDK_DISPLAY() GDK_DISPLAY_XDISPLAY(gdk_display_get_default()) -#endif - typedef struct { gchar *action; guint key; diff --git a/gnome/src/sliders.c b/gnome/src/sliders.c index e01fb7f1ebd401da8df5146cc80e19c6cfc60216..de197da366ef672b8467c811f8bccae679fa9062 100644 --- a/gnome/src/sliders.c +++ b/gnome/src/sliders.c @@ -114,20 +114,15 @@ mute_cb (GtkWidget *widget, gchar* device) void set_slider (const gchar * device, gdouble newval) { - int dev; - - if (g_strcmp0 (device, "speaker") == 0) - dev = SPEAKER; - else - dev = MIKE; + int dev = (g_strcmp0 (device, "speaker") == 0) ? SPEAKER : 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 ((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 9e922c7969c5a5be3727e7b75bcaf97410e85a5b..e0ec053d86d9504d7a619f34151a58f9af977479 100644 --- a/gnome/src/statusicon.c +++ b/gnome/src/statusicon.c @@ -34,7 +34,8 @@ #include <mainwindow.h> #include <accountlist.h> #include <statusicon.h> -#include <eel-gconf-extensions.h> + +#include "eel-gconf-extensions.h" static GtkStatusIcon *status; static GtkWidget *show_menu_item, *hangup_menu_item; @@ -196,7 +197,7 @@ statusicon_set_tooltip() count = account_list_get_registered_accounts(); tip = g_markup_printf_escaped ("%s - %s", _ ("SFLphone"), g_markup_printf_escaped (n_ ("%i active account", "%i active accounts", count), count)); - gtk_status_icon_set_tooltip (status, tip); + gtk_status_icon_set_tooltip_markup (status, tip); g_free (tip); } diff --git a/gnome/src/uimanager.c b/gnome/src/uimanager.c index 01da2571f55819b1962cb32f91b38aa96636b70e..0c414e264b0b33a5629aba7b924d56b0dd610b44 100644 --- a/gnome/src/uimanager.c +++ b/gnome/src/uimanager.c @@ -36,13 +36,10 @@ #include <gtk/gtk.h> #include <string.h> #include <glib/gprintf.h> -#include <libgnome/gnome-help.h> #include <uimanager.h> #include <statusicon.h> #include <widget/imwidget.h> -#include <eel-gconf-extensions.h> - #include "config/audioconf.h" #include "uimanager.h" @@ -51,6 +48,8 @@ #include "contacts/addrbookfactory.h" #include "config/addressbook-config.h" +#include "eel-gconf-extensions.h" + #include "accountlist.h" #include "config/accountlistconfigdialog.h" @@ -264,12 +263,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); @@ -290,12 +289,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); @@ -313,9 +312,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); @@ -455,6 +454,8 @@ dialpad_bar_cb(GtkToggleAction *togglemenuitem, gpointer user_data UNUSED) static void help_contents_cb(GtkAction *action UNUSED) { +#warning FIXME : port to GTK3 +/* GError *error = NULL; gnome_help_display("sflphone.xml", NULL, &error); @@ -463,6 +464,7 @@ help_contents_cb(GtkAction *action UNUSED) g_warning("%s", error->message); g_error_free(error); } + */ } static void diff --git a/gnome/src/video/video_renderer.c b/gnome/src/video/video_renderer.c index 479b7bb7519e5399059bb18934e9117d097ac61d..217421b7867ea811ac1a55e09df3b7dcb9d98116 100644 --- a/gnome/src/video/video_renderer.c +++ b/gnome/src/video/video_renderer.c @@ -45,7 +45,12 @@ #include <clutter-gtk/clutter-gtk.h> #include <cairo.h> -#include "dbus.h" +#include "actions.h" + +static GtkWidget *receivingVideoWindow; +static GtkWidget *receivingVideoArea; +static VideoRenderer *video_renderer = NULL; + #define VIDEO_RENDERER_GET_PRIVATE(obj) (G_TYPE_INSTANCE_GET_PRIVATE ((obj), \ VIDEO_RENDERER_TYPE, VideoRendererPrivate)) @@ -60,7 +65,6 @@ enum PROP_RUNNING, PROP_WIDTH, PROP_HEIGHT, - PROP_FORMAT, PROP_DRAWAREA, PROP_SHMKEY, PROP_SEMKEY, @@ -80,7 +84,6 @@ static void video_renderer_set_property (GObject *object, guint prop_id, struct _VideoRendererPrivate { guint width; guint height; - gchar *format; gchar *shm_buffer; gint sem_set_id; @@ -200,9 +203,6 @@ video_renderer_class_init (VideoRendererClass *klass) properties[PROP_HEIGHT] = g_param_spec_int ("height", "Height", "Height of preview video", G_MININT, G_MAXINT, -1, G_PARAM_READABLE|G_PARAM_WRITABLE|G_PARAM_CONSTRUCT_ONLY); - properties[PROP_FORMAT] = g_param_spec_pointer ("format", "Format", "Pixel format of preview video", - G_PARAM_READABLE|G_PARAM_WRITABLE|G_PARAM_CONSTRUCT_ONLY); - properties[PROP_SHMKEY] = g_param_spec_int ("shmkey", "ShmKey", "Unique key for shared memory identifier", G_MININT, G_MAXINT, -1, G_PARAM_READABLE|G_PARAM_WRITABLE|G_PARAM_CONSTRUCT_ONLY); @@ -241,9 +241,6 @@ video_renderer_get_property (GObject *object, guint prop_id, case PROP_HEIGHT: g_value_set_int(value, priv->height); break; - case PROP_FORMAT: - g_value_set_pointer(value, priv->format); - break; case PROP_SHMKEY: g_value_set_int(value, priv->shm_key); break; @@ -281,9 +278,6 @@ video_renderer_set_property (GObject *object, guint prop_id, case PROP_HEIGHT: priv->height = g_value_get_int(value); break; - case PROP_FORMAT: - priv->format = g_value_get_pointer(value); - break; case PROP_SHMKEY: priv->shm_key = g_value_get_int(value); break; @@ -336,13 +330,6 @@ sem_wait(int sem_set_id) return semop(sem_set_id, &sem_op, 1); } -/* round int value up to next multiple of 4 */ -static int -align(int value) -{ - return (value + 3) &~ 3; -} - static gboolean readFrameFromShm(VideoRendererPrivate *priv) { @@ -368,30 +355,18 @@ readFrameFromShm(VideoRendererPrivate *priv) } if (priv->using_clutter) { - if (g_strcmp0(priv->format, "rgb24")) { - g_print("clutter render: Unknown pixel format `%s'\n", priv->format); - return FALSE; - } - - clutter_texture_set_from_rgb_data (CLUTTER_TEXTURE(texture), + clutter_texture_set_from_rgb_data(CLUTTER_TEXTURE(texture), (void*)data, - FALSE, + TRUE, width, height, - align(3 /* bytes per pixel */ * width), // stride - 3, - 0, + 4 /* bytes per pixel */ * width, // stride + 4, + CLUTTER_TEXTURE_RGB_FLAG_BGR, NULL); } else { - if (g_strcmp0(priv->format, "bgra")) { - g_print("cairo render: Unknown pixel format `%s'\n", priv->format); - return FALSE; - } - - cairo_format_t format = CAIRO_FORMAT_RGB24; + const cairo_format_t format = CAIRO_FORMAT_RGB24; int stride = cairo_format_stride_for_width (format, width); - assert(stride == align(4*width)); - cairo_surface_t *surface = cairo_image_surface_create_for_data (data, format, width, @@ -402,9 +377,8 @@ readFrameFromShm(VideoRendererPrivate *priv) cairo_set_source_surface(priv->cairo, surface, 0, 0); cairo_status_t status = cairo_surface_status(surface); - if (status != CAIRO_STATUS_SURFACE_FINISHED) { + if (status != CAIRO_STATUS_SURFACE_FINISHED) cairo_paint(priv->cairo); - } cairo_surface_destroy(surface); } } @@ -420,12 +394,6 @@ video_renderer_stop(VideoRenderer *preview) priv->is_running = FALSE; - if (GTK_IS_WIDGET(priv->drawarea)) { - GdkWindow *win = gtk_widget_get_window(priv->drawarea); - if (GDK_IS_WINDOW(win)) - gdk_window_clear(win); - } - if (!priv->using_clutter) cairo_destroy(priv->cairo); @@ -467,7 +435,7 @@ updateTexture(gpointer data) * Create a new #VideoRenderer instance. */ VideoRenderer * -video_renderer_new (GtkWidget *drawarea, int width, int height, const char *format, int shmkey, int semkey, int vbsize) +video_renderer_new (GtkWidget *drawarea, int width, int height, int shmkey, int semkey, int vbsize) { VideoRenderer *result; @@ -475,7 +443,6 @@ video_renderer_new (GtkWidget *drawarea, int width, int height, const char *form "drawarea", (gpointer)drawarea, "width", (gint)width, "height", (gint)height, - "format", (gpointer)format, "shmkey", (gint)shmkey, "semkey", (gint)semkey, "vbsize", (gint)vbsize, @@ -501,7 +468,7 @@ video_renderer_run(VideoRenderer *preview) if (priv->sem_set_id == -1) return 1; - priv->using_clutter = !g_strcmp0(priv->format, "rgb24"); + priv->using_clutter = GTK_CLUTTER_IS_EMBED(priv->drawarea); g_print("Preview: using %s render\n", priv->using_clutter ? "clutter" : "cairo"); if (priv->using_clutter) { @@ -534,3 +501,76 @@ video_renderer_run(VideoRenderer *preview) return 0; } + +static void receiving_video_window_deleted_cb(GtkWidget *widget UNUSED, gpointer data UNUSED) +{ + sflphone_hang_up(); +} + + +void receiving_video_event_cb(DBusGProxy *proxy, gint shmKey, gint semKey, + gint videoBufferSize, gint destWidth, + gint destHeight, GError *error, gpointer userdata) +{ + if (!receivingVideoWindow) { + receivingVideoWindow = gtk_window_new (GTK_WINDOW_TOPLEVEL); + g_signal_connect (receivingVideoWindow, "delete-event", G_CALLBACK (receiving_video_window_deleted_cb), NULL); + } + + (void)proxy; + (void)error; + (void)userdata; + gboolean using_clutter = clutter_init(NULL, NULL) == CLUTTER_INIT_SUCCESS; + + if (!receivingVideoArea) { + if (using_clutter) { + receivingVideoArea = gtk_clutter_embed_new(); + if (!gtk_clutter_embed_get_stage(GTK_CLUTTER_EMBED(receivingVideoArea))) { + gtk_widget_destroy(receivingVideoArea); + using_clutter = 0; + } + } + if (!using_clutter) + receivingVideoArea = gtk_drawing_area_new(); + } + + g_assert(receivingVideoArea); + gtk_container_add(GTK_CONTAINER(receivingVideoWindow), receivingVideoArea); + + if (shmKey == -1 || semKey == -1 || videoBufferSize == -1) + return; + + gtk_widget_set_size_request (receivingVideoArea, destWidth, destHeight); + gtk_widget_show_all(receivingVideoWindow); + + DEBUG("Video started for shm:%d sem:%d bufferSz:%d width:%d height:%d", + shmKey, semKey, videoBufferSize, destWidth, destHeight); + + video_renderer = video_renderer_new(receivingVideoArea, destWidth, destHeight, shmKey, semKey, videoBufferSize); + g_assert(video_renderer); + if (video_renderer_run(video_renderer)) { + g_object_unref(video_renderer); + video_renderer = NULL; + DEBUG("Could not run video renderer"); + } + else + DEBUG("Running video renderer"); +} + +void stopped_receiving_video_event_cb(DBusGProxy *proxy, gint shmKey, gint semKey, GError *error, gpointer userdata) +{ + (void)proxy; + (void)error; + (void)userdata; + + DEBUG("Video stopped for shm:%d sem:%d", shmKey, semKey); + + if (video_renderer) { + if (receivingVideoWindow) { + if (GTK_IS_WIDGET(receivingVideoWindow)) + gtk_widget_destroy(receivingVideoWindow); + receivingVideoArea = receivingVideoWindow = NULL; + } + video_renderer = NULL; + } +} diff --git a/gnome/src/video/video_renderer.h b/gnome/src/video/video_renderer.h index 13c735ac434e357e00ec444a62215a2c7a4bea94..13c75c84521ca2bf7bdde126421590b5c9bc29c2 100644 --- a/gnome/src/video/video_renderer.h +++ b/gnome/src/video/video_renderer.h @@ -34,6 +34,8 @@ #include <glib-object.h> #include <gtk/gtk.h> +#include "dbus.h" + G_BEGIN_DECLS #define VIDEO_RENDERER_TYPE (video_renderer_get_type()) @@ -61,10 +63,16 @@ struct _VideoRendererClass { }; /* Public interface */ -VideoRenderer *video_renderer_new(GtkWidget *drawarea, int width, int height, const char *format, int shmkey, int semkey, int vbsize); +VideoRenderer *video_renderer_new(GtkWidget *drawarea, int width, int height, int shmkey, int semkey, int vbsize); int video_renderer_run(VideoRenderer *preview); void video_renderer_stop(VideoRenderer *preview); +void receiving_video_event_cb(DBusGProxy *proxy, gint shmId, gint semId, + gint videoBufferSize, gint destWidth, + gint destHeight, GError *error, + gpointer userdata); +void stopped_receiving_video_event_cb(DBusGProxy *proxy, gint shmId, gint semId, GError *error, gpointer userdata); + G_END_DECLS #endif // __VIDEO_RENDERER_H__ diff --git a/gnome/src/widget/Makefile.am b/gnome/src/widget/Makefile.am index 7d67024bd31d970a0a517caabb678ef8b795747e..62fcdc6c6dc00cb96385d9dd93703d2582af51ac 100644 --- a/gnome/src/widget/Makefile.am +++ b/gnome/src/widget/Makefile.am @@ -3,22 +3,17 @@ include ../../globals.mak noinst_LTLIBRARIES = libwidget.la libwidget_la_SOURCES = \ - gtkscrollbook.c \ - gtkscrollbook.h \ 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 9c118a587011adc2aab4a5985fa0a1c134b871ca..0000000000000000000000000000000000000000 --- a/gnome/src/widget/gtkscrollbook.c +++ /dev/null @@ -1,272 +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 "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 index = gtk_notebook_get_current_page (GTK_NOTEBOOK (scroll_book->notebook)); - - if (index > 0) - gtk_notebook_set_current_page (GTK_NOTEBOOK (scroll_book->notebook), index - 1); - - return TRUE; -} - -static gboolean -scroll_right_cb (PidginScrollBook *scroll_book) -{ - int index = gtk_notebook_get_current_page (GTK_NOTEBOOK (scroll_book->notebook)); - int count = gtk_notebook_get_n_pages (GTK_NOTEBOOK (scroll_book->notebook)); - - if (index + 1 < count) - gtk_notebook_set_current_page (GTK_NOTEBOOK (scroll_book->notebook), index + 1); - - return TRUE; -} - -static void -refresh_scroll_box (PidginScrollBook *scroll_book, int 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>", index+1, count); - gtk_label_set_markup (GTK_LABEL (scroll_book->label), label); - g_free (label); - - gtk_widget_set_sensitive (scroll_book->left_arrow, index != 0); - gtk_widget_set_sensitive (scroll_book->right_arrow, index + 1 != count); -} - - -static void -page_count_change_cb (PidginScrollBook *scroll_book) -{ - int 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, 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 fd1087a5a77618355599ed26071d225d83421119..b778aaff3518f5c950524f5b93246b044f165d46 100644 --- a/gnome/src/widget/imwidget.c +++ b/gnome/src/widget/imwidget.c @@ -164,8 +164,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) { diff --git a/gnome/tests/Makefile.am b/gnome/tests/Makefile.am index 0d3e89f9599a289ce4f61a8caae2246ca24823f5..272fc571dbd9f5f48caaf5c26703e484457534ae 100644 --- a/gnome/tests/Makefile.am +++ b/gnome/tests/Makefile.am @@ -29,7 +29,7 @@ check_config_LDADD = $(SFLPHONE_LIBS) @CHECK_LIBS@ check_dbus_SOURCES = check_dbus.c $(top_srcdir)/src/logger.c $(top_srcdir)/src/accountlist.c $(top_srcdir)/src/actions.c $(top_srcdir)/src/codeclist.c $(top_srcdir)/src/dialpad.c $(top_srcdir)/src/mainwindow.c $(top_srcdir)/src/reqaccount.c $(top_srcdir)/src/sflnotify.c $(top_srcdir)/src/sliders.c $(top_srcdir)/src/statusicon.c $(top_srcdir)/src/callable_obj.c $(top_srcdir)/src/eel-gconf-extensions.c $(top_srcdir)/src/uimanager.c $(top_srcdir)/src/conference_obj.c $(top_srcdir)/src/shortcuts.c $(top_srcdir)/src/imwindow.c -check_dbus_CFLAGS = @CHECK_CFLAGS@ @GTK_CFLAGS@ @DBUSGLIB_CFLAGS@ @WEBKIT_CFLAGS@ @LIBGNOMEUI_CFLAGS@ +check_dbus_CFLAGS = @CHECK_CFLAGS@ @GTK_CFLAGS@ @DBUSGLIB_CFLAGS@ @WEBKIT_CFLAGS@ check_dbus_LDADD = $(SFLPHONE_LIBS) @CHECK_LIBS@ $(top_builddir)/src/widget/libwidget.la $(top_builddir)/src/video/libvideo.la $(top_builddir)/src/icons/libicons.la ###########################################################