--- /dev/null
+*.coff
+*.cpl
+*.d
+*.a
+*.o
+*.sym
+*.map
+*.tmp
--- /dev/null
+/*
+ * ReactOS
+ * Copyright (C) 2004 ReactOS Team
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+/* $Id: currency.c,v 1.1 2004/10/30 12:33:23 ekohl Exp $
+ *
+ * PROJECT: ReactOS International Control Panel
+ * FILE: lib/cpl/intl/currency.c
+ * PURPOSE: Currency property page
+ * PROGRAMMER: Eric Kohl
+ */
+
+#include <windows.h>
+#include <commctrl.h>
+#include <cpl.h>
+
+#include "intl.h"
+#include "resource.h"
+
+
+/* Property page dialog callback */
+INT_PTR CALLBACK
+CurrencyPageProc(HWND hwndDlg,
+ UINT uMsg,
+ WPARAM wParam,
+ LPARAM lParam)
+{
+ switch(uMsg)
+ {
+ case WM_INITDIALOG:
+ break;
+ }
+ return FALSE;
+}
+
+/* EOF */
--- /dev/null
+/*
+ * ReactOS
+ * Copyright (C) 2004 ReactOS Team
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+/* $Id: date.c,v 1.1 2004/10/30 12:33:23 ekohl Exp $
+ *
+ * PROJECT: ReactOS International Control Panel
+ * FILE: lib/cpl/intl/date.c
+ * PURPOSE: Date property page
+ * PROGRAMMER: Eric Kohl
+ */
+
+#include <windows.h>
+#include <commctrl.h>
+#include <cpl.h>
+
+#include "intl.h"
+#include "resource.h"
+
+
+/* Property page dialog callback */
+INT_PTR CALLBACK
+DatePageProc(HWND hwndDlg,
+ UINT uMsg,
+ WPARAM wParam,
+ LPARAM lParam)
+{
+ switch(uMsg)
+ {
+ case WM_INITDIALOG:
+ break;
+ }
+ return FALSE;
+}
+
+/* EOF */
--- /dev/null
+/*
+ * ReactOS
+ * Copyright (C) 2004 ReactOS Team
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+/* $Id: general.c,v 1.1 2004/10/30 12:33:23 ekohl Exp $
+ *
+ * PROJECT: ReactOS International Control Panel
+ * FILE: lib/cpl/intl/general.c
+ * PURPOSE: General property page
+ * PROGRAMMER: Eric Kohl
+ */
+
+#include <windows.h>
+#include <commctrl.h>
+#include <prsht.h>
+#include <cpl.h>
+
+#include "intl.h"
+#include "resource.h"
+
+
+/* Property page dialog callback */
+INT_PTR CALLBACK
+GeneralPageProc(HWND hwndDlg,
+ UINT uMsg,
+ WPARAM wParam,
+ LPARAM lParam)
+{
+ switch(uMsg)
+ {
+ case WM_INITDIALOG:
+ break;
+ }
+ return FALSE;
+}
+
+/* EOF */
--- /dev/null
+/*
+ * ReactOS
+ * Copyright (C) 2004 ReactOS Team
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+/* $Id: intl.c,v 1.1 2004/10/30 12:33:23 ekohl Exp $
+ *
+ * PROJECT: ReactOS International Control Panel
+ * FILE: lib/cpl/intl/intl.c
+ * PURPOSE: Property sheet code
+ * PROGRAMMER: Eric Kohl
+ */
+#include <windows.h>
+#include <commctrl.h>
+#include <cpl.h>
+
+#include "intl.h"
+#include "resource.h"
+
+
+#define NUM_APPLETS (2)
+
+LONG APIENTRY
+Applet(HWND hwnd, UINT uMsg, LONG wParam, LONG lParam);
+
+
+HINSTANCE hApplet = 0;
+
+
+/* Applets */
+APPLET Applets[NUM_APPLETS] =
+{
+ {IDC_CPLICON, IDS_CPLNAME, IDS_CPLDESCRIPTION, Applet}
+};
+
+
+VOID
+InitPropSheetPage(PROPSHEETPAGE *psp, WORD idDlg, DLGPROC DlgProc)
+{
+ ZeroMemory(psp, sizeof(PROPSHEETPAGE));
+ psp->dwSize = sizeof(PROPSHEETPAGE);
+ psp->dwFlags = PSP_DEFAULT;
+ psp->hInstance = hApplet;
+ psp->pszTemplate = MAKEINTRESOURCE(idDlg);
+ psp->pfnDlgProc = DlgProc;
+}
+
+
+LONG APIENTRY
+Applet(HWND hwnd, UINT uMsg, LONG wParam, LONG lParam)
+{
+ PROPSHEETPAGE psp[6];
+ PROPSHEETHEADER psh;
+ TCHAR Caption[256];
+
+ LoadString(hApplet, IDS_CPLNAME, Caption, sizeof(Caption) / sizeof(TCHAR));
+
+ ZeroMemory(&psh, sizeof(PROPSHEETHEADER));
+ psh.dwSize = sizeof(PROPSHEETHEADER);
+ psh.dwFlags = PSH_PROPSHEETPAGE | PSH_PROPTITLE;
+ psh.hwndParent = NULL;
+ psh.hInstance = hApplet;
+ psh.hIcon = LoadIcon(hApplet, MAKEINTRESOURCE(IDC_CPLICON));
+ psh.pszCaption = Caption;
+ psh.nPages = sizeof(psp) / sizeof(PROPSHEETPAGE);
+ psh.nStartPage = 0;
+ psh.ppsp = psp;
+
+ InitPropSheetPage(&psp[0], IDD_GENERALPAGE, GeneralPageProc);
+ InitPropSheetPage(&psp[1], IDD_NUMBERSPAGE, NumbersPageProc);
+ InitPropSheetPage(&psp[2], IDD_CURRENCYPAGE, CurrencyPageProc);
+ InitPropSheetPage(&psp[3], IDD_TIMEPAGE, TimePageProc);
+ InitPropSheetPage(&psp[4], IDD_DATEPAGE, DatePageProc);
+ InitPropSheetPage(&psp[5], IDD_LOCALEPAGE, LocalePageProc);
+
+ return (LONG)(PropertySheet(&psh) != -1);
+}
+
+
+/* Control Panel Callback */
+LONG CALLBACK
+CPlApplet(HWND hwndCpl,
+ UINT uMsg,
+ LPARAM lParam1,
+ LPARAM lParam2)
+{
+ switch(uMsg)
+ {
+ case CPL_INIT:
+ return TRUE;
+
+ case CPL_GETCOUNT:
+ return NUM_APPLETS;
+
+ case CPL_INQUIRE:
+ {
+ CPLINFO *CPlInfo = (CPLINFO*)lParam2;
+ UINT uAppIndex = (UINT)lParam1;
+
+ CPlInfo->lData = 0;
+ CPlInfo->idIcon = Applets[uAppIndex].idIcon;
+ CPlInfo->idName = Applets[uAppIndex].idName;
+ CPlInfo->idInfo = Applets[uAppIndex].idDescription;
+ break;
+ }
+
+ case CPL_DBLCLK:
+ {
+ UINT uAppIndex = (UINT)lParam1;
+ Applets[uAppIndex].AppletProc(hwndCpl, uMsg, lParam1, lParam2);
+ break;
+ }
+ }
+
+ return FALSE;
+}
+
+
+BOOL STDCALL
+DllMain(HINSTANCE hinstDLL,
+ DWORD dwReason,
+ LPVOID lpReserved)
+{
+ switch(dwReason)
+ {
+ case DLL_PROCESS_ATTACH:
+ case DLL_THREAD_ATTACH:
+ hApplet = hinstDLL;
+ break;
+ }
+
+ return TRUE;
+}
+
--- /dev/null
+LIBRARY intl.cpl
+
+EXPORTS
+CPlApplet@16
+LocalePageProc@16
+
+; EOF
--- /dev/null
+#ifndef __CPL_INTL_H
+#define __CPL_INTL_H
+
+
+typedef struct _APPLET
+{
+ UINT idIcon;
+ UINT idName;
+ UINT idDescription;
+ APPLET_PROC AppletProc;
+} APPLET, *PAPPLET;
+
+extern HINSTANCE hApplet;
+
+
+/* currency.c */
+INT_PTR CALLBACK
+CurrencyPageProc(HWND hwndDlg,
+ UINT uMsg,
+ WPARAM wParam,
+ LPARAM lParam);
+
+/* date.c */
+INT_PTR CALLBACK
+DatePageProc(HWND hwndDlg,
+ UINT uMsg,
+ WPARAM wParam,
+ LPARAM lParam);
+
+/* general.c */
+INT_PTR CALLBACK
+GeneralPageProc(HWND hwndDlg,
+ UINT uMsg,
+ WPARAM wParam,
+ LPARAM lParam);
+
+/* locale.c */
+INT_PTR CALLBACK
+LocalePageProc(HWND hwndDlg,
+ UINT uMsg,
+ WPARAM wParam,
+ LPARAM lParam);
+
+/* numbers.h */
+INT_PTR CALLBACK
+NumbersPageProc(HWND hwndDlg,
+ UINT uMsg,
+ WPARAM wParam,
+ LPARAM lParam);
+
+/* time.c */
+INT_PTR CALLBACK
+TimePageProc(HWND hwndDlg,
+ UINT uMsg,
+ WPARAM wParam,
+ LPARAM lParam);
+
+#endif /* __CPL_INTL_H */
+
+/* EOF */
--- /dev/null
+/* $Id: intl.rc,v 1.1 2004/10/30 12:33:23 ekohl Exp $ */
+
+#include <defines.h>
+#include "resource.h"
+
+#define REACTOS_VERSION_DLL
+#define REACTOS_STR_FILE_DESCRIPTION "ReactOS Control Panel\0"
+#define REACTOS_STR_INTERNAL_NAME "intl\0"
+#define REACTOS_STR_ORIGINAL_FILENAME "intl.cpl\0"
+#include <reactos/version.rc>
+
+
+IDC_CPLICON ICON "resources/applet.ico"
+
+
+LANGUAGE LANG_ENGLISH, SUBLANG_DEFAULT
+
+IDD_GENERALPAGE DIALOGEX 0, 0, 246, 228
+STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_DISABLED | WS_CAPTION
+CAPTION "General"
+FONT 8, "MS Shell Dlg"
+BEGIN
+ LTEXT "Property Page 1",-1,73,74,90,8
+END
+
+
+IDD_NUMBERSPAGE DIALOGEX 0, 0, 246, 228
+STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_DISABLED | WS_CAPTION
+CAPTION "Numbers"
+FONT 8, "MS Shell Dlg"
+BEGIN
+ LTEXT "Property Page 2",-1,73,74,90,8
+END
+
+
+IDD_CURRENCYPAGE DIALOGEX 0, 0, 246, 228
+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
+END
+
+
+IDD_TIMEPAGE DIALOGEX 0, 0, 246, 228
+STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_DISABLED | WS_CAPTION
+CAPTION "Time"
+FONT 8, "MS Shell Dlg"
+BEGIN
+ LTEXT "Property Page 4",-1,73,74,90,8
+END
+
+
+IDD_DATEPAGE DIALOGEX 0, 0, 246, 228
+STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_DISABLED | WS_CAPTION
+CAPTION "Date"
+FONT 8, "MS Shell Dlg"
+BEGIN
+ LTEXT "Property Page 5",-1,73,74,90,8
+END
+
+
+IDD_LOCALEPAGE DIALOGEX 0, 0, 246, 228
+STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_DISABLED | WS_CAPTION
+CAPTION "Input Locale"
+FONT 8, "MS Shell Dlg"
+BEGIN
+ LTEXT "Property Page 6",-1,73,74,90,8
+END
+
+
+STRINGTABLE
+BEGIN
+ IDS_CPLNAME "Regional Options"
+ IDS_CPLDESCRIPTION "Select languages and format numbers, currencies, times and date."
+END
--- /dev/null
+/*
+ * ReactOS
+ * Copyright (C) 2004 ReactOS Team
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+/* $Id: locale.c,v 1.1 2004/10/30 12:33:23 ekohl Exp $
+ *
+ * PROJECT: ReactOS International Control Panel
+ * FILE: lib/cpl/intl/locale.c
+ * PURPOSE: Locale property page
+ * PROGRAMMER: Eric Kohl
+ */
+
+#include <windows.h>
+#include <commctrl.h>
+#include <cpl.h>
+
+#include "intl.h"
+#include "resource.h"
+
+
+/* Property page dialog callback */
+INT_PTR CALLBACK
+LocalePageProc(HWND hwndDlg,
+ UINT uMsg,
+ WPARAM wParam,
+ LPARAM lParam)
+{
+ switch(uMsg)
+ {
+ case WM_INITDIALOG:
+ break;
+ }
+ return FALSE;
+}
+
+/* EOF */
--- /dev/null
+# $Id: makefile,v 1.1 2004/10/30 12:33:23 ekohl Exp $
+
+PATH_TO_TOP = ../../..
+
+TARGET_TYPE = dynlink
+
+TARGET_EXTENSION = .cpl
+
+TARGET_NAME = intl
+
+TARGET_INSTALLDIR = system32
+
+TARGET_BASE = 0x75970000
+
+TARGET_CFLAGS = \
+ -D_WIN32_IE=0x0600 \
+ -D_WIN32_WINNT=0x0501 \
+ -D__USE_W32API \
+ -I./include \
+ -DUNICODE \
+ -D_UNICODE \
+ -D__REACTOS__ \
+ -Wall \
+ -Werror \
+ -fno-builtin
+
+TARGET_LFLAGS = -nostartfiles
+
+TARGET_SDKLIBS = kernel32.a user32.a comctl32.a
+
+TARGET_GCCLIBS = gcc
+
+TARGET_PCH =
+
+TARGET_CLEAN =
+
+TARGET_OBJECTS = currency.o date.o general.o intl.o locale.o numbers.o time.o
+
+DEP_OBJECTS = $(TARGET_OBJECTS)
+
+include $(PATH_TO_TOP)/rules.mak
+
+include $(TOOLS_PATH)/helper.mk
+
+include $(TOOLS_PATH)/depend.mk
+
+%/TAGS:
+ etags -o $(@D)/TAGS $(@D)/\*.c
+
+etags: ./TAGS
--- /dev/null
+/*
+ * ReactOS
+ * Copyright (C) 2004 ReactOS Team
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+/* $Id: numbers.c,v 1.1 2004/10/30 12:33:23 ekohl Exp $
+ *
+ * PROJECT: ReactOS International Control Panel
+ * FILE: lib/cpl/intl/numbers.c
+ * PURPOSE: Numbers property page
+ * PROGRAMMER: Eric Kohl
+ */
+
+#include <windows.h>
+#include <commctrl.h>
+#include <cpl.h>
+
+#include "intl.h"
+#include "resource.h"
+
+
+/* Property page dialog callback */
+INT_PTR CALLBACK
+NumbersPageProc(HWND hwndDlg,
+ UINT uMsg,
+ WPARAM wParam,
+ LPARAM lParam)
+{
+ switch(uMsg)
+ {
+ case WM_INITDIALOG:
+ break;
+ }
+ return FALSE;
+}
+
+/* EOF */
--- /dev/null
+#ifndef __CPL_RESOURCE_H
+#define __CPL_RESOURCE_H
+
+
+#define IDC_CPLICON 1
+
+#define IDD_GENERALPAGE 100
+#define IDD_NUMBERSPAGE 101
+#define IDD_CURRENCYPAGE 102
+#define IDD_TIMEPAGE 103
+#define IDD_DATEPAGE 104
+#define IDD_LOCALEPAGE 105
+
+#define IDS_CPLNAME 1000
+#define IDS_CPLDESCRIPTION 1001
+
+#endif /* __CPL_RESOURCE_H */
+
+/* EOF */
--- /dev/null
+/*
+ * ReactOS
+ * Copyright (C) 2004 ReactOS Team
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+/* $Id: time.c,v 1.1 2004/10/30 12:33:23 ekohl Exp $
+ *
+ * PROJECT: ReactOS International Control Panel
+ * FILE: lib/cpl/intl/time.c
+ * PURPOSE: Time property page
+ * PROGRAMMER: Eric Kohl
+ */
+
+#include <windows.h>
+#include <commctrl.h>
+#include <cpl.h>
+
+#include "intl.h"
+#include "resource.h"
+
+
+/* Property page dialog callback */
+INT_PTR CALLBACK
+TimePageProc(HWND hwndDlg,
+ UINT uMsg,
+ WPARAM wParam,
+ LPARAM lParam)
+{
+ switch(uMsg)
+ {
+ case WM_INITDIALOG:
+ break;
+ }
+ return FALSE;
+}
+
+/* EOF */