From da557c1562ea17e98e922db4e567e862eb7c563b Mon Sep 17 00:00:00 2001 From: Aleksey Bragin Date: Mon, 15 Jan 2007 20:33:07 +0000 Subject: [PATCH] - Merge 25404-25406, very small part of 25407, 25409, 25410, 25412+25414, 25422-25426. svn path=/branches/ros-branch-0_3_1/; revision=25470 --- reactos/base/applications/cacls/lang/en-US.rc | 2 +- .../base/applications/imagesoft/lang/en-US.rc | 2 +- reactos/dll/cpl/desk/Fr.rc | 45 ++- reactos/dll/cpl/intl/Fr.rc | 178 ++++++----- reactos/dll/cpl/intl/Ja.rc | 20 +- reactos/dll/cpl/intl/currency.c | 299 +++++++++++++++++- reactos/dll/cpl/intl/cz.rc | 20 +- reactos/dll/cpl/intl/de.rc | 20 +- reactos/dll/cpl/intl/en.rc | 20 +- reactos/dll/cpl/intl/es.rc | 20 +- reactos/dll/cpl/intl/hu.rc | 20 +- reactos/dll/cpl/intl/nl.rc | 20 +- reactos/dll/cpl/intl/resource.h | 12 +- reactos/dll/cpl/intl/ru.rc | 20 +- reactos/dll/cpl/intl/sv.rc | 38 ++- reactos/dll/cpl/intl/uk.rc | 20 +- reactos/dll/win32/user32/windows/input.c | 25 +- reactos/drivers/base/blue/blue.c | 2 +- reactos/ntoskrnl/ex/pushlock.c | 2 +- .../subsystems/win32/win32k/include/input.h | 18 ++ .../subsystems/win32/win32k/ntuser/focus.c | 49 ++- .../subsystems/win32/win32k/ntuser/keyboard.c | 3 + reactos/subsystems/win32/win32k/ntuser/misc.c | 108 ++++--- 23 files changed, 782 insertions(+), 181 deletions(-) diff --git a/reactos/base/applications/cacls/lang/en-US.rc b/reactos/base/applications/cacls/lang/en-US.rc index dfc4b4b2325..4ccd5c5b88b 100644 --- a/reactos/base/applications/cacls/lang/en-US.rc +++ b/reactos/base/applications/cacls/lang/en-US.rc @@ -24,7 +24,7 @@ CACLS filename [/T] [/E] [/C] [/G user:perm [...]] [/R user [...]]\n\ C Change (write)\n\ F Full control\n\ /D user Deny specified user access.\n\ -Wildcards can be used to specify more that one file in a command.\n\ +Wildcards can be used to specify more than one file in a command.\n\ You can specify more than one user in a command.\n\n\ Abbreviations:\n\ CI - Container Inherit.\n\ diff --git a/reactos/base/applications/imagesoft/lang/en-US.rc b/reactos/base/applications/imagesoft/lang/en-US.rc index 7e8272c1b16..a7718967e96 100644 --- a/reactos/base/applications/imagesoft/lang/en-US.rc +++ b/reactos/base/applications/imagesoft/lang/en-US.rc @@ -171,7 +171,7 @@ END STRINGTABLE DISCARDABLE BEGIN IDS_IMAGE_MONOCHROME "Monochrome (1 bit)" - IDS_IMAGE_GREYSCALE "Greyscale (8 bit)" + IDS_IMAGE_GREYSCALE "Grayscale (8 bit)" IDS_IMAGE_PALETTE "Palette or 256 color (8 bit)" IDS_IMAGE_TRUECOLOR "True color (24 bit)" diff --git a/reactos/dll/cpl/desk/Fr.rc b/reactos/dll/cpl/desk/Fr.rc index f81081fff5c..a2ca764c7dc 100644 --- a/reactos/dll/cpl/desk/Fr.rc +++ b/reactos/dll/cpl/desk/Fr.rc @@ -1,4 +1,5 @@ /* French translation by Benoit Plante 2005 (cmoibenlepro AT hotmail DOT com) */ +/* Updated French translation by Pierre Schweitzer 2007 (heis_spiter AT hotmail DOT com) */ LANGUAGE LANG_FRENCH, SUBLANG_NEUTRAL @@ -88,19 +89,19 @@ IDR_POPUP_MENU MENU DISCARDABLE BEGIN POPUP "" BEGIN - MENUITEM "&Configure", ID_MENU_CONFIG - MENUITEM "&Preview", ID_MENU_PREVIEW + MENUITEM "&Configurer", ID_MENU_CONFIG + MENUITEM "A&perçu", ID_MENU_PREVIEW MENUITEM SEPARATOR - MENUITEM "&Add", ID_MENU_ADD - MENUITEM "&Delete\tDel", ID_MENU_DELETE + MENUITEM "&Ajouer", ID_MENU_ADD + MENUITEM "Supprimer\tSuppr", ID_MENU_DELETE END END IDR_PREVIEW_MENU MENU BEGIN MENUITEM "Normal", ID_MENU_NORMAL - MENUITEM "Disabled", ID_MENU_DISABLED - MENUITEM "Selected", ID_MENU_SELECTED + MENUITEM "Désactivé", ID_MENU_DISABLED + MENUITEM "Sélectionné", ID_MENU_SELECTED END STRINGTABLE @@ -132,10 +133,32 @@ END STRINGTABLE DISCARDABLE BEGIN - IDS_INACTWIN "Inactive Window" - IDS_ACTWIN "Active Window" - IDS_WINTEXT "Window Text" - IDS_MESSBOX "Message Box" - IDS_MESSTEXT "Message Text" + IDS_INACTWIN "Fenêtre inactive" + IDS_ACTWIN "Fenêtre active" + IDS_WINTEXT "Texte de la fenêtre" + IDS_MESSBOX "Boîte de message" + IDS_MESSTEXT "Texte de message" IDS_BUTTEXT "OK" END + +STRINGTABLE DISCARDABLE +BEGIN + IDS_ITEM_3D_OBJECTS "Objets 3D" + IDS_ITEM_SCROLLBAR "Barre de défilement" + IDS_ITEM_DESKTOP "Bureau" + IDS_ITEM_MESSAGE_BOX "Boîte de message" + IDS_ITEM_WINDOW "Fenêtre" + IDS_ITEM_APP_BACKGROUND "Espace de travail de l'application" + IDS_ITEM_SELECTED_ITEMS "Éléments sélectionnés" + IDS_ITEM_MENU "Menu" + IDS_ITEM_PALETTE_TITLE "Tite de palette" + IDS_ITEM_TOOLTIP "Info-bulle" + IDS_ITEM_INACTIVE_WINDOW "Bordure de fenêtre inactive" + IDS_ITEM_ACTIVE_WINDOW "Bordure de fenêtre active" + IDS_ITEM_ICON "Icône" + IDS_ITEM_ICON_SPACE_HORZ "Espacement des icônes (horizontal)" + IDS_ITEM_ICON_SPACE_VERT "Espacement des icônes (vertical)" + IDS_ITEM_INACTIVE_TITLE "Barre de titre inactive" + IDS_ITEM_ACTIVE_TITLE "Barre de titre active" + IDS_ITEM_CAPTION_BUTTONS "Boutons de barre de titre" +END diff --git a/reactos/dll/cpl/intl/Fr.rc b/reactos/dll/cpl/intl/Fr.rc index 4377a00e4ab..3a52d591b17 100644 --- a/reactos/dll/cpl/intl/Fr.rc +++ b/reactos/dll/cpl/intl/Fr.rc @@ -1,82 +1,100 @@ /* French translation by Benoit Plante 2005 (cmoibenlepro AT hotmail DOT com) */ -LANGUAGE LANG_FRENCH, SUBLANG_NEUTRAL - -IDD_GENERALPAGE DIALOGEX 0, 0, 246, 188 -STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_DISABLED | WS_CAPTION -CAPTION "Général" -FONT 8, "MS Shell Dlg" -BEGIN - LTEXT "Page de propriétés 1",-1,73,74,90,8 -END - - -IDD_NUMBERSPAGE DIALOGEX 0, 0, 246, 188 -STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_DISABLED | WS_CAPTION -CAPTION "Nombres" -FONT 8, "MS Shell Dlg" -BEGIN - LTEXT "Page de propriétés 2",-1,73,74,90,8 -END - - -IDD_CURRENCYPAGE DIALOGEX 0, 0, 246, 188 -STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_DISABLED | WS_CAPTION -CAPTION "Devise" -FONT 8, "MS Shell Dlg" -BEGIN - LTEXT "Page de propriétés 3",-1,73,74,90,8 -END - - -IDD_TIMEPAGE DIALOGEX 0, 0, 246, 188 -STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_DISABLED | WS_CAPTION -CAPTION "Heure" -FONT 8, "MS Shell Dlg" -BEGIN - GROUPBOX "Apparence de l'heure", -1, 7, 7, 228, 33, WS_CHILD | WS_VISIBLE - LTEXT "Échantillon d'heure:", -1, 13, 21, 54, 10, WS_CHILD |WS_VISIBLE | WS_GROUP - EDITTEXT IDC_TIMESAMPLE, 68, 19, 84, 14, ES_READONLY | WS_CHILD | WS_VISIBLE | WS_GROUP - LTEXT "Format d'heure:", -1, 13, 52, 54, 10, WS_CHILD |WS_VISIBLE | WS_GROUP - COMBOBOX IDC_TIMEFORMAT, 68, 50, 84, 100, CBS_DROPDOWN | WS_CHILD | WS_VISIBLE | WS_TABSTOP - LTEXT "&Séparateur des heures:", -1, 13, 70, 54, 10, WS_VISIBLE | WS_GROUP - COMBOBOX IDC_TIMESEPARATOR, 68, 68, 84, 100, CBS_DROPDOWN | WS_CHILD | WS_VISIBLE | WS_TABSTOP - LTEXT "Symbole de l'avant-midi(A&M):", -1, 13, 88, 54, 10, WS_VISIBLE | WS_GROUP - COMBOBOX IDC_TIMEAMSYMBOL, 68, 86, 84, 100, CBS_DROPDOWN | WS_CHILD | WS_VISIBLE | WS_TABSTOP - LTEXT "Symbole de l'après-midi(&PM):", -1, 13, 106, 54, 10, WS_VISIBLE | WS_GROUP - COMBOBOX IDC_TIMEPMSYMBOL, 68, 104, 84, 100, CBS_DROPDOWN | WS_CHILD | WS_VISIBLE | WS_TABSTOP - GROUPBOX "", -1, 7, 124, 228, 60, WS_VISIBLE - LTEXT "Notation de l'heure\n\n\ -h = heure m = minute s = seconde t = AM ou PM\n\n\ -h = 12 heures H =24 heures \n\ -hh, mm, ss = Zéro de départ h, m, s = Pas de zéro de départ", - -1, 13, 133, 214, 47, WS_CHILD |WS_VISIBLE | WS_GROUP -END - - -IDD_DATEPAGE DIALOGEX 0, 0, 246, 188 -STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_DISABLED | WS_CAPTION -CAPTION "Date" -FONT 8, "MS Shell Dlg" -BEGIN - LTEXT "Page de propriétés 5",-1,73,74,90,8 -END - - -IDD_LOCALEPAGE DIALOGEX 0, 0, 246, 188 -STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_DISABLED | WS_CAPTION -CAPTION "Langues" -FONT 8, "MS Shell Dlg" -BEGIN - GROUPBOX "Langue principale", -1, 8, 11, 228, 74 - ICON IDC_FLAGS, IDC_ICON1, 12, 26, 21, 20, SS_ICON - LTEXT "Sélectionnez la langue principale que vous voulez utiliser:", -1, 38, 25, 193, 22 - COMBOBOX IDC_LANGUAGELIST, 39, 49, 191, 83, CBS_DROPDOWNLIST | CBS_SORT | WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_VSCROLL -END - - -STRINGTABLE -BEGIN - IDS_CPLNAME "Options régionales" - IDS_CPLDESCRIPTION "Selectionner les langues, les formats de nombres, les devises, l'heure et la date." -END +LANGUAGE LANG_FRENCH, SUBLANG_NEUTRAL + +IDD_GENERALPAGE DIALOGEX 0, 0, 246, 188 +STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_DISABLED | WS_CAPTION +CAPTION "Général" +FONT 8, "MS Shell Dlg" +BEGIN + LTEXT "Page de propriétés 1",-1,73,74,90,8 +END + + +IDD_NUMBERSPAGE DIALOGEX 0, 0, 246, 188 +STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_DISABLED | WS_CAPTION +CAPTION "Nombres" +FONT 8, "MS Shell Dlg" +BEGIN + LTEXT "Page de propriétés 2",-1,73,74,90,8 +END + + +IDD_CURRENCYPAGE DIALOGEX 0, 0, 246, 188 +STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_DISABLED | WS_CAPTION +CAPTION "Devise" +FONT 8, "MS Shell Dlg" +BEGIN + GROUPBOX "Appearance sample", -1, 7, 7, 228, 33, WS_CHILD | WS_VISIBLE + LTEXT "Positive:", -1, 13, 21, 31, 10, WS_CHILD |WS_VISIBLE | WS_GROUP + EDITTEXT IDC_CURRENCYPOSSAMPLE, 42, 19, 72, 14, ES_READONLY | WS_CHILD | WS_VISIBLE | WS_GROUP + LTEXT "Negative:", -1, 120, 21, 31, 10, WS_CHILD |WS_VISIBLE | WS_GROUP + EDITTEXT IDC_CURRENCYNEGSAMPLE, 154, 19, 72, 14, ES_READONLY | WS_CHILD | WS_VISIBLE | WS_GROUP + LTEXT "&Currency symbol:", -1, 20, 51, 96, 10, WS_CHILD |WS_VISIBLE | WS_GROUP + COMBOBOX IDC_CURRENCYSYMBOL, 124, 49, 100, 83, CBS_DROPDOWN | CBS_SORT | WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_VSCROLL + LTEXT "&Positive Amount:", -1, 20, 68, 96, 10, WS_CHILD |WS_VISIBLE | WS_GROUP + COMBOBOX IDC_CURRENCYPOSVALUE, 124, 66, 100, 83, CBS_DROPDOWN | CBS_SORT | WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_VSCROLL + LTEXT "&Negative Amount:", -1, 20, 85, 96, 10, WS_CHILD |WS_VISIBLE | WS_GROUP + COMBOBOX IDC_CURRENCYNEGVALUE, 124, 83, 100, 83, CBS_DROPDOWN | CBS_SORT | WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_VSCROLL + LTEXT "&Decimal separator:", -1, 20, 111, 96, 10, WS_CHILD |WS_VISIBLE | WS_GROUP + COMBOBOX IDC_CURRENCYDECSEP, 124, 109, 100, 83, CBS_DROPDOWN | CBS_SORT | WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_VSCROLL + LTEXT "&Number of fractional digits:", -1, 20, 128, 96, 10, WS_CHILD |WS_VISIBLE | WS_GROUP + COMBOBOX IDC_CURRENCYDECNUM, 124, 126, 100, 83, CBS_DROPDOWN | CBS_SORT | WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_VSCROLL + LTEXT "&Grouping symbol:", -1, 20, 156, 100, 10, WS_CHILD |WS_VISIBLE | WS_GROUP + COMBOBOX IDC_CURRENCYGRPSEP, 124, 154, 100, 83, CBS_DROPDOWN | CBS_SORT | WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_VSCROLL + LTEXT "&Digit grouping:", -1, 20, 173, 96, 10, WS_CHILD |WS_VISIBLE | WS_GROUP + COMBOBOX IDC_CURRENCYGRPNUM, 124, 171, 100, 83, CBS_DROPDOWN | CBS_SORT | WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_VSCROLL +END + + +IDD_TIMEPAGE DIALOGEX 0, 0, 246, 188 +STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_DISABLED | WS_CAPTION +CAPTION "Heure" +FONT 8, "MS Shell Dlg" +BEGIN + GROUPBOX "Apparence de l'heure", -1, 7, 7, 228, 33, WS_CHILD | WS_VISIBLE + LTEXT "Échantillon d'heure:", -1, 13, 21, 54, 10, WS_CHILD |WS_VISIBLE | WS_GROUP + EDITTEXT IDC_TIMESAMPLE, 68, 19, 84, 14, ES_READONLY | WS_CHILD | WS_VISIBLE | WS_GROUP + LTEXT "Format d'heure:", -1, 13, 52, 54, 10, WS_CHILD |WS_VISIBLE | WS_GROUP + COMBOBOX IDC_TIMEFORMAT, 68, 50, 84, 100, CBS_DROPDOWN | WS_CHILD | WS_VISIBLE | WS_TABSTOP + LTEXT "&Séparateur des heures:", -1, 13, 70, 54, 10, WS_VISIBLE | WS_GROUP + COMBOBOX IDC_TIMESEPARATOR, 68, 68, 84, 100, CBS_DROPDOWN | WS_CHILD | WS_VISIBLE | WS_TABSTOP + LTEXT "Symbole de l'avant-midi(A&M):", -1, 13, 88, 54, 10, WS_VISIBLE | WS_GROUP + COMBOBOX IDC_TIMEAMSYMBOL, 68, 86, 84, 100, CBS_DROPDOWN | WS_CHILD | WS_VISIBLE | WS_TABSTOP + LTEXT "Symbole de l'après-midi(&PM):", -1, 13, 106, 54, 10, WS_VISIBLE | WS_GROUP + COMBOBOX IDC_TIMEPMSYMBOL, 68, 104, 84, 100, CBS_DROPDOWN | WS_CHILD | WS_VISIBLE | WS_TABSTOP + GROUPBOX "", -1, 7, 124, 228, 60, WS_VISIBLE + LTEXT "Notation de l'heure\n\n\ +h = heure m = minute s = seconde t = AM ou PM\n\n\ +h = 12 heures H =24 heures \n\ +hh, mm, ss = Zéro de départ h, m, s = Pas de zéro de départ", + -1, 13, 133, 214, 47, WS_CHILD |WS_VISIBLE | WS_GROUP +END + + +IDD_DATEPAGE DIALOGEX 0, 0, 246, 188 +STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_DISABLED | WS_CAPTION +CAPTION "Date" +FONT 8, "MS Shell Dlg" +BEGIN + LTEXT "Page de propriétés 5",-1,73,74,90,8 +END + + +IDD_LOCALEPAGE DIALOGEX 0, 0, 246, 188 +STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_DISABLED | WS_CAPTION +CAPTION "Langues" +FONT 8, "MS Shell Dlg" +BEGIN + GROUPBOX "Langue principale", -1, 8, 11, 228, 74 + ICON IDC_FLAGS, IDC_ICON1, 12, 26, 21, 20, SS_ICON + LTEXT "Sélectionnez la langue principale que vous voulez utiliser:", -1, 38, 25, 193, 22 + COMBOBOX IDC_LANGUAGELIST, 39, 49, 191, 83, CBS_DROPDOWNLIST | CBS_SORT | WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_VSCROLL +END + + +STRINGTABLE +BEGIN + IDS_CPLNAME "Options régionales" + IDS_CPLDESCRIPTION "Selectionner les langues, les formats de nombres, les devises, l'heure et la date." +END diff --git a/reactos/dll/cpl/intl/Ja.rc b/reactos/dll/cpl/intl/Ja.rc index 5614e386aae..366a6ba85b9 100644 --- a/reactos/dll/cpl/intl/Ja.rc +++ b/reactos/dll/cpl/intl/Ja.rc @@ -23,7 +23,25 @@ STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_DISABLED | WS_CAPTION CAPTION "’ʉÝ" FONT 9, "MS UI Gothic" BEGIN - LTEXT "Property Page 3",-1,73,74,90,8 + GROUPBOX "Appearance sample", -1, 7, 7, 228, 33, WS_CHILD | WS_VISIBLE + LTEXT "Positive:", -1, 13, 21, 31, 10, WS_CHILD |WS_VISIBLE | WS_GROUP + EDITTEXT IDC_CURRENCYPOSSAMPLE, 42, 19, 72, 14, ES_READONLY | WS_CHILD | WS_VISIBLE | WS_GROUP + LTEXT "Negative:", -1, 120, 21, 31, 10, WS_CHILD |WS_VISIBLE | WS_GROUP + EDITTEXT IDC_CURRENCYNEGSAMPLE, 154, 19, 72, 14, ES_READONLY | WS_CHILD | WS_VISIBLE | WS_GROUP + LTEXT "&Currency symbol:", -1, 20, 51, 96, 10, WS_CHILD |WS_VISIBLE | WS_GROUP + COMBOBOX IDC_CURRENCYSYMBOL, 124, 49, 100, 83, CBS_DROPDOWN | CBS_SORT | WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_VSCROLL + LTEXT "&Positive Amount:", -1, 20, 68, 96, 10, WS_CHILD |WS_VISIBLE | WS_GROUP + COMBOBOX IDC_CURRENCYPOSVALUE, 124, 66, 100, 83, CBS_DROPDOWN | CBS_SORT | WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_VSCROLL + LTEXT "&Negative Amount:", -1, 20, 85, 96, 10, WS_CHILD |WS_VISIBLE | WS_GROUP + COMBOBOX IDC_CURRENCYNEGVALUE, 124, 83, 100, 83, CBS_DROPDOWN | CBS_SORT | WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_VSCROLL + LTEXT "&Decimal separator:", -1, 20, 111, 96, 10, WS_CHILD |WS_VISIBLE | WS_GROUP + COMBOBOX IDC_CURRENCYDECSEP, 124, 109, 100, 83, CBS_DROPDOWN | CBS_SORT | WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_VSCROLL + LTEXT "&Number of fractional digits:", -1, 20, 128, 96, 10, WS_CHILD |WS_VISIBLE | WS_GROUP + COMBOBOX IDC_CURRENCYDECNUM, 124, 126, 100, 83, CBS_DROPDOWN | CBS_SORT | WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_VSCROLL + LTEXT "&Grouping symbol:", -1, 20, 156, 100, 10, WS_CHILD |WS_VISIBLE | WS_GROUP + COMBOBOX IDC_CURRENCYGRPSEP, 124, 154, 100, 83, CBS_DROPDOWN | CBS_SORT | WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_VSCROLL + LTEXT "&Digit grouping:", -1, 20, 173, 96, 10, WS_CHILD |WS_VISIBLE | WS_GROUP + COMBOBOX IDC_CURRENCYGRPNUM, 124, 171, 100, 83, CBS_DROPDOWN | CBS_SORT | WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_VSCROLL END diff --git a/reactos/dll/cpl/intl/currency.c b/reactos/dll/cpl/intl/currency.c index 9700546e152..5fea83f7123 100644 --- a/reactos/dll/cpl/intl/currency.c +++ b/reactos/dll/cpl/intl/currency.c @@ -27,24 +27,305 @@ #include #include #include +#include #include "intl.h" #include "resource.h" +typedef struct _GLOBAL_DATA +{ + TCHAR szCurrencySymbol[6]; + TCHAR szDecimalSep[4]; + TCHAR szThousandSep[4]; + TCHAR szGrouping[10]; + + int PositiveOrder; + int NegativeOrder; + int NumDigits; + +} GLOBAL_DATA, *PGLOBAL_DATA; + + +static VOID +GetInitialCurrencyValues(PGLOBAL_DATA pGlobalData) +{ + TCHAR szBuffer[256]; + int ret; + + /* Get currency symbol */ + ret = GetLocaleInfo(LOCALE_USER_DEFAULT, + LOCALE_SCURRENCY, + pGlobalData->szCurrencySymbol, 6); + + /* Get positive format */ + ret = GetLocaleInfo(LOCALE_USER_DEFAULT, + LOCALE_ICURRENCY, + szBuffer, 256); + if (ret != 0) + { + pGlobalData->PositiveOrder = _ttoi(szBuffer); + } + + /* Get negative format */ + ret = GetLocaleInfo(LOCALE_USER_DEFAULT, + LOCALE_INEGCURR, + szBuffer, 256); + if (ret != 0) + { + pGlobalData->NegativeOrder = _ttoi(szBuffer); + } + + /* Get number of fractional digits */ + ret = GetLocaleInfo(LOCALE_USER_DEFAULT, + LOCALE_ICURRDIGITS, + szBuffer, 256); + if (ret != 0) + { + pGlobalData->NumDigits = _ttoi(szBuffer); + } + + /* Get decimal separator */ + ret = GetLocaleInfoW(LOCALE_USER_DEFAULT, + LOCALE_SMONDECIMALSEP, + pGlobalData->szDecimalSep, 4); + + /* Get group separator */ + ret = GetLocaleInfo(LOCALE_USER_DEFAULT, + LOCALE_SMONTHOUSANDSEP, + pGlobalData->szThousandSep, 4); + + /* Get grouping */ + ret = GetLocaleInfo(LOCALE_USER_DEFAULT, + LOCALE_SMONGROUPING, + pGlobalData->szGrouping, 10); + +} + + +static VOID +UpdateExamples(HWND hwndDlg, PGLOBAL_DATA pGlobalData) +{ + TCHAR szBuffer[256]; + CURRENCYFMT cyFmt; + + cyFmt.NumDigits = pGlobalData->NumDigits; + cyFmt.LeadingZero = 0; + cyFmt.Grouping = 3; + cyFmt.lpDecimalSep = pGlobalData->szDecimalSep; + cyFmt.lpThousandSep = pGlobalData->szThousandSep; + cyFmt.PositiveOrder = pGlobalData->PositiveOrder; + cyFmt.NegativeOrder = pGlobalData->NegativeOrder; + cyFmt.lpCurrencySymbol = pGlobalData->szCurrencySymbol; + + /* positive example */ + GetCurrencyFormat(LOCALE_USER_DEFAULT, 0, + _T("123456789.00"), + &cyFmt, szBuffer, 256); + + SetDlgItemText(hwndDlg, + IDC_CURRENCYPOSSAMPLE, + szBuffer); + + /* negative example */ + GetCurrencyFormat(LOCALE_USER_DEFAULT, 0, + _T("-123456789.00"), + &cyFmt, szBuffer, 256); + + SetDlgItemText(hwndDlg, + IDC_CURRENCYNEGSAMPLE, + szBuffer); +} + + +static VOID +OnInitDialog(HWND hwndDlg, PGLOBAL_DATA pGlobalData) +{ + TCHAR szBuffer[256]; + CURRENCYFMT cyFmt; + int i; + + GetInitialCurrencyValues(pGlobalData); + + /* Set currency symbol */ + SendMessage(GetDlgItem(hwndDlg, IDC_CURRENCYSYMBOL), + CB_ADDSTRING, + 0, + (LPARAM)pGlobalData->szCurrencySymbol); + + SendMessage(GetDlgItem(hwndDlg, IDC_CURRENCYSYMBOL), + CB_SETCURSEL, + 0, /* index */ + 0); + + + /* positive currency values */ + cyFmt.NumDigits = pGlobalData->NumDigits; + cyFmt.LeadingZero = 0; + cyFmt.Grouping = 3; + cyFmt.lpDecimalSep = pGlobalData->szDecimalSep; + cyFmt.lpThousandSep = pGlobalData->szThousandSep; + cyFmt.NegativeOrder = 0; + cyFmt.lpCurrencySymbol = pGlobalData->szCurrencySymbol; + + for (i = 0; i < 4; i++) + { + cyFmt.PositiveOrder = i; + GetCurrencyFormat(LOCALE_USER_DEFAULT, 0, + _T("1.1"), + &cyFmt, szBuffer, 256); + + SendMessage(GetDlgItem(hwndDlg, IDC_CURRENCYPOSVALUE), + CB_INSERTSTRING, + -1, + (LPARAM)szBuffer); + } + + SendMessage(GetDlgItem(hwndDlg, IDC_CURRENCYPOSVALUE), + CB_SETCURSEL, + pGlobalData->PositiveOrder, + 0); + + /* negative currency values */ + cyFmt.PositiveOrder = 0; + for (i = 0; i < 16; i++) + { + cyFmt.NegativeOrder = i; + GetCurrencyFormat(LOCALE_USER_DEFAULT, 0, + _T("-1.1"), + &cyFmt, szBuffer, 256); + + SendMessage(GetDlgItem(hwndDlg, IDC_CURRENCYNEGVALUE), + CB_INSERTSTRING, + -1, + (LPARAM)szBuffer); + } + + SendMessage(GetDlgItem(hwndDlg, IDC_CURRENCYNEGVALUE), + CB_SETCURSEL, + pGlobalData->NegativeOrder, /* index */ + 0); + + /* decimal separator */ + SendMessage(GetDlgItem(hwndDlg, IDC_CURRENCYDECSEP), + CB_ADDSTRING, + 0, + (LPARAM)pGlobalData->szDecimalSep); + + SendMessage(GetDlgItem(hwndDlg, IDC_CURRENCYDECSEP), + CB_SETCURSEL, + 0, /* index */ + 0); + + + /* */ + for (i = 0; i < 10; i++) + { + szBuffer[0] = _T('0') + i; + szBuffer[1] = 0; + SendMessage(GetDlgItem(hwndDlg, IDC_CURRENCYDECNUM), + CB_ADDSTRING, + 0, + (LPARAM)szBuffer); + } + + SendMessage(GetDlgItem(hwndDlg, IDC_CURRENCYDECNUM), + CB_SETCURSEL, + pGlobalData->NumDigits, /* index */ + 0); + + + /* digit group separator */ + SendMessage(GetDlgItem(hwndDlg, IDC_CURRENCYGRPSEP), + CB_ADDSTRING, + 0, + (LPARAM)pGlobalData->szThousandSep); + + SendMessage(GetDlgItem(hwndDlg, IDC_CURRENCYGRPSEP), + CB_SETCURSEL, + 0, /* index */ + 0); + + /* digit grouping */ + cyFmt.NumDigits = 0; + cyFmt.LeadingZero = 0; + cyFmt.lpDecimalSep = _T(""); + cyFmt.lpThousandSep = pGlobalData->szThousandSep; + cyFmt.NegativeOrder = 0; + cyFmt.lpCurrencySymbol = _T(""); + cyFmt.Grouping = 0; + GetCurrencyFormat(LOCALE_USER_DEFAULT, 0, + _T("123456789"), + &cyFmt, szBuffer, 256); + SendMessage(GetDlgItem(hwndDlg, IDC_CURRENCYGRPNUM), + CB_INSERTSTRING, + -1, + (LPARAM)szBuffer); + + cyFmt.Grouping = 3; + GetCurrencyFormat(LOCALE_USER_DEFAULT, 0, + _T("123456789"), + &cyFmt, szBuffer, 256); + SendMessage(GetDlgItem(hwndDlg, IDC_CURRENCYGRPNUM), + CB_INSERTSTRING, + -1, + (LPARAM)szBuffer); + + cyFmt.Grouping = 32; + GetCurrencyFormat(LOCALE_USER_DEFAULT, 0, + _T("123456789"), + &cyFmt, szBuffer, 256); + SendMessage(GetDlgItem(hwndDlg, IDC_CURRENCYGRPNUM), + CB_INSERTSTRING, + -1, + (LPARAM)szBuffer); + + i = 0; + if (pGlobalData->szGrouping[0] == _T('3')) + { + if ((pGlobalData->szGrouping[1] == _T(';')) && + (pGlobalData->szGrouping[2] == _T('2'))) + i = 2; + else + i = 1; + } + + SendMessage(GetDlgItem(hwndDlg, IDC_CURRENCYGRPNUM), + CB_SETCURSEL, + i, /* index */ + 0); + + /* Show the examples */ + UpdateExamples(hwndDlg, pGlobalData); +} + + /* Property page dialog callback */ INT_PTR CALLBACK CurrencyPageProc(HWND hwndDlg, - UINT uMsg, - WPARAM wParam, - LPARAM lParam) + UINT uMsg, + WPARAM wParam, + LPARAM lParam) { - switch(uMsg) - { - case WM_INITDIALOG: - break; - } - return FALSE; + PGLOBAL_DATA pGlobalData; + + pGlobalData = (PGLOBAL_DATA)GetWindowLongPtr(hwndDlg, DWLP_USER); + + switch (uMsg) + { + case WM_INITDIALOG: + pGlobalData = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(GLOBAL_DATA)); + SetWindowLongPtr(hwndDlg, DWLP_USER, (LONG_PTR)pGlobalData); + OnInitDialog(hwndDlg, pGlobalData); + break; + + + case WM_DESTROY: + HeapFree(GetProcessHeap(), 0, pGlobalData); + break; + } + + return FALSE; } /* EOF */ diff --git a/reactos/dll/cpl/intl/cz.rc b/reactos/dll/cpl/intl/cz.rc index 1eca1973d44..69ab2dcfee2 100644 --- a/reactos/dll/cpl/intl/cz.rc +++ b/reactos/dll/cpl/intl/cz.rc @@ -25,7 +25,25 @@ STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_DISABLED | WS_CAPTION CAPTION "Mìna" FONT 8, "MS Shell Dlg" BEGIN - LTEXT "Property Page 3",-1,73,74,90,8 + GROUPBOX "Appearance sample", -1, 7, 7, 228, 33, WS_CHILD | WS_VISIBLE + LTEXT "Positive:", -1, 13, 21, 31, 10, WS_CHILD |WS_VISIBLE | WS_GROUP + EDITTEXT IDC_CURRENCYPOSSAMPLE, 42, 19, 72, 14, ES_READONLY | WS_CHILD | WS_VISIBLE | WS_GROUP + LTEXT "Negative:", -1, 120, 21, 31, 10, WS_CHILD |WS_VISIBLE | WS_GROUP + EDITTEXT IDC_CURRENCYNEGSAMPLE, 154, 19, 72, 14, ES_READONLY | WS_CHILD | WS_VISIBLE | WS_GROUP + LTEXT "&Currency symbol:", -1, 20, 51, 96, 10, WS_CHILD |WS_VISIBLE | WS_GROUP + COMBOBOX IDC_CURRENCYSYMBOL, 124, 49, 100, 83, CBS_DROPDOWN | CBS_SORT | WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_VSCROLL + LTEXT "&Positive Amount:", -1, 20, 68, 96, 10, WS_CHILD |WS_VISIBLE | WS_GROUP + COMBOBOX IDC_CURRENCYPOSVALUE, 124, 66, 100, 83, CBS_DROPDOWN | CBS_SORT | WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_VSCROLL + LTEXT "&Negative Amount:", -1, 20, 85, 96, 10, WS_CHILD |WS_VISIBLE | WS_GROUP + COMBOBOX IDC_CURRENCYNEGVALUE, 124, 83, 100, 83, CBS_DROPDOWN | CBS_SORT | WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_VSCROLL + LTEXT "&Decimal separator:", -1, 20, 111, 96, 10, WS_CHILD |WS_VISIBLE | WS_GROUP + COMBOBOX IDC_CURRENCYDECSEP, 124, 109, 100, 83, CBS_DROPDOWN | CBS_SORT | WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_VSCROLL + LTEXT "&Number of fractional digits:", -1, 20, 128, 96, 10, WS_CHILD |WS_VISIBLE | WS_GROUP + COMBOBOX IDC_CURRENCYDECNUM, 124, 126, 100, 83, CBS_DROPDOWN | CBS_SORT | WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_VSCROLL + LTEXT "&Grouping symbol:", -1, 20, 156, 100, 10, WS_CHILD |WS_VISIBLE | WS_GROUP + COMBOBOX IDC_CURRENCYGRPSEP, 124, 154, 100, 83, CBS_DROPDOWN | CBS_SORT | WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_VSCROLL + LTEXT "&Digit grouping:", -1, 20, 173, 96, 10, WS_CHILD |WS_VISIBLE | WS_GROUP + COMBOBOX IDC_CURRENCYGRPNUM, 124, 171, 100, 83, CBS_DROPDOWN | CBS_SORT | WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_VSCROLL END diff --git a/reactos/dll/cpl/intl/de.rc b/reactos/dll/cpl/intl/de.rc index 4553386f3a9..5e2535acad0 100644 --- a/reactos/dll/cpl/intl/de.rc +++ b/reactos/dll/cpl/intl/de.rc @@ -25,7 +25,25 @@ STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_DISABLED | WS_CAPTION CAPTION "Währung" FONT 8, "MS Shell Dlg" BEGIN - LTEXT "Property Page 3",-1,73,74,90,8 + GROUPBOX "Darstellung", -1, 7, 7, 228, 33, WS_CHILD | WS_VISIBLE + LTEXT "Positiv:", -1, 13, 21, 31, 10, WS_CHILD |WS_VISIBLE | WS_GROUP + EDITTEXT IDC_CURRENCYPOSSAMPLE, 42, 19, 72, 14, ES_READONLY | WS_CHILD | WS_VISIBLE | WS_GROUP + LTEXT "Negativ:", -1, 120, 21, 31, 10, WS_CHILD |WS_VISIBLE | WS_GROUP + EDITTEXT IDC_CURRENCYNEGSAMPLE, 154, 19, 72, 14, ES_READONLY | WS_CHILD | WS_VISIBLE | WS_GROUP + LTEXT "&Währungssymbol:", -1, 20, 51, 96, 10, WS_CHILD |WS_VISIBLE | WS_GROUP + COMBOBOX IDC_CURRENCYSYMBOL, 124, 49, 100, 83, CBS_DROPDOWN | CBS_SORT | WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_VSCROLL + LTEXT "Format für &positive Beträge:", -1, 20, 68, 96, 10, WS_CHILD |WS_VISIBLE | WS_GROUP + COMBOBOX IDC_CURRENCYPOSVALUE, 124, 66, 100, 83, CBS_DROPDOWN | CBS_SORT | WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_VSCROLL + LTEXT "Format für &negative Beträge:", -1, 20, 85, 96, 10, WS_CHILD |WS_VISIBLE | WS_GROUP + COMBOBOX IDC_CURRENCYNEGVALUE, 124, 83, 100, 83, CBS_DROPDOWN | CBS_SORT | WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_VSCROLL + LTEXT "&Dezimaltrennzeichen:", -1, 20, 111, 96, 10, WS_CHILD |WS_VISIBLE | WS_GROUP + COMBOBOX IDC_CURRENCYDECSEP, 124, 109, 100, 83, CBS_DROPDOWN | CBS_SORT | WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_VSCROLL + LTEXT "&Anzahl der Dezimalstellen:", -1, 20, 128, 96, 10, WS_CHILD |WS_VISIBLE | WS_GROUP + COMBOBOX IDC_CURRENCYDECNUM, 124, 126, 100, 83, CBS_DROPDOWN | CBS_SORT | WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_VSCROLL + LTEXT "&Symbol für Zifferngruppierung:", -1, 20, 156, 100, 10, WS_CHILD |WS_VISIBLE | WS_GROUP + COMBOBOX IDC_CURRENCYGRPSEP, 124, 154, 100, 83, CBS_DROPDOWN | CBS_SORT | WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_VSCROLL + LTEXT "&Zifferngruppierung:", -1, 20, 173, 96, 10, WS_CHILD |WS_VISIBLE | WS_GROUP + COMBOBOX IDC_CURRENCYGRPNUM, 124, 171, 100, 83, CBS_DROPDOWN | CBS_SORT | WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_VSCROLL END diff --git a/reactos/dll/cpl/intl/en.rc b/reactos/dll/cpl/intl/en.rc index 88d88542650..be3f714f3df 100644 --- a/reactos/dll/cpl/intl/en.rc +++ b/reactos/dll/cpl/intl/en.rc @@ -25,7 +25,25 @@ STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_DISABLED | WS_CAPTION CAPTION "Currency" FONT 8, "MS Shell Dlg" BEGIN - LTEXT "Property Page 3",-1,73,74,90,8 + GROUPBOX "Appearance sample", -1, 7, 7, 228, 33, WS_CHILD | WS_VISIBLE + LTEXT "Positive:", -1, 13, 21, 31, 10, WS_CHILD |WS_VISIBLE | WS_GROUP + EDITTEXT IDC_CURRENCYPOSSAMPLE, 42, 19, 72, 14, ES_READONLY | WS_CHILD | WS_VISIBLE | WS_GROUP + LTEXT "Negative:", -1, 120, 21, 31, 10, WS_CHILD |WS_VISIBLE | WS_GROUP + EDITTEXT IDC_CURRENCYNEGSAMPLE, 154, 19, 72, 14, ES_READONLY | WS_CHILD | WS_VISIBLE | WS_GROUP + LTEXT "&Currency symbol:", -1, 20, 51, 96, 10, WS_CHILD |WS_VISIBLE | WS_GROUP + COMBOBOX IDC_CURRENCYSYMBOL, 124, 49, 100, 83, CBS_DROPDOWN | CBS_SORT | WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_VSCROLL + LTEXT "&Positive Amount:", -1, 20, 68, 96, 10, WS_CHILD |WS_VISIBLE | WS_GROUP + COMBOBOX IDC_CURRENCYPOSVALUE, 124, 66, 100, 83, CBS_DROPDOWN | CBS_SORT | WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_VSCROLL + LTEXT "&Negative Amount:", -1, 20, 85, 96, 10, WS_CHILD |WS_VISIBLE | WS_GROUP + COMBOBOX IDC_CURRENCYNEGVALUE, 124, 83, 100, 83, CBS_DROPDOWN | CBS_SORT | WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_VSCROLL + LTEXT "&Decimal separator:", -1, 20, 111, 96, 10, WS_CHILD |WS_VISIBLE | WS_GROUP + COMBOBOX IDC_CURRENCYDECSEP, 124, 109, 100, 83, CBS_DROPDOWN | CBS_SORT | WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_VSCROLL + LTEXT "&Number of fractional digits:", -1, 20, 128, 96, 10, WS_CHILD |WS_VISIBLE | WS_GROUP + COMBOBOX IDC_CURRENCYDECNUM, 124, 126, 100, 83, CBS_DROPDOWN | CBS_SORT | WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_VSCROLL + LTEXT "&Grouping symbol:", -1, 20, 156, 100, 10, WS_CHILD |WS_VISIBLE | WS_GROUP + COMBOBOX IDC_CURRENCYGRPSEP, 124, 154, 100, 83, CBS_DROPDOWN | CBS_SORT | WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_VSCROLL + LTEXT "&Digit grouping:", -1, 20, 173, 96, 10, WS_CHILD |WS_VISIBLE | WS_GROUP + COMBOBOX IDC_CURRENCYGRPNUM, 124, 171, 100, 83, CBS_DROPDOWN | CBS_SORT | WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_VSCROLL END diff --git a/reactos/dll/cpl/intl/es.rc b/reactos/dll/cpl/intl/es.rc index fada44838ad..04b2b48385f 100644 --- a/reactos/dll/cpl/intl/es.rc +++ b/reactos/dll/cpl/intl/es.rc @@ -29,7 +29,25 @@ STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_DISABLED | WS_CAPTION CAPTION "Moneda" FONT 8, "MS Shell Dlg" BEGIN - LTEXT "Property Page 3",-1,73,74,90,8 + GROUPBOX "Appearance sample", -1, 7, 7, 228, 33, WS_CHILD | WS_VISIBLE + LTEXT "Positive:", -1, 13, 21, 31, 10, WS_CHILD |WS_VISIBLE | WS_GROUP + EDITTEXT IDC_CURRENCYPOSSAMPLE, 42, 19, 72, 14, ES_READONLY | WS_CHILD | WS_VISIBLE | WS_GROUP + LTEXT "Negative:", -1, 120, 21, 31, 10, WS_CHILD |WS_VISIBLE | WS_GROUP + EDITTEXT IDC_CURRENCYNEGSAMPLE, 154, 19, 72, 14, ES_READONLY | WS_CHILD | WS_VISIBLE | WS_GROUP + LTEXT "&Currency symbol:", -1, 20, 51, 96, 10, WS_CHILD |WS_VISIBLE | WS_GROUP + COMBOBOX IDC_CURRENCYSYMBOL, 124, 49, 100, 83, CBS_DROPDOWN | CBS_SORT | WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_VSCROLL + LTEXT "&Positive Amount:", -1, 20, 68, 96, 10, WS_CHILD |WS_VISIBLE | WS_GROUP + COMBOBOX IDC_CURRENCYPOSVALUE, 124, 66, 100, 83, CBS_DROPDOWN | CBS_SORT | WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_VSCROLL + LTEXT "&Negative Amount:", -1, 20, 85, 96, 10, WS_CHILD |WS_VISIBLE | WS_GROUP + COMBOBOX IDC_CURRENCYNEGVALUE, 124, 83, 100, 83, CBS_DROPDOWN | CBS_SORT | WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_VSCROLL + LTEXT "&Decimal separator:", -1, 20, 111, 96, 10, WS_CHILD |WS_VISIBLE | WS_GROUP + COMBOBOX IDC_CURRENCYDECSEP, 124, 109, 100, 83, CBS_DROPDOWN | CBS_SORT | WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_VSCROLL + LTEXT "&Number of fractional digits:", -1, 20, 128, 96, 10, WS_CHILD |WS_VISIBLE | WS_GROUP + COMBOBOX IDC_CURRENCYDECNUM, 124, 126, 100, 83, CBS_DROPDOWN | CBS_SORT | WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_VSCROLL + LTEXT "&Grouping symbol:", -1, 20, 156, 100, 10, WS_CHILD |WS_VISIBLE | WS_GROUP + COMBOBOX IDC_CURRENCYGRPSEP, 124, 154, 100, 83, CBS_DROPDOWN | CBS_SORT | WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_VSCROLL + LTEXT "&Digit grouping:", -1, 20, 173, 96, 10, WS_CHILD |WS_VISIBLE | WS_GROUP + COMBOBOX IDC_CURRENCYGRPNUM, 124, 171, 100, 83, CBS_DROPDOWN | CBS_SORT | WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_VSCROLL END diff --git a/reactos/dll/cpl/intl/hu.rc b/reactos/dll/cpl/intl/hu.rc index 980fc8fdfd1..f84f90a2ed0 100644 --- a/reactos/dll/cpl/intl/hu.rc +++ b/reactos/dll/cpl/intl/hu.rc @@ -24,7 +24,25 @@ STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_DISABLED | WS_CAPTION CAPTION "Pénznem" FONT 8, "MS Shell Dlg" BEGIN - LTEXT "3.tulajdonságlap",-1,73,74,90,8 + GROUPBOX "Appearance sample", -1, 7, 7, 228, 33, WS_CHILD | WS_VISIBLE + LTEXT "Positive:", -1, 13, 21, 31, 10, WS_CHILD |WS_VISIBLE | WS_GROUP + EDITTEXT IDC_CURRENCYPOSSAMPLE, 42, 19, 72, 14, ES_READONLY | WS_CHILD | WS_VISIBLE | WS_GROUP + LTEXT "Negative:", -1, 120, 21, 31, 10, WS_CHILD |WS_VISIBLE | WS_GROUP + EDITTEXT IDC_CURRENCYNEGSAMPLE, 154, 19, 72, 14, ES_READONLY | WS_CHILD | WS_VISIBLE | WS_GROUP + LTEXT "&Currency symbol:", -1, 20, 51, 96, 10, WS_CHILD |WS_VISIBLE | WS_GROUP + COMBOBOX IDC_CURRENCYSYMBOL, 124, 49, 100, 83, CBS_DROPDOWN | CBS_SORT | WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_VSCROLL + LTEXT "&Positive Amount:", -1, 20, 68, 96, 10, WS_CHILD |WS_VISIBLE | WS_GROUP + COMBOBOX IDC_CURRENCYPOSVALUE, 124, 66, 100, 83, CBS_DROPDOWN | CBS_SORT | WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_VSCROLL + LTEXT "&Negative Amount:", -1, 20, 85, 96, 10, WS_CHILD |WS_VISIBLE | WS_GROUP + COMBOBOX IDC_CURRENCYNEGVALUE, 124, 83, 100, 83, CBS_DROPDOWN | CBS_SORT | WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_VSCROLL + LTEXT "&Decimal separator:", -1, 20, 111, 96, 10, WS_CHILD |WS_VISIBLE | WS_GROUP + COMBOBOX IDC_CURRENCYDECSEP, 124, 109, 100, 83, CBS_DROPDOWN | CBS_SORT | WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_VSCROLL + LTEXT "&Number of fractional digits:", -1, 20, 128, 96, 10, WS_CHILD |WS_VISIBLE | WS_GROUP + COMBOBOX IDC_CURRENCYDECNUM, 124, 126, 100, 83, CBS_DROPDOWN | CBS_SORT | WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_VSCROLL + LTEXT "&Grouping symbol:", -1, 20, 156, 100, 10, WS_CHILD |WS_VISIBLE | WS_GROUP + COMBOBOX IDC_CURRENCYGRPSEP, 124, 154, 100, 83, CBS_DROPDOWN | CBS_SORT | WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_VSCROLL + LTEXT "&Digit grouping:", -1, 20, 173, 96, 10, WS_CHILD |WS_VISIBLE | WS_GROUP + COMBOBOX IDC_CURRENCYGRPNUM, 124, 171, 100, 83, CBS_DROPDOWN | CBS_SORT | WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_VSCROLL END diff --git a/reactos/dll/cpl/intl/nl.rc b/reactos/dll/cpl/intl/nl.rc index 3f6d4c9945f..4e49f667388 100644 --- a/reactos/dll/cpl/intl/nl.rc +++ b/reactos/dll/cpl/intl/nl.rc @@ -25,7 +25,25 @@ STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_DISABLED | WS_CAPTION CAPTION "Valuta" FONT 8, "MS Shell Dlg" BEGIN - LTEXT "Property Page 3",-1,73,74,90,8 + GROUPBOX "Appearance sample", -1, 7, 7, 228, 33, WS_CHILD | WS_VISIBLE + LTEXT "Positive:", -1, 13, 21, 31, 10, WS_CHILD |WS_VISIBLE | WS_GROUP + EDITTEXT IDC_CURRENCYPOSSAMPLE, 42, 19, 72, 14, ES_READONLY | WS_CHILD | WS_VISIBLE | WS_GROUP + LTEXT "Negative:", -1, 120, 21, 31, 10, WS_CHILD |WS_VISIBLE | WS_GROUP + EDITTEXT IDC_CURRENCYNEGSAMPLE, 154, 19, 72, 14, ES_READONLY | WS_CHILD | WS_VISIBLE | WS_GROUP + LTEXT "&Currency symbol:", -1, 20, 51, 96, 10, WS_CHILD |WS_VISIBLE | WS_GROUP + COMBOBOX IDC_CURRENCYSYMBOL, 124, 49, 100, 83, CBS_DROPDOWN | CBS_SORT | WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_VSCROLL + LTEXT "&Positive Amount:", -1, 20, 68, 96, 10, WS_CHILD |WS_VISIBLE | WS_GROUP + COMBOBOX IDC_CURRENCYPOSVALUE, 124, 66, 100, 83, CBS_DROPDOWN | CBS_SORT | WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_VSCROLL + LTEXT "&Negative Amount:", -1, 20, 85, 96, 10, WS_CHILD |WS_VISIBLE | WS_GROUP + COMBOBOX IDC_CURRENCYNEGVALUE, 124, 83, 100, 83, CBS_DROPDOWN | CBS_SORT | WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_VSCROLL + LTEXT "&Decimal separator:", -1, 20, 111, 96, 10, WS_CHILD |WS_VISIBLE | WS_GROUP + COMBOBOX IDC_CURRENCYDECSEP, 124, 109, 100, 83, CBS_DROPDOWN | CBS_SORT | WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_VSCROLL + LTEXT "&Number of fractional digits:", -1, 20, 128, 96, 10, WS_CHILD |WS_VISIBLE | WS_GROUP + COMBOBOX IDC_CURRENCYDECNUM, 124, 126, 100, 83, CBS_DROPDOWN | CBS_SORT | WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_VSCROLL + LTEXT "&Grouping symbol:", -1, 20, 156, 100, 10, WS_CHILD |WS_VISIBLE | WS_GROUP + COMBOBOX IDC_CURRENCYGRPSEP, 124, 154, 100, 83, CBS_DROPDOWN | CBS_SORT | WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_VSCROLL + LTEXT "&Digit grouping:", -1, 20, 173, 96, 10, WS_CHILD |WS_VISIBLE | WS_GROUP + COMBOBOX IDC_CURRENCYGRPNUM, 124, 171, 100, 83, CBS_DROPDOWN | CBS_SORT | WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_VSCROLL END diff --git a/reactos/dll/cpl/intl/resource.h b/reactos/dll/cpl/intl/resource.h index d125194b565..ffd0718c4df 100644 --- a/reactos/dll/cpl/intl/resource.h +++ b/reactos/dll/cpl/intl/resource.h @@ -8,7 +8,17 @@ #define IDD_GENERALPAGE 100 #define IDD_NUMBERSPAGE 101 -#define IDD_CURRENCYPAGE 102 + +#define IDD_CURRENCYPAGE 140 +#define IDC_CURRENCYPOSSAMPLE 141 +#define IDC_CURRENCYNEGSAMPLE 142 +#define IDC_CURRENCYSYMBOL 143 +#define IDC_CURRENCYPOSVALUE 144 +#define IDC_CURRENCYNEGVALUE 145 +#define IDC_CURRENCYDECSEP 146 +#define IDC_CURRENCYDECNUM 148 +#define IDC_CURRENCYGRPSEP 149 +#define IDC_CURRENCYGRPNUM 150 #define IDD_TIMEPAGE 103 #define IDC_TIMESAMPLE 107 diff --git a/reactos/dll/cpl/intl/ru.rc b/reactos/dll/cpl/intl/ru.rc index c7d293a68bc..4994f35fafd 100644 --- a/reactos/dll/cpl/intl/ru.rc +++ b/reactos/dll/cpl/intl/ru.rc @@ -25,7 +25,25 @@ STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_DISABLED | WS_CAPTION CAPTION "Äåíåæíàÿ åäèíèöà" FONT 8, "MS Shell Dlg" BEGIN - LTEXT "Âêëàäêà 3",-1,73,74,90,8 + GROUPBOX "Appearance sample", -1, 7, 7, 228, 33, WS_CHILD | WS_VISIBLE + LTEXT "Positive:", -1, 13, 21, 31, 10, WS_CHILD |WS_VISIBLE | WS_GROUP + EDITTEXT IDC_CURRENCYPOSSAMPLE, 42, 19, 72, 14, ES_READONLY | WS_CHILD | WS_VISIBLE | WS_GROUP + LTEXT "Negative:", -1, 120, 21, 31, 10, WS_CHILD |WS_VISIBLE | WS_GROUP + EDITTEXT IDC_CURRENCYNEGSAMPLE, 154, 19, 72, 14, ES_READONLY | WS_CHILD | WS_VISIBLE | WS_GROUP + LTEXT "&Currency symbol:", -1, 20, 51, 96, 10, WS_CHILD |WS_VISIBLE | WS_GROUP + COMBOBOX IDC_CURRENCYSYMBOL, 124, 49, 100, 83, CBS_DROPDOWN | CBS_SORT | WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_VSCROLL + LTEXT "&Positive Amount:", -1, 20, 68, 96, 10, WS_CHILD |WS_VISIBLE | WS_GROUP + COMBOBOX IDC_CURRENCYPOSVALUE, 124, 66, 100, 83, CBS_DROPDOWN | CBS_SORT | WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_VSCROLL + LTEXT "&Negative Amount:", -1, 20, 85, 96, 10, WS_CHILD |WS_VISIBLE | WS_GROUP + COMBOBOX IDC_CURRENCYNEGVALUE, 124, 83, 100, 83, CBS_DROPDOWN | CBS_SORT | WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_VSCROLL + LTEXT "&Decimal separator:", -1, 20, 111, 96, 10, WS_CHILD |WS_VISIBLE | WS_GROUP + COMBOBOX IDC_CURRENCYDECSEP, 124, 109, 100, 83, CBS_DROPDOWN | CBS_SORT | WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_VSCROLL + LTEXT "&Number of fractional digits:", -1, 20, 128, 96, 10, WS_CHILD |WS_VISIBLE | WS_GROUP + COMBOBOX IDC_CURRENCYDECNUM, 124, 126, 100, 83, CBS_DROPDOWN | CBS_SORT | WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_VSCROLL + LTEXT "&Grouping symbol:", -1, 20, 156, 100, 10, WS_CHILD |WS_VISIBLE | WS_GROUP + COMBOBOX IDC_CURRENCYGRPSEP, 124, 154, 100, 83, CBS_DROPDOWN | CBS_SORT | WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_VSCROLL + LTEXT "&Digit grouping:", -1, 20, 173, 96, 10, WS_CHILD |WS_VISIBLE | WS_GROUP + COMBOBOX IDC_CURRENCYGRPNUM, 124, 171, 100, 83, CBS_DROPDOWN | CBS_SORT | WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_VSCROLL END diff --git a/reactos/dll/cpl/intl/sv.rc b/reactos/dll/cpl/intl/sv.rc index e566700b7fe..705e0e75a4f 100644 --- a/reactos/dll/cpl/intl/sv.rc +++ b/reactos/dll/cpl/intl/sv.rc @@ -26,7 +26,25 @@ STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_DISABLED | WS_CAPTION CAPTION "Valuta" FONT 8, "MS Shell Dlg" BEGIN - LTEXT "Property Page 3",-1,73,74,90,8 + GROUPBOX "Appearance sample", -1, 7, 7, 228, 33, WS_CHILD | WS_VISIBLE + LTEXT "Positive:", -1, 13, 21, 31, 10, WS_CHILD |WS_VISIBLE | WS_GROUP + EDITTEXT IDC_CURRENCYPOSSAMPLE, 42, 19, 72, 14, ES_READONLY | WS_CHILD | WS_VISIBLE | WS_GROUP + LTEXT "Negative:", -1, 120, 21, 31, 10, WS_CHILD |WS_VISIBLE | WS_GROUP + EDITTEXT IDC_CURRENCYNEGSAMPLE, 154, 19, 72, 14, ES_READONLY | WS_CHILD | WS_VISIBLE | WS_GROUP + LTEXT "&Currency symbol:", -1, 20, 51, 96, 10, WS_CHILD |WS_VISIBLE | WS_GROUP + COMBOBOX IDC_CURRENCYSYMBOL, 124, 49, 100, 83, CBS_DROPDOWN | CBS_SORT | WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_VSCROLL + LTEXT "&Positive Amount:", -1, 20, 68, 96, 10, WS_CHILD |WS_VISIBLE | WS_GROUP + COMBOBOX IDC_CURRENCYPOSVALUE, 124, 66, 100, 83, CBS_DROPDOWN | CBS_SORT | WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_VSCROLL + LTEXT "&Negative Amount:", -1, 20, 85, 96, 10, WS_CHILD |WS_VISIBLE | WS_GROUP + COMBOBOX IDC_CURRENCYNEGVALUE, 124, 83, 100, 83, CBS_DROPDOWN | CBS_SORT | WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_VSCROLL + LTEXT "&Decimal separator:", -1, 20, 111, 96, 10, WS_CHILD |WS_VISIBLE | WS_GROUP + COMBOBOX IDC_CURRENCYDECSEP, 124, 109, 100, 83, CBS_DROPDOWN | CBS_SORT | WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_VSCROLL + LTEXT "&Number of fractional digits:", -1, 20, 128, 96, 10, WS_CHILD |WS_VISIBLE | WS_GROUP + COMBOBOX IDC_CURRENCYDECNUM, 124, 126, 100, 83, CBS_DROPDOWN | CBS_SORT | WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_VSCROLL + LTEXT "&Grouping symbol:", -1, 20, 156, 100, 10, WS_CHILD |WS_VISIBLE | WS_GROUP + COMBOBOX IDC_CURRENCYGRPSEP, 124, 154, 100, 83, CBS_DROPDOWN | CBS_SORT | WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_VSCROLL + LTEXT "&Digit grouping:", -1, 20, 173, 96, 10, WS_CHILD |WS_VISIBLE | WS_GROUP + COMBOBOX IDC_CURRENCYGRPNUM, 124, 171, 100, 83, CBS_DROPDOWN | CBS_SORT | WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_VSCROLL END @@ -35,7 +53,23 @@ STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_DISABLED | WS_CAPTION CAPTION "Tid" FONT 8, "MS Shell Dlg" BEGIN - LTEXT "Property Page 4",-1,73,74,90,8 + GROUPBOX "Appearance sample", -1, 7, 7, 228, 33, WS_CHILD | WS_VISIBLE + LTEXT "Time sample:", -1, 13, 21, 54, 10, WS_CHILD |WS_VISIBLE | WS_GROUP + EDITTEXT IDC_TIMESAMPLE, 68, 19, 84, 14, ES_READONLY | WS_CHILD | WS_VISIBLE | WS_GROUP + LTEXT "&Time format:", -1, 13, 52, 54, 10, WS_CHILD |WS_VISIBLE | WS_GROUP + COMBOBOX IDC_TIMEFORMAT, 68, 50, 84, 100, CBS_DROPDOWN | WS_CHILD | WS_VISIBLE | WS_TABSTOP + LTEXT "Time &separator:", -1, 13, 70, 54, 10, WS_VISIBLE | WS_GROUP + COMBOBOX IDC_TIMESEPARATOR, 68, 68, 84, 100, CBS_DROPDOWN | WS_CHILD | WS_VISIBLE | WS_TABSTOP + LTEXT "A&M symbol:", -1, 13, 88, 54, 10, WS_VISIBLE | WS_GROUP + COMBOBOX IDC_TIMEAMSYMBOL, 68, 86, 84, 100, CBS_DROPDOWN | WS_CHILD | WS_VISIBLE | WS_TABSTOP + LTEXT "&PM symbol:", -1, 13, 106, 54, 10, WS_VISIBLE | WS_GROUP + COMBOBOX IDC_TIMEPMSYMBOL, 68, 104, 84, 100, CBS_DROPDOWN | WS_CHILD | WS_VISIBLE | WS_TABSTOP + GROUPBOX "", -1, 7, 124, 228, 60, WS_VISIBLE + LTEXT "Time format notation\n\n\ +h = hour m = minute s = second t = am or pm\n\n\ +h = 12 hour H = 24 hour\n\ +hh, mm, ss = leading zero h, m, s = no leading zero", + -1, 13, 133, 214, 47, WS_CHILD |WS_VISIBLE | WS_GROUP END diff --git a/reactos/dll/cpl/intl/uk.rc b/reactos/dll/cpl/intl/uk.rc index e1f93d5352b..2e5bf5609c5 100644 --- a/reactos/dll/cpl/intl/uk.rc +++ b/reactos/dll/cpl/intl/uk.rc @@ -32,7 +32,25 @@ STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_DISABLED | WS_CAPTION CAPTION "Ãðîøîâà îäèíèöÿ" FONT 8, "MS Shell Dlg" BEGIN - LTEXT "Âêëàäêà âëàñòèâîñòåé 3",-1,73,74,90,8 + GROUPBOX "Appearance sample", -1, 7, 7, 228, 33, WS_CHILD | WS_VISIBLE + LTEXT "Positive:", -1, 13, 21, 31, 10, WS_CHILD |WS_VISIBLE | WS_GROUP + EDITTEXT IDC_CURRENCYPOSSAMPLE, 42, 19, 72, 14, ES_READONLY | WS_CHILD | WS_VISIBLE | WS_GROUP + LTEXT "Negative:", -1, 120, 21, 31, 10, WS_CHILD |WS_VISIBLE | WS_GROUP + EDITTEXT IDC_CURRENCYNEGSAMPLE, 154, 19, 72, 14, ES_READONLY | WS_CHILD | WS_VISIBLE | WS_GROUP + LTEXT "&Currency symbol:", -1, 20, 51, 96, 10, WS_CHILD |WS_VISIBLE | WS_GROUP + COMBOBOX IDC_CURRENCYSYMBOL, 124, 49, 100, 83, CBS_DROPDOWN | CBS_SORT | WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_VSCROLL + LTEXT "&Positive Amount:", -1, 20, 68, 96, 10, WS_CHILD |WS_VISIBLE | WS_GROUP + COMBOBOX IDC_CURRENCYPOSVALUE, 124, 66, 100, 83, CBS_DROPDOWN | CBS_SORT | WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_VSCROLL + LTEXT "&Negative Amount:", -1, 20, 85, 96, 10, WS_CHILD |WS_VISIBLE | WS_GROUP + COMBOBOX IDC_CURRENCYNEGVALUE, 124, 83, 100, 83, CBS_DROPDOWN | CBS_SORT | WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_VSCROLL + LTEXT "&Decimal separator:", -1, 20, 111, 96, 10, WS_CHILD |WS_VISIBLE | WS_GROUP + COMBOBOX IDC_CURRENCYDECSEP, 124, 109, 100, 83, CBS_DROPDOWN | CBS_SORT | WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_VSCROLL + LTEXT "&Number of fractional digits:", -1, 20, 128, 96, 10, WS_CHILD |WS_VISIBLE | WS_GROUP + COMBOBOX IDC_CURRENCYDECNUM, 124, 126, 100, 83, CBS_DROPDOWN | CBS_SORT | WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_VSCROLL + LTEXT "&Grouping symbol:", -1, 20, 156, 100, 10, WS_CHILD |WS_VISIBLE | WS_GROUP + COMBOBOX IDC_CURRENCYGRPSEP, 124, 154, 100, 83, CBS_DROPDOWN | CBS_SORT | WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_VSCROLL + LTEXT "&Digit grouping:", -1, 20, 173, 96, 10, WS_CHILD |WS_VISIBLE | WS_GROUP + COMBOBOX IDC_CURRENCYGRPNUM, 124, 171, 100, 83, CBS_DROPDOWN | CBS_SORT | WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_VSCROLL END diff --git a/reactos/dll/win32/user32/windows/input.c b/reactos/dll/win32/user32/windows/input.c index 6f7bac23902..ed5a7138ee7 100644 --- a/reactos/dll/win32/user32/windows/input.c +++ b/reactos/dll/win32/user32/windows/input.c @@ -36,7 +36,6 @@ /* Directory to load key layouts from */ #define SYSTEMROOT_DIR L"\\SystemRoot\\System32\\" - /* GLOBALS *******************************************************************/ typedef struct __TRACKINGLIST { @@ -338,11 +337,27 @@ EnableWindow(HWND hWnd, BOOL bEnable) { LONG Style = NtUserGetWindowLong(hWnd, GWL_STYLE, FALSE); - Style = bEnable ? Style & ~WS_DISABLED : Style | WS_DISABLED; - NtUserSetWindowLong(hWnd, GWL_STYLE, Style, FALSE); - - SendMessageA(hWnd, WM_ENABLE, (LPARAM) IsWindowEnabled(hWnd), 0); + /* check if updating is needed */ + UINT bIsDisabled = (Style & WS_DISABLED); + if ( (bIsDisabled && bEnable) || (!bIsDisabled && !bEnable) ) + { + if (bEnable) + { + Style &= ~WS_DISABLED; + } + else + { + Style |= WS_DISABLED; + /* Remove keyboard focus from that window if it had focus */ + if (hWnd == GetFocus()) + { + SetFocus(NULL); + } + } + NtUserSetWindowLong(hWnd, GWL_STYLE, Style, FALSE); + SendMessageA(hWnd, WM_ENABLE, (LPARAM) IsWindowEnabled(hWnd), 0); + } // Return nonzero if it was disabled, or zero if it wasn't: return IsWindowEnabled(hWnd); } diff --git a/reactos/drivers/base/blue/blue.c b/reactos/drivers/base/blue/blue.c index 6ef84ffb709..2b1743cb4fd 100644 --- a/reactos/drivers/base/blue/blue.c +++ b/reactos/drivers/base/blue/blue.c @@ -109,7 +109,7 @@ static const VGA_REGISTERS VidpMode3Regs = /* Sequencer Registers */ {0x03, 0x00, 0x03, 0x00, 0x02}, /* Misc Output Register */ - 0xE3 + 0x67 }; static const UCHAR DefaultPalette[] = diff --git a/reactos/ntoskrnl/ex/pushlock.c b/reactos/ntoskrnl/ex/pushlock.c index bccf40a2482..80103eaa68b 100644 --- a/reactos/ntoskrnl/ex/pushlock.c +++ b/reactos/ntoskrnl/ex/pushlock.c @@ -97,7 +97,7 @@ ExfWakePushLock(PEX_PUSH_LOCK PushLock, OldValue = NewValue; /* Check if it's still locked */ - if (OldValue.Locked) continue; + if (!OldValue.Locked) break; } } diff --git a/reactos/subsystems/win32/win32k/include/input.h b/reactos/subsystems/win32/win32k/include/input.h index 4619b680c27..6f201eae1b7 100644 --- a/reactos/subsystems/win32/win32k/include/input.h +++ b/reactos/subsystems/win32/win32k/include/input.h @@ -3,6 +3,24 @@ #include +typedef struct _KBDRVFILE +{ + PSINGLE_LIST_ENTRY pkbdfChain; + WCHAR wcKBDF[9]; // used w GetKeyboardLayoutName same as wszKLID. + struct _KBDTABLES* KBTables; // KBDTABLES in ntoskrnl/include/internal/kbd.h +} KBDRVFILE, *PKBDRVFILE; + +typedef struct _KBL +{ + PLIST_ENTRY pklChain; + DWORD dwKBLFlags; + HKL hkl; + PKBDRVFILE pkbdf; +} KBL, *PKBL; + +#define KBL_UNLOADED 0x20000000 +#define KBL_RESET 0x40000000 + NTSTATUS FASTCALL InitInputImpl(VOID); NTSTATUS FASTCALL diff --git a/reactos/subsystems/win32/win32k/ntuser/focus.c b/reactos/subsystems/win32/win32k/ntuser/focus.c index f98a4289522..3f764aa2570 100644 --- a/reactos/subsystems/win32/win32k/ntuser/focus.c +++ b/reactos/subsystems/win32/win32k/ntuser/focus.c @@ -304,27 +304,37 @@ co_IntSetActiveWindow(PWINDOW_OBJECT Window OPTIONAL) static HWND FASTCALL -co_IntSetFocusWindow(PWINDOW_OBJECT Window) +co_IntSetFocusWindow(PWINDOW_OBJECT Window OPTIONAL) { HWND hWndPrev = 0; PUSER_MESSAGE_QUEUE ThreadQueue; - ASSERT_REFS_CO(Window); + if (Window) + ASSERT_REFS_CO(Window); ThreadQueue = (PUSER_MESSAGE_QUEUE)PsGetCurrentThreadWin32Thread()->MessageQueue; ASSERT(ThreadQueue != 0); hWndPrev = ThreadQueue->FocusWindow; - if (hWndPrev == Window->hSelf) - { - return hWndPrev; - } - ThreadQueue->FocusWindow = Window->hSelf; + if (Window != 0) + { + if (hWndPrev == Window->hSelf) + { + return hWndPrev; + } - co_IntSendKillFocusMessages(hWndPrev, Window->hSelf); - co_IntSendSetFocusMessages(hWndPrev, Window->hSelf); + ThreadQueue->FocusWindow = Window->hSelf; + co_IntSendKillFocusMessages(hWndPrev, Window->hSelf); + co_IntSendSetFocusMessages(hWndPrev, Window->hSelf); + } + else + { + ThreadQueue->FocusWindow = 0; + + co_IntSendKillFocusMessages(hWndPrev, 0); + } return hWndPrev; } @@ -562,16 +572,23 @@ NtUserSetFocus(HWND hWnd) DPRINT("Enter NtUserSetFocus(%x)\n", hWnd); UserEnterExclusive(); - if (!(Window = UserGetWindowObject(hWnd))) + if (hWnd) { - RETURN(NULL); - } + if (!(Window = UserGetWindowObject(hWnd))) + { + RETURN(NULL); + } - UserRefObjectCo(Window, &Ref); - ret = co_UserSetFocus(Window); - UserDerefObjectCo(Window); + UserRefObjectCo(Window, &Ref); + ret = co_UserSetFocus(Window); + UserDerefObjectCo(Window); - RETURN(ret); + RETURN(ret); + } + else + { + RETURN( co_UserSetFocus(0)); + } CLEANUP: DPRINT("Leave NtUserSetFocus, ret=%i\n",_ret_); diff --git a/reactos/subsystems/win32/win32k/ntuser/keyboard.c b/reactos/subsystems/win32/win32k/ntuser/keyboard.c index d97660630a6..e8ea2681b48 100644 --- a/reactos/subsystems/win32/win32k/ntuser/keyboard.c +++ b/reactos/subsystems/win32/win32k/ntuser/keyboard.c @@ -53,6 +53,9 @@ BYTE gQueueKeyStateTable[256]; +PKBDRVFILE KBLList = NULL; // Keyboard layout list. + + /* FUNCTIONS *****************************************************************/ /* Initialization -- Right now, just zero the key state and init the lock */ diff --git a/reactos/subsystems/win32/win32k/ntuser/misc.c b/reactos/subsystems/win32/win32k/ntuser/misc.c index 63bc4d0803b..ec20f50c914 100644 --- a/reactos/subsystems/win32/win32k/ntuser/misc.c +++ b/reactos/subsystems/win32/win32k/ntuser/misc.c @@ -909,6 +909,7 @@ IntSystemParametersInfo( { PWINSTATION_OBJECT WinStaObject; NTSTATUS Status; + BOOL bChanged = FALSE; static BOOL bInitialized = FALSE; static LOGFONTW IconFont; @@ -956,16 +957,18 @@ IntSystemParametersInfo( case SPI_SETDOUBLECLKHEIGHT: case SPI_SETDOUBLECLICKTIME: case SPI_SETDESKWALLPAPER: + case SPI_SETSCREENSAVERRUNNING: + case SPI_SETSCREENSAVETIMEOUT: + case SPI_SETFLATMENU: + /* We will change something, so set the flag here */ + bChanged = TRUE; case SPI_GETDESKWALLPAPER: case SPI_GETWHEELSCROLLLINES: case SPI_GETWHEELSCROLLCHARS: - case SPI_SETSCREENSAVERRUNNING: case SPI_GETSCREENSAVERRUNNING: case SPI_GETSCREENSAVETIMEOUT: - case SPI_SETSCREENSAVETIMEOUT: case SPI_GETSCREENSAVEACTIVE: case SPI_GETFLATMENU: - case SPI_SETFLATMENU: { PSYSTEM_CURSORINFO CurInfo; @@ -982,43 +985,42 @@ IntSystemParametersInfo( switch(uiAction) { case SPI_GETFLATMENU: - if (pvParam != NULL) *((UINT*)pvParam) = WinStaObject->FlatMenu; - return TRUE; + ASSERT(pvParam); + *((UINT*)pvParam) = WinStaObject->FlatMenu; break; case SPI_SETFLATMENU: - WinStaObject->FlatMenu = uiParam; + WinStaObject->FlatMenu = uiParam; break; case SPI_GETSCREENSAVETIMEOUT: - if (pvParam != NULL) *((UINT*)pvParam) = WinStaObject->ScreenSaverTimeOut; - return TRUE; - break; - case SPI_SETSCREENSAVETIMEOUT: - WinStaObject->ScreenSaverTimeOut = uiParam; + ASSERT(pvParam); + *((UINT*)pvParam) = WinStaObject->ScreenSaverTimeOut; + break; + case SPI_SETSCREENSAVETIMEOUT: + WinStaObject->ScreenSaverTimeOut = uiParam; break; case SPI_GETSCREENSAVERRUNNING: if (pvParam != NULL) *((BOOL*)pvParam) = WinStaObject->ScreenSaverRunning; - return TRUE; break; - case SPI_SETSCREENSAVERRUNNING: + case SPI_SETSCREENSAVERRUNNING: if (pvParam != NULL) *((BOOL*)pvParam) = WinStaObject->ScreenSaverRunning; - WinStaObject->ScreenSaverRunning = uiParam; + WinStaObject->ScreenSaverRunning = uiParam; break; case SPI_GETSCREENSAVEACTIVE: /* FIXME: how to disable the screensaver? */ - if (pvParam != NULL) *((BOOL*)pvParam) = TRUE; - return TRUE; + ASSERT(pvParam); + *((BOOL*)pvParam) = TRUE; break; case SPI_GETWHEELSCROLLLINES: + ASSERT(pvParam); CurInfo = IntGetSysCursorInfo(WinStaObject); - if (pvParam != NULL) *((UINT*)pvParam) = CurInfo->WheelScroLines; + *((UINT*)pvParam) = CurInfo->WheelScroLines; /* FIXME add this value to scroll list as scroll value ?? */ - return TRUE; break; case SPI_GETWHEELSCROLLCHARS: + ASSERT(pvParam); CurInfo = IntGetSysCursorInfo(WinStaObject); - if (pvParam != NULL) *((UINT*)pvParam) = CurInfo->WheelScroChars; + *((UINT*)pvParam) = CurInfo->WheelScroChars; // FIXME add this value to scroll list as scroll value ?? - return TRUE; break; case SPI_SETDOUBLECLKWIDTH: CurInfo = IntGetSysCursorInfo(WinStaObject); @@ -1125,7 +1127,7 @@ IntSystemParametersInfo( if(!KeyValuePartialInfo) { NtClose(KeyHandle); - return 0; + return FALSE; } Status = ZwQueryValueKey(KeyHandle, &Tile, KeyValuePartialInformation, @@ -1134,7 +1136,7 @@ IntSystemParametersInfo( { ZwClose(KeyHandle); ExFreePool(KeyValuePartialInfo); - return 0; + return FALSE; } Tile.Length = KeyValuePartialInfo->DataLength; @@ -1160,7 +1162,7 @@ IntSystemParametersInfo( if(!KeyValuePartialInfo) { ZwClose(KeyHandle); - return 0; + return FALSE; } Status = ZwQueryValueKey(KeyHandle, &Style, KeyValuePartialInformation, @@ -1169,7 +1171,7 @@ IntSystemParametersInfo( { ZwClose(KeyHandle); ExFreePool(KeyValuePartialInfo); - return 0; + return FALSE; } Style.Length = KeyValuePartialInfo->DataLength; @@ -1210,7 +1212,7 @@ IntSystemParametersInfo( /* FIXME save the value to the registry */ ObDereferenceObject(WinStaObject); - return TRUE; + break; } case SPI_SETWORKAREA: { @@ -1226,8 +1228,9 @@ IntSystemParametersInfo( ASSERT(pvParam); rc = (RECT*)pvParam; Desktop->WorkArea = *rc; + bChanged = TRUE; - return TRUE; + break; } case SPI_GETWORKAREA: { @@ -1242,13 +1245,14 @@ IntSystemParametersInfo( ASSERT(pvParam); IntGetDesktopWorkArea(Desktop, (PRECT)pvParam); - return TRUE; + break; } case SPI_SETGRADIENTCAPTIONS: { GradientCaptions = (pvParam != NULL); /* FIXME - should be checked if the color depth is higher than 8bpp? */ - return TRUE; + bChanged = TRUE; + break; } case SPI_GETGRADIENTCAPTIONS: { @@ -1256,78 +1260,83 @@ IntSystemParametersInfo( BOOL Ret = GradientCaptions; hDC = IntGetScreenDC(); - if(hDC) + if(!hDC) { + return FALSE; + } Ret = (NtGdiGetDeviceCaps(hDC, BITSPIXEL) > 8) && Ret; ASSERT(pvParam); *((PBOOL)pvParam) = Ret; - return TRUE; + break; } - return FALSE; - } case SPI_SETFONTSMOOTHING: { IntEnableFontRendering(uiParam != 0); - return TRUE; + bChanged = TRUE; + break; } case SPI_GETFONTSMOOTHING: { ASSERT(pvParam); *((BOOL*)pvParam) = IntIsFontRenderingEnabled(); - return TRUE; + break; } case SPI_GETICONTITLELOGFONT: { ASSERT(pvParam); *((LOGFONTW*)pvParam) = IconFont; - return TRUE; + break; } case SPI_GETNONCLIENTMETRICS: { ASSERT(pvParam); *((NONCLIENTMETRICSW*)pvParam) = pMetrics; - return TRUE; + break; } case SPI_SETNONCLIENTMETRICS: { ASSERT(pvParam); pMetrics = *((NONCLIENTMETRICSW*)pvParam); - return TRUE; + bChanged = TRUE; + break; } case SPI_GETMINIMIZEDMETRICS: { ASSERT(pvParam); *((MINIMIZEDMETRICS*)pvParam) = MinimizedMetrics; - return TRUE; + break; } case SPI_SETMINIMIZEDMETRICS: { ASSERT(pvParam); MinimizedMetrics = *((MINIMIZEDMETRICS*)pvParam); - return TRUE; + bChanged = TRUE; + break; } case SPI_GETFOCUSBORDERHEIGHT: { ASSERT(pvParam); *((UINT*)pvParam) = FocusBorderHeight; - return TRUE; + break; } case SPI_GETFOCUSBORDERWIDTH: { ASSERT(pvParam); *((UINT*)pvParam) = FocusBorderWidth; - return TRUE; + break; } case SPI_SETFOCUSBORDERHEIGHT: { FocusBorderHeight = (UINT)pvParam; - return TRUE; + bChanged = TRUE; + break; } case SPI_SETFOCUSBORDERWIDTH: { FocusBorderWidth = (UINT)pvParam; - return TRUE; + bChanged = TRUE; + break; } default: @@ -1337,7 +1346,18 @@ IntSystemParametersInfo( return FALSE; } } - return FALSE; + /* Did we change something ? */ + if (bChanged) + { + /* Shall we send a WM_SETTINGCHANGE message ? */ + if (fWinIni & (SPIF_UPDATEINIFILE | SPIF_SENDCHANGE)) + { + /* Broadcast WM_SETTINGCHANGE to all toplevel windows */ + /* FIXME: lParam should be pointer to a string containing the reg key */ + UserPostMessage(HWND_BROADCAST, WM_SETTINGCHANGE, (WPARAM)uiAction, 0); +} + } + return TRUE; } /* -- 2.17.1