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
ea61fd37
Commit
ea61fd37
authored
Aug 30, 2005
by
Frank Richter
Committed by
Alexandre Julliard
Aug 30, 2005
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Add an "Install theme" button to the appearance page to allow
convenient copying of the .msstyles file to the Right Place inside the Windows dir.
parent
e364f090
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
136 additions
and
21 deletions
+136
-21
De.rc
programs/winecfg/De.rc
+9
-7
En.rc
programs/winecfg/En.rc
+16
-14
resource.h
programs/winecfg/resource.h
+3
-0
theme.c
programs/winecfg/theme.c
+108
-0
No files found.
programs/winecfg/De.rc
View file @
ea61fd37
...
...
@@ -171,13 +171,13 @@ IDD_APPEARANCE DIALOG DISCARDABLE 0, 0, 260, 250
STYLE WS_CHILD | WS_DISABLED
FONT 8, "MS Shell Dlg"
BEGIN
GROUPBOX " Oberflche ",IDC_STATIC,8,10,244,94
LTEXT "Motiv:",IDC_STATIC,15,22,228,8
COMBOBOX IDC_THEME_THEMECOMBO,15,30,228,14,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
LTEXT "Farbe:",IDC_THEME_COLORTEXT,
15,48,228
,8
COMBOBOX IDC_THEME_COLORCOMBO,
15,56,228
,14,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
LTEXT "Gre:",IDC_THEME_SIZETEXT,
15,74,228
,8
COMBOBOX IDC_THEME_SIZECOMBO,
15,82,228
,14,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
LTEXT "Motiv:",IDC_STATIC,8,10,244,8
COMBOBOX IDC_THEME_THEMECOMBO,8,18,244,14,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
PUSHBUTTON "Motiv installieren...",IDC_THEME_INSTALL,152,32,100,14
LTEXT "Farbe:",IDC_THEME_COLORTEXT,
8,48,244
,8
COMBOBOX IDC_THEME_COLORCOMBO,
8,56,244
,14,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
LTEXT "Gre:",IDC_THEME_SIZETEXT,
8,74,244
,8
COMBOBOX IDC_THEME_SIZECOMBO,
8,82,244
,14,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
END
STRINGTABLE DISCARDABLE
...
...
@@ -195,4 +195,6 @@ BEGIN
IDS_TAB_AUDIO "Audio"
IDS_TAB_ABOUT "ber"
IDS_WINECFG_TITLE "Wine-Konfiguration"
IDS_THEMEFILE "Motiv-Dateien"
IDS_THEMEFILE_SELECT "Motiv-Datei auswhlen"
END
programs/winecfg/En.rc
View file @
ea61fd37
...
...
@@ -173,13 +173,13 @@ IDD_APPEARANCE DIALOG DISCARDABLE 0, 0, 260, 250
STYLE WS_CHILD | WS_DISABLED
FONT 8, "MS Shell Dlg"
BEGIN
GROUPBOX " Theming ",IDC_STATIC,8,10,244,94
LTEXT "Theme:",IDC_STATIC,15,22,228,8
COMBOBOX IDC_THEME_THEMECOMBO,15,30,228,14,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
LTEXT "Color:",IDC_THEME_COLORTEXT,
15,48,228
,8
COMBOBOX IDC_THEME_COLORCOMBO,
15,56,228
,14,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
LTEXT "Size:",IDC_THEME_SIZETEXT,
15,74,228
,8
COMBOBOX IDC_THEME_SIZECOMBO,
15,82,228
,14,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
LTEXT "Theme:",IDC_STATIC,8,10,244,8
COMBOBOX IDC_THEME_THEMECOMBO,8,18,244,14,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
PUSHBUTTON "Install theme...",IDC_THEME_INSTALL,152,32,100,14
LTEXT "Color:",IDC_THEME_COLORTEXT,
8,48,244
,8
COMBOBOX IDC_THEME_COLORCOMBO,
8,56,244
,14,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
LTEXT "Size:",IDC_THEME_SIZETEXT,
8,74,244
,8
COMBOBOX IDC_THEME_SIZECOMBO,
8,82,244
,14,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
END
STRINGTABLE DISCARDABLE
...
...
@@ -197,6 +197,8 @@ BEGIN
IDS_TAB_AUDIO "Audio"
IDS_TAB_ABOUT "About"
IDS_WINECFG_TITLE "Wine configuration"
IDS_THEMEFILE "Theme files"
IDS_THEMEFILE_SELECT "Select a theme file"
END
...
...
@@ -240,11 +242,11 @@ IDD_APPEARANCE DIALOG DISCARDABLE 0, 0, 260, 250
STYLE WS_CHILD | WS_DISABLED
FONT 8, "MS Shell Dlg"
BEGIN
GROUPBOX " Theming ",IDC_STATIC,8,10,244,94
LTEXT "Theme:",IDC_STATIC,15,22,228,8
COMBOBOX IDC_THEME_THEMECOMBO,15,30,228,14,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
LTEXT "Colour:",IDC_THEME_COLORTEXT,15,48,228
,8
COMBOBOX IDC_THEME_COLORCOMBO,15,56,228
,14,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
LTEXT "Size:",IDC_THEME_SIZETEXT,15,74,228
,8
COMBOBOX IDC_THEME_SIZECOMBO,15,82,228
,14,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
LTEXT "Theme:",IDC_STATIC,8,10,244,8
COMBOBOX IDC_THEME_THEMECOMBO,8,18,244,14,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
PUSHBUTTON "Install theme...",IDC_THEME_INSTALL,152,32,100,14
LTEXT "Colour:",IDC_THEME_COLORTEXT,8,48,244
,8
COMBOBOX IDC_THEME_COLORCOMBO,8,56,244
,14,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
LTEXT "Size:",IDC_THEME_SIZETEXT,8,74,244
,8
COMBOBOX IDC_THEME_SIZECOMBO,8,82,244
,14,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
END
programs/winecfg/resource.h
View file @
ea61fd37
...
...
@@ -37,6 +37,8 @@
#define IDS_TAB_AUDIO 11
#define IDS_TAB_ABOUT 12
#define IDS_WINECFG_TITLE 13
#define IDS_THEMEFILE 14
#define IDS_THEMEFILE_SELECT 15
#define IDD_MAINDLG 101
#define IDB_WINE 104
#define IDD_ABOUTCFG 107
...
...
@@ -146,3 +148,4 @@
#define IDC_THEME_SIZECOMBO 1403
#define IDC_THEME_SIZETEXT 1404
#define IDC_THEME_THEMECOMBO 1405
#define IDC_THEME_INSTALL 1406
programs/winecfg/theme.c
View file @
ea61fd37
...
...
@@ -30,6 +30,7 @@
#include <uxtheme.h>
#include <tmschema.h>
#include <shlobj.h>
#include <shlwapi.h>
#include <wine/debug.h>
#include "resource.h"
...
...
@@ -468,6 +469,103 @@ static void apply_theme(HWND dialog)
theme_dirty
=
FALSE
;
}
static
void
on_theme_install
(
HWND
dialog
)
{
static
const
WCHAR
filterMask
[]
=
{
0
,
'*'
,
'.'
,
'm'
,
's'
,
's'
,
't'
,
'y'
,
'l'
,
'e'
,
's'
,
0
,
0
};
const
int
filterMaskLen
=
sizeof
(
filterMask
)
/
sizeof
(
filterMask
[
0
]);
OPENFILENAMEW
ofn
;
WCHAR
filetitle
[
MAX_PATH
];
WCHAR
file
[
MAX_PATH
];
WCHAR
filter
[
100
];
WCHAR
title
[
100
];
LoadStringW
(
GetModuleHandle
(
NULL
),
IDS_THEMEFILE
,
filter
,
sizeof
(
filter
)
/
sizeof
(
filter
[
0
])
-
filterMaskLen
);
memcpy
(
filter
+
lstrlenW
(
filter
),
filterMask
,
filterMaskLen
*
sizeof
(
WCHAR
));
LoadStringW
(
GetModuleHandle
(
NULL
),
IDS_THEMEFILE_SELECT
,
title
,
sizeof
(
title
)
/
sizeof
(
title
[
0
]));
ofn
.
lStructSize
=
sizeof
(
OPENFILENAMEW
);
ofn
.
hwndOwner
=
0
;
ofn
.
hInstance
=
0
;
ofn
.
lpstrFilter
=
filter
;
ofn
.
lpstrCustomFilter
=
NULL
;
ofn
.
nMaxCustFilter
=
0
;
ofn
.
nFilterIndex
=
0
;
ofn
.
lpstrFile
=
file
;
ofn
.
lpstrFile
[
0
]
=
'\0'
;
ofn
.
nMaxFile
=
sizeof
(
file
)
/
sizeof
(
filetitle
[
0
]);
ofn
.
lpstrFileTitle
=
filetitle
;
ofn
.
lpstrFileTitle
[
0
]
=
'\0'
;
ofn
.
nMaxFileTitle
=
sizeof
(
filetitle
)
/
sizeof
(
filetitle
[
0
]);
ofn
.
lpstrInitialDir
=
NULL
;
ofn
.
lpstrTitle
=
title
;
ofn
.
Flags
=
OFN_FILEMUSTEXIST
|
OFN_PATHMUSTEXIST
|
OFN_HIDEREADONLY
;
ofn
.
nFileOffset
=
0
;
ofn
.
nFileExtension
=
0
;
ofn
.
lpstrDefExt
=
NULL
;
ofn
.
lCustData
=
0
;
ofn
.
lpfnHook
=
NULL
;
ofn
.
lpTemplateName
=
NULL
;
if
(
GetOpenFileNameW
(
&
ofn
))
{
static
const
WCHAR
themesSubdir
[]
=
{
'\\'
,
'T'
,
'h'
,
'e'
,
'm'
,
'e'
,
's'
,
0
};
static
const
WCHAR
backslash
[]
=
{
'\\'
,
0
};
WCHAR
themeFilePath
[
MAX_PATH
];
SHFILEOPSTRUCTW
shfop
;
if
(
FAILED
(
SHGetFolderPathW
(
NULL
,
CSIDL_RESOURCES
,
NULL
,
SHGFP_TYPE_CURRENT
,
themeFilePath
)))
return
;
PathRemoveExtensionW
(
filetitle
);
/* Construct path into which the theme file goes */
lstrcatW
(
themeFilePath
,
themesSubdir
);
lstrcatW
(
themeFilePath
,
backslash
);
lstrcatW
(
themeFilePath
,
filetitle
);
/* Create the directory */
SHCreateDirectoryExW
(
dialog
,
themeFilePath
,
NULL
);
/* Append theme file name itself */
lstrcatW
(
themeFilePath
,
backslash
);
lstrcatW
(
themeFilePath
,
PathFindFileNameW
(
file
));
/* SHFileOperation() takes lists as input, so double-nullterminate */
themeFilePath
[
lstrlenW
(
themeFilePath
)
+
1
]
=
0
;
file
[
lstrlenW
(
file
)
+
1
]
=
0
;
/* Do the copying */
WINE_TRACE
(
"copying: %s -> %s
\n
"
,
wine_dbgstr_w
(
file
),
wine_dbgstr_w
(
themeFilePath
));
shfop
.
hwnd
=
dialog
;
shfop
.
wFunc
=
FO_COPY
;
shfop
.
pFrom
=
file
;
shfop
.
pTo
=
themeFilePath
;
shfop
.
fFlags
=
FOF_NOCONFIRMMKDIR
;
if
(
SHFileOperationW
(
&
shfop
)
==
0
)
{
scan_theme_files
();
if
(
!
fill_theme_list
(
GetDlgItem
(
dialog
,
IDC_THEME_THEMECOMBO
),
GetDlgItem
(
dialog
,
IDC_THEME_COLORCOMBO
),
GetDlgItem
(
dialog
,
IDC_THEME_SIZECOMBO
)))
{
SendMessageW
(
GetDlgItem
(
dialog
,
IDC_THEME_COLORCOMBO
),
CB_SETCURSEL
,
(
WPARAM
)
-
1
,
0
);
SendMessageW
(
GetDlgItem
(
dialog
,
IDC_THEME_SIZECOMBO
),
CB_SETCURSEL
,
(
WPARAM
)
-
1
,
0
);
enable_size_and_color_controls
(
dialog
,
FALSE
);
}
else
{
enable_size_and_color_controls
(
dialog
,
TRUE
);
}
}
else
WINE_TRACE
(
"copy operation failed
\n
"
);
}
else
WINE_TRACE
(
"user cancelled
\n
"
);
}
INT_PTR
CALLBACK
ThemeDlgProc
(
HWND
hDlg
,
UINT
uMsg
,
WPARAM
wParam
,
LPARAM
lParam
)
{
...
...
@@ -500,6 +598,16 @@ ThemeDlgProc (HWND hDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
default:
break
;
}
switch
(
LOWORD
(
wParam
))
{
case
IDC_THEME_INSTALL
:
if
(
HIWORD
(
wParam
)
!=
BN_CLICKED
)
break
;
on_theme_install
(
hDlg
);
break
;
default:
break
;
}
break
;
...
...
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