diff --git a/plugins/familiar/familiar.glade b/plugins/familiar/familiar.glade index 1e249da651..ae0e0fd427 100644 --- a/plugins/familiar/familiar.glade +++ b/plugins/familiar/familiar.glade @@ -275,8 +275,13 @@ udp://localhost:1234/ GtkEntry GtkCombo:entry - combo-entry1 + comboURL-entry True + + changed + on_comboURL-entry_changed + Thu, 01 Aug 2002 19:37:06 GMT + True True 0 @@ -357,7 +362,7 @@ udp://localhost:1234/ GtkCombo comboDefaultURL 8 - 4 + 8 200 24 False @@ -374,8 +379,13 @@ udp://localhost:1234/ GtkEntry GtkCombo:entry - combo-entry2 + comboPrefs-entry True + + changed + on_comboPrefs-entry_changed + Thu, 01 Aug 2002 20:11:46 GMT + True True 0 diff --git a/plugins/familiar/familiar_callbacks.c b/plugins/familiar/familiar_callbacks.c index e8cf376c09..d81ddbede8 100644 --- a/plugins/familiar/familiar_callbacks.c +++ b/plugins/familiar/familiar_callbacks.c @@ -2,7 +2,7 @@ * familiar_callbacks.c : Callbacks for the Familiar Linux Gtk+ plugin. ***************************************************************************** * Copyright (C) 2000, 2001 VideoLAN - * $Id: familiar_callbacks.c,v 1.4 2002/07/24 20:46:08 jpsaman Exp $ + * $Id: familiar_callbacks.c,v 1.5 2002/08/06 19:12:07 jpsaman Exp $ * * Authors: Jean-Paul Saman * @@ -47,6 +47,9 @@ //#include "netutils.h" +static void MediaURLOpenChanged( GtkEditable *editable, gpointer user_data ); +static void PreferencesURLOpenChanged( GtkEditable *editable, gpointer user_data ); + /***************************************************************************** * Useful function to retrieve p_intf ****************************************************************************/ @@ -81,6 +84,50 @@ void * __GtkGetIntf( GtkWidget * widget ) return p_data; } +/***************************************************************************** + * Helper functions for URL changes in Media and Preferences notebook pages. + ****************************************************************************/ +static void MediaURLOpenChanged( GtkEditable *editable, gpointer user_data ) +{ + intf_thread_t *p_intf = GtkGetIntf( editable ); + playlist_t *p_playlist; + gchar * psz_url; + + psz_url = gtk_entry_get_text(GTK_ENTRY(editable)); + g_print( "%s\n",psz_url ); +// p_url = gtk_editable_get_chars(editable,0,-1); + + // Add p_url to playlist .... but how ? + if (p_intf) + { + p_playlist = (playlist_t *) + vlc_object_find( p_intf, VLC_OBJECT_PLAYLIST, FIND_ANYWHERE ); + if( p_playlist ) + { + playlist_Add( p_playlist, (char*)psz_url, + PLAYLIST_APPEND | PLAYLIST_GO, PLAYLIST_END ); + vlc_object_release( p_playlist ); + } + } +} + +static void PreferencesURLOpenChanged( GtkEditable *editable, gpointer user_data ) +{ + gchar * p_url; +// GtkWidget * item; + + p_url = gtk_entry_get_text(GTK_ENTRY(editable) ); + g_print( "%s\n",p_url ); + +// p_url = gtk_editable_get_chars(editable,0,-1); +// item = gtk_list_item_new(); +// gtk_widget_show (item); +// gtk_combo_set_item_string (GTK_COMBO (combo), GTK_ITEM (item), p_url); +// /* Now we simply add the item to the combo's list. */ +// gtk_container_add (GTK_CONTAINER (GTK_COMBO (combo)->list), item); +} + + /* * Main interface callbacks */ @@ -113,7 +160,10 @@ on_toolbar_open_clicked (GtkButton *button, { intf_thread_t *p_intf = GtkGetIntf( button ); if (p_intf) + { gtk_widget_show( GTK_WIDGET(p_intf->p_sys->p_notebook) ); + gdk_window_raise( p_intf->p_sys->p_window->window ); + } } @@ -122,8 +172,10 @@ on_toolbar_preferences_clicked (GtkButton *button, gpointer user_data) { intf_thread_t *p_intf = GtkGetIntf( button ); - if (p_intf) + if (p_intf) { gtk_widget_show( GTK_WIDGET(p_intf->p_sys->p_notebook) ); + gdk_window_raise( p_intf->p_sys->p_window->window ); + } } @@ -168,6 +220,11 @@ on_toolbar_play_clicked (GtkButton *button, FIND_ANYWHERE ); if( p_playlist == NULL ) { + if( p_intf ) + { + gtk_widget_show( GTK_WIDGET(p_intf->p_sys->p_notebook) ); + gdk_window_raise( p_intf->p_sys->p_window->window ); + } // Display open page } @@ -178,6 +235,7 @@ on_toolbar_play_clicked (GtkButton *button, vlc_mutex_unlock( &p_playlist->object_lock ); playlist_Play( p_playlist ); vlc_object_release( p_playlist ); + gdk_window_lower( p_intf->p_sys->p_window->window ); } else { @@ -195,10 +253,11 @@ on_toolbar_stop_clicked (GtkButton *button, intf_thread_t * p_intf = GtkGetIntf( button ); playlist_t * p_playlist = vlc_object_find( p_intf, VLC_OBJECT_PLAYLIST, FIND_ANYWHERE ); - if( p_playlist == NULL ) + if( p_playlist) { playlist_Stop( p_playlist ); vlc_object_release( p_playlist ); + gdk_window_raise( p_intf->p_sys->p_window->window ); } } @@ -225,11 +284,41 @@ on_toolbar_about_clicked (GtkButton *button, { intf_thread_t *p_intf = GtkGetIntf( button ); if (p_intf) - { // Toggle notebook + {// Toggle notebook + if (p_intf->p_sys->p_notebook) + { // if ( gtk_get_data( GTK_WIDGET(p_intf->p_sys->p_notebook), "visible" ) ) // gtk_widget_hide( GTK_WIDGET(p_intf->p_sys->p_notebook) ); // else gtk_widget_show( GTK_WIDGET(p_intf->p_sys->p_notebook) ); + } + gdk_window_raise( p_intf->p_sys->p_window->window ); + } +} + + +void +on_comboURL_entry_changed (GtkEditable *editable, + gpointer user_data) +{ + intf_thread_t * p_intf = GtkGetIntf( editable ); + + if (p_intf) + { + MediaURLOpenChanged( editable, NULL ); + } +} + + +void +on_comboPrefs_entry_changed (GtkEditable *editable, + gpointer user_data) +{ + intf_thread_t * p_intf = GtkGetIntf( editable ); + + if (p_intf) + { + PreferencesURLOpenChanged( editable, NULL ); } } diff --git a/plugins/familiar/familiar_callbacks.h b/plugins/familiar/familiar_callbacks.h index 00de9b2dd5..72e5c1e330 100644 --- a/plugins/familiar/familiar_callbacks.h +++ b/plugins/familiar/familiar_callbacks.h @@ -2,7 +2,7 @@ * familiar_callbacks.h : familiar plugin for vlc ***************************************************************************** * Copyright (C) 2002 VideoLAN - * $Id: familiar_callbacks.h,v 1.5 2002/07/24 20:46:08 jpsaman Exp $ + * $Id: familiar_callbacks.h,v 1.6 2002/08/06 19:12:07 jpsaman Exp $ * * Authors: Jean-Paul Saman * @@ -61,3 +61,12 @@ on_toolbar_forward_clicked (GtkButton *button, void on_toolbar_about_clicked (GtkButton *button, gpointer user_data); + +void +on_comboURL_entry_changed (GtkEditable *editable, + gpointer user_data); + +void +on_comboPrefs_entry_changed (GtkEditable *editable, + gpointer user_data); + diff --git a/plugins/familiar/familiar_interface.c b/plugins/familiar/familiar_interface.c index aeadb83df1..73df0e5477 100644 --- a/plugins/familiar/familiar_interface.c +++ b/plugins/familiar/familiar_interface.c @@ -40,7 +40,7 @@ create_familiar (void) GtkWidget *listMedia; GtkWidget *comboURL; GList *comboURL_items = NULL; - GtkWidget *combo_entry1; + GtkWidget *comboURL_entry; GtkWidget *media; GtkWidget *fixedPreferences; GtkWidget *buttonSave; @@ -50,7 +50,7 @@ create_familiar (void) GtkWidget *fixed3; GtkWidget *comboDefaultURL; GList *comboDefaultURL_items = NULL; - GtkWidget *combo_entry2; + GtkWidget *comboPrefs_entry; GtkWidget *frameIP; GtkWidget *fixed2; GSList *fixed2_group = NULL; @@ -263,13 +263,13 @@ create_familiar (void) gtk_combo_set_popdown_strings (GTK_COMBO (comboURL), comboURL_items); g_list_free (comboURL_items); - combo_entry1 = GTK_COMBO (comboURL)->entry; - gtk_widget_set_name (combo_entry1, "combo_entry1"); - gtk_widget_ref (combo_entry1); - gtk_object_set_data_full (GTK_OBJECT (familiar), "combo_entry1", combo_entry1, + comboURL_entry = GTK_COMBO (comboURL)->entry; + gtk_widget_set_name (comboURL_entry, "comboURL_entry"); + gtk_widget_ref (comboURL_entry); + gtk_object_set_data_full (GTK_OBJECT (familiar), "comboURL_entry", comboURL_entry, (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (combo_entry1); - gtk_entry_set_text (GTK_ENTRY (combo_entry1), _("file://")); + gtk_widget_show (comboURL_entry); + gtk_entry_set_text (GTK_ENTRY (comboURL_entry), _("file://")); media = gtk_label_new (_("Media")); gtk_widget_set_name (media, "media"); @@ -341,8 +341,8 @@ create_familiar (void) gtk_object_set_data_full (GTK_OBJECT (familiar), "comboDefaultURL", comboDefaultURL, (GtkDestroyNotify) gtk_widget_unref); gtk_widget_show (comboDefaultURL); - gtk_fixed_put (GTK_FIXED (fixed3), comboDefaultURL, 8, 4); - gtk_widget_set_uposition (comboDefaultURL, 8, 4); + gtk_fixed_put (GTK_FIXED (fixed3), comboDefaultURL, 8, 8); + gtk_widget_set_uposition (comboDefaultURL, 8, 8); gtk_widget_set_usize (comboDefaultURL, 200, 24); comboDefaultURL_items = g_list_append (comboDefaultURL_items, (gpointer) _("file://")); comboDefaultURL_items = g_list_append (comboDefaultURL_items, (gpointer) _("ftp://localhost")); @@ -351,13 +351,13 @@ create_familiar (void) gtk_combo_set_popdown_strings (GTK_COMBO (comboDefaultURL), comboDefaultURL_items); g_list_free (comboDefaultURL_items); - combo_entry2 = GTK_COMBO (comboDefaultURL)->entry; - gtk_widget_set_name (combo_entry2, "combo_entry2"); - gtk_widget_ref (combo_entry2); - gtk_object_set_data_full (GTK_OBJECT (familiar), "combo_entry2", combo_entry2, + comboPrefs_entry = GTK_COMBO (comboDefaultURL)->entry; + gtk_widget_set_name (comboPrefs_entry, "comboPrefs_entry"); + gtk_widget_ref (comboPrefs_entry); + gtk_object_set_data_full (GTK_OBJECT (familiar), "comboPrefs_entry", comboPrefs_entry, (GtkDestroyNotify) gtk_widget_unref); - gtk_widget_show (combo_entry2); - gtk_entry_set_text (GTK_ENTRY (combo_entry2), _("file://")); + gtk_widget_show (comboPrefs_entry); + gtk_entry_set_text (GTK_ENTRY (comboPrefs_entry), _("file://")); frameIP = gtk_frame_new (_("IP version:")); gtk_widget_set_name (frameIP, "frameIP"); @@ -508,6 +508,12 @@ create_familiar (void) gtk_signal_connect (GTK_OBJECT (toolbar_about), "clicked", GTK_SIGNAL_FUNC (on_toolbar_about_clicked), NULL); + gtk_signal_connect (GTK_OBJECT (comboURL_entry), "changed", + GTK_SIGNAL_FUNC (on_comboURL_entry_changed), + NULL); + gtk_signal_connect (GTK_OBJECT (comboPrefs_entry), "changed", + GTK_SIGNAL_FUNC (on_comboPrefs_entry_changed), + NULL); gtk_object_set_data (GTK_OBJECT (familiar), "tooltips", tooltips);