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
cc516205
Commit
cc516205
authored
Sep 10, 2008
by
Geoffroy Couprie
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
WinCE: update the interface module
parent
90d15c42
Changes
16
Hide whitespace changes
Inline
Side-by-side
Showing
16 changed files
with
481 additions
and
316 deletions
+481
-316
modules/gui/wince/Modules.am
modules/gui/wince/Modules.am
+1
-0
modules/gui/wince/dialogs.cpp
modules/gui/wince/dialogs.cpp
+5
-3
modules/gui/wince/fileinfo.cpp
modules/gui/wince/fileinfo.cpp
+10
-7
modules/gui/wince/interface.cpp
modules/gui/wince/interface.cpp
+5
-2
modules/gui/wince/iteminfo.cpp
modules/gui/wince/iteminfo.cpp
+18
-15
modules/gui/wince/menus.cpp
modules/gui/wince/menus.cpp
+2
-1
modules/gui/wince/messages.cpp
modules/gui/wince/messages.cpp
+6
-3
modules/gui/wince/open.cpp
modules/gui/wince/open.cpp
+8
-7
modules/gui/wince/playlist.cpp
modules/gui/wince/playlist.cpp
+72
-55
modules/gui/wince/preferences.cpp
modules/gui/wince/preferences.cpp
+312
-190
modules/gui/wince/preferences_widgets.cpp
modules/gui/wince/preferences_widgets.cpp
+13
-13
modules/gui/wince/subtitles.cpp
modules/gui/wince/subtitles.cpp
+5
-5
modules/gui/wince/timer.cpp
modules/gui/wince/timer.cpp
+5
-2
modules/gui/wince/video.cpp
modules/gui/wince/video.cpp
+4
-3
modules/gui/wince/wince.cpp
modules/gui/wince/wince.cpp
+11
-6
modules/gui/wince/wince_rc.rc
modules/gui/wince/wince_rc.rc
+4
-4
No files found.
modules/gui/wince/Modules.am
View file @
cc516205
...
...
@@ -23,6 +23,7 @@ SOURCES_wince = \
$(NULL)
EXTRA_DIST += \
wince_rc.rc \
bitmaps/vlc16x16.ico \
bitmaps/toolbar1.bmp \
bitmaps/toolbar2.bmp \
...
...
modules/gui/wince/dialogs.cpp
View file @
cc516205
...
...
@@ -32,6 +32,7 @@
#include <vlc_common.h>
#include <vlc_aout.h>
#include <vlc_interface.h>
#include <vlc_playlist.h>
#include "wince.h"
...
...
@@ -330,7 +331,7 @@ void DialogsProvider::OnOpenFileSimple( int i_arg )
{
OPENFILENAME
ofn
;
TCHAR
szFile
[
MAX_PATH
]
=
_T
(
"
\0
"
);
static
TCHAR
szFilter
[]
=
_T
(
"All (*.*)
\0
*.*
\0
"
);
static
TCHAR
szFilter
[]
=
_T
(
"
wav (*.wav)
\0
*.wav
\0
mp3 (*.mp3 *.mpga)
\0
*.mp3;*.mpga
\0
All (*.*)
\0
*.*
\0
"
);
playlist_t
*
p_playlist
=
pl_Yield
(
p_intf
);
if
(
p_playlist
==
NULL
)
return
;
...
...
@@ -363,7 +364,8 @@ void DialogsProvider::OnOpenFileSimple( int i_arg )
{
char
*
psz_filename
=
_TOMB
(
ofn
.
lpstrFile
);
playlist_Add
(
p_playlist
,
psz_filename
,
psz_filename
,
PLAYLIST_APPEND
|
(
i_arg
?
PLAYLIST_GO
:
0
),
PLAYLIST_END
);
PLAYLIST_APPEND
|
(
i_arg
?
PLAYLIST_GO
:
0
),
PLAYLIST_END
,
TRUE
,
FALSE
);
}
pl_Release
(
p_intf
);
...
...
@@ -423,7 +425,7 @@ void DialogsProvider::OnOpenDirectory( int i_arg )
char
*
psz_filename
=
_TOMB
(
psz_result
);
playlist_Add
(
p_playlist
,
psz_filename
,
psz_filename
,
PLAYLIST_APPEND
|
(
i_arg
?
PLAYLIST_GO
:
0
),
PLAYLIST_END
);
PLAYLIST_END
,
TRUE
,
FALSE
);
}
p_malloc
->
Free
(
pidl
);
}
...
...
modules/gui/wince/fileinfo.cpp
View file @
cc516205
...
...
@@ -31,6 +31,7 @@
#include <vlc_common.h>
#include <vlc_interface.h>
#include <vlc_input.h>
#include "wince.h"
...
...
@@ -119,8 +120,10 @@ void FileInfo::UpdateFileInfo()
tvi
.
mask
=
TVIF_TEXT
|
TVIF_IMAGE
|
TVIF_SELECTEDIMAGE
|
TVIF_PARAM
;
// Set the text of the item.
tvi
.
pszText
=
_FROMMB
(
p_input
->
input
.
p_item
->
psz_name
);
// Set the text of the item. Not right, but I don't know yet how to handle this
//tvi.pszText = _FROMMB( p_input->input.p_item->psz_name ); <- old line
input_item_t
*
inp_item
=
input_item_GetById
(
p_input
,
1
);
tvi
.
pszText
=
_FROMMB
(
input_item_GetName
(
inp_item
)
);
tvi
.
cchTextMax
=
_tcslen
(
tvi
.
pszText
);
// Save the heading level in the item's application-defined data area
...
...
@@ -135,13 +138,13 @@ void FileInfo::UpdateFileInfo()
hPrevRootItem
=
hPrev
;
vlc_mutex_lock
(
&
p_input
->
input
.
p_item
->
lock
);
for
(
int
i
=
0
;
i
<
p_input
->
input
.
p_item
->
i_categories
;
i
++
)
vlc_mutex_lock
(
&
in
p_item
->
lock
);
for
(
int
i
=
0
;
i
<
in
p_item
->
i_categories
;
i
++
)
{
info_category_t
*
p_cat
=
p_input
->
input
.
p_item
->
pp_categories
[
i
];
info_category_t
*
p_cat
=
in
p_item
->
pp_categories
[
i
];
// Set the text of the item.
tvi
.
pszText
=
_FROMMB
(
p_input
->
input
.
p_item
->
psz_name
);
tvi
.
pszText
=
_FROMMB
(
in
p_item
->
psz_name
);
tvi
.
cchTextMax
=
_tcslen
(
tvi
.
pszText
);
// Save the heading level in the item's application-defined data area
...
...
@@ -176,7 +179,7 @@ void FileInfo::UpdateFileInfo()
TreeView_Expand
(
hwndTV
,
hPrevLev2Item
,
TVE_EXPANDPARTIAL
|
TVE_EXPAND
);
}
vlc_mutex_unlock
(
&
p_input
->
input
.
p_item
->
lock
);
vlc_mutex_unlock
(
&
in
p_item
->
lock
);
TreeView_Expand
(
hwndTV
,
hPrevRootItem
,
TVE_EXPANDPARTIAL
|
TVE_EXPAND
);
...
...
modules/gui/wince/interface.cpp
View file @
cc516205
...
...
@@ -37,8 +37,11 @@
#include <vlc_aout.h>
#include <vlc_vout.h>
#include <vlc_interface.h>
#include <vlc_input.h>
#include <vlc_playlist.h>
#include "wince.h"
#define INT64_C(val) val##LL
#include <windowsx.h>
#include <commctrl.h>
...
...
@@ -501,7 +504,7 @@ LRESULT Interface::WndProc( HWND hwnd, UINT msg, WPARAM wp, LPARAM lp )
{
string
about
=
(
string
)
"VLC media player "
PACKAGE_VERSION
+
_
(
"
\n
(WinCE interface)
\n\n
"
)
+
_
(
"(c) 1996-200
6
- the VideoLAN Team
\n\n
"
)
+
_
(
"(c) 1996-200
8
- the VideoLAN Team
\n\n
"
)
+
_
(
"Compiled by "
)
+
VLC_CompileBy
()
+
"@"
+
VLC_CompileHost
()
+
"."
+
VLC_CompileDomain
()
+
".
\n
"
+
_
(
"Compiler: "
)
+
VLC_Compiler
()
+
".
\n
"
+
...
...
@@ -640,7 +643,7 @@ void Interface::OnPlayStream( void )
playlist_t
*
p_playlist
=
pl_Yield
(
p_intf
);
if
(
p_playlist
==
NULL
)
return
;
if
(
p_playlist
->
i_size
)
if
(
!
playlist_IsEmpty
(
p_playlist
)
)
{
vlc_value_t
state
;
...
...
modules/gui/wince/iteminfo.cpp
View file @
cc516205
...
...
@@ -31,6 +31,7 @@
#include <vlc_common.h>
#include <vlc_interface.h>
#include <vlc_playlist.h>
#include "wince.h"
...
...
@@ -71,6 +72,7 @@ LRESULT ItemInfoDialog::WndProc( HWND hwnd, UINT msg, WPARAM wp, LPARAM lp )
SHMENUBARINFO
mbi
;
INITCOMMONCONTROLSEX
iccex
;
RECT
rcClient
;
char
*
psz_uri
;
switch
(
msg
)
{
...
...
@@ -104,7 +106,7 @@ LRESULT ItemInfoDialog::WndProc( HWND hwnd, UINT msg, WPARAM wp, LPARAM lp )
WS_CHILD
|
WS_VISIBLE
|
SS_RIGHT
,
0
,
10
,
60
,
15
,
hwnd
,
NULL
,
hInst
,
NULL
);
char
*
psz_uri
=
input_item_GetURI
(
&
p_item
->
input
);
psz_uri
=
input_item_GetURI
(
p_item
->
p_
input
);
uri_text
=
CreateWindow
(
_T
(
"EDIT"
),
_FROMMB
(
psz_uri
),
WS_CHILD
|
WS_VISIBLE
|
WS_BORDER
|
SS_LEFT
|
ES_AUTOHSCROLL
,
70
,
10
-
3
,
rcClient
.
right
-
70
-
10
,
15
+
6
,
hwnd
,
0
,
hInst
,
0
);
...
...
@@ -117,7 +119,7 @@ LRESULT ItemInfoDialog::WndProc( HWND hwnd, UINT msg, WPARAM wp, LPARAM lp )
hwnd
,
NULL
,
hInst
,
NULL
);
name_text
=
CreateWindow
(
_T
(
"EDIT"
),
_FROMMB
(
p_item
->
input
.
psz_name
),
_FROMMB
(
p_item
->
p_input
->
psz_name
),
WS_CHILD
|
WS_VISIBLE
|
WS_BORDER
|
SS_LEFT
|
ES_AUTOHSCROLL
,
70
,
10
+
15
+
10
-
3
,
rcClient
.
right
-
70
-
10
,
15
+
6
,
hwnd
,
NULL
,
hInst
,
NULL
);
...
...
@@ -134,7 +136,8 @@ LRESULT ItemInfoDialog::WndProc( HWND hwnd, UINT msg, WPARAM wp, LPARAM lp )
hwnd
,
NULL
,
hInst
,
NULL
);
SendMessage
(
enabled_checkbox
,
BM_SETCHECK
,
p_item
->
b_enabled
?
BST_CHECKED
:
BST_UNCHECKED
,
0
);
(
p_item
->
i_flags
&
PLAYLIST_DBL_FLAG
)
?
BST_UNCHECKED
:
BST_CHECKED
,
0
);
/* Treeview */
iccex
.
dwSize
=
sizeof
(
INITCOMMONCONTROLSEX
);
...
...
@@ -190,7 +193,7 @@ LRESULT ItemInfoDialog::WndProc( HWND hwnd, UINT msg, WPARAM wp, LPARAM lp )
tvi
.
mask
=
TVIF_TEXT
|
TVIF_IMAGE
|
TVIF_SELECTEDIMAGE
|
TVIF_PARAM
;
// Set the text of the item.
tvi
.
pszText
=
_FROMMB
(
p_item
->
input
.
psz_name
);
tvi
.
pszText
=
_FROMMB
(
p_item
->
p_input
->
psz_name
);
tvi
.
cchTextMax
=
_tcslen
(
tvi
.
pszText
);
// Save the heading level in the item's application-defined data area
...
...
@@ -204,13 +207,13 @@ LRESULT ItemInfoDialog::WndProc( HWND hwnd, UINT msg, WPARAM wp, LPARAM lp )
hPrevRootItem
=
hPrev
;
/* Rebuild the tree */
vlc_mutex_lock
(
&
p_item
->
input
.
lock
);
for
(
int
i
=
0
;
i
<
p_item
->
input
.
i_categories
;
i
++
)
vlc_mutex_lock
(
&
p_item
->
p_input
->
lock
);
for
(
int
i
=
0
;
i
<
p_item
->
p_input
->
i_categories
;
i
++
)
{
info_category_t
*
p_cat
=
p_item
->
input
.
pp_categories
[
i
];
info_category_t
*
p_cat
=
p_item
->
p_input
->
pp_categories
[
i
];
// Set the text of the item.
tvi
.
pszText
=
_FROMMB
(
p_item
->
input
.
psz_name
);
tvi
.
pszText
=
_FROMMB
(
p_item
->
p_input
->
psz_name
);
tvi
.
cchTextMax
=
_tcslen
(
tvi
.
pszText
);
// Save the heading level in the item's application-defined data area
...
...
@@ -246,7 +249,7 @@ LRESULT ItemInfoDialog::WndProc( HWND hwnd, UINT msg, WPARAM wp, LPARAM lp )
TreeView_Expand
(
info_tree
,
hPrevLev2Item
,
TVE_EXPANDPARTIAL
|
TVE_EXPAND
);
}
vlc_mutex_unlock
(
&
p_item
->
input
.
lock
);
vlc_mutex_unlock
(
&
p_item
->
p_input
->
lock
);
TreeView_Expand
(
info_tree
,
hPrevRootItem
,
TVE_EXPANDPARTIAL
|
TVE_EXPAND
);
}
...
...
@@ -260,14 +263,14 @@ void ItemInfoDialog::OnOk()
TCHAR
psz_name
[
MAX_PATH
];
Edit_GetText
(
name_text
,
psz_name
,
MAX_PATH
);
input_item_SetName
(
&
p_item
->
input
,
_TOMB
(
psz_name
)
);
input_item_SetName
(
p_item
->
p_
input
,
_TOMB
(
psz_name
)
);
TCHAR
psz_uri
[
MAX_PATH
];
Edit_GetText
(
uri_text
,
psz_uri
,
MAX_PATH
);
input_item_SetURI
(
&
p_item
->
input
,
_TOMB
(
psz_uri
)
);
input_item_SetURI
(
p_item
->
p_
input
,
_TOMB
(
psz_uri
)
);
vlc_mutex_lock
(
&
p_item
->
input
.
lock
);
bool
b_old_enabled
=
p_item
->
b_enabled
;
vlc_mutex_lock
(
&
p_item
->
p_input
->
lock
);
bool
b_old_enabled
=
!
(
p_item
->
i_flags
&
PLAYLIST_DBL_FLAG
)
;
playlist_t
*
p_playlist
=
pl_Yield
(
p_intf
);
if
(
p_playlist
!=
NULL
)
...
...
@@ -276,7 +279,7 @@ void ItemInfoDialog::OnOk()
pl_Release
(
p_intf
);
}
p_item
->
b_enabled
=
(
b_state
&
BST_CHECKED
)
?
true
:
false
;
p_item
->
i_flags
|=
(
b_state
&
BST_CHECKED
)
?
false
:
PLAYLIST_DBL_FLAG
;
vlc_mutex_unlock
(
&
p_item
->
input
.
lock
);
vlc_mutex_unlock
(
&
p_item
->
p_input
->
lock
);
}
modules/gui/wince/menus.cpp
View file @
cc516205
...
...
@@ -31,6 +31,7 @@
#include <vlc_common.h>
#include <vlc_interface.h>
#include <vlc_playlist.h>
#include "wince.h"
...
...
@@ -222,7 +223,7 @@ void PopupMenu( intf_thread_t *p_intf, HWND p_parent, POINT point )
else
{
playlist_t
*
p_playlist
=
pl_Yield
(
p_intf
);
if
(
p_playlist
&&
p_playlist
->
i_size
)
if
(
p_playlist
&&
!
playlist_IsEmpty
(
p_playlist
)
)
{
AppendMenu
(
hmenu
,
MF_SEPARATOR
,
0
,
_T
(
""
)
);
AppendMenu
(
hmenu
,
MF_STRING
,
PlayStream_Event
,
_T
(
"Play"
)
);
...
...
modules/gui/wince/messages.cpp
View file @
cc516205
...
...
@@ -206,17 +206,20 @@ void Messages::UpdateLog()
for
(
i_start
=
p_sub
->
i_start
;
i_start
!=
i_stop
;
i_start
=
(
i_start
+
1
)
%
VLC_MSG_QSIZE
)
{
vlc_value_t
val
;
var_Get
(
p_intf
->
p_libvlc
,
"verbose"
,
&
val
);
switch
(
p_sub
->
p_msg
[
i_start
].
i_type
)
{
case
VLC_MSG_ERR
:
case
VLC_MSG_INFO
:
if
(
p_intf
->
p_libvlc_global
->
i_verbose
<
0
)
continue
;
if
(
val
.
i_int
<
0
)
continue
;
break
;
case
VLC_MSG_WARN
:
if
(
p_intf
->
p_libvlc_global
->
i_verbose
<
1
)
continue
;
if
(
val
.
i_int
<
1
)
continue
;
break
;
case
VLC_MSG_DBG
:
if
(
p_intf
->
p_libvlc_global
->
i_verbose
<
2
)
continue
;
if
(
val
.
i_int
<
2
)
continue
;
break
;
}
...
...
modules/gui/wince/open.cpp
View file @
cc516205
...
...
@@ -31,6 +31,7 @@
#include <vlc_common.h>
#include <vlc_interface.h>
#include <vlc_playlist.h>
#include "wince.h"
...
...
@@ -601,32 +602,32 @@ void OpenDialog::OnOk()
GetWindowText
(
mrl_combo
,
psz_text
,
2048
);
int
i_args
;
char
**
pp_args
=
vlc_parse_cmdline
(
_TOMB
(
psz_text
),
&
i_args
);
/*
char **pp_args = vlc_parse_cmdline( _TOMB(psz_text), &i_args );
ComboBox_AddString( mrl_combo, psz_text );
if( ComboBox_GetCount( mrl_combo ) > 10 )
ComboBox_DeleteString( mrl_combo, 0 );
ComboBox_SetCurSel
(
mrl_combo
,
ComboBox_GetCount
(
mrl_combo
)
-
1
);
ComboBox_SetCurSel( mrl_combo, ComboBox_GetCount( mrl_combo ) - 1 );
*/
/* Update the playlist */
playlist_t
*
p_playlist
=
pl_Yield
(
p_intf
);
if
(
p_playlist
==
NULL
)
return
;
for
(
int
i
=
0
;
i
<
i_args
;
i
++
)
/*
for( int i = 0; i < i_args; i++ )
{
bool b_start = !i && i_open_arg;
playlist_item_t *p_item =
playlist_ItemNew( p_playlist, pp_args[i], pp_args[i] );
/* Insert options */
while
(
i
+
1
<
i_args
&&
pp_args
[
i
+
1
][
0
]
==
':'
)
/*
while( i + 1 < i_args && pp_args[i + 1][0] == ':' )
{
playlist_ItemAddOption( p_item, pp_args[i + 1] );
i++;
}
}
*/
/* Get the options from the subtitles dialog */
if
(
(
SendMessage
(
subsfile_checkbox
,
BM_GETCHECK
,
0
,
0
)
&
BST_CHECKED
)
/*
if( (SendMessage( subsfile_checkbox, BM_GETCHECK, 0, 0 ) & BST_CHECKED)
&& subsfile_mrl.size() )
{
for( int j = 0; j < (int)subsfile_mrl.size(); j++ )
...
...
@@ -654,7 +655,7 @@ void OpenDialog::OnOk()
{
free( pp_args[i_args] );
if( !i_args ) free( pp_args );
}
}
*/
pl_Release
(
p_intf
);
}
...
...
modules/gui/wince/playlist.cpp
View file @
cc516205
...
...
@@ -31,6 +31,7 @@
#include <vlc_common.h>
#include <vlc_interface.h>
#include <vlc_playlist.h>
#include "wince.h"
...
...
@@ -80,21 +81,21 @@ enum
// The TBBUTTON structure contains information the toolbar buttons.
static
TBBUTTON
tbButton2
[]
=
{
{
0
,
ID_MANAGE_OPENPL
,
TBSTATE_ENABLED
,
TBSTYLE_BUTTON
},
{
1
,
ID_MANAGE_SAVEPL
,
TBSTATE_ENABLED
,
TBSTYLE_BUTTON
},
{
0
,
0
,
TBSTATE_ENABLED
,
TBSTYLE_SEP
},
{
2
,
ID_MANAGE_ADDFILE
,
TBSTATE_ENABLED
,
TBSTYLE_BUTTON
},
{
3
,
ID_MANAGE_ADDMRL
,
TBSTATE_ENABLED
,
TBSTYLE_BUTTON
},
{
4
,
ID_SEL_DELETE
,
TBSTATE_ENABLED
,
TBSTYLE_BUTTON
},
{
0
,
0
,
TBSTATE_ENABLED
,
TBSTYLE_SEP
},
{
5
,
Infos_Event
,
TBSTATE_ENABLED
,
TBSTYLE_BUTTON
},
{
0
,
0
,
TBSTATE_ENABLED
,
TBSTYLE_SEP
},
{
6
,
Up_Event
,
TBSTATE_ENABLED
,
TBSTYLE_BUTTON
},
{
7
,
Down_Event
,
TBSTATE_ENABLED
,
TBSTYLE_BUTTON
},
{
0
,
0
,
TBSTATE_ENABLED
,
TBSTYLE_SEP
},
{
8
,
Random_Event
,
TBSTATE_ENABLED
,
TBSTYLE_CHECK
},
{
9
,
Loop_Event
,
TBSTATE_ENABLED
,
TBSTYLE_CHECK
},
{
10
,
Repeat_Event
,
TBSTATE_ENABLED
,
TBSTYLE_CHECK
}
{
0
,
ID_MANAGE_OPENPL
,
TBSTATE_ENABLED
,
TBSTYLE_BUTTON
},
{
1
,
ID_MANAGE_SAVEPL
,
TBSTATE_ENABLED
,
TBSTYLE_BUTTON
},
{
0
,
0
,
TBSTATE_ENABLED
,
TBSTYLE_SEP
},
{
2
,
ID_MANAGE_ADDFILE
,
TBSTATE_ENABLED
,
TBSTYLE_BUTTON
},
{
3
,
ID_MANAGE_ADDMRL
,
TBSTATE_ENABLED
,
TBSTYLE_BUTTON
},
{
4
,
ID_SEL_DELETE
,
TBSTATE_ENABLED
,
TBSTYLE_BUTTON
},
{
0
,
0
,
TBSTATE_ENABLED
,
TBSTYLE_SEP
},
{
5
,
Infos_Event
,
TBSTATE_ENABLED
,
TBSTYLE_BUTTON
},
{
0
,
0
,
TBSTATE_ENABLED
,
TBSTYLE_SEP
},
{
6
,
Up_Event
,
TBSTATE_ENABLED
,
TBSTYLE_BUTTON
},
{
7
,
Down_Event
,
TBSTATE_ENABLED
,
TBSTYLE_BUTTON
},
{
0
,
0
,
TBSTATE_ENABLED
,
TBSTYLE_SEP
},
{
8
,
Random_Event
,
TBSTATE_ENABLED
,
TBSTYLE_CHECK
},
{
9
,
Loop_Event
,
TBSTATE_ENABLED
,
TBSTYLE_CHECK
},
{
10
,
Repeat_Event
,
TBSTATE_ENABLED
,
TBSTYLE_CHECK
}
};
// Toolbar ToolTips
...
...
@@ -518,21 +519,21 @@ LRESULT Playlist::ProcessCustomDraw( LPARAM lParam )
case
CDDS_ITEMPREPAINT
:
//Before an item is drawn
playlist_t
*
p_playlist
=
pl_Yield
(
p_intf
);
if
(
p_playlist
==
NULL
)
return
CDRF_DODEFAULT
;
if
(
(
int
)
lplvcd
->
nmcd
.
dwItemSpec
==
p_playlist
->
i_index
)
if
(
(
int
)
lplvcd
->
nmcd
.
dwItemSpec
==
p_playlist
->
i_
current_
index
)
{
lplvcd
->
clrText
=
RGB
(
255
,
0
,
0
);
pl_Release
(
p_intf
);
return
CDRF_NEWFONT
;
}
playlist_item_t
*
p_item
=
playlist_ItemGetBy
Pos
(
p_playlist
,
(
int
)
lplvcd
->
nmcd
.
dwItemSpec
);
playlist_item_t
*
p_item
=
playlist_ItemGetBy
Id
(
p_playlist
,
(
int
)
lplvcd
->
nmcd
.
dwItemSpec
,
FALSE
);
if
(
!
p_item
)
{
pl_Release
(
p_intf
);
return
CDRF_DODEFAULT
;
}
if
(
p_item
->
b_enabled
==
false
)
if
(
p_item
->
i_flags
&
PLAYLIST_DBL_FLAG
)
{
lplvcd
->
clrText
=
RGB
(
192
,
192
,
192
);
pl_Release
(
p_intf
);
...
...
@@ -594,13 +595,13 @@ void Playlist::UpdatePlaylist()
/* Update the colour of items */
vlc_object_lock
(
p_playlist
);
if
(
p_intf
->
p_sys
->
i_playing
!=
p
_playlist
->
i_index
)
if
(
p_intf
->
p_sys
->
i_playing
!=
p
laylist_CurrentSize
(
p_playlist
)
)
{
// p_playlist->i_index in RED
Rebuild
();
// if exists, p_intf->p_sys->i_playing in BLACK
p_intf
->
p_sys
->
i_playing
=
p_playlist
->
i_index
;
p_intf
->
p_sys
->
i_playing
=
p_playlist
->
i_
current_
index
;
}
vlc_object_unlock
(
p_playlist
);
...
...
@@ -623,8 +624,12 @@ void Playlist::Rebuild()
/* ...and rebuild it */
vlc_object_lock
(
p_playlist
);
for
(
int
i
=
0
;
i
<
p_playlist
->
i_size
;
i
++
)
playlist_item_t
*
p_root
=
p_playlist
->
p_local_onelevel
;
playlist_item_t
*
p_child
=
NULL
;
for
(
int
i
=
0
;
i
<
playlist_NodeChildrenCount
(
p_playlist
,
p_root
);
i
++
)
{
p_child
=
playlist_GetNextLeaf
(
p_playlist
,
p_root
,
p_child
,
FALSE
,
FALSE
);
LVITEM
lv
;
lv
.
mask
=
LVIF_TEXT
;
lv
.
pszText
=
_T
(
""
);
...
...
@@ -633,8 +638,9 @@ void Playlist::Rebuild()
lv
.
iItem
=
i
;
ListView_InsertItem
(
hListView
,
&
lv
);
ListView_SetItemText
(
hListView
,
lv
.
iItem
,
0
,
_FROMMB
(
p_playlist
->
pp_items
[
i
]
->
input
.
psz_name
)
);
UpdateItem
(
i
);
_FROMMB
(
p_child
->
p_input
->
psz_name
)
);
UpdateItem
(
p_child
->
i_id
);
}
vlc_object_unlock
(
p_playlist
);
...
...
@@ -657,7 +663,7 @@ void Playlist::UpdateItem( int i )
if
(
p_playlist
==
NULL
)
return
;
playlist_item_t
*
p_item
=
playlist_ItemGetBy
Pos
(
p_playlist
,
i
);
playlist_item_t
*
p_item
=
playlist_ItemGetBy
Id
(
p_playlist
,
i
,
FALSE
);
if
(
!
p_item
)
{
...
...
@@ -665,17 +671,19 @@ void Playlist::UpdateItem( int i )
return
;
}
ListView_SetItemText
(
hListView
,
i
,
0
,
_FROMMB
(
p_item
->
input
.
psz_name
)
);
ListView_SetItemText
(
hListView
,
i
,
0
,
_FROMMB
(
p_item
->
p_input
->
psz_name
)
);
ListView_SetItemText
(
hListView
,
i
,
1
,
_FROMMB
(
input_item_GetInfo
(
&
p_item
->
input
,
_FROMMB
(
input_item_GetInfo
(
p_item
->
p_
input
,
_
(
"General"
)
,
_
(
"Author"
)
)
)
);
char
psz_duration
[
MSTRTIME_MAX_SIZE
];
mtime_t
dur
=
input_item_GetDuration
(
p_item
);
mtime_t
dur
=
input_item_GetDuration
(
p_item
->
p_input
);
if
(
dur
!=
-
1
)
secstotimestr
(
psz_duration
,
dur
/
1000000
);
else
memcpy
(
psz_duration
,
"-:--:--"
,
sizeof
(
"-:--:--"
)
);
ListView_SetItemText
(
hListView
,
i
,
3
,
_FROMMB
(
psz_duration
)
);
ListView_SetItemText
(
hListView
,
i
,
2
,
_FROMMB
(
psz_duration
)
);
pl_Release
(
p_intf
);
}
...
...
@@ -688,7 +696,7 @@ void Playlist::DeleteItem( int item )
playlist_t
*
p_playlist
=
pl_Yield
(
p_intf
);
if
(
p_playlist
==
NULL
)
return
;
playlist_Delete
(
p_playlist
,
item
);
playlist_Delete
FromInput
(
p_playlist
,
item
,
FALSE
);
ListView_DeleteItem
(
hListView
,
item
);
pl_Release
(
p_intf
);
...
...
@@ -746,7 +754,7 @@ static void OnSaveCB( intf_dialog_args_t *p_arg )
psz_export
=
"export-pls"
;
else
psz_export
=
"export-m3u"
;
playlist_Export
(
p_playlist
,
p_arg
->
psz_results
[
0
],
psz_export
);
playlist_Export
(
p_playlist
,
p_arg
->
psz_results
[
0
],
p
_playlist
->
p_local_onelevel
,
p
sz_export
);
pl_Release
(
p_intf
);
}
}
...
...
@@ -809,8 +817,8 @@ void Playlist::OnEnableSelection()
if
(
ListView_GetItemState
(
hListView
,
item
,
LVIS_SELECTED
)
)
{
playlist_item_t
*
p_item
=
playlist_ItemGetBy
Pos
(
p_playlist
,
item
);
p
laylist_Enable
(
p_playlist
,
p_item
)
;
playlist_ItemGetBy
Id
(
p_playlist
,
item
,
FALSE
);
p
_item
->
i_flags
^=
PLAYLIST_DBL_FLAG
;
UpdateItem
(
item
);
}
}
...
...
@@ -829,8 +837,8 @@ void Playlist::OnDisableSelection()
{
/*XXX*/
playlist_item_t
*
p_item
=
playlist_ItemGetBy
Pos
(
p_playlist
,
item
);
p
laylist_Disable
(
p_playlist
,
p_item
)
;
playlist_ItemGetBy
Id
(
p_playlist
,
item
,
FALSE
);
p
_item
->
i_flags
|=
PLAYLIST_DBL_FLAG
;
UpdateItem
(
item
);
}
}
...
...
@@ -851,7 +859,7 @@ void Playlist::OnActivateItem( int i_item )
playlist_t
*
p_playlist
=
pl_Yield
(
p_intf
);
if
(
p_playlist
==
NULL
)
return
;
playlist_
Goto
(
p_playlist
,
i_item
);
playlist_
Skip
(
p_playlist
,
i_item
-
p_playlist
->
i_current_index
);
pl_Release
(
p_intf
);
}
...
...
@@ -862,7 +870,7 @@ void Playlist::ShowInfos( HWND hwnd, int i_item )
if
(
p_playlist
==
NULL
)
return
;
vlc_object_lock
(
p_playlist
);
playlist_item_t
*
p_item
=
playlist_ItemGetBy
Pos
(
p_playlist
,
i_item
);
playlist_item_t
*
p_item
=
playlist_ItemGetBy
Id
(
p_playlist
,
i_item
,
true
);
vlc_object_unlock
(
p_playlist
);
if
(
p_item
)
...
...
@@ -889,9 +897,9 @@ void Playlist::OnUp()
long
i_item
=
ListView_GetNextItem
(
hListView
,
-
1
,
LVIS_SELECTED
|
LVNI_ALL
);
if
(
i_item
>
0
&&
i_item
<
p
_playlist
->
i_size
)
if
(
i_item
>
0
&&
i_item
<
p
laylist_CurrentSize
(
p_playlist
)
)
{
playlist_
Move
(
p_playlist
,
i_item
,
i_item
-
1
);
playlist_
Prev
(
p_playlist
);
if
(
i_item
>
1
)
{
ListView_SetItemState
(
hListView
,
i_item
-
1
,
LVIS_FOCUSED
,
...
...
@@ -917,9 +925,9 @@ void Playlist::OnDown()
long
i_item
=
ListView_GetNextItem
(
hListView
,
-
1
,
LVIS_SELECTED
|
LVNI_ALL
);
if
(
i_item
>=
0
&&
i_item
<
p
_playlist
->
i_size
-
1
)
if
(
i_item
>=
0
&&
i_item
<
p
laylist_CurrentSize
(
p_playlist
)
-
1
)
{
playlist_
Move
(
p_playlist
,
i_item
,
i_item
+
2
);
playlist_
Next
(
p_playlist
);
ListView_SetItemState
(
hListView
,
i_item
+
1
,
LVIS_FOCUSED
,
LVIS_STATEIMAGEMASK
);
}
...
...
@@ -981,19 +989,24 @@ void Playlist::OnSort( UINT event )
switch
(
event
)
{
case
ID_SORT_TITLE
:
playlist_SortTitle
(
p_playlist
,
ORDER_NORMAL
);
playlist_RecursiveNodeSort
(
p_playlist
,
p_playlist
->
p_root_onelevel
,
SORT_TITLE
,
ORDER_NORMAL
);
break
;
case
ID_SORT_RTITLE
:
playlist_SortTitle
(
p_playlist
,
ORDER_REVERSE
);
playlist_RecursiveNodeSort
(
p_playlist
,
p_playlist
->
p_root_onelevel
,
SORT_TITLE
,
ORDER_REVERSE
);
break
;
case
ID_SORT_AUTHOR
:
playlist_SortAuthor
(
p_playlist
,
ORDER_NORMAL
);
playlist_RecursiveNodeSort
(
p_playlist
,
p_playlist
->
p_root_onelevel
,
SORT_ARTIST
,
ORDER_NORMAL
);
break
;
case
ID_SORT_RAUTHOR
:
playlist_SortAuthor
(
p_playlist
,
ORDER_REVERSE
);
playlist_RecursiveNodeSort
(
p_playlist
,
p_playlist
->
p_root_onelevel
,
SORT_ARTIST
,
ORDER_REVERSE
);
break
;
case
ID_SORT_SHUFFLE
:
playlist_Sort
(
p_playlist
,
SORT_RANDOM
,
ORDER_NORMAL
);
playlist_RecursiveNodeSort
(
p_playlist
,
p_playlist
->
p_root_onelevel
,
SORT_RANDOM
,
ORDER_NORMAL
);
break
;
}
...
...
@@ -1014,24 +1027,28 @@ void Playlist::OnColSelect( int iSubItem )
case
0
:
if
(
i_title_sorted
!=
1
)
{
playlist_SortTitle
(
p_playlist
,
ORDER_NORMAL
);
playlist_RecursiveNodeSort
(
p_playlist
,
p_playlist
->
p_root_onelevel
,
SORT_TITLE
,
ORDER_NORMAL
);
i_title_sorted
=
1
;
}
else
{
playlist_SortTitle
(
p_playlist
,
ORDER_REVERSE
);
playlist_RecursiveNodeSort
(
p_playlist
,
p_playlist
->
p_root_onelevel
,
SORT_TITLE
,
ORDER_REVERSE
);
i_title_sorted
=
-
1
;
}
break
;
case
1
:
if
(
i_author_sorted
!=
1
)
{
playlist_SortAuthor
(
p_playlist
,
ORDER_NORMAL
);
playlist_RecursiveNodeSort
(
p_playlist
,
p_playlist
->
p_root_onelevel
,
SORT_ARTIST
,
ORDER_NORMAL
);
i_author_sorted
=
1
;
}
else
{
playlist_SortAuthor
(
p_playlist
,
ORDER_REVERSE
);
playlist_RecursiveNodeSort
(
p_playlist
,
p_playlist
->
p_root_onelevel
,
SORT_ARTIST
,
ORDER_REVERSE
);
i_author_sorted
=
-
1
;
}
break
;
...
...
@@ -1059,7 +1076,7 @@ void Playlist::OnPopupPlay()
if
(
i_popup_item
!=
-
1
)
{
playlist_
Goto
(
p_playlist
,
i_popup_item
);
playlist_
Skip
(
p_playlist
,
i_popup_item
-
p_playlist
->
i_current_index
);
}
pl_Release
(
p_intf
);
...
...
@@ -1082,16 +1099,16 @@ void Playlist::OnPopupEna()
if
(
p_playlist
==
NULL
)
return
;
playlist_item_t
*
p_item
=
playlist_ItemGetBy
Pos
(
p_playlist
,
i_popup_item
);
playlist_ItemGetBy
Id
(
p_playlist
,
i_popup_item
,
FALSE
);
if
(
p_playlist
->
pp_items
[
i_popup_item
]
->
b_enabled
)
if
(
!
(
p_playlist
->
items
.
p_elems
[
i_popup_item
]
->
i_flags
&
PLAYLIST_DBL_FLAG
)
)
//playlist_IsEnabled( p_playlist, i_popup_item ) )
{
p
laylist_Disable
(
p_playlist
,
p_item
)
;
p
_item
->
i_flags
|=
PLAYLIST_DBL_FLAG
;
}
else
{
p
laylist_Enable
(
p_playlist
,
p_item
)
;
p
_item
->
i_flags
^=
PLAYLIST_DBL_FLAG
;
}
pl_Release
(
p_intf
);
...
...
modules/gui/wince/preferences.cpp
View file @
cc516205
...
...
@@ -44,9 +44,10 @@
#include "preferences_widgets.h"
#define GENERAL_ID 1242
#define PLUGIN_ID 1243
#define CAPABILITY_ID 1244
#define TYPE_CATEGORY 0
#define TYPE_CATSUBCAT 1
/* Category with embedded subcategory */
#define TYPE_SUBCATEGORY 2
#define TYPE_MODULE 3
/*****************************************************************************
* Event Table.
...
...
@@ -98,7 +99,7 @@ public:
PrefsPanel
()
{
}
PrefsPanel
(
HWND
parent
,
HINSTANCE
hInst
,
intf_thread_t
*
_p_intf
,
PrefsDialog
*
,
int
i_object_id
,
char
*
,
char
*
);
PrefsDialog
*
,
module_t
*
p_module
,
char
*
,
char
*
,
ConfigTreeData
*
);
virtual
~
PrefsPanel
()
{}
void
Hide
();
...
...
@@ -126,17 +127,20 @@ class ConfigTreeData
{
public:
ConfigTreeData
()
{
b_submodule
=
0
;
panel
=
NULL
;
psz_
section
=
NULL
;
ConfigTreeData
()
{
b_submodule
=
0
;
panel
=
NULL
;
psz_
name
=
NULL
;
psz_help
=
NULL
;
}
virtual
~
ConfigTreeData
()
{
delete
panel
;
free
(
psz_
section
);
free
(
psz_
name
);
free
(
psz_help
);
}
bool
b_submodule
;
PrefsPanel
*
panel
;
module_t
*
p_module
;
int
i_object_id
;
char
*
psz_section
;
int
i_subcat_id
;
int
i_type
;
char
*
psz_name
;
char
*
psz_help
;
};
...
...
@@ -318,7 +322,7 @@ PrefsTreeCtrl::PrefsTreeCtrl( intf_thread_t *_p_intf,
HINSTANCE
hInst
)
{
vlc_list_t
*
p_list
;
module_t
*
p_module
;
module_t
*
p_module
=
NULL
;
module_config_t
*
p_item
;
int
i_index
;
...
...
@@ -331,7 +335,7 @@ PrefsTreeCtrl::PrefsTreeCtrl( intf_thread_t *_p_intf,
size_t
i_capability_count
=
0
;
size_t
i_child_index
;
HTREEITEM
ca
pabilit
y_item
;
HTREEITEM
ca
tegory_item
,
subcategor
y_item
;
/* Initializations */
p_intf
=
_p_intf
;
...
...
@@ -366,9 +370,9 @@ PrefsTreeCtrl::PrefsTreeCtrl( intf_thread_t *_p_intf,
* Build a tree of the main options
*/
ConfigTreeData
*
config_data
=
new
ConfigTreeData
;
config_data
->
i_object_id
=
GENERAL_ID
;
config_data
->
psz_help
=
strdup
(
"nothing"
);
//strdup( GENERAL_HELP
);
config_data
->
psz_
section
=
strdup
(
GENERAL_TITLE
);
config_data
->
i_object_id
=
TYPE_CATEGORY
;
config_data
->
psz_help
=
strdup
(
MAIN_HELP
);
config_data
->
psz_
name
=
strdup
(
GENERAL_TITLE
);
tvi
.
pszText
=
_T
(
"General settings"
);
tvi
.
cchTextMax
=
lstrlen
(
_T
(
"General settings"
));
tvi
.
lParam
=
(
long
)
config_data
;
...
...
@@ -380,173 +384,240 @@ PrefsTreeCtrl::PrefsTreeCtrl( intf_thread_t *_p_intf,
hPrev
=
(
HTREEITEM
)
TreeView_InsertItem
(
hwndTV
,
&
tvins
);
general_item
=
hPrev
;
/* Build the categories list */
for
(
i_index
=
0
;
i_index
<
p_list
->
i_count
;
i_index
++
)
{
p_module
=
(
module_t
*
)
p_list
->
p_values
[
i_index
].
p_object
;
if
(
!
strcmp
(
p_module
->
psz_object_name
,
"main"
)
)
if
(
strcmp
(
module_GetObjName
(
p_module
),
"main"
)
==
0
)
break
;
}
/* TODO replace by
* p_module = module_GetMainModule( p_intf );
*/
if
(
i_index
<
p_list
->
i_count
)
{
unsigned
int
confsize
;
const
char
*
psz_help
;
module_config_t
*
p_config
;
/* We found the main module */
/* Enumerate config categories and store a reference so we can
* generate their config panel them when it is asked by the user. */
p_
item
=
p_module
->
p_config
;
p_
config
=
module_GetConfig
(
p_module
,
&
confsize
)
;
if
(
p_item
)
do
for
(
size_t
i
=
0
;
i
<
confsize
;
i
++
)
{
switch
(
p_item
->
i_type
)
{
case
CONFIG_HINT_CATEGORY
:
ConfigTreeData
*
config_data
=
new
ConfigTreeData
;
config_data
->
psz_section
=
strdup
(
p_item
->
psz_text
);
if
(
p_item
->
psz_longtext
)
{
config_data
->
psz_help
=
strdup
(
p_item
->
psz_longtext
);
}
else
{
config_data
->
psz_help
=
NULL
;
}
config_data
->
i_object_id
=
p_module
->
i_object_id
;
/* Add the category to the tree */
// Set the text of the item.
tvi
.
pszText
=
_FROMMB
(
p_item
->
psz_text
);
tvi
.
cchTextMax
=
_tcslen
(
tvi
.
pszText
);
tvi
.
lParam
=
(
long
)
config_data
;
tvins
.
item
=
tvi
;
tvins
.
hInsertAfter
=
hPrev
;
tvins
.
hParent
=
general_item
;
//level 3
// Add the item to the tree-view control.
hPrev
=
(
HTREEITEM
)
TreeView_InsertItem
(
hwndTV
,
&
tvins
);
/* Work on a new item */
module_config_t
*
p_item
=
p_config
+
i
;
break
;
}
}
while
(
p_item
->
i_type
!=
CONFIG_HINT_END
&&
p_item
++
);
switch
(
p_item
->
i_type
)
{
case
CONFIG_CATEGORY
:
if
(
p_item
->
value
.
i
==
-
1
)
break
;
// Don't display it
config_data
=
new
ConfigTreeData
;
config_data
->
psz_name
=
strdup
(
config_CategoryNameGet
(
p_item
->
value
.
i
)
);
psz_help
=
config_CategoryHelpGet
(
p_item
->
value
.
i
);
if
(
psz_help
)
{
config_data
->
psz_help
=
wraptext
(
strdup
(
psz_help
),
72
);
}
else
{
config_data
->
psz_help
=
NULL
;
}
config_data
->
i_type
=
TYPE_CATEGORY
;
config_data
->
i_object_id
=
p_item
->
value
.
i
;
config_data
->
p_module
=
p_module
;
tvi
.
pszText
=
_FROMMB
(
config_data
->
psz_name
);
tvi
.
cchTextMax
=
_tcslen
(
tvi
.
pszText
);
/* Add the category to the tree */
tvi
.
lParam
=
(
long
)
config_data
;
tvins
.
item
=
tvi
;
tvins
.
hInsertAfter
=
hPrev
;
tvins
.
hParent
=
general_item
;
//level 3
// Add the item to the tree-view control.
hPrev
=
(
HTREEITEM
)
TreeView_InsertItem
(
hwndTV
,
&
tvins
);
break
;
case
CONFIG_SUBCATEGORY
:
if
(
p_item
->
value
.
i
==
-
1
)
break
;
// Don't display it
/* Special case: move the "general" subcategories to their parent category */
if
(
config_data
&&
p_item
->
value
.
i
==
SUBCAT_VIDEO_GENERAL
||
p_item
->
value
.
i
==
SUBCAT_ADVANCED_MISC
||
p_item
->
value
.
i
==
SUBCAT_INPUT_GENERAL
||
p_item
->
value
.
i
==
SUBCAT_INTERFACE_GENERAL
||
p_item
->
value
.
i
==
SUBCAT_SOUT_GENERAL
||
p_item
->
value
.
i
==
SUBCAT_PLAYLIST_GENERAL
||
p_item
->
value
.
i
==
SUBCAT_AUDIO_GENERAL
)
{
config_data
->
i_type
=
TYPE_CATSUBCAT
;
config_data
->
i_subcat_id
=
p_item
->
value
.
i
;
free
(
config_data
->
psz_name
);
config_data
->
psz_name
=
strdup
(
config_CategoryNameGet
(
p_item
->
value
.
i
)
);
free
(
config_data
->
psz_help
);
const
char
*
psz_help
=
config_CategoryHelpGet
(
p_item
->
value
.
i
);
if
(
psz_help
)
{
config_data
->
psz_help
=
wraptext
(
strdup
(
psz_help
),
72
);
}
else
{
config_data
->
psz_help
=
NULL
;
}
continue
;
}
config_data
=
new
ConfigTreeData
;
config_data
->
psz_name
=
strdup
(
config_CategoryNameGet
(
p_item
->
value
.
i
)
);
psz_help
=
config_CategoryHelpGet
(
p_item
->
value
.
i
);
if
(
psz_help
)
{
config_data
->
psz_help
=
wraptext
(
strdup
(
psz_help
),
72
);
}
else
{
config_data
->
psz_help
=
NULL
;
}
config_data
->
i_type
=
TYPE_SUBCATEGORY
;
config_data
->
i_object_id
=
p_item
->
value
.
i
;
tvi
.
pszText
=
_FROMMB
(
config_data
->
psz_name
);
tvi
.
cchTextMax
=
_tcslen
(
tvi
.
pszText
);
tvi
.
lParam
=
(
long
)
config_data
;
tvins
.
item
=
tvi
;
tvins
.
hInsertAfter
=
hPrev
;
tvins
.
hParent
=
hPrev
;
// Add the item to the tree-view control.
TreeView_InsertItem
(
hwndTV
,
&
tvins
);
break
;
}
}
TreeView_SortChildren
(
hwndTV
,
general_item
,
0
);
module_PutConfig
(
p_config
);
}
/*
* Build a tree of all the plugins
*/
config_data
=
new
ConfigTreeData
;
config_data
->
i_object_id
=
PLUGIN_ID
;
config_data
->
psz_help
=
strdup
(
"nothing"
);
//strdup( PLUGIN_HELP );
config_data
->
psz_section
=
strdup
(
"nothing"
);
//strdup( PLUGIN_TITLE );
tvi
.
pszText
=
_T
(
"Modules"
);
tvi
.
cchTextMax
=
lstrlen
(
_T
(
"Modules"
));
tvi
.
lParam
=
(
long
)
config_data
;
tvins
.
item
=
tvi
;
tvins
.
hInsertAfter
=
TVI_LAST
;
tvins
.
hParent
=
TVI_ROOT
;
// Add the item to the tree-view control.
hPrev
=
(
HTREEITEM
)
TreeView_InsertItem
(
hwndTV
,
&
tvins
);
plugins_item
=
hPrev
;
i_capability_count
=
0
;
module_config_t
*
p_config
;
/*
* Build a tree of all the plugins
*/
for
(
i_index
=
0
;
i_index
<
p_list
->
i_count
;
i_index
++
)
{
i_child_index
=
0
;
/* Take every module */
p_module
=
(
module_t
*
)
p_list
->
p_values
[
i_index
].
p_object
;
/* Exclude the main module */
if
(
!
strcmp
(
p_module
->
psz_object_name
,
"main"
)
)
if
(
!
strcmp
(
module_GetObjName
(
p_module
)
,
"main"
)
)
continue
;
/* Exclude empty plugins (submodules don't have config options, they
* are stored in the parent module) */
if
(
p_module
->
b_submodule
)
p_item
=
((
module_t
*
)
p_module
->
p_parent
)
->
p_config
;
else
p_item
=
p_module
->
p_config
;
if
(
!
p_item
)
continue
;
do
unsigned
int
confsize
;
i_child_index
=
0
;
int
i_category
=
0
,
i_subcategory
=
0
,
i_options
=
0
;
bool
b_options
=
false
;
p_config
=
module_GetConfig
(
(
module_t
*
)
p_module
,
&
confsize
);
/* Loop through the configurations items */
for
(
size_t
i
=
0
;
i
<
confsize
;
i
++
)
{
module_config_t
*
p_item
=
p_config
+
i
;
if
(
p_item
->
i_type
==
CONFIG_CATEGORY
)
i_category
=
p_item
->
value
.
i
;
else
if
(
p_item
->
i_type
==
CONFIG_SUBCATEGORY
)
i_subcategory
=
p_item
->
value
.
i
;
if
(
p_item
->
i_type
&
CONFIG_ITEM
)
b_options
=
true
;
if
(
b_options
&&
i_category
&&
i_subcategory
)
break
;
}
while
(
p_item
->
i_type
!=
CONFIG_HINT_END
&&
p_item
++
);
if
(
p_item
->
i_type
==
CONFIG_HINT_END
)
continue
;
module_PutConfig
(
p_config
);
/* Find the capability child item */
/*long cookie; size_t i_child_index;*/
capability_item
=
TreeView_GetChild
(
hwndTV
,
plugins_item
);
while
(
capability_item
!=
0
)
{
TVITEM
capability_tvi
=
{
0
};
TCHAR
psz_text
[
256
];
i_child_index
++
;
capability_tvi
.
mask
=
TVIF_TEXT
;
capability_tvi
.
pszText
=
psz_text
;
capability_tvi
.
cchTextMax
=
256
;
capability_tvi
.
hItem
=
capability_item
;
TreeView_GetItem
(
hwndTV
,
&
capability_tvi
);
if
(
!
strcmp
(
_TOMB
(
capability_tvi
.
pszText
),
p_module
->
psz_capability
)
)
break
;
capability_item
=
TreeView_GetNextSibling
(
hwndTV
,
capability_item
);
}
//if( !i_options ) continue;
/* Dummy item, please proceed */
if
(
!
b_options
||
i_category
==
0
||
i_subcategory
==
0
)
continue
;
if
(
i_child_index
==
i_capability_count
&&
p_module
->
psz_capability
&&
*
p_module
->
psz_capability
)
category_item
=
TreeView_GetChild
(
hwndTV
,
general_item
);
while
(
category_item
!=
0
)
{
/* We didn't find it, add it */
ConfigTreeData
*
config_data
=
new
ConfigTreeData
;
config_data
->
psz_section
=
strdup
(
GetCapabilityHelp
(
p_module
->
psz_capability
,
1
)
);
config_data
->
psz_help
=
strdup
(
GetCapabilityHelp
(
p_module
->
psz_capability
,
2
)
);
config_data
->
i_object_id
=
CAPABILITY_ID
;
tvi
.
pszText
=
_FROMMB
(
p_module
->
psz_capability
);
tvi
.
cchTextMax
=
_tcslen
(
tvi
.
pszText
);
tvi
.
lParam
=
(
long
)
config_data
;
tvins
.
item
=
tvi
;
tvins
.
hInsertAfter
=
plugins_item
;
tvins
.
hParent
=
plugins_item
;
// level 3
// Add the item to the tree-view control.
capability_item
=
(
HTREEITEM
)
TreeView_InsertItem
(
hwndTV
,
&
tvins
);
i_capability_count
++
;
TVITEM
category_tvi
=
{
0
};
category_tvi
.
mask
=
TVIF_PARAM
;
category_tvi
.
lParam
=
NULL
;
category_tvi
.
hItem
=
category_item
;
TreeView_GetItem
(
hwndTV
,
&
category_tvi
);
ConfigTreeData
*
data
=
(
ConfigTreeData
*
)
category_tvi
.
lParam
;
if
(
data
->
i_object_id
==
i_category
)
{
subcategory_item
=
TreeView_GetChild
(
hwndTV
,
category_item
);
while
(
subcategory_item
!=
0
)
{
TVITEM
subcategory_tvi
=
{
0
};
subcategory_tvi
.
mask
=
TVIF_PARAM
;
subcategory_tvi
.
lParam
=
NULL
;
subcategory_tvi
.
hItem
=
subcategory_item
;
TreeView_GetItem
(
hwndTV
,
&
subcategory_tvi
);
ConfigTreeData
*
subdata
=
(
ConfigTreeData
*
)
subcategory_tvi
.
lParam
;
if
(
subdata
->
i_object_id
==
i_subcategory
)
{
config_data
=
new
ConfigTreeData
;
config_data
->
psz_name
=
strdup
(
module_GetObjName
(
p_module
)
);
config_data
->
psz_help
=
NULL
;
config_data
->
i_type
=
TYPE_MODULE
;
config_data
->
i_object_id
=
p_item
->
value
.
i
;
config_data
->
p_module
=
p_module
;
tvi
.
pszText
=
_FROMMB
(
module_GetName
(
p_module
,
false
));
tvi
.
cchTextMax
=
_tcslen
(
tvi
.
pszText
);
tvi
.
lParam
=
(
long
)
config_data
;
tvins
.
item
=
tvi
;
tvins
.
hInsertAfter
=
subcategory_item
;
tvins
.
hParent
=
subcategory_item
;
// Add the item to the tree-view control.
hPrev
=
(
HTREEITEM
)
TreeView_InsertItem
(
hwndTV
,
&
tvins
);
break
;
}
subcategory_item
=
TreeView_GetNextSibling
(
hwndTV
,
subcategory_item
);
}
break
;
}
category_item
=
TreeView_GetNextSibling
(
hwndTV
,
category_item
);
}
/* Add the plugin to the tree */
ConfigTreeData
*
config_data
=
new
ConfigTreeData
;
config_data
->
b_submodule
=
p_module
->
b_submodule
;
config_data
->
i_object_id
=
p_module
->
b_submodule
?
((
module_t
*
)
p_module
->
p_parent
)
->
i_object_id
:
p_module
->
i_object_id
;
config_data
->
psz_help
=
NULL
;
tvi
.
pszText
=
_FROMMB
(
p_module
->
psz_object_name
);
tvi
.
cchTextMax
=
_tcslen
(
tvi
.
pszText
);
tvi
.
lParam
=
(
long
)
config_data
;
tvins
.
item
=
tvi
;
tvins
.
hInsertAfter
=
capability_item
;
tvins
.
hParent
=
capability_item
;
// level 4
// Add the item to the tree-view control.
TreeView_InsertItem
(
hwndTV
,
&
tvins
);
}
/* Sort all this mess */
/*long cookie; size_t i_child_index;*/
TreeView_SortChildren
(
hwndTV
,
plugins_item
,
0
);
capability_item
=
TreeView_GetChild
(
hwndTV
,
plugins_item
);
while
(
capability_item
!=
0
)
TreeView_SortChildren
(
hwndTV
,
general_item
,
0
);
category_item
=
TreeView_GetChild
(
hwndTV
,
general_item
);
while
(
category_item
!=
0
)
{
TreeView_SortChildren
(
hwndTV
,
ca
pabilit
y_item
,
0
);
ca
pability_item
=
TreeView_GetNextSibling
(
hwndTV
,
capabilit
y_item
);
TreeView_SortChildren
(
hwndTV
,
ca
tegor
y_item
,
0
);
ca
tegory_item
=
TreeView_GetNextSibling
(
hwndTV
,
categor
y_item
);
}
/* Clean-up everything */
...
...
@@ -561,7 +632,6 @@ PrefsTreeCtrl::~PrefsTreeCtrl()
void
PrefsTreeCtrl
::
ApplyChanges
()
{
/*long cookie, cookie2;*/
ConfigTreeData
*
config_data
;
/* Apply changes to the main module */
...
...
@@ -582,20 +652,25 @@ void PrefsTreeCtrl::ApplyChanges()
}
/* Apply changes to the plugins */
item
=
TreeView_GetChild
(
hwndTV
,
plugins
_item
);
item
=
TreeView_GetChild
(
hwndTV
,
general
_item
);
while
(
item
!=
0
)
{
HTREEITEM
item2
=
TreeView_GetChild
(
hwndTV
,
item
);
while
(
item2
!=
0
)
{
TVITEM
tvi
=
{
0
};
tvi
.
mask
=
TVIF_PARAM
;
tvi
.
hItem
=
item2
;
TreeView_GetItem
(
hwndTV
,
&
tvi
);
config_data
=
(
ConfigTreeData
*
)
tvi
.
lParam
;
if
(
config_data
&&
config_data
->
panel
)
HTREEITEM
item3
=
TreeView_GetChild
(
hwndTV
,
item2
);
while
(
item3
!=
0
)
{
config_data
->
panel
->
ApplyChanges
();
TVITEM
tvi
=
{
0
};
tvi
.
mask
=
TVIF_PARAM
;
tvi
.
hItem
=
item3
;
TreeView_GetItem
(
hwndTV
,
&
tvi
);
config_data
=
(
ConfigTreeData
*
)
tvi
.
lParam
;
if
(
config_data
&&
config_data
->
panel
)
{
config_data
->
panel
->
ApplyChanges
();
}
item3
=
TreeView_GetNextSibling
(
hwndTV
,
item3
);
}
item2
=
TreeView_GetNextSibling
(
hwndTV
,
item2
);
}
...
...
@@ -605,31 +680,31 @@ void PrefsTreeCtrl::ApplyChanges()
ConfigTreeData
*
PrefsTreeCtrl
::
FindModuleConfig
(
ConfigTreeData
*
config_data
)
{
/* We need this complexity because submodules don't have their own config
* options. They use the parent module ones. */
if
(
!
config_data
||
!
config_data
->
b_submodule
)
if
(
!
config_data
||
!
config_data
->
p_module
)
{
return
config_data
;
}
/*long cookie, cookie2;*/
ConfigTreeData
*
config_new
;
HTREEITEM
item
=
TreeView_GetChild
(
hwndTV
,
plugins
_item
);
HTREEITEM
item
=
TreeView_GetChild
(
hwndTV
,
general
_item
);
while
(
item
!=
0
)
{
HTREEITEM
item2
=
TreeView_GetChild
(
hwndTV
,
item
);
while
(
item2
!=
0
)
{
TVITEM
tvi
=
{
0
};
tvi
.
mask
=
TVIF_PARAM
;
tvi
.
hItem
=
item2
;
TreeView_GetItem
(
hwndTV
,
&
tvi
);
config_new
=
(
ConfigTreeData
*
)
tvi
.
lParam
;
if
(
config_new
&&
!
config_new
->
b_submodule
&&
config_new
->
i_object_id
==
config_data
->
i_object_id
)
HTREEITEM
item3
=
TreeView_GetChild
(
hwndTV
,
item2
);
while
(
item3
!=
0
)
{
return
config_new
;
TVITEM
tvi
=
{
0
};
tvi
.
mask
=
TVIF_PARAM
;
tvi
.
hItem
=
item3
;
TreeView_GetItem
(
hwndTV
,
&
tvi
);
config_new
=
(
ConfigTreeData
*
)
tvi
.
lParam
;
if
(
config_new
&&
config_new
->
p_module
==
config_data
->
p_module
)
{
return
config_new
;
}
item3
=
TreeView_GetNextSibling
(
hwndTV
,
item3
);
}
item2
=
TreeView_GetNextSibling
(
hwndTV
,
item2
);
}
...
...
@@ -666,9 +741,9 @@ void PrefsTreeCtrl::OnSelectTreeItem( LPNM_TREEVIEW pnmtv, HWND parent,
/* The panel hasn't been created yet. Let's do it. */
config_data
->
panel
=
new
PrefsPanel
(
parent
,
hInst
,
p_intf
,
p_prefs_dialog
,
config_data
->
i_object_id
,
config_data
->
psz_
section
,
config_data
->
psz_help
);
config_data
->
p_module
,
config_data
->
psz_
name
,
config_data
->
psz_help
,
config_data
);
}
else
{
...
...
@@ -682,21 +757,20 @@ void PrefsTreeCtrl::OnSelectTreeItem( LPNM_TREEVIEW pnmtv, HWND parent,
*****************************************************************************/
PrefsPanel
::
PrefsPanel
(
HWND
parent
,
HINSTANCE
hInst
,
intf_thread_t
*
_p_intf
,
PrefsDialog
*
_p_prefs_dialog
,
int
i_object_id
,
char
*
psz_section
,
char
*
psz_help
)
module_t
*
p_module
,
char
*
psz_name
,
char
*
psz_help
,
ConfigTreeData
*
config_data
)
{
module_config_t
*
p_item
;
module_t
*
p_module
=
NULL
;
module_config_t
*
p_item
,
*
p_config
,
*
p_end
;
/* Initializations */
p_intf
=
_p_intf
;
p_prefs_dialog
=
_p_prefs_dialog
;
vlc_list_t
*
p_list
=
NULL
;
b_advanced
=
true
;
if
(
i_object_id
==
PLUGIN_ID
||
i_object_id
==
GENERAL_ID
||
i_object_id
==
CAPABILITY_ID
)
if
(
config_data
->
i_type
==
TYPE_CATEGORY
)
{
label
=
CreateWindow
(
_T
(
"STATIC"
),
_FROMMB
(
psz_
section
),
label
=
CreateWindow
(
_T
(
"STATIC"
),
_FROMMB
(
psz_
name
),
WS_CHILD
|
WS_VISIBLE
|
SS_LEFT
,
5
,
10
+
(
15
+
10
),
200
,
15
,
parent
,
NULL
,
hInst
,
NULL
);
...
...
@@ -705,33 +779,79 @@ PrefsPanel::PrefsPanel( HWND parent, HINSTANCE hInst, intf_thread_t *_p_intf,
else
{
/* Get a pointer to the module */
p_module
=
(
module_t
*
)
vlc_object_get
(
i_object_id
);
if
(
config_data
->
i_type
==
TYPE_MODULE
)
{
p_module
=
config_data
->
p_module
;
}
else
{
/* List the plugins */
int
i_index
;
bool
b_found
=
false
;
p_list
=
vlc_list_find
(
p_intf
,
VLC_OBJECT_MODULE
,
FIND_ANYWHERE
);
if
(
!
p_list
)
return
;
for
(
i_index
=
0
;
i_index
<
p_list
->
i_count
;
i_index
++
)
{
p_module
=
(
module_t
*
)
p_list
->
p_values
[
i_index
].
p_object
;
if
(
!
strcmp
(
module_GetObjName
(
p_module
),
"main"
)
)
{
b_found
=
true
;
break
;
}
}
if
(
!
p_module
&&
!
b_found
)
{
msg_Warn
(
p_intf
,
"unable to create preferences "
"(main module not found)"
);
return
;
}
}
/* Enumerate config options and add corresponding config boxes
* (submodules don't have config options, they are stored in the
* parent module) */
if
(
p_module
->
b_submodule
)
p_item
=
((
module_t
*
)
p_module
->
p_parent
)
->
p_config
;
else
p_item
=
p_module
->
p_config
;
unsigned
confsize
;
p_config
=
module_GetConfig
(
(
module_t
*
)
p_module
,
&
confsize
);
p_item
=
p_config
;
p_end
=
p_config
+
confsize
;
/* Find the category if it has been specified */
if
(
psz_section
&&
p_item
->
i_type
==
CONFIG_HINT_CATEGORY
)
if
(
config_data
->
i_type
==
TYPE_SUBCATEGORY
||
config_data
->
i_type
==
TYPE_CATSUBCAT
)
{
while
(
!
(
p_item
->
i_type
==
CONFIG_HINT_CATEGORY
)
||
strcmp
(
psz_section
,
p_item
->
psz_text
)
)
for
(
;
p_item
&&
p_item
<
p_end
;
p_item
++
)
{
if
(
p_item
->
i_type
==
CONFIG_HINT_END
)
break
;
p_item
++
;
if
(
p_item
->
i_type
==
CONFIG_SUBCATEGORY
&&
(
config_data
->
i_type
==
TYPE_SUBCATEGORY
&&
p_item
->
value
.
i
==
config_data
->
i_object_id
)
||
(
config_data
->
i_type
==
TYPE_CATSUBCAT
&&
p_item
->
value
.
i
==
config_data
->
i_subcat_id
)
)
{
break
;
}
}
}
/* Add a head title to the panel */
label
=
CreateWindow
(
_T
(
"STATIC"
),
_FROMMB
(
psz_section
?
p_item
->
psz_text
:
p_module
->
psz_longname
),
const
char
*
psz_head
;
if
(
config_data
->
i_type
==
TYPE_SUBCATEGORY
||
config_data
->
i_type
==
TYPE_CATSUBCAT
)
{
psz_head
=
config_data
->
psz_name
;
p_item
++
;
}
else
{
psz_head
=
module_GetLongName
(
p_module
);
}
label
=
CreateWindow
(
_T
(
"STATIC"
),
_FROMMB
(
psz_head
?
psz_head
:
_
(
"Unknown"
)),
WS_CHILD
|
WS_VISIBLE
|
SS_LEFT
,
5
,
10
+
(
15
+
10
),
250
,
15
,
parent
,
NULL
,
hInst
,
NULL
);
parent
,
NULL
,
hInst
,
NULL
);
WNDCLASS
wc
;
memset
(
&
wc
,
0
,
sizeof
(
wc
)
);
...
...
@@ -756,15 +876,20 @@ PrefsPanel::PrefsPanel( HWND parent, HINSTANCE hInst, intf_thread_t *_p_intf,
parent
,
NULL
,
hInst
,
(
void
*
)
_p_prefs_dialog
);
int
y_pos
=
5
;
if
(
p_item
)
do
for
(
;
p_item
&&
p_item
<
p_end
;
p_item
++
)
{
/* If a category has been specified, check we finished the job */
if
(
psz_section
&&
p_item
->
i_type
==
CONFIG_HINT_CATEGORY
&&
strcmp
(
psz_section
,
p_item
->
psz_text
)
)
if
(
(
(
config_data
->
i_type
==
TYPE_SUBCATEGORY
&&
p_item
->
value
.
i
!=
config_data
->
i_object_id
)
||
(
config_data
->
i_type
==
TYPE_CATSUBCAT
&&
p_item
->
value
.
i
!=
config_data
->
i_subcat_id
)
)
&&
(
p_item
->
i_type
==
CONFIG_CATEGORY
||
p_item
->
i_type
==
CONFIG_SUBCATEGORY
)
)
break
;
ConfigControl
*
control
=
CreateConfigControl
(
VLC_OBJECT
(
p_intf
),
ConfigControl
*
control
=
NULL
;
control
=
CreateConfigControl
(
VLC_OBJECT
(
p_intf
),
p_item
,
config_window
,
hInst
,
&
y_pos
);
...
...
@@ -774,8 +899,6 @@ PrefsPanel::PrefsPanel( HWND parent, HINSTANCE hInst, intf_thread_t *_p_intf,
/* Add the config data to our array so we can keep a trace of it */
config_array
.
push_back
(
control
);
}
while
(
p_item
->
i_type
!=
CONFIG_HINT_END
&&
p_item
++
);
GetWindowRect
(
config_window
,
&
rc
);
maxvalue
=
y_pos
-
(
rc
.
bottom
-
rc
.
top
)
+
5
;
oldvalue
=
0
;
...
...
@@ -798,7 +921,6 @@ void PrefsPanel::Show()
void
PrefsPanel
::
ApplyChanges
()
{
vlc_value_t
val
;
for
(
size_t
i
=
0
;
i
<
config_array
.
size
();
i
++
)
{
ConfigControl
*
control
=
config_array
[
i
];
...
...
modules/gui/wince/preferences_widgets.cpp
View file @
cc516205
...
...
@@ -193,7 +193,7 @@ KeyConfigControl::KeyConfigControl( vlc_object_t *p_this,
alt
=
CreateWindow
(
_T
(
"BUTTON"
),
_T
(
"Alt"
),
WS_CHILD
|
WS_VISIBLE
|
BS_AUTOCHECKBOX
,
20
,
*
py_pos
,
15
,
15
,
parent
,
NULL
,
hInst
,
NULL
);
Button_SetCheck
(
alt
,
p_item
->
i_
valu
e
&
KEY_MODIFIER_ALT
?
BST_CHECKED
:
Button_SetCheck
(
alt
,
p_item
->
i_
typ
e
&
KEY_MODIFIER_ALT
?
BST_CHECKED
:
BST_UNCHECKED
);
alt_label
=
CreateWindow
(
_T
(
"STATIC"
),
_T
(
"Alt"
),
...
...
@@ -204,7 +204,7 @@ KeyConfigControl::KeyConfigControl( vlc_object_t *p_this,
WS_CHILD
|
WS_VISIBLE
|
BS_AUTOCHECKBOX
,
20
+
15
+
5
+
30
+
5
,
*
py_pos
,
15
,
15
,
parent
,
NULL
,
hInst
,
NULL
);
Button_SetCheck
(
ctrl
,
p_item
->
i_
valu
e
&
KEY_MODIFIER_CTRL
?
BST_CHECKED
:
Button_SetCheck
(
ctrl
,
p_item
->
i_
typ
e
&
KEY_MODIFIER_CTRL
?
BST_CHECKED
:
BST_UNCHECKED
);
ctrl_label
=
CreateWindow
(
_T
(
"STATIC"
),
_T
(
"Ctrl"
),
...
...
@@ -216,7 +216,7 @@ KeyConfigControl::KeyConfigControl( vlc_object_t *p_this,
WS_CHILD
|
WS_VISIBLE
|
BS_AUTOCHECKBOX
,
20
+
15
+
5
+
2
*
(
30
+
5
)
+
15
+
5
,
*
py_pos
,
15
,
15
,
parent
,
NULL
,
hInst
,
NULL
);
Button_SetCheck
(
shift
,
p_item
->
i_
valu
e
&
KEY_MODIFIER_SHIFT
?
Button_SetCheck
(
shift
,
p_item
->
i_
typ
e
&
KEY_MODIFIER_SHIFT
?
BST_CHECKED
:
BST_UNCHECKED
);
shift_label
=
CreateWindow
(
_T
(
"STATIC"
),
_T
(
"Shift"
),
...
...
@@ -238,7 +238,7 @@ KeyConfigControl::KeyConfigControl( vlc_object_t *p_this,
ComboBox_AddString
(
combo
,
_FROMMB
(
m_keysList
[
i
].
c_str
())
);
ComboBox_SetItemData
(
combo
,
i
,
(
void
*
)
vlc_keys
[
i
].
i_key_code
);
if
(
(
unsigned
int
)
vlc_keys
[
i
].
i_key_code
==
(
((
unsigned
int
)
p_item
->
i_
valu
e
)
&
~
KEY_MODIFIER
)
)
(
((
unsigned
int
)
p_item
->
i_
typ
e
)
&
~
KEY_MODIFIER
)
)
{
ComboBox_SetCurSel
(
combo
,
i
);
ComboBox_SetText
(
combo
,
_FROMMB
(
m_keysList
[
i
].
c_str
())
);
...
...
@@ -315,13 +315,13 @@ ModuleConfigControl::ModuleConfigControl( vlc_object_t *p_this,
{
p_parser
=
(
module_t
*
)
p_list
->
p_values
[
i_index
].
p_object
;
if
(
!
strcmp
(
p_parser
->
psz_capability
,
p_item
->
psz_type
)
)
if
(
module_IsCapable
(
p_parser
,
p_item
->
psz_type
)
)
{
ComboBox_AddString
(
combo
,
_FROMMB
(
p_parser
->
psz_longname
)
);
ComboBox_AddString
(
combo
,
_FROMMB
(
module_GetLongName
(
p_parser
)
)
);
ComboBox_SetItemData
(
combo
,
i_index
,
(
void
*
)
p_parser
->
psz_object_name
);
if
(
p_item
->
psz_value
&&
!
strcmp
(
p_item
->
psz_value
,
p_parser
->
psz_object_name
)
)
(
void
*
)
module_GetObjName
(
p_parser
)
);
if
(
p_item
->
value
.
psz
&&
!
strcmp
(
p_item
->
value
.
psz
,
module_GetObjName
(
p_parser
)
)
)
{
ComboBox_SetCurSel
(
combo
,
i_index
);
//ComboBox_SetText( combo, _FROMMB(p_parser->psz_longname) );
...
...
@@ -360,8 +360,8 @@ StringConfigControl::StringConfigControl( vlc_object_t *p_this,
*
py_pos
+=
15
+
10
;
textctrl
=
CreateWindow
(
_T
(
"EDIT"
),
p_item
->
psz_
valu
e
?
_FROMMB
(
p_item
->
psz_
valu
e
)
:
_T
(
""
),
textctrl
=
CreateWindow
(
_T
(
"EDIT"
),
p_item
->
psz_
typ
e
?
_FROMMB
(
p_item
->
psz_
typ
e
)
:
_T
(
""
),
WS_CHILD
|
WS_VISIBLE
|
WS_BORDER
|
SS_LEFT
|
ES_AUTOHSCROLL
,
20
,
*
py_pos
-
3
,
180
,
15
+
3
,
parent
,
NULL
,
hInst
,
NULL
);
...
...
@@ -733,7 +733,7 @@ FloatConfigControl::FloatConfigControl( vlc_object_t *p_this,
*
py_pos
+=
15
+
10
;
TCHAR
psz_string
[
100
];
_stprintf
(
psz_string
,
_T
(
"%
f"
),
p_item
->
f_valu
e
);
_stprintf
(
psz_string
,
_T
(
"%
d"
),
p_item
->
i_typ
e
);
textctrl
=
CreateWindow
(
_T
(
"EDIT"
),
psz_string
,
WS_CHILD
|
WS_VISIBLE
|
WS_BORDER
|
SS_RIGHT
|
ES_AUTOHSCROLL
,
20
,
*
py_pos
-
3
,
70
,
15
+
3
,
parent
,
NULL
,
hInst
,
NULL
);
...
...
@@ -776,7 +776,7 @@ BoolConfigControl::BoolConfigControl( vlc_object_t *p_this,
WS_CHILD
|
WS_VISIBLE
|
BS_AUTOCHECKBOX
,
5
,
*
py_pos
,
15
,
15
,
parent
,
NULL
,
hInst
,
NULL
);
Button_SetCheck
(
checkbox
,
p_item
->
i_value
?
BST_CHECKED
:
BST_UNCHECKED
);
Button_SetCheck
(
checkbox
,
config_GetInt
(
p_this
,
p_item
->
psz_name
)
?
BST_CHECKED
:
BST_UNCHECKED
);
checkbox_label
=
CreateWindow
(
_T
(
"STATIC"
),
_FROMMB
(
p_item
->
psz_text
),
WS_CHILD
|
WS_VISIBLE
|
SS_LEFT
,
...
...
modules/gui/wince/subtitles.cpp
View file @
cc516205
...
...
@@ -139,7 +139,7 @@ LRESULT SubsFileDialog::WndProc( HWND hwnd, UINT msg, WPARAM wp, LPARAM lp )
hwnd
,
NULL
,
hInst
,
NULL
);
encoding_combo
=
CreateWindow
(
_T
(
"COMBOBOX"
),
_FROMMB
(
p_item
->
psz_value
),
_FROMMB
(
p_item
->
value
.
psz
),
WS_CHILD
|
WS_VISIBLE
|
CBS_AUTOHSCROLL
|
CBS_DROPDOWNLIST
|
LBS_SORT
|
WS_VSCROLL
,
rcClient
.
right
-
150
-
10
,
10
+
5
*
(
15
+
10
)
-
3
,
150
,
5
*
15
+
6
,
...
...
@@ -152,15 +152,15 @@ LRESULT SubsFileDialog::WndProc( HWND hwnd, UINT msg, WPARAM wp, LPARAM lp )
ComboBox_AddString
(
encoding_combo
,
_FROMMB
(
p_item
->
ppsz_list
[
i_index
])
);
if
(
p_item
->
psz_value
&&
!
strcmp
(
p_item
->
psz_value
,
p_item
->
ppsz_list
[
i_index
]
)
)
if
(
p_item
->
value
.
psz
&&
!
strcmp
(
p_item
->
value
.
psz
,
p_item
->
ppsz_list
[
i_index
]
)
)
ComboBox_SetCurSel
(
encoding_combo
,
i_index
);
}
if
(
p_item
->
psz_value
)
if
(
p_item
->
value
.
psz
)
{
ComboBox_SelectString
(
encoding_combo
,
0
,
_FROMMB
(
p_item
->
psz_value
)
);
_FROMMB
(
p_item
->
value
.
psz
)
);
}
}
...
...
modules/gui/wince/timer.cpp
View file @
cc516205
...
...
@@ -32,6 +32,8 @@
#include <vlc_common.h>
#include <vlc_aout.h>
#include <vlc_interface.h>
#include <vlc_input.h>
#include <vlc_playlist.h>
#include "wince.h"
...
...
@@ -105,9 +107,10 @@ void Timer::Notify( void )
ShowWindow
(
p_main_interface
->
hwndVol
,
SW_SHOW
);
// only for local file, check if works well with net url
shortname
=
strrchr
(
p_intf
->
p_sys
->
p_input
->
input
.
p_item
->
psz_name
,
'\\'
);
input_item_t
*
p_item
=
input_GetItem
(
p_intf
->
p_sys
->
p_input
);
shortname
=
strrchr
(
input_item_GetURL
(
p_item
),
'\\'
);
if
(
!
shortname
)
shortname
=
p_intf
->
p_sys
->
p_input
->
input
.
p_item
->
psz_name
;
shortname
=
input_item_GetURL
(
p_item
)
;
else
shortname
++
;
SendMessage
(
p_main_interface
->
hwndSB
,
SB_SETTEXT
,
...
...
modules/gui/wince/video.cpp
View file @
cc516205
...
...
@@ -100,9 +100,10 @@ VideoWindow::VideoWindow( intf_thread_t *_p_intf, HWND _p_parent )
p_vout
=
NULL
;
p_intf
->
pf_request_window
=
::
GetWindow
;
p_intf
->
pf_release_window
=
::
ReleaseWindow
;
p_intf
->
pf_control_window
=
::
ControlWindow
;
// Changeset 138da19...
//p_intf->pf_request_window = ::GetWindow;
//p_intf->pf_release_window = ::ReleaseWindow;
//p_intf->pf_control_window = ::ControlWindow;
p_intf
->
p_sys
->
p_video_window
=
this
;
...
...
modules/gui/wince/wince.cpp
View file @
cc516205
...
...
@@ -32,6 +32,7 @@
#include <vlc_common.h>
#include <vlc_plugin.h>
#include <vlc_interface.h>
#include <vlc_input.h>
#if defined( UNDER_CE ) && defined(__MINGW32__)
/* This is a gross hack for the wince gcc cross-compiler */
...
...
@@ -51,7 +52,7 @@ static void Run ( intf_thread_t * );
static
int
OpenDialogs
(
vlc_object_t
*
);
static
void
*
MainLoop
(
intf_thread
_t
*
);
static
void
*
MainLoop
(
vlc_object
_t
*
);
static
void
ShowDialog
(
intf_thread_t
*
,
int
,
int
,
intf_dialog_args_t
*
);
/*****************************************************************************
...
...
@@ -62,11 +63,14 @@ static void ShowDialog( intf_thread_t *, int, int, intf_dialog_args_t * );
"of having it in a separate window.")
vlc_module_begin
();
set_shortname
(
"WinCE"
);
set_description
(
(
char
*
)
_
(
"WinCE interface module"
)
);
set_capability
(
"interface"
,
100
);
set_callbacks
(
Open
,
Close
);
add_shortcut
(
"wince"
);
set_category
(
CAT_INTERFACE
);
set_subcategory
(
SUBCAT_INTERFACE_MAIN
);
add_bool
(
"wince-embed"
,
1
,
NULL
,
EMBED_TEXT
,
EMBED_LONGTEXT
,
false
);
...
...
@@ -152,10 +156,11 @@ static int OpenDialogs( vlc_object_t *p_this )
static
void
Close
(
vlc_object_t
*
p_this
)
{
intf_thread_t
*
p_intf
=
(
intf_thread_t
*
)
p_this
;
intf_sys_t
*
p_sys
=
p_intf
->
p_sys
;
if
(
p_
intf
->
p_
sys
->
p_input
)
if
(
p_sys
->
p_input
)
{
vlc_object_release
(
p_
intf
->
p_
sys
->
p_input
);
vlc_object_release
(
p_sys
->
p_input
);
}
MenuItemExt
::
ClearList
(
p_intf
->
p_sys
->
p_video_menu
);
...
...
@@ -194,10 +199,10 @@ static void Run( intf_thread_t *p_intf )
/* The module is used in dialog provider mode */
/* Create a new thread for the dialogs provider */
if
(
vlc_thread_create
(
p_intf
,
"
Skins
Dialogs Thread"
,
if
(
vlc_thread_create
(
p_intf
,
"
WinCE
Dialogs Thread"
,
MainLoop
,
0
,
true
)
)
{
msg_Err
(
p_intf
,
"cannot create
Skins
Dialogs Thread"
);
msg_Err
(
p_intf
,
"cannot create
WinCE
Dialogs Thread"
);
p_intf
->
pf_show_dialog
=
NULL
;
}
}
...
...
@@ -205,7 +210,7 @@ static void Run( intf_thread_t *p_intf )
{
int
canc
=
vlc_savecancel
();
/* The module is used in interface mode */
MainLoop
(
p_intf
);
MainLoop
(
VLC_OBJECT
(
p_intf
)
);
vlc_restorecancel
(
canc
);
}
}
...
...
modules/gui/wince/wince_rc.rc
View file @
cc516205
...
...
@@ -134,7 +134,7 @@ END
// Icon with lowest ID value placed first to ensure application icon
// remains consistent on all systems.
#ifdef
__MINGW32__
#ifdef
UNDER_CE
IDI_ICON1 ICON DISCARDABLE "bitmaps/vlc16x16.ico"
#else
IDI_ICON1 ICON DISCARDABLE "bitmaps\\vlc16x16.ico"
...
...
@@ -143,9 +143,9 @@ IDI_ICON1 ICON DISCARDABLE "bitmaps\\vlc16x16.ico"
/////////////////////////////////////////////////////////////////////////////
//
// Bitmap
//
#ifdef
__MINGW32__
//
#ifdef
UNDER_CE
IDB_BITMAP1 BITMAP DISCARDABLE "bitmaps/toolbar1.bmp"
IDB_BITMAP2 BITMAP DISCARDABLE "bitmaps/toolbar2.bmp"
IDB_BITMAP3 BITMAP DISCARDABLE "bitmaps/toolbar3.bmp"
...
...
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