mirror of
https://git.jami.net/savoirfairelinux/jami-daemon.git
synced 2025-08-12 22:09:25 +08:00
Add a menu item to hide/show the search bar
This commit is contained in:
@ -1406,6 +1406,81 @@ static
|
||||
inline
|
||||
#endif
|
||||
gboolean
|
||||
org_sflphone_SFLphone_ConfigurationManager_get_searchbar (DBusGProxy *proxy, gint* OUT_state, GError **error)
|
||||
|
||||
{
|
||||
return dbus_g_proxy_call (proxy, "getSearchbar", error, G_TYPE_INVALID, G_TYPE_INT, OUT_state, G_TYPE_INVALID);
|
||||
}
|
||||
|
||||
typedef void (*org_sflphone_SFLphone_ConfigurationManager_get_searchbar_reply) (DBusGProxy *proxy, gint OUT_state, GError *error, gpointer userdata);
|
||||
|
||||
static void
|
||||
org_sflphone_SFLphone_ConfigurationManager_get_searchbar_async_callback (DBusGProxy *proxy, DBusGProxyCall *call, void *user_data)
|
||||
{
|
||||
DBusGAsyncData *data = (DBusGAsyncData*) user_data;
|
||||
GError *error = NULL;
|
||||
gint OUT_state;
|
||||
dbus_g_proxy_end_call (proxy, call, &error, G_TYPE_INT, &OUT_state, G_TYPE_INVALID);
|
||||
(*(org_sflphone_SFLphone_ConfigurationManager_get_searchbar_reply)data->cb) (proxy, OUT_state, error, data->userdata);
|
||||
return;
|
||||
}
|
||||
|
||||
static
|
||||
#ifdef G_HAVE_INLINE
|
||||
inline
|
||||
#endif
|
||||
DBusGProxyCall*
|
||||
org_sflphone_SFLphone_ConfigurationManager_get_searchbar_async (DBusGProxy *proxy, org_sflphone_SFLphone_ConfigurationManager_get_searchbar_reply callback, gpointer userdata)
|
||||
|
||||
{
|
||||
DBusGAsyncData *stuff;
|
||||
stuff = g_new (DBusGAsyncData, 1);
|
||||
stuff->cb = G_CALLBACK (callback);
|
||||
stuff->userdata = userdata;
|
||||
return dbus_g_proxy_begin_call (proxy, "getSearchbar", org_sflphone_SFLphone_ConfigurationManager_get_searchbar_async_callback, stuff, g_free, G_TYPE_INVALID);
|
||||
}
|
||||
static
|
||||
#ifdef G_HAVE_INLINE
|
||||
inline
|
||||
#endif
|
||||
gboolean
|
||||
org_sflphone_SFLphone_ConfigurationManager_set_searchbar (DBusGProxy *proxy, GError **error)
|
||||
|
||||
{
|
||||
return dbus_g_proxy_call (proxy, "setSearchbar", error, G_TYPE_INVALID, G_TYPE_INVALID);
|
||||
}
|
||||
|
||||
typedef void (*org_sflphone_SFLphone_ConfigurationManager_set_searchbar_reply) (DBusGProxy *proxy, GError *error, gpointer userdata);
|
||||
|
||||
static void
|
||||
org_sflphone_SFLphone_ConfigurationManager_set_searchbar_async_callback (DBusGProxy *proxy, DBusGProxyCall *call, void *user_data)
|
||||
{
|
||||
DBusGAsyncData *data = (DBusGAsyncData*) user_data;
|
||||
GError *error = NULL;
|
||||
dbus_g_proxy_end_call (proxy, call, &error, G_TYPE_INVALID);
|
||||
(*(org_sflphone_SFLphone_ConfigurationManager_set_searchbar_reply)data->cb) (proxy, error, data->userdata);
|
||||
return;
|
||||
}
|
||||
|
||||
static
|
||||
#ifdef G_HAVE_INLINE
|
||||
inline
|
||||
#endif
|
||||
DBusGProxyCall*
|
||||
org_sflphone_SFLphone_ConfigurationManager_set_searchbar_async (DBusGProxy *proxy, org_sflphone_SFLphone_ConfigurationManager_set_searchbar_reply callback, gpointer userdata)
|
||||
|
||||
{
|
||||
DBusGAsyncData *stuff;
|
||||
stuff = g_new (DBusGAsyncData, 1);
|
||||
stuff->cb = G_CALLBACK (callback);
|
||||
stuff->userdata = userdata;
|
||||
return dbus_g_proxy_begin_call (proxy, "setSearchbar", org_sflphone_SFLphone_ConfigurationManager_set_searchbar_async_callback, stuff, g_free, G_TYPE_INVALID);
|
||||
}
|
||||
static
|
||||
#ifdef G_HAVE_INLINE
|
||||
inline
|
||||
#endif
|
||||
gboolean
|
||||
org_sflphone_SFLphone_ConfigurationManager_get_volume_controls (DBusGProxy *proxy, gint* OUT_state, GError **error)
|
||||
|
||||
{
|
||||
|
@ -1181,6 +1181,41 @@ dbus_set_dialpad( )
|
||||
g_print("DBus called set_dialpad on ConfigurationManager\n");
|
||||
}
|
||||
|
||||
int
|
||||
dbus_get_searchbar()
|
||||
{
|
||||
int state;
|
||||
GError* error = NULL;
|
||||
org_sflphone_SFLphone_ConfigurationManager_get_searchbar(
|
||||
configurationManagerProxy,
|
||||
&state,
|
||||
&error);
|
||||
g_print("After");
|
||||
if(error)
|
||||
{
|
||||
g_error_free(error);
|
||||
}
|
||||
else
|
||||
g_print("DBus called get_searchbar on ConfigurationManager\n");
|
||||
return state;
|
||||
}
|
||||
|
||||
void
|
||||
dbus_set_searchbar( )
|
||||
{
|
||||
GError* error = NULL;
|
||||
org_sflphone_SFLphone_ConfigurationManager_set_searchbar(
|
||||
configurationManagerProxy,
|
||||
&error);
|
||||
g_print("After");
|
||||
if(error)
|
||||
{
|
||||
g_error_free(error);
|
||||
}
|
||||
else
|
||||
g_print("DBus called set_searchbar on ConfigurationManager\n");
|
||||
}
|
||||
|
||||
int
|
||||
dbus_get_volume_controls()
|
||||
{
|
||||
|
@ -291,6 +291,18 @@ void dbus_set_dialpad( );
|
||||
*/
|
||||
int dbus_get_dialpad( void );
|
||||
|
||||
/**
|
||||
* ConfigurationManager - Set the searchbar visible or not
|
||||
*/
|
||||
void dbus_set_searchbar( );
|
||||
|
||||
/**
|
||||
* ConfigurationManager - Tells if the user wants to display the search bar or not
|
||||
* @return int 1 if the search bar has to be displayed
|
||||
* 0 otherwise
|
||||
*/
|
||||
int dbus_get_searchbar( void );
|
||||
|
||||
/**
|
||||
* ConfigurationManager - Set the volume controls visible or not
|
||||
*/
|
||||
|
@ -59,13 +59,6 @@ clear_filter_entry_if_default(GtkWidget* widget, gpointer user_data)
|
||||
|
||||
}
|
||||
|
||||
void
|
||||
clear_filter_entry(GtkButton* button,
|
||||
gpointer user_data)
|
||||
{
|
||||
gtk_entry_set_text(GTK_ENTRY(filter_entry), "");
|
||||
}
|
||||
|
||||
GtkWidget*
|
||||
create_filter_entry()
|
||||
{
|
||||
|
@ -36,6 +36,7 @@
|
||||
GtkAccelGroup * accelGroup = NULL;
|
||||
GtkWidget * window = NULL;
|
||||
GtkWidget * subvbox = NULL;
|
||||
GtkWidget * vbox = NULL;
|
||||
GtkWidget * dialpad = NULL;
|
||||
GtkWidget * speaker_control = NULL;
|
||||
GtkWidget * mic_control = NULL;
|
||||
@ -112,6 +113,7 @@ on_key_released (GtkWidget *widget,
|
||||
event->keyval == 32 // space
|
||||
)
|
||||
return FALSE;
|
||||
g_print("search bar active : %s\n", gtk_widget_is_focus(GTK_WIDGET( filterEntry )));
|
||||
sflphone_keypad(event->keyval, event->string);
|
||||
return TRUE;
|
||||
}
|
||||
@ -120,7 +122,6 @@ void
|
||||
create_main_window ()
|
||||
{
|
||||
GtkWidget *widget;
|
||||
GtkWidget *vbox;
|
||||
|
||||
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
|
||||
gtk_container_set_border_width (GTK_CONTAINER (window), 0);
|
||||
@ -137,7 +138,7 @@ create_main_window ()
|
||||
g_signal_connect (G_OBJECT (window), "delete-event",
|
||||
G_CALLBACK (on_delete), NULL);
|
||||
//g_signal_connect (G_OBJECT (window), "key-press-event",
|
||||
// G_CALLBACK (on_key_released), NULL);
|
||||
// G_CALLBACK (on_key_released), NULL);
|
||||
|
||||
/* Create an accel group for window's shortcuts */
|
||||
accelGroup = gtk_accel_group_new ();
|
||||
@ -151,28 +152,32 @@ create_main_window ()
|
||||
gtk_box_pack_start (GTK_BOX (vbox), widget, FALSE /*expand*/, TRUE /*fill*/, 0 /*padding*/);
|
||||
|
||||
widget = create_toolbar();
|
||||
|
||||
filterEntry = create_filter_entry();
|
||||
|
||||
gtk_box_pack_start (GTK_BOX (vbox), widget, FALSE /*expand*/, TRUE /*fill*/, 0 /*padding*/);
|
||||
gtk_box_pack_start (GTK_BOX (vbox), filterEntry, FALSE /*expand*/, FALSE /*fill*/, 0 /*padding*/);
|
||||
|
||||
|
||||
gtk_box_pack_start (GTK_BOX (vbox), current_calls->tree, TRUE /*expand*/, TRUE /*fill*/, 0 /*padding*/);
|
||||
gtk_box_pack_start (GTK_BOX (vbox), history->tree, TRUE /*expand*/, TRUE /*fill*/, 0 /*padding*/);
|
||||
|
||||
gtk_box_pack_start (GTK_BOX (vbox), subvbox, FALSE /*expand*/, FALSE /*fill*/, 0 /*padding*/);
|
||||
|
||||
if( SHOW_SEARCHBAR ){
|
||||
filterEntry = create_filter_entry();
|
||||
gtk_box_pack_start (GTK_BOX (subvbox), filterEntry, FALSE /*expand*/, TRUE /*fill*/, 0 /*padding*/);
|
||||
gtk_widget_show_all ( filterEntry );
|
||||
}
|
||||
|
||||
if( SHOW_VOLUME ){
|
||||
if( SHOW_VOLUME ){
|
||||
speaker_control = create_slider("speaker");
|
||||
gtk_box_pack_start (GTK_BOX (subvbox), speaker_control, FALSE /*expand*/, TRUE /*fill*/, 0 /*padding*/);
|
||||
gtk_box_pack_end (GTK_BOX (subvbox), speaker_control, FALSE /*expand*/, TRUE /*fill*/, 0 /*padding*/);
|
||||
gtk_widget_show_all (speaker_control);
|
||||
mic_control = create_slider("mic");
|
||||
gtk_box_pack_start (GTK_BOX (subvbox), mic_control, FALSE /*expand*/, TRUE /*fill*/, 0 /*padding*/);
|
||||
gtk_box_pack_end (GTK_BOX (subvbox), mic_control, FALSE /*expand*/, TRUE /*fill*/, 0 /*padding*/);
|
||||
gtk_widget_show_all (mic_control);
|
||||
}
|
||||
|
||||
if( SHOW_DIALPAD ){
|
||||
dialpad = create_dialpad();
|
||||
gtk_box_pack_end (GTK_BOX (subvbox), dialpad, FALSE /*expand*/, TRUE /*fill*/, 0 /*padding*/);
|
||||
gtk_box_reorder_child(GTK_BOX (subvbox), dialpad, 1);
|
||||
gtk_widget_show_all (dialpad);
|
||||
}
|
||||
|
||||
@ -258,7 +263,6 @@ main_window_dialpad( gboolean *state ){
|
||||
{
|
||||
dialpad = create_dialpad();
|
||||
gtk_box_pack_end (GTK_BOX (subvbox), dialpad, FALSE /*expand*/, TRUE /*fill*/, 0 /*padding*/);
|
||||
gtk_box_reorder_child(GTK_BOX (subvbox), dialpad, 1);
|
||||
gtk_widget_show_all (dialpad);
|
||||
*state = TRUE;
|
||||
}
|
||||
@ -274,10 +278,10 @@ main_window_volume_controls( gboolean *state ){
|
||||
if( !SHOW_VOLUME )
|
||||
{
|
||||
speaker_control = create_slider("speaker");
|
||||
gtk_box_pack_start (GTK_BOX (subvbox), speaker_control, FALSE /*expand*/, TRUE /*fill*/, 0 /*padding*/);
|
||||
gtk_box_pack_end (GTK_BOX (subvbox), speaker_control, FALSE /*expand*/, TRUE /*fill*/, 0 /*padding*/);
|
||||
gtk_widget_show_all (speaker_control);
|
||||
mic_control = create_slider("mic");
|
||||
gtk_box_pack_start (GTK_BOX (subvbox), mic_control, FALSE /*expand*/, TRUE /*fill*/, 0 /*padding*/);
|
||||
gtk_box_pack_end (GTK_BOX (subvbox), mic_control, FALSE /*expand*/, TRUE /*fill*/, 0 /*padding*/);
|
||||
gtk_widget_show_all (mic_control);
|
||||
*state = TRUE;
|
||||
}
|
||||
@ -289,6 +293,22 @@ main_window_volume_controls( gboolean *state ){
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
main_window_searchbar( gboolean *state ){
|
||||
if( !SHOW_SEARCHBAR )
|
||||
{
|
||||
filterEntry = create_filter_entry();
|
||||
gtk_box_pack_start (GTK_BOX (subvbox), filterEntry, FALSE /*expand*/, TRUE /*fill*/, 0 /*padding*/);
|
||||
gtk_widget_show_all (filterEntry);
|
||||
*state = TRUE;
|
||||
}
|
||||
else
|
||||
{
|
||||
gtk_container_remove( GTK_CONTAINER(subvbox) , filterEntry );
|
||||
*state = FALSE;
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
statusbar_push_message(const gchar * message, guint id)
|
||||
{
|
||||
|
@ -41,6 +41,7 @@ guint holdConnId; //The hold_menu signal connection ID
|
||||
|
||||
GtkWidget * dialpadMenu;
|
||||
GtkWidget * volumeMenu;
|
||||
GtkWidget * searchbarMenu;
|
||||
|
||||
|
||||
void update_menus()
|
||||
@ -563,6 +564,15 @@ view_volume_controls (GtkImageMenuItem *imagemenuitem,
|
||||
dbus_set_volume_controls( state );
|
||||
}
|
||||
|
||||
static void
|
||||
view_searchbar (GtkImageMenuItem *imagemenuitem,
|
||||
void* foo)
|
||||
{
|
||||
gboolean state;
|
||||
main_window_searchbar( &state );
|
||||
dbus_set_searchbar( state );
|
||||
}
|
||||
|
||||
GtkWidget *
|
||||
create_view_menu()
|
||||
{
|
||||
@ -596,6 +606,15 @@ create_view_menu()
|
||||
NULL);
|
||||
gtk_widget_show (volumeMenu);
|
||||
|
||||
image = gtk_image_new_from_stock( GTK_STOCK_FIND , GTK_ICON_SIZE_MENU );
|
||||
searchbarMenu = gtk_image_menu_item_new_with_mnemonic (_("_Search history"));
|
||||
gtk_image_menu_item_set_image( GTK_IMAGE_MENU_ITEM ( searchbarMenu ), image );
|
||||
gtk_menu_shell_append (GTK_MENU_SHELL (menu), searchbarMenu);
|
||||
g_signal_connect(G_OBJECT (searchbarMenu), "activate",
|
||||
G_CALLBACK (view_searchbar),
|
||||
NULL);
|
||||
gtk_widget_show (searchbarMenu);
|
||||
|
||||
root_menu = gtk_menu_item_new_with_mnemonic (_("_View"));
|
||||
gtk_menu_item_set_submenu (GTK_MENU_ITEM (root_menu), menu);
|
||||
|
||||
|
@ -74,6 +74,9 @@
|
||||
#define SHOW_DIALPAD ( dbus_get_dialpad() )
|
||||
/** Show/Hide the volume controls */
|
||||
#define SHOW_VOLUME ( dbus_get_volume_controls() )
|
||||
/** Show/Hide the dialpad */
|
||||
#define SHOW_SEARCHBAR ( dbus_get_searchbar() )
|
||||
|
||||
/** Notification levels */
|
||||
#define __NOTIF_LEVEL_MIN 0
|
||||
#define __NOTIF_LEVEL_MED 1
|
||||
|
Reference in New Issue
Block a user