ReactOS Fundraising Campaign 2012
 
€ 4,410 / € 30,000

Information | Donate

Home | Info | Community | Development | myReactOS | Contact Us

  1. Home
  2. Community
  3. Development
  4. myReactOS
  5. Fundraiser 2012

  1. Main Page
  2. Alphabetical List
  3. Data Structures
  4. Directories
  5. File List
  6. Data Fields
  7. Globals
  8. Related Pages

ReactOS Development > Doxygen

currency.c
Go to the documentation of this file.
00001 /*
00002  *  ReactOS
00003  *  Copyright (C) 2004 ReactOS Team
00004  *
00005  *  This program is free software; you can redistribute it and/or modify
00006  *  it under the terms of the GNU General Public License as published by
00007  *  the Free Software Foundation; either version 2 of the License, or
00008  *  (at your option) any later version.
00009  *
00010  *  This program is distributed in the hope that it will be useful,
00011  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
00012  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00013  *  GNU General Public License for more details.
00014  *
00015  *  You should have received a copy of the GNU General Public License along
00016  *  with this program; if not, write to the Free Software Foundation, Inc.,
00017  *  51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
00018  */
00019 /* $Id: currency.c 54535 2011-11-29 14:55:58Z dgorbachev $
00020  *
00021  * PROJECT:         ReactOS International Control Panel
00022  * FILE:            dll/cpl/intl/currency.c
00023  * PURPOSE:         Currency property page
00024  * PROGRAMMER:      Eric Kohl
00025  */
00026 
00027 #include "intl.h"
00028 
00029 #define POSITIVE_EXAMPLE   _T("123456789.00")
00030 #define NEGATIVE_EXAMPLE   _T("-123456789.00")
00031 #define MAX_FIELD_DIG_SAMPLES       3
00032 
00033 
00034 static VOID
00035 UpdateExamples(HWND hwndDlg, PGLOBALDATA pGlobalData)
00036 {
00037     TCHAR szBuffer[MAX_FMT_SIZE];
00038 
00039     /* Positive example */
00040     GetCurrencyFormat(pGlobalData->lcid, 0,
00041                       POSITIVE_EXAMPLE,
00042                       NULL, szBuffer, MAX_FMT_SIZE);
00043 
00044     SendMessage(GetDlgItem(hwndDlg, IDC_CURRENCYPOSSAMPLE), WM_SETTEXT, 0, (LPARAM)szBuffer);
00045 
00046     /* Negative example */
00047     GetCurrencyFormat(pGlobalData->lcid, 0,
00048                       NEGATIVE_EXAMPLE,
00049                       NULL, szBuffer, MAX_FMT_SIZE);
00050 
00051     SendMessage(GetDlgItem(hwndDlg, IDC_CURRENCYNEGSAMPLE), WM_SETTEXT, 0, (LPARAM)szBuffer);
00052 }
00053 
00054 
00055 static VOID
00056 InitCurrencySymbols(HWND hwndDlg, PGLOBALDATA pGlobalData)
00057 {
00058     TCHAR szBuffer[MAX_FMT_SIZE];
00059 
00060     /* Limit text length */
00061     SendMessage(GetDlgItem(hwndDlg, IDC_CURRENCYSYMBOL),
00062                 CB_LIMITTEXT,
00063                 MAX_CURRENCYSYMBOL,
00064                 0);
00065 
00066     /* Set currency symbols */
00067     GetLocaleInfo(pGlobalData->lcid,
00068                   LOCALE_SCURRENCY,
00069                   szBuffer, MAX_FMT_SIZE);
00070 
00071     SendMessage(GetDlgItem(hwndDlg, IDC_CURRENCYSYMBOL),
00072                 CB_ADDSTRING,
00073                 0,
00074                 (LPARAM)szBuffer);
00075 
00076     SendMessage(GetDlgItem(hwndDlg, IDC_CURRENCYSYMBOL),
00077                 CB_SETCURSEL,
00078                 0, /* Index */
00079                 0);
00080 }
00081 
00082 
00083 static VOID
00084 InitCurrencyPositiveFormats(HWND hwndDlg, PGLOBALDATA pGlobalData)
00085 {
00086     TCHAR szDecimalSep[MAX_FMT_SIZE];
00087     TCHAR szThousandSep[MAX_FMT_SIZE];
00088     TCHAR szCurrencySymbol[MAX_FMT_SIZE];
00089     TCHAR szBuffer[MAX_FMT_SIZE];
00090     CURRENCYFMT cyFmt;
00091     INT nPositiveOrder = 0;
00092     INT ret;
00093     INT i;
00094 
00095 
00096     /* Get positive format */
00097     ret = GetLocaleInfo(pGlobalData->lcid,
00098                         LOCALE_ICURRENCY,
00099                         szBuffer, MAX_FMT_SIZE);
00100     if (ret != 0)
00101     {
00102         nPositiveOrder = _ttoi(szBuffer);
00103     }
00104 
00105     /* Get number of fractional digits */
00106     ret = GetLocaleInfo(pGlobalData->lcid,
00107                         LOCALE_ICURRDIGITS,
00108                         szBuffer, MAX_FMT_SIZE);
00109     if (ret != 0)
00110     {
00111         cyFmt.NumDigits = _ttoi(szBuffer);
00112     }
00113     else
00114     {
00115         cyFmt.NumDigits = 0;
00116     }
00117 
00118     /* Get decimal separator */
00119     ret = GetLocaleInfo(pGlobalData->lcid,
00120                         LOCALE_SMONDECIMALSEP,
00121                         szDecimalSep, MAX_FMT_SIZE);
00122 
00123     /* Get group separator */
00124     ret = GetLocaleInfo(pGlobalData->lcid,
00125                         LOCALE_SMONTHOUSANDSEP,
00126                         szThousandSep, MAX_FMT_SIZE);
00127 
00128     /* Get currency symbol */
00129     ret = GetLocaleInfo(pGlobalData->lcid,
00130                         LOCALE_SCURRENCY,
00131                         szCurrencySymbol, MAX_FMT_SIZE);
00132 
00133     /* positive currency values */
00134     cyFmt.LeadingZero = 0;
00135     cyFmt.Grouping = 3;
00136     cyFmt.lpDecimalSep = szDecimalSep;
00137     cyFmt.lpThousandSep = szThousandSep;
00138     cyFmt.lpCurrencySymbol = szCurrencySymbol;
00139     cyFmt.NegativeOrder = 0;
00140 
00141     for (i = 0; i < 4; i++)
00142     {
00143         cyFmt.PositiveOrder = i;
00144         GetCurrencyFormat(pGlobalData->lcid, 0,
00145                           _T("1.1"),
00146                           &cyFmt, szBuffer, MAX_FMT_SIZE);
00147 
00148         SendMessage(GetDlgItem(hwndDlg, IDC_CURRENCYPOSVALUE),
00149                     CB_INSERTSTRING,
00150                     -1,
00151                     (LPARAM)szBuffer);
00152     }
00153 
00154     SendMessage(GetDlgItem(hwndDlg, IDC_CURRENCYPOSVALUE),
00155                 CB_SETCURSEL,
00156                 nPositiveOrder,
00157                 0);
00158 }
00159 
00160 
00161 static VOID
00162 InitCurrencyNegativeFormats(HWND hwndDlg, PGLOBALDATA pGlobalData)
00163 {
00164     TCHAR szDecimalSep[MAX_FMT_SIZE];
00165     TCHAR szThousandSep[MAX_FMT_SIZE];
00166     TCHAR szCurrencySymbol[MAX_FMT_SIZE];
00167     TCHAR szBuffer[MAX_FMT_SIZE];
00168     CURRENCYFMT cyFmt;
00169     INT nNegativeOrder = 0;
00170     INT ret;
00171     int i;
00172 
00173     /* Get negative format */
00174     ret = GetLocaleInfo(pGlobalData->lcid,
00175                         LOCALE_INEGCURR,
00176                         szBuffer, MAX_FMT_SIZE);
00177     if (ret != 0)
00178     {
00179         nNegativeOrder = _ttoi(szBuffer);
00180     }
00181 
00182     /* Get number of fractional digits */
00183     ret = GetLocaleInfo(pGlobalData->lcid,
00184                         LOCALE_ICURRDIGITS,
00185                         szBuffer, MAX_FMT_SIZE);
00186     if (ret != 0)
00187     {
00188         cyFmt.NumDigits = _ttoi(szBuffer);
00189     }
00190     else
00191     {
00192         cyFmt.NumDigits = 0;
00193     }
00194 
00195     /* Get decimal separator */
00196     ret = GetLocaleInfo(pGlobalData->lcid,
00197                         LOCALE_SMONDECIMALSEP,
00198                         szDecimalSep, MAX_FMT_SIZE);
00199 
00200     /* Get group separator */
00201     ret = GetLocaleInfo(pGlobalData->lcid,
00202                         LOCALE_SMONTHOUSANDSEP,
00203                         szThousandSep, MAX_FMT_SIZE);
00204 
00205     /* Get currency symbol */
00206     ret = GetLocaleInfo(pGlobalData->lcid,
00207                         LOCALE_SCURRENCY,
00208                         szCurrencySymbol, MAX_FMT_SIZE);
00209 
00210     /* negative currency values */
00211     cyFmt.LeadingZero = 0;
00212     cyFmt.Grouping = 3;
00213     cyFmt.lpDecimalSep = szDecimalSep;
00214     cyFmt.lpThousandSep = szThousandSep;
00215     cyFmt.lpCurrencySymbol = szCurrencySymbol;
00216     cyFmt.PositiveOrder = 0;
00217 
00218     for (i = 0; i < 16; i++)
00219     {
00220         cyFmt.NegativeOrder = i;
00221         GetCurrencyFormat(pGlobalData->lcid, 0,
00222                           _T("-1.1"),
00223                           &cyFmt, szBuffer, MAX_FMT_SIZE);
00224 
00225         SendMessage(GetDlgItem(hwndDlg, IDC_CURRENCYNEGVALUE),
00226                     CB_INSERTSTRING,
00227                     -1,
00228                     (LPARAM)szBuffer);
00229     }
00230 
00231     SendMessage(GetDlgItem(hwndDlg, IDC_CURRENCYNEGVALUE),
00232                 CB_SETCURSEL,
00233                 nNegativeOrder,
00234                 0);
00235 }
00236 
00237 
00238 static VOID
00239 InitCurrencyDecimalSeparators(HWND hwndDlg, PGLOBALDATA pGlobalData)
00240 {
00241     TCHAR szBuffer[MAX_FMT_SIZE];
00242 
00243     /* Limit text length */
00244     SendMessage(GetDlgItem(hwndDlg, IDC_CURRENCYDECSEP),
00245                 CB_LIMITTEXT,
00246                 MAX_CURRENCYDECSEP,
00247                 0);
00248 
00249     /* Get decimal separator */
00250     GetLocaleInfo(pGlobalData->lcid,
00251                   LOCALE_SMONDECIMALSEP,
00252                   szBuffer, MAX_FMT_SIZE);
00253 
00254     /* Decimal separator */
00255     SendMessage(GetDlgItem(hwndDlg, IDC_CURRENCYDECSEP),
00256                 CB_ADDSTRING,
00257                 0,
00258                 (LPARAM)szBuffer);
00259 
00260     SendMessage(GetDlgItem(hwndDlg, IDC_CURRENCYDECSEP),
00261                 CB_SETCURSEL,
00262                 0, /* Index */
00263                 0);
00264 }
00265 
00266 
00267 /* Initialize the number of fractional digits */
00268 static VOID
00269 InitCurrencyNumFracDigits(HWND hwndDlg, PGLOBALDATA pGlobalData)
00270 {
00271     TCHAR szBuffer[MAX_FMT_SIZE];
00272     int ret;
00273     int i;
00274 
00275     /* Create standard list of fractional symbols */
00276     for (i = 0; i < 10; i++)
00277     {
00278         szBuffer[0] = _T('0') + i;
00279         szBuffer[1] = 0;
00280         SendMessage(GetDlgItem(hwndDlg, IDC_CURRENCYDECNUM),
00281                     CB_ADDSTRING,
00282                     0,
00283                     (LPARAM)szBuffer);
00284     }
00285 
00286     /* Get number of fractional digits */
00287     ret = GetLocaleInfo(pGlobalData->lcid,
00288                         LOCALE_ICURRDIGITS,
00289                         szBuffer, MAX_FMT_SIZE);
00290     if (ret != 0)
00291     {
00292         SendMessage(GetDlgItem(hwndDlg, IDC_CURRENCYDECNUM),
00293                     CB_SETCURSEL,
00294                     _ttoi(szBuffer),
00295                     0);
00296     }
00297     else
00298     {
00299         SendMessage(GetDlgItem(hwndDlg, IDC_CURRENCYDECNUM),
00300                     CB_SETCURSEL,
00301                     0,
00302                     0);
00303     }
00304 }
00305 
00306 
00307 /* Initialize the list of group separators */
00308 static VOID
00309 InitCurrencyGroupSeparators(HWND hwndDlg, PGLOBALDATA pGlobalData)
00310 {
00311     TCHAR szBuffer[MAX_FMT_SIZE];
00312 
00313     /* Limit text length */
00314     SendMessage(GetDlgItem(hwndDlg, IDC_CURRENCYGRPSEP),
00315                 CB_LIMITTEXT,
00316                 MAX_CURRENCYGRPSEP,
00317                 0);
00318 
00319     /* Get group separator */
00320     GetLocaleInfo(pGlobalData->lcid,
00321                   LOCALE_SMONTHOUSANDSEP,
00322                   szBuffer, MAX_FMT_SIZE);
00323 
00324     /* Digit group separator */
00325     SendMessage(GetDlgItem(hwndDlg, IDC_CURRENCYGRPSEP),
00326                 CB_ADDSTRING,
00327                 0,
00328                 (LPARAM)szBuffer);
00329 
00330     SendMessage(GetDlgItem(hwndDlg, IDC_CURRENCYGRPSEP),
00331                 CB_SETCURSEL,
00332                 0, /* Index */
00333                 0);
00334 }
00335 
00336 
00337 static VOID
00338 InitDigitGroupCB(HWND hwndDlg, PGLOBALDATA pGlobalData)
00339 {
00340     TCHAR szThousandSep[MAX_FMT_SIZE];
00341     TCHAR szGrouping[MAX_FMT_SIZE];
00342     TCHAR szBuffer[MAX_FMT_SIZE];
00343     CURRENCYFMT cyFmt;
00344     INT i;
00345 
00346     /* Get group separator */
00347     GetLocaleInfo(pGlobalData->lcid,
00348                   LOCALE_SMONTHOUSANDSEP,
00349                   szThousandSep, MAX_FMT_SIZE);
00350 
00351     /* Get grouping */
00352     GetLocaleInfo(pGlobalData->lcid,
00353                   LOCALE_SMONGROUPING,
00354                   szGrouping, MAX_FMT_SIZE);
00355 
00356     /* Digit grouping */
00357     cyFmt.NumDigits = 0;
00358     cyFmt.LeadingZero = 0;
00359     cyFmt.lpDecimalSep = _T("");
00360     cyFmt.lpThousandSep = szThousandSep;
00361     cyFmt.PositiveOrder = 0;
00362     cyFmt.NegativeOrder = 0;
00363     cyFmt.lpCurrencySymbol = _T("");
00364     cyFmt.Grouping = 0;
00365     GetCurrencyFormat(pGlobalData->lcid, 0,
00366                       _T("123456789"),
00367                       &cyFmt, szBuffer, MAX_FMT_SIZE);
00368     SendMessage(GetDlgItem(hwndDlg, IDC_CURRENCYGRPNUM),
00369                 CB_INSERTSTRING,
00370                 -1,
00371                 (LPARAM)szBuffer);
00372 
00373     cyFmt.Grouping = 3;
00374     GetCurrencyFormat(pGlobalData->lcid, 0,
00375                       _T("123456789"),
00376                       &cyFmt, szBuffer, MAX_FMT_SIZE);
00377     SendMessage(GetDlgItem(hwndDlg, IDC_CURRENCYGRPNUM),
00378                 CB_INSERTSTRING,
00379                 -1,
00380                 (LPARAM)szBuffer);
00381 
00382     cyFmt.Grouping = 32;
00383     GetCurrencyFormat(pGlobalData->lcid, 0,
00384                       _T("123456789"),
00385                       &cyFmt, szBuffer, MAX_FMT_SIZE);
00386     SendMessage(GetDlgItem(hwndDlg, IDC_CURRENCYGRPNUM),
00387                 CB_INSERTSTRING,
00388                 -1,
00389                 (LPARAM)szBuffer);
00390 
00391     i = 0;
00392     if (szGrouping[0] == _T('3'))
00393     {
00394         if ((szGrouping[1] == _T(';')) &&
00395             (szGrouping[2] == _T('2')))
00396             i = 2;
00397         else
00398             i = 1;
00399     }
00400 
00401     SendMessage(GetDlgItem(hwndDlg, IDC_CURRENCYGRPNUM),
00402                 CB_SETCURSEL,
00403                 i, /* Index */
00404                 0);
00405 }
00406 
00407 
00408 /* Set number of digits in field  */
00409 static BOOL
00410 SetCurrencyDigNum(HWND hwndDlg, LCID lcid)
00411 {
00412     LPTSTR szFieldDigNumSamples[MAX_FIELD_DIG_SAMPLES]=
00413     {
00414         _T("0;0"),
00415         _T("3;0"),
00416         _T("3;2;0")
00417     };
00418 
00419     int nCurrSel;
00420 
00421     /* Get setted number of digits in field */
00422     nCurrSel = SendMessage(GetDlgItem(hwndDlg, IDC_CURRENCYGRPNUM),
00423                            CB_GETCURSEL,
00424                            (WPARAM)0,
00425                            (LPARAM)0);
00426 
00427     /* Save number of digits in field */
00428     if (nCurrSel != CB_ERR)
00429         SetLocaleInfo(lcid, LOCALE_SMONGROUPING, szFieldDigNumSamples[nCurrSel]);
00430 
00431     return TRUE;
00432 }
00433 
00434 /* Set currency field separator */
00435 static BOOL
00436 SetCurrencyFieldSep(HWND hwndDlg, LCID lcid)
00437 {
00438     TCHAR szCurrencyFieldSep[MAX_SAMPLES_STR_SIZE];
00439 
00440     /* Get setted currency field separator */
00441     SendMessage(GetDlgItem(hwndDlg, IDC_CURRENCYGRPSEP),
00442                 WM_GETTEXT,
00443                 (WPARAM)MAX_SAMPLES_STR_SIZE,
00444                 (LPARAM)szCurrencyFieldSep);
00445 
00446     /* Save currency field separator */
00447     SetLocaleInfo(lcid, LOCALE_SMONTHOUSANDSEP, szCurrencyFieldSep);
00448 
00449     return TRUE;
00450 }
00451 
00452 /* Set number of fractional symbols */
00453 static BOOL
00454 SetCurrencyFracSymNum(HWND hwndDlg, LCID lcid)
00455 {
00456     TCHAR szCurrencyFracSymNum[MAX_SAMPLES_STR_SIZE];
00457     INT nCurrSel;
00458 
00459     /* Get setted number of fractional symbols */
00460     nCurrSel = SendMessage(GetDlgItem(hwndDlg, IDC_CURRENCYDECNUM),
00461                            CB_GETCURSEL,
00462                            (WPARAM)0,
00463                            (LPARAM)0);
00464 
00465     /* Convert to wide char */
00466     _itot(nCurrSel, szCurrencyFracSymNum, DECIMAL_RADIX);
00467 
00468     /* Save number of fractional symbols */
00469     SetLocaleInfo(lcid, LOCALE_ICURRDIGITS, szCurrencyFracSymNum);
00470 
00471     return TRUE;
00472 }
00473 
00474 /* Set currency separator */
00475 static BOOL
00476 SetCurrencySep(HWND hwndDlg, LCID lcid)
00477 {
00478     TCHAR szCurrencySep[MAX_SAMPLES_STR_SIZE];
00479 
00480     /* Get setted currency decimal separator */
00481     SendMessage(GetDlgItem(hwndDlg, IDC_CURRENCYDECSEP),
00482                 WM_GETTEXT,
00483                 (WPARAM)MAX_SAMPLES_STR_SIZE,
00484                 (LPARAM)szCurrencySep);
00485 
00486     /* TODO: Add check for correctly input */
00487 
00488     /* Save currency separator */
00489     SetLocaleInfo(lcid, LOCALE_SMONDECIMALSEP, szCurrencySep);
00490 
00491     return TRUE;
00492 }
00493 
00494 /* Set negative currency sum format */
00495 static BOOL
00496 SetNegCurrencySumFmt(HWND hwndDlg, LCID lcid)
00497 {
00498     TCHAR szNegCurrencySumFmt[MAX_SAMPLES_STR_SIZE];
00499     INT nCurrSel;
00500 
00501     /* Get setted currency unit */
00502     nCurrSel = SendMessage(GetDlgItem(hwndDlg, IDC_CURRENCYNEGVALUE),
00503                            CB_GETCURSEL,
00504                            (WPARAM)0,
00505                            (LPARAM)0);
00506 
00507     /* Convert to wide char */
00508     _itot(nCurrSel, szNegCurrencySumFmt, DECIMAL_RADIX);
00509 
00510     /* Save currency sum format */
00511     SetLocaleInfo(lcid, LOCALE_INEGCURR, szNegCurrencySumFmt);
00512 
00513     return TRUE;
00514 }
00515 
00516 /* Set positive currency sum format */
00517 static BOOL
00518 SetPosCurrencySumFmt(HWND hwndDlg, LCID lcid)
00519 {
00520     TCHAR szPosCurrencySumFmt[MAX_SAMPLES_STR_SIZE];
00521     INT nCurrSel;
00522 
00523     /* Get setted currency unit */
00524     nCurrSel = SendMessage(GetDlgItem(hwndDlg, IDC_CURRENCYPOSVALUE),
00525                            CB_GETCURSEL,
00526                            (WPARAM)0,
00527                            (LPARAM)0);
00528 
00529     /* Convert to wide char */
00530     _itot(nCurrSel, szPosCurrencySumFmt, DECIMAL_RADIX);
00531 
00532     /* Save currency sum format */
00533     SetLocaleInfo(lcid, LOCALE_ICURRENCY, szPosCurrencySumFmt);
00534 
00535     return TRUE;
00536 }
00537 
00538 /* Set currency unit */
00539 static BOOL
00540 SetCurrencyUnit(HWND hwndDlg, LCID lcid)
00541 {
00542     TCHAR szCurrencyUnit[MAX_SAMPLES_STR_SIZE];
00543 
00544     /* Get setted currency unit */
00545     SendMessage(GetDlgItem(hwndDlg, IDC_CURRENCYSYMBOL),
00546                 WM_GETTEXT,
00547                 (WPARAM)MAX_SAMPLES_STR_SIZE,
00548                 (LPARAM)(LPCSTR)szCurrencyUnit);
00549 
00550     /* Save currency unit */
00551     SetLocaleInfo(lcid, LOCALE_SCURRENCY, szCurrencyUnit);
00552 
00553     return TRUE;
00554 }
00555 
00556 /* Property page dialog callback */
00557 INT_PTR CALLBACK
00558 CurrencyPageProc(HWND hwndDlg,
00559                  UINT uMsg,
00560                  WPARAM wParam,
00561                  LPARAM lParam)
00562 {
00563     PGLOBALDATA pGlobalData;
00564 
00565     pGlobalData = (PGLOBALDATA)GetWindowLongPtr(hwndDlg, DWLP_USER);
00566 
00567     switch (uMsg)
00568     {
00569         case WM_INITDIALOG:
00570             pGlobalData = (PGLOBALDATA)((LPPROPSHEETPAGE)lParam)->lParam;
00571             SetWindowLongPtr(hwndDlg, DWLP_USER, (LONG_PTR)pGlobalData);
00572 
00573             InitCurrencySymbols(hwndDlg, pGlobalData);
00574             InitCurrencyPositiveFormats(hwndDlg, pGlobalData);
00575             InitCurrencyNegativeFormats(hwndDlg, pGlobalData);
00576             InitCurrencyDecimalSeparators(hwndDlg, pGlobalData);
00577             InitCurrencyNumFracDigits(hwndDlg, pGlobalData);
00578             InitCurrencyGroupSeparators(hwndDlg, pGlobalData);
00579             InitDigitGroupCB(hwndDlg, pGlobalData);
00580             UpdateExamples(hwndDlg, pGlobalData);
00581             break;
00582 
00583         case WM_COMMAND:
00584             switch (LOWORD(wParam))
00585             {
00586                 case IDC_CURRENCYSYMBOL:
00587                 case IDC_CURRENCYPOSVALUE:
00588                 case IDC_CURRENCYNEGVALUE:
00589                 case IDC_CURRENCYDECSEP:
00590                 case IDC_CURRENCYDECNUM:
00591                 case IDC_CURRENCYGRPSEP:
00592                 case IDC_CURRENCYGRPNUM:
00593                     if (HIWORD(wParam) == CBN_SELCHANGE || HIWORD(wParam) == CBN_EDITCHANGE)
00594                     {
00595                         /* Set "Apply" button enabled */
00596                         PropSheet_Changed(GetParent(hwndDlg), hwndDlg);
00597                     }
00598             }
00599             break;
00600 
00601         case WM_NOTIFY:
00602             {
00603                 LPNMHDR lpnm = (LPNMHDR)lParam;
00604                 /* If push apply button */
00605                 if (lpnm->code == (UINT)PSN_APPLY)
00606                 {
00607                     if (!SetCurrencyDigNum(hwndDlg, pGlobalData->lcid))
00608                         break;
00609 
00610                     if (!SetCurrencyUnit(hwndDlg, pGlobalData->lcid))
00611                         break;
00612 
00613                     if (!SetPosCurrencySumFmt(hwndDlg, pGlobalData->lcid))
00614                         break;
00615 
00616                     if (!SetNegCurrencySumFmt(hwndDlg, pGlobalData->lcid))
00617                         break;
00618 
00619                     if (!SetCurrencySep(hwndDlg, pGlobalData->lcid))
00620                         break;
00621 
00622                     if (!SetCurrencyFracSymNum(hwndDlg, pGlobalData->lcid))
00623                         break;
00624 
00625                     if (!SetCurrencyFieldSep(hwndDlg, pGlobalData->lcid))
00626                         break;
00627 
00628                     UpdateExamples(hwndDlg, pGlobalData);
00629                 }
00630             }
00631             break;
00632     }
00633     return FALSE;
00634 }
00635 
00636 /* EOF */

Generated on Fri May 25 2012 04:19:04 for ReactOS by doxygen 1.7.6.1

ReactOS is a registered trademark or a trademark of ReactOS Foundation in the United States and other countries.