Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-cw
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wine
wine-cw
Commits
a55f54fb
Commit
a55f54fb
authored
May 16, 2005
by
Martin Fuchs
Committed by
Alexandre Julliard
May 16, 2005
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Implement switching of file sort order.
parent
c6b0ad69
Show whitespace changes
Inline
Side-by-side
Showing
13 changed files
with
181 additions
and
103 deletions
+181
-103
De.rc
programs/winefile/De.rc
+4
-4
En.rc
programs/winefile/En.rc
+5
-5
Es.rc
programs/winefile/Es.rc
+4
-4
Fr.rc
programs/winefile/Fr.rc
+4
-4
Hu.rc
programs/winefile/Hu.rc
+4
-4
It.rc
programs/winefile/It.rc
+4
-4
Nl.rc
programs/winefile/Nl.rc
+4
-4
Pt.rc
programs/winefile/Pt.rc
+8
-8
Ru.rc
programs/winefile/Ru.rc
+4
-4
Si.rc
programs/winefile/Si.rc
+5
-5
Zh.rc
programs/winefile/Zh.rc
+4
-4
resource.h
programs/winefile/resource.h
+4
-0
winefile.c
programs/winefile/winefile.c
+127
-53
No files found.
programs/winefile/De.rc
View file @
a55f54fb
...
...
@@ -93,10 +93,10 @@ IDM_WINEFILE MENU FIXED IMPURE
MENUITEM "A&lle Dateiangaben" , ID_VIEW_ALL_ATTRIBUTES, CHECKED
MENUITEM "&Bestimmte Dateiangaben..." , ID_VIEW_SELECTED_ATTRIBUTES
MENUITEM SEPARATOR
MENUITEM "Nach N&ame" ,
404
MENUITEM "Nach T&yp" ,
405
MENUITEM "Nach &Gre" ,
406
MENUITEM "Nach &Datum" ,
407
MENUITEM "Nach N&ame" ,
ID_VIEW_SORT_NAME
MENUITEM "Nach T&yp" ,
ID_VIEW_SORT_TYPE
MENUITEM "Nach &Gre" ,
ID_VIEW_SORT_SIZE
MENUITEM "Nach &Datum" ,
ID_VIEW_SORT_DATE
MENUITEM SEPARATOR
MENUITEM "Angaben ausw&hlen..." , 409
}
...
...
programs/winefile/En.rc
View file @
a55f54fb
...
...
@@ -92,12 +92,12 @@ IDM_WINEFILE MENU FIXED IMPURE
MENUITEM "&All File Details" , ID_VIEW_ALL_ATTRIBUTES, CHECKED
MENUITEM "&Partial Details..." , ID_VIEW_SELECTED_ATTRIBUTES
MENUITEM SEPARATOR
MENUITEM "&Sort by Name" ,
404
MENUITEM "Sort &by Type" ,
405
MENUITEM "Sort by Si&ze" ,
406
MENUITEM "Sort by &Date" ,
407
MENUITEM "&Sort by Name" ,
ID_VIEW_SORT_NAME
MENUITEM "Sort &by Type" ,
ID_VIEW_SORT_TYPE
MENUITEM "Sort by Si&ze" ,
ID_VIEW_SORT_SIZE
MENUITEM "Sort by &Date" ,
ID_VIEW_SORT_DATE
MENUITEM SEPARATOR
MENUITEM "
Sort
by &..." , 409
MENUITEM "
Filter
by &..." , 409
}
POPUP "&Options" {
...
...
programs/winefile/Es.rc
View file @
a55f54fb
...
...
@@ -90,10 +90,10 @@ IDM_WINEFILE MENU FIXED IMPURE
MENUITEM "T&odos los detalles" , ID_VIEW_ALL_ATTRIBUTES, CHECKED
MENUITEM "Detalles &parciales..." , ID_VIEW_SELECTED_ATTRIBUTES
MENUITEM SEPARATOR
MENUITEM "Ordenar por &nombre" ,
404
MENUITEM "Ordenar por &tipo" ,
405
MENUITEM "Ordenar por t&amao" ,
406
MENUITEM "Ordenar por &fecha" ,
407
MENUITEM "Ordenar por &nombre" ,
ID_VIEW_SORT_NAME
MENUITEM "Ordenar por &tipo" ,
ID_VIEW_SORT_TYPE
MENUITEM "Ordenar por t&amao" ,
ID_VIEW_SORT_SIZE
MENUITEM "Ordenar por &fecha" ,
ID_VIEW_SORT_DATE
MENUITEM SEPARATOR
MENUITEM "Ordenar por &..." , 409
}
...
...
programs/winefile/Fr.rc
View file @
a55f54fb
...
...
@@ -93,10 +93,10 @@ IDM_WINEFILE MENU FIXED IMPURE
MENUITEM "Tous &les Dtails" , ID_VIEW_ALL_ATTRIBUTES, CHECKED
MENUITEM "&Dtails..." , ID_VIEW_SELECTED_ATTRIBUTES
MENUITEM SEPARATOR
MENUITEM "Trier par N&om" ,
404
MENUITEM "Trier par &Type" ,
405
MENUITEM "Trier par Ta&ille" ,
406
MENUITEM "Trier par Dat&e" ,
407
MENUITEM "Trier par N&om" ,
ID_VIEW_SORT_NAME
MENUITEM "Trier par &Type" ,
ID_VIEW_SORT_TYPE
MENUITEM "Trier par Ta&ille" ,
ID_VIEW_SORT_SIZE
MENUITEM "Trier par Dat&e" ,
ID_VIEW_SORT_DATE
MENUITEM SEPARATOR
MENUITEM "Trier par &..." , 409
}
...
...
programs/winefile/Hu.rc
View file @
a55f54fb
...
...
@@ -93,10 +93,10 @@ IDM_WINEFILE MENU FIXED IMPURE
MENUITEM "&Minden rszlet" , ID_VIEW_ALL_ATTRIBUTES, CHECKED
MENUITEM "&Egyedi..." , ID_VIEW_SELECTED_ATTRIBUTES
MENUITEM SEPARATOR
MENUITEM "&Rendezs nv szerint" ,
404
MENUITEM "Rendezs k&iterjeszts szerint" ,
405
MENUITEM "Rendezs &mret szerint" ,
406
MENUITEM "Rendezs &dtum szerint" ,
407
MENUITEM "&Rendezs nv szerint" ,
ID_VIEW_SORT_NAME
MENUITEM "Rendezs k&iterjeszts szerint" ,
ID_VIEW_SORT_TYPE
MENUITEM "Rendezs &mret szerint" ,
ID_VIEW_SORT_SIZE
MENUITEM "Rendezs &dtum szerint" ,
ID_VIEW_SORT_DATE
MENUITEM SEPARATOR
MENUITEM "Egyedi rendezs &..." , 409
}
...
...
programs/winefile/It.rc
View file @
a55f54fb
...
...
@@ -93,10 +93,10 @@ IDM_WINEFILE MENU FIXED IMPURE
MENUITEM "&Mostra tutti i dettagli sui file" , ID_VIEW_ALL_ATTRIBUTES, CHECKED
MENUITEM "&Mostra dettagli parziali..." , ID_VIEW_SELECTED_ATTRIBUTES
MENUITEM SEPARATOR
MENUITEM "&Ordina per Nome" ,
404
MENUITEM "&Ordina per Tipo" ,
405
MENUITEM "&Ordina per Dimensione" ,
406
MENUITEM "&Ordina per Data" ,
407
MENUITEM "&Ordina per Nome" ,
ID_VIEW_SORT_NAME
MENUITEM "&Ordina per Tipo" ,
ID_VIEW_SORT_TYPE
MENUITEM "&Ordina per Dimensione" ,
ID_VIEW_SORT_SIZE
MENUITEM "&Ordina per Data" ,
ID_VIEW_SORT_DATE
MENUITEM SEPARATOR
MENUITEM "Ordina per &..." , 409
}
...
...
programs/winefile/Nl.rc
View file @
a55f54fb
...
...
@@ -89,10 +89,10 @@ IDM_WINEFILE MENU FIXED IMPURE
MENUITEM "&Alle details" , ID_VIEW_ALL_ATTRIBUTES, CHECKED
MENUITEM "&Gedeeltelijke details..." , ID_VIEW_SELECTED_ATTRIBUTES
MENUITEM SEPARATOR
MENUITEM "Sorteer op &naam" ,
404
MENUITEM "Sorteer op &type" ,
405
MENUITEM "Sorteer op &grootte" ,
406
MENUITEM "Sorteer op &datum" ,
407
MENUITEM "Sorteer op &naam" ,
ID_VIEW_SORT_NAME
MENUITEM "Sorteer op &type" ,
ID_VIEW_SORT_TYPE
MENUITEM "Sorteer op &grootte" ,
ID_VIEW_SORT_SIZE
MENUITEM "Sorteer op &datum" ,
ID_VIEW_SORT_DATE
MENUITEM SEPARATOR
MENUITEM "Sorteer op &..." , 409
}
...
...
programs/winefile/Pt.rc
View file @
a55f54fb
...
...
@@ -92,10 +92,10 @@ IDM_WINEFILE MENU FIXED IMPURE
MENUITEM "&Todos os delalhes" , ID_VIEW_ALL_ATTRIBUTES, CHECKED
MENUITEM "D&etalhes parciais..." , ID_VIEW_SELECTED_ATTRIBUTES
MENUITEM SEPARATOR
MENUITEM "&Classificar por nome" ,
404
MENUITEM "C&lassificar por tipo" ,
405
MENUITEM "Cl&assificar por tamanho" ,
406
MENUITEM "Cla&ssificar por &data" ,
407
MENUITEM "&Classificar por nome" ,
ID_VIEW_SORT_NAME
MENUITEM "C&lassificar por tipo" ,
ID_VIEW_SORT_TYPE
MENUITEM "Cl&assificar por tamanho" ,
ID_VIEW_SORT_SIZE
MENUITEM "Cla&ssificar por &data" ,
ID_VIEW_SORT_DATE
MENUITEM SEPARATOR
MENUITEM "Classificar &por..." , 409
}
...
...
@@ -219,10 +219,10 @@ IDM_WINEFILE MENU FIXED IMPURE
MENUITEM "&Todos os delalhes" , ID_VIEW_ALL_ATTRIBUTES, CHECKED
MENUITEM "D&etalhes parciais..." , ID_VIEW_SELECTED_ATTRIBUTES
MENUITEM SEPARATOR
MENUITEM "&Classificar por nome" ,
404
MENUITEM "C&lassificar por tipo" ,
405
MENUITEM "Cl&assificar por tamanho" ,
406
MENUITEM "Cla&ssificar por &data" ,
407
MENUITEM "&Classificar por nome" ,
ID_VIEW_SORT_NAME
MENUITEM "C&lassificar por tipo" ,
ID_VIEW_SORT_TYPE
MENUITEM "Cl&assificar por tamanho" ,
ID_VIEW_SORT_SIZE
MENUITEM "Cla&ssificar por &data" ,
ID_VIEW_SORT_DATE
MENUITEM SEPARATOR
MENUITEM "Classificar &por..." , 409
}
...
...
programs/winefile/Ru.rc
View file @
a55f54fb
...
...
@@ -89,10 +89,10 @@ IDM_WINEFILE MENU FIXED IMPURE
MENUITEM "& " , ID_VIEW_ALL_ATTRIBUTES, CHECKED
MENUITEM "& ..." , ID_VIEW_SELECTED_ATTRIBUTES
MENUITEM SEPARATOR
MENUITEM "& " ,
404
MENUITEM " &" ,
405
MENUITEM " &" ,
406
MENUITEM " &" ,
407
MENUITEM "& " ,
ID_VIEW_SORT_NAME
MENUITEM " &" ,
ID_VIEW_SORT_TYPE
MENUITEM " &" ,
ID_VIEW_SORT_SIZE
MENUITEM " &" ,
ID_VIEW_SORT_DATE
MENUITEM SEPARATOR
MENUITEM " &..." , 409
}
...
...
programs/winefile/Si.rc
View file @
a55f54fb
...
...
@@ -90,12 +90,12 @@ IDM_WINEFILE MENU FIXED IMPURE
MENUITEM "&All File Details" , ID_VIEW_ALL_ATTRIBUTES, CHECKED
MENUITEM "&Partial Details..." , ID_VIEW_SELECTED_ATTRIBUTES
MENUITEM SEPARATOR
MENUITEM "&Sort by Name" ,
404
MENUITEM "Sort &by Type" ,
405
MENUITEM "Sort by Si&ze" ,
406
MENUITEM "Sort by &Date" ,
407
MENUITEM "&Sort by Name" ,
ID_VIEW_SORT_NAME
MENUITEM "Sort &by Type" ,
ID_VIEW_SORT_TYPE
MENUITEM "Sort by Si&ze" ,
ID_VIEW_SORT_SIZE
MENUITEM "Sort by &Date" ,
ID_VIEW_SORT_DATE
MENUITEM SEPARATOR
MENUITEM "
Sort
by &..." , 409
MENUITEM "
Filter
by &..." , 409
}
POPUP "&Options" {
...
...
programs/winefile/Zh.rc
View file @
a55f54fb
...
...
@@ -90,10 +90,10 @@ IDM_WINEFILE MENU FIXED IMPURE
MENUITEM "文件详悉列表(&A)" , ID_VIEW_ALL_ATTRIBUTES, CHECKED
MENUITEM "部分属性(&P)..." , ID_VIEW_SELECTED_ATTRIBUTES
MENUITEM SEPARATOR
MENUITEM "按文件名排序(&S)" ,
404
MENUITEM "按类型排序(&B)" ,
405
MENUITEM "按大小排序(&Z)" ,
406
MENUITEM "按日期排序(&D)" ,
407
MENUITEM "按文件名排序(&S)" ,
ID_VIEW_SORT_NAME
MENUITEM "按类型排序(&B)" ,
ID_VIEW_SORT_TYPE
MENUITEM "按大小排序(&Z)" ,
ID_VIEW_SORT_SIZE
MENUITEM "按日期排序(&D)" ,
ID_VIEW_SORT_DATE
MENUITEM SEPARATOR
MENUITEM "定制排序..." , 409
}
...
...
programs/winefile/resource.h
View file @
a55f54fb
...
...
@@ -44,6 +44,10 @@
#define ID_VIEW_NAME 401
#define ID_VIEW_ALL_ATTRIBUTES 402
#define ID_VIEW_SELECTED_ATTRIBUTES 403
#define ID_VIEW_SORT_NAME 404
#define ID_VIEW_SORT_TYPE 405
#define ID_VIEW_SORT_SIZE 406
#define ID_VIEW_SORT_DATE 407
#define ID_SELECT_FONT 510
#define ID_VIEW_TOOL_BAR 508
#define ID_VIEW_DRIVE_BAR 507
...
...
programs/winefile/winefile.c
View file @
a55f54fb
...
...
@@ -168,7 +168,8 @@ extern void WineWarranty(HWND hwnd);
static
void
read_directory
(
Entry
*
dir
,
LPCTSTR
path
,
SORT_ORDER
sortOrder
,
HWND
hwnd
);
static
void
set_curdir
(
ChildWnd
*
child
,
Entry
*
entry
,
HWND
hwnd
);
static
void
set_curdir
(
ChildWnd
*
child
,
Entry
*
entry
,
int
idx
,
HWND
hwnd
);
static
void
refresh_child
(
ChildWnd
*
child
);
static
void
get_path
(
Entry
*
dir
,
PTSTR
path
);
LRESULT
CALLBACK
FrameWndProc
(
HWND
hwnd
,
UINT
nmsg
,
WPARAM
wparam
,
LPARAM
lparam
);
...
...
@@ -1260,13 +1261,59 @@ static void read_directory(Entry* dir, LPCTSTR path, SORT_ORDER sortOrder, HWND
}
static
ChildWnd
*
alloc_child_window
(
LPCTSTR
path
,
LPITEMIDLIST
pidl
,
HWND
hwnd
)
static
Entry
*
read_tree
(
Root
*
root
,
LPCTSTR
path
,
LPITEMIDLIST
pidl
,
LPTSTR
drv
,
SORT_ORDER
sortOrder
,
HWND
hwnd
)
{
const
static
TCHAR
sBackslash
[]
=
{
'\\'
,
'\0'
};
#if !defined(_NO_EXTENSIONS) && defined(__WINE__)
const
static
TCHAR
sSlash
[]
=
{
'/'
,
'\0'
};
#endif
const
static
TCHAR
sBackslash
[]
=
{
'\\'
,
'\0'
};
#ifdef _SHELL_FOLDERS
if
(
pidl
)
{
/* read shell namespace tree */
root
->
drive_type
=
DRIVE_UNKNOWN
;
drv
[
0
]
=
'\\'
;
drv
[
1
]
=
'\0'
;
load_string
(
root
->
volname
,
IDS_DESKTOP
);
root
->
fs_flags
=
0
;
load_string
(
root
->
fs
,
IDS_SHELL
);
return
read_tree_shell
(
root
,
pidl
,
sortOrder
,
hwnd
);
}
else
#endif
#if !defined(_NO_EXTENSIONS) && defined(__WINE__)
if
(
*
path
==
'/'
)
{
/* read unix file system tree */
root
->
drive_type
=
GetDriveType
(
path
);
lstrcat
(
drv
,
sSlash
);
load_string
(
root
->
volname
,
IDS_ROOT_FS
);
root
->
fs_flags
=
0
;
load_string
(
root
->
fs
,
IDS_UNIXFS
);
lstrcpy
(
root
->
path
,
sSlash
);
return
read_tree_unix
(
root
,
path
,
sortOrder
,
hwnd
);
}
#endif
/* read WIN32 file system tree */
root
->
drive_type
=
GetDriveType
(
path
);
lstrcat
(
drv
,
sBackslash
);
GetVolumeInformation
(
drv
,
root
->
volname
,
_MAX_FNAME
,
0
,
0
,
&
root
->
fs_flags
,
root
->
fs
,
_MAX_DIR
);
lstrcpy
(
root
->
path
,
drv
);
return
read_tree_win
(
root
,
path
,
sortOrder
,
hwnd
);
}
static
ChildWnd
*
alloc_child_window
(
LPCTSTR
path
,
LPITEMIDLIST
pidl
,
HWND
hwnd
)
{
TCHAR
drv
[
_MAX_DRIVE
+
1
],
dir
[
_MAX_DIR
],
name
[
_MAX_FNAME
],
ext
[
_MAX_EXT
];
TCHAR
b1
[
BUFFER_LEN
];
...
...
@@ -1308,44 +1355,7 @@ static ChildWnd* alloc_child_window(LPCTSTR path, LPITEMIDLIST pidl, HWND hwnd)
root
->
entry
.
level
=
0
;
#ifdef _SHELL_FOLDERS
if
(
pidl
)
{
root
->
drive_type
=
DRIVE_UNKNOWN
;
drv
[
0
]
=
'\\'
;
drv
[
1
]
=
'\0'
;
load_string
(
root
->
volname
,
IDS_DESKTOP
);
root
->
fs_flags
=
0
;
load_string
(
root
->
fs
,
IDS_SHELL
);
entry
=
read_tree_shell
(
root
,
pidl
,
child
->
sortOrder
,
hwnd
);
}
else
#endif
#if !defined(_NO_EXTENSIONS) && defined(__WINE__)
if
(
*
path
==
'/'
)
{
root
->
drive_type
=
GetDriveType
(
path
);
lstrcat
(
drv
,
sSlash
);
load_string
(
root
->
volname
,
IDS_ROOT_FS
);
root
->
fs_flags
=
0
;
load_string
(
root
->
fs
,
IDS_UNIXFS
);
lstrcpy
(
root
->
path
,
sSlash
);
entry
=
read_tree_unix
(
root
,
path
,
child
->
sortOrder
,
hwnd
);
}
else
#endif
{
root
->
drive_type
=
GetDriveType
(
path
);
lstrcat
(
drv
,
sBackslash
);
GetVolumeInformation
(
drv
,
root
->
volname
,
_MAX_FNAME
,
0
,
0
,
&
root
->
fs_flags
,
root
->
fs
,
_MAX_DIR
);
lstrcpy
(
root
->
path
,
drv
);
entry
=
read_tree_win
(
root
,
path
,
child
->
sortOrder
,
hwnd
);
}
entry
=
read_tree
(
root
,
path
,
pidl
,
drv
,
child
->
sortOrder
,
hwnd
);
#ifdef _SHELL_FOLDERS
if
(
root
->
entry
.
etype
==
ET_SHELL
)
...
...
@@ -1359,7 +1369,7 @@ static ChildWnd* alloc_child_window(LPCTSTR path, LPITEMIDLIST pidl, HWND hwnd)
child
->
left
.
root
=
&
root
->
entry
;
child
->
right
.
root
=
NULL
;
set_curdir
(
child
,
entry
,
hwnd
);
set_curdir
(
child
,
entry
,
0
,
hwnd
);
return
child
;
}
...
...
@@ -1551,7 +1561,8 @@ static HWND create_child_window(ChildWnd* child)
ListBox_SetItemHeight
(
child
->
left
.
hwnd
,
1
,
max
(
Globals
.
spaceSize
.
cy
,
IMAGE_HEIGHT
+
3
));
ListBox_SetItemHeight
(
child
->
right
.
hwnd
,
1
,
max
(
Globals
.
spaceSize
.
cy
,
IMAGE_HEIGHT
+
3
));
idx
=
ListBox_FindItemData
(
child
->
left
.
hwnd
,
ListBox_GetCurSel
(
child
->
left
.
hwnd
),
child
->
left
.
cur
);
idx
=
ListBox_FindItemData
(
child
->
left
.
hwnd
,
0
,
child
->
left
.
cur
);
ListBox_SetCurSel
(
child
->
left
.
hwnd
,
idx
);
return
child
->
hwnd
;
...
...
@@ -1814,6 +1825,13 @@ LRESULT CALLBACK FrameWndProc(HWND hwnd, UINT nmsg, WPARAM wparam, LPARAM lparam
PostQuitMessage
(
0
);
break
;
case
WM_INITMENUPOPUP
:
{
HWND
hwndClient
=
(
HWND
)
SendMessage
(
Globals
.
hmdiclient
,
WM_MDIGETACTIVE
,
0
,
0
);
if
(
!
SendMessage
(
hwndClient
,
WM_INITMENUPOPUP
,
wparam
,
lparam
))
return
0
;
break
;}
case
WM_COMMAND
:
{
UINT
cmd
=
LOWORD
(
wparam
);
HWND
hwndClient
=
(
HWND
)
SendMessage
(
Globals
.
hmdiclient
,
WM_MDIGETACTIVE
,
0
,
0
);
...
...
@@ -3091,10 +3109,9 @@ static LRESULT pane_notify(Pane* pane, NMHDR* pnmh)
#endif
/* _NO_EXTENSIONS */
static
void
scan_entry
(
ChildWnd
*
child
,
Entry
*
entry
,
HWND
hwnd
)
static
void
scan_entry
(
ChildWnd
*
child
,
Entry
*
entry
,
int
idx
,
HWND
hwnd
)
{
TCHAR
path
[
MAX_PATH
];
int
idx
=
ListBox_GetCurSel
(
child
->
left
.
hwnd
);
HCURSOR
old_cursor
=
SetCursor
(
LoadCursor
(
0
,
IDC_WAIT
));
/* delete sub entries in left pane */
...
...
@@ -3208,7 +3225,7 @@ static void collapse_entry(Pane* pane, Entry* dir)
}
static
void
set_curdir
(
ChildWnd
*
child
,
Entry
*
entry
,
HWND
hwnd
)
static
void
set_curdir
(
ChildWnd
*
child
,
Entry
*
entry
,
int
idx
,
HWND
hwnd
)
{
TCHAR
path
[
MAX_PATH
];
...
...
@@ -3219,7 +3236,7 @@ static void set_curdir(ChildWnd* child, Entry* entry, HWND hwnd)
child
->
right
.
cur
=
entry
;
if
(
!
entry
->
scanned
)
scan_entry
(
child
,
entry
,
hwnd
);
scan_entry
(
child
,
entry
,
idx
,
hwnd
);
else
{
ListBox_ResetContent
(
child
->
right
.
hwnd
);
insert_entries
(
&
child
->
right
,
entry
->
down
,
-
1
);
...
...
@@ -3241,6 +3258,30 @@ static void set_curdir(ChildWnd* child, Entry* entry, HWND hwnd)
}
static
void
refresh_child
(
ChildWnd
*
child
)
{
TCHAR
path
[
MAX_PATH
],
drv
[
_MAX_DRIVE
+
1
];
Entry
*
entry
;
int
idx
;
get_path
(
child
->
left
.
cur
,
path
);
_tsplitpath
(
path
,
drv
,
NULL
,
NULL
,
NULL
);
child
->
right
.
root
=
NULL
;
scan_entry
(
child
,
&
child
->
root
.
entry
,
0
,
child
->
hwnd
);
entry
=
read_tree
(
&
child
->
root
,
path
,
NULL
,
drv
,
child
->
sortOrder
,
child
->
hwnd
);
insert_entries
(
&
child
->
left
,
child
->
root
.
entry
.
down
,
0
);
set_curdir
(
child
,
entry
,
0
,
child
->
hwnd
);
idx
=
ListBox_FindItemData
(
child
->
left
.
hwnd
,
0
,
child
->
left
.
cur
);
ListBox_SetCurSel
(
child
->
left
.
hwnd
,
idx
);
}
BOOL
launch_file
(
HWND
hwnd
,
LPCTSTR
cmd
,
UINT
nCmdShow
)
{
HINSTANCE
hinst
=
ShellExecute
(
hwnd
,
NULL
/*operation*/
,
cmd
,
NULL
/*parameters*/
,
NULL
/*dir*/
,
nCmdShow
);
...
...
@@ -3318,7 +3359,7 @@ static void activate_entry(ChildWnd* child, Pane* pane, HWND hwnd)
int
scanned_old
=
entry
->
scanned
;
if
(
!
scanned_old
)
scan_entry
(
child
,
entry
,
hwnd
);
scan_entry
(
child
,
entry
,
ListBox_GetCurSel
(
child
->
left
.
hwnd
),
hwnd
);
#ifndef _NO_EXTENSIONS
if
(
entry
->
data
.
cFileName
[
0
]
==
'.'
&&
entry
->
data
.
cFileName
[
1
]
==
'\0'
)
...
...
@@ -3337,7 +3378,7 @@ static void activate_entry(ChildWnd* child, Pane* pane, HWND hwnd)
if
(
!
pane
->
treePane
)
focus_entry
:
{
int
idx
=
ListBox_FindItemData
(
child
->
left
.
hwnd
,
ListBox_GetCurSel
(
child
->
left
.
hwnd
),
entry
);
ListBox_SetCurSel
(
child
->
left
.
hwnd
,
idx
);
set_curdir
(
child
,
entry
,
hwnd
);
set_curdir
(
child
,
entry
,
idx
,
hwnd
);
}
}
...
...
@@ -3403,6 +3444,23 @@ static BOOL pane_command(Pane* pane, UINT cmd)
}
static
void
set_sort_order
(
ChildWnd
*
child
,
SORT_ORDER
sortOrder
)
{
if
(
child
->
sortOrder
!=
sortOrder
)
{
child
->
sortOrder
=
sortOrder
;
refresh_child
(
child
);
}
}
static
void
update_view_menu
(
ChildWnd
*
child
)
{
CheckMenuItem
(
Globals
.
hMenuView
,
ID_VIEW_SORT_NAME
,
child
->
sortOrder
==
SORT_NAME
?
MF_CHECKED
:
MF_UNCHECKED
);
CheckMenuItem
(
Globals
.
hMenuView
,
ID_VIEW_SORT_TYPE
,
child
->
sortOrder
==
SORT_EXT
?
MF_CHECKED
:
MF_UNCHECKED
);
CheckMenuItem
(
Globals
.
hMenuView
,
ID_VIEW_SORT_SIZE
,
child
->
sortOrder
==
SORT_SIZE
?
MF_CHECKED
:
MF_UNCHECKED
);
CheckMenuItem
(
Globals
.
hMenuView
,
ID_VIEW_SORT_DATE
,
child
->
sortOrder
==
SORT_DATE
?
MF_CHECKED
:
MF_UNCHECKED
);
}
static
IContextMenu2
*
s_pctxmenu2
=
NULL
;
static
IContextMenu3
*
s_pctxmenu3
=
NULL
;
...
...
@@ -3654,7 +3712,6 @@ LRESULT CALLBACK ChildWndProc(HWND hwnd, UINT nmsg, WPARAM wparam, LPARAM lparam
#endif
/* _NO_EXTENSIONS */
case
WM_SETFOCUS
:
SetCurrentDirectory
(
child
->
path
);
if
(
SetCurrentDirectory
(
child
->
path
))
set_space_status
();
SetFocus
(
child
->
focus_pane
?
child
->
right
.
hwnd
:
child
->
left
.
hwnd
);
...
...
@@ -3673,7 +3730,7 @@ LRESULT CALLBACK ChildWndProc(HWND hwnd, UINT nmsg, WPARAM wparam, LPARAM lparam
break
;}
case
ID_REFRESH
:
scan_entry
(
child
,
pane
->
cur
,
hwn
d
);
refresh_child
(
chil
d
);
break
;
case
ID_ACTIVATE
:
...
...
@@ -3710,12 +3767,28 @@ LRESULT CALLBACK ChildWndProc(HWND hwnd, UINT nmsg, WPARAM wparam, LPARAM lparam
activate_entry
(
child
,
pane
,
hwnd
);
}
else
scan_entry
(
child
,
pane
->
root
,
hwn
d
);
refresh_child
(
chil
d
);
}
else
display_error
(
hwnd
,
GetLastError
());
break
;}
case
ID_VIEW_SORT_NAME
:
set_sort_order
(
child
,
SORT_NAME
);
break
;
case
ID_VIEW_SORT_TYPE
:
set_sort_order
(
child
,
SORT_EXT
);
break
;
case
ID_VIEW_SORT_SIZE
:
set_sort_order
(
child
,
SORT_SIZE
);
break
;
case
ID_VIEW_SORT_DATE
:
set_sort_order
(
child
,
SORT_DATE
);
break
;
default:
return
pane_command
(
pane
,
LOWORD
(
wparam
));
}
...
...
@@ -3731,7 +3804,7 @@ LRESULT CALLBACK ChildWndProc(HWND hwnd, UINT nmsg, WPARAM wparam, LPARAM lparam
Entry
*
entry
=
(
Entry
*
)
ListBox_GetItemData
(
pane
->
hwnd
,
idx
);
if
(
pane
==
&
child
->
left
)
set_curdir
(
child
,
entry
,
hwnd
);
set_curdir
(
child
,
entry
,
idx
,
hwnd
);
else
pane
->
cur
=
entry
;
break
;}
...
...
@@ -3801,6 +3874,7 @@ LRESULT CALLBACK ChildWndProc(HWND hwnd, UINT nmsg, WPARAM wparam, LPARAM lparam
if
(
CtxMenu_HandleMenuMsg
(
nmsg
,
wparam
,
lparam
))
return
0
;
update_view_menu
(
child
);
break
;
case
WM_MENUCHAR
:
/* only supported by IContextMenu3 */
...
...
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