Add a menu item to hide/show the search bar

This commit is contained in:
Emmanuel Milou
2008-05-20 16:14:57 -04:00
parent 351c70626d
commit b2284eebfa
16 changed files with 264 additions and 21 deletions

View File

@ -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)
{

View File

@ -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()
{

View File

@ -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
*/

View File

@ -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()
{

View File

@ -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)
{

View File

@ -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);

View File

@ -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