Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
V
vlc
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Redmine
Redmine
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Metrics
Environments
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
videolan
vlc
Commits
d477acf4
Commit
d477acf4
authored
Aug 05, 2003
by
Jean-Paul Saman
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Removing files for Familiar interface (Gtk+1.2 and GPE).
parent
2c4e15bb
Changes
14
Show whitespace changes
Inline
Side-by-side
Showing
14 changed files
with
0 additions
and
3972 deletions
+0
-3972
modules/gui/familiar/Modules.am
modules/gui/familiar/Modules.am
+0
-16
modules/gui/familiar/callbacks.c
modules/gui/familiar/callbacks.c
+0
-609
modules/gui/familiar/callbacks.h
modules/gui/familiar/callbacks.h
+0
-116
modules/gui/familiar/familiar.c
modules/gui/familiar/familiar.c
+0
-539
modules/gui/familiar/familiar.glade
modules/gui/familiar/familiar.glade
+0
-1118
modules/gui/familiar/familiar.h
modules/gui/familiar/familiar.h
+0
-69
modules/gui/familiar/interface.c
modules/gui/familiar/interface.c
+0
-860
modules/gui/familiar/interface.h
modules/gui/familiar/interface.h
+0
-5
modules/gui/familiar/network.c
modules/gui/familiar/network.c
+0
-136
modules/gui/familiar/network.h
modules/gui/familiar/network.h
+0
-58
modules/gui/familiar/playlist.c
modules/gui/familiar/playlist.c
+0
-203
modules/gui/familiar/playlist.h
modules/gui/familiar/playlist.h
+0
-20
modules/gui/familiar/support.c
modules/gui/familiar/support.c
+0
-162
modules/gui/familiar/support.h
modules/gui/familiar/support.h
+0
-61
No files found.
modules/gui/familiar/Modules.am
deleted
100644 → 0
View file @
2c4e15bb
SOURCES_familiar = \
familiar.c \
familiar.h \
interface.c \
interface.h \
support.c \
support.h \
callbacks.c \
callbacks.h \
network.c \
network.h \
playlist.c \
playlist.h \
$(NULL)
EXTRA_DIST += familiar.glade
modules/gui/familiar/callbacks.c
deleted
100644 → 0
View file @
2c4e15bb
/*****************************************************************************
* callbacks.c : Callbacks for the Familiar Linux Gtk+ plugin.
*****************************************************************************
* Copyright (C) 2000, 2001 VideoLAN
* $Id: callbacks.c,v 1.24 2003/07/31 20:47:09 reno Exp $
*
* Authors: Jean-Paul Saman <jpsaman@wxs.nl>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111, USA.
*****************************************************************************/
/*****************************************************************************
* Preamble
*****************************************************************************/
#include <sys/types.h>
/* off_t */
#include <stdlib.h>
#include <vlc/vlc.h>
#include <vlc/intf.h>
#include <vlc/vout.h>
#include <stdio.h>
#include <string.h>
#include <dirent.h>
#include <sys/stat.h>
#include <unistd.h>
#ifdef HAVE_CONFIG_H
# include <config.h>
#endif
#include <gtk/gtk.h>
#include "playlist.h"
#include "callbacks.h"
#include "interface.h"
#include "support.h"
#include "familiar.h"
static
char
*
get_file_perm
(
const
char
*
path
);
/*****************************************************************************
* Useful function to retrieve p_intf
****************************************************************************/
void
*
E_
(
__GtkGetIntf
)(
GtkWidget
*
widget
)
{
void
*
p_data
;
if
(
GTK_IS_MENU_ITEM
(
widget
)
)
{
/* Look for a GTK_MENU */
while
(
widget
->
parent
&&
!
GTK_IS_MENU
(
widget
)
)
{
widget
=
widget
->
parent
;
}
/* Maybe this one has the data */
p_data
=
gtk_object_get_data
(
GTK_OBJECT
(
widget
),
"p_intf"
);
if
(
p_data
)
{
return
p_data
;
}
/* Otherwise, the parent widget has it */
widget
=
gtk_menu_get_attach_widget
(
GTK_MENU
(
widget
)
);
}
/* We look for the top widget */
widget
=
gtk_widget_get_toplevel
(
GTK_WIDGET
(
widget
)
);
p_data
=
gtk_object_get_data
(
GTK_OBJECT
(
widget
),
"p_intf"
);
return
p_data
;
}
/*****************************************************************************
* Helper functions for URL changes in Media and Preferences notebook pages.
****************************************************************************/
void
MediaURLOpenChanged
(
GtkWidget
*
widget
,
gchar
*
psz_url
)
{
intf_thread_t
*
p_intf
=
GtkGetIntf
(
widget
);
playlist_t
*
p_playlist
;
// Add p_url to playlist .... but how ?
p_playlist
=
(
playlist_t
*
)
vlc_object_find
(
p_intf
,
VLC_OBJECT_PLAYLIST
,
FIND_ANYWHERE
);
if
(
p_playlist
==
NULL
)
{
return
;
}
if
(
p_playlist
)
{
if
(
p_intf
->
p_sys
->
b_autoplayfile
)
{
playlist_Add
(
p_playlist
,
(
char
*
)
psz_url
,
0
,
0
,
PLAYLIST_APPEND
|
PLAYLIST_GO
,
PLAYLIST_END
);
}
else
{
playlist_Add
(
p_playlist
,
(
char
*
)
psz_url
,
0
,
0
,
PLAYLIST_APPEND
,
PLAYLIST_END
);
}
vlc_object_release
(
p_playlist
);
FamiliarRebuildCList
(
p_intf
->
p_sys
->
p_clistplaylist
,
p_playlist
);
}
}
/*****************************************************************
* Read directory helper function.
****************************************************************/
void
ReadDirectory
(
GtkCList
*
clist
,
char
*
psz_dir
)
{
intf_thread_t
*
p_intf
=
GtkGetIntf
(
GTK_WIDGET
(
clist
)
);
struct
dirent
**
namelist
;
int
n
=-
1
,
status
=-
1
;
msg_Dbg
(
p_intf
,
"changing to dir %s"
,
psz_dir
);
if
(
psz_dir
)
{
status
=
chdir
(
psz_dir
);
if
(
status
<
0
)
msg_Err
(
p_intf
,
"permision denied"
);
}
n
=
scandir
(
"."
,
&
namelist
,
0
,
alphasort
);
if
(
n
<
0
)
perror
(
"scandir"
);
else
{
int
i
,
ctr
=
0
;
gchar
*
ppsz_text
[
5
];
msg_Dbg
(
p_intf
,
"updating interface"
);
gtk_clist_freeze
(
clist
);
gtk_clist_clear
(
clist
);
/* XXX : kludge temporaire pour yopy */
ppsz_text
[
0
]
=
".."
;
ppsz_text
[
1
]
=
get_file_perm
(
".."
);
ppsz_text
[
2
]
=
""
;
ppsz_text
[
3
]
=
""
;
ppsz_text
[
4
]
=
""
;
gtk_clist_insert
(
GTK_CLIST
(
clist
),
ctr
++
,
ppsz_text
);
/* /kludge */
for
(
i
=
0
;
i
<
n
;
i
++
)
{
if
(
namelist
[
i
]
->
d_name
[
0
]
!=
'.'
)
{
/* This is a list of strings. */
ppsz_text
[
0
]
=
namelist
[
i
]
->
d_name
;
ppsz_text
[
1
]
=
get_file_perm
(
namelist
[
i
]
->
d_name
);
ppsz_text
[
2
]
=
""
;
ppsz_text
[
3
]
=
""
;
ppsz_text
[
4
]
=
""
;
// msg_Dbg(p_intf, "(%d) file: %s permission: %s", i, ppsz_text[0], ppsz_text[1] );
gtk_clist_insert
(
GTK_CLIST
(
clist
),
ctr
++
,
ppsz_text
);
}
}
gtk_clist_thaw
(
clist
);
free
(
namelist
);
}
/* now switch to the "file" tab */
if
(
p_intf
->
p_sys
->
p_mediabook
)
{
gtk_widget_show
(
GTK_WIDGET
(
p_intf
->
p_sys
->
p_mediabook
)
);
gtk_notebook_set_page
(
p_intf
->
p_sys
->
p_mediabook
,
0
);
}
}
static
char
*
get_file_perm
(
const
char
*
path
)
{
struct
stat
st
;
char
*
perm
;
perm
=
(
char
*
)
malloc
(
sizeof
(
char
)
*
10
);
strncpy
(
perm
,
"----------"
,
sizeof
(
"----------"
));
if
(
lstat
(
path
,
&
st
)
==
0
)
{
if
(
S_ISLNK
(
st
.
st_mode
))
perm
[
0
]
=
'l'
;
else
if
(
S_ISDIR
(
st
.
st_mode
))
perm
[
0
]
=
'd'
;
else
if
(
S_ISCHR
(
st
.
st_mode
))
perm
[
0
]
=
'c'
;
else
if
(
S_ISBLK
(
st
.
st_mode
))
perm
[
0
]
=
'b'
;
else
if
(
S_ISFIFO
(
st
.
st_mode
))
perm
[
0
]
=
'f'
;
else
if
(
S_ISSOCK
(
st
.
st_mode
))
perm
[
0
]
=
's'
;
else
if
(
S_ISREG
(
st
.
st_mode
))
perm
[
0
]
=
'-'
;
else
/* Unknown type is an error */
perm
[
0
]
=
'?'
;
/* Get file permissions */
/* User */
if
(
st
.
st_mode
&
S_IRUSR
)
perm
[
1
]
=
'r'
;
if
(
st
.
st_mode
&
S_IWUSR
)
perm
[
2
]
=
'w'
;
if
(
st
.
st_mode
&
S_IXUSR
)
{
if
(
st
.
st_mode
&
S_ISUID
)
perm
[
3
]
=
's'
;
else
perm
[
3
]
=
'x'
;
}
else
if
(
st
.
st_mode
&
S_ISUID
)
perm
[
3
]
=
'S'
;
/* Group */
if
(
st
.
st_mode
&
S_IRGRP
)
perm
[
4
]
=
'r'
;
if
(
st
.
st_mode
&
S_IWGRP
)
perm
[
5
]
=
'w'
;
if
(
st
.
st_mode
&
S_IXGRP
)
{
if
(
st
.
st_mode
&
S_ISGID
)
perm
[
6
]
=
's'
;
else
perm
[
6
]
=
'x'
;
}
else
if
(
st
.
st_mode
&
S_ISGID
)
perm
[
6
]
=
'S'
;
/* Other */
if
(
st
.
st_mode
&
S_IROTH
)
perm
[
7
]
=
'r'
;
if
(
st
.
st_mode
&
S_IWOTH
)
perm
[
8
]
=
'w'
;
if
(
st
.
st_mode
&
S_IXOTH
)
{
// 'sticky' bit
if
(
st
.
st_mode
&
S_ISVTX
)
perm
[
9
]
=
't'
;
else
perm
[
9
]
=
'x'
;
}
else
if
(
st
.
st_mode
&
S_ISVTX
)
perm
[
9
]
=
'T'
;
}
return
perm
;
}
/*
* Main interface callbacks
*/
gboolean
FamiliarExit
(
GtkWidget
*
widget
,
gpointer
user_data
)
{
intf_thread_t
*
p_intf
=
GtkGetIntf
(
widget
);
vlc_mutex_lock
(
&
p_intf
->
change_lock
);
p_intf
->
p_vlc
->
b_die
=
VLC_TRUE
;
vlc_mutex_unlock
(
&
p_intf
->
change_lock
);
return
TRUE
;
}
void
on_toolbar_open_clicked
(
GtkButton
*
button
,
gpointer
user_data
)
{
intf_thread_t
*
p_intf
=
GtkGetIntf
(
GTK_WIDGET
(
button
)
);
if
(
p_intf
->
p_sys
->
p_notebook
)
{
gtk_widget_show
(
GTK_WIDGET
(
p_intf
->
p_sys
->
p_notebook
)
);
gtk_notebook_set_page
(
p_intf
->
p_sys
->
p_notebook
,
0
);
}
if
(
p_intf
->
p_sys
->
p_mediabook
)
{
gtk_widget_show
(
GTK_WIDGET
(
p_intf
->
p_sys
->
p_mediabook
)
);
gtk_notebook_set_page
(
p_intf
->
p_sys
->
p_mediabook
,
0
);
}
gdk_window_raise
(
p_intf
->
p_sys
->
p_window
->
window
);
if
(
p_intf
->
p_sys
->
p_clist
)
{
ReadDirectory
(
p_intf
->
p_sys
->
p_clist
,
"."
);
}
}
void
on_toolbar_preferences_clicked
(
GtkButton
*
button
,
gpointer
user_data
)
{
intf_thread_t
*
p_intf
=
GtkGetIntf
(
GTK_WIDGET
(
button
)
);
if
(
p_intf
->
p_sys
->
p_notebook
)
{
gtk_widget_show
(
GTK_WIDGET
(
p_intf
->
p_sys
->
p_notebook
)
);
gtk_notebook_set_page
(
p_intf
->
p_sys
->
p_notebook
,
2
);
}
gdk_window_raise
(
p_intf
->
p_sys
->
p_window
->
window
);
}
void
on_toolbar_rewind_clicked
(
GtkButton
*
button
,
gpointer
user_data
)
{
intf_thread_t
*
p_intf
=
GtkGetIntf
(
button
);
if
(
p_intf
->
p_sys
->
p_input
!=
NULL
)
{
input_SetStatus
(
p_intf
->
p_sys
->
p_input
,
INPUT_STATUS_SLOWER
);
}
}
void
on_toolbar_pause_clicked
(
GtkButton
*
button
,
gpointer
user_data
)
{
intf_thread_t
*
p_intf
=
GtkGetIntf
(
button
);
if
(
p_intf
->
p_sys
->
p_input
!=
NULL
)
{
input_SetStatus
(
p_intf
->
p_sys
->
p_input
,
INPUT_STATUS_PAUSE
);
}
}
void
on_toolbar_play_clicked
(
GtkButton
*
button
,
gpointer
user_data
)
{
intf_thread_t
*
p_intf
=
GtkGetIntf
(
GTK_WIDGET
(
button
)
);
playlist_t
*
p_playlist
=
vlc_object_find
(
p_intf
,
VLC_OBJECT_PLAYLIST
,
FIND_ANYWHERE
);
if
(
p_playlist
==
NULL
)
{
/* Display open page */
on_toolbar_open_clicked
(
button
,
user_data
);
}
/* If the playlist is empty, open a file requester instead */
vlc_mutex_lock
(
&
p_playlist
->
object_lock
);
if
(
p_playlist
->
i_size
)
{
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
{
vlc_mutex_unlock
(
&
p_playlist
->
object_lock
);
vlc_object_release
(
p_playlist
);
/* Display open page */
on_toolbar_open_clicked
(
button
,
user_data
);
}
}
void
on_toolbar_stop_clicked
(
GtkButton
*
button
,
gpointer
user_data
)
{
intf_thread_t
*
p_intf
=
GtkGetIntf
(
GTK_WIDGET
(
button
)
);
playlist_t
*
p_playlist
=
vlc_object_find
(
p_intf
,
VLC_OBJECT_PLAYLIST
,
FIND_ANYWHERE
);
if
(
p_playlist
)
{
playlist_Stop
(
p_playlist
);
vlc_object_release
(
p_playlist
);
gdk_window_raise
(
p_intf
->
p_sys
->
p_window
->
window
);
}
}
void
on_toolbar_forward_clicked
(
GtkButton
*
button
,
gpointer
user_data
)
{
intf_thread_t
*
p_intf
=
GtkGetIntf
(
button
);
if
(
p_intf
->
p_sys
->
p_input
!=
NULL
)
{
input_SetStatus
(
p_intf
->
p_sys
->
p_input
,
INPUT_STATUS_FASTER
);
}
}
void
on_toolbar_playlist_clicked
(
GtkButton
*
button
,
gpointer
user_data
)
{
intf_thread_t
*
p_intf
=
GtkGetIntf
(
GTK_WIDGET
(
button
)
);
// Toggle notebook
if
(
p_intf
->
p_sys
->
p_notebook
)
{
gtk_widget_show
(
GTK_WIDGET
(
p_intf
->
p_sys
->
p_notebook
)
);
gtk_notebook_set_page
(
p_intf
->
p_sys
->
p_notebook
,
1
);
}
gdk_window_raise
(
p_intf
->
p_sys
->
p_window
->
window
);
}
void
on_toolbar_about_clicked
(
GtkButton
*
button
,
gpointer
user_data
)
{
intf_thread_t
*
p_intf
=
GtkGetIntf
(
GTK_WIDGET
(
button
)
);
// Toggle notebook
if
(
p_intf
->
p_sys
->
p_notebook
)
{
gtk_widget_show
(
GTK_WIDGET
(
p_intf
->
p_sys
->
p_notebook
)
);
gtk_notebook_set_page
(
p_intf
->
p_sys
->
p_notebook
,
3
);
}
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
(
GTK_WIDGET
(
editable
)
);
gchar
*
psz_url
;
struct
stat
st
;
psz_url
=
gtk_entry_get_text
(
GTK_ENTRY
(
editable
));
/* if( (strncmp("file://",(const char *) psz_url,7)==0) ||
(strncmp("udp://",(const char *) psz_url,6)==0) ||
(strncmp("udp4://",(const char *) psz_url,7)==0) ||
(strncmp("udp6://",(const char *) psz_url,7)==0) ||
(strncmp("udpstream://",(const char *) psz_url,12)==0) ||
(strncmp("rtp://",(const char *) psz_url,6)==0) ||
(strncmp("rtp4://",(const char *) psz_url,7)==0) ||
(strncmp("rtp6://",(const char *) psz_url,7)==0) ||
(strncmp("rtpstream://",(const char *) psz_url,12)==0) ||
(strncmp("ftp://",(const char *) psz_url,6)==0) ||
(strncmp("mms://",(const char *) psz_url,6)==0) ||
(strncmp("http://",(const char *) psz_url,7)==0) )
{
MediaURLOpenChanged(GTK_WIDGET(editable), psz_url);
}
else */
if
(
stat
((
char
*
)
psz_url
,
&
st
)
==
0
)
{
if
(
S_ISDIR
(
st
.
st_mode
))
{
if
(
!
p_intf
->
p_sys
->
p_clist
)
msg_Err
(
p_intf
,
"p_clist pointer invalid!!"
);
ReadDirectory
(
p_intf
->
p_sys
->
p_clist
,
psz_url
);
}
else
if
(
(
S_ISLNK
(
st
.
st_mode
))
||
(
S_ISCHR
(
st
.
st_mode
))
||
(
S_ISBLK
(
st
.
st_mode
))
||
(
S_ISFIFO
(
st
.
st_mode
))
||
(
S_ISSOCK
(
st
.
st_mode
))
||
(
S_ISREG
(
st
.
st_mode
))
)
{
MediaURLOpenChanged
(
GTK_WIDGET
(
editable
),
psz_url
);
}
}
}
void
on_clistmedia_click_column
(
GtkCList
*
clist
,
gint
column
,
gpointer
user_data
)
{
static
GtkSortType
sort_type
=
GTK_SORT_ASCENDING
;
// Should sort on column
switch
(
sort_type
)
{
case
GTK_SORT_ASCENDING
:
sort_type
=
GTK_SORT_DESCENDING
;
break
;
case
GTK_SORT_DESCENDING
:
sort_type
=
GTK_SORT_ASCENDING
;
break
;
}
gtk_clist_freeze
(
clist
);
gtk_clist_set_sort_type
(
clist
,
sort_type
);
gtk_clist_sort
(
clist
);
gtk_clist_thaw
(
clist
);
}
void
on_clistmedia_select_row
(
GtkCList
*
clist
,
gint
row
,
gint
column
,
GdkEvent
*
event
,
gpointer
user_data
)
{
intf_thread_t
*
p_intf
=
GtkGetIntf
(
GTK_WIDGET
(
clist
)
);
gchar
*
text
[
2
];
gint
ret
;
struct
stat
st
;
if
(
!
p_intf
->
p_sys
->
p_clist
)
msg_Err
(
p_intf
,
"p_clist pointer is invalid."
);
ret
=
gtk_clist_get_text
(
p_intf
->
p_sys
->
p_clist
,
row
,
0
,
text
);
if
(
ret
)
{
if
(
stat
((
char
*
)
text
[
0
],
&
st
)
==
0
)
{
if
(
S_ISDIR
(
st
.
st_mode
))
ReadDirectory
(
p_intf
->
p_sys
->
p_clist
,
text
[
0
]);
else
if
(
(
S_ISLNK
(
st
.
st_mode
))
||
(
S_ISCHR
(
st
.
st_mode
))
||
(
S_ISBLK
(
st
.
st_mode
))
||
(
S_ISFIFO
(
st
.
st_mode
))
||
(
S_ISSOCK
(
st
.
st_mode
))
||
(
S_ISREG
(
st
.
st_mode
))
)
{
MediaURLOpenChanged
(
GTK_WIDGET
(
p_intf
->
p_sys
->
p_clist
),
text
[
0
]);
}
}
}
}
void
on_cbautoplay_toggled
(
GtkToggleButton
*
togglebutton
,
gpointer
user_data
)
{
}
gboolean
on_familiar_delete_event
(
GtkWidget
*
widget
,
GdkEvent
*
event
,
gpointer
user_data
)
{
FamiliarExit
(
GTK_WIDGET
(
widget
),
user_data
);
return
TRUE
;
}
/* Slider Management */
gboolean
FamiliarSliderRelease
(
GtkWidget
*
widget
,
GdkEventButton
*
event
,
gpointer
user_data
)
{
intf_thread_t
*
p_intf
=
GtkGetIntf
(
widget
);
vlc_mutex_lock
(
&
p_intf
->
change_lock
);
p_intf
->
p_sys
->
b_slider_free
=
1
;
vlc_mutex_unlock
(
&
p_intf
->
change_lock
);
return
FALSE
;
}
gboolean
FamiliarSliderPress
(
GtkWidget
*
widget
,
GdkEventButton
*
event
,
gpointer
user_data
)
{
intf_thread_t
*
p_intf
=
GtkGetIntf
(
widget
);
vlc_mutex_lock
(
&
p_intf
->
change_lock
);
p_intf
->
p_sys
->
b_slider_free
=
0
;
vlc_mutex_unlock
(
&
p_intf
->
change_lock
);
return
FALSE
;
}
void
FamiliarMrlGo
(
GtkButton
*
button
,
gpointer
user_data
)
{
intf_thread_t
*
p_intf
=
GtkGetIntf
(
button
);
MediaURLOpenChanged
(
GTK_WIDGET
(
button
),
gtk_entry_get_text
(
p_intf
->
p_sys
->
p_mrlentry
)
);
}
void
FamiliarPreferencesApply
(
GtkButton
*
button
,
gpointer
user_data
)
{
intf_thread_t
*
p_intf
=
GtkGetIntf
(
GTK_WIDGET
(
button
)
);
GtkToggleButton
*
p_autopl_button
=
GTK_GET
(
TOGGLE_BUTTON
,
"cbautoplay"
);
if
(
gtk_toggle_button_get_active
(
p_autopl_button
))
{
p_intf
->
p_sys
->
b_autoplayfile
=
1
;
}
else
{
p_intf
->
p_sys
->
b_autoplayfile
=
0
;
}
}
modules/gui/familiar/callbacks.h
deleted
100644 → 0
View file @
2c4e15bb
/*****************************************************************************
* callbacks.h : familiar plugin for vlc
*****************************************************************************
* Copyright (C) 2002 VideoLAN
* $Id: callbacks.h,v 1.9 2003/03/13 15:50:17 marcari Exp $
*
* Authors: Jean-Paul Saman <jpsaman@wxs.nl>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111, USA.
*****************************************************************************/
#include <gtk/gtk.h>
#include "network.h"
#include "playlist.h"
gboolean
FamiliarExit
(
GtkWidget
*
,
gpointer
);
void
ReadDirectory
(
GtkCList
*
clist
,
char
*
psz_dir
);
void
MediaURLOpenChanged
(
GtkWidget
*
widget
,
gchar
*
psz_url
);
void
on_toolbar_open_clicked
(
GtkButton
*
button
,
gpointer
user_data
);
void
on_toolbar_preferences_clicked
(
GtkButton
*
button
,
gpointer
user_data
);
void
on_toolbar_rewind_clicked
(
GtkButton
*
button
,
gpointer
user_data
);
void
on_toolbar_pause_clicked
(
GtkButton
*
button
,
gpointer
user_data
);
void
on_toolbar_play_clicked
(
GtkButton
*
button
,
gpointer
user_data
);
void
on_toolbar_stop_clicked
(
GtkButton
*
button
,
gpointer
user_data
);
void
on_toolbar_forward_clicked
(
GtkButton
*
button
,
gpointer
user_data
);
void
on_toolbar_about_clicked
(
GtkButton
*
button
,
gpointer
user_data
);
void
on_comboURL_entry_changed
(
GtkEditable
*
editable
,
gpointer
user_data
);
void
on_clistmedia_click_column
(
GtkCList
*
clist
,
gint
column
,
gpointer
user_data
);
void
on_clistmedia_select_row
(
GtkCList
*
clist
,
gint
row
,
gint
column
,
GdkEvent
*
event
,
gpointer
user_data
);
void
on_cbautoplay_toggled
(
GtkToggleButton
*
togglebutton
,
gpointer
user_data
);
gboolean
on_familiar_delete_event
(
GtkWidget
*
widget
,
GdkEvent
*
event
,
gpointer
user_data
);
gboolean
FamiliarSliderRelease
(
GtkWidget
*
widget
,
GdkEventButton
*
event
,
gpointer
user_data
);
gboolean
FamiliarSliderPress
(
GtkWidget
*
widget
,
GdkEventButton
*
event
,
gpointer
user_data
);
void
FamiliarMrlGo
(
GtkButton
*
button
,
gpointer
user_data
);
void
on_toolbar_playlist_clicked
(
GtkButton
*
button
,
gpointer
user_data
);
void
FamiliarPreferencesApply
(
GtkButton
*
button
,
gpointer
user_data
);
modules/gui/familiar/familiar.c
deleted
100644 → 0
View file @
2c4e15bb
/*****************************************************************************
* familiar.c : familiar plugin for vlc
*****************************************************************************
* Copyright (C) 2002 VideoLAN
* $Id: familiar.c,v 1.35 2003/05/15 22:27:37 massiot Exp $
*
* Authors: Jean-Paul Saman <jpsaman@wxs.nl>
* Marc Ariberti <marcari@videolan.org>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111, USA.
*****************************************************************************/
/*****************************************************************************
* Preamble
*****************************************************************************/
#include <stdlib.h>
/* malloc(), free() */
#include <errno.h>
/* ENOMEM */
#include <string.h>
/* strerror() */
#include <stdio.h>
#include <vlc/vlc.h>
#include <vlc/intf.h>
#include <gtk/gtk.h>
#ifdef HAVE_GPE_INIT_H
#include <gpe/init.h>
#endif
#include "callbacks.h"
#include "interface.h"
#include "support.h"
#include "familiar.h"
/*****************************************************************************
* Local prototypes.
*****************************************************************************/
static
int
Open
(
vlc_object_t
*
);
static
void
Close
(
vlc_object_t
*
);
static
void
Run
(
intf_thread_t
*
);
void
GtkAutoPlayFile
(
vlc_object_t
*
);
static
int
Manage
(
intf_thread_t
*
p_intf
);
void
E_
(
GtkDisplayDate
)
(
GtkAdjustment
*
p_adj
);
gint
E_
(
GtkModeManage
)
(
intf_thread_t
*
p_intf
);
/*****************************************************************************
* Module descriptor
*****************************************************************************/
#define AUTOPLAYFILE_TEXT N_("Autoplay selected file")
#define AUTOPLAYFILE_LONGTEXT N_("Automatically play a file when selected in the "\
"file selection list")
/*****************************************************************************
* Module descriptor
*****************************************************************************/
vlc_module_begin
();
add_category_hint
(
N_
(
"Miscellaneous"
),
NULL
,
VLC_TRUE
);
add_bool
(
"familiar-autoplayfile"
,
1
,
GtkAutoPlayFile
,
AUTOPLAYFILE_TEXT
,
AUTOPLAYFILE_LONGTEXT
,
VLC_TRUE
);
set_description
(
_
(
"Familiar Linux Gtk+ interface"
)
);
set_capability
(
"interface"
,
70
);
set_callbacks
(
Open
,
Close
);
vlc_module_end
();
/*****************************************************************************
* Open: initialize and create window
*****************************************************************************/
static
int
Open
(
vlc_object_t
*
p_this
)
{
intf_thread_t
*
p_intf
=
(
intf_thread_t
*
)
p_this
;
/* Allocate instance and initialize some members */
p_intf
->
p_sys
=
malloc
(
sizeof
(
intf_sys_t
)
);
if
(
p_intf
->
p_sys
==
NULL
)
{
msg_Err
(
p_intf
,
"out of memory"
);
return
VLC_ENOMEM
;
}
#ifdef NEED_GTK_MAIN
msg_Dbg
(
p_intf
,
"Using gui-helper"
);
p_intf
->
p_sys
->
p_gtk_main
=
module_Need
(
p_this
,
"gui-helper"
,
"gtk"
);
if
(
p_intf
->
p_sys
->
p_gtk_main
==
NULL
)
{
free
(
p_intf
->
p_sys
);
return
VLC_ENOMOD
;
}
#endif
/* Initialize Gtk+ thread */
p_intf
->
p_sys
->
p_input
=
NULL
;
p_intf
->
p_sys
->
b_autoplayfile
=
1
;
p_intf
->
p_sys
->
b_playing
=
0
;
p_intf
->
p_sys
->
b_slider_free
=
1
;
p_intf
->
pf_run
=
Run
;
return
VLC_SUCCESS
;
}
/*****************************************************************************
* Close: destroy interface window
*****************************************************************************/
static
void
Close
(
vlc_object_t
*
p_this
)
{
intf_thread_t
*
p_intf
=
(
intf_thread_t
*
)
p_this
;
if
(
p_intf
->
p_sys
->
p_input
)
{
vlc_object_release
(
p_intf
->
p_sys
->
p_input
);
}
#ifdef NEED_GTK_MAIN
msg_Dbg
(
p_intf
,
"Releasing gui-helper"
);
module_Unneed
(
p_intf
,
p_intf
->
p_sys
->
p_gtk_main
);
#endif
/* Destroy structure */
free
(
p_intf
->
p_sys
);
}
/*****************************************************************************
* Run: Gtk+ thread
*****************************************************************************
* this part of the interface is in a separate thread so that we can call
* gtk_main() from within it without annoying the rest of the program.
*****************************************************************************/
static
void
Run
(
intf_thread_t
*
p_intf
)
{
#ifndef NEED_GTK_MAIN
/* gtk_init needs to know the command line. We don't care, so we
* give it an empty one */
char
*
p_args
[]
=
{
""
,
NULL
};
char
**
pp_args
=
p_args
;
int
i_args
=
1
;
int
i_dummy
;
#endif
#ifdef HAVE_GPE_INIT_H
/* Initialize GPE interface */
msg_Dbg
(
p_intf
,
"Starting familiar GPE interface"
);
if
(
gpe_application_init
(
&
i_args
,
&
pp_args
)
==
FALSE
)
exit
(
1
);
#else
gtk_set_locale
();
# ifndef NEED_GTK_MAIN
msg_Dbg
(
p_intf
,
"Starting familiar GTK+ interface"
);
gtk_init
(
&
i_args
,
&
pp_args
);
# else
/* Initialize Gtk+ */
msg_Dbg
(
p_intf
,
"Starting familiar GTK+ interface thread"
);
gdk_threads_enter
();
# endif
#endif
/* Create some useful widgets that will certainly be used */
// FIXME: magic path
add_pixmap_directory
(
"share"
);
add_pixmap_directory
(
"/usr/share/vlc"
);
/* Path for pixmaps under linupy 1.4 */
add_pixmap_directory
(
"/usr/local/share/pixmaps/vlc"
);
/* Path for pixmaps under linupy 2.0 */
add_pixmap_directory
(
"/usr/share/pixmaps/vlc"
);
p_intf
->
p_sys
->
p_window
=
create_familiar
();
if
(
p_intf
->
p_sys
->
p_window
==
NULL
)
{
msg_Err
(
p_intf
,
"unable to create familiar interface"
);
}
gtk_widget_set_usize
(
p_intf
->
p_sys
->
p_window
,
gdk_screen_width
()
,
gdk_screen_height
()
-
30
);
/* Set the title of the main window */
gtk_window_set_title
(
GTK_WINDOW
(
p_intf
->
p_sys
->
p_window
),
VOUT_TITLE
" (Familiar Linux interface)"
);
p_intf
->
p_sys
->
p_notebook
=
GTK_NOTEBOOK
(
gtk_object_get_data
(
GTK_OBJECT
(
p_intf
->
p_sys
->
p_window
),
"notebook"
)
);
p_intf
->
p_sys
->
p_mediabook
=
GTK_NOTEBOOK
(
gtk_object_get_data
(
GTK_OBJECT
(
p_intf
->
p_sys
->
p_window
),
"mediabook"
)
);
/* Get the slider object */
p_intf
->
p_sys
->
p_slider
=
GTK_HSCALE
(
gtk_object_get_data
(
GTK_OBJECT
(
p_intf
->
p_sys
->
p_window
),
"slider"
)
);
p_intf
->
p_sys
->
p_slider_label
=
GTK_LABEL
(
gtk_object_get_data
(
GTK_OBJECT
(
p_intf
->
p_sys
->
p_window
),
"slider_label"
)
);
/* Connect the date display to the slider */
#define P_SLIDER GTK_RANGE( gtk_object_get_data( \
GTK_OBJECT( p_intf->p_sys->p_window ), "slider" ) )
p_intf
->
p_sys
->
p_adj
=
gtk_range_get_adjustment
(
P_SLIDER
);
gtk_signal_connect
(
GTK_OBJECT
(
p_intf
->
p_sys
->
p_adj
),
"value_changed"
,
GTK_SIGNAL_FUNC
(
E_
(
GtkDisplayDate
)
),
NULL
);
p_intf
->
p_sys
->
f_adj_oldvalue
=
0
;
p_intf
->
p_sys
->
i_adj_oldvalue
=
0
;
#undef P_SLIDER
p_intf
->
p_sys
->
p_clist
=
GTK_CLIST
(
gtk_object_get_data
(
GTK_OBJECT
(
p_intf
->
p_sys
->
p_window
),
"clistmedia"
)
);
gtk_clist_set_column_visibility
(
GTK_CLIST
(
p_intf
->
p_sys
->
p_clist
),
2
,
FALSE
);
gtk_clist_set_column_visibility
(
GTK_CLIST
(
p_intf
->
p_sys
->
p_clist
),
3
,
FALSE
);
gtk_clist_set_column_visibility
(
GTK_CLIST
(
p_intf
->
p_sys
->
p_clist
),
4
,
FALSE
);
gtk_clist_column_titles_show
(
GTK_CLIST
(
p_intf
->
p_sys
->
p_clist
));
/* the playlist object */
p_intf
->
p_sys
->
p_clistplaylist
=
GTK_CLIST
(
gtk_object_get_data
(
GTK_OBJECT
(
p_intf
->
p_sys
->
p_window
),
"clistplaylist"
)
);
p_intf
->
p_sys
->
p_mrlentry
=
GTK_ENTRY
(
gtk_object_get_data
(
GTK_OBJECT
(
p_intf
->
p_sys
->
p_window
),
"mrl_entry"
)
);
/* Store p_intf to keep an eye on it */
gtk_object_set_data
(
GTK_OBJECT
(
p_intf
->
p_sys
->
p_window
),
"p_intf"
,
p_intf
);
gtk_object_set_data
(
GTK_OBJECT
(
p_intf
->
p_sys
->
p_adj
),
"p_intf"
,
p_intf
);
/* Show the control window */
gtk_widget_show
(
p_intf
->
p_sys
->
p_window
);
ReadDirectory
(
p_intf
->
p_sys
->
p_clist
,
"."
);
/* update the playlist */
FamiliarRebuildCList
(
p_intf
->
p_sys
->
p_clistplaylist
,
vlc_object_find
(
p_intf
,
VLC_OBJECT_PLAYLIST
,
FIND_ANYWHERE
));
#ifdef NEED_GTK_MAIN
msg_Dbg
(
p_intf
,
"Manage GTK keyboard events using threads"
);
while
(
!
p_intf
->
b_die
)
{
Manage
(
p_intf
);
/* Sleep to avoid using all CPU - since some interfaces need to
* access keyboard events, a 100ms delay is a good compromise */
gdk_threads_leave
();
if
(
p_intf
->
p_libvlc
->
i_cpu
&
CPU_CAPABILITY_FPU
)
msleep
(
INTF_IDLE_SLEEP
);
else
msleep
(
1000
);
gdk_threads_enter
();
}
#else
msg_Dbg
(
p_intf
,
"Manage GTK keyboard events using timeouts"
);
/* Sleep to avoid using all CPU - since some interfaces needs to access
* keyboard events, a 1000ms delay is a good compromise */
if
(
p_intf
->
p_libvlc
->
i_cpu
&
CPU_CAPABILITY_FPU
)
i_dummy
=
gtk_timeout_add
(
INTF_IDLE_SLEEP
/
1000
,
(
GtkFunction
)
Manage
,
p_intf
);
else
i_dummy
=
gtk_timeout_add
(
1000
,
(
GtkFunction
)
Manage
,
p_intf
);
/* Enter Gtk mode */
gtk_main
();
/* Remove the timeout */
gtk_timeout_remove
(
i_dummy
);
#endif
gtk_object_destroy
(
GTK_OBJECT
(
p_intf
->
p_sys
->
p_window
)
);
#ifdef NEED_GTK_MAIN
gdk_threads_leave
();
#endif
}
/*****************************************************************************
* GtkAutoplayFile: Autoplay file depending on configuration settings
*****************************************************************************/
void
GtkAutoPlayFile
(
vlc_object_t
*
p_this
)
{
GtkWidget
*
cbautoplay
;
intf_thread_t
*
p_intf
;
int
i_index
;
vlc_list_t
*
p_list
=
vlc_list_find
(
p_this
,
VLC_OBJECT_INTF
,
FIND_ANYWHERE
);
for
(
i_index
=
0
;
i_index
<
p_list
->
i_count
;
i_index
++
)
{
p_intf
=
(
intf_thread_t
*
)
p_list
->
p_values
[
i_index
].
p_object
;
if
(
strcmp
(
MODULE_STRING
,
p_intf
->
p_module
->
psz_object_name
)
)
{
continue
;
}
cbautoplay
=
GTK_WIDGET
(
gtk_object_get_data
(
GTK_OBJECT
(
p_intf
->
p_sys
->
p_window
),
"cbautoplay"
)
);
if
(
!
config_GetInt
(
p_this
,
"familiar-autoplayfile"
)
)
{
p_intf
->
p_sys
->
b_autoplayfile
=
VLC_FALSE
;
}
else
{
p_intf
->
p_sys
->
b_autoplayfile
=
VLC_TRUE
;
}
gtk_toggle_button_set_active
(
GTK_TOGGLE_BUTTON
(
cbautoplay
),
p_intf
->
p_sys
->
b_autoplayfile
);
}
vlc_list_release
(
p_list
);
}
/* following functions are local */
/*****************************************************************************
* Manage: manage main thread messages
*****************************************************************************
* In this function, called approx. 10 times a second, we check what the
* main program wanted to tell us.
*****************************************************************************/
static
int
Manage
(
intf_thread_t
*
p_intf
)
{
vlc_mutex_lock
(
&
p_intf
->
change_lock
);
/* Update the input */
if
(
p_intf
->
p_sys
->
p_input
==
NULL
)
{
p_intf
->
p_sys
->
p_input
=
vlc_object_find
(
p_intf
,
VLC_OBJECT_INPUT
,
FIND_ANYWHERE
);
}
else
if
(
p_intf
->
p_sys
->
p_input
->
b_dead
)
{
vlc_object_release
(
p_intf
->
p_sys
->
p_input
);
p_intf
->
p_sys
->
p_input
=
NULL
;
}
if
(
p_intf
->
p_sys
->
p_input
)
{
input_thread_t
*
p_input
=
p_intf
->
p_sys
->
p_input
;
vlc_mutex_lock
(
&
p_input
->
stream
.
stream_lock
);
if
(
!
p_input
->
b_die
)
{
/* New input or stream map change */
if
(
p_input
->
stream
.
b_changed
)
{
playlist_t
*
p_playlist
;
E_
(
GtkModeManage
)(
p_intf
);
p_intf
->
p_sys
->
b_playing
=
1
;
/* update playlist interface */
p_playlist
=
(
playlist_t
*
)
vlc_object_find
(
p_intf
,
VLC_OBJECT_PLAYLIST
,
FIND_ANYWHERE
);
if
(
p_playlist
!=
NULL
)
{
FamiliarRebuildCList
(
p_intf
->
p_sys
->
p_clistplaylist
,
p_playlist
);
}
}
/* Manage the slider */
if
(
p_intf
->
p_libvlc
->
i_cpu
&
CPU_CAPABILITY_FPU
)
{
/* Manage the slider for CPU_CAPABILITY_FPU hardware */
if
(
p_input
->
stream
.
b_seekable
&&
p_intf
->
p_sys
->
b_playing
)
{
float
newvalue
=
p_intf
->
p_sys
->
p_adj
->
value
;
#define p_area p_input->stream.p_selected_area
/* If the user hasn't touched the slider since the last time,
* then the input can safely change it */
if
(
newvalue
==
p_intf
->
p_sys
->
f_adj_oldvalue
)
{
/* Update the value */
p_intf
->
p_sys
->
p_adj
->
value
=
p_intf
->
p_sys
->
f_adj_oldvalue
=
(
100
.
*
p_area
->
i_tell
)
/
p_area
->
i_size
;
gtk_signal_emit_by_name
(
GTK_OBJECT
(
p_intf
->
p_sys
->
p_adj
),
"value_changed"
);
}
/* Otherwise, send message to the input if the user has
* finished dragging the slider */
else
if
(
p_intf
->
p_sys
->
b_slider_free
)
{
off_t
i_seek
=
(
newvalue
*
p_area
->
i_size
)
/
100
;
/* release the lock to be able to seek */
vlc_mutex_unlock
(
&
p_input
->
stream
.
stream_lock
);
input_Seek
(
p_input
,
i_seek
,
INPUT_SEEK_SET
);
vlc_mutex_lock
(
&
p_input
->
stream
.
stream_lock
);
/* Update the old value */
p_intf
->
p_sys
->
f_adj_oldvalue
=
newvalue
;
}
#undef p_area
}
}
else
{
/* Manage the slider without CPU_CAPABILITY_FPU hardware */
if
(
p_input
->
stream
.
b_seekable
&&
p_intf
->
p_sys
->
b_playing
)
{
off_t
newvalue
=
p_intf
->
p_sys
->
p_adj
->
value
;
#define p_area p_input->stream.p_selected_area
/* If the user hasn't touched the slider since the last time,
* then the input can safely change it */
if
(
newvalue
==
p_intf
->
p_sys
->
i_adj_oldvalue
)
{
/* Update the value */
p_intf
->
p_sys
->
p_adj
->
value
=
p_intf
->
p_sys
->
i_adj_oldvalue
=
(
100
*
p_area
->
i_tell
)
/
p_area
->
i_size
;
gtk_signal_emit_by_name
(
GTK_OBJECT
(
p_intf
->
p_sys
->
p_adj
),
"value_changed"
);
}
/* Otherwise, send message to the input if the user has
* finished dragging the slider */
else
if
(
p_intf
->
p_sys
->
b_slider_free
)
{
off_t
i_seek
=
(
newvalue
*
p_area
->
i_size
)
/
100
;
/* release the lock to be able to seek */
vlc_mutex_unlock
(
&
p_input
->
stream
.
stream_lock
);
input_Seek
(
p_input
,
i_seek
,
INPUT_SEEK_SET
);
vlc_mutex_lock
(
&
p_input
->
stream
.
stream_lock
);
/* Update the old value */
p_intf
->
p_sys
->
i_adj_oldvalue
=
newvalue
;
}
#undef p_area
}
}
}
vlc_mutex_unlock
(
&
p_input
->
stream
.
stream_lock
);
}
else
if
(
p_intf
->
p_sys
->
b_playing
&&
!
p_intf
->
b_die
)
{
E_
(
GtkModeManage
)(
p_intf
);
p_intf
->
p_sys
->
b_playing
=
0
;
}
#ifndef NEED_GTK_MAIN
if
(
p_intf
->
b_die
)
{
vlc_mutex_unlock
(
&
p_intf
->
change_lock
);
/* Prepare to die, young Skywalker */
gtk_main_quit
();
return
FALSE
;
}
#endif
vlc_mutex_unlock
(
&
p_intf
->
change_lock
);
return
TRUE
;
}
/*****************************************************************************
* GtkDisplayDate: display stream date
*****************************************************************************
* This function displays the current date related to the position in
* the stream. It is called whenever the slider changes its value.
* The lock has to be taken before you call the function.
*****************************************************************************/
void
E_
(
GtkDisplayDate
)(
GtkAdjustment
*
p_adj
)
{
intf_thread_t
*
p_intf
;
p_intf
=
gtk_object_get_data
(
GTK_OBJECT
(
p_adj
),
"p_intf"
);
if
(
p_intf
->
p_sys
->
p_input
)
{
#define p_area p_intf->p_sys->p_input->stream.p_selected_area
char
psz_time
[
OFFSETTOTIME_MAX_SIZE
];
gtk_label_set_text
(
GTK_LABEL
(
p_intf
->
p_sys
->
p_slider_label
),
input_OffsetToTime
(
p_intf
->
p_sys
->
p_input
,
psz_time
,
(
p_area
->
i_size
*
p_adj
->
value
)
/
100
)
);
#undef p_area
}
}
/*****************************************************************************
* GtkModeManage: actualize the aspect of the interface whenever the input
* changes.
*****************************************************************************
* The lock has to be taken before you call the function.
*****************************************************************************/
gint
E_
(
GtkModeManage
)(
intf_thread_t
*
p_intf
)
{
GtkWidget
*
p_slider
;
vlc_bool_t
b_control
;
#define GETWIDGET( ptr, name ) GTK_WIDGET( gtk_object_get_data( GTK_OBJECT( \
p_intf->p_sys->ptr ) , ( name ) ) )
/* hide slider */
p_slider
=
GTK_WIDGET
(
gtk_object_get_data
(
GTK_OBJECT
(
p_intf
->
p_sys
->
p_window
),
"slider"
)
);
gtk_widget_hide
(
GTK_WIDGET
(
p_slider
)
);
/* controls unavailable */
b_control
=
0
;
/* show the box related to current input mode */
if
(
p_intf
->
p_sys
->
p_input
)
{
/* initialize and show slider for seekable streams */
if
(
p_intf
->
p_sys
->
p_input
->
stream
.
b_seekable
)
{
if
(
p_intf
->
p_libvlc
->
i_cpu
&
CPU_CAPABILITY_FPU
)
p_intf
->
p_sys
->
p_adj
->
value
=
p_intf
->
p_sys
->
f_adj_oldvalue
=
0
;
else
p_intf
->
p_sys
->
p_adj
->
value
=
p_intf
->
p_sys
->
i_adj_oldvalue
=
0
;
gtk_signal_emit_by_name
(
GTK_OBJECT
(
p_intf
->
p_sys
->
p_adj
),
"value_changed"
);
gtk_widget_show
(
GTK_WIDGET
(
p_slider
)
);
}
/* control buttons for free pace streams */
b_control
=
p_intf
->
p_sys
->
p_input
->
stream
.
b_pace_control
;
p_intf
->
p_sys
->
p_input
->
stream
.
b_changed
=
0
;
msg_Dbg
(
p_intf
,
"stream has changed, refreshing interface"
);
}
/* set control items */
gtk_widget_set_sensitive
(
GETWIDGET
(
p_window
,
"toolbar_rewind"
),
b_control
);
gtk_widget_set_sensitive
(
GETWIDGET
(
p_window
,
"toolbar_pause"
),
b_control
);
gtk_widget_set_sensitive
(
GETWIDGET
(
p_window
,
"toolbar_forward"
),
b_control
);
#undef GETWIDGET
return
TRUE
;
}
modules/gui/familiar/familiar.glade
deleted
100644 → 0
View file @
2c4e15bb
<?xml version="1.0"?>
<GTK-Interface>
<project>
<name>
Familiar
</name>
<program_name>
familiar
</program_name>
<directory></directory>
<source_directory></source_directory>
<pixmaps_directory>
../../../share
</pixmaps_directory>
<language>
C
</language>
<gnome_support>
False
</gnome_support>
<gettext_support>
True
</gettext_support>
<use_widget_names>
True
</use_widget_names>
<output_main_file>
False
</output_main_file>
<output_build_files>
False
</output_build_files>
</project>
<widget>
<class>
GtkWindow
</class>
<name>
familiar
</name>
<signal>
<name>
delete_event
</name>
<handler>
on_familiar_delete_event
</handler>
<last_modification_time>
Wed, 21 Aug 2002 19:12:40 GMT
</last_modification_time>
</signal>
<title>
VLC media player
</title>
<type>
GTK_WINDOW_TOPLEVEL
</type>
<position>
GTK_WIN_POS_NONE
</position>
<modal>
False
</modal>
<allow_shrink>
True
</allow_shrink>
<allow_grow>
True
</allow_grow>
<auto_shrink>
True
</auto_shrink>
<widget>
<class>
GtkVBox
</class>
<name>
vbox
</name>
<homogeneous>
False
</homogeneous>
<spacing>
0
</spacing>
<widget>
<class>
GtkToolbar
</class>
<name>
toolbar
</name>
<width>
240
</width>
<height>
12
</height>
<orientation>
GTK_ORIENTATION_HORIZONTAL
</orientation>
<type>
GTK_TOOLBAR_ICONS
</type>
<space_size>
5
</space_size>
<space_style>
GTK_TOOLBAR_SPACE_EMPTY
</space_style>
<relief>
GTK_RELIEF_NORMAL
</relief>
<tooltips>
True
</tooltips>
<child>
<padding>
5
</padding>
<expand>
False
</expand>
<fill>
False
</fill>
</child>
<widget>
<class>
GtkButton
</class>
<child_name>
Toolbar:button
</child_name>
<name>
toolbar_open
</name>
<tooltip>
Open file
</tooltip>
<signal>
<name>
clicked
</name>
<handler>
on_toolbar_open_clicked
</handler>
<last_modification_time>
Wed, 24 Jul 2002 18:28:31 GMT
</last_modification_time>
</signal>
<label></label>
<icon>
familiar-openb16x16.xpm
</icon>
</widget>
<widget>
<class>
GtkButton
</class>
<child_name>
Toolbar:button
</child_name>
<name>
toolbar_playlist
</name>
<signal>
<name>
clicked
</name>
<handler>
on_toolbar_playlist_clicked
</handler>
<last_modification_time>
Wed, 05 Mar 2003 22:04:46 GMT
</last_modification_time>
</signal>
<label></label>
<icon>
familiar-playlistb16x16.xpm
</icon>
</widget>
<widget>
<class>
GtkButton
</class>
<child_name>
Toolbar:button
</child_name>
<name>
toolbar_preferences
</name>
<tooltip>
Preferences
</tooltip>
<signal>
<name>
clicked
</name>
<handler>
on_toolbar_preferences_clicked
</handler>
<last_modification_time>
Wed, 24 Jul 2002 18:29:05 GMT
</last_modification_time>
</signal>
<label>
Preferences
</label>
<icon>
familiar-preferencesb16x16.xpm
</icon>
</widget>
<widget>
<class>
GtkButton
</class>
<child_name>
Toolbar:button
</child_name>
<name>
toolbar_rewind
</name>
<tooltip>
Rewind stream
</tooltip>
<signal>
<name>
clicked
</name>
<handler>
on_toolbar_rewind_clicked
</handler>
<last_modification_time>
Wed, 24 Jul 2002 18:28:45 GMT
</last_modification_time>
</signal>
<label>
Rewind
</label>
<icon>
familiar-rewindb16x16.xpm
</icon>
<child>
<new_group>
True
</new_group>
</child>
</widget>
<widget>
<class>
GtkButton
</class>
<child_name>
Toolbar:button
</child_name>
<name>
toolbar_pause
</name>
<tooltip>
Pause stream
</tooltip>
<signal>
<name>
clicked
</name>
<handler>
on_toolbar_pause_clicked
</handler>
<last_modification_time>
Wed, 24 Jul 2002 18:28:58 GMT
</last_modification_time>
</signal>
<label>
Pause
</label>
<icon>
familiar-pauseb16x16.xpm
</icon>
</widget>
<widget>
<class>
GtkButton
</class>
<child_name>
Toolbar:button
</child_name>
<name>
toolbar_play
</name>
<tooltip>
Play stream
</tooltip>
<signal>
<name>
clicked
</name>
<handler>
on_toolbar_play_clicked
</handler>
<last_modification_time>
Wed, 24 Jul 2002 18:29:12 GMT
</last_modification_time>
</signal>
<label>
Play
</label>
<icon>
familiar-playb16x16.xpm
</icon>
</widget>
<widget>
<class>
GtkButton
</class>
<child_name>
Toolbar:button
</child_name>
<name>
toolbar_stop
</name>
<tooltip>
Stop stream
</tooltip>
<signal>
<name>
clicked
</name>
<handler>
on_toolbar_stop_clicked
</handler>
<last_modification_time>
Wed, 24 Jul 2002 18:29:18 GMT
</last_modification_time>
</signal>
<label>
Stop
</label>
<icon>
familiar-stopb16x16.xpm
</icon>
</widget>
<widget>
<class>
GtkButton
</class>
<child_name>
Toolbar:button
</child_name>
<name>
toolbar_forward
</name>
<tooltip>
Forward stream
</tooltip>
<signal>
<name>
clicked
</name>
<handler>
on_toolbar_forward_clicked
</handler>
<last_modification_time>
Wed, 24 Jul 2002 18:29:25 GMT
</last_modification_time>
</signal>
<label>
Forward
</label>
<icon>
familiar-forwardb16x16.xpm
</icon>
</widget>
<widget>
<class>
GtkButton
</class>
<child_name>
Toolbar:button
</child_name>
<name>
toolbar_about
</name>
<tooltip>
About
</tooltip>
<signal>
<name>
clicked
</name>
<handler>
on_toolbar_about_clicked
</handler>
<last_modification_time>
Wed, 24 Jul 2002 18:29:31 GMT
</last_modification_time>
</signal>
<label>
About
</label>
<icon>
vlc16x16.xpm
</icon>
<child>
<new_group>
True
</new_group>
</child>
</widget>
<widget>
<class>
GtkLabel
</class>
<name>
slider_label
</name>
<label>
0:00:00
</label>
<justify>
GTK_JUSTIFY_CENTER
</justify>
<wrap>
False
</wrap>
<xalign>
0.5
</xalign>
<yalign>
0.5
</yalign>
<xpad>
0
</xpad>
<ypad>
0
</ypad>
<child>
<new_group>
True
</new_group>
</child>
</widget>
</widget>
<widget>
<class>
GtkHScale
</class>
<name>
slider
</name>
<can_focus>
True
</can_focus>
<signal>
<name>
button_release_event
</name>
<handler>
FamiliarSliderRelease
</handler>
<last_modification_time>
Fri, 03 Jan 2003 12:33:38 GMT
</last_modification_time>
</signal>
<signal>
<name>
button_press_event
</name>
<handler>
FamiliarSliderPress
</handler>
<last_modification_time>
Fri, 03 Jan 2003 12:33:54 GMT
</last_modification_time>
</signal>
<draw_value>
False
</draw_value>
<value_pos>
GTK_POS_RIGHT
</value_pos>
<digits>
3
</digits>
<policy>
GTK_UPDATE_CONTINUOUS
</policy>
<value>
0
</value>
<lower>
0
</lower>
<upper>
100
</upper>
<step>
1
</step>
<page>
6.25
</page>
<page_size>
0
</page_size>
<child>
<padding>
4
</padding>
<expand>
False
</expand>
<fill>
False
</fill>
</child>
</widget>
<widget>
<class>
GtkNotebook
</class>
<name>
notebook
</name>
<can_focus>
True
</can_focus>
<show_tabs>
True
</show_tabs>
<show_border>
True
</show_border>
<tab_pos>
GTK_POS_TOP
</tab_pos>
<scrollable>
False
</scrollable>
<tab_hborder>
2
</tab_hborder>
<tab_vborder>
2
</tab_vborder>
<popup_enable>
False
</popup_enable>
<child>
<padding>
0
</padding>
<expand>
True
</expand>
<fill>
True
</fill>
<pack>
GTK_PACK_END
</pack>
</child>
<widget>
<class>
GtkVBox
</class>
<name>
vbox1
</name>
<homogeneous>
False
</homogeneous>
<spacing>
0
</spacing>
<widget>
<class>
GtkHBox
</class>
<name>
hbox1
</name>
<homogeneous>
False
</homogeneous>
<spacing>
0
</spacing>
<child>
<padding>
0
</padding>
<expand>
False
</expand>
<fill>
True
</fill>
</child>
<widget>
<class>
GtkButton
</class>
<name>
buttonMrlGo
</name>
<can_focus>
True
</can_focus>
<signal>
<name>
clicked
</name>
<handler>
FamiliarMrlGo
</handler>
<last_modification_time>
Wed, 05 Mar 2003 21:47:31 GMT
</last_modification_time>
</signal>
<label>
Add
</label>
<relief>
GTK_RELIEF_NORMAL
</relief>
<child>
<padding>
0
</padding>
<expand>
False
</expand>
<fill>
False
</fill>
</child>
</widget>
<widget>
<class>
GtkLabel
</class>
<name>
labelUrl
</name>
<label>
MRL :
</label>
<justify>
GTK_JUSTIFY_CENTER
</justify>
<wrap>
False
</wrap>
<xalign>
0.5
</xalign>
<yalign>
0.5
</yalign>
<xpad>
0
</xpad>
<ypad>
0
</ypad>
<child>
<padding>
2
</padding>
<expand>
False
</expand>
<fill>
False
</fill>
</child>
</widget>
<widget>
<class>
GtkCombo
</class>
<name>
mrl_combo
</name>
<value_in_list>
False
</value_in_list>
<ok_if_empty>
True
</ok_if_empty>
<case_sensitive>
False
</case_sensitive>
<use_arrows>
True
</use_arrows>
<use_arrows_always>
False
</use_arrows_always>
<items>
file://
ftp://
http://
udp://@:1234
udp6://@:1234
rtp://
rtp6://
</items>
<child>
<padding>
3
</padding>
<expand>
True
</expand>
<fill>
True
</fill>
</child>
<widget>
<class>
GtkEntry
</class>
<child_name>
GtkCombo:entry
</child_name>
<name>
mrl_entry
</name>
<can_focus>
True
</can_focus>
<signal>
<name>
changed
</name>
<handler>
on_comboURL-entry_changed
</handler>
<last_modification_time>
Sun, 09 Feb 2003 13:32:46 GMT
</last_modification_time>
</signal>
<editable>
True
</editable>
<text_visible>
True
</text_visible>
<text_max_length>
0
</text_max_length>
<text>
file://
</text>
</widget>
</widget>
</widget>
<widget>
<class>
GtkNotebook
</class>
<name>
mediabook
</name>
<can_focus>
True
</can_focus>
<show_tabs>
True
</show_tabs>
<show_border>
True
</show_border>
<tab_pos>
GTK_POS_TOP
</tab_pos>
<scrollable>
False
</scrollable>
<tab_hborder>
2
</tab_hborder>
<tab_vborder>
2
</tab_vborder>
<popup_enable>
False
</popup_enable>
<child>
<padding>
0
</padding>
<expand>
True
</expand>
<fill>
True
</fill>
</child>
<widget>
<class>
GtkScrolledWindow
</class>
<name>
scrolledwindow4
</name>
<hscrollbar_policy>
GTK_POLICY_AUTOMATIC
</hscrollbar_policy>
<vscrollbar_policy>
GTK_POLICY_AUTOMATIC
</vscrollbar_policy>
<hupdate_policy>
GTK_UPDATE_CONTINUOUS
</hupdate_policy>
<vupdate_policy>
GTK_UPDATE_CONTINUOUS
</vupdate_policy>
<widget>
<class>
GtkViewport
</class>
<name>
viewport2
</name>
<shadow_type>
GTK_SHADOW_IN
</shadow_type>
<widget>
<class>
GtkCList
</class>
<name>
clistmedia
</name>
<can_focus>
True
</can_focus>
<signal>
<name>
select_row
</name>
<handler>
on_clistmedia_select_row
</handler>
<last_modification_time>
Sun, 09 Feb 2003 13:33:18 GMT
</last_modification_time>
</signal>
<signal>
<name>
click_column
</name>
<handler>
on_clistmedia_click_column
</handler>
<last_modification_time>
Sun, 09 Feb 2003 13:33:22 GMT
</last_modification_time>
</signal>
<columns>
2
</columns>
<column_widths>
129,80
</column_widths>
<selection_mode>
GTK_SELECTION_SINGLE
</selection_mode>
<show_titles>
True
</show_titles>
<shadow_type>
GTK_SHADOW_IN
</shadow_type>
<widget>
<class>
GtkLabel
</class>
<child_name>
CList:title
</child_name>
<name>
labelname
</name>
<label>
Name
</label>
<justify>
GTK_JUSTIFY_CENTER
</justify>
<wrap>
False
</wrap>
<xalign>
0.5
</xalign>
<yalign>
0.5
</yalign>
<xpad>
0
</xpad>
<ypad>
0
</ypad>
</widget>
<widget>
<class>
GtkLabel
</class>
<child_name>
CList:title
</child_name>
<name>
labeltype
</name>
<label>
Type
</label>
<justify>
GTK_JUSTIFY_CENTER
</justify>
<wrap>
False
</wrap>
<xalign>
0.5
</xalign>
<yalign>
0.5
</yalign>
<xpad>
0
</xpad>
<ypad>
0
</ypad>
</widget>
</widget>
</widget>
</widget>
<widget>
<class>
GtkLabel
</class>
<child_name>
Notebook:tab
</child_name>
<name>
label13
</name>
<label>
File
</label>
<justify>
GTK_JUSTIFY_CENTER
</justify>
<wrap>
False
</wrap>
<xalign>
0.5
</xalign>
<yalign>
0.5
</yalign>
<xpad>
0
</xpad>
<ypad>
0
</ypad>
</widget>
<widget>
<class>
GtkVBox
</class>
<name>
vbox3
</name>
<homogeneous>
False
</homogeneous>
<spacing>
2
</spacing>
<widget>
<class>
GtkRadioButton
</class>
<name>
network_multicast
</name>
<can_focus>
True
</can_focus>
<signal>
<name>
toggled
</name>
<handler>
on_network_multicast_toggled
</handler>
<last_modification_time>
Sat, 01 Mar 2003 21:44:26 GMT
</last_modification_time>
</signal>
<label>
UDP/RTP (Adress when Multicast)
</label>
<active>
False
</active>
<draw_indicator>
True
</draw_indicator>
<group>
network
</group>
<child>
<padding>
0
</padding>
<expand>
False
</expand>
<fill>
False
</fill>
</child>
</widget>
<widget>
<class>
GtkTable
</class>
<name>
table1
</name>
<rows>
2
</rows>
<columns>
2
</columns>
<homogeneous>
False
</homogeneous>
<row_spacing>
0
</row_spacing>
<column_spacing>
5
</column_spacing>
<child>
<padding>
0
</padding>
<expand>
False
</expand>
<fill>
True
</fill>
</child>
<widget>
<class>
GtkLabel
</class>
<name>
label21
</name>
<label>
Address
</label>
<justify>
GTK_JUSTIFY_CENTER
</justify>
<wrap>
False
</wrap>
<xalign>
0
</xalign>
<yalign>
0.5
</yalign>
<xpad>
0
</xpad>
<ypad>
0
</ypad>
<child>
<left_attach>
0
</left_attach>
<right_attach>
1
</right_attach>
<top_attach>
0
</top_attach>
<bottom_attach>
1
</bottom_attach>
<xpad>
0
</xpad>
<ypad>
0
</ypad>
<xexpand>
False
</xexpand>
<yexpand>
False
</yexpand>
<xshrink>
False
</xshrink>
<yshrink>
False
</yshrink>
<xfill>
True
</xfill>
<yfill>
False
</yfill>
</child>
</widget>
<widget>
<class>
GtkLabel
</class>
<name>
label22
</name>
<label>
Port
</label>
<justify>
GTK_JUSTIFY_CENTER
</justify>
<wrap>
False
</wrap>
<xalign>
0
</xalign>
<yalign>
0.5
</yalign>
<xpad>
0
</xpad>
<ypad>
0
</ypad>
<child>
<left_attach>
0
</left_attach>
<right_attach>
1
</right_attach>
<top_attach>
1
</top_attach>
<bottom_attach>
2
</bottom_attach>
<xpad>
0
</xpad>
<ypad>
0
</ypad>
<xexpand>
False
</xexpand>
<yexpand>
False
</yexpand>
<xshrink>
False
</xshrink>
<yshrink>
False
</yshrink>
<xfill>
True
</xfill>
<yfill>
False
</yfill>
</child>
</widget>
<widget>
<class>
GtkSpinButton
</class>
<name>
network_multicast_port
</name>
<can_focus>
True
</can_focus>
<signal>
<name>
changed
</name>
<handler>
on_network_multicast_port_changed
</handler>
<last_modification_time>
Sat, 01 Mar 2003 21:45:26 GMT
</last_modification_time>
</signal>
<climb_rate>
1
</climb_rate>
<digits>
0
</digits>
<numeric>
False
</numeric>
<update_policy>
GTK_UPDATE_ALWAYS
</update_policy>
<snap>
False
</snap>
<wrap>
False
</wrap>
<value>
1234
</value>
<lower>
1
</lower>
<upper>
65536
</upper>
<step>
1
</step>
<page>
10
</page>
<page_size>
10
</page_size>
<child>
<left_attach>
1
</left_attach>
<right_attach>
2
</right_attach>
<top_attach>
1
</top_attach>
<bottom_attach>
2
</bottom_attach>
<xpad>
0
</xpad>
<ypad>
0
</ypad>
<xexpand>
True
</xexpand>
<yexpand>
False
</yexpand>
<xshrink>
False
</xshrink>
<yshrink>
False
</yshrink>
<xfill>
True
</xfill>
<yfill>
False
</yfill>
</child>
</widget>
<widget>
<class>
GtkCombo
</class>
<name>
combo2
</name>
<value_in_list>
False
</value_in_list>
<ok_if_empty>
True
</ok_if_empty>
<case_sensitive>
False
</case_sensitive>
<use_arrows>
True
</use_arrows>
<use_arrows_always>
False
</use_arrows_always>
<items></items>
<child>
<left_attach>
1
</left_attach>
<right_attach>
2
</right_attach>
<top_attach>
0
</top_attach>
<bottom_attach>
1
</bottom_attach>
<xpad>
0
</xpad>
<ypad>
0
</ypad>
<xexpand>
True
</xexpand>
<yexpand>
False
</yexpand>
<xshrink>
False
</xshrink>
<yshrink>
False
</yshrink>
<xfill>
True
</xfill>
<yfill>
False
</yfill>
</child>
<widget>
<class>
GtkEntry
</class>
<child_name>
GtkCombo:entry
</child_name>
<name>
network_multicast_address
</name>
<can_focus>
True
</can_focus>
<signal>
<name>
changed
</name>
<handler>
on_network_multicast_address_changed
</handler>
<last_modification_time>
Sat, 01 Mar 2003 21:45:32 GMT
</last_modification_time>
</signal>
<editable>
True
</editable>
<text_visible>
True
</text_visible>
<text_max_length>
0
</text_max_length>
<text></text>
</widget>
</widget>
</widget>
<widget>
<class>
GtkHSeparator
</class>
<name>
hseparator10
</name>
<child>
<padding>
0
</padding>
<expand>
False
</expand>
<fill>
True
</fill>
</child>
</widget>
<widget>
<class>
GtkHBox
</class>
<name>
hbox9
</name>
<homogeneous>
True
</homogeneous>
<spacing>
0
</spacing>
<child>
<padding>
0
</padding>
<expand>
False
</expand>
<fill>
True
</fill>
</child>
<widget>
<class>
GtkRadioButton
</class>
<name>
network_http
</name>
<sensitive>
False
</sensitive>
<can_focus>
True
</can_focus>
<signal>
<name>
toggled
</name>
<handler>
on_network_http_toggled
</handler>
<last_modification_time>
Sat, 01 Mar 2003 21:45:55 GMT
</last_modification_time>
</signal>
<label>
HTTP
</label>
<active>
False
</active>
<draw_indicator>
True
</draw_indicator>
<group>
network
</group>
<child>
<padding>
0
</padding>
<expand>
False
</expand>
<fill>
True
</fill>
</child>
</widget>
<widget>
<class>
GtkRadioButton
</class>
<name>
network_ftp
</name>
<sensitive>
False
</sensitive>
<can_focus>
True
</can_focus>
<signal>
<name>
toggled
</name>
<handler>
on_network_ftp_toggled
</handler>
<last_modification_time>
Sat, 01 Mar 2003 21:46:07 GMT
</last_modification_time>
</signal>
<label>
FTP
</label>
<active>
False
</active>
<draw_indicator>
True
</draw_indicator>
<group>
network
</group>
<child>
<padding>
0
</padding>
<expand>
False
</expand>
<fill>
True
</fill>
</child>
</widget>
<widget>
<class>
GtkRadioButton
</class>
<name>
network_mms
</name>
<sensitive>
False
</sensitive>
<can_focus>
True
</can_focus>
<signal>
<name>
toggled
</name>
<handler>
on_network_mms_toggled
</handler>
<last_modification_time>
Sat, 01 Mar 2003 21:46:17 GMT
</last_modification_time>
</signal>
<label>
MMS
</label>
<active>
False
</active>
<draw_indicator>
True
</draw_indicator>
<group>
network
</group>
<child>
<padding>
0
</padding>
<expand>
False
</expand>
<fill>
True
</fill>
</child>
</widget>
</widget>
<widget>
<class>
GtkHSeparator
</class>
<name>
hseparator11
</name>
<child>
<padding>
0
</padding>
<expand>
True
</expand>
<fill>
True
</fill>
</child>
</widget>
<widget>
<class>
Placeholder
</class>
</widget>
<widget>
<class>
Placeholder
</class>
</widget>
</widget>
<widget>
<class>
GtkLabel
</class>
<child_name>
Notebook:tab
</child_name>
<name>
label20
</name>
<label>
Network
</label>
<justify>
GTK_JUSTIFY_CENTER
</justify>
<wrap>
False
</wrap>
<xalign>
0.5
</xalign>
<yalign>
0.5
</yalign>
<xpad>
0
</xpad>
<ypad>
0
</ypad>
</widget>
</widget>
</widget>
<widget>
<class>
GtkLabel
</class>
<child_name>
Notebook:tab
</child_name>
<name>
media2
</name>
<label>
Media
</label>
<justify>
GTK_JUSTIFY_CENTER
</justify>
<wrap>
False
</wrap>
<xalign>
0.5
</xalign>
<yalign>
0.5
</yalign>
<xpad>
0
</xpad>
<ypad>
0
</ypad>
</widget>
<widget>
<class>
GtkVBox
</class>
<name>
vbox4
</name>
<homogeneous>
False
</homogeneous>
<spacing>
0
</spacing>
<widget>
<class>
GtkScrolledWindow
</class>
<name>
scrolledwindow5
</name>
<hscrollbar_policy>
GTK_POLICY_AUTOMATIC
</hscrollbar_policy>
<vscrollbar_policy>
GTK_POLICY_AUTOMATIC
</vscrollbar_policy>
<hupdate_policy>
GTK_UPDATE_CONTINUOUS
</hupdate_policy>
<vupdate_policy>
GTK_UPDATE_CONTINUOUS
</vupdate_policy>
<child>
<padding>
0
</padding>
<expand>
True
</expand>
<fill>
True
</fill>
</child>
<widget>
<class>
GtkCList
</class>
<name>
clistplaylist
</name>
<can_focus>
True
</can_focus>
<signal>
<name>
event
</name>
<handler>
FamiliarPlaylistEvent
</handler>
<last_modification_time>
Tue, 04 Mar 2003 21:47:16 GMT
</last_modification_time>
</signal>
<columns>
2
</columns>
<column_widths>
140,80
</column_widths>
<selection_mode>
GTK_SELECTION_SINGLE
</selection_mode>
<show_titles>
True
</show_titles>
<shadow_type>
GTK_SHADOW_IN
</shadow_type>
<widget>
<class>
GtkLabel
</class>
<child_name>
CList:title
</child_name>
<name>
label25
</name>
<label>
MRL
</label>
<justify>
GTK_JUSTIFY_LEFT
</justify>
<wrap>
False
</wrap>
<xalign>
0.5
</xalign>
<yalign>
0.5
</yalign>
<xpad>
0
</xpad>
<ypad>
0
</ypad>
</widget>
<widget>
<class>
GtkLabel
</class>
<child_name>
CList:title
</child_name>
<name>
label26
</name>
<label>
Time
</label>
<justify>
GTK_JUSTIFY_RIGHT
</justify>
<wrap>
False
</wrap>
<xalign>
0.5
</xalign>
<yalign>
0.5
</yalign>
<xpad>
0
</xpad>
<ypad>
0
</ypad>
</widget>
</widget>
</widget>
<widget>
<class>
GtkHBox
</class>
<name>
hbox11
</name>
<homogeneous>
True
</homogeneous>
<spacing>
0
</spacing>
<child>
<padding>
2
</padding>
<expand>
False
</expand>
<fill>
False
</fill>
</child>
<widget>
<class>
GtkButton
</class>
<name>
update_playlist
</name>
<can_focus>
True
</can_focus>
<signal>
<name>
clicked
</name>
<handler>
FamiliarPlaylistUpdate
</handler>
<last_modification_time>
Wed, 05 Mar 2003 16:52:19 GMT
</last_modification_time>
</signal>
<label>
Update
</label>
<relief>
GTK_RELIEF_NORMAL
</relief>
<child>
<padding>
0
</padding>
<expand>
False
</expand>
<fill>
False
</fill>
</child>
</widget>
<widget>
<class>
GtkButton
</class>
<name>
playlist_del
</name>
<can_focus>
True
</can_focus>
<signal>
<name>
clicked
</name>
<handler>
FamiliarPlaylistDel
</handler>
<last_modification_time>
Wed, 05 Mar 2003 16:44:52 GMT
</last_modification_time>
</signal>
<label>
Del
</label>
<relief>
GTK_RELIEF_NORMAL
</relief>
<child>
<padding>
5
</padding>
<expand>
False
</expand>
<fill>
False
</fill>
</child>
</widget>
<widget>
<class>
GtkButton
</class>
<name>
playlist_clear
</name>
<can_focus>
True
</can_focus>
<signal>
<name>
clicked
</name>
<handler>
FamiliarPlaylistClear
</handler>
<last_modification_time>
Wed, 05 Mar 2003 16:26:29 GMT
</last_modification_time>
</signal>
<label>
Clear
</label>
<relief>
GTK_RELIEF_NORMAL
</relief>
<child>
<padding>
5
</padding>
<expand>
False
</expand>
<fill>
False
</fill>
</child>
</widget>
</widget>
</widget>
<widget>
<class>
GtkLabel
</class>
<child_name>
Notebook:tab
</child_name>
<name>
playlist
</name>
<label>
Playlist
</label>
<justify>
GTK_JUSTIFY_CENTER
</justify>
<wrap>
False
</wrap>
<xalign>
0.5
</xalign>
<yalign>
0.5
</yalign>
<xpad>
0
</xpad>
<ypad>
0
</ypad>
</widget>
<widget>
<class>
GtkVBox
</class>
<name>
vbox2
</name>
<homogeneous>
False
</homogeneous>
<spacing>
0
</spacing>
<widget>
<class>
GtkCheckButton
</class>
<name>
cbautoplay
</name>
<can_focus>
True
</can_focus>
<signal>
<name>
toggled
</name>
<handler>
on_cbautoplay_toggled
</handler>
<last_modification_time>
Sun, 09 Feb 2003 22:37:17 GMT
</last_modification_time>
</signal>
<label>
Automatically play file
</label>
<active>
True
</active>
<draw_indicator>
True
</draw_indicator>
<child>
<padding>
0
</padding>
<expand>
False
</expand>
<fill>
False
</fill>
</child>
</widget>
<widget>
<class>
Placeholder
</class>
</widget>
<widget>
<class>
GtkHBox
</class>
<name>
hbox2
</name>
<homogeneous>
True
</homogeneous>
<spacing>
0
</spacing>
<child>
<padding>
2
</padding>
<expand>
False
</expand>
<fill>
False
</fill>
<pack>
GTK_PACK_END
</pack>
</child>
<widget>
<class>
GtkButton
</class>
<name>
buttonSave
</name>
<can_focus>
True
</can_focus>
<label>
Save
</label>
<relief>
GTK_RELIEF_NORMAL
</relief>
<child>
<padding>
0
</padding>
<expand>
False
</expand>
<fill>
False
</fill>
</child>
</widget>
<widget>
<class>
GtkButton
</class>
<name>
buttonApply
</name>
<can_focus>
True
</can_focus>
<signal>
<name>
clicked
</name>
<handler>
FamiliarPreferencesApply
</handler>
<last_modification_time>
Thu, 13 Mar 2003 15:03:49 GMT
</last_modification_time>
</signal>
<label>
Apply
</label>
<relief>
GTK_RELIEF_NORMAL
</relief>
<child>
<padding>
0
</padding>
<expand>
False
</expand>
<fill>
False
</fill>
</child>
</widget>
<widget>
<class>
Placeholder
</class>
</widget>
<widget>
<class>
GtkButton
</class>
<name>
buttonCancel
</name>
<can_focus>
True
</can_focus>
<label>
Cancel
</label>
<relief>
GTK_RELIEF_NORMAL
</relief>
<child>
<padding>
0
</padding>
<expand>
False
</expand>
<fill>
False
</fill>
<pack>
GTK_PACK_END
</pack>
</child>
</widget>
</widget>
</widget>
<widget>
<class>
GtkLabel
</class>
<child_name>
Notebook:tab
</child_name>
<name>
preferences
</name>
<label>
Preference
</label>
<justify>
GTK_JUSTIFY_CENTER
</justify>
<wrap>
False
</wrap>
<xalign>
0.5
</xalign>
<yalign>
0.5
</yalign>
<xpad>
0
</xpad>
<ypad>
0
</ypad>
</widget>
<widget>
<class>
GtkScrolledWindow
</class>
<name>
scrolledwindow3
</name>
<hscrollbar_policy>
GTK_POLICY_AUTOMATIC
</hscrollbar_policy>
<vscrollbar_policy>
GTK_POLICY_AUTOMATIC
</vscrollbar_policy>
<hupdate_policy>
GTK_UPDATE_CONTINUOUS
</hupdate_policy>
<vupdate_policy>
GTK_UPDATE_CONTINUOUS
</vupdate_policy>
<widget>
<class>
GtkViewport
</class>
<name>
viewport1
</name>
<shadow_type>
GTK_SHADOW_NONE
</shadow_type>
<widget>
<class>
GtkFixed
</class>
<name>
fixed2
</name>
<widget>
<class>
GtkPixmap
</class>
<name>
pixmap2
</name>
<x>
8
</x>
<y>
0
</y>
<width>
50
</width>
<height>
50
</height>
<filename>
vlc32x32.xpm
</filename>
<xalign>
0.5
</xalign>
<yalign>
0.5
</yalign>
<xpad>
0
</xpad>
<ypad>
0
</ypad>
<build_insensitive>
True
</build_insensitive>
</widget>
<widget>
<class>
GtkLabel
</class>
<name>
label8
</name>
<x>
16
</x>
<y>
56
</y>
<width>
200
</width>
<height>
18
</height>
<label>
(c) 1996-2003 the VideoLAN team
</label>
<justify>
GTK_JUSTIFY_CENTER
</justify>
<wrap>
False
</wrap>
<xalign>
0.5
</xalign>
<yalign>
0.5
</yalign>
<xpad>
0
</xpad>
<ypad>
0
</ypad>
</widget>
<widget>
<class>
GtkLabel
</class>
<name>
label9
</name>
<x>
16
</x>
<y>
80
</y>
<width>
200
</width>
<height>
40
</height>
<label>
Authors: The VideoLAN Team, http://www.videolan.org
</label>
<justify>
GTK_JUSTIFY_CENTER
</justify>
<wrap>
True
</wrap>
<xalign>
0.5
</xalign>
<yalign>
0.5
</yalign>
<xpad>
0
</xpad>
<ypad>
0
</ypad>
</widget>
<widget>
<class>
GtkLabel
</class>
<name>
label11
</name>
<x>
64
</x>
<y>
8
</y>
<width>
120
</width>
<height>
40
</height>
<label>
VLC media player
</label>
<justify>
GTK_JUSTIFY_CENTER
</justify>
<wrap>
True
</wrap>
<xalign>
0.5
</xalign>
<yalign>
0.5
</yalign>
<xpad>
0
</xpad>
<ypad>
0
</ypad>
</widget>
<widget>
<class>
GtkLabel
</class>
<name>
label27
</name>
<x>
16
</x>
<y>
200
</y>
<width>
208
</width>
<height>
16
</height>
<label>
http://www.videolan.org
</label>
<justify>
GTK_JUSTIFY_CENTER
</justify>
<wrap>
False
</wrap>
<xalign>
0.5
</xalign>
<yalign>
0.5
</yalign>
<xpad>
0
</xpad>
<ypad>
0
</ypad>
</widget>
<widget>
<class>
GtkLabel
</class>
<name>
label10
</name>
<x>
16
</x>
<y>
128
</y>
<width>
200
</width>
<height>
70
</height>
<label>
The VideoLAN Client is a MPEG, MPEG 2, MP3, DivX player, that accepts input from local or network sources.
</label>
<justify>
GTK_JUSTIFY_LEFT
</justify>
<wrap>
True
</wrap>
<xalign>
0.5
</xalign>
<yalign>
0.5
</yalign>
<xpad>
0
</xpad>
<ypad>
0
</ypad>
</widget>
</widget>
</widget>
</widget>
<widget>
<class>
GtkLabel
</class>
<child_name>
Notebook:tab
</child_name>
<name>
about
</name>
<label>
About
</label>
<justify>
GTK_JUSTIFY_CENTER
</justify>
<wrap>
False
</wrap>
<xalign>
0.5
</xalign>
<yalign>
0.5
</yalign>
<xpad>
0
</xpad>
<ypad>
0
</ypad>
</widget>
</widget>
</widget>
</widget>
</GTK-Interface>
modules/gui/familiar/familiar.h
deleted
100644 → 0
View file @
2c4e15bb
/*****************************************************************************
* familiar.h: private Gtk+ interface description
*****************************************************************************
* Copyright (C) 1999, 2000 VideoLAN
* $Id: familiar.h,v 1.13 2003/03/13 15:50:17 marcari Exp $
*
* Authors: Jean-Paul Saman <jpsaman@wxs.nl>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111, USA.
*****************************************************************************/
#define MAX_ATEXIT 10
/*****************************************************************************
* intf_sys_t: description and status of Gtk+ interface
*****************************************************************************/
struct
intf_sys_t
{
/* The gtk_main module */
module_t
*
p_gtk_main
;
/* windows and widgets */
GtkWidget
*
p_window
;
/* main window */
GtkEntry
*
p_mrlentry
;
GtkNotebook
*
p_notebook
;
GtkNotebook
*
p_mediabook
;
GtkHScale
*
p_slider
;
GtkCList
*
p_clist
;
GtkCList
*
p_clistplaylist
;
/* slider */
GtkLabel
*
p_slider_label
;
GtkAdjustment
*
p_adj
;
/* slider adjustment object */
off_t
i_adj_oldvalue
;
/* previous value -no FPU hardware */
float
f_adj_oldvalue
;
/* previous value -with FPU hardware*/
/* special actions */
vlc_bool_t
b_playing
;
vlc_bool_t
b_window_changed
;
/* window display toggled ? */
vlc_bool_t
b_slider_free
;
/* slider status */
/* Preference settings */
vlc_bool_t
b_autoplayfile
;
/* The input thread */
input_thread_t
*
p_input
;
};
/*****************************************************************************
* Useful macro
****************************************************************************/
#define GTK_GET( type, nom ) GTK_##type( gtk_object_get_data( \
GTK_OBJECT( p_intf->p_sys->p_window ), nom ) )
#define GtkGetIntf( widget ) E_(__GtkGetIntf)( GTK_WIDGET( widget ) )
void
*
E_
(
__GtkGetIntf
)(
GtkWidget
*
);
modules/gui/familiar/interface.c
deleted
100644 → 0
View file @
2c4e15bb
/* This file was created automatically by glade and fixed by bootstrap */
#include <vlc/vlc.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <unistd.h>
#include <string.h>
#include <gdk/gdkkeysyms.h>
#include <gtk/gtk.h>
#include "callbacks.h"
#include "interface.h"
#include "support.h"
GtkWidget
*
create_familiar
(
void
)
{
GtkWidget
*
familiar
;
GtkWidget
*
vbox
;
GtkWidget
*
toolbar
;
GtkWidget
*
tmp_toolbar_icon
;
GtkWidget
*
toolbar_open
;
GtkWidget
*
toolbar_playlist
;
GtkWidget
*
toolbar_preferences
;
GtkWidget
*
toolbar_rewind
;
GtkWidget
*
toolbar_pause
;
GtkWidget
*
toolbar_play
;
GtkWidget
*
toolbar_stop
;
GtkWidget
*
toolbar_forward
;
GtkWidget
*
toolbar_about
;
GtkWidget
*
slider_label
;
GtkWidget
*
slider
;
GtkWidget
*
notebook
;
GtkWidget
*
vbox1
;
GtkWidget
*
hbox1
;
GtkWidget
*
buttonMrlGo
;
GtkWidget
*
labelUrl
;
GtkWidget
*
mrl_combo
;
GList
*
mrl_combo_items
=
NULL
;
GtkWidget
*
mrl_entry
;
GtkWidget
*
mediabook
;
GtkWidget
*
scrolledwindow4
;
GtkWidget
*
viewport2
;
GtkWidget
*
clistmedia
;
GtkWidget
*
labelname
;
GtkWidget
*
labeltype
;
GtkWidget
*
label13
;
GtkWidget
*
vbox3
;
GSList
*
network_group
=
NULL
;
GtkWidget
*
network_multicast
;
GtkWidget
*
table1
;
GtkWidget
*
label21
;
GtkWidget
*
label22
;
GtkObject
*
network_multicast_port_adj
;
GtkWidget
*
network_multicast_port
;
GtkWidget
*
combo2
;
GtkWidget
*
network_multicast_address
;
GtkWidget
*
hseparator10
;
GtkWidget
*
hbox9
;
GtkWidget
*
network_http
;
GtkWidget
*
network_ftp
;
GtkWidget
*
network_mms
;
GtkWidget
*
hseparator11
;
GtkWidget
*
label20
;
GtkWidget
*
media2
;
GtkWidget
*
vbox4
;
GtkWidget
*
scrolledwindow5
;
GtkWidget
*
clistplaylist
;
GtkWidget
*
label25
;
GtkWidget
*
label26
;
GtkWidget
*
hbox11
;
GtkWidget
*
update_playlist
;
GtkWidget
*
playlist_del
;
GtkWidget
*
playlist_clear
;
GtkWidget
*
playlist
;
GtkWidget
*
vbox2
;
GtkWidget
*
cbautoplay
;
GtkWidget
*
hbox2
;
GtkWidget
*
buttonSave
;
GtkWidget
*
buttonApply
;
GtkWidget
*
buttonCancel
;
GtkWidget
*
preferences
;
GtkWidget
*
scrolledwindow3
;
GtkWidget
*
viewport1
;
GtkWidget
*
fixed2
;
GtkWidget
*
pixmap2
;
GtkWidget
*
label8
;
GtkWidget
*
label9
;
GtkWidget
*
label11
;
GtkWidget
*
label27
;
GtkWidget
*
label10
;
GtkWidget
*
about
;
familiar
=
gtk_window_new
(
GTK_WINDOW_TOPLEVEL
);
gtk_widget_set_name
(
familiar
,
"familiar"
);
gtk_object_set_data
(
GTK_OBJECT
(
familiar
),
"familiar"
,
familiar
);
gtk_window_set_title
(
GTK_WINDOW
(
familiar
),
_
(
"VLC media player"
));
gtk_window_set_policy
(
GTK_WINDOW
(
familiar
),
TRUE
,
TRUE
,
TRUE
);
vbox
=
gtk_vbox_new
(
FALSE
,
0
);
gtk_widget_set_name
(
vbox
,
"vbox"
);
gtk_widget_ref
(
vbox
);
gtk_object_set_data_full
(
GTK_OBJECT
(
familiar
),
"vbox"
,
vbox
,
(
GtkDestroyNotify
)
gtk_widget_unref
);
gtk_widget_show
(
vbox
);
gtk_container_add
(
GTK_CONTAINER
(
familiar
),
vbox
);
toolbar
=
gtk_toolbar_new
(
GTK_ORIENTATION_HORIZONTAL
,
GTK_TOOLBAR_ICONS
);
gtk_widget_set_name
(
toolbar
,
"toolbar"
);
gtk_widget_ref
(
toolbar
);
gtk_object_set_data_full
(
GTK_OBJECT
(
familiar
),
"toolbar"
,
toolbar
,
(
GtkDestroyNotify
)
gtk_widget_unref
);
gtk_widget_show
(
toolbar
);
gtk_box_pack_start
(
GTK_BOX
(
vbox
),
toolbar
,
FALSE
,
FALSE
,
5
);
gtk_widget_set_usize
(
toolbar
,
240
,
12
);
tmp_toolbar_icon
=
create_pixmap
(
familiar
,
"familiar-openb16x16.xpm"
);
toolbar_open
=
gtk_toolbar_append_element
(
GTK_TOOLBAR
(
toolbar
),
GTK_TOOLBAR_CHILD_BUTTON
,
NULL
,
""
,
_
(
"Open file"
),
NULL
,
tmp_toolbar_icon
,
NULL
,
NULL
);
gtk_widget_set_name
(
toolbar_open
,
"toolbar_open"
);
gtk_widget_ref
(
toolbar_open
);
gtk_object_set_data_full
(
GTK_OBJECT
(
familiar
),
"toolbar_open"
,
toolbar_open
,
(
GtkDestroyNotify
)
gtk_widget_unref
);
gtk_widget_show
(
toolbar_open
);
tmp_toolbar_icon
=
create_pixmap
(
familiar
,
"familiar-playlistb16x16.xpm"
);
toolbar_playlist
=
gtk_toolbar_append_element
(
GTK_TOOLBAR
(
toolbar
),
GTK_TOOLBAR_CHILD_BUTTON
,
NULL
,
""
,
NULL
,
NULL
,
tmp_toolbar_icon
,
NULL
,
NULL
);
gtk_widget_set_name
(
toolbar_playlist
,
"toolbar_playlist"
);
gtk_widget_ref
(
toolbar_playlist
);
gtk_object_set_data_full
(
GTK_OBJECT
(
familiar
),
"toolbar_playlist"
,
toolbar_playlist
,
(
GtkDestroyNotify
)
gtk_widget_unref
);
gtk_widget_show
(
toolbar_playlist
);
tmp_toolbar_icon
=
create_pixmap
(
familiar
,
"familiar-preferencesb16x16.xpm"
);
toolbar_preferences
=
gtk_toolbar_append_element
(
GTK_TOOLBAR
(
toolbar
),
GTK_TOOLBAR_CHILD_BUTTON
,
NULL
,
_
(
"Preferences"
),
_
(
"Preferences"
),
NULL
,
tmp_toolbar_icon
,
NULL
,
NULL
);
gtk_widget_set_name
(
toolbar_preferences
,
"toolbar_preferences"
);
gtk_widget_ref
(
toolbar_preferences
);
gtk_object_set_data_full
(
GTK_OBJECT
(
familiar
),
"toolbar_preferences"
,
toolbar_preferences
,
(
GtkDestroyNotify
)
gtk_widget_unref
);
gtk_widget_show
(
toolbar_preferences
);
gtk_toolbar_append_space
(
GTK_TOOLBAR
(
toolbar
));
tmp_toolbar_icon
=
create_pixmap
(
familiar
,
"familiar-rewindb16x16.xpm"
);
toolbar_rewind
=
gtk_toolbar_append_element
(
GTK_TOOLBAR
(
toolbar
),
GTK_TOOLBAR_CHILD_BUTTON
,
NULL
,
_
(
"Rewind"
),
_
(
"Rewind stream"
),
NULL
,
tmp_toolbar_icon
,
NULL
,
NULL
);
gtk_widget_set_name
(
toolbar_rewind
,
"toolbar_rewind"
);
gtk_widget_ref
(
toolbar_rewind
);
gtk_object_set_data_full
(
GTK_OBJECT
(
familiar
),
"toolbar_rewind"
,
toolbar_rewind
,
(
GtkDestroyNotify
)
gtk_widget_unref
);
gtk_widget_show
(
toolbar_rewind
);
tmp_toolbar_icon
=
create_pixmap
(
familiar
,
"familiar-pauseb16x16.xpm"
);
toolbar_pause
=
gtk_toolbar_append_element
(
GTK_TOOLBAR
(
toolbar
),
GTK_TOOLBAR_CHILD_BUTTON
,
NULL
,
_
(
"Pause"
),
_
(
"Pause stream"
),
NULL
,
tmp_toolbar_icon
,
NULL
,
NULL
);
gtk_widget_set_name
(
toolbar_pause
,
"toolbar_pause"
);
gtk_widget_ref
(
toolbar_pause
);
gtk_object_set_data_full
(
GTK_OBJECT
(
familiar
),
"toolbar_pause"
,
toolbar_pause
,
(
GtkDestroyNotify
)
gtk_widget_unref
);
gtk_widget_show
(
toolbar_pause
);
tmp_toolbar_icon
=
create_pixmap
(
familiar
,
"familiar-playb16x16.xpm"
);
toolbar_play
=
gtk_toolbar_append_element
(
GTK_TOOLBAR
(
toolbar
),
GTK_TOOLBAR_CHILD_BUTTON
,
NULL
,
_
(
"Play"
),
_
(
"Play stream"
),
NULL
,
tmp_toolbar_icon
,
NULL
,
NULL
);
gtk_widget_set_name
(
toolbar_play
,
"toolbar_play"
);
gtk_widget_ref
(
toolbar_play
);
gtk_object_set_data_full
(
GTK_OBJECT
(
familiar
),
"toolbar_play"
,
toolbar_play
,
(
GtkDestroyNotify
)
gtk_widget_unref
);
gtk_widget_show
(
toolbar_play
);
tmp_toolbar_icon
=
create_pixmap
(
familiar
,
"familiar-stopb16x16.xpm"
);
toolbar_stop
=
gtk_toolbar_append_element
(
GTK_TOOLBAR
(
toolbar
),
GTK_TOOLBAR_CHILD_BUTTON
,
NULL
,
_
(
"Stop"
),
_
(
"Stop stream"
),
NULL
,
tmp_toolbar_icon
,
NULL
,
NULL
);
gtk_widget_set_name
(
toolbar_stop
,
"toolbar_stop"
);
gtk_widget_ref
(
toolbar_stop
);
gtk_object_set_data_full
(
GTK_OBJECT
(
familiar
),
"toolbar_stop"
,
toolbar_stop
,
(
GtkDestroyNotify
)
gtk_widget_unref
);
gtk_widget_show
(
toolbar_stop
);
tmp_toolbar_icon
=
create_pixmap
(
familiar
,
"familiar-forwardb16x16.xpm"
);
toolbar_forward
=
gtk_toolbar_append_element
(
GTK_TOOLBAR
(
toolbar
),
GTK_TOOLBAR_CHILD_BUTTON
,
NULL
,
_
(
"Forward"
),
_
(
"Forward stream"
),
NULL
,
tmp_toolbar_icon
,
NULL
,
NULL
);
gtk_widget_set_name
(
toolbar_forward
,
"toolbar_forward"
);
gtk_widget_ref
(
toolbar_forward
);
gtk_object_set_data_full
(
GTK_OBJECT
(
familiar
),
"toolbar_forward"
,
toolbar_forward
,
(
GtkDestroyNotify
)
gtk_widget_unref
);
gtk_widget_show
(
toolbar_forward
);
gtk_toolbar_append_space
(
GTK_TOOLBAR
(
toolbar
));
tmp_toolbar_icon
=
create_pixmap
(
familiar
,
"vlc16x16.xpm"
);
toolbar_about
=
gtk_toolbar_append_element
(
GTK_TOOLBAR
(
toolbar
),
GTK_TOOLBAR_CHILD_BUTTON
,
NULL
,
_
(
"About"
),
_
(
"About"
),
NULL
,
tmp_toolbar_icon
,
NULL
,
NULL
);
gtk_widget_set_name
(
toolbar_about
,
"toolbar_about"
);
gtk_widget_ref
(
toolbar_about
);
gtk_object_set_data_full
(
GTK_OBJECT
(
familiar
),
"toolbar_about"
,
toolbar_about
,
(
GtkDestroyNotify
)
gtk_widget_unref
);
gtk_widget_show
(
toolbar_about
);
slider_label
=
gtk_label_new
(
"0:00:00"
);
gtk_widget_set_name
(
slider_label
,
"slider_label"
);
gtk_widget_ref
(
slider_label
);
gtk_object_set_data_full
(
GTK_OBJECT
(
familiar
),
"slider_label"
,
slider_label
,
(
GtkDestroyNotify
)
gtk_widget_unref
);
gtk_widget_show
(
slider_label
);
gtk_toolbar_append_space
(
GTK_TOOLBAR
(
toolbar
));
gtk_toolbar_append_widget
(
GTK_TOOLBAR
(
toolbar
),
slider_label
,
NULL
,
NULL
);
slider
=
gtk_hscale_new
(
GTK_ADJUSTMENT
(
gtk_adjustment_new
(
0
,
0
,
100
,
1
,
6
.
25
,
0
)));
gtk_widget_set_name
(
slider
,
"slider"
);
gtk_widget_ref
(
slider
);
gtk_object_set_data_full
(
GTK_OBJECT
(
familiar
),
"slider"
,
slider
,
(
GtkDestroyNotify
)
gtk_widget_unref
);
gtk_widget_show
(
slider
);
gtk_box_pack_start
(
GTK_BOX
(
vbox
),
slider
,
FALSE
,
FALSE
,
4
);
gtk_scale_set_draw_value
(
GTK_SCALE
(
slider
),
FALSE
);
gtk_scale_set_value_pos
(
GTK_SCALE
(
slider
),
GTK_POS_RIGHT
);
gtk_scale_set_digits
(
GTK_SCALE
(
slider
),
3
);
notebook
=
gtk_notebook_new
();
gtk_widget_set_name
(
notebook
,
"notebook"
);
gtk_widget_ref
(
notebook
);
gtk_object_set_data_full
(
GTK_OBJECT
(
familiar
),
"notebook"
,
notebook
,
(
GtkDestroyNotify
)
gtk_widget_unref
);
gtk_widget_show
(
notebook
);
gtk_box_pack_end
(
GTK_BOX
(
vbox
),
notebook
,
TRUE
,
TRUE
,
0
);
vbox1
=
gtk_vbox_new
(
FALSE
,
0
);
gtk_widget_set_name
(
vbox1
,
"vbox1"
);
gtk_widget_ref
(
vbox1
);
gtk_object_set_data_full
(
GTK_OBJECT
(
familiar
),
"vbox1"
,
vbox1
,
(
GtkDestroyNotify
)
gtk_widget_unref
);
gtk_widget_show
(
vbox1
);
gtk_container_add
(
GTK_CONTAINER
(
notebook
),
vbox1
);
hbox1
=
gtk_hbox_new
(
FALSE
,
0
);
gtk_widget_set_name
(
hbox1
,
"hbox1"
);
gtk_widget_ref
(
hbox1
);
gtk_object_set_data_full
(
GTK_OBJECT
(
familiar
),
"hbox1"
,
hbox1
,
(
GtkDestroyNotify
)
gtk_widget_unref
);
gtk_widget_show
(
hbox1
);
gtk_box_pack_start
(
GTK_BOX
(
vbox1
),
hbox1
,
FALSE
,
TRUE
,
0
);
buttonMrlGo
=
gtk_button_new_with_label
(
_
(
"Add"
));
gtk_widget_set_name
(
buttonMrlGo
,
"buttonMrlGo"
);
gtk_widget_ref
(
buttonMrlGo
);
gtk_object_set_data_full
(
GTK_OBJECT
(
familiar
),
"buttonMrlGo"
,
buttonMrlGo
,
(
GtkDestroyNotify
)
gtk_widget_unref
);
gtk_widget_show
(
buttonMrlGo
);
gtk_box_pack_start
(
GTK_BOX
(
hbox1
),
buttonMrlGo
,
FALSE
,
FALSE
,
0
);
labelUrl
=
gtk_label_new
(
_
(
"MRL :"
));
gtk_widget_set_name
(
labelUrl
,
"labelUrl"
);
gtk_widget_ref
(
labelUrl
);
gtk_object_set_data_full
(
GTK_OBJECT
(
familiar
),
"labelUrl"
,
labelUrl
,
(
GtkDestroyNotify
)
gtk_widget_unref
);
gtk_widget_show
(
labelUrl
);
gtk_box_pack_start
(
GTK_BOX
(
hbox1
),
labelUrl
,
FALSE
,
FALSE
,
2
);
mrl_combo
=
gtk_combo_new
();
gtk_widget_set_name
(
mrl_combo
,
"mrl_combo"
);
gtk_widget_ref
(
mrl_combo
);
gtk_object_set_data_full
(
GTK_OBJECT
(
familiar
),
"mrl_combo"
,
mrl_combo
,
(
GtkDestroyNotify
)
gtk_widget_unref
);
gtk_widget_show
(
mrl_combo
);
gtk_box_pack_start
(
GTK_BOX
(
hbox1
),
mrl_combo
,
TRUE
,
TRUE
,
3
);
mrl_combo_items
=
g_list_append
(
mrl_combo_items
,
(
gpointer
)
"file://"
);
mrl_combo_items
=
g_list_append
(
mrl_combo_items
,
(
gpointer
)
"ftp://"
);
mrl_combo_items
=
g_list_append
(
mrl_combo_items
,
(
gpointer
)
"http://"
);
mrl_combo_items
=
g_list_append
(
mrl_combo_items
,
(
gpointer
)
"udp://@:1234"
);
mrl_combo_items
=
g_list_append
(
mrl_combo_items
,
(
gpointer
)
"udp6://@:1234"
);
mrl_combo_items
=
g_list_append
(
mrl_combo_items
,
(
gpointer
)
"rtp://"
);
mrl_combo_items
=
g_list_append
(
mrl_combo_items
,
(
gpointer
)
"rtp6://"
);
gtk_combo_set_popdown_strings
(
GTK_COMBO
(
mrl_combo
),
mrl_combo_items
);
g_list_free
(
mrl_combo_items
);
mrl_entry
=
GTK_COMBO
(
mrl_combo
)
->
entry
;
gtk_widget_set_name
(
mrl_entry
,
"mrl_entry"
);
gtk_widget_ref
(
mrl_entry
);
gtk_object_set_data_full
(
GTK_OBJECT
(
familiar
),
"mrl_entry"
,
mrl_entry
,
(
GtkDestroyNotify
)
gtk_widget_unref
);
gtk_widget_show
(
mrl_entry
);
gtk_entry_set_text
(
GTK_ENTRY
(
mrl_entry
),
"file://"
);
mediabook
=
gtk_notebook_new
();
gtk_widget_set_name
(
mediabook
,
"mediabook"
);
gtk_widget_ref
(
mediabook
);
gtk_object_set_data_full
(
GTK_OBJECT
(
familiar
),
"mediabook"
,
mediabook
,
(
GtkDestroyNotify
)
gtk_widget_unref
);
gtk_widget_show
(
mediabook
);
gtk_box_pack_start
(
GTK_BOX
(
vbox1
),
mediabook
,
TRUE
,
TRUE
,
0
);
scrolledwindow4
=
gtk_scrolled_window_new
(
NULL
,
NULL
);
gtk_widget_set_name
(
scrolledwindow4
,
"scrolledwindow4"
);
gtk_widget_ref
(
scrolledwindow4
);
gtk_object_set_data_full
(
GTK_OBJECT
(
familiar
),
"scrolledwindow4"
,
scrolledwindow4
,
(
GtkDestroyNotify
)
gtk_widget_unref
);
gtk_widget_show
(
scrolledwindow4
);
gtk_container_add
(
GTK_CONTAINER
(
mediabook
),
scrolledwindow4
);
gtk_scrolled_window_set_policy
(
GTK_SCROLLED_WINDOW
(
scrolledwindow4
),
GTK_POLICY_AUTOMATIC
,
GTK_POLICY_AUTOMATIC
);
viewport2
=
gtk_viewport_new
(
NULL
,
NULL
);
gtk_widget_set_name
(
viewport2
,
"viewport2"
);
gtk_widget_ref
(
viewport2
);
gtk_object_set_data_full
(
GTK_OBJECT
(
familiar
),
"viewport2"
,
viewport2
,
(
GtkDestroyNotify
)
gtk_widget_unref
);
gtk_widget_show
(
viewport2
);
gtk_container_add
(
GTK_CONTAINER
(
scrolledwindow4
),
viewport2
);
clistmedia
=
gtk_clist_new
(
2
);
gtk_widget_set_name
(
clistmedia
,
"clistmedia"
);
gtk_widget_ref
(
clistmedia
);
gtk_object_set_data_full
(
GTK_OBJECT
(
familiar
),
"clistmedia"
,
clistmedia
,
(
GtkDestroyNotify
)
gtk_widget_unref
);
gtk_widget_show
(
clistmedia
);
gtk_container_add
(
GTK_CONTAINER
(
viewport2
),
clistmedia
);
gtk_clist_set_column_width
(
GTK_CLIST
(
clistmedia
),
0
,
129
);
gtk_clist_set_column_width
(
GTK_CLIST
(
clistmedia
),
1
,
80
);
gtk_clist_column_titles_show
(
GTK_CLIST
(
clistmedia
));
labelname
=
gtk_label_new
(
_
(
"Name"
));
gtk_widget_set_name
(
labelname
,
"labelname"
);
gtk_widget_ref
(
labelname
);
gtk_object_set_data_full
(
GTK_OBJECT
(
familiar
),
"labelname"
,
labelname
,
(
GtkDestroyNotify
)
gtk_widget_unref
);
gtk_widget_show
(
labelname
);
gtk_clist_set_column_widget
(
GTK_CLIST
(
clistmedia
),
0
,
labelname
);
labeltype
=
gtk_label_new
(
_
(
"Type"
));
gtk_widget_set_name
(
labeltype
,
"labeltype"
);
gtk_widget_ref
(
labeltype
);
gtk_object_set_data_full
(
GTK_OBJECT
(
familiar
),
"labeltype"
,
labeltype
,
(
GtkDestroyNotify
)
gtk_widget_unref
);
gtk_widget_show
(
labeltype
);
gtk_clist_set_column_widget
(
GTK_CLIST
(
clistmedia
),
1
,
labeltype
);
label13
=
gtk_label_new
(
_
(
"File"
));
gtk_widget_set_name
(
label13
,
"label13"
);
gtk_widget_ref
(
label13
);
gtk_object_set_data_full
(
GTK_OBJECT
(
familiar
),
"label13"
,
label13
,
(
GtkDestroyNotify
)
gtk_widget_unref
);
gtk_widget_show
(
label13
);
gtk_notebook_set_tab_label
(
GTK_NOTEBOOK
(
mediabook
),
gtk_notebook_get_nth_page
(
GTK_NOTEBOOK
(
mediabook
),
0
),
label13
);
vbox3
=
gtk_vbox_new
(
FALSE
,
2
);
gtk_widget_set_name
(
vbox3
,
"vbox3"
);
gtk_widget_ref
(
vbox3
);
gtk_object_set_data_full
(
GTK_OBJECT
(
familiar
),
"vbox3"
,
vbox3
,
(
GtkDestroyNotify
)
gtk_widget_unref
);
gtk_widget_show
(
vbox3
);
gtk_container_add
(
GTK_CONTAINER
(
mediabook
),
vbox3
);
network_multicast
=
gtk_radio_button_new_with_label
(
network_group
,
_
(
"UDP/RTP (Address when Multicast)"
));
network_group
=
gtk_radio_button_group
(
GTK_RADIO_BUTTON
(
network_multicast
));
gtk_widget_set_name
(
network_multicast
,
"network_multicast"
);
gtk_widget_ref
(
network_multicast
);
gtk_object_set_data_full
(
GTK_OBJECT
(
familiar
),
"network_multicast"
,
network_multicast
,
(
GtkDestroyNotify
)
gtk_widget_unref
);
gtk_widget_show
(
network_multicast
);
gtk_box_pack_start
(
GTK_BOX
(
vbox3
),
network_multicast
,
FALSE
,
FALSE
,
0
);
table1
=
gtk_table_new
(
2
,
2
,
FALSE
);
gtk_widget_set_name
(
table1
,
"table1"
);
gtk_widget_ref
(
table1
);
gtk_object_set_data_full
(
GTK_OBJECT
(
familiar
),
"table1"
,
table1
,
(
GtkDestroyNotify
)
gtk_widget_unref
);
gtk_widget_show
(
table1
);
gtk_box_pack_start
(
GTK_BOX
(
vbox3
),
table1
,
FALSE
,
TRUE
,
0
);
gtk_table_set_col_spacings
(
GTK_TABLE
(
table1
),
5
);
label21
=
gtk_label_new
(
_
(
"Address"
));
gtk_widget_set_name
(
label21
,
"label21"
);
gtk_widget_ref
(
label21
);
gtk_object_set_data_full
(
GTK_OBJECT
(
familiar
),
"label21"
,
label21
,
(
GtkDestroyNotify
)
gtk_widget_unref
);
gtk_widget_show
(
label21
);
gtk_table_attach
(
GTK_TABLE
(
table1
),
label21
,
0
,
1
,
0
,
1
,
(
GtkAttachOptions
)
(
GTK_FILL
),
(
GtkAttachOptions
)
(
0
),
0
,
0
);
gtk_misc_set_alignment
(
GTK_MISC
(
label21
),
0
,
0
.
5
);
label22
=
gtk_label_new
(
_
(
"Port"
));
gtk_widget_set_name
(
label22
,
"label22"
);
gtk_widget_ref
(
label22
);
gtk_object_set_data_full
(
GTK_OBJECT
(
familiar
),
"label22"
,
label22
,
(
GtkDestroyNotify
)
gtk_widget_unref
);
gtk_widget_show
(
label22
);
gtk_table_attach
(
GTK_TABLE
(
table1
),
label22
,
0
,
1
,
1
,
2
,
(
GtkAttachOptions
)
(
GTK_FILL
),
(
GtkAttachOptions
)
(
0
),
0
,
0
);
gtk_misc_set_alignment
(
GTK_MISC
(
label22
),
0
,
0
.
5
);
network_multicast_port_adj
=
gtk_adjustment_new
(
1234
,
1
,
65536
,
1
,
10
,
10
);
network_multicast_port
=
gtk_spin_button_new
(
GTK_ADJUSTMENT
(
network_multicast_port_adj
),
1
,
0
);
gtk_widget_set_name
(
network_multicast_port
,
"network_multicast_port"
);
gtk_widget_ref
(
network_multicast_port
);
gtk_object_set_data_full
(
GTK_OBJECT
(
familiar
),
"network_multicast_port"
,
network_multicast_port
,
(
GtkDestroyNotify
)
gtk_widget_unref
);
gtk_widget_show
(
network_multicast_port
);
gtk_table_attach
(
GTK_TABLE
(
table1
),
network_multicast_port
,
1
,
2
,
1
,
2
,
(
GtkAttachOptions
)
(
GTK_EXPAND
|
GTK_FILL
),
(
GtkAttachOptions
)
(
0
),
0
,
0
);
combo2
=
gtk_combo_new
();
gtk_widget_set_name
(
combo2
,
"combo2"
);
gtk_widget_ref
(
combo2
);
gtk_object_set_data_full
(
GTK_OBJECT
(
familiar
),
"combo2"
,
combo2
,
(
GtkDestroyNotify
)
gtk_widget_unref
);
gtk_widget_show
(
combo2
);
gtk_table_attach
(
GTK_TABLE
(
table1
),
combo2
,
1
,
2
,
0
,
1
,
(
GtkAttachOptions
)
(
GTK_EXPAND
|
GTK_FILL
),
(
GtkAttachOptions
)
(
0
),
0
,
0
);
network_multicast_address
=
GTK_COMBO
(
combo2
)
->
entry
;
gtk_widget_set_name
(
network_multicast_address
,
"network_multicast_address"
);
gtk_widget_ref
(
network_multicast_address
);
gtk_object_set_data_full
(
GTK_OBJECT
(
familiar
),
"network_multicast_address"
,
network_multicast_address
,
(
GtkDestroyNotify
)
gtk_widget_unref
);
gtk_widget_show
(
network_multicast_address
);
hseparator10
=
gtk_hseparator_new
();
gtk_widget_set_name
(
hseparator10
,
"hseparator10"
);
gtk_widget_ref
(
hseparator10
);
gtk_object_set_data_full
(
GTK_OBJECT
(
familiar
),
"hseparator10"
,
hseparator10
,
(
GtkDestroyNotify
)
gtk_widget_unref
);
gtk_widget_show
(
hseparator10
);
gtk_box_pack_start
(
GTK_BOX
(
vbox3
),
hseparator10
,
FALSE
,
TRUE
,
0
);
hbox9
=
gtk_hbox_new
(
TRUE
,
0
);
gtk_widget_set_name
(
hbox9
,
"hbox9"
);
gtk_widget_ref
(
hbox9
);
gtk_object_set_data_full
(
GTK_OBJECT
(
familiar
),
"hbox9"
,
hbox9
,
(
GtkDestroyNotify
)
gtk_widget_unref
);
gtk_widget_show
(
hbox9
);
gtk_box_pack_start
(
GTK_BOX
(
vbox3
),
hbox9
,
FALSE
,
TRUE
,
0
);
network_http
=
gtk_radio_button_new_with_label
(
network_group
,
_
(
"HTTP"
));
network_group
=
gtk_radio_button_group
(
GTK_RADIO_BUTTON
(
network_http
));
gtk_widget_set_name
(
network_http
,
"network_http"
);
gtk_widget_ref
(
network_http
);
gtk_object_set_data_full
(
GTK_OBJECT
(
familiar
),
"network_http"
,
network_http
,
(
GtkDestroyNotify
)
gtk_widget_unref
);
gtk_widget_show
(
network_http
);
gtk_box_pack_start
(
GTK_BOX
(
hbox9
),
network_http
,
FALSE
,
TRUE
,
0
);
gtk_widget_set_sensitive
(
network_http
,
FALSE
);
network_ftp
=
gtk_radio_button_new_with_label
(
network_group
,
_
(
"FTP"
));
network_group
=
gtk_radio_button_group
(
GTK_RADIO_BUTTON
(
network_ftp
));
gtk_widget_set_name
(
network_ftp
,
"network_ftp"
);
gtk_widget_ref
(
network_ftp
);
gtk_object_set_data_full
(
GTK_OBJECT
(
familiar
),
"network_ftp"
,
network_ftp
,
(
GtkDestroyNotify
)
gtk_widget_unref
);
gtk_widget_show
(
network_ftp
);
gtk_box_pack_start
(
GTK_BOX
(
hbox9
),
network_ftp
,
FALSE
,
TRUE
,
0
);
gtk_widget_set_sensitive
(
network_ftp
,
FALSE
);
network_mms
=
gtk_radio_button_new_with_label
(
network_group
,
_
(
"MMS"
));
network_group
=
gtk_radio_button_group
(
GTK_RADIO_BUTTON
(
network_mms
));
gtk_widget_set_name
(
network_mms
,
"network_mms"
);
gtk_widget_ref
(
network_mms
);
gtk_object_set_data_full
(
GTK_OBJECT
(
familiar
),
"network_mms"
,
network_mms
,
(
GtkDestroyNotify
)
gtk_widget_unref
);
gtk_widget_show
(
network_mms
);
gtk_box_pack_start
(
GTK_BOX
(
hbox9
),
network_mms
,
FALSE
,
TRUE
,
0
);
gtk_widget_set_sensitive
(
network_mms
,
FALSE
);
hseparator11
=
gtk_hseparator_new
();
gtk_widget_set_name
(
hseparator11
,
"hseparator11"
);
gtk_widget_ref
(
hseparator11
);
gtk_object_set_data_full
(
GTK_OBJECT
(
familiar
),
"hseparator11"
,
hseparator11
,
(
GtkDestroyNotify
)
gtk_widget_unref
);
gtk_widget_show
(
hseparator11
);
gtk_box_pack_start
(
GTK_BOX
(
vbox3
),
hseparator11
,
TRUE
,
TRUE
,
0
);
label20
=
gtk_label_new
(
_
(
"Network"
));
gtk_widget_set_name
(
label20
,
"label20"
);
gtk_widget_ref
(
label20
);
gtk_object_set_data_full
(
GTK_OBJECT
(
familiar
),
"label20"
,
label20
,
(
GtkDestroyNotify
)
gtk_widget_unref
);
gtk_widget_show
(
label20
);
gtk_notebook_set_tab_label
(
GTK_NOTEBOOK
(
mediabook
),
gtk_notebook_get_nth_page
(
GTK_NOTEBOOK
(
mediabook
),
1
),
label20
);
media2
=
gtk_label_new
(
_
(
"Media"
));
gtk_widget_set_name
(
media2
,
"media2"
);
gtk_widget_ref
(
media2
);
gtk_object_set_data_full
(
GTK_OBJECT
(
familiar
),
"media2"
,
media2
,
(
GtkDestroyNotify
)
gtk_widget_unref
);
gtk_widget_show
(
media2
);
gtk_notebook_set_tab_label
(
GTK_NOTEBOOK
(
notebook
),
gtk_notebook_get_nth_page
(
GTK_NOTEBOOK
(
notebook
),
0
),
media2
);
vbox4
=
gtk_vbox_new
(
FALSE
,
0
);
gtk_widget_set_name
(
vbox4
,
"vbox4"
);
gtk_widget_ref
(
vbox4
);
gtk_object_set_data_full
(
GTK_OBJECT
(
familiar
),
"vbox4"
,
vbox4
,
(
GtkDestroyNotify
)
gtk_widget_unref
);
gtk_widget_show
(
vbox4
);
gtk_container_add
(
GTK_CONTAINER
(
notebook
),
vbox4
);
scrolledwindow5
=
gtk_scrolled_window_new
(
NULL
,
NULL
);
gtk_widget_set_name
(
scrolledwindow5
,
"scrolledwindow5"
);
gtk_widget_ref
(
scrolledwindow5
);
gtk_object_set_data_full
(
GTK_OBJECT
(
familiar
),
"scrolledwindow5"
,
scrolledwindow5
,
(
GtkDestroyNotify
)
gtk_widget_unref
);
gtk_widget_show
(
scrolledwindow5
);
gtk_box_pack_start
(
GTK_BOX
(
vbox4
),
scrolledwindow5
,
TRUE
,
TRUE
,
0
);
gtk_scrolled_window_set_policy
(
GTK_SCROLLED_WINDOW
(
scrolledwindow5
),
GTK_POLICY_AUTOMATIC
,
GTK_POLICY_AUTOMATIC
);
clistplaylist
=
gtk_clist_new
(
2
);
gtk_widget_set_name
(
clistplaylist
,
"clistplaylist"
);
gtk_widget_ref
(
clistplaylist
);
gtk_object_set_data_full
(
GTK_OBJECT
(
familiar
),
"clistplaylist"
,
clistplaylist
,
(
GtkDestroyNotify
)
gtk_widget_unref
);
gtk_widget_show
(
clistplaylist
);
gtk_container_add
(
GTK_CONTAINER
(
scrolledwindow5
),
clistplaylist
);
gtk_clist_set_column_width
(
GTK_CLIST
(
clistplaylist
),
0
,
140
);
gtk_clist_set_column_width
(
GTK_CLIST
(
clistplaylist
),
1
,
80
);
gtk_clist_column_titles_show
(
GTK_CLIST
(
clistplaylist
));
label25
=
gtk_label_new
(
_
(
"MRL"
));
gtk_widget_set_name
(
label25
,
"label25"
);
gtk_widget_ref
(
label25
);
gtk_object_set_data_full
(
GTK_OBJECT
(
familiar
),
"label25"
,
label25
,
(
GtkDestroyNotify
)
gtk_widget_unref
);
gtk_widget_show
(
label25
);
gtk_clist_set_column_widget
(
GTK_CLIST
(
clistplaylist
),
0
,
label25
);
gtk_label_set_justify
(
GTK_LABEL
(
label25
),
GTK_JUSTIFY_LEFT
);
label26
=
gtk_label_new
(
_
(
"Time"
));
gtk_widget_set_name
(
label26
,
"label26"
);
gtk_widget_ref
(
label26
);
gtk_object_set_data_full
(
GTK_OBJECT
(
familiar
),
"label26"
,
label26
,
(
GtkDestroyNotify
)
gtk_widget_unref
);
gtk_widget_show
(
label26
);
gtk_clist_set_column_widget
(
GTK_CLIST
(
clistplaylist
),
1
,
label26
);
gtk_label_set_justify
(
GTK_LABEL
(
label26
),
GTK_JUSTIFY_RIGHT
);
hbox11
=
gtk_hbox_new
(
TRUE
,
0
);
gtk_widget_set_name
(
hbox11
,
"hbox11"
);
gtk_widget_ref
(
hbox11
);
gtk_object_set_data_full
(
GTK_OBJECT
(
familiar
),
"hbox11"
,
hbox11
,
(
GtkDestroyNotify
)
gtk_widget_unref
);
gtk_widget_show
(
hbox11
);
gtk_box_pack_start
(
GTK_BOX
(
vbox4
),
hbox11
,
FALSE
,
FALSE
,
2
);
update_playlist
=
gtk_button_new_with_label
(
_
(
"Update"
));
gtk_widget_set_name
(
update_playlist
,
"update_playlist"
);
gtk_widget_ref
(
update_playlist
);
gtk_object_set_data_full
(
GTK_OBJECT
(
familiar
),
"update_playlist"
,
update_playlist
,
(
GtkDestroyNotify
)
gtk_widget_unref
);
gtk_widget_show
(
update_playlist
);
gtk_box_pack_start
(
GTK_BOX
(
hbox11
),
update_playlist
,
FALSE
,
FALSE
,
0
);
playlist_del
=
gtk_button_new_with_label
(
_
(
" Del "
));
gtk_widget_set_name
(
playlist_del
,
"playlist_del"
);
gtk_widget_ref
(
playlist_del
);
gtk_object_set_data_full
(
GTK_OBJECT
(
familiar
),
"playlist_del"
,
playlist_del
,
(
GtkDestroyNotify
)
gtk_widget_unref
);
gtk_widget_show
(
playlist_del
);
gtk_box_pack_start
(
GTK_BOX
(
hbox11
),
playlist_del
,
FALSE
,
FALSE
,
5
);
playlist_clear
=
gtk_button_new_with_label
(
_
(
" Clear "
));
gtk_widget_set_name
(
playlist_clear
,
"playlist_clear"
);
gtk_widget_ref
(
playlist_clear
);
gtk_object_set_data_full
(
GTK_OBJECT
(
familiar
),
"playlist_clear"
,
playlist_clear
,
(
GtkDestroyNotify
)
gtk_widget_unref
);
gtk_widget_show
(
playlist_clear
);
gtk_box_pack_start
(
GTK_BOX
(
hbox11
),
playlist_clear
,
FALSE
,
FALSE
,
5
);
playlist
=
gtk_label_new
(
_
(
"Playlist"
));
gtk_widget_set_name
(
playlist
,
"playlist"
);
gtk_widget_ref
(
playlist
);
gtk_object_set_data_full
(
GTK_OBJECT
(
familiar
),
"playlist"
,
playlist
,
(
GtkDestroyNotify
)
gtk_widget_unref
);
gtk_widget_show
(
playlist
);
gtk_notebook_set_tab_label
(
GTK_NOTEBOOK
(
notebook
),
gtk_notebook_get_nth_page
(
GTK_NOTEBOOK
(
notebook
),
1
),
playlist
);
vbox2
=
gtk_vbox_new
(
FALSE
,
0
);
gtk_widget_set_name
(
vbox2
,
"vbox2"
);
gtk_widget_ref
(
vbox2
);
gtk_object_set_data_full
(
GTK_OBJECT
(
familiar
),
"vbox2"
,
vbox2
,
(
GtkDestroyNotify
)
gtk_widget_unref
);
gtk_widget_show
(
vbox2
);
gtk_container_add
(
GTK_CONTAINER
(
notebook
),
vbox2
);
cbautoplay
=
gtk_check_button_new_with_label
(
_
(
"Automatically play file"
));
gtk_widget_set_name
(
cbautoplay
,
"cbautoplay"
);
gtk_widget_ref
(
cbautoplay
);
gtk_object_set_data_full
(
GTK_OBJECT
(
familiar
),
"cbautoplay"
,
cbautoplay
,
(
GtkDestroyNotify
)
gtk_widget_unref
);
gtk_widget_show
(
cbautoplay
);
gtk_box_pack_start
(
GTK_BOX
(
vbox2
),
cbautoplay
,
FALSE
,
FALSE
,
0
);
gtk_toggle_button_set_active
(
GTK_TOGGLE_BUTTON
(
cbautoplay
),
TRUE
);
hbox2
=
gtk_hbox_new
(
TRUE
,
0
);
gtk_widget_set_name
(
hbox2
,
"hbox2"
);
gtk_widget_ref
(
hbox2
);
gtk_object_set_data_full
(
GTK_OBJECT
(
familiar
),
"hbox2"
,
hbox2
,
(
GtkDestroyNotify
)
gtk_widget_unref
);
gtk_widget_show
(
hbox2
);
gtk_box_pack_end
(
GTK_BOX
(
vbox2
),
hbox2
,
FALSE
,
FALSE
,
2
);
buttonSave
=
gtk_button_new_with_label
(
_
(
" Save "
));
gtk_widget_set_name
(
buttonSave
,
"buttonSave"
);
gtk_widget_ref
(
buttonSave
);
gtk_object_set_data_full
(
GTK_OBJECT
(
familiar
),
"buttonSave"
,
buttonSave
,
(
GtkDestroyNotify
)
gtk_widget_unref
);
gtk_widget_show
(
buttonSave
);
gtk_box_pack_start
(
GTK_BOX
(
hbox2
),
buttonSave
,
FALSE
,
FALSE
,
0
);
buttonApply
=
gtk_button_new_with_label
(
_
(
" Apply "
));
gtk_widget_set_name
(
buttonApply
,
"buttonApply"
);
gtk_widget_ref
(
buttonApply
);
gtk_object_set_data_full
(
GTK_OBJECT
(
familiar
),
"buttonApply"
,
buttonApply
,
(
GtkDestroyNotify
)
gtk_widget_unref
);
gtk_widget_show
(
buttonApply
);
gtk_box_pack_start
(
GTK_BOX
(
hbox2
),
buttonApply
,
FALSE
,
FALSE
,
0
);
buttonCancel
=
gtk_button_new_with_label
(
_
(
" Cancel "
));
gtk_widget_set_name
(
buttonCancel
,
"buttonCancel"
);
gtk_widget_ref
(
buttonCancel
);
gtk_object_set_data_full
(
GTK_OBJECT
(
familiar
),
"buttonCancel"
,
buttonCancel
,
(
GtkDestroyNotify
)
gtk_widget_unref
);
gtk_widget_show
(
buttonCancel
);
gtk_box_pack_end
(
GTK_BOX
(
hbox2
),
buttonCancel
,
FALSE
,
FALSE
,
0
);
preferences
=
gtk_label_new
(
_
(
"Preference"
));
gtk_widget_set_name
(
preferences
,
"preferences"
);
gtk_widget_ref
(
preferences
);
gtk_object_set_data_full
(
GTK_OBJECT
(
familiar
),
"preferences"
,
preferences
,
(
GtkDestroyNotify
)
gtk_widget_unref
);
gtk_widget_show
(
preferences
);
gtk_notebook_set_tab_label
(
GTK_NOTEBOOK
(
notebook
),
gtk_notebook_get_nth_page
(
GTK_NOTEBOOK
(
notebook
),
2
),
preferences
);
scrolledwindow3
=
gtk_scrolled_window_new
(
NULL
,
NULL
);
gtk_widget_set_name
(
scrolledwindow3
,
"scrolledwindow3"
);
gtk_widget_ref
(
scrolledwindow3
);
gtk_object_set_data_full
(
GTK_OBJECT
(
familiar
),
"scrolledwindow3"
,
scrolledwindow3
,
(
GtkDestroyNotify
)
gtk_widget_unref
);
gtk_widget_show
(
scrolledwindow3
);
gtk_container_add
(
GTK_CONTAINER
(
notebook
),
scrolledwindow3
);
gtk_scrolled_window_set_policy
(
GTK_SCROLLED_WINDOW
(
scrolledwindow3
),
GTK_POLICY_AUTOMATIC
,
GTK_POLICY_AUTOMATIC
);
viewport1
=
gtk_viewport_new
(
NULL
,
NULL
);
gtk_widget_set_name
(
viewport1
,
"viewport1"
);
gtk_widget_ref
(
viewport1
);
gtk_object_set_data_full
(
GTK_OBJECT
(
familiar
),
"viewport1"
,
viewport1
,
(
GtkDestroyNotify
)
gtk_widget_unref
);
gtk_widget_show
(
viewport1
);
gtk_container_add
(
GTK_CONTAINER
(
scrolledwindow3
),
viewport1
);
gtk_viewport_set_shadow_type
(
GTK_VIEWPORT
(
viewport1
),
GTK_SHADOW_NONE
);
fixed2
=
gtk_fixed_new
();
gtk_widget_set_name
(
fixed2
,
"fixed2"
);
gtk_widget_ref
(
fixed2
);
gtk_object_set_data_full
(
GTK_OBJECT
(
familiar
),
"fixed2"
,
fixed2
,
(
GtkDestroyNotify
)
gtk_widget_unref
);
gtk_widget_show
(
fixed2
);
gtk_container_add
(
GTK_CONTAINER
(
viewport1
),
fixed2
);
pixmap2
=
create_pixmap
(
familiar
,
"vlc32x32.xpm"
);
gtk_widget_set_name
(
pixmap2
,
"pixmap2"
);
gtk_widget_ref
(
pixmap2
);
gtk_object_set_data_full
(
GTK_OBJECT
(
familiar
),
"pixmap2"
,
pixmap2
,
(
GtkDestroyNotify
)
gtk_widget_unref
);
gtk_widget_show
(
pixmap2
);
gtk_fixed_put
(
GTK_FIXED
(
fixed2
),
pixmap2
,
8
,
0
);
gtk_widget_set_uposition
(
pixmap2
,
8
,
0
);
gtk_widget_set_usize
(
pixmap2
,
50
,
50
);
label8
=
gtk_label_new
(
_
(
"(c) 1996-2003 the VideoLAN team"
));
gtk_widget_set_name
(
label8
,
"label8"
);
gtk_widget_ref
(
label8
);
gtk_object_set_data_full
(
GTK_OBJECT
(
familiar
),
"label8"
,
label8
,
(
GtkDestroyNotify
)
gtk_widget_unref
);
gtk_widget_show
(
label8
);
gtk_fixed_put
(
GTK_FIXED
(
fixed2
),
label8
,
16
,
56
);
gtk_widget_set_uposition
(
label8
,
16
,
56
);
gtk_widget_set_usize
(
label8
,
200
,
18
);
label9
=
gtk_label_new
(
_
(
"Authors: The VideoLAN Team, http://www.videolan.org"
));
gtk_widget_set_name
(
label9
,
"label9"
);
gtk_widget_ref
(
label9
);
gtk_object_set_data_full
(
GTK_OBJECT
(
familiar
),
"label9"
,
label9
,
(
GtkDestroyNotify
)
gtk_widget_unref
);
gtk_widget_show
(
label9
);
gtk_fixed_put
(
GTK_FIXED
(
fixed2
),
label9
,
16
,
80
);
gtk_widget_set_uposition
(
label9
,
16
,
80
);
gtk_widget_set_usize
(
label9
,
200
,
40
);
gtk_label_set_line_wrap
(
GTK_LABEL
(
label9
),
TRUE
);
label11
=
gtk_label_new
(
_
(
"VLC media player"
));
gtk_widget_set_name
(
label11
,
"label11"
);
gtk_widget_ref
(
label11
);
gtk_object_set_data_full
(
GTK_OBJECT
(
familiar
),
"label11"
,
label11
,
(
GtkDestroyNotify
)
gtk_widget_unref
);
gtk_widget_show
(
label11
);
gtk_fixed_put
(
GTK_FIXED
(
fixed2
),
label11
,
64
,
8
);
gtk_widget_set_uposition
(
label11
,
64
,
8
);
gtk_widget_set_usize
(
label11
,
120
,
40
);
gtk_label_set_line_wrap
(
GTK_LABEL
(
label11
),
TRUE
);
label27
=
gtk_label_new
(
"http://www.videolan.org"
);
gtk_widget_set_name
(
label27
,
"label27"
);
gtk_widget_ref
(
label27
);
gtk_object_set_data_full
(
GTK_OBJECT
(
familiar
),
"label27"
,
label27
,
(
GtkDestroyNotify
)
gtk_widget_unref
);
gtk_widget_show
(
label27
);
gtk_fixed_put
(
GTK_FIXED
(
fixed2
),
label27
,
16
,
200
);
gtk_widget_set_uposition
(
label27
,
16
,
200
);
gtk_widget_set_usize
(
label27
,
208
,
16
);
label10
=
gtk_label_new
(
_
(
"The VideoLAN Client is a MPEG, MPEG 2, MP3, DivX player, that accepts input from local or network sources."
));
gtk_widget_set_name
(
label10
,
"label10"
);
gtk_widget_ref
(
label10
);
gtk_object_set_data_full
(
GTK_OBJECT
(
familiar
),
"label10"
,
label10
,
(
GtkDestroyNotify
)
gtk_widget_unref
);
gtk_widget_show
(
label10
);
gtk_fixed_put
(
GTK_FIXED
(
fixed2
),
label10
,
16
,
128
);
gtk_widget_set_uposition
(
label10
,
16
,
128
);
gtk_widget_set_usize
(
label10
,
200
,
70
);
gtk_label_set_justify
(
GTK_LABEL
(
label10
),
GTK_JUSTIFY_LEFT
);
gtk_label_set_line_wrap
(
GTK_LABEL
(
label10
),
TRUE
);
about
=
gtk_label_new
(
_
(
"About"
));
gtk_widget_set_name
(
about
,
"about"
);
gtk_widget_ref
(
about
);
gtk_object_set_data_full
(
GTK_OBJECT
(
familiar
),
"about"
,
about
,
(
GtkDestroyNotify
)
gtk_widget_unref
);
gtk_widget_show
(
about
);
gtk_notebook_set_tab_label
(
GTK_NOTEBOOK
(
notebook
),
gtk_notebook_get_nth_page
(
GTK_NOTEBOOK
(
notebook
),
3
),
about
);
gtk_signal_connect
(
GTK_OBJECT
(
familiar
),
"delete_event"
,
GTK_SIGNAL_FUNC
(
on_familiar_delete_event
),
NULL
);
gtk_signal_connect
(
GTK_OBJECT
(
toolbar_open
),
"clicked"
,
GTK_SIGNAL_FUNC
(
on_toolbar_open_clicked
),
NULL
);
gtk_signal_connect
(
GTK_OBJECT
(
toolbar_playlist
),
"clicked"
,
GTK_SIGNAL_FUNC
(
on_toolbar_playlist_clicked
),
NULL
);
gtk_signal_connect
(
GTK_OBJECT
(
toolbar_preferences
),
"clicked"
,
GTK_SIGNAL_FUNC
(
on_toolbar_preferences_clicked
),
NULL
);
gtk_signal_connect
(
GTK_OBJECT
(
toolbar_rewind
),
"clicked"
,
GTK_SIGNAL_FUNC
(
on_toolbar_rewind_clicked
),
NULL
);
gtk_signal_connect
(
GTK_OBJECT
(
toolbar_pause
),
"clicked"
,
GTK_SIGNAL_FUNC
(
on_toolbar_pause_clicked
),
NULL
);
gtk_signal_connect
(
GTK_OBJECT
(
toolbar_play
),
"clicked"
,
GTK_SIGNAL_FUNC
(
on_toolbar_play_clicked
),
NULL
);
gtk_signal_connect
(
GTK_OBJECT
(
toolbar_stop
),
"clicked"
,
GTK_SIGNAL_FUNC
(
on_toolbar_stop_clicked
),
NULL
);
gtk_signal_connect
(
GTK_OBJECT
(
toolbar_forward
),
"clicked"
,
GTK_SIGNAL_FUNC
(
on_toolbar_forward_clicked
),
NULL
);
gtk_signal_connect
(
GTK_OBJECT
(
toolbar_about
),
"clicked"
,
GTK_SIGNAL_FUNC
(
on_toolbar_about_clicked
),
NULL
);
gtk_signal_connect
(
GTK_OBJECT
(
slider
),
"button_release_event"
,
GTK_SIGNAL_FUNC
(
FamiliarSliderRelease
),
NULL
);
gtk_signal_connect
(
GTK_OBJECT
(
slider
),
"button_press_event"
,
GTK_SIGNAL_FUNC
(
FamiliarSliderPress
),
NULL
);
gtk_signal_connect
(
GTK_OBJECT
(
buttonMrlGo
),
"clicked"
,
GTK_SIGNAL_FUNC
(
FamiliarMrlGo
),
NULL
);
gtk_signal_connect
(
GTK_OBJECT
(
mrl_entry
),
"changed"
,
GTK_SIGNAL_FUNC
(
on_comboURL_entry_changed
),
NULL
);
gtk_signal_connect
(
GTK_OBJECT
(
clistmedia
),
"select_row"
,
GTK_SIGNAL_FUNC
(
on_clistmedia_select_row
),
NULL
);
gtk_signal_connect
(
GTK_OBJECT
(
clistmedia
),
"click_column"
,
GTK_SIGNAL_FUNC
(
on_clistmedia_click_column
),
NULL
);
gtk_signal_connect
(
GTK_OBJECT
(
network_multicast
),
"toggled"
,
GTK_SIGNAL_FUNC
(
on_network_multicast_toggled
),
NULL
);
gtk_signal_connect
(
GTK_OBJECT
(
network_multicast_port
),
"changed"
,
GTK_SIGNAL_FUNC
(
on_network_multicast_port_changed
),
NULL
);
gtk_signal_connect
(
GTK_OBJECT
(
network_multicast_address
),
"changed"
,
GTK_SIGNAL_FUNC
(
on_network_multicast_address_changed
),
NULL
);
gtk_signal_connect
(
GTK_OBJECT
(
network_http
),
"toggled"
,
GTK_SIGNAL_FUNC
(
on_network_http_toggled
),
NULL
);
gtk_signal_connect
(
GTK_OBJECT
(
network_ftp
),
"toggled"
,
GTK_SIGNAL_FUNC
(
on_network_ftp_toggled
),
NULL
);
gtk_signal_connect
(
GTK_OBJECT
(
network_mms
),
"toggled"
,
GTK_SIGNAL_FUNC
(
on_network_mms_toggled
),
NULL
);
gtk_signal_connect
(
GTK_OBJECT
(
clistplaylist
),
"event"
,
GTK_SIGNAL_FUNC
(
FamiliarPlaylistEvent
),
NULL
);
gtk_signal_connect
(
GTK_OBJECT
(
update_playlist
),
"clicked"
,
GTK_SIGNAL_FUNC
(
FamiliarPlaylistUpdate
),
NULL
);
gtk_signal_connect
(
GTK_OBJECT
(
playlist_del
),
"clicked"
,
GTK_SIGNAL_FUNC
(
FamiliarPlaylistDel
),
NULL
);
gtk_signal_connect
(
GTK_OBJECT
(
playlist_clear
),
"clicked"
,
GTK_SIGNAL_FUNC
(
FamiliarPlaylistClear
),
NULL
);
gtk_signal_connect
(
GTK_OBJECT
(
cbautoplay
),
"toggled"
,
GTK_SIGNAL_FUNC
(
on_cbautoplay_toggled
),
NULL
);
gtk_signal_connect
(
GTK_OBJECT
(
buttonApply
),
"clicked"
,
GTK_SIGNAL_FUNC
(
FamiliarPreferencesApply
),
NULL
);
return
familiar
;
}
modules/gui/familiar/interface.h
deleted
100644 → 0
View file @
2c4e15bb
/*
* DO NOT EDIT THIS FILE - it is generated by Glade.
*/
GtkWidget
*
create_familiar
(
void
);
modules/gui/familiar/network.c
deleted
100644 → 0
View file @
2c4e15bb
/*****************************************************************************
* network.c : Network interface of the gtk-familiar plugin.
*****************************************************************************
* Copyright (C) 2000, 2001 VideoLAN
* $Id: network.c,v 1.1 2003/03/13 15:50:17 marcari Exp $
*
* Authors: Marc Ariberti <marcari@videolan.org>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111, USA.
*****************************************************************************/
/*****************************************************************************
* Preamble
*****************************************************************************/
#include <sys/types.h>
/* off_t */
#include <stdlib.h>
#include <vlc/vlc.h>
#include <vlc/intf.h>
#include <vlc/vout.h>
#include <stdio.h>
#include <string.h>
#include <dirent.h>
#include <sys/stat.h>
#include <unistd.h>
#ifdef HAVE_CONFIG_H
# include <config.h>
#endif
#include <gtk/gtk.h>
#include "callbacks.h"
#include "interface.h"
#include "support.h"
#include "familiar.h"
static
void
update_network_multicast
(
GtkWidget
*
widget
);
static
void
update_network_multicast
(
GtkWidget
*
widget
)
{
intf_thread_t
*
p_intf
=
GtkGetIntf
(
widget
);
GtkToggleButton
*
p_network_multicast
=
GTK_GET
(
TOGGLE_BUTTON
,
"network_multicast"
);
GtkEditable
*
p_network_multicast_address
=
GTK_GET
(
EDITABLE
,
"network_multicast_address"
);
GtkEditable
*
p_network_multicast_port
=
GTK_GET
(
EDITABLE
,
"network_multicast_port"
);
if
(
gtk_toggle_button_get_active
(
p_network_multicast
))
{
gchar
*
str
=
g_strconcat
(
"udp://@"
,
gtk_editable_get_chars
(
p_network_multicast_address
,
0
,
-
1
),
":"
,
gtk_editable_get_chars
(
p_network_multicast_port
,
0
,
-
1
),
NULL
);
gtk_entry_set_text
(
p_intf
->
p_sys
->
p_mrlentry
,
str
);
g_free
(
str
);
}
}
void
on_network_multicast_toggled
(
GtkToggleButton
*
togglebutton
,
gpointer
user_data
)
{
update_network_multicast
(
GTK_WIDGET
(
togglebutton
));
}
void
on_network_multicast_port_changed
(
GtkEditable
*
editable
,
gpointer
user_data
)
{
update_network_multicast
(
GTK_WIDGET
(
editable
));
}
void
on_network_multicast_address_changed
(
GtkEditable
*
editable
,
gpointer
user_data
)
{
update_network_multicast
(
GTK_WIDGET
(
editable
));
}
void
on_network_http_toggled
(
GtkToggleButton
*
togglebutton
,
gpointer
user_data
)
{
intf_thread_t
*
p_intf
=
GtkGetIntf
(
togglebutton
);
if
(
gtk_toggle_button_get_active
(
togglebutton
))
{
gtk_entry_set_text
(
p_intf
->
p_sys
->
p_mrlentry
,
"http://"
);
}
}
void
on_network_ftp_toggled
(
GtkToggleButton
*
togglebutton
,
gpointer
user_data
)
{
intf_thread_t
*
p_intf
=
GtkGetIntf
(
togglebutton
);
if
(
gtk_toggle_button_get_active
(
togglebutton
))
{
gtk_entry_set_text
(
p_intf
->
p_sys
->
p_mrlentry
,
"ftp://"
);
}
}
void
on_network_mms_toggled
(
GtkToggleButton
*
togglebutton
,
gpointer
user_data
)
{
intf_thread_t
*
p_intf
=
GtkGetIntf
(
togglebutton
);
if
(
gtk_toggle_button_get_active
(
togglebutton
))
{
gtk_entry_set_text
(
p_intf
->
p_sys
->
p_mrlentry
,
"mms://"
);
}
}
modules/gui/familiar/network.h
deleted
100644 → 0
View file @
2c4e15bb
/*****************************************************************************
* network.h : Network part of the gtk-familiar plugin.
*****************************************************************************
* Copyright (C) 2000, 2001 VideoLAN
* $Id: network.h,v 1.1 2003/03/13 15:50:17 marcari Exp $
*
* Authors: Marc Ariberti <marcari@videolan.org>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111, USA.
*****************************************************************************/
void
on_network_udp_toggled
(
GtkToggleButton
*
togglebutton
,
gpointer
user_data
);
void
on_network_udp_port_changed
(
GtkEditable
*
editable
,
gpointer
user_data
);
void
on_network_multicast_toggled
(
GtkToggleButton
*
togglebutton
,
gpointer
user_data
);
void
on_network_multicast_port_changed
(
GtkEditable
*
editable
,
gpointer
user_data
);
void
on_network_multicast_address_changed
(
GtkEditable
*
editable
,
gpointer
user_data
);
void
on_network_http_toggled
(
GtkToggleButton
*
togglebutton
,
gpointer
user_data
);
void
on_network_ftp_toggled
(
GtkToggleButton
*
togglebutton
,
gpointer
user_data
);
void
on_network_mms_toggled
(
GtkToggleButton
*
togglebutton
,
gpointer
user_data
);
void
FamiliarNetworkGo
(
GtkButton
*
button
,
gpointer
user_data
);
modules/gui/familiar/playlist.c
deleted
100644 → 0
View file @
2c4e15bb
/*****************************************************************************
* playlist.c : Playlist interface of the gtk-familiar plugin.
*****************************************************************************
* Copyright (C) 2000, 2001 VideoLAN
* $Id: playlist.c,v 1.1 2003/03/13 15:50:17 marcari Exp $
*
* Authors: Marc Ariberti <marcari@videolan.org>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111, USA.
*****************************************************************************/
/*****************************************************************************
* Preamble
*****************************************************************************/
#include <sys/types.h>
/* off_t */
#include <stdlib.h>
#include <vlc/vlc.h>
#include <vlc/intf.h>
#include <vlc/vout.h>
#include <stdio.h>
#include <string.h>
#include <dirent.h>
#include <sys/stat.h>
#include <unistd.h>
#ifdef HAVE_CONFIG_H
# include <config.h>
#endif
#include <gtk/gtk.h>
#include "interface.h"
#include "support.h"
#include "familiar.h"
#include "playlist.h"
gboolean
FamiliarPlaylistEvent
(
GtkWidget
*
widget
,
GdkEvent
*
event
,
gpointer
user_data
)
{
intf_thread_t
*
p_intf
=
GtkGetIntf
(
widget
);
playlist_t
*
p_playlist
=
vlc_object_find
(
p_intf
,
VLC_OBJECT_PLAYLIST
,
FIND_ANYWHERE
);
if
(
p_playlist
==
NULL
)
{
return
FALSE
;
}
if
(
(
event
->
button
).
type
==
GDK_2BUTTON_PRESS
)
{
GtkCList
*
p_clist
;
gint
i_row
;
gint
i_col
;
p_clist
=
p_intf
->
p_sys
->
p_clistplaylist
;
if
(
gtk_clist_get_selection_info
(
p_clist
,
(
event
->
button
).
x
,
(
event
->
button
).
y
,
&
i_row
,
&
i_col
)
==
1
)
{
playlist_Goto
(
p_playlist
,
i_row
);
}
vlc_object_release
(
p_playlist
);
FamiliarRebuildCList
(
p_clist
,
p_playlist
);
return
TRUE
;
}
vlc_object_release
(
p_playlist
);
return
FALSE
;
}
void
FamiliarPlaylistClear
(
GtkButton
*
button
,
gpointer
user_data
)
{
intf_thread_t
*
p_intf
=
GtkGetIntf
(
button
);
playlist_t
*
p_playlist
=
vlc_object_find
(
p_intf
,
VLC_OBJECT_PLAYLIST
,
FIND_ANYWHERE
);
int
item
;
if
(
p_playlist
==
NULL
)
{
return
;
}
for
(
item
=
p_playlist
->
i_size
-
1
;
item
>=
0
;
item
--
)
{
playlist_Delete
(
p_playlist
,
item
);
}
vlc_object_release
(
p_playlist
);
FamiliarRebuildCList
(
p_intf
->
p_sys
->
p_clistplaylist
,
p_playlist
);
}
void
FamiliarRebuildCList
(
GtkCList
*
p_clist
,
playlist_t
*
p_playlist
)
{
int
i_dummy
;
gchar
*
ppsz_text
[
2
];
GdkColor
red
;
red
.
red
=
65535
;
red
.
blue
=
0
;
red
.
green
=
0
;
gtk_clist_freeze
(
p_clist
);
gtk_clist_clear
(
p_clist
);
vlc_mutex_lock
(
&
p_playlist
->
object_lock
);
for
(
i_dummy
=
p_playlist
->
i_size
;
i_dummy
--
;
)
{
ppsz_text
[
0
]
=
p_playlist
->
pp_items
[
i_dummy
]
->
psz_name
;
ppsz_text
[
1
]
=
"no info"
;
gtk_clist_insert
(
p_clist
,
0
,
ppsz_text
);
}
vlc_mutex_unlock
(
&
p_playlist
->
object_lock
);
gtk_clist_set_background
(
p_clist
,
p_playlist
->
i_index
,
&
red
);
gtk_clist_thaw
(
p_clist
);
}
void
FamiliarPlaylistUpdate
(
GtkButton
*
button
,
gpointer
user_data
)
{
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
)
{
return
;
}
FamiliarRebuildCList
(
p_intf
->
p_sys
->
p_clistplaylist
,
p_playlist
);
}
static
void
FamiliarDeleteGListItem
(
gpointer
data
,
gpointer
param
)
{
int
i_cur_row
=
(
long
)
data
;
playlist_t
*
p_playlist
=
param
;
playlist_Delete
(
p_playlist
,
i_cur_row
);
}
static
gint
FamiliarCompareItems
(
gconstpointer
a
,
gconstpointer
b
)
{
return
(
ptrdiff_t
)
(
(
int
*
)
b
-
(
int
*
)
a
);
}
void
FamiliarPlaylistDel
(
GtkButton
*
button
,
gpointer
user_data
)
{
/* user wants to delete a file in the queue */
GList
*
p_selection
;
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
)
{
return
;
}
/* lock the struct */
vlc_mutex_lock
(
&
p_intf
->
change_lock
);
p_selection
=
p_intf
->
p_sys
->
p_clistplaylist
->
selection
;
if
(
g_list_length
(
p_selection
)
)
{
/* reverse-sort so that we can delete from the furthest
* to the closest item to delete...
*/
p_selection
=
g_list_sort
(
p_selection
,
FamiliarCompareItems
);
g_list_foreach
(
p_selection
,
FamiliarDeleteGListItem
,
p_playlist
);
}
vlc_mutex_unlock
(
&
p_intf
->
change_lock
);
vlc_object_release
(
p_playlist
);
FamiliarRebuildCList
(
p_intf
->
p_sys
->
p_clistplaylist
,
p_playlist
);
}
modules/gui/familiar/playlist.h
deleted
100644 → 0
View file @
2c4e15bb
gboolean
FamiliarPlaylistEvent
(
GtkWidget
*
widget
,
GdkEvent
*
event
,
gpointer
user_data
);
void
FamiliarRebuildCList
(
GtkCList
*
p_clist
,
playlist_t
*
p_playlist
);
void
FamiliarPlaylistClear
(
GtkButton
*
button
,
gpointer
user_data
);
void
FamiliarPlaylistUpdate
(
GtkButton
*
button
,
gpointer
user_data
);
void
FamiliarPlaylistDel
(
GtkButton
*
button
,
gpointer
user_data
);
modules/gui/familiar/support.c
deleted
100644 → 0
View file @
2c4e15bb
/*
* DO NOT EDIT THIS FILE - it is generated by Glade.
*/
#ifdef HAVE_CONFIG_H
# include <config.h>
#endif
#include <sys/types.h>
#include <sys/stat.h>
#include <unistd.h>
#include <string.h>
#include <gtk/gtk.h>
#include "support.h"
/* This is an internally used function to check if a pixmap file exists. */
static
gchar
*
check_file_exists
(
const
gchar
*
directory
,
const
gchar
*
filename
);
/* This is an internally used function to create pixmaps. */
static
GtkWidget
*
create_dummy_pixmap
(
GtkWidget
*
widget
);
GtkWidget
*
lookup_widget
(
GtkWidget
*
widget
,
const
gchar
*
widget_name
)
{
GtkWidget
*
parent
,
*
found_widget
;
for
(;;)
{
if
(
GTK_IS_MENU
(
widget
))
parent
=
gtk_menu_get_attach_widget
(
GTK_MENU
(
widget
));
else
parent
=
widget
->
parent
;
if
(
parent
==
NULL
)
break
;
widget
=
parent
;
}
found_widget
=
(
GtkWidget
*
)
gtk_object_get_data
(
GTK_OBJECT
(
widget
),
widget_name
);
if
(
!
found_widget
)
g_warning
(
"Widget not found: %s"
,
widget_name
);
return
found_widget
;
}
/* This is a dummy pixmap we use when a pixmap can't be found. */
static
char
*
dummy_pixmap_xpm
[]
=
{
/* columns rows colors chars-per-pixel */
"1 1 1 1"
,
" c None"
,
/* pixels */
" "
};
/* This is an internally used function to create pixmaps. */
static
GtkWidget
*
create_dummy_pixmap
(
GtkWidget
*
widget
)
{
GdkColormap
*
colormap
;
GdkPixmap
*
gdkpixmap
;
GdkBitmap
*
mask
;
GtkWidget
*
pixmap
;
colormap
=
gtk_widget_get_colormap
(
widget
);
gdkpixmap
=
gdk_pixmap_colormap_create_from_xpm_d
(
NULL
,
colormap
,
&
mask
,
NULL
,
dummy_pixmap_xpm
);
if
(
gdkpixmap
==
NULL
)
g_error
(
"Couldn't create replacement pixmap."
);
pixmap
=
gtk_pixmap_new
(
gdkpixmap
,
mask
);
gdk_pixmap_unref
(
gdkpixmap
);
gdk_bitmap_unref
(
mask
);
return
pixmap
;
}
static
GList
*
pixmaps_directories
=
NULL
;
/* Use this function to set the directory containing installed pixmaps. */
void
add_pixmap_directory
(
const
gchar
*
directory
)
{
pixmaps_directories
=
g_list_prepend
(
pixmaps_directories
,
g_strdup
(
directory
));
}
/* This is an internally used function to create pixmaps. */
GtkWidget
*
create_pixmap
(
GtkWidget
*
widget
,
const
gchar
*
filename
)
{
gchar
*
found_filename
=
NULL
;
GdkColormap
*
colormap
;
GdkPixmap
*
gdkpixmap
;
GdkBitmap
*
mask
;
GtkWidget
*
pixmap
;
GList
*
elem
;
if
(
!
filename
||
!
filename
[
0
])
return
create_dummy_pixmap
(
widget
);
/* We first try any pixmaps directories set by the application. */
elem
=
pixmaps_directories
;
while
(
elem
)
{
found_filename
=
check_file_exists
((
gchar
*
)
elem
->
data
,
filename
);
if
(
found_filename
)
break
;
elem
=
elem
->
next
;
}
/* If we haven't found the pixmap, try the source directory. */
if
(
!
found_filename
)
{
found_filename
=
check_file_exists
(
"../../../share"
,
filename
);
}
if
(
!
found_filename
)
{
g_warning
(
_
(
"Couldn't find pixmap file: %s"
),
filename
);
return
create_dummy_pixmap
(
widget
);
}
colormap
=
gtk_widget_get_colormap
(
widget
);
gdkpixmap
=
gdk_pixmap_colormap_create_from_xpm
(
NULL
,
colormap
,
&
mask
,
NULL
,
found_filename
);
if
(
gdkpixmap
==
NULL
)
{
g_warning
(
_
(
"Error loading pixmap file: %s"
),
found_filename
);
g_free
(
found_filename
);
return
create_dummy_pixmap
(
widget
);
}
g_free
(
found_filename
);
pixmap
=
gtk_pixmap_new
(
gdkpixmap
,
mask
);
gdk_pixmap_unref
(
gdkpixmap
);
gdk_bitmap_unref
(
mask
);
return
pixmap
;
}
/* This is an internally used function to check if a pixmap file exists. */
static
gchar
*
check_file_exists
(
const
gchar
*
directory
,
const
gchar
*
filename
)
{
gchar
*
full_filename
;
struct
stat
s
;
gint
status
;
full_filename
=
(
gchar
*
)
g_malloc
(
strlen
(
directory
)
+
1
+
strlen
(
filename
)
+
1
);
strcpy
(
full_filename
,
directory
);
strcat
(
full_filename
,
G_DIR_SEPARATOR_S
);
strcat
(
full_filename
,
filename
);
status
=
stat
(
full_filename
,
&
s
);
if
(
status
==
0
&&
S_ISREG
(
s
.
st_mode
))
return
full_filename
;
g_free
(
full_filename
);
return
NULL
;
}
modules/gui/familiar/support.h
deleted
100644 → 0
View file @
2c4e15bb
/*
* Created by glade, fixed by bootstrap
*/
#ifdef HAVE_CONFIG_H
# include <vlc/vlc.h>
#endif
#include <gtk/gtk.h>
/*
* Standard gettext macros.
*/
#if 0 /* Disabled by bootstrap */
# include <libintl.h>
# undef _
# define _(String) dgettext (PACKAGE, String)
# ifdef gettext_noop
# define N_(String) gettext_noop (String)
# else
# define N_(String) (String)
# endif
/* #else */
# define textdomain(String) (String)
# define gettext(String) (String)
# define dgettext(Domain,Message) (Message)
# define dcgettext(Domain,Message,Type) (Message)
# define bindtextdomain(Domain,Directory) (Domain)
# define _(String) (String)
# define N_(String) (String)
#endif
/*
* Public Functions.
*/
/*
* This function returns a widget in a component created by Glade.
* Call it with the toplevel widget in the component (i.e. a window/dialog),
* or alternatively any widget in the component, and the name of the widget
* you want returned.
*/
GtkWidget
*
lookup_widget
(
GtkWidget
*
widget
,
const
gchar
*
widget_name
);
/* get_widget() is deprecated. Use lookup_widget instead. */
#define get_widget lookup_widget
/* Use this function to set the directory containing installed pixmaps. */
void
add_pixmap_directory
(
const
gchar
*
directory
);
/*
* Private Functions.
*/
/* This is used to create the pixmaps in the interface. */
GtkWidget
*
create_pixmap
(
GtkWidget
*
widget
,
const
gchar
*
filename
);
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment