PROPSHEET: Minor improvements
Filip Navara
xnavara at volny.cz
Sat Sep 18 04:11:13 CDT 2004
Changelog:
- Implement PSM_INDEXTOID, PSM_INDEXTOPAGE and PSM_PAGETOINDEX messages.
- Partially implement the PSH_WIZARDCONTEXTHELP and PSH_NOCONTEXTHELP
styles.
-------------- next part --------------
Index: dlls/comctl32/comctl_Cn.rc
===================================================================
RCS file: /home/wine/wine/dlls/comctl32/comctl_Cn.rc,v
retrieving revision 1.4
diff -u -r1.4 comctl_Cn.rc
--- dlls/comctl32/comctl_Cn.rc 24 Aug 2004 18:33:04 -0000 1.4
+++ dlls/comctl32/comctl_Cn.rc 17 Sep 2004 20:29:05 -0000
@@ -20,7 +20,7 @@
#pragma code_page(936)
IDD_PROPSHEET DIALOG DISCARDABLE 0, 0, 220, 140
-STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE
+STYLE DS_CONTEXTHELP | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE
CAPTION "ÊôÐÔ "
FONT 8, "MS Shell Dlg"
BEGIN
Index: dlls/comctl32/comctl_Cs.rc
===================================================================
RCS file: /home/wine/wine/dlls/comctl32/comctl_Cs.rc,v
retrieving revision 1.2
diff -u -r1.2 comctl_Cs.rc
--- dlls/comctl32/comctl_Cs.rc 24 Aug 2004 18:33:04 -0000 1.2
+++ dlls/comctl32/comctl_Cs.rc 17 Sep 2004 20:29:17 -0000
@@ -22,7 +22,7 @@
LANGUAGE LANG_CZECH, SUBLANG_DEFAULT
IDD_PROPSHEET DIALOG DISCARDABLE 0, 0, 220, 140
-STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE
+STYLE DS_CONTEXTHELP | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE
CAPTION "Vlastnosti "
FONT 8, "MS Shell Dlg"
BEGIN
Index: dlls/comctl32/comctl_De.rc
===================================================================
RCS file: /home/wine/wine/dlls/comctl32/comctl_De.rc,v
retrieving revision 1.9
diff -u -r1.9 comctl_De.rc
--- dlls/comctl32/comctl_De.rc 24 Aug 2004 18:33:04 -0000 1.9
+++ dlls/comctl32/comctl_De.rc 17 Sep 2004 20:29:26 -0000
@@ -40,7 +40,7 @@
}
IDD_PROPSHEET DIALOG DISCARDABLE 0, 0, 220, 140
-STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE
+STYLE DS_CONTEXTHELP | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE
CAPTION "Eigenschaften für "
FONT 8, "MS Shell Dlg"
BEGIN
Index: dlls/comctl32/comctl_En.rc
===================================================================
RCS file: /home/wine/wine/dlls/comctl32/comctl_En.rc,v
retrieving revision 1.8
diff -u -r1.8 comctl_En.rc
--- dlls/comctl32/comctl_En.rc 24 Aug 2004 18:33:04 -0000 1.8
+++ dlls/comctl32/comctl_En.rc 17 Sep 2004 20:29:33 -0000
@@ -19,7 +19,7 @@
LANGUAGE LANG_ENGLISH, SUBLANG_DEFAULT
IDD_PROPSHEET DIALOG DISCARDABLE 0, 0, 220, 140
-STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE
+STYLE DS_CONTEXTHELP | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE
CAPTION "Properties for "
FONT 8, "MS Shell Dlg"
BEGIN
Index: dlls/comctl32/comctl_Es.rc
===================================================================
RCS file: /home/wine/wine/dlls/comctl32/comctl_Es.rc,v
retrieving revision 1.4
diff -u -r1.4 comctl_Es.rc
--- dlls/comctl32/comctl_Es.rc 24 Aug 2004 18:33:04 -0000 1.4
+++ dlls/comctl32/comctl_Es.rc 17 Sep 2004 20:29:37 -0000
@@ -19,7 +19,7 @@
LANGUAGE LANG_SPANISH, SUBLANG_DEFAULT
IDD_PROPSHEET DIALOG DISCARDABLE 0, 0, 220, 140
-STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE
+STYLE DS_CONTEXTHELP | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE
CAPTION "Propiedades de "
FONT 8, "MS Shell Dlg"
BEGIN
Index: dlls/comctl32/comctl_Fr.rc
===================================================================
RCS file: /home/wine/wine/dlls/comctl32/comctl_Fr.rc,v
retrieving revision 1.4
diff -u -r1.4 comctl_Fr.rc
--- dlls/comctl32/comctl_Fr.rc 24 Aug 2004 18:33:04 -0000 1.4
+++ dlls/comctl32/comctl_Fr.rc 17 Sep 2004 20:29:40 -0000
@@ -23,7 +23,7 @@
LANGUAGE LANG_FRENCH, SUBLANG_NEUTRAL
IDD_PROPSHEET DIALOG DISCARDABLE 0, 0, 220, 140
-STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE
+STYLE DS_CONTEXTHELP | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE
CAPTION "Propriétés pour "
FONT 8, "MS Shell Dlg"
BEGIN
Index: dlls/comctl32/comctl_It.rc
===================================================================
RCS file: /home/wine/wine/dlls/comctl32/comctl_It.rc,v
retrieving revision 1.5
diff -u -r1.5 comctl_It.rc
--- dlls/comctl32/comctl_It.rc 24 Aug 2004 18:33:04 -0000 1.5
+++ dlls/comctl32/comctl_It.rc 17 Sep 2004 20:29:45 -0000
@@ -20,7 +20,7 @@
LANGUAGE LANG_ITALIAN, SUBLANG_DEFAULT
IDD_PROPSHEET DIALOG DISCARDABLE 0, 0, 220, 140
-STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE
+STYLE DS_CONTEXTHELP | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE
CAPTION "Proprietà per "
FONT 8, "MS Shell Dlg"
BEGIN
Index: dlls/comctl32/comctl_Ja.rc
===================================================================
RCS file: /home/wine/wine/dlls/comctl32/comctl_Ja.rc,v
retrieving revision 1.5
diff -u -r1.5 comctl_Ja.rc
--- dlls/comctl32/comctl_Ja.rc 10 May 2004 21:26:04 -0000 1.5
+++ dlls/comctl32/comctl_Ja.rc 17 Sep 2004 20:29:52 -0000
@@ -19,7 +19,7 @@
LANGUAGE LANG_JAPANESE, SUBLANG_DEFAULT
IDD_PROPSHEET DIALOG DISCARDABLE 0, 0, 220, 140
-STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE
+STYLE DS_CONTEXTHELP | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE
CAPTION "Properties for "
FONT 9, "MS UI Gothic"
BEGIN
Index: dlls/comctl32/comctl_Ko.rc
===================================================================
RCS file: /home/wine/wine/dlls/comctl32/comctl_Ko.rc,v
retrieving revision 1.4
diff -u -r1.4 comctl_Ko.rc
--- dlls/comctl32/comctl_Ko.rc 24 Aug 2004 18:33:04 -0000 1.4
+++ dlls/comctl32/comctl_Ko.rc 17 Sep 2004 20:29:58 -0000
@@ -19,7 +19,7 @@
LANGUAGE LANG_KOREAN, SUBLANG_DEFAULT
IDD_PROPSHEET DIALOG DISCARDABLE 0, 0, 220, 140
-STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE
+STYLE DS_CONTEXTHELP | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE
CAPTION "Properties for "
FONT 9, "MS Shell Dlg"
BEGIN
Index: dlls/comctl32/comctl_Nl.rc
===================================================================
RCS file: /home/wine/wine/dlls/comctl32/comctl_Nl.rc,v
retrieving revision 1.4
diff -u -r1.4 comctl_Nl.rc
--- dlls/comctl32/comctl_Nl.rc 24 Aug 2004 18:33:04 -0000 1.4
+++ dlls/comctl32/comctl_Nl.rc 17 Sep 2004 20:30:03 -0000
@@ -21,7 +21,7 @@
LANGUAGE LANG_DUTCH, SUBLANG_DEFAULT
IDD_PROPSHEET DIALOG DISCARDABLE 0, 0, 220, 140
-STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE
+STYLE DS_CONTEXTHELP | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE
CAPTION "Eigenschappen van "
FONT 8, "MS Shell Dlg"
BEGIN
Index: dlls/comctl32/comctl_Pl.rc
===================================================================
RCS file: /home/wine/wine/dlls/comctl32/comctl_Pl.rc,v
retrieving revision 1.4
diff -u -r1.4 comctl_Pl.rc
--- dlls/comctl32/comctl_Pl.rc 24 Aug 2004 18:33:04 -0000 1.4
+++ dlls/comctl32/comctl_Pl.rc 17 Sep 2004 20:30:07 -0000
@@ -20,7 +20,7 @@
LANGUAGE LANG_POLISH, SUBLANG_DEFAULT
IDD_PROPSHEET DIALOG DISCARDABLE 0, 0, 220, 140
-STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE
+STYLE DS_CONTEXTHELP | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE
CAPTION "W³aciwoci "
FONT 8, "MS Shell Dlg"
BEGIN
Index: dlls/comctl32/comctl_Pt.rc
===================================================================
RCS file: /home/wine/wine/dlls/comctl32/comctl_Pt.rc,v
retrieving revision 1.4
diff -u -r1.4 comctl_Pt.rc
--- dlls/comctl32/comctl_Pt.rc 24 Aug 2004 18:33:04 -0000 1.4
+++ dlls/comctl32/comctl_Pt.rc 17 Sep 2004 20:30:11 -0000
@@ -19,7 +19,7 @@
LANGUAGE LANG_PORTUGUESE, SUBLANG_DEFAULT
IDD_PROPSHEET DIALOG DISCARDABLE 0, 0, 220, 140
-STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE
+STYLE DS_CONTEXTHELP | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE
CAPTION "Propriedades para "
FONT 8, "MS Shell Dlg"
BEGIN
Index: dlls/comctl32/comctl_Ru.rc
===================================================================
RCS file: /home/wine/wine/dlls/comctl32/comctl_Ru.rc,v
retrieving revision 1.4
diff -u -r1.4 comctl_Ru.rc
--- dlls/comctl32/comctl_Ru.rc 24 Aug 2004 18:33:04 -0000 1.4
+++ dlls/comctl32/comctl_Ru.rc 17 Sep 2004 20:30:16 -0000
@@ -21,7 +21,7 @@
LANGUAGE LANG_RUSSIAN, SUBLANG_DEFAULT
IDD_PROPSHEET DIALOG DISCARDABLE 0, 0, 220, 140
-STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE
+STYLE DS_CONTEXTHELP | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE
CAPTION "Ñâîéñòâà äëÿ "
FONT 8, "MS Shell Dlg"
BEGIN
Index: dlls/comctl32/comctl_Si.rc
===================================================================
RCS file: /home/wine/wine/dlls/comctl32/comctl_Si.rc,v
retrieving revision 1.5
diff -u -r1.5 comctl_Si.rc
--- dlls/comctl32/comctl_Si.rc 24 Aug 2004 18:33:04 -0000 1.5
+++ dlls/comctl32/comctl_Si.rc 17 Sep 2004 20:30:22 -0000
@@ -19,7 +19,7 @@
LANGUAGE LANG_SLOVENIAN, SUBLANG_DEFAULT
IDD_PROPSHEET DIALOG DISCARDABLE 0, 0, 220, 140
-STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE
+STYLE DS_CONTEXTHELP | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE
CAPTION "Lastnosti"
FONT 8, "MS Shell Dlg"
BEGIN
Index: dlls/comctl32/comctl_Th.rc
===================================================================
RCS file: /home/wine/wine/dlls/comctl32/comctl_Th.rc,v
retrieving revision 1.4
diff -u -r1.4 comctl_Th.rc
--- dlls/comctl32/comctl_Th.rc 24 Aug 2004 18:33:04 -0000 1.4
+++ dlls/comctl32/comctl_Th.rc 17 Sep 2004 20:30:30 -0000
@@ -19,7 +19,7 @@
LANGUAGE LANG_THAI, SUBLANG_DEFAULT
IDD_PROPSHEET DIALOG DISCARDABLE 0, 0, 220, 140
-STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE
+STYLE DS_CONTEXTHELP | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE
CAPTION "¤Ø³ÊÁºÑµÔ¢Í§ "
FONT 8, "MS Shell Dlg"
BEGIN
Index: dlls/comctl32/comctl_Uk.rc
===================================================================
RCS file: /home/wine/wine/dlls/comctl32/comctl_Uk.rc,v
retrieving revision 1.4
diff -u -r1.4 comctl_Uk.rc
--- dlls/comctl32/comctl_Uk.rc 24 Aug 2004 18:33:04 -0000 1.4
+++ dlls/comctl32/comctl_Uk.rc 17 Sep 2004 20:30:33 -0000
@@ -21,7 +21,7 @@
LANGUAGE LANG_UKRAINIAN, SUBLANG_DEFAULT
IDD_PROPSHEET DIALOG DISCARDABLE 0, 0, 220, 140
-STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE
+STYLE DS_CONTEXTHELP | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_VISIBLE
CAPTION "Âëàñòèâîñò³ äëÿ "
FONT 8, "MS Shell Dlg"
BEGIN
Index: dlls/comctl32/propsheet.c
===================================================================
RCS file: /home/wine/wine/dlls/comctl32/propsheet.c,v
retrieving revision 1.119
diff -u -r1.119 propsheet.c
--- dlls/comctl32/propsheet.c 14 Sep 2004 01:06:44 -0000 1.119
+++ dlls/comctl32/propsheet.c 18 Sep 2004 08:53:35 -0000
@@ -34,13 +34,12 @@
* - Messages:
* o PSM_GETRESULT
* o PSM_IDTOINDEX
- * o PSM_INDEXTOID
- * o PSM_INDEXTOPAGE
* o PSM_INSERTPAGE
- * o PSM_PAGETOINDEX
* o PSM_RECALCPAGESIZES
* o PSM_SETHEADERSUBTITLE
* o PSM_SETHEADERTITLE
+ * o WM_HELP
+ * o WM_CONTEXTMENU
* - Notifications:
* o PSN_GETOBJECT
* o PSN_QUERYINITIALFOCUS
@@ -48,10 +47,8 @@
* - Styles:
* o PSH_WIZARDHASFINISH
* o PSH_RTLREADING
- * o PSH_WIZARDCONTEXTHELP
* o PSH_STRETCHWATERMARK
* o PSH_USEPAGELANG
- * o PSH_NOCONTEXTHELP
* o PSH_USEPSTARTPAGE
* - Page styles:
* o PSP_USEFUSIONCONTEXT
@@ -237,18 +234,14 @@
* unhandled header flags:
* PSH_WIZARDHASFINISH 0x00000010
* PSH_RTLREADING 0x00000800
- * PSH_WIZARDCONTEXTHELP 0x00001000
* PSH_STRETCHWATERMARK 0x00040000
* PSH_USEPAGELANG 0x00200000
- * PSH_NOCONTEXTHELP 0x02000000 also not in .h
*/
add_flag(PSH_WIZARDHASFINISH);
add_flag(PSH_RTLREADING);
- add_flag(PSH_WIZARDCONTEXTHELP);
add_flag(PSH_STRETCHWATERMARK);
add_flag(PSH_USEPAGELANG);
- add_flag(PSH_NOCONTEXTHELP);
if (string[0] != '\0')
FIXME("%s\n", string);
}
@@ -689,9 +682,29 @@
memcpy(temp, template, resSize);
+ if (psInfo->ppshheader.dwFlags & PSH_NOCONTEXTHELP)
+ {
+ if (((MyDLGTEMPLATEEX*)temp)->signature == 0xFFFF)
+ ((MyDLGTEMPLATEEX*)temp)->style &= ~DS_CONTEXTHELP;
+ else
+ ((DLGTEMPLATE*)temp)->style &= ~DS_CONTEXTHELP;
+ }
+ if ((psInfo->ppshheader.dwFlags & INTRNL_ANY_WIZARD) &&
+ (psInfo->ppshheader.dwFlags & PSH_WIZARDCONTEXTHELP))
+ {
+ if (((MyDLGTEMPLATEEX*)temp)->signature == 0xFFFF)
+ ((MyDLGTEMPLATEEX*)temp)->style |= DS_CONTEXTHELP;
+ else
+ ((DLGTEMPLATE*)temp)->style |= DS_CONTEXTHELP;
+ }
+
if (psInfo->useCallback)
(*(psInfo->ppshheader.pfnCallback))(0, PSCB_PRECREATE, (LPARAM)temp);
+ /* NOTE: MSDN states "Returns a positive value if successful, or -1
+ * otherwise for modal property sheets.", but this is wrong. The
+ * actual return value is either TRUE (success), FALSE (cancel) or
+ * -1 (error). */
if( psInfo->unicode )
{
if (!(psInfo->ppshheader.dwFlags & PSH_MODELESS))
@@ -2568,7 +2581,16 @@
*/
static LRESULT PROPSHEET_PageToIndex(HWND hwndDlg, HPROPSHEETPAGE hPage)
{
- FIXME("(%p, %p): stub\n", hwndDlg, hPage);
+ int index;
+ PropSheetInfo * psInfo = (PropSheetInfo*) GetPropW(hwndDlg,
+ PropSheetInfoStr);
+
+ TRACE("(%p, %p)\n", hwndDlg, hPage);
+
+ for (index = 0; index < psInfo->nPages; index++)
+ if (psInfo->proppage[index].hpage == hPage)
+ return index;
+ WARN("%p not found\n", hPage);
return -1;
}
@@ -2577,8 +2599,14 @@
*/
static LRESULT PROPSHEET_IndexToPage(HWND hwndDlg, int iPageIndex)
{
- FIXME("(%p, %d): stub\n", hwndDlg, iPageIndex);
- return 0;
+ PropSheetInfo * psInfo = (PropSheetInfo*) GetPropW(hwndDlg,
+ PropSheetInfoStr);
+ TRACE("(%p, %d)\n", hwndDlg, iPageIndex);
+ if (iPageIndex<0 || iPageIndex>=psInfo->nPages) {
+ WARN("%d out of range.\n", iPageIndex);
+ return 0;
+ }
+ return (LRESULT)psInfo->proppage[iPageIndex].hpage;
}
/******************************************************************************
@@ -2595,8 +2623,19 @@
*/
static LRESULT PROPSHEET_IndexToId(HWND hwndDlg, int iPageIndex)
{
- FIXME("(%p, %d): stub\n", hwndDlg, iPageIndex);
- return 0;
+ PropSheetInfo * psInfo = (PropSheetInfo*) GetPropW(hwndDlg,
+ PropSheetInfoStr);
+ LPCPROPSHEETPAGEW psp;
+ TRACE("(%p, %d)\n", hwndDlg, iPageIndex);
+ if (iPageIndex<0 || iPageIndex>=psInfo->nPages) {
+ WARN("%d out of range.\n", iPageIndex);
+ return 0;
+ }
+ psp = (LPCPROPSHEETPAGEW)psInfo->proppage[iPageIndex].hpage;
+ if (psp->dwFlags & PSP_DLGINDIRECT || HIWORD(psp->u.pszTemplate)) {
+ return 0;
+ }
+ return (LRESULT)psp->u.pszTemplate;
}
/******************************************************************************
More information about the wine-patches
mailing list