10 #include "stream_control.h"
11 #include "input_ext-intf.h"
13 #include "interface.h"
15 #include "gnome_sys.h"
16 #include "gnome_callbacks.h"
17 #include "gnome_interface.h"
18 #include "gnome_support.h"
20 #define GET_GNOME_STRUCT( item, parent ) \
21 gtk_object_get_data( \
22 GTK_OBJECT( lookup_widget(GTK_WIDGET(item), parent) ), \
26 on_modules_activate (GtkMenuItem *menuitem,
34 on_exit_activate (GtkMenuItem *menuitem,
37 intf_thread_t *p_intf;
39 p_intf = GET_GNOME_STRUCT( menuitem, "intf_window" );
46 on_open_activate (GtkMenuItem *menuitem,
54 on_preferences_activate (GtkMenuItem *menuitem,
62 on_plugins_activate (GtkMenuItem *menuitem,
70 on_about_activate (GtkMenuItem *menuitem,
73 intf_thread_t *p_intf;
75 p_intf = GET_GNOME_STRUCT( menuitem, "intf_window" );
77 if( !GTK_IS_WIDGET( p_intf->p_sys->p_about ) )
79 p_intf->p_sys->p_about = create_intf_about ();
81 gtk_widget_show( p_intf->p_sys->p_about );
86 on_stop_clicked (GtkButton *button,
89 intf_thread_t *p_intf;
91 p_intf = GET_GNOME_STRUCT( button, "intf_window" );
97 on_control_activate (GtkMenuItem *menuitem,
100 intf_thread_t *p_intf;
102 p_intf = GET_GNOME_STRUCT( menuitem, "intf_window" );
104 /* lock the change structure */
105 vlc_mutex_lock( &p_intf->p_sys->change_lock );
107 if( p_intf->p_sys->b_window )
109 gtk_widget_hide( p_intf->p_sys->p_window );
110 p_intf->p_sys->b_window = 0;
114 if( !GTK_IS_WIDGET( p_intf->p_sys->p_window ) )
116 p_intf->p_sys->p_window = create_intf_window ();
118 gtk_widget_show( p_intf->p_sys->p_window );
119 gtk_object_set_data( GTK_OBJECT(p_intf->p_sys->p_window),
121 p_intf->p_sys->b_window = 1;
124 /* unlock the change structure */
125 vlc_mutex_unlock( &p_intf->p_sys->change_lock );
130 on_playlist_activate (GtkMenuItem *menuitem,
133 intf_thread_t *p_intf;
135 p_intf = GET_GNOME_STRUCT( menuitem, "intf_window" );
137 /* lock the change structure */
138 vlc_mutex_lock( &p_intf->p_sys->change_lock );
140 if( p_intf->p_sys->b_playlist )
142 gtk_widget_hide( p_intf->p_sys->p_playlist );
143 p_intf->p_sys->b_playlist = 0;
147 if( !GTK_IS_WIDGET( p_intf->p_sys->p_playlist ) )
149 p_intf->p_sys->p_playlist = create_intf_playlist ();
151 gtk_widget_show( p_intf->p_sys->p_playlist );
152 gtk_object_set_data( GTK_OBJECT(p_intf->p_sys->p_playlist),
154 p_intf->p_sys->b_playlist = 1;
157 /* unlock the change structure */
158 vlc_mutex_unlock( &p_intf->p_sys->change_lock );
162 on_popup_control_activate (GtkMenuItem *menuitem,
165 intf_thread_t *p_intf;
167 p_intf = GET_GNOME_STRUCT( menuitem, "intf_popup" );
169 /* lock the change structure */
170 vlc_mutex_lock( &p_intf->p_sys->change_lock );
172 if( p_intf->p_sys->b_window )
174 gtk_widget_hide( p_intf->p_sys->p_window );
175 p_intf->p_sys->b_window = 0;
179 if( !GTK_IS_WIDGET( p_intf->p_sys->p_window ) )
181 p_intf->p_sys->p_window = create_intf_window ();
183 gtk_widget_show( p_intf->p_sys->p_window );
184 gtk_object_set_data( GTK_OBJECT(p_intf->p_sys->p_window),
186 p_intf->p_sys->b_window = 1;
189 /* unlock the change structure */
190 vlc_mutex_unlock( &p_intf->p_sys->change_lock );
195 on_popup_playlist_activate (GtkMenuItem *menuitem,
198 intf_thread_t *p_intf;
200 p_intf = GET_GNOME_STRUCT( menuitem, "intf_popup" );
202 /* lock the change structure */
203 vlc_mutex_lock( &p_intf->p_sys->change_lock );
205 if( p_intf->p_sys->b_playlist )
207 gtk_widget_hide( p_intf->p_sys->p_playlist );
208 p_intf->p_sys->b_playlist = 0;
212 if( !GTK_IS_WIDGET( p_intf->p_sys->p_playlist ) )
214 p_intf->p_sys->p_playlist = create_intf_playlist ();
216 gtk_widget_show( p_intf->p_sys->p_playlist );
217 gtk_object_set_data( GTK_OBJECT(p_intf->p_sys->p_playlist),
219 p_intf->p_sys->b_playlist = 1;
222 /* unlock the change structure */
223 vlc_mutex_unlock( &p_intf->p_sys->change_lock );
229 on_popup_exit_activate (GtkMenuItem *menuitem,
232 intf_thread_t *p_intf;
234 p_intf = GET_GNOME_STRUCT( menuitem, "intf_popup" );
241 on_popup_about_activate (GtkMenuItem *menuitem,
244 intf_thread_t *p_intf;
246 p_intf = GET_GNOME_STRUCT( menuitem, "intf_popup" );
248 if( !GTK_IS_WIDGET( p_intf->p_sys->p_about ) )
250 p_intf->p_sys->p_about = create_intf_about ();
252 gtk_widget_show( p_intf->p_sys->p_about );
257 on_intf_window_destroy (GtkObject *object,
260 intf_thread_t *p_intf;
262 p_intf = GET_GNOME_STRUCT( object, "intf_window" );
264 /* FIXME don't destroy the window, just hide it */
265 p_intf->p_sys->p_window = NULL;
272 on_intf_playlist_destroy (GtkObject *object,
281 on_channel1_activate (GtkMenuItem *menuitem,
289 on_channel2_activate (GtkMenuItem *menuitem,
297 on_channel3_activate (GtkMenuItem *menuitem,
305 on_channel4_activate (GtkMenuItem *menuitem,
313 on_channel5_activate (GtkMenuItem *menuitem,
321 on_popup_channel1_activate (GtkMenuItem *menuitem,
329 on_popup_channel2_activate (GtkMenuItem *menuitem,
337 on_popup_channel3_activate (GtkMenuItem *menuitem,
345 on_popup_channel4_activate (GtkMenuItem *menuitem,
353 on_popup_channel5_activate (GtkMenuItem *menuitem,
361 on_popup_config_channels_activate (GtkMenuItem *menuitem,
369 on_config_channels_activate (GtkMenuItem *menuitem,
377 on_user_guide_activate (GtkMenuItem *menuitem,
385 on_popup_stop_activate (GtkMenuItem *menuitem,
393 on_popup_play_activate (GtkMenuItem *menuitem,
396 intf_thread_t *p_intf;
398 p_intf = GET_GNOME_STRUCT( menuitem, "intf_popup" );
400 input_Play( p_intf->p_input );
405 on_playlist_close_clicked (GtkButton *button,
413 on_play_clicked (GtkButton *button,
416 intf_thread_t *p_intf;
418 p_intf = GET_GNOME_STRUCT( button, "intf_window" );
420 input_Play( p_intf->p_input );
425 on_channel0_activate (GtkMenuItem *menuitem,
433 on_popup_channel0_activate (GtkMenuItem *menuitem,
441 on_open_clicked (GtkButton *button,
444 GnomeUIInfo test_uiinfo[] =
447 GNOME_APP_UI_ITEM, N_( "Barf" ),
449 on_exit_activate, NULL, NULL,
450 GNOME_APP_PIXMAP_NONE, NULL,
455 intf_thread_t *p_intf;
457 p_intf = GET_GNOME_STRUCT( button, "intf_window" );
459 gnome_app_insert_menus (GNOME_APP (p_intf->p_sys->p_window),
460 "_View/Channel/None",
466 on_pause_clicked (GtkButton *button,
469 intf_thread_t *p_intf;
471 p_intf = GET_GNOME_STRUCT( button, "intf_window" );
473 input_Pause( p_intf->p_input );
478 on_popup_pause_activate (GtkMenuItem *menuitem,
481 intf_thread_t *p_intf;
483 p_intf = GET_GNOME_STRUCT( menuitem, "intf_popup" );
485 input_Pause( p_intf->p_input );
491 on_mute_clicked (GtkButton *button,
499 on_popup_mute_activate (GtkMenuItem *menuitem,