* intf_gtk.h: private Gtk+ interface description
*****************************************************************************
* Copyright (C) 1999, 2000 VideoLAN
- * $Id: intf_gtk.h,v 1.2 2001/05/01 15:12:22 sam Exp $
+ * $Id: intf_gtk.h,v 1.6 2001/05/23 23:08:20 stef Exp $
*
* Authors: Samuel Hocevar <sam@zoy.org>
*
*****************************************************************************/
#define GTK_MENU_LABEL_SIZE 64
+/*****************************************************************************
+ * Convert user_data structures to title and chapter information
+ *****************************************************************************/
+#define DATA2TITLE( user_data ) ( (gint)(user_data) >> 16 )
+#define DATA2CHAPTER( user_data ) ( (gint)(user_data) & 0xffff )
+#define POS2DATA( title, chapter ) ( ((title) << 16) | ((chapter) & 0xffff) )
+
/*****************************************************************************
* Useful inline function
****************************************************************************/
boolean_t b_popup_changed; /* display menu ? */
boolean_t b_window_changed; /* window display toggled ? */
boolean_t b_playlist_changed; /* playlist display toggled ? */
- boolean_t b_menus_update; /* menus have changed ? */
boolean_t b_slider_free; /* slider status */
- int i_list_timeout;
-
- /* Playlist selected item */
- int i_playing;
+ /* menus handlers */
+ boolean_t b_title_update; /* do we need to update title menus */
+ boolean_t b_chapter_update; /* do we need to update
+ chapter menus */
+ boolean_t b_angle_update; /* do we need to update angle menus */
+ boolean_t b_audio_update; /* do we need to update audio menus */
+ boolean_t b_spu_update; /* do we need to update spu menus */
/* windows and widgets */
GtkWidget * p_window; /* main window */
GtkWidget * p_fileopen; /* file open window */
GtkWidget * p_disc; /* disc selection window */
GtkWidget * p_network; /* network stream window */
+ GtkWidget * p_preferences; /* preferences window */
+ GtkWidget * p_jump; /* jump window */
/* The slider */
+ GtkFrame * p_slider_frame;
GtkAdjustment * p_adj; /* slider adjustment object */
float f_adj_oldvalue; /* previous value */
- /* The window labels */
- GtkLabel * p_label_date;
- GtkLabel * p_label_status;
+ /* Playlist management */
+ int i_playing; /* playlist selected item */
+
+ /* The window labels for DVD mode */
+ GtkLabel * p_label_title;
+ GtkLabel * p_label_chapter;
+ gint i_part; /* current chapter */
/* XXX: Ugly kludge, see intf_gnome.c */
void ( *pf_gtk_callback ) ( void );
} intf_sys_t;
+/*****************************************************************************
+ * Prototypes
+ *****************************************************************************/
+
+gint GtkModeManage ( intf_thread_t * p_intf );
+void GtkDisplayDate ( GtkAdjustment *p_adj );
+
+