* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111, USA.
*****************************************************************************/
+#define MODULE_NAME gnome
+#include "modules_inner.h"
+
/*****************************************************************************
* Preamble
*****************************************************************************/
#include "interface.h"
#include "intf_plst.h"
+#include "intf_msg.h"
#include "gnome_sys.h"
#include "gnome_callbacks.h"
on_menubar_playlist_activate (GtkMenuItem *menuitem,
gpointer user_data)
{
+ intf_thread_t *p_intf = GetIntf( GTK_WIDGET(menuitem), "intf_window" );
-}
-
-
-void
-on_menubar_plugins_activate (GtkMenuItem *menuitem,
- gpointer user_data)
-{
-
+ if( !GTK_IS_WIDGET( p_intf->p_sys->p_playlist ) )
+ {
+ p_intf->p_sys->p_playlist = create_intf_playlist();
+ gtk_object_set_data( GTK_OBJECT( p_intf->p_sys->p_playlist ),
+ "p_intf", p_intf );
+ }
+ gtk_widget_show( p_intf->p_sys->p_playlist );
+ gdk_window_raise( p_intf->p_sys->p_playlist->window );
}
if( !GTK_IS_WIDGET( p_intf->p_sys->p_about ) )
{
p_intf->p_sys->p_about = create_intf_about();
+ gtk_object_set_data( GTK_OBJECT( p_intf->p_sys->p_about ),
+ "p_intf", p_intf );
}
gtk_widget_show( p_intf->p_sys->p_about );
+ gdk_window_raise( p_intf->p_sys->p_about->window );
}
if( p_intf->p_input != NULL )
{
- input_Play( p_intf->p_input );
+ input_SetStatus( p_intf->p_input, INPUT_STATUS_PLAY );
}
}
if( p_intf->p_input != NULL )
{
- input_Pause( p_intf->p_input );
+ input_SetStatus( p_intf->p_input, INPUT_STATUS_PAUSE );
}
}
on_toolbar_playlist_clicked (GtkButton *button,
gpointer user_data)
{
+ intf_thread_t *p_intf = GetIntf( GTK_WIDGET(button), "intf_window" );
+ if( !GTK_IS_WIDGET( p_intf->p_sys->p_playlist ) )
+ {
+ p_intf->p_sys->p_playlist = create_intf_playlist();
+ gtk_object_set_data( GTK_OBJECT( p_intf->p_sys->p_playlist ),
+ "p_intf", p_intf );
+ }
+ gtk_widget_show( p_intf->p_sys->p_playlist );
+ gdk_window_raise( p_intf->p_sys->p_playlist->window );
}
on_toolbar_prev_clicked (GtkButton *button,
gpointer user_data)
{
+ intf_thread_t *p_intf = GetIntf( GTK_WIDGET(button), "intf_window" );
+ if( p_intf->p_input != NULL )
+ {
+ /* FIXME: temporary hack */
+ intf_PlstPrev( p_main->p_playlist );
+ intf_PlstPrev( p_main->p_playlist );
+ p_intf->p_input->b_eof = 1;
+ }
}
on_toolbar_next_clicked (GtkButton *button,
gpointer user_data)
{
+ intf_thread_t *p_intf = GetIntf( GTK_WIDGET(button), "intf_window" );
+ if( p_intf->p_input != NULL )
+ {
+ /* FIXME: temporary hack */
+ p_intf->p_input->b_eof = 1;
+ }
}
if( p_intf->p_input != NULL )
{
- input_Play( p_intf->p_input );
+ input_SetStatus( p_intf->p_input, INPUT_STATUS_PLAY );
}
}
if( p_intf->p_input != NULL )
{
- input_Pause( p_intf->p_input );
+ input_SetStatus( p_intf->p_input, INPUT_STATUS_PAUSE );
}
}
if( !GTK_IS_WIDGET( p_intf->p_sys->p_about ) )
{
p_intf->p_sys->p_about = create_intf_about();
+ gtk_object_set_data( GTK_OBJECT( p_intf->p_sys->p_about ),
+ "p_intf", p_intf );
}
gtk_widget_show( p_intf->p_sys->p_about );
+ gdk_window_raise( p_intf->p_sys->p_about->window );
+}
+
+
+void
+on_intf_playlist_destroy (GtkObject *object,
+ gpointer user_data)
+{
+ intf_thread_t *p_intf = GetIntf( GTK_WIDGET(object), "intf_playlist" );
+
+ p_intf->p_sys->p_playlist = NULL;
+}
+
+
+void
+on_playlist_close_clicked (GtkButton *button,
+ gpointer user_data)
+{
+ gtk_widget_hide( gtk_widget_get_toplevel( GTK_WIDGET (button) ) );
+}
+
+
+void
+on_popup_slow_activate (GtkMenuItem *menuitem,
+ gpointer user_data)
+{
+ intf_thread_t *p_intf = GetIntf( GTK_WIDGET(menuitem), "intf_popup" );
+
+ if( p_intf->p_input != NULL )
+ {
+ input_SetStatus( p_intf->p_input, INPUT_STATUS_SLOWER );
+ }
+}
+
+
+void
+on_popup_fast_activate (GtkMenuItem *menuitem,
+ gpointer user_data)
+{
+ intf_thread_t *p_intf = GetIntf( GTK_WIDGET(menuitem), "intf_popup" );
+
+ if( p_intf->p_input != NULL )
+ {
+ input_SetStatus( p_intf->p_input, INPUT_STATUS_FASTER );
+ }
+}
+
+
+void
+on_toolbar_slow_clicked (GtkButton *button,
+ gpointer user_data)
+{
+ intf_thread_t *p_intf = GetIntf( GTK_WIDGET(button), "intf_window" );
+
+ if( p_intf->p_input != NULL )
+ {
+ input_SetStatus( p_intf->p_input, INPUT_STATUS_SLOWER );
+ }
+}
+
+
+void
+on_toolbar_fast_clicked (GtkButton *button,
+ gpointer user_data)
+{
+ intf_thread_t *p_intf = GetIntf( GTK_WIDGET(button), "intf_window" );
+
+ if( p_intf->p_input != NULL )
+ {
+ input_SetStatus( p_intf->p_input, INPUT_STATUS_FASTER );
+ }
+}
+
+
+gboolean
+on_hscale_button_release_event (GtkWidget *widget,
+ GdkEventButton *event,
+ gpointer user_data)
+{
+ intf_thread_t *p_intf = GetIntf( GTK_WIDGET(widget), "intf_window" );
+
+ GtkAdjustment *p_adj = gtk_range_get_adjustment( GTK_RANGE(widget) );
+ off_t i_seek;
+
+ vlc_mutex_lock( &p_intf->p_sys->change_lock );
+
+ if( p_intf->p_input != NULL )
+ {
+ i_seek = (p_adj->value *
+ p_intf->p_input->stream.pp_areas[0]->i_size) / 100;
+ input_Seek( p_intf->p_input, i_seek );
+ }
+ p_intf->p_sys->b_scale_isfree = 1;
+
+ vlc_mutex_unlock( &p_intf->p_sys->change_lock );
+
+ return FALSE;
+}
+
+
+gboolean
+on_hscale_button_press_event (GtkWidget *widget,
+ GdkEventButton *event,
+ gpointer user_data)
+{
+ intf_thread_t *p_intf = GetIntf( GTK_WIDGET(widget), "intf_window" );
+
+ vlc_mutex_lock( &p_intf->p_sys->change_lock );
+ p_intf->p_sys->b_scale_isfree = 0;
+ vlc_mutex_unlock( &p_intf->p_sys->change_lock );
+
+ return FALSE;
+}
+
+
+
+void
+on_intf_modules_destroy (GtkObject *object,
+ gpointer user_data)
+{
+
+}
+
+
+void
+on_modules_ok_clicked (GtkButton *button,
+ gpointer user_data)
+{
+ intf_thread_t *p_intf = GetIntf( GTK_WIDGET(button), "intf_modules" );
+
+ gtk_widget_hide( p_intf->p_sys->p_modules );
+
+}
+
+
+void
+on_modules_apply_clicked (GtkButton *button,
+ gpointer user_data)
+{
+
+}
+
+
+void
+on_modules_cancel_clicked (GtkButton *button,
+ gpointer user_data)
+{
+ intf_thread_t *p_intf = GetIntf( GTK_WIDGET(button), "intf_modules" );
+
+ gtk_widget_hide( p_intf->p_sys->p_modules );
+}
+
+
+void
+on_playlist_ok_clicked (GtkButton *button,
+ gpointer user_data)
+{
+ intf_thread_t *p_intf = GetIntf( GTK_WIDGET(button), "intf_playlist" );
+
+ gtk_widget_hide( p_intf->p_sys->p_playlist );
+}
+
+
+void
+on_menubar_modules_activate (GtkMenuItem *menuitem,
+ gpointer user_data)
+{
+ intf_thread_t *p_intf = GetIntf( GTK_WIDGET(menuitem), "intf_window" );
+
+ if( !GTK_IS_WIDGET( p_intf->p_sys->p_modules ) )
+ {
+ p_intf->p_sys->p_modules = create_intf_modules();
+ gtk_object_set_data( GTK_OBJECT( p_intf->p_sys->p_modules ),
+ "p_intf", p_intf );
+ }
+ gtk_widget_show( p_intf->p_sys->p_modules );
+ gdk_window_raise( p_intf->p_sys->p_modules->window );
+}
+
+
+void
+on_intf_window_drag_data_received (GtkWidget *widget,
+ GdkDragContext *drag_context,
+ gint x,
+ gint y,
+ GtkSelectionData *data,
+ guint info,
+ guint time,
+ gpointer user_data)
+{
+ char *psz_text = data->data;
+ int i_len = strlen( psz_text );
+
+ switch( info )
+ {
+ case DROP_ACCEPT_TEXT_PLAIN: /* FIXME: handle multiple files */
+
+ if( i_len < 1 )
+ {
+ return;
+ }
+
+ /* get rid of ' ' at the end */
+ *( psz_text + i_len - 1 ) = 0;
+
+ intf_WarnMsg( 1, "intf: dropped text/uri-list data `%s'", psz_text );
+ intf_PlstAdd( p_main->p_playlist, PLAYLIST_END, psz_text );
+
+ break;
+
+ case DROP_ACCEPT_TEXT_URI_LIST: /* FIXME: handle multiple files */
+
+ if( i_len < 2 )
+ {
+ return;
+ }
+
+ /* get rid of \r\n at the end */
+ *( psz_text + i_len - 2 ) = 0;
+
+ intf_WarnMsg( 1, "intf: dropped text/uri-list data `%s'", psz_text );
+ intf_PlstAdd( p_main->p_playlist, PLAYLIST_END, psz_text );
+ break;
+
+ default:
+
+ intf_ErrMsg( "intf error: unknown dropped type");
+ break;
+ }
}