bd5d5dec7c8dcd25121d3b11eeb96924ba196d73
8 InsSpacePos(LPCTSTR szInsStr
, const int nPos
)
15 pszDestStr
= (LPTSTR
)malloc(MAX_SAMPLES_STR_SIZE
* sizeof(TCHAR
));
17 _tcscpy(pszDestStr
, szInsStr
);
19 nStrSize
= _tcslen(szInsStr
);
21 for (nStrCnt
= 0; nStrCnt
< nStrSize
; nStrCnt
++)
23 if (nStrCnt
== nStrSize
- nPos
)
25 pszDestStr
[nDestStrCnt
] = _T(' ');
29 pszDestStr
[nDestStrCnt
] = szInsStr
[nStrCnt
];
33 pszDestStr
[nDestStrCnt
] = _T('\0');
38 /* Insert the spaces by format string separated by ';' */
40 InsSpacesFmt(LPCTSTR szSourceStr
, LPCTSTR szFmtStr
)
51 pszDestStr
= (LPTSTR
)malloc(255 * sizeof(TCHAR
));
53 _tcscpy(pszDestStr
, szSourceStr
);
55 /* if format is clean return source string */
59 /* Search for all format values */
60 for (nFmtCount
= 0; nFmtCount
<= _tcslen(szFmtStr
); nFmtCount
++)
62 if (szFmtStr
[nFmtCount
] == _T(';') || szFmtStr
[nFmtCount
] == _T('\0'))
64 if (_ttoi(szFmtVal
) == 0 && !wasNul
)
70 /* If was 0, repeat spaces */
73 nSpaceOffset
+= nLastVal
;
77 nSpaceOffset
+= _ttoi(szFmtVal
);
80 szFmtVal
[nValCount
] = _T('\0');
83 /* insert space to finded position plus all pos before */
84 pszTempStr
= InsSpacePos(pszDestStr
, nSpaceOffset
);
85 _tcscpy(pszDestStr
,pszTempStr
);
88 /* num of spaces total increment */
92 nLastVal
= _ttoi(szFmtVal
);
97 szFmtVal
[nValCount
++] = szFmtStr
[nFmtCount
];
101 /* Create spaces for rest part of string */
102 if (wasNul
&& nLastVal
!= 0)
104 for (nFmtCount
= nSpaceOffset
+ nLastVal
; nFmtCount
< _tcslen(pszDestStr
); nFmtCount
+= nLastVal
+ 1)
106 pszTempStr
= InsSpacePos(pszDestStr
, nFmtCount
);
107 _tcscpy(pszDestStr
, pszTempStr
);
115 /* Replace given template in source string with string to replace and return recieved string */
117 ReplaceSubStr(LPCTSTR szSourceStr
,
118 LPCTSTR szStrToReplace
,
127 szDestStr
= (LPTSTR
)malloc(MAX_SAMPLES_STR_SIZE
* sizeof(TCHAR
));
132 _tcscpy(szDestStr
, _T(""));
134 while (nFirstCharCnt
< _tcslen(szSourceStr
))
136 if (szSourceStr
[nFirstCharCnt
] == szTempl
[0])
139 for (nCharCnt
= nFirstCharCnt
; nCharCnt
< nFirstCharCnt
+ _tcslen(szTempl
); nCharCnt
++)
141 if (szSourceStr
[nCharCnt
] == szTempl
[nSubStrCnt
])
150 if (_tcslen(szTempl
) == nSubStrCnt
)
152 _tcscat(szDestStr
, szStrToReplace
);
153 nDestStrCnt
= _tcslen(szDestStr
);
154 nFirstCharCnt
+= _tcslen(szTempl
) - 1;
161 szDestStr
[nDestStrCnt
++] = szSourceStr
[nFirstCharCnt
];
162 szDestStr
[nDestStrCnt
] = _T('\0');
173 InitPropSheetPage(PROPSHEETPAGE
*psp
, WORD idDlg
, DLGPROC DlgProc
, PGLOBALDATA pGlobalData
)
175 ZeroMemory(psp
, sizeof(PROPSHEETPAGE
));
176 psp
->dwSize
= sizeof(PROPSHEETPAGE
);
177 psp
->dwFlags
= PSP_DEFAULT
;
178 psp
->hInstance
= hApplet
;
179 psp
->pszTemplate
= MAKEINTRESOURCE(idDlg
);
180 psp
->pfnDlgProc
= DlgProc
;
181 psp
->lParam
= (LPARAM
)pGlobalData
;
188 SetupApplet(HWND hwndDlg
, LCID lcid
)
190 PROPSHEETPAGE PsPage
[NUM_SHEETS
+ 1];
192 PGLOBALDATA pGlobalData
;
193 TCHAR Caption
[MAX_STR_SIZE
];
196 LoadString(hApplet
, IDS_CUSTOMIZE_TITLE
, Caption
, sizeof(Caption
) / sizeof(TCHAR
));
198 pGlobalData
= (PGLOBALDATA
)malloc(sizeof(GLOBALDATA
));
200 pGlobalData
->lcid
= lcid
;
202 ZeroMemory(&psh
, sizeof(PROPSHEETHEADER
));
203 psh
.dwSize
= sizeof(PROPSHEETHEADER
);
204 psh
.dwFlags
= PSH_PROPSHEETPAGE
| PSH_USECALLBACK
| PSH_PROPTITLE
;
205 psh
.hwndParent
= hwndDlg
;
206 psh
.hInstance
= hApplet
;
207 psh
.hIcon
= LoadIcon(hApplet
, MAKEINTRESOURCE(IDC_CPLICON
));
208 psh
.pszCaption
= Caption
;
209 psh
.nPages
= (sizeof(PsPage
) / sizeof(PROPSHEETPAGE
)) - 1;
213 InitPropSheetPage(&PsPage
[0], IDD_NUMBERSPAGE
, NumbersPageProc
, pGlobalData
);
214 InitPropSheetPage(&PsPage
[1], IDD_CURRENCYPAGE
, CurrencyPageProc
, pGlobalData
);
215 InitPropSheetPage(&PsPage
[2], IDD_TIMEPAGE
, TimePageProc
, pGlobalData
);
216 InitPropSheetPage(&PsPage
[3], IDD_DATEPAGE
, DatePageProc
, pGlobalData
);
218 if (IsSortPageNeeded(lcid
))
221 InitPropSheetPage(&PsPage
[4], IDD_SORTPAGE
, SortPageProc
, pGlobalData
);
224 ret
= PropertySheet(&psh
);
228 return (LONG
)(ret
!= -1);