Changeset 3585 for trunk/src/comctl32/propsheet.cpp
- Timestamp:
- May 22, 2000, 7:25:13 PM (25 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/comctl32/propsheet.cpp
r3154 r3585 1 /* $Id: propsheet.cpp,v 1. 3 2000-03-18 16:17:26cbratschi Exp $ */1 /* $Id: propsheet.cpp,v 1.4 2000-05-22 17:25:10 cbratschi Exp $ */ 2 2 /* 3 3 * Property Sheets … … 14 14 15 15 /* 16 - Corel WINE 20000 317level16 - Corel WINE 20000513 level 17 17 - (WINE 991212 level) 18 18 */ … … 380 380 EnableWindow( owner, TRUE ); 381 381 } 382 retval = dlgInfo-> idResult;382 retval = dlgInfo->dlgExtra->idResult; 383 383 #endif 384 384 DestroyWindow( hwnd ); … … 1001 1001 DLGTEMPLATE* pTemplate; 1002 1002 HWND hwndPage; 1003 RECT rc; 1003 1004 1004 PropPageInfo* ppInfo = psInfo->proppage; 1005 PADDING_INFO padding;1006 1005 1007 1006 // TRACE("index %d\n", index); … … 1044 1043 else 1045 1044 { 1046 pTemplate->style |= WS_CHILD | DS_CONTROL;1045 pTemplate->style |= WS_CHILDWINDOW | DS_CONTROL; 1047 1046 pTemplate->style &= ~DS_MODALFRAME; 1048 1047 pTemplate->style &= ~WS_CAPTION; … … 1066 1065 ppInfo[index].hwndPage = hwndPage; 1067 1066 1068 rc.left = psInfo->x;1069 rc.top = psInfo->y;1070 rc.right = psInfo->width;1071 rc.bottom = psInfo->height;1072 1073 MapDialogRect(hwndParent, &rc);1074 1075 if (psInfo->ppshheader->dwFlags & PSH_WIZARD)1076 padding = PROPSHEET_GetPaddingInfoWizard(hwndParent);1077 else1078 {1079 /*1080 * Ask the Tab control to fit this page in.1081 */1082 1083 HWND hwndTabCtrl = GetDlgItem(hwndParent, IDC_TABCONTROL);1084 SendMessageA(hwndTabCtrl, TCM_ADJUSTRECT, FALSE, (LPARAM)&rc);1085 padding = PROPSHEET_GetPaddingInfo(hwndParent);1086 }1087 1088 SetWindowPos(hwndPage, HWND_TOP,1089 rc.left + padding.x,1090 rc.top + padding.y,1091 0, 0, SWP_NOSIZE);1092 1093 1067 return TRUE; 1094 1068 } … … 1101 1075 static BOOL PROPSHEET_ShowPage(HWND hwndDlg, int index, PropSheetInfo * psInfo) 1102 1076 { 1077 RECT rc; 1078 PADDING_INFO padding; 1079 UINT pageWidth,pageHeight; 1080 1103 1081 if (index == psInfo->active_page) 1104 1082 { … … 1133 1111 } 1134 1112 1135 ShowWindow(psInfo->proppage[index].hwndPage, SW_SHOW); 1113 if (psInfo->active_page != -1) 1114 { 1115 ShowWindow(psInfo->proppage[psInfo->active_page].hwndPage, SW_HIDE); 1116 } 1117 1118 /* HACK: Sometimes a property page doesn't get displayed at the right place inside the 1119 * property sheet. This will force the window to be placed at the proper location 1120 * before it is displayed. 1121 */ 1122 rc.left = psInfo->x; 1123 rc.top = psInfo->y; 1124 rc.right = psInfo->width; 1125 rc.bottom = psInfo->height; 1126 1127 MapDialogRect(hwndDlg, &rc); 1128 1129 pageWidth = rc.right - rc.left; 1130 pageHeight = rc.bottom - rc.top; 1131 1132 if (psInfo->ppshheader->dwFlags & PSH_WIZARD) 1133 padding = PROPSHEET_GetPaddingInfoWizard(hwndDlg); 1134 else 1135 { 1136 /* 1137 * Ask the Tab control to fit this page in. 1138 */ 1139 1140 HWND hwndTabCtrl = GetDlgItem(hwndDlg, IDC_TABCONTROL); 1141 SendMessageA(hwndTabCtrl, TCM_ADJUSTRECT, FALSE, (LPARAM)&rc); 1142 padding = PROPSHEET_GetPaddingInfo(hwndDlg); 1143 } 1144 1145 SetWindowPos(psInfo->proppage[index].hwndPage, HWND_TOP, 1146 rc.left + padding.x, 1147 rc.top + padding.y, 1148 pageWidth, pageHeight, SWP_SHOWWINDOW); 1136 1149 1137 1150 if (!(psInfo->ppshheader->dwFlags & PSH_WIZARD)) … … 1305 1318 } 1306 1319 1320 EnableWindow(GetDlgItem(hwndDlg, IDC_APPLY_BUTTON), FALSE); 1321 1307 1322 if(lParam) 1308 1323 { 1324 int result = TRUE; 1325 1309 1326 psInfo->activeValid = FALSE; 1327 1328 if (psInfo->restartWindows) 1329 result = ID_PSRESTARTWINDOWS; 1330 1331 /* reboot system takes precedence over restart windows */ 1332 if (psInfo->rebootSystem) 1333 result = ID_PSREBOOTSYSTEM; 1334 1335 if (!psInfo->isModeless) 1336 EndDialog(hwndDlg, result); 1310 1337 } 1311 1338 else if(psInfo->active_page >= 0) … … 1451 1478 { 1452 1479 case PSBTN_APPLYNOW: 1453 SendMessageA(hwndDlg, WM_COMMAND, IDC_APPLY_BUTTON, 0);1480 PROPSHEET_Apply(hwndDlg, 0); 1454 1481 break; 1482 1455 1483 case PSBTN_BACK: 1456 1484 PROPSHEET_Back(hwndDlg); 1457 1485 break; 1486 1458 1487 case PSBTN_CANCEL: 1459 SendMessageA(hwndDlg, WM_COMMAND, IDCANCEL, 0);1488 PROPSHEET_Cancel(hwndDlg, 0); 1460 1489 break; 1490 1461 1491 case PSBTN_FINISH: 1462 1492 PROPSHEET_Finish(hwndDlg); 1463 1493 break; 1494 1464 1495 case PSBTN_HELP: 1465 SendMessageA(hwndDlg, WM_COMMAND, IDHELP, 0);1496 PROPSHEET_Help(hwndDlg); 1466 1497 break; 1498 1467 1499 case PSBTN_NEXT: 1468 1500 PROPSHEET_Next(hwndDlg); 1469 1501 break; 1502 1470 1503 case PSBTN_OK: 1471 SendMessageA(hwndDlg, WM_COMMAND, IDOK, 0);1504 PROPSHEET_Apply(hwndDlg, 1); 1472 1505 break; 1473 default: 1474 //FIXME(propsheet, "Invalid button index %d\n", buttonID);1475 break;1506 1507 //default: 1508 // FIXME("Invalid button index %d\n", buttonID); 1476 1509 } 1477 1510 } … … 2185 2218 { 2186 2219 WORD wID = LOWORD(wParam); 2220 PropSheetInfo* psInfo = (PropSheetInfo*) GetPropA(hwnd,PropSheetInfoStr); 2187 2221 2188 2222 switch (wID) … … 2190 2224 case IDOK: 2191 2225 case IDC_APPLY_BUTTON: 2192 { 2193 HWND hwndApplyBtn = GetDlgItem(hwnd, IDC_APPLY_BUTTON); 2194 2195 if (PROPSHEET_Apply(hwnd, wID == IDOK ? 1: 0) == FALSE) 2196 break; 2197 2198 if (wID == IDOK) 2199 { 2200 PropSheetInfo* psInfo = (PropSheetInfo*) GetPropA(hwnd, 2201 PropSheetInfoStr); 2202 int result = TRUE; 2203 2204 if (psInfo->restartWindows) 2205 result = ID_PSRESTARTWINDOWS; 2206 2207 /* reboot system takes precedence over restart windows */ 2208 if (psInfo->rebootSystem) 2209 result = ID_PSREBOOTSYSTEM; 2210 2211 if (psInfo->isModeless) 2212 psInfo->activeValid = FALSE; 2213 else 2214 EndDialog(hwnd, result); 2215 } 2216 else 2217 EnableWindow(hwndApplyBtn, FALSE); 2218 2226 PROPSHEET_Apply(hwnd, wID == IDOK ? 1: 0); 2219 2227 break; 2220 }2221 2228 2222 2229 case IDC_BACK_BUTTON: … … 2239 2246 PROPSHEET_Help(hwnd); 2240 2247 break; 2248 2249 default: 2250 if(psInfo->active_page != -1) 2251 { 2252 return SendMessageA(psInfo->proppage[psInfo->active_page].hwndPage, 2253 uMsg, wParam, lParam); 2254 } 2241 2255 } 2242 2256
Note:
See TracChangeset
for help on using the changeset viewer.