Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
V
vlc-1.1
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-1.1
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