748e3c6efa243e339ba959cd8817dce884b10a59
[vlc.git] / modules / gui / pda / pda.h
1 /*****************************************************************************
2  * pda.h: private Gtk+ interface description
3  *****************************************************************************
4  * Copyright (C) 1999, 2000 VideoLAN
5  * $Id: pda.h,v 1.3 2003/10/03 18:04:58 jpsaman Exp $
6  *
7  * Authors: Jean-Paul Saman <jpsaman@wxs.nl>
8  *
9  * This program is free software; you can redistribute it and/or modify
10  * it under the terms of the GNU General Public License as published by
11  * the Free Software Foundation; either version 2 of the License, or
12  * (at your option) any later version.
13  *
14  * This program is distributed in the hope that it will be useful,
15  * but WITHOUT ANY WARRANTY; without even the implied warranty of
16  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17  * GNU General Public License for more details.
18  *
19  * You should have received a copy of the GNU General Public License
20  * along with this program; if not, write to the Free Software
21  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111, USA.
22  *****************************************************************************/
23
24 #define MAX_ATEXIT                 10
25
26 /*****************************************************************************
27  * intf_sys_t: description and status of Gtk+ interface
28  *****************************************************************************/
29 struct intf_sys_t
30 {
31     /* The gtk_main module */
32     module_t           *p_gtk_main;
33
34     /* windows and widgets */
35     GtkWidget          *p_window;                             /* main window */
36     GtkEntry           *p_mrlentry;
37     GtkNotebook        *p_notebook;
38     GtkNotebook        *p_mediabook;
39     GtkHScale          *p_slider;
40     GtkTreeView        *p_tvfile;
41     GtkTreeView        *p_tvplaylist;
42     GtkListStore       *p_filelist;                      /* File list widget */
43     GtkListStore       *p_playlist;                      /* Playlist widget  */
44
45     /* slider */
46     GtkLabel *          p_slider_label;
47     GtkAdjustment *     p_adj;                   /* slider adjustment object */
48     off_t               i_adj_oldvalue;  /* previous value -no FPU hardware  */
49     float               f_adj_oldvalue;  /* previous value -with FPU hardware*/
50
51     /* special actions */
52     vlc_bool_t          b_playing;
53     vlc_bool_t          b_window_changed;        /* window display toggled ? */
54     vlc_bool_t          b_slider_free;                      /* slider status */
55
56     /* Preference settings */
57     vlc_bool_t          b_autoplayfile;
58
59     /* The input thread */
60     input_thread_t *    p_input;
61 };
62
63 /*****************************************************************************
64  * Useful macro
65  ****************************************************************************/
66 #define GTK_GET( type, nom ) GTK_##type( gtk_object_get_data( \
67         GTK_OBJECT( p_intf->p_sys->p_window ), nom ) )
68
69             
70 #define  GtkGetIntf( widget ) E_(__GtkGetIntf)( GTK_WIDGET( widget ) )
71 void * E_(__GtkGetIntf)( GtkWidget * );