- Merge 25404-25406, very small part of 25407, 25409, 25410, 25412+25414, 25422-25426.

svn path=/branches/ros-branch-0_3_1/; revision=25470
This commit is contained in:
Aleksey Bragin 2007-01-15 20:33:07 +00:00
parent 958d720408
commit da557c1562
23 changed files with 783 additions and 182 deletions

View file

@ -24,7 +24,7 @@ CACLS filename [/T] [/E] [/C] [/G user:perm [...]] [/R user [...]]\n\
C Change (write)\n\ C Change (write)\n\
F Full control\n\ F Full control\n\
/D user Deny specified user access.\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\ You can specify more than one user in a command.\n\n\
Abbreviations:\n\ Abbreviations:\n\
CI - Container Inherit.\n\ CI - Container Inherit.\n\

View file

@ -171,7 +171,7 @@ END
STRINGTABLE DISCARDABLE STRINGTABLE DISCARDABLE
BEGIN BEGIN
IDS_IMAGE_MONOCHROME "Monochrome (1 bit)" 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_PALETTE "Palette or 256 color (8 bit)"
IDS_IMAGE_TRUECOLOR "True color (24 bit)" IDS_IMAGE_TRUECOLOR "True color (24 bit)"

View file

@ -1,4 +1,5 @@
/* French translation by Benoit Plante 2005 (cmoibenlepro AT hotmail DOT com) */ /* 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 LANGUAGE LANG_FRENCH, SUBLANG_NEUTRAL
@ -88,19 +89,19 @@ IDR_POPUP_MENU MENU DISCARDABLE
BEGIN BEGIN
POPUP "" POPUP ""
BEGIN BEGIN
MENUITEM "&Configure", ID_MENU_CONFIG MENUITEM "&Configurer", ID_MENU_CONFIG
MENUITEM "&Preview", ID_MENU_PREVIEW MENUITEM "A&perçu", ID_MENU_PREVIEW
MENUITEM SEPARATOR MENUITEM SEPARATOR
MENUITEM "&Add", ID_MENU_ADD MENUITEM "&Ajouer", ID_MENU_ADD
MENUITEM "&Delete\tDel", ID_MENU_DELETE MENUITEM "Supprimer\tSuppr", ID_MENU_DELETE
END END
END END
IDR_PREVIEW_MENU MENU IDR_PREVIEW_MENU MENU
BEGIN BEGIN
MENUITEM "Normal", ID_MENU_NORMAL MENUITEM "Normal", ID_MENU_NORMAL
MENUITEM "Disabled", ID_MENU_DISABLED MENUITEM "Désactivé", ID_MENU_DISABLED
MENUITEM "Selected", ID_MENU_SELECTED MENUITEM "Sélectionné", ID_MENU_SELECTED
END END
STRINGTABLE STRINGTABLE
@ -132,10 +133,32 @@ END
STRINGTABLE DISCARDABLE STRINGTABLE DISCARDABLE
BEGIN BEGIN
IDS_INACTWIN "Inactive Window" IDS_INACTWIN "Fenêtre inactive"
IDS_ACTWIN "Active Window" IDS_ACTWIN "Fenêtre active"
IDS_WINTEXT "Window Text" IDS_WINTEXT "Texte de la fenêtre"
IDS_MESSBOX "Message Box" IDS_MESSBOX "Boîte de message"
IDS_MESSTEXT "Message Text" IDS_MESSTEXT "Texte de message"
IDS_BUTTEXT "OK" IDS_BUTTEXT "OK"
END 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

View file

@ -1,82 +1,100 @@
/* French translation by Benoit Plante 2005 (cmoibenlepro AT hotmail DOT com) */ /* French translation by Benoit Plante 2005 (cmoibenlepro AT hotmail DOT com) */
LANGUAGE LANG_FRENCH, SUBLANG_NEUTRAL LANGUAGE LANG_FRENCH, SUBLANG_NEUTRAL
IDD_GENERALPAGE DIALOGEX 0, 0, 246, 188 IDD_GENERALPAGE DIALOGEX 0, 0, 246, 188
STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_DISABLED | WS_CAPTION STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_DISABLED | WS_CAPTION
CAPTION "Général" CAPTION "Général"
FONT 8, "MS Shell Dlg" FONT 8, "MS Shell Dlg"
BEGIN BEGIN
LTEXT "Page de propriétés 1",-1,73,74,90,8 LTEXT "Page de propriétés 1",-1,73,74,90,8
END END
IDD_NUMBERSPAGE DIALOGEX 0, 0, 246, 188 IDD_NUMBERSPAGE DIALOGEX 0, 0, 246, 188
STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_DISABLED | WS_CAPTION STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_DISABLED | WS_CAPTION
CAPTION "Nombres" CAPTION "Nombres"
FONT 8, "MS Shell Dlg" FONT 8, "MS Shell Dlg"
BEGIN BEGIN
LTEXT "Page de propriétés 2",-1,73,74,90,8 LTEXT "Page de propriétés 2",-1,73,74,90,8
END END
IDD_CURRENCYPAGE DIALOGEX 0, 0, 246, 188 IDD_CURRENCYPAGE DIALOGEX 0, 0, 246, 188
STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_DISABLED | WS_CAPTION STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_DISABLED | WS_CAPTION
CAPTION "Devise" CAPTION "Devise"
FONT 8, "MS Shell Dlg" FONT 8, "MS Shell Dlg"
BEGIN BEGIN
LTEXT "Page de propriétés 3",-1,73,74,90,8 GROUPBOX "Appearance sample", -1, 7, 7, 228, 33, WS_CHILD | WS_VISIBLE
END 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
IDD_TIMEPAGE DIALOGEX 0, 0, 246, 188 EDITTEXT IDC_CURRENCYNEGSAMPLE, 154, 19, 72, 14, ES_READONLY | WS_CHILD | WS_VISIBLE | WS_GROUP
STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_DISABLED | WS_CAPTION LTEXT "&Currency symbol:", -1, 20, 51, 96, 10, WS_CHILD |WS_VISIBLE | WS_GROUP
CAPTION "Heure" COMBOBOX IDC_CURRENCYSYMBOL, 124, 49, 100, 83, CBS_DROPDOWN | CBS_SORT | WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_VSCROLL
FONT 8, "MS Shell Dlg" LTEXT "&Positive Amount:", -1, 20, 68, 96, 10, WS_CHILD |WS_VISIBLE | WS_GROUP
BEGIN COMBOBOX IDC_CURRENCYPOSVALUE, 124, 66, 100, 83, CBS_DROPDOWN | CBS_SORT | WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_VSCROLL
GROUPBOX "Apparence de l'heure", -1, 7, 7, 228, 33, WS_CHILD | WS_VISIBLE LTEXT "&Negative Amount:", -1, 20, 85, 96, 10, WS_CHILD |WS_VISIBLE | WS_GROUP
LTEXT "Échantillon d'heure:", -1, 13, 21, 54, 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
EDITTEXT IDC_TIMESAMPLE, 68, 19, 84, 14, ES_READONLY | WS_CHILD | WS_VISIBLE | WS_GROUP LTEXT "&Decimal separator:", -1, 20, 111, 96, 10, WS_CHILD |WS_VISIBLE | WS_GROUP
LTEXT "Format d'heure:", -1, 13, 52, 54, 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
COMBOBOX IDC_TIMEFORMAT, 68, 50, 84, 100, CBS_DROPDOWN | WS_CHILD | WS_VISIBLE | WS_TABSTOP LTEXT "&Number of fractional digits:", -1, 20, 128, 96, 10, WS_CHILD |WS_VISIBLE | WS_GROUP
LTEXT "&Séparateur des heures:", -1, 13, 70, 54, 10, WS_VISIBLE | WS_GROUP COMBOBOX IDC_CURRENCYDECNUM, 124, 126, 100, 83, CBS_DROPDOWN | CBS_SORT | WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_VSCROLL
COMBOBOX IDC_TIMESEPARATOR, 68, 68, 84, 100, CBS_DROPDOWN | WS_CHILD | WS_VISIBLE | WS_TABSTOP LTEXT "&Grouping symbol:", -1, 20, 156, 100, 10, WS_CHILD |WS_VISIBLE | WS_GROUP
LTEXT "Symbole de l'avant-midi(A&M):", -1, 13, 88, 54, 10, WS_VISIBLE | WS_GROUP COMBOBOX IDC_CURRENCYGRPSEP, 124, 154, 100, 83, CBS_DROPDOWN | CBS_SORT | WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_VSCROLL
COMBOBOX IDC_TIMEAMSYMBOL, 68, 86, 84, 100, CBS_DROPDOWN | WS_CHILD | WS_VISIBLE | WS_TABSTOP LTEXT "&Digit grouping:", -1, 20, 173, 96, 10, WS_CHILD |WS_VISIBLE | WS_GROUP
LTEXT "Symbole de l'après-midi(&PM):", -1, 13, 106, 54, 10, WS_VISIBLE | WS_GROUP COMBOBOX IDC_CURRENCYGRPNUM, 124, 171, 100, 83, CBS_DROPDOWN | CBS_SORT | WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_VSCROLL
COMBOBOX IDC_TIMEPMSYMBOL, 68, 104, 84, 100, CBS_DROPDOWN | WS_CHILD | WS_VISIBLE | WS_TABSTOP END
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\ IDD_TIMEPAGE DIALOGEX 0, 0, 246, 188
h = 12 heures H =24 heures \n\ STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_DISABLED | WS_CAPTION
hh, mm, ss = Zéro de départ h, m, s = Pas de zéro de départ", CAPTION "Heure"
-1, 13, 133, 214, 47, WS_CHILD |WS_VISIBLE | WS_GROUP FONT 8, "MS Shell Dlg"
END 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
IDD_DATEPAGE DIALOGEX 0, 0, 246, 188 EDITTEXT IDC_TIMESAMPLE, 68, 19, 84, 14, ES_READONLY | WS_CHILD | WS_VISIBLE | WS_GROUP
STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_DISABLED | WS_CAPTION LTEXT "Format d'heure:", -1, 13, 52, 54, 10, WS_CHILD |WS_VISIBLE | WS_GROUP
CAPTION "Date" COMBOBOX IDC_TIMEFORMAT, 68, 50, 84, 100, CBS_DROPDOWN | WS_CHILD | WS_VISIBLE | WS_TABSTOP
FONT 8, "MS Shell Dlg" LTEXT "&Séparateur des heures:", -1, 13, 70, 54, 10, WS_VISIBLE | WS_GROUP
BEGIN COMBOBOX IDC_TIMESEPARATOR, 68, 68, 84, 100, CBS_DROPDOWN | WS_CHILD | WS_VISIBLE | WS_TABSTOP
LTEXT "Page de propriétés 5",-1,73,74,90,8 LTEXT "Symbole de l'avant-midi(A&M):", -1, 13, 88, 54, 10, WS_VISIBLE | WS_GROUP
END 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
IDD_LOCALEPAGE DIALOGEX 0, 0, 246, 188 GROUPBOX "", -1, 7, 124, 228, 60, WS_VISIBLE
STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_DISABLED | WS_CAPTION LTEXT "Notation de l'heure\n\n\
CAPTION "Langues" h = heure m = minute s = seconde t = AM ou PM\n\n\
FONT 8, "MS Shell Dlg" h = 12 heures H =24 heures \n\
BEGIN hh, mm, ss = Zéro de départ h, m, s = Pas de zéro de départ",
GROUPBOX "Langue principale", -1, 8, 11, 228, 74 -1, 13, 133, 214, 47, WS_CHILD |WS_VISIBLE | WS_GROUP
ICON IDC_FLAGS, IDC_ICON1, 12, 26, 21, 20, SS_ICON END
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 IDD_DATEPAGE DIALOGEX 0, 0, 246, 188
STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_DISABLED | WS_CAPTION
CAPTION "Date"
STRINGTABLE FONT 8, "MS Shell Dlg"
BEGIN BEGIN
IDS_CPLNAME "Options régionales" LTEXT "Page de propriétés 5",-1,73,74,90,8
IDS_CPLDESCRIPTION "Selectionner les langues, les formats de nombres, les devises, l'heure et la date." END
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

View file

@ -23,7 +23,25 @@ STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_DISABLED | WS_CAPTION
CAPTION "’ʉÝ" CAPTION "’ʉÝ"
FONT 9, "MS UI Gothic" FONT 9, "MS UI Gothic"
BEGIN 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 END

View file

@ -27,24 +27,305 @@
#include <windows.h> #include <windows.h>
#include <commctrl.h> #include <commctrl.h>
#include <cpl.h> #include <cpl.h>
#include <tchar.h>
#include "intl.h" #include "intl.h"
#include "resource.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 */ /* Property page dialog callback */
INT_PTR CALLBACK INT_PTR CALLBACK
CurrencyPageProc(HWND hwndDlg, CurrencyPageProc(HWND hwndDlg,
UINT uMsg, UINT uMsg,
WPARAM wParam, WPARAM wParam,
LPARAM lParam) LPARAM lParam)
{ {
switch(uMsg) PGLOBAL_DATA pGlobalData;
{
case WM_INITDIALOG: pGlobalData = (PGLOBAL_DATA)GetWindowLongPtr(hwndDlg, DWLP_USER);
break;
} switch (uMsg)
return FALSE; {
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 */ /* EOF */

View file

@ -25,7 +25,25 @@ STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_DISABLED | WS_CAPTION
CAPTION "Mìna" CAPTION "Mìna"
FONT 8, "MS Shell Dlg" FONT 8, "MS Shell Dlg"
BEGIN 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 END

View file

@ -25,7 +25,25 @@ STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_DISABLED | WS_CAPTION
CAPTION "Währung" CAPTION "Währung"
FONT 8, "MS Shell Dlg" FONT 8, "MS Shell Dlg"
BEGIN 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 END

View file

@ -25,7 +25,25 @@ STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_DISABLED | WS_CAPTION
CAPTION "Currency" CAPTION "Currency"
FONT 8, "MS Shell Dlg" FONT 8, "MS Shell Dlg"
BEGIN 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 END

View file

@ -29,7 +29,25 @@ STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_DISABLED | WS_CAPTION
CAPTION "Moneda" CAPTION "Moneda"
FONT 8, "MS Shell Dlg" FONT 8, "MS Shell Dlg"
BEGIN 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 END

View file

@ -24,7 +24,25 @@ STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_DISABLED | WS_CAPTION
CAPTION "Pénznem" CAPTION "Pénznem"
FONT 8, "MS Shell Dlg" FONT 8, "MS Shell Dlg"
BEGIN 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 END

View file

@ -25,7 +25,25 @@ STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_DISABLED | WS_CAPTION
CAPTION "Valuta" CAPTION "Valuta"
FONT 8, "MS Shell Dlg" FONT 8, "MS Shell Dlg"
BEGIN 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 END

View file

@ -8,7 +8,17 @@
#define IDD_GENERALPAGE 100 #define IDD_GENERALPAGE 100
#define IDD_NUMBERSPAGE 101 #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 IDD_TIMEPAGE 103
#define IDC_TIMESAMPLE 107 #define IDC_TIMESAMPLE 107

View file

@ -25,7 +25,25 @@ STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_DISABLED | WS_CAPTION
CAPTION "Äåíåæíàÿ åäèíèöà" CAPTION "Äåíåæíàÿ åäèíèöà"
FONT 8, "MS Shell Dlg" FONT 8, "MS Shell Dlg"
BEGIN BEGIN
LTEXT "ツ<><EFBFBD> 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 END

View file

@ -26,7 +26,25 @@ STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_DISABLED | WS_CAPTION
CAPTION "Valuta" CAPTION "Valuta"
FONT 8, "MS Shell Dlg" FONT 8, "MS Shell Dlg"
BEGIN 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 END
@ -35,7 +53,23 @@ STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_DISABLED | WS_CAPTION
CAPTION "Tid" CAPTION "Tid"
FONT 8, "MS Shell Dlg" FONT 8, "MS Shell Dlg"
BEGIN 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 END

View file

@ -32,7 +32,25 @@ STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_DISABLED | WS_CAPTION
CAPTION "Ãðîøîâà îäèíèöÿ" CAPTION "Ãðîøîâà îäèíèöÿ"
FONT 8, "MS Shell Dlg" FONT 8, "MS Shell Dlg"
BEGIN 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 END

View file

@ -36,7 +36,6 @@
/* Directory to load key layouts from */ /* Directory to load key layouts from */
#define SYSTEMROOT_DIR L"\\SystemRoot\\System32\\" #define SYSTEMROOT_DIR L"\\SystemRoot\\System32\\"
/* GLOBALS *******************************************************************/ /* GLOBALS *******************************************************************/
typedef struct __TRACKINGLIST { typedef struct __TRACKINGLIST {
@ -338,11 +337,27 @@ EnableWindow(HWND hWnd,
BOOL bEnable) BOOL bEnable)
{ {
LONG Style = NtUserGetWindowLong(hWnd, GWL_STYLE, FALSE); LONG Style = NtUserGetWindowLong(hWnd, GWL_STYLE, FALSE);
Style = bEnable ? Style & ~WS_DISABLED : Style | WS_DISABLED; /* check if updating is needed */
NtUserSetWindowLong(hWnd, GWL_STYLE, Style, FALSE); UINT bIsDisabled = (Style & WS_DISABLED);
if ( (bIsDisabled && bEnable) || (!bIsDisabled && !bEnable) )
SendMessageA(hWnd, WM_ENABLE, (LPARAM) IsWindowEnabled(hWnd), 0); {
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 nonzero if it was disabled, or zero if it wasn't:
return IsWindowEnabled(hWnd); return IsWindowEnabled(hWnd);
} }

View file

@ -109,7 +109,7 @@ static const VGA_REGISTERS VidpMode3Regs =
/* Sequencer Registers */ /* Sequencer Registers */
{0x03, 0x00, 0x03, 0x00, 0x02}, {0x03, 0x00, 0x03, 0x00, 0x02},
/* Misc Output Register */ /* Misc Output Register */
0xE3 0x67
}; };
static const UCHAR DefaultPalette[] = static const UCHAR DefaultPalette[] =

View file

@ -97,7 +97,7 @@ ExfWakePushLock(PEX_PUSH_LOCK PushLock,
OldValue = NewValue; OldValue = NewValue;
/* Check if it's still locked */ /* Check if it's still locked */
if (OldValue.Locked) continue; if (!OldValue.Locked) break;
} }
} }

View file

@ -3,6 +3,24 @@
#include <internal/kbd.h> #include <internal/kbd.h>
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 NTSTATUS FASTCALL
InitInputImpl(VOID); InitInputImpl(VOID);
NTSTATUS FASTCALL NTSTATUS FASTCALL

View file

@ -304,27 +304,37 @@ co_IntSetActiveWindow(PWINDOW_OBJECT Window OPTIONAL)
static static
HWND FASTCALL HWND FASTCALL
co_IntSetFocusWindow(PWINDOW_OBJECT Window) co_IntSetFocusWindow(PWINDOW_OBJECT Window OPTIONAL)
{ {
HWND hWndPrev = 0; HWND hWndPrev = 0;
PUSER_MESSAGE_QUEUE ThreadQueue; PUSER_MESSAGE_QUEUE ThreadQueue;
ASSERT_REFS_CO(Window); if (Window)
ASSERT_REFS_CO(Window);
ThreadQueue = (PUSER_MESSAGE_QUEUE)PsGetCurrentThreadWin32Thread()->MessageQueue; ThreadQueue = (PUSER_MESSAGE_QUEUE)PsGetCurrentThreadWin32Thread()->MessageQueue;
ASSERT(ThreadQueue != 0); ASSERT(ThreadQueue != 0);
hWndPrev = ThreadQueue->FocusWindow; hWndPrev = ThreadQueue->FocusWindow;
if (hWndPrev == Window->hSelf)
if (Window != 0)
{ {
return hWndPrev; if (hWndPrev == Window->hSelf)
{
return hWndPrev;
}
ThreadQueue->FocusWindow = Window->hSelf;
co_IntSendKillFocusMessages(hWndPrev, Window->hSelf);
co_IntSendSetFocusMessages(hWndPrev, Window->hSelf);
}
else
{
ThreadQueue->FocusWindow = 0;
co_IntSendKillFocusMessages(hWndPrev, 0);
} }
ThreadQueue->FocusWindow = Window->hSelf;
co_IntSendKillFocusMessages(hWndPrev, Window->hSelf);
co_IntSendSetFocusMessages(hWndPrev, Window->hSelf);
return hWndPrev; return hWndPrev;
} }
@ -562,16 +572,23 @@ NtUserSetFocus(HWND hWnd)
DPRINT("Enter NtUserSetFocus(%x)\n", hWnd); DPRINT("Enter NtUserSetFocus(%x)\n", hWnd);
UserEnterExclusive(); UserEnterExclusive();
if (!(Window = UserGetWindowObject(hWnd))) if (hWnd)
{ {
RETURN(NULL); if (!(Window = UserGetWindowObject(hWnd)))
} {
RETURN(NULL);
}
UserRefObjectCo(Window, &Ref); UserRefObjectCo(Window, &Ref);
ret = co_UserSetFocus(Window); ret = co_UserSetFocus(Window);
UserDerefObjectCo(Window); UserDerefObjectCo(Window);
RETURN(ret); RETURN(ret);
}
else
{
RETURN( co_UserSetFocus(0));
}
CLEANUP: CLEANUP:
DPRINT("Leave NtUserSetFocus, ret=%i\n",_ret_); DPRINT("Leave NtUserSetFocus, ret=%i\n",_ret_);

View file

@ -53,6 +53,9 @@
BYTE gQueueKeyStateTable[256]; BYTE gQueueKeyStateTable[256];
PKBDRVFILE KBLList = NULL; // Keyboard layout list.
/* FUNCTIONS *****************************************************************/ /* FUNCTIONS *****************************************************************/
/* Initialization -- Right now, just zero the key state and init the lock */ /* Initialization -- Right now, just zero the key state and init the lock */

View file

@ -909,6 +909,7 @@ IntSystemParametersInfo(
{ {
PWINSTATION_OBJECT WinStaObject; PWINSTATION_OBJECT WinStaObject;
NTSTATUS Status; NTSTATUS Status;
BOOL bChanged = FALSE;
static BOOL bInitialized = FALSE; static BOOL bInitialized = FALSE;
static LOGFONTW IconFont; static LOGFONTW IconFont;
@ -956,16 +957,18 @@ IntSystemParametersInfo(
case SPI_SETDOUBLECLKHEIGHT: case SPI_SETDOUBLECLKHEIGHT:
case SPI_SETDOUBLECLICKTIME: case SPI_SETDOUBLECLICKTIME:
case SPI_SETDESKWALLPAPER: 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_GETDESKWALLPAPER:
case SPI_GETWHEELSCROLLLINES: case SPI_GETWHEELSCROLLLINES:
case SPI_GETWHEELSCROLLCHARS: case SPI_GETWHEELSCROLLCHARS:
case SPI_SETSCREENSAVERRUNNING:
case SPI_GETSCREENSAVERRUNNING: case SPI_GETSCREENSAVERRUNNING:
case SPI_GETSCREENSAVETIMEOUT: case SPI_GETSCREENSAVETIMEOUT:
case SPI_SETSCREENSAVETIMEOUT:
case SPI_GETSCREENSAVEACTIVE: case SPI_GETSCREENSAVEACTIVE:
case SPI_GETFLATMENU: case SPI_GETFLATMENU:
case SPI_SETFLATMENU:
{ {
PSYSTEM_CURSORINFO CurInfo; PSYSTEM_CURSORINFO CurInfo;
@ -982,43 +985,42 @@ IntSystemParametersInfo(
switch(uiAction) switch(uiAction)
{ {
case SPI_GETFLATMENU: case SPI_GETFLATMENU:
if (pvParam != NULL) *((UINT*)pvParam) = WinStaObject->FlatMenu; ASSERT(pvParam);
return TRUE; *((UINT*)pvParam) = WinStaObject->FlatMenu;
break; break;
case SPI_SETFLATMENU: case SPI_SETFLATMENU:
WinStaObject->FlatMenu = uiParam; WinStaObject->FlatMenu = uiParam;
break; break;
case SPI_GETSCREENSAVETIMEOUT: case SPI_GETSCREENSAVETIMEOUT:
if (pvParam != NULL) *((UINT*)pvParam) = WinStaObject->ScreenSaverTimeOut; ASSERT(pvParam);
return TRUE; *((UINT*)pvParam) = WinStaObject->ScreenSaverTimeOut;
break; break;
case SPI_SETSCREENSAVETIMEOUT: case SPI_SETSCREENSAVETIMEOUT:
WinStaObject->ScreenSaverTimeOut = uiParam; WinStaObject->ScreenSaverTimeOut = uiParam;
break; break;
case SPI_GETSCREENSAVERRUNNING: case SPI_GETSCREENSAVERRUNNING:
if (pvParam != NULL) *((BOOL*)pvParam) = WinStaObject->ScreenSaverRunning; if (pvParam != NULL) *((BOOL*)pvParam) = WinStaObject->ScreenSaverRunning;
return TRUE;
break; break;
case SPI_SETSCREENSAVERRUNNING: case SPI_SETSCREENSAVERRUNNING:
if (pvParam != NULL) *((BOOL*)pvParam) = WinStaObject->ScreenSaverRunning; if (pvParam != NULL) *((BOOL*)pvParam) = WinStaObject->ScreenSaverRunning;
WinStaObject->ScreenSaverRunning = uiParam; WinStaObject->ScreenSaverRunning = uiParam;
break; break;
case SPI_GETSCREENSAVEACTIVE: case SPI_GETSCREENSAVEACTIVE:
/* FIXME: how to disable the screensaver? */ /* FIXME: how to disable the screensaver? */
if (pvParam != NULL) *((BOOL*)pvParam) = TRUE; ASSERT(pvParam);
return TRUE; *((BOOL*)pvParam) = TRUE;
break; break;
case SPI_GETWHEELSCROLLLINES: case SPI_GETWHEELSCROLLLINES:
ASSERT(pvParam);
CurInfo = IntGetSysCursorInfo(WinStaObject); CurInfo = IntGetSysCursorInfo(WinStaObject);
if (pvParam != NULL) *((UINT*)pvParam) = CurInfo->WheelScroLines; *((UINT*)pvParam) = CurInfo->WheelScroLines;
/* FIXME add this value to scroll list as scroll value ?? */ /* FIXME add this value to scroll list as scroll value ?? */
return TRUE;
break; break;
case SPI_GETWHEELSCROLLCHARS: case SPI_GETWHEELSCROLLCHARS:
ASSERT(pvParam);
CurInfo = IntGetSysCursorInfo(WinStaObject); CurInfo = IntGetSysCursorInfo(WinStaObject);
if (pvParam != NULL) *((UINT*)pvParam) = CurInfo->WheelScroChars; *((UINT*)pvParam) = CurInfo->WheelScroChars;
// FIXME add this value to scroll list as scroll value ?? // FIXME add this value to scroll list as scroll value ??
return TRUE;
break; break;
case SPI_SETDOUBLECLKWIDTH: case SPI_SETDOUBLECLKWIDTH:
CurInfo = IntGetSysCursorInfo(WinStaObject); CurInfo = IntGetSysCursorInfo(WinStaObject);
@ -1125,7 +1127,7 @@ IntSystemParametersInfo(
if(!KeyValuePartialInfo) if(!KeyValuePartialInfo)
{ {
NtClose(KeyHandle); NtClose(KeyHandle);
return 0; return FALSE;
} }
Status = ZwQueryValueKey(KeyHandle, &Tile, KeyValuePartialInformation, Status = ZwQueryValueKey(KeyHandle, &Tile, KeyValuePartialInformation,
@ -1134,7 +1136,7 @@ IntSystemParametersInfo(
{ {
ZwClose(KeyHandle); ZwClose(KeyHandle);
ExFreePool(KeyValuePartialInfo); ExFreePool(KeyValuePartialInfo);
return 0; return FALSE;
} }
Tile.Length = KeyValuePartialInfo->DataLength; Tile.Length = KeyValuePartialInfo->DataLength;
@ -1160,7 +1162,7 @@ IntSystemParametersInfo(
if(!KeyValuePartialInfo) if(!KeyValuePartialInfo)
{ {
ZwClose(KeyHandle); ZwClose(KeyHandle);
return 0; return FALSE;
} }
Status = ZwQueryValueKey(KeyHandle, &Style, KeyValuePartialInformation, Status = ZwQueryValueKey(KeyHandle, &Style, KeyValuePartialInformation,
@ -1169,7 +1171,7 @@ IntSystemParametersInfo(
{ {
ZwClose(KeyHandle); ZwClose(KeyHandle);
ExFreePool(KeyValuePartialInfo); ExFreePool(KeyValuePartialInfo);
return 0; return FALSE;
} }
Style.Length = KeyValuePartialInfo->DataLength; Style.Length = KeyValuePartialInfo->DataLength;
@ -1210,7 +1212,7 @@ IntSystemParametersInfo(
/* FIXME save the value to the registry */ /* FIXME save the value to the registry */
ObDereferenceObject(WinStaObject); ObDereferenceObject(WinStaObject);
return TRUE; break;
} }
case SPI_SETWORKAREA: case SPI_SETWORKAREA:
{ {
@ -1226,8 +1228,9 @@ IntSystemParametersInfo(
ASSERT(pvParam); ASSERT(pvParam);
rc = (RECT*)pvParam; rc = (RECT*)pvParam;
Desktop->WorkArea = *rc; Desktop->WorkArea = *rc;
bChanged = TRUE;
return TRUE; break;
} }
case SPI_GETWORKAREA: case SPI_GETWORKAREA:
{ {
@ -1242,13 +1245,14 @@ IntSystemParametersInfo(
ASSERT(pvParam); ASSERT(pvParam);
IntGetDesktopWorkArea(Desktop, (PRECT)pvParam); IntGetDesktopWorkArea(Desktop, (PRECT)pvParam);
return TRUE; break;
} }
case SPI_SETGRADIENTCAPTIONS: case SPI_SETGRADIENTCAPTIONS:
{ {
GradientCaptions = (pvParam != NULL); GradientCaptions = (pvParam != NULL);
/* FIXME - should be checked if the color depth is higher than 8bpp? */ /* FIXME - should be checked if the color depth is higher than 8bpp? */
return TRUE; bChanged = TRUE;
break;
} }
case SPI_GETGRADIENTCAPTIONS: case SPI_GETGRADIENTCAPTIONS:
{ {
@ -1256,78 +1260,83 @@ IntSystemParametersInfo(
BOOL Ret = GradientCaptions; BOOL Ret = GradientCaptions;
hDC = IntGetScreenDC(); hDC = IntGetScreenDC();
if(hDC) if(!hDC)
{ {
return FALSE;
}
Ret = (NtGdiGetDeviceCaps(hDC, BITSPIXEL) > 8) && Ret; Ret = (NtGdiGetDeviceCaps(hDC, BITSPIXEL) > 8) && Ret;
ASSERT(pvParam); ASSERT(pvParam);
*((PBOOL)pvParam) = Ret; *((PBOOL)pvParam) = Ret;
return TRUE; break;
} }
return FALSE;
}
case SPI_SETFONTSMOOTHING: case SPI_SETFONTSMOOTHING:
{ {
IntEnableFontRendering(uiParam != 0); IntEnableFontRendering(uiParam != 0);
return TRUE; bChanged = TRUE;
break;
} }
case SPI_GETFONTSMOOTHING: case SPI_GETFONTSMOOTHING:
{ {
ASSERT(pvParam); ASSERT(pvParam);
*((BOOL*)pvParam) = IntIsFontRenderingEnabled(); *((BOOL*)pvParam) = IntIsFontRenderingEnabled();
return TRUE; break;
} }
case SPI_GETICONTITLELOGFONT: case SPI_GETICONTITLELOGFONT:
{ {
ASSERT(pvParam); ASSERT(pvParam);
*((LOGFONTW*)pvParam) = IconFont; *((LOGFONTW*)pvParam) = IconFont;
return TRUE; break;
} }
case SPI_GETNONCLIENTMETRICS: case SPI_GETNONCLIENTMETRICS:
{ {
ASSERT(pvParam); ASSERT(pvParam);
*((NONCLIENTMETRICSW*)pvParam) = pMetrics; *((NONCLIENTMETRICSW*)pvParam) = pMetrics;
return TRUE; break;
} }
case SPI_SETNONCLIENTMETRICS: case SPI_SETNONCLIENTMETRICS:
{ {
ASSERT(pvParam); ASSERT(pvParam);
pMetrics = *((NONCLIENTMETRICSW*)pvParam); pMetrics = *((NONCLIENTMETRICSW*)pvParam);
return TRUE; bChanged = TRUE;
break;
} }
case SPI_GETMINIMIZEDMETRICS: case SPI_GETMINIMIZEDMETRICS:
{ {
ASSERT(pvParam); ASSERT(pvParam);
*((MINIMIZEDMETRICS*)pvParam) = MinimizedMetrics; *((MINIMIZEDMETRICS*)pvParam) = MinimizedMetrics;
return TRUE; break;
} }
case SPI_SETMINIMIZEDMETRICS: case SPI_SETMINIMIZEDMETRICS:
{ {
ASSERT(pvParam); ASSERT(pvParam);
MinimizedMetrics = *((MINIMIZEDMETRICS*)pvParam); MinimizedMetrics = *((MINIMIZEDMETRICS*)pvParam);
return TRUE; bChanged = TRUE;
break;
} }
case SPI_GETFOCUSBORDERHEIGHT: case SPI_GETFOCUSBORDERHEIGHT:
{ {
ASSERT(pvParam); ASSERT(pvParam);
*((UINT*)pvParam) = FocusBorderHeight; *((UINT*)pvParam) = FocusBorderHeight;
return TRUE; break;
} }
case SPI_GETFOCUSBORDERWIDTH: case SPI_GETFOCUSBORDERWIDTH:
{ {
ASSERT(pvParam); ASSERT(pvParam);
*((UINT*)pvParam) = FocusBorderWidth; *((UINT*)pvParam) = FocusBorderWidth;
return TRUE; break;
} }
case SPI_SETFOCUSBORDERHEIGHT: case SPI_SETFOCUSBORDERHEIGHT:
{ {
FocusBorderHeight = (UINT)pvParam; FocusBorderHeight = (UINT)pvParam;
return TRUE; bChanged = TRUE;
break;
} }
case SPI_SETFOCUSBORDERWIDTH: case SPI_SETFOCUSBORDERWIDTH:
{ {
FocusBorderWidth = (UINT)pvParam; FocusBorderWidth = (UINT)pvParam;
return TRUE; bChanged = TRUE;
break;
} }
default: default:
@ -1337,7 +1346,18 @@ IntSystemParametersInfo(
return FALSE; 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;
} }
/* /*