Added Paint for ReactOS source folder
authorBenedikt Freisen <b.freisen@gmx.net>
Tue, 12 May 2009 14:01:23 +0000 (14:01 +0000)
committerBenedikt Freisen <b.freisen@gmx.net>
Tue, 12 May 2009 14:01:23 +0000 (14:01 +0000)
svn path=/trunk/; revision=40897

81 files changed:
reactos/base/applications/paint/definitions.h [new file with mode: 0755]
reactos/base/applications/paint/dialogs.c [new file with mode: 0755]
reactos/base/applications/paint/dialogs.h [new file with mode: 0755]
reactos/base/applications/paint/dib.c [new file with mode: 0755]
reactos/base/applications/paint/dib.h [new file with mode: 0755]
reactos/base/applications/paint/drawing.c [new file with mode: 0755]
reactos/base/applications/paint/drawing.h [new file with mode: 0755]
reactos/base/applications/paint/globalvar.h [new file with mode: 0755]
reactos/base/applications/paint/help/Paint.chm [new file with mode: 0755]
reactos/base/applications/paint/help/Paint.hhp [new file with mode: 0755]
reactos/base/applications/paint/help/Table of Contents.hhc [new file with mode: 0755]
reactos/base/applications/paint/help/airbrush.png [new file with mode: 0755]
reactos/base/applications/paint/help/appwindow.png [new file with mode: 0755]
reactos/base/applications/paint/help/bezier.png [new file with mode: 0755]
reactos/base/applications/paint/help/brush.png [new file with mode: 0755]
reactos/base/applications/paint/help/color.png [new file with mode: 0755]
reactos/base/applications/paint/help/ellipse.png [new file with mode: 0755]
reactos/base/applications/paint/help/fill.png [new file with mode: 0755]
reactos/base/applications/paint/help/freesel.png [new file with mode: 0755]
reactos/base/applications/paint/help/line.png [new file with mode: 0755]
reactos/base/applications/paint/help/palette.png [new file with mode: 0755]
reactos/base/applications/paint/help/pen.png [new file with mode: 0755]
reactos/base/applications/paint/help/rect.png [new file with mode: 0755]
reactos/base/applications/paint/help/rectsel.png [new file with mode: 0755]
reactos/base/applications/paint/help/rrect.png [new file with mode: 0755]
reactos/base/applications/paint/help/rubber.png [new file with mode: 0755]
reactos/base/applications/paint/help/settings.html [new file with mode: 0755]
reactos/base/applications/paint/help/settings1.png [new file with mode: 0755]
reactos/base/applications/paint/help/settings2.png [new file with mode: 0755]
reactos/base/applications/paint/help/settings3.png [new file with mode: 0755]
reactos/base/applications/paint/help/settings4.png [new file with mode: 0755]
reactos/base/applications/paint/help/settings5.png [new file with mode: 0755]
reactos/base/applications/paint/help/settings6.png [new file with mode: 0755]
reactos/base/applications/paint/help/shape.png [new file with mode: 0755]
reactos/base/applications/paint/help/text.png [new file with mode: 0755]
reactos/base/applications/paint/help/toolbox.png [new file with mode: 0755]
reactos/base/applications/paint/help/tools.html [new file with mode: 0755]
reactos/base/applications/paint/help/usage.html [new file with mode: 0755]
reactos/base/applications/paint/help/zoom.png [new file with mode: 0755]
reactos/base/applications/paint/history.c [new file with mode: 0755]
reactos/base/applications/paint/history.h [new file with mode: 0755]
reactos/base/applications/paint/icons.rc [new file with mode: 0755]
reactos/base/applications/paint/icons/airbrush_cur.ico [new file with mode: 0755]
reactos/base/applications/paint/icons/color_cur.ico [new file with mode: 0755]
reactos/base/applications/paint/icons/fill_cur.ico [new file with mode: 0755]
reactos/base/applications/paint/icons/horzstretch.ico [new file with mode: 0755]
reactos/base/applications/paint/icons/iconbar.bmp [new file with mode: 0755]
reactos/base/applications/paint/icons/nontransparent.ico [new file with mode: 0755]
reactos/base/applications/paint/icons/paint.ico [new file with mode: 0644]
reactos/base/applications/paint/icons/paint.svg [new file with mode: 0644]
reactos/base/applications/paint/icons/pen_cur.ico [new file with mode: 0755]
reactos/base/applications/paint/icons/transparency.xcf [new file with mode: 0755]
reactos/base/applications/paint/icons/transparent.ico [new file with mode: 0755]
reactos/base/applications/paint/icons/vertstretch.ico [new file with mode: 0755]
reactos/base/applications/paint/icons/zoom_cur.ico [new file with mode: 0755]
reactos/base/applications/paint/lang/cs-CZ.rc [new file with mode: 0644]
reactos/base/applications/paint/lang/de-DE.rc [new file with mode: 0755]
reactos/base/applications/paint/lang/en-GB.rc [new file with mode: 0755]
reactos/base/applications/paint/lang/en-US.rc [new file with mode: 0755]
reactos/base/applications/paint/lang/es-ES.rc [new file with mode: 0755]
reactos/base/applications/paint/lang/fr-FR.rc [new file with mode: 0644]
reactos/base/applications/paint/lang/it-IT.rc [new file with mode: 0755]
reactos/base/applications/paint/lang/pt-BR.rc [new file with mode: 0644]
reactos/base/applications/paint/lang/pt-PT.rc [new file with mode: 0644]
reactos/base/applications/paint/lang/sk-SK.rc [new file with mode: 0644]
reactos/base/applications/paint/lang/uk-UA.rc [new file with mode: 0644]
reactos/base/applications/paint/lgpl.txt [new file with mode: 0755]
reactos/base/applications/paint/main.c [new file with mode: 0755]
reactos/base/applications/paint/mouse.c [new file with mode: 0755]
reactos/base/applications/paint/mouse.h [new file with mode: 0755]
reactos/base/applications/paint/paint.exe.manifest [new file with mode: 0755]
reactos/base/applications/paint/paint.rbuild [new file with mode: 0755]
reactos/base/applications/paint/palette.c [new file with mode: 0755]
reactos/base/applications/paint/palette.h [new file with mode: 0755]
reactos/base/applications/paint/rsrc.rc [new file with mode: 0755]
reactos/base/applications/paint/selection.c [new file with mode: 0755]
reactos/base/applications/paint/selection.h [new file with mode: 0755]
reactos/base/applications/paint/toolsettings.c [new file with mode: 0755]
reactos/base/applications/paint/toolsettings.h [new file with mode: 0755]
reactos/base/applications/paint/winproc.c [new file with mode: 0755]
reactos/base/applications/paint/winproc.h [new file with mode: 0755]

diff --git a/reactos/base/applications/paint/definitions.h b/reactos/base/applications/paint/definitions.h
new file mode 100755 (executable)
index 0000000..d329b7b
--- /dev/null
@@ -0,0 +1,159 @@
+/*\r
+ * PROJECT:     PAINT for ReactOS\r
+ * LICENSE:     LGPL\r
+ * FILE:        definitions.h\r
+ * PURPOSE:     Defines the resource ids\r
+ * PROGRAMMERS: Benedikt Freisen\r
+ */\r
\r
+/* DEFINES **********************************************************/\r
+\r
+#define IDI_APPICON 500\r
+\r
+#define IDB_TOOLBARICONS    510\r
+\r
+#define IDI_TRANSPARENT     526\r
+#define IDI_NONTRANSPARENT  527\r
+\r
+#define IDC_FILL        530\r
+#define IDC_COLOR       531\r
+#define IDC_ZOOM        532\r
+#define IDC_PEN         533\r
+#define IDC_AIRBRUSH    534\r
+\r
+#define IDI_HORZSTRETCH 535\r
+#define IDI_VERTSTRETCH 536\r
+\r
+#define ID_MENU 501\r
+\r
+#define IDM_FILENEW     201\r
+#define IDM_FILEOPEN    202\r
+#define IDM_FILESAVE    203\r
+#define IDM_FILESAVEAS  204\r
+#define IDM_FILEASWALLPAPERPLANE        210\r
+#define IDM_FILEASWALLPAPERCENTERED     211\r
+#define IDM_FILEASWALLPAPERSTRETCHED    212\r
+#define IDM_FILEEXIT    205\r
+\r
+#define IDM_EDITUNDO    220\r
+#define IDM_EDITREDO    221\r
+#define IDM_EDITCUT     222\r
+#define IDM_EDITCOPY    223\r
+#define IDM_EDITPASTE   224\r
+#define IDM_EDITDELETESELECTION 225\r
+#define IDM_EDITINVERTSELECTION 226\r
+#define IDM_EDITSELECTALL   227\r
+#define IDM_EDITCOPYTO      228\r
+#define IDM_EDITPASTEFROM   229\r
+\r
+#define IDM_VIEWTOOLBOX         230\r
+#define IDM_VIEWCOLORPALETTE    231\r
+#define IDM_VIEWSTATUSBAR       232\r
+#define IDM_FORMATICONBAR       233\r
+#define IDM_VIEWZOOM125         234\r
+#define IDM_VIEWZOOM25          235\r
+#define IDM_VIEWZOOM50          236\r
+#define IDM_VIEWZOOM100         237\r
+#define IDM_VIEWZOOM200         238\r
+#define IDM_VIEWZOOM400         239\r
+#define IDM_VIEWZOOM800         240\r
+#define IDM_VIEWFULLSCREEN      241\r
+\r
+#define IDM_IMAGEROTATEMIRROR   250\r
+#define IDM_IMAGECHANGESIZE     251\r
+#define IDM_IMAGECROP           252\r
+#define IDM_IMAGEINVERTCOLORS   253\r
+#define IDM_IMAGEATTRIBUTES     254\r
+#define IDM_IMAGEDELETEIMAGE    255\r
+#define IDM_IMAGEDRAWOPAQUE    256\r
+\r
+#define IDM_COLORSEDITPALETTE   260\r
+\r
+#define IDM_HELPHELPTOPICS  270\r
+#define IDM_HELPINFO        271\r
+\r
+//the following 16 numbers need to be in order, increasing by 1\r
+#define ID_FREESEL  600\r
+#define ID_RECTSEL  601\r
+#define ID_RUBBER   602\r
+#define ID_FILL     603\r
+#define ID_COLOR    604\r
+#define ID_ZOOM     605\r
+#define ID_PEN      606\r
+#define ID_BRUSH    607\r
+#define ID_AIRBRUSH 608\r
+#define ID_TEXT     609\r
+#define ID_LINE     610\r
+#define ID_BEZIER   611\r
+#define ID_RECT     612\r
+#define ID_SHAPE    613\r
+#define ID_ELLIPSE  614\r
+#define ID_RRECT    615\r
+\r
+#define ID_ACCELERATORS 800\r
+\r
+#define IDD_MIRRORROTATE        700\r
+#define IDD_MIRRORROTATEGROUP   701\r
+#define IDD_MIRRORROTATERB1     702\r
+#define IDD_MIRRORROTATERB2     703\r
+#define IDD_MIRRORROTATERB3     704\r
+#define IDD_MIRRORROTATERB4     705\r
+#define IDD_MIRRORROTATERB5     706\r
+#define IDD_MIRRORROTATERB6     707\r
+\r
+#define IDD_ATTRIBUTES          710\r
+#define IDD_ATTRIBUTESEDIT1     711\r
+#define IDD_ATTRIBUTESEDIT2     712\r
+#define IDD_ATTRIBUTESTEXT1     715\r
+#define IDD_ATTRIBUTESTEXT2     716\r
+#define IDD_ATTRIBUTESTEXT3     717\r
+#define IDD_ATTRIBUTESTEXT4     718\r
+#define IDD_ATTRIBUTESTEXT5     719\r
+#define IDD_ATTRIBUTESTEXT6     720\r
+#define IDD_ATTRIBUTESTEXT7     721\r
+#define IDD_ATTRIBUTESTEXT8     722\r
+#define IDD_ATTRIBUTESSTANDARD  723\r
+#define IDD_ATTRIBUTESGROUP1    724\r
+#define IDD_ATTRIBUTESGROUP2    725\r
+#define IDD_ATTRIBUTESRB1       726\r
+#define IDD_ATTRIBUTESRB2       727\r
+#define IDD_ATTRIBUTESRB3       728\r
+#define IDD_ATTRIBUTESRB4       729\r
+#define IDD_ATTRIBUTESRB5       730\r
+\r
+#define IDD_CHANGESIZE      740\r
+#define IDD_CHANGESIZEGROUP 741\r
+#define IDD_CHANGESIZEICON1 742\r
+#define IDD_CHANGESIZETEXT1 743\r
+#define IDD_CHANGESIZEEDIT1 744\r
+#define IDD_CHANGESIZETEXT2 745\r
+#define IDD_CHANGESIZEICON2 746\r
+#define IDD_CHANGESIZETEXT3 747\r
+#define IDD_CHANGESIZEEDIT2 748\r
+#define IDD_CHANGESIZETEXT4 749\r
+\r
+#define IDS_PROGRAMNAME 900\r
+#define IDS_WINDOWTITLE 901\r
+#define IDS_INFOTITLE   902\r
+#define IDS_INFOTEXT    903\r
+#define IDS_SAVEPROMPTTEXT  904\r
+#define IDS_DEFAULTFILENAME 905\r
+#define IDS_TOOLTIP1    910\r
+#define IDS_TOOLTIP2    911\r
+#define IDS_TOOLTIP3    912\r
+#define IDS_TOOLTIP4    913\r
+#define IDS_TOOLTIP5    914\r
+#define IDS_TOOLTIP6    915\r
+#define IDS_TOOLTIP7    916\r
+#define IDS_TOOLTIP8    917\r
+#define IDS_TOOLTIP9    918\r
+#define IDS_TOOLTIP10   919\r
+#define IDS_TOOLTIP11   920\r
+#define IDS_TOOLTIP12   921\r
+#define IDS_TOOLTIP13   922\r
+#define IDS_TOOLTIP14   923\r
+#define IDS_TOOLTIP15   924\r
+#define IDS_TOOLTIP16   925\r
+\r
+#define IDS_OPENFILTER  926\r
+#define IDS_SAVEFILTER  927\r
diff --git a/reactos/base/applications/paint/dialogs.c b/reactos/base/applications/paint/dialogs.c
new file mode 100755 (executable)
index 0000000..0d1fee2
--- /dev/null
@@ -0,0 +1,133 @@
+/*\r
+ * PROJECT:     PAINT for ReactOS\r
+ * LICENSE:     LGPL\r
+ * FILE:        dialogs.c\r
+ * PURPOSE:     Window procedures of the dialog windows plus launching functions\r
+ * PROGRAMMERS: Benedikt Freisen\r
+ */\r
+\r
+/* INCLUDES *********************************************************/\r
+\r
+#include <windows.h>\r
+#include "definitions.h"\r
+#include "globalvar.h"\r
+\r
+/* FUNCTIONS ********************************************************/\r
+\r
+LRESULT CALLBACK MRDlgWinProc (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)\r
+{\r
+    switch (message)\r
+    {\r
+        case WM_INITDIALOG:\r
+            CheckDlgButton(hwnd, IDD_MIRRORROTATERB1, BST_CHECKED);\r
+            CheckDlgButton(hwnd, IDD_MIRRORROTATERB4, BST_CHECKED);\r
+            return TRUE;\r
+        case WM_CLOSE:\r
+            EndDialog(hwnd, 0);\r
+            break;\r
+        case WM_COMMAND:\r
+            switch (LOWORD(wParam))\r
+            {\r
+                case IDOK:\r
+                    if (IsDlgButtonChecked(hwnd, IDD_MIRRORROTATERB1))\r
+                        EndDialog(hwnd, 1);\r
+                    else if (IsDlgButtonChecked(hwnd, IDD_MIRRORROTATERB2))\r
+                        EndDialog(hwnd, 2);\r
+                    else if (IsDlgButtonChecked(hwnd, IDD_MIRRORROTATERB4))\r
+                        EndDialog(hwnd, 3);\r
+                    else if (IsDlgButtonChecked(hwnd, IDD_MIRRORROTATERB5))\r
+                        EndDialog(hwnd, 4);\r
+                    else if (IsDlgButtonChecked(hwnd, IDD_MIRRORROTATERB6))\r
+                        EndDialog(hwnd, 5);\r
+                    break;\r
+                case IDCANCEL:\r
+                    EndDialog(hwnd, 0);\r
+                    break;\r
+                case IDD_MIRRORROTATERB3:\r
+                    EnableWindow(GetDlgItem(hwnd, IDD_MIRRORROTATERB4), TRUE);\r
+                    EnableWindow(GetDlgItem(hwnd, IDD_MIRRORROTATERB5), TRUE);\r
+                    EnableWindow(GetDlgItem(hwnd, IDD_MIRRORROTATERB6), TRUE);\r
+                    break;\r
+                case IDD_MIRRORROTATERB1:\r
+                case IDD_MIRRORROTATERB2:\r
+                    EnableWindow(GetDlgItem(hwnd, IDD_MIRRORROTATERB4), FALSE);\r
+                    EnableWindow(GetDlgItem(hwnd, IDD_MIRRORROTATERB5), FALSE);\r
+                    EnableWindow(GetDlgItem(hwnd, IDD_MIRRORROTATERB6), FALSE);\r
+                    break;\r
+            }\r
+            break;\r
+        default:\r
+            return FALSE;\r
+    }\r
+}\r
+\r
+int mirrorRotateDlg()\r
+{\r
+    return DialogBox(hProgInstance, MAKEINTRESOURCE(IDD_MIRRORROTATE), hMainWnd, (DLGPROC)MRDlgWinProc);\r
+}\r
+\r
+LRESULT CALLBACK ATTDlgWinProc (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)\r
+{\r
+    switch (message)\r
+    {\r
+        case WM_INITDIALOG:\r
+            CheckDlgButton(hwnd, IDD_ATTRIBUTESRB3, BST_CHECKED);\r
+            CheckDlgButton(hwnd, IDD_ATTRIBUTESRB5, BST_CHECKED);\r
+            SetDlgItemInt(hwnd, IDD_ATTRIBUTESEDIT1, imgXRes, FALSE);\r
+            SetDlgItemInt(hwnd, IDD_ATTRIBUTESEDIT2, imgYRes, FALSE);\r
+            return TRUE;\r
+        case WM_CLOSE:\r
+            EndDialog(hwnd, 0);\r
+            break;\r
+        case WM_COMMAND:\r
+            switch (LOWORD(wParam))\r
+            {\r
+                case IDOK:\r
+                    EndDialog(hwnd, 1);\r
+                    break;\r
+                case IDCANCEL:\r
+                    EndDialog(hwnd, 0);\r
+                    break;\r
+            }\r
+            break;\r
+        default:\r
+            return FALSE;\r
+    }\r
+}\r
+\r
+int attributesDlg()\r
+{\r
+    return DialogBox(hProgInstance, MAKEINTRESOURCE(IDD_ATTRIBUTES), hMainWnd, (DLGPROC)ATTDlgWinProc);\r
+}\r
+\r
+LRESULT CALLBACK CHSIZEDlgWinProc (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)\r
+{\r
+    switch (message)\r
+    {\r
+        case WM_INITDIALOG:\r
+            SetDlgItemInt(hwnd, IDD_CHANGESIZEEDIT1, 100, FALSE);\r
+            SetDlgItemInt(hwnd, IDD_CHANGESIZEEDIT2, 100, FALSE);\r
+            return TRUE;\r
+        case WM_CLOSE:\r
+            EndDialog(hwnd, 0);\r
+            break;\r
+        case WM_COMMAND:\r
+            switch (LOWORD(wParam))\r
+            {\r
+                case IDOK:\r
+                    EndDialog(hwnd, GetDlgItemInt(hwnd, IDD_CHANGESIZEEDIT1, NULL, FALSE) | (GetDlgItemInt(hwnd, IDD_CHANGESIZEEDIT2, NULL, FALSE)<<16));\r
+                    break;\r
+                case IDCANCEL:\r
+                    EndDialog(hwnd, 0);\r
+                    break;\r
+            }\r
+            break;\r
+        default:\r
+            return FALSE;\r
+    }\r
+}\r
+\r
+int changeSizeDlg()\r
+{\r
+    return DialogBox(hProgInstance, MAKEINTRESOURCE(IDD_CHANGESIZE), hMainWnd, (DLGPROC)CHSIZEDlgWinProc);\r
+}\r
diff --git a/reactos/base/applications/paint/dialogs.h b/reactos/base/applications/paint/dialogs.h
new file mode 100755 (executable)
index 0000000..93e90b8
--- /dev/null
@@ -0,0 +1,13 @@
+/*\r
+ * PROJECT:     PAINT for ReactOS\r
+ * LICENSE:     LGPL\r
+ * FILE:        dialogs.h\r
+ * PURPOSE:     Window procedures of the dialog windows plus launching functions\r
+ * PROGRAMMERS: Benedikt Freisen\r
+ */\r
+\r
+int mirrorRotateDlg();\r
+\r
+int attributesDlg();\r
+\r
+int changeSizeDlg();\r
diff --git a/reactos/base/applications/paint/dib.c b/reactos/base/applications/paint/dib.c
new file mode 100755 (executable)
index 0000000..1b47d76
--- /dev/null
@@ -0,0 +1,101 @@
+/*\r
+ * PROJECT:     PAINT for ReactOS\r
+ * LICENSE:     LGPL\r
+ * FILE:        dib.c\r
+ * PURPOSE:     Some DIB related functions\r
+ * PROGRAMMERS: Benedikt Freisen\r
+ */\r
+\r
+/* INCLUDES *********************************************************/\r
+\r
+#include <windows.h>\r
+\r
+/* FUNCTIONS ********************************************************/\r
+\r
+HBITMAP CreateDIBWithProperties(int width, int height)\r
+{\r
+    BITMAPINFO bitmapinfo;\r
+    bitmapinfo.bmiHeader.biSize = sizeof (BITMAPINFOHEADER);\r
+    bitmapinfo.bmiHeader.biWidth = width;\r
+    bitmapinfo.bmiHeader.biHeight = height;\r
+    bitmapinfo.bmiHeader.biPlanes = 1;\r
+    bitmapinfo.bmiHeader.biBitCount = 24;\r
+    bitmapinfo.bmiHeader.biCompression = BI_RGB;\r
+    bitmapinfo.bmiHeader.biSizeImage = 0;\r
+    bitmapinfo.bmiHeader.biXPelsPerMeter = 0;\r
+    bitmapinfo.bmiHeader.biYPelsPerMeter = 0;\r
+    bitmapinfo.bmiHeader.biClrUsed = 0;\r
+    bitmapinfo.bmiHeader.biClrImportant = 0;\r
+    return CreateDIBSection(NULL, &bitmapinfo, DIB_RGB_COLORS, NULL, NULL, 0);\r
+}\r
+\r
+int GetDIBWidth(HBITMAP hbm)\r
+{\r
+    BITMAP bm;\r
+    GetObject(hbm, sizeof(BITMAP), &bm);\r
+    return bm.bmWidth;\r
+}\r
+\r
+int GetDIBHeight(HBITMAP hbm)\r
+{\r
+    BITMAP bm;\r
+    GetObject(hbm, sizeof(BITMAP), &bm);\r
+    return bm.bmHeight;\r
+}\r
+\r
+void SaveDIBToFile(HBITMAP hbm, char name[], HDC hdc)\r
+{\r
+    BITMAP bm;\r
+    GetObject(hbm, sizeof(BITMAP), &bm);\r
+    BITMAPFILEHEADER bf;\r
+    BITMAPINFOHEADER bi;\r
+    int imgDataSize = bm.bmWidthBytes*bm.bmHeight;\r
+    bf.bfType = 0x4d42;\r
+    bf.bfSize = imgDataSize+52;\r
+    bf.bfReserved1 = 0;\r
+    bf.bfReserved2 = 0;\r
+    bf.bfOffBits = 54;\r
+    bi.biSize = 40;\r
+    bi.biWidth = bm.bmWidth;\r
+    bi.biHeight = bm.bmHeight;\r
+    bi.biPlanes = bm.bmPlanes;\r
+    bi.biBitCount = bm.bmBitsPixel;\r
+    bi.biCompression = BI_RGB;\r
+    bi.biSizeImage = 0;\r
+    bi.biXPelsPerMeter = 0;\r
+    bi.biYPelsPerMeter = 0;\r
+    bi.biClrUsed = 0;\r
+    bi.biClrImportant = 0;\r
+    int *buffer = HeapAlloc(GetProcessHeap(), HEAP_GENERATE_EXCEPTIONS, imgDataSize);\r
+    GetDIBits(hdc, hbm, 0, bm.bmHeight, buffer, (LPBITMAPINFO)&bi, DIB_RGB_COLORS);\r
+    HANDLE f = CreateFile(name, GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, FILE_FLAG_SEQUENTIAL_SCAN, NULL);\r
+    int bytesWritten;\r
+    WriteFile(f, &bf, 14, (LPDWORD)&bytesWritten, NULL);\r
+    WriteFile(f, &bi, 40, (LPDWORD)&bytesWritten, NULL);\r
+    WriteFile(f, buffer, imgDataSize, (LPDWORD)&bytesWritten, NULL);\r
+    CloseHandle(f);\r
+    HeapFree(GetProcessHeap(), 0, buffer);\r
+}\r
+\r
+HBITMAP LoadDIBFromFile(char name[])\r
+{\r
+    HBITMAP bm;\r
+    BITMAPFILEHEADER bfh;\r
+    BITMAPINFO *bi;\r
+    VOID *data;\r
+    int bytesRead;\r
+    HANDLE f = CreateFile(name, GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_FLAG_SEQUENTIAL_SCAN, NULL);\r
+    ReadFile(f, &bfh, 14, (LPDWORD)&bytesRead, NULL);\r
+    if (bfh.bfType!=0x4d42)\r
+    {\r
+        fclose(f);\r
+        return NULL;\r
+    }\r
+    bi = HeapAlloc(GetProcessHeap(), HEAP_GENERATE_EXCEPTIONS, bfh.bfOffBits-14);\r
+    ReadFile(f, bi, bfh.bfOffBits-14, (LPDWORD)&bytesRead, NULL);\r
+    bm = CreateDIBSection(NULL, bi, DIB_RGB_COLORS, &data, NULL, 0);\r
+    ReadFile(f, data, bfh.bfSize-bfh.bfOffBits, (LPDWORD)&bytesRead, NULL);\r
+    CloseHandle(f);\r
+    HeapFree(GetProcessHeap(), 0, bi);\r
+    return bm;\r
+}\r
diff --git a/reactos/base/applications/paint/dib.h b/reactos/base/applications/paint/dib.h
new file mode 100755 (executable)
index 0000000..7690559
--- /dev/null
@@ -0,0 +1,17 @@
+/*\r
+ * PROJECT:     PAINT for ReactOS\r
+ * LICENSE:     LGPL\r
+ * FILE:        dib.h\r
+ * PURPOSE:     Some DIB related functions\r
+ * PROGRAMMERS: Benedikt Freisen\r
+ */\r
+\r
+HBITMAP CreateDIBWithProperties(int width, int height);\r
+\r
+int GetDIBWidth(HBITMAP hbm);\r
+\r
+int GetDIBHeight(HBITMAP hbm);\r
+\r
+void SaveDIBToFile(HBITMAP hbm, char name[], HDC hdc);\r
+\r
+HBITMAP LoadDIBFromFile(char name[]);\r
diff --git a/reactos/base/applications/paint/drawing.c b/reactos/base/applications/paint/drawing.c
new file mode 100755 (executable)
index 0000000..2c2ac36
--- /dev/null
@@ -0,0 +1,202 @@
+/*\r
+ * PROJECT:     PAINT for ReactOS\r
+ * LICENSE:     LGPL\r
+ * FILE:        drawing.c\r
+ * PURPOSE:     The drawing functions used by the tools\r
+ * PROGRAMMERS: Benedikt Freisen\r
+ */\r
+\r
+/* INCLUDES *********************************************************/\r
+\r
+#include <windows.h>\r
+\r
+/* FUNCTIONS ********************************************************/\r
+\r
+void Line(HDC hdc, short x1, short y1, short x2, short y2, int color, int thickness)\r
+{\r
+    HPEN oldPen = SelectObject(hdc, CreatePen(PS_SOLID, thickness, color));\r
+    MoveToEx(hdc, x1, y1, NULL);\r
+    LineTo(hdc, x2, y2);\r
+    DeleteObject(SelectObject(hdc, oldPen));\r
+}\r
+\r
+void Rect(HDC hdc, short x1, short y1, short x2, short y2, int fg, int bg, int thickness, BOOL filled)\r
+{\r
+    HPEN oldPen = SelectObject(hdc, CreatePen(PS_SOLID, thickness, fg));\r
+    LOGBRUSH logbrush;\r
+    if (filled) logbrush.lbStyle = BS_SOLID; else logbrush.lbStyle = BS_HOLLOW;\r
+    logbrush.lbColor = bg;\r
+    logbrush.lbHatch = 0;\r
+    HBRUSH oldBrush = SelectObject(hdc, CreateBrushIndirect(&logbrush));\r
+    Rectangle(hdc, x1, y1, x2, y2);\r
+    DeleteObject(SelectObject(hdc, oldBrush));\r
+    DeleteObject(SelectObject(hdc, oldPen));\r
+}\r
+\r
+void Ellp(HDC hdc, short x1, short y1, short x2, short y2, int fg, int bg, int thickness, BOOL filled)\r
+{\r
+    HPEN oldPen = SelectObject(hdc, CreatePen(PS_SOLID, thickness, fg));\r
+    LOGBRUSH logbrush;\r
+    if (filled) logbrush.lbStyle = BS_SOLID; else logbrush.lbStyle = BS_HOLLOW;\r
+    logbrush.lbColor = bg;\r
+    logbrush.lbHatch = 0;\r
+    HBRUSH oldBrush = SelectObject(hdc, CreateBrushIndirect(&logbrush));\r
+    Ellipse(hdc, x1, y1, x2, y2);\r
+    DeleteObject(SelectObject(hdc, oldBrush));\r
+    DeleteObject(SelectObject(hdc, oldPen));\r
+}\r
+\r
+void RRect(HDC hdc, short x1, short y1, short x2, short y2, int fg, int bg, int thickness, BOOL filled)\r
+{\r
+    HPEN oldPen = SelectObject(hdc, CreatePen(PS_SOLID, thickness, fg));\r
+    LOGBRUSH logbrush;\r
+    if (filled) logbrush.lbStyle = BS_SOLID; else logbrush.lbStyle = BS_HOLLOW;\r
+    logbrush.lbColor = bg;\r
+    logbrush.lbHatch = 0;\r
+    HBRUSH oldBrush = SelectObject(hdc, CreateBrushIndirect(&logbrush));\r
+    RoundRect(hdc, x1, y1, x2, y2, 16, 16);\r
+    DeleteObject(SelectObject(hdc, oldBrush));\r
+    DeleteObject(SelectObject(hdc, oldPen));\r
+}\r
+\r
+void Fill(HDC hdc, int x, int y, int color)\r
+{\r
+    HBRUSH oldBrush = SelectObject(hdc, CreateSolidBrush(color));\r
+    ExtFloodFill(hdc, x, y, GetPixel(hdc, x, y), FLOODFILLSURFACE);\r
+    DeleteObject(SelectObject(hdc, oldBrush));\r
+}\r
+\r
+void Erase(HDC hdc, short x1, short y1, short x2, short y2, int color, int radius)\r
+{\r
+    HPEN oldPen = SelectObject(hdc, CreatePen(PS_SOLID, 1, color));\r
+    HBRUSH oldBrush = SelectObject(hdc, CreateSolidBrush(color));\r
+    short a;\r
+    for (a=0; a<=100; a++)\r
+        Rectangle(hdc, (x1*(100-a)+x2*a)/100-radius+1, (y1*(100-a)+y2*a)/100-radius+1, (x1*(100-a)+x2*a)/100+radius+1, (y1*(100-a)+y2*a)/100+radius+1);\r
+    DeleteObject(SelectObject(hdc, oldBrush));\r
+    DeleteObject(SelectObject(hdc, oldPen));\r
+}\r
+\r
+void Airbrush(HDC hdc, short x, short y, int color, int r)\r
+{\r
+    short a;\r
+    short b;\r
+    for (b=-r; b<=r; b++) for (a=-r; a<=r; a++) if ((a*a+b*b<=r*r)&&(rand()%4==0)) SetPixel(hdc, x+a, y+b, color);\r
+}\r
+\r
+void Brush(HDC hdc, short x1, short y1, short x2, short y2, int color, int style)\r
+{\r
+    HPEN oldPen = SelectObject(hdc, CreatePen(PS_SOLID, 1, color));\r
+    HBRUSH oldBrush = SelectObject(hdc, CreateSolidBrush(color));\r
+    short a;\r
+    switch (style)\r
+    {\r
+        case 0:\r
+            for (a=0; a<=100; a++)\r
+                Ellipse(hdc, (x1*(100-a)+x2*a)/100-3, (y1*(100-a)+y2*a)/100-3, (x1*(100-a)+x2*a)/100+4, (y1*(100-a)+y2*a)/100+4);\r
+            break;\r
+        case 1:\r
+            for (a=0; a<=100; a++)\r
+                Ellipse(hdc, (x1*(100-a)+x2*a)/100-1, (y1*(100-a)+y2*a)/100-1, (x1*(100-a)+x2*a)/100+3, (y1*(100-a)+y2*a)/100+3);\r
+            break;\r
+        case 2:\r
+            MoveToEx(hdc, x1, y1, NULL);\r
+            LineTo(hdc, x2, y2);\r
+            SetPixel(hdc, x2, y2, color);\r
+            break;\r
+        case 3:\r
+            for (a=0; a<=100; a++)\r
+                Rectangle(hdc, (x1*(100-a)+x2*a)/100-3, (y1*(100-a)+y2*a)/100-3, (x1*(100-a)+x2*a)/100+5, (y1*(100-a)+y2*a)/100+5);\r
+            break;\r
+        case 4:\r
+            for (a=0; a<=100; a++)\r
+                Rectangle(hdc, (x1*(100-a)+x2*a)/100-2, (y1*(100-a)+y2*a)/100-2, (x1*(100-a)+x2*a)/100+3, (y1*(100-a)+y2*a)/100+3);\r
+            break;\r
+        case 5:\r
+            for (a=0; a<=100; a++)\r
+                Rectangle(hdc, (x1*(100-a)+x2*a)/100-1, (y1*(100-a)+y2*a)/100-1, (x1*(100-a)+x2*a)/100+1, (y1*(100-a)+y2*a)/100+1);\r
+            break;\r
+        case 6:\r
+            for (a=0; a<=100; a++)\r
+            {\r
+                MoveToEx(hdc, (x1*(100-a)+x2*a)/100-3, (y1*(100-a)+y2*a)/100+5, NULL);\r
+                LineTo(hdc, (x1*(100-a)+x2*a)/100+5, (y1*(100-a)+y2*a)/100-3);\r
+            }\r
+            break;\r
+        case 7:\r
+            for (a=0; a<=100; a++)\r
+            {\r
+                MoveToEx(hdc, (x1*(100-a)+x2*a)/100-2, (y1*(100-a)+y2*a)/100+3, NULL);\r
+                LineTo(hdc, (x1*(100-a)+x2*a)/100+3, (y1*(100-a)+y2*a)/100-2);\r
+            }\r
+            break;\r
+        case 8:\r
+            for (a=0; a<=100; a++)\r
+            {\r
+                MoveToEx(hdc, (x1*(100-a)+x2*a)/100-1, (y1*(100-a)+y2*a)/100+1, NULL);\r
+                LineTo(hdc, (x1*(100-a)+x2*a)/100+1, (y1*(100-a)+y2*a)/100-1);\r
+            }\r
+            break;\r
+        case 9:\r
+            for (a=0; a<=100; a++)\r
+            {\r
+                MoveToEx(hdc, (x1*(100-a)+x2*a)/100-3, (y1*(100-a)+y2*a)/100-3, NULL);\r
+                LineTo(hdc, (x1*(100-a)+x2*a)/100+5, (y1*(100-a)+y2*a)/100+5);\r
+            }\r
+            break;\r
+        case 10:\r
+            for (a=0; a<=100; a++)\r
+            {\r
+                MoveToEx(hdc, (x1*(100-a)+x2*a)/100-2, (y1*(100-a)+y2*a)/100-2, NULL);\r
+                LineTo(hdc, (x1*(100-a)+x2*a)/100+3, (y1*(100-a)+y2*a)/100+3);\r
+            }\r
+            break;\r
+        case 11:\r
+            for (a=0; a<=100; a++)\r
+            {\r
+                MoveToEx(hdc, (x1*(100-a)+x2*a)/100-1, (y1*(100-a)+y2*a)/100-1, NULL);\r
+                LineTo(hdc, (x1*(100-a)+x2*a)/100+1, (y1*(100-a)+y2*a)/100+1);\r
+            }\r
+            break;\r
+    }\r
+    DeleteObject(SelectObject(hdc, oldBrush));\r
+    DeleteObject(SelectObject(hdc, oldPen));\r
+}\r
+\r
+void RectSel(HDC hdc, short x1, short y1, short x2, short y2)\r
+{\r
+    HPEN oldPen = SelectObject(hdc, CreatePen(PS_DOT, 1, 0x00000000));\r
+    LOGBRUSH logbrush;\r
+    logbrush.lbStyle = BS_HOLLOW;\r
+    logbrush.lbColor = 0;\r
+    logbrush.lbHatch = 0;\r
+    HBRUSH oldBrush = SelectObject(hdc, CreateBrushIndirect(&logbrush));\r
+    Rectangle(hdc, x1, y1, x2, y2);\r
+    DeleteObject(SelectObject(hdc, oldBrush));\r
+    DeleteObject(SelectObject(hdc, oldPen));\r
+}\r
+\r
+void SelectionFrame(HDC hdc, int x1, int y1, int x2, int y2)\r
+{\r
+    HPEN oldPen = SelectObject(hdc, CreatePen(PS_DOT, 1, 0x00000000));\r
+    LOGBRUSH logbrush;\r
+    logbrush.lbStyle = BS_HOLLOW;\r
+    logbrush.lbColor = 0;\r
+    logbrush.lbHatch = 0;\r
+    HBRUSH oldBrush = SelectObject(hdc, CreateBrushIndirect(&logbrush));\r
+    Rectangle(hdc, x1, y1, x2, y2);\r
+    DeleteObject(SelectObject(hdc, oldBrush));\r
+    DeleteObject(SelectObject(hdc, oldPen));\r
+    oldPen = SelectObject(hdc, CreatePen(PS_SOLID, 1, 0x00000000));\r
+    oldBrush = SelectObject(hdc, CreateSolidBrush(0x00000000));\r
+    Rectangle(hdc, x1-1, y1-1, x1+2, y1+2);\r
+    Rectangle(hdc, x2-2, y1-1, x2+2, y1+2);\r
+    Rectangle(hdc, x1-1, y2-2, x1+2, y2+1);\r
+    Rectangle(hdc, x2-2, y2-2, x2+2, y2+1);\r
+    Rectangle(hdc, (x1+x2)/2-1, y1-1, (x1+x2)/2+2, y1+2);\r
+    Rectangle(hdc, (x1+x2)/2-1, y2-2, (x1+x2)/2+2, y2+1);\r
+    Rectangle(hdc, x1-1, (y1+y2)/2-1, x1+2, (y1+y2)/2+2);\r
+    Rectangle(hdc, x2-2, (y1+y2)/2-1, x2+1, (y1+y2)/2+2);\r
+    DeleteObject(SelectObject(hdc, oldBrush));\r
+    DeleteObject(SelectObject(hdc, oldPen));\r
+}\r
diff --git a/reactos/base/applications/paint/drawing.h b/reactos/base/applications/paint/drawing.h
new file mode 100755 (executable)
index 0000000..87bb756
--- /dev/null
@@ -0,0 +1,27 @@
+/*\r
+ * PROJECT:     PAINT for ReactOS\r
+ * LICENSE:     LGPL\r
+ * FILE:        drawing.h\r
+ * PURPOSE:     The drawing functions used by the tools\r
+ * PROGRAMMERS: Benedikt Freisen\r
+ */\r
+\r
+void Line(HDC hdc, short x1, short y1, short x2, short y2, int color, int thickness);\r
+\r
+void Rect(HDC hdc, short x1, short y1, short x2, short y2, int fg, int bg, int thickness, BOOL filled);\r
+\r
+void Ellp(HDC hdc, short x1, short y1, short x2, short y2, int fg, int bg, int thickness, BOOL filled);\r
+\r
+void RRect(HDC hdc, short x1, short y1, short x2, short y2, int fg, int bg, int thickness, BOOL filled);\r
+\r
+void Fill(HDC hdc, int x, int y, int color);\r
+\r
+void Erase(HDC hdc, short x1, short y1, short x2, short y2, int color, int radius);\r
+\r
+void Airbrush(HDC hdc, short x, short y, int color, int r);\r
+\r
+void Brush(HDC hdc, short x1, short y1, short x2, short y2, int color, int style);\r
+\r
+void RectSel(HDC hdc, short x1, short y1, short x2, short y2);\r
+\r
+void SelectionFrame(HDC hdc, int x1, int y1, int x2, int y2);\r
diff --git a/reactos/base/applications/paint/globalvar.h b/reactos/base/applications/paint/globalvar.h
new file mode 100755 (executable)
index 0000000..1da0288
--- /dev/null
@@ -0,0 +1,73 @@
+/*\r
+ * PROJECT:     PAINT for ReactOS\r
+ * LICENSE:     LGPL\r
+ * FILE:        globalvar.h\r
+ * PURPOSE:     Declaring global variables for later initialization\r
+ * PROGRAMMERS: Benedikt Freisen\r
+ */\r
\r
+/* INCLUDES *********************************************************/\r
+\r
+#include <windows.h>\r
+\r
+/* VARIABLES declared in main.c *************************************/\r
+\r
+extern HDC hDrawingDC;\r
+extern HDC hSelDC;\r
+extern int *bmAddress;\r
+extern BITMAPINFO bitmapinfo;\r
+extern int imgXRes;\r
+extern int imgYRes;\r
+\r
+extern HBITMAP hBms[4];\r
+extern int currInd;\r
+extern int undoSteps;\r
+extern int redoSteps;\r
+\r
+extern short startX;\r
+extern short startY;\r
+extern short lastX;\r
+extern short lastY;\r
+extern int lineWidth;\r
+extern int shapeStyle;\r
+extern int brushStyle;\r
+extern int activeTool;\r
+extern int airBrushWidth;\r
+extern int rubberRadius;\r
+extern int transpBg;\r
+extern int zoom;\r
+extern int rectSel_src[4];\r
+extern int rectSel_dest[4];\r
+extern HWND hSelection;\r
+extern HWND hImageArea;\r
+extern HBITMAP hSelBm;\r
+\r
+extern int palColors[28];\r
+extern int fgColor;\r
+extern int bgColor;\r
+extern HWND hStatusBar;\r
+extern HWND hScrollbox;\r
+extern HWND hMainWnd;\r
+extern HWND hPalWin;\r
+extern HWND hToolSettings;\r
+extern CHOOSECOLOR choosecolor;\r
+extern OPENFILENAME ofn;\r
+extern OPENFILENAME sfn;\r
+extern HICON hNontranspIcon;\r
+extern HICON hTranspIcon;\r
+\r
+extern HCURSOR hCurFill;\r
+extern HCURSOR hCurColor;\r
+extern HCURSOR hCurZoom;\r
+extern HCURSOR hCurPen;\r
+extern HCURSOR hCurAirbrush;\r
+\r
+extern HWND hScrlClient;\r
+\r
+extern HWND hToolBtn[16];\r
+\r
+extern HINSTANCE hProgInstance;\r
+    \r
+extern char filename[256];\r
+extern char filepathname[1000];\r
+extern BOOL isAFile;\r
diff --git a/reactos/base/applications/paint/help/Paint.chm b/reactos/base/applications/paint/help/Paint.chm
new file mode 100755 (executable)
index 0000000..da3e902
Binary files /dev/null and b/reactos/base/applications/paint/help/Paint.chm differ
diff --git a/reactos/base/applications/paint/help/Paint.hhp b/reactos/base/applications/paint/help/Paint.hhp
new file mode 100755 (executable)
index 0000000..8dbf4c3
--- /dev/null
@@ -0,0 +1,15 @@
+[OPTIONS]\r
+Compatibility=1.1 or later\r
+Compiled file=Paint.chm\r
+Contents file=Table of Contents.hhc\r
+Default topic=usage.html\r
+Display compile progress=No\r
+Language=0x407 Deutsch (Deutschland)\r
+Title=Hilfe zu Paint für ReactOS\r
+\r
+\r
+[FILES]\r
+tools.html\r
+\r
+[INFOTYPES]\r
+\r
diff --git a/reactos/base/applications/paint/help/Table of Contents.hhc b/reactos/base/applications/paint/help/Table of Contents.hhc
new file mode 100755 (executable)
index 0000000..01f942b
--- /dev/null
@@ -0,0 +1,24 @@
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">\r
+<HTML>\r
+<HEAD>\r
+<meta name="GENERATOR" content="Microsoft&reg; HTML Help Workshop 4.1">\r
+<!-- Sitemap 1.0 -->\r
+</HEAD><BODY>\r
+<OBJECT type="text/site properties">\r
+       <param name="ImageType" value="Folder">\r
+</OBJECT>\r
+<UL>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Name" value="Benutzung von Paint">\r
+               <param name="Local" value="usage.html">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Name" value="Werkzeuge in Paint">\r
+               <param name="Local" value="tools.html">\r
+               </OBJECT>\r
+       <LI> <OBJECT type="text/sitemap">\r
+               <param name="Name" value="Werkzeugeinstellungen">\r
+               <param name="Local" value="settings.html">\r
+               </OBJECT>\r
+</UL>\r
+</BODY></HTML>\r
diff --git a/reactos/base/applications/paint/help/airbrush.png b/reactos/base/applications/paint/help/airbrush.png
new file mode 100755 (executable)
index 0000000..86aaf3f
Binary files /dev/null and b/reactos/base/applications/paint/help/airbrush.png differ
diff --git a/reactos/base/applications/paint/help/appwindow.png b/reactos/base/applications/paint/help/appwindow.png
new file mode 100755 (executable)
index 0000000..3552f59
Binary files /dev/null and b/reactos/base/applications/paint/help/appwindow.png differ
diff --git a/reactos/base/applications/paint/help/bezier.png b/reactos/base/applications/paint/help/bezier.png
new file mode 100755 (executable)
index 0000000..d313076
Binary files /dev/null and b/reactos/base/applications/paint/help/bezier.png differ
diff --git a/reactos/base/applications/paint/help/brush.png b/reactos/base/applications/paint/help/brush.png
new file mode 100755 (executable)
index 0000000..470d8d7
Binary files /dev/null and b/reactos/base/applications/paint/help/brush.png differ
diff --git a/reactos/base/applications/paint/help/color.png b/reactos/base/applications/paint/help/color.png
new file mode 100755 (executable)
index 0000000..80aed07
Binary files /dev/null and b/reactos/base/applications/paint/help/color.png differ
diff --git a/reactos/base/applications/paint/help/ellipse.png b/reactos/base/applications/paint/help/ellipse.png
new file mode 100755 (executable)
index 0000000..f2c8921
Binary files /dev/null and b/reactos/base/applications/paint/help/ellipse.png differ
diff --git a/reactos/base/applications/paint/help/fill.png b/reactos/base/applications/paint/help/fill.png
new file mode 100755 (executable)
index 0000000..1da4f22
Binary files /dev/null and b/reactos/base/applications/paint/help/fill.png differ
diff --git a/reactos/base/applications/paint/help/freesel.png b/reactos/base/applications/paint/help/freesel.png
new file mode 100755 (executable)
index 0000000..695ba90
Binary files /dev/null and b/reactos/base/applications/paint/help/freesel.png differ
diff --git a/reactos/base/applications/paint/help/line.png b/reactos/base/applications/paint/help/line.png
new file mode 100755 (executable)
index 0000000..bc53d8e
Binary files /dev/null and b/reactos/base/applications/paint/help/line.png differ
diff --git a/reactos/base/applications/paint/help/palette.png b/reactos/base/applications/paint/help/palette.png
new file mode 100755 (executable)
index 0000000..cfa07bd
Binary files /dev/null and b/reactos/base/applications/paint/help/palette.png differ
diff --git a/reactos/base/applications/paint/help/pen.png b/reactos/base/applications/paint/help/pen.png
new file mode 100755 (executable)
index 0000000..70c2127
Binary files /dev/null and b/reactos/base/applications/paint/help/pen.png differ
diff --git a/reactos/base/applications/paint/help/rect.png b/reactos/base/applications/paint/help/rect.png
new file mode 100755 (executable)
index 0000000..b3e4c02
Binary files /dev/null and b/reactos/base/applications/paint/help/rect.png differ
diff --git a/reactos/base/applications/paint/help/rectsel.png b/reactos/base/applications/paint/help/rectsel.png
new file mode 100755 (executable)
index 0000000..72eb64d
Binary files /dev/null and b/reactos/base/applications/paint/help/rectsel.png differ
diff --git a/reactos/base/applications/paint/help/rrect.png b/reactos/base/applications/paint/help/rrect.png
new file mode 100755 (executable)
index 0000000..c1c2789
Binary files /dev/null and b/reactos/base/applications/paint/help/rrect.png differ
diff --git a/reactos/base/applications/paint/help/rubber.png b/reactos/base/applications/paint/help/rubber.png
new file mode 100755 (executable)
index 0000000..9f123ed
Binary files /dev/null and b/reactos/base/applications/paint/help/rubber.png differ
diff --git a/reactos/base/applications/paint/help/settings.html b/reactos/base/applications/paint/help/settings.html
new file mode 100755 (executable)
index 0000000..96e3250
--- /dev/null
@@ -0,0 +1,46 @@
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">\r
+<HTML>\r
+<HEAD>\r
+<meta name="GENERATOR" content="Microsoft&reg; HTML Help Workshop 4.1">\r
+<Title>Werkzeugeinstellungen</Title>\r
+<style type="text/css">\r
+table { width:100%; }\r
+body { font-family:sans-serif; font-size:12px; }\r
+h1 { color:#4080c0; font-family:sans-serif; font-size:16px; font-style:bold; }\r
+th { background-color:#4080c0; color:#ffffff; font-size:14px; font-style:bold; padding:5px; border-width:1px; border-color:#004080; border-style:solid; }\r
+td { background-color:#f0f0f0; font-size:12px; padding:5px; border-width:1px; border-color:#004080; border-style:solid; }\r
+</style>\r
+</HEAD>\r
+<BODY>\r
+\r
+<h1>Werkzeugeinstellungen</h1>\r
+<p>\r
+Im Kapitel <a href="tools.html">Werkzeuge in Paint</a> wurden die Werkzeuge, die Ihnen in <b>Paint für ReactOS</b> zur Verfügung stehen, kurz vorgestellt. Einige von ihnen erlauben weitere Einstellungen, um z.B. Liniendicke, Pinselart u.Ä. genauer steuern zu können.\r
+</p>\r
+<table>\r
+\r
+<tr><th>Option</th>\r
+<th>Beschreibung</th></tr>\r
+\r
+<tr><td><img src="settings1.png" alt=""></td>\r
+<td><b>Transparenz</b> - Die obere Einstellung steht für <i>nicht transparent</i>, die untere steht für <i>transparent</i>. Bei den Auswahlwerkzeugen bewirkt die transparente Einstellung, dass Stelen in der Auswahl, die der Hintergrundfarbe entsprechen, nicht gezeichnet werden. Das Bild dahinter scheint daher durch.<br>Beim Textwerkzeug wird standardmäßig ein Rechteck in der Hintergrundfarbe unter den Text gelegt. Bei der transparenten Einstellung hingegen wird der Text direkt auf das Bild geschrieben.</td></tr>\r
+\r
+<tr><td><img src="settings2.png" alt=""></td>\r
+<td><b>Radiererbreite</b> - Lässt Sie die Breite des Radierwerkzeuges wählen. Die Kästchen entsprechen 4, 6, 8 und 10 Pixeln.</td></tr>\r
+\r
+<tr><td><img src="settings3.png" alt=""></td>\r
+<td><b>Pinselstil</b> - Wählen Sie eine der abgebildeten Pinselformen. Das Pinselwerkzeug zeichnet von nun an mit der gewählten Form.</td></tr>\r
+\r
+<tr><td><img src="settings4.png" alt=""></td>\r
+<td><b>Sprühradius</b> - Wählen Sie in dem Feld den Sprühradius aus, den Sie fortan mit der Sprühdose verwenden möchten.</td></tr>\r
+\r
+<tr><td><img src="settings5.png" alt=""></td>\r
+<td><b>Linienbreite</b> - Aus diesem Feld können Sie per Mausklick eine Linienbreite zwischen 1 und 5 Pixeln auswählen. Diese Einstellung beeinflusst die Werkzeuge <i>Linie</i>, <i>Bezier-Kurve</i>, <i>Rechteck</i>, <i>Polygon</i>, <i>Ellipse</i> und <i>abgerundetes Rechteck</i>.</td></tr>\r
+\r
+<tr><td><img src="settings6.png" alt=""></td>\r
+<td><b>Füllart</b> - Aus diesem Feld können Sie eine von drei Füllarten auswahlen. Bei der ersten Einstellung wird nur der Rahmen gezeichnet. Die zweite Einstellung füllt zudem den Innenraum der Form mit der aktuellen Hintergrundfarbe. Die dritte Einstellung zeichnet eine ausgefüllte Form in der Vordergrundfarbe ohne Rahmen. Diese Einstellungen wirken sich auf das <i>Rechteck</i>, das <i>Polygon</i>, die <i>Ellipse</i> und das <i>abgerundete Rechteck</i> aus.</td></tr>\r
+\r
+</table>\r
+\r
+</BODY>\r
+</HTML>\r
diff --git a/reactos/base/applications/paint/help/settings1.png b/reactos/base/applications/paint/help/settings1.png
new file mode 100755 (executable)
index 0000000..ee79d45
Binary files /dev/null and b/reactos/base/applications/paint/help/settings1.png differ
diff --git a/reactos/base/applications/paint/help/settings2.png b/reactos/base/applications/paint/help/settings2.png
new file mode 100755 (executable)
index 0000000..35ccaa6
Binary files /dev/null and b/reactos/base/applications/paint/help/settings2.png differ
diff --git a/reactos/base/applications/paint/help/settings3.png b/reactos/base/applications/paint/help/settings3.png
new file mode 100755 (executable)
index 0000000..238ead2
Binary files /dev/null and b/reactos/base/applications/paint/help/settings3.png differ
diff --git a/reactos/base/applications/paint/help/settings4.png b/reactos/base/applications/paint/help/settings4.png
new file mode 100755 (executable)
index 0000000..a90613e
Binary files /dev/null and b/reactos/base/applications/paint/help/settings4.png differ
diff --git a/reactos/base/applications/paint/help/settings5.png b/reactos/base/applications/paint/help/settings5.png
new file mode 100755 (executable)
index 0000000..8a7e33a
Binary files /dev/null and b/reactos/base/applications/paint/help/settings5.png differ
diff --git a/reactos/base/applications/paint/help/settings6.png b/reactos/base/applications/paint/help/settings6.png
new file mode 100755 (executable)
index 0000000..564d3cf
Binary files /dev/null and b/reactos/base/applications/paint/help/settings6.png differ
diff --git a/reactos/base/applications/paint/help/shape.png b/reactos/base/applications/paint/help/shape.png
new file mode 100755 (executable)
index 0000000..5535e1d
Binary files /dev/null and b/reactos/base/applications/paint/help/shape.png differ
diff --git a/reactos/base/applications/paint/help/text.png b/reactos/base/applications/paint/help/text.png
new file mode 100755 (executable)
index 0000000..bef563a
Binary files /dev/null and b/reactos/base/applications/paint/help/text.png differ
diff --git a/reactos/base/applications/paint/help/toolbox.png b/reactos/base/applications/paint/help/toolbox.png
new file mode 100755 (executable)
index 0000000..287bd39
Binary files /dev/null and b/reactos/base/applications/paint/help/toolbox.png differ
diff --git a/reactos/base/applications/paint/help/tools.html b/reactos/base/applications/paint/help/tools.html
new file mode 100755 (executable)
index 0000000..5acd8f6
--- /dev/null
@@ -0,0 +1,104 @@
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">\r
+<HTML>\r
+<HEAD>\r
+<meta name="GENERATOR" content="Microsoft&reg; HTML Help Workshop 4.1">\r
+<Title>Werkzeuge in Paint</Title>\r
+<style type="text/css">\r
+table { width:100%; }\r
+body { font-family:sans-serif; font-size:12px; }\r
+h1 { color:#4080c0; font-family:sans-serif; font-size:16px; font-style:bold; }\r
+th { background-color:#4080c0; color:#ffffff; font-size:14px; font-style:bold; padding:5px; border-width:1px; border-color:#004080; border-style:solid; }\r
+td { background-color:#f0f0f0; font-size:12px; padding:5px; border-width:1px; border-color:#004080; border-style:solid; }\r
+</style>\r
+</HEAD>\r
+<BODY>\r
+\r
+<h1>Werkzeuge in Paint</h1>\r
+<p>\r
+<b>Paint für ReactOS</b> stellt ihnen zum Bearbeiten ihrer Bilder zahlreiche <i>Werkzeuge</i> zur Verfügung. Um eines der \r
+\r
+Werkzeuge auszuwählen, klicken Sie bitte auf das entsprechende Symbol im <i>Werkzeugkasten</i>, der sich üblicherweise \r
+\r
+auf der linken Seite des Fensters befindet. Es folgt eine Auflistung der Ihnen zur Verfügung stehenden \r
+\r
+Werkzeuge mit jeweils einer kurzen Beschreibung.\r
+</p>\r
+<table>\r
+\r
+<tr><th>Werkzeug</th>\r
+<th>Beschreibung</th></tr>\r
+\r
+<tr><td align="center"><img src="freesel.png" alt=""></td>\r
+<td>Die <i>freie Auswahl</i> ermöglicht es Ihnen, einen beliebigen Bereich des Bildes auszuwählen. Drücken Sie \r
+\r
+dazu im Bild die linke Maustaste und umfahren Sie mit der gedrückten Maustaste den Bereich, den Sie auswählen \r
+\r
+möchten. Wenn Sie die Maustaste nun loslassen wird der Bereich automatisch in eine geschlossene Auswahl \r
+\r
+umgewandelt.</td></tr>\r
+\r
+<tr><td align="center"><img src="rectsel.png" alt=""></td>\r
+<td>Die <i>rechteckige Auswahl</i> ermöglicht es Ihnen, im Bild einen beliebigen rechteckigen Bereich \r
+\r
+auszuwählen. Drücken Sie dazu im Bild die linke Maustaste und ziehen Sie die Maus zur diagonal \r
+\r
+gegenüberliegenden Seite des gewünschten Rechtecks. Wenn Sie die Maustaste loslassen, erscheint sie soeben \r
+\r
+erstellte Auswahl.</td></tr>\r
+\r
+<tr><td align="center"><img src="rubber.png" alt=""></td>\r
+<td>Der <i>Radierer</i> erlaubt es Ihnen, mit der Hintergrundfarbe zu Malen, um Teile des Bildes zu löschen. \r
+\r
+Möchten Sie das gesamte Bild löschen, verwenden Sie bitte den Menüeintrag <i>Bild löschen</i> im Menü \r
+\r
+<i>Bild</i>.*</td></tr>\r
+\r
+<tr><td align="center"><img src="fill.png" alt=""></td>\r
+<td>Mit dem <i>Füllwerkzeug</i> können Sie einfarbige Flächen einfärben. Klicken Sie dazu an eine beliebige Stelle in der Fläche.*</td></tr>\r
+\r
+<tr><td align="center"><img src="color.png" alt=""></td>\r
+<td>Die <i>Pipette</i> lässt Sie die Farbe an einer bestimmten Position im Bild aufnehmen. Klicken Sie dazu an die Stelle im Bild. Wenn Sie die Maustaste loslassen, wird die aktuelle Vorder-/Hintergrundfarbe auf die Farbe des angeklickten Pixels gesetzt.*</td></tr>\r
+\r
+<tr><td align="center"><img src="zoom.png" alt=""></td>\r
+<td>Mit dem <i>Vergrößerungswerkzeug</i> können Sie die Ansicht des Bildes vergrößern (Linksklick) und verkleinern (Rechtsklick).</td></tr>\r
+\r
+<tr><td align="center"><img src="pen.png" alt=""></td>\r
+<td>Der <i>Stift</i> zeichnet einen dünnen Strich entlang der Linie, die Sie bei gedrückter Maustaste mit der Maus fahren. Mit der jeweils anderen Maustaste können Sie den Zeichenvorgang jederzeit Abbrechen und das Bild zurücksetzen.*</td></tr>\r
+\r
+<tr><td align="center"><img src="brush.png" alt=""></td>\r
+<td>Der <i>Pinsel</i> erweitert den Stift um die Möglichkeit, Zeichendicke und Zeichenform auszuwählen. Nähere Informationen hierzu entnehmen Sie bitte dem Kapitel <a href="settings.html">Werkzeugeinstellungen</a>.*</td></tr>\r
+\r
+<tr><td align="center"><img src="airbrush.png" alt=""></td>\r
+<td>Die <i>Sprühdose</i> kann verwendet werden, um weit gestreute Linien zu zeichnen. Die Dichte der Linie ist dabei von der Geschwindigkeit abhängig mit der Sie die Maus bewegen.*</td></tr>\r
+\r
+<tr><td align="center"><img src="text.png" alt=""></td>\r
+<td><i>Textwerkzeug</i></td></tr>\r
+\r
+<tr><td align="center"><img src="line.png" alt=""></td>\r
+<td>Eine gerade <i>Linie</i> zeichnen Sie, indem Sie zunächst die linke Maustaste drücken, mit gedrückter Maustaste zum Zielpunkt fahren und dort die Maustaste wieder loslassen.*</td></tr>\r
+\r
+<tr><td align="center"><img src="bezier.png" alt=""></td>\r
+<td><i>Bezier-Kurve</i>*</td></tr>\r
+\r
+<tr><td align="center"><img src="rect.png" alt=""></td>\r
+<td>Um ein <i>Rechteck</i> zu zeichnen, Drücken Sie die linke Maustaste. Fahren Sie mit der Maus bei gedrückter Maustaste in die diagonal gegenüberliegende Ecke und lassen Sie die Maustaste los.*</td></tr>\r
+\r
+<tr><td align="center"><img src="shape.png" alt=""></td>\r
+<td><i>Polygon</i>*</td></tr>\r
+\r
+<tr><td align="center"><img src="ellipse.png" alt=""></td>\r
+<td>Eine <i>Ellipse</i> zeichnen Sie, indem Sie mit der Maus, wie unter <i>Rechteck</i> beschrieben, die Diagonale des Außenrechtecks der Ellipse ziehen.*</td></tr>\r
+\r
+<tr><td align="center"><img src="rrect.png" alt=""></td>\r
+<td>Das <i>abgerundete Rechteck</i> verhält sich wie das Rechteck. Sie ziehen mit der Maus die Diagonale des Rechtecks, das Sie zeichnen möchten.*</td></tr>\r
+\r
+</table>\r
+<p>\r
+* Dieses Wekzeug kann auch mit der rechten Maustaste verwendet werden. Vorder- und Hintergrundfarbe werden in diesem Fall vertauscht verwendet.\r
+</p>\r
+<p>\r
+Viele Werkzeuge erlauben daruber hinaus weitere Einstellungen. Eine Liste dieser Einstellungsmöglichkeiten entnehmen Sie bitte dem Kapitel <a href="settings.html">Werkzeugeinstellungen</a>.\r
+</p>\r
+\r
+</BODY>\r
+</HTML>\r
diff --git a/reactos/base/applications/paint/help/usage.html b/reactos/base/applications/paint/help/usage.html
new file mode 100755 (executable)
index 0000000..2675144
--- /dev/null
@@ -0,0 +1,38 @@
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">\r
+<HTML>\r
+<HEAD>\r
+<meta name="GENERATOR" content="Microsoft&reg; HTML Help Workshop 4.1">\r
+<Title>Benutzung von Paint</Title>\r
+<style type="text/css">\r
+table { width:100%; }\r
+body { font-family:sans-serif; font-size:12px; }\r
+h1 { color:#4080c0; font-family:sans-serif; font-size:16px; font-style:bold; }\r
+th { background-color:#4080c0; color:#ffffff; font-size:14px; font-style:bold; padding:5px; border-width:1px; border-color:#004080; border-style:solid; }\r
+td { background-color:#f0f0f0; font-size:12px; padding:5px; border-width:1px; border-color:#004080; border-style:solid; }\r
+</style>\r
+</HEAD>\r
+<BODY>\r
+\r
+<h1>Benutzung von Paint</h1>\r
+<p>\r
+Die Hauptbedienelemente von <b>Paint für ReactOS</b> sind die <i>Farbpalette</i>, der <i>Werkzeugkasten</i> und das Feld für die <i>Werkzeugeinstellungen</i>. Diese Bedienelemente können ohne Hilfsmittel wie die Tastaturmaus nicht über die Tastatur, sondern ausschließlich über die Maus bedient werden.\r
+</p>\r
+<p>\r
+Es folgt ein Bildschirmfoto des Hauptfensters, in dem die genannten Elemente rot markiert und beschriftet sind.\r
+</p>\r
+<p><img src="appwindow.png" alt=""></p>\r
+<p><table>\r
+<tr><th>Farbpalette</th></tr>\r
+<tr><td><img src="palette.png" alt=""><br>Über die <b>Farbpalette</b> wählen Sie die zum Malen verwendete Vorder- und Hintergrundfarbe. Klicken Sie mit der linken Maustaste auf eine Farbe in der Palette, wird diese als Vordergrundfarbe gesetzt. Wenn Sie sie mit der rechten Maustaste anklicken, wird sie als Hintergrundfarbe gesetzt. Sie können die Farbe an der entsprechenden Stelle in der Palette verändern, indem Sie mit der linken oder rechten Maustaste doppelt klicken.</td></tr>\r
+</table></p>\r
+<p><table>\r
+<tr><th colspan="2">Werkzeugkasten</th></tr>\r
+<tr><td><img src="toolbox.png" alt=""></td><td>Über den <b>Werkzeugkasten</b> können Sie durch anklicken Ihr Malwerkzeug auswählen. Eine Übersicht über die vorhandenen Werkzeuge finden Sie im Kapitel <a href="tools.html">Werkzeuge in Paint</a>. Jedes Werkzeug bringt seine eigenen <i>Werkzeugeinstellungen</i> mit sich.</td></tr>\r
+</table></p>\r
+<p><table>\r
+<tr><th colspan="2">Werkzeugeinstellungen</th></tr>\r
+<tr><td><img src="settings1.png" alt=""></td><td>Viele Werkzeuge erlauben es Ihnen, erweiterte Einstellungen vorzunehmen. Hierzu verwenden Sie das Feld unter dem <i>Werkzeugkasten</i>. Eine Liste aller möglichen Einstellungen aller Werkzeuge finden Sie im Kapitel <a href="settings.html">Werkzeugeinstellungen</a>.</td></tr>\r
+</table></p>\r
+\r
+</BODY>\r
+</HTML>\r
diff --git a/reactos/base/applications/paint/help/zoom.png b/reactos/base/applications/paint/help/zoom.png
new file mode 100755 (executable)
index 0000000..6233ae0
Binary files /dev/null and b/reactos/base/applications/paint/help/zoom.png differ
diff --git a/reactos/base/applications/paint/history.c b/reactos/base/applications/paint/history.c
new file mode 100755 (executable)
index 0000000..f64d34f
--- /dev/null
@@ -0,0 +1,111 @@
+/*\r
+ * PROJECT:     PAINT for ReactOS\r
+ * LICENSE:     LGPL\r
+ * FILE:        history.c\r
+ * PURPOSE:     Undo and redo functionality\r
+ * PROGRAMMERS: Benedikt Freisen\r
+ */\r
+\r
+/* INCLUDES *********************************************************/\r
+\r
+#include <windows.h>\r
+#include "globalvar.h"\r
+#include "dib.h"\r
+#include "definitions.h"\r
+\r
+/* FUNCTIONS ********************************************************/\r
+\r
+void setImgXYRes(int x, int y)\r
+{\r
+    if ((imgXRes!=x)||(imgYRes!=y))\r
+    {\r
+        imgXRes = x;\r
+        imgYRes = y;\r
+        updateCanvasAndScrollbars();\r
+    }\r
+}\r
+\r
+void newReversible()\r
+{\r
+    DeleteObject(hBms[(currInd+1)%4]);\r
+    hBms[(currInd+1)%4] = CopyImage( hBms[currInd], IMAGE_BITMAP, 0, 0, LR_COPYRETURNORG);\r
+    currInd = (currInd+1)%4;\r
+    if (undoSteps<3) undoSteps++;\r
+    redoSteps = 0;\r
+    SelectObject(hDrawingDC, hBms[currInd]);\r
+    imgXRes = GetDIBWidth(hBms[currInd]);\r
+    imgYRes = GetDIBHeight(hBms[currInd]);\r
+}\r
+\r
+void undo()\r
+{\r
+    if (undoSteps>0)\r
+    {\r
+        ShowWindow(hSelection, SW_HIDE);\r
+        currInd = (currInd+3)%4;\r
+        SelectObject(hDrawingDC, hBms[currInd]);\r
+        undoSteps--;\r
+        if (redoSteps<3) redoSteps++;\r
+        setImgXYRes(GetDIBWidth(hBms[currInd]), GetDIBHeight(hBms[currInd]));\r
+    }\r
+}\r
+\r
+void redo()\r
+{\r
+    if (redoSteps>0)\r
+    {\r
+        ShowWindow(hSelection, SW_HIDE);\r
+        currInd = (currInd+1)%4;\r
+        SelectObject(hDrawingDC, hBms[currInd]);\r
+        redoSteps--;\r
+        if (undoSteps<3) undoSteps++;\r
+        setImgXYRes(GetDIBWidth(hBms[currInd]), GetDIBHeight(hBms[currInd]));\r
+    }\r
+}\r
+\r
+void resetToU1()\r
+{\r
+    DeleteObject(hBms[currInd]);\r
+    hBms[currInd] = CopyImage( hBms[(currInd+3)%4], IMAGE_BITMAP, 0, 0, LR_COPYRETURNORG);\r
+    SelectObject(hDrawingDC, hBms[currInd]);\r
+    imgXRes = GetDIBWidth(hBms[currInd]);\r
+    imgYRes = GetDIBHeight(hBms[currInd]);\r
+}\r
+\r
+void clearHistory()\r
+{\r
+    undoSteps = 0;\r
+    redoSteps = 0;\r
+}\r
+\r
+void insertReversible(HBITMAP hbm)\r
+{\r
+    DeleteObject(hBms[(currInd+1)%4]);\r
+    hBms[(currInd+1)%4] = hbm;\r
+    currInd = (currInd+1)%4;\r
+    if (undoSteps<3) undoSteps++;\r
+    redoSteps = 0;\r
+    SelectObject(hDrawingDC, hBms[currInd]);\r
+    setImgXYRes(GetDIBWidth(hBms[currInd]), GetDIBHeight(hBms[currInd]));\r
+}\r
+\r
+void cropReversible(int x, int y)\r
+{\r
+    SelectObject(hDrawingDC, hBms[currInd]);\r
+    DeleteObject(hBms[(currInd+1)%4]);\r
+    hBms[(currInd+1)%4] = CreateDIBWithProperties(x, y);\r
+    currInd = (currInd+1)%4;\r
+    if (undoSteps<3) undoSteps++;\r
+    redoSteps = 0;\r
+    \r
+    HBITMAP oldBitmap = SelectObject(hSelDC, hBms[currInd]);\r
+    HPEN oldPen = SelectObject(hSelDC, CreatePen(PS_SOLID, 1, bgColor));\r
+    HBRUSH oldBrush = SelectObject(hSelDC, CreateSolidBrush(bgColor));\r
+    Rectangle(hSelDC, 0, 0, x, y);\r
+    DeleteObject(SelectObject(hSelDC, oldBrush));\r
+    DeleteObject(SelectObject(hSelDC, oldPen));\r
+    BitBlt(hDrawingDC, 0, 0, imgXRes, imgYRes, hSelDC, 0, 0, SRCCOPY);\r
+    SelectObject(hDrawingDC, SelectObject(hSelDC, oldBitmap));\r
+    \r
+    setImgXYRes(x, y);\r
+}\r
diff --git a/reactos/base/applications/paint/history.h b/reactos/base/applications/paint/history.h
new file mode 100755 (executable)
index 0000000..e82fc36
--- /dev/null
@@ -0,0 +1,21 @@
+/*\r
+ * PROJECT:     PAINT for ReactOS\r
+ * LICENSE:     LGPL\r
+ * FILE:        history.h\r
+ * PURPOSE:     Undo and redo functionality\r
+ * PROGRAMMERS: Benedikt Freisen\r
+ */\r
+\r
+void newReversible();\r
+\r
+void undo();\r
+\r
+void redo();\r
+\r
+void resetToU1();\r
+\r
+void clearHistory();\r
+\r
+void insertReversible();\r
+\r
+void cropReversible(int x, int y);\r
diff --git a/reactos/base/applications/paint/icons.rc b/reactos/base/applications/paint/icons.rc
new file mode 100755 (executable)
index 0000000..5d0e1f0
--- /dev/null
@@ -0,0 +1,15 @@
+IDI_APPICON     ICON MOVEABLE PURE LOADONCALL DISCARDABLE "icons/paint.ico"\r
+\r
+IDB_TOOLBARICONS    BITMAP "icons/iconbar.bmp"\r
+\r
+IDI_TRANSPARENT     ICON "icons/transparent.ico"\r
+IDI_NONTRANSPARENT  ICON "icons/nontransparent.ico"\r
+\r
+IDC_FILL        ICON "icons/fill_cur.ico"\r
+IDC_COLOR       ICON "icons/color_cur.ico"\r
+IDC_ZOOM        ICON "icons/zoom_cur.ico"\r
+IDC_PEN         ICON "icons/pen_cur.ico"\r
+IDC_AIRBRUSH    ICON "icons/airbrush_cur.ico"\r
+\r
+IDI_HORZSTRETCH ICON "icons/horzstretch.ico"\r
+IDI_VERTSTRETCH ICON "icons/vertstretch.ico"\r
diff --git a/reactos/base/applications/paint/icons/airbrush_cur.ico b/reactos/base/applications/paint/icons/airbrush_cur.ico
new file mode 100755 (executable)
index 0000000..aa1a09c
Binary files /dev/null and b/reactos/base/applications/paint/icons/airbrush_cur.ico differ
diff --git a/reactos/base/applications/paint/icons/color_cur.ico b/reactos/base/applications/paint/icons/color_cur.ico
new file mode 100755 (executable)
index 0000000..49d536d
Binary files /dev/null and b/reactos/base/applications/paint/icons/color_cur.ico differ
diff --git a/reactos/base/applications/paint/icons/fill_cur.ico b/reactos/base/applications/paint/icons/fill_cur.ico
new file mode 100755 (executable)
index 0000000..fa2679f
Binary files /dev/null and b/reactos/base/applications/paint/icons/fill_cur.ico differ
diff --git a/reactos/base/applications/paint/icons/horzstretch.ico b/reactos/base/applications/paint/icons/horzstretch.ico
new file mode 100755 (executable)
index 0000000..9704517
Binary files /dev/null and b/reactos/base/applications/paint/icons/horzstretch.ico differ
diff --git a/reactos/base/applications/paint/icons/iconbar.bmp b/reactos/base/applications/paint/icons/iconbar.bmp
new file mode 100755 (executable)
index 0000000..402209d
Binary files /dev/null and b/reactos/base/applications/paint/icons/iconbar.bmp differ
diff --git a/reactos/base/applications/paint/icons/nontransparent.ico b/reactos/base/applications/paint/icons/nontransparent.ico
new file mode 100755 (executable)
index 0000000..4b4b045
Binary files /dev/null and b/reactos/base/applications/paint/icons/nontransparent.ico differ
diff --git a/reactos/base/applications/paint/icons/paint.ico b/reactos/base/applications/paint/icons/paint.ico
new file mode 100644 (file)
index 0000000..2d4a0ee
Binary files /dev/null and b/reactos/base/applications/paint/icons/paint.ico differ
diff --git a/reactos/base/applications/paint/icons/paint.svg b/reactos/base/applications/paint/icons/paint.svg
new file mode 100644 (file)
index 0000000..e59302c
--- /dev/null
@@ -0,0 +1,611 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+<svg
+   xmlns:dc="http://purl.org/dc/elements/1.1/"
+   xmlns:cc="http://creativecommons.org/ns#"
+   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+   xmlns:svg="http://www.w3.org/2000/svg"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:xlink="http://www.w3.org/1999/xlink"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   width="48px"
+   height="48px"
+   id="svg4164"
+   sodipodi:version="0.32"
+   inkscape:version="0.46"
+   sodipodi:docname="Zeichnung.svg"
+   inkscape:output_extension="org.inkscape.output.svg.inkscape">
+  <defs
+     id="defs4166">
+    <linearGradient
+       id="linearGradient5241">
+      <stop
+         id="stop5243"
+         offset="0"
+         style="stop-color:#c8c8c8;stop-opacity:1;" />
+      <stop
+         id="stop5245"
+         offset="1"
+         style="stop-color:#5f5f5f;stop-opacity:1;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient5219">
+      <stop
+         id="stop5221"
+         offset="0"
+         style="stop-color:#ffffff;stop-opacity:1;" />
+      <stop
+         id="stop5223"
+         offset="1"
+         style="stop-color:#9d9d9d;stop-opacity:1;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient5205">
+      <stop
+         style="stop-color:#b7b7b7;stop-opacity:1;"
+         offset="0"
+         id="stop5207" />
+      <stop
+         style="stop-color:#2c2c2c;stop-opacity:1;"
+         offset="1"
+         id="stop5209" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient5181">
+      <stop
+         style="stop-color:#a25814;stop-opacity:1;"
+         offset="0"
+         id="stop5183" />
+      <stop
+         id="stop5185"
+         offset="0.51773047"
+         style="stop-color:#e6a04d;stop-opacity:1;" />
+      <stop
+         style="stop-color:#b7741b;stop-opacity:1;"
+         offset="1"
+         id="stop5187" />
+    </linearGradient>
+    <inkscape:perspective
+       sodipodi:type="inkscape:persp3d"
+       inkscape:vp_x="0 : 24 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_z="48 : 24 : 1"
+       inkscape:persp3d-origin="24 : 16 : 1"
+       id="perspective4172" />
+    <linearGradient
+       id="linearGradient5036">
+      <stop
+         id="stop5038"
+         offset="0"
+         style="stop-color:#f5f5f5;stop-opacity:0.09;" />
+      <stop
+         style="stop-color:#ffffff;stop-opacity:0.89999998;"
+         offset="0.2631579"
+         id="stop5044" />
+      <stop
+         id="stop5088"
+         offset="0.74792242"
+         style="stop-color:#c7c7c7;stop-opacity:0.46000001;" />
+      <stop
+         id="stop5040"
+         offset="1"
+         style="stop-color:#ffffff;stop-opacity:0.78039217;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient5048"
+       inkscape:collect="always">
+      <stop
+         id="stop5050"
+         offset="0"
+         style="stop-color:#000000;stop-opacity:1;" />
+      <stop
+         id="stop5052"
+         offset="1"
+         style="stop-color:#000000;stop-opacity:0;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient5058">
+      <stop
+         id="stop5060"
+         offset="0"
+         style="stop-color:#959791;stop-opacity:1;" />
+      <stop
+         style="stop-color:#f8f8f8;stop-opacity:1;"
+         offset="0.5"
+         id="stop5066" />
+      <stop
+         id="stop5062"
+         offset="1"
+         style="stop-color:#8c8c8c;stop-opacity:1;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient5068">
+      <stop
+         id="stop5070"
+         offset="0"
+         style="stop-color:#ffffff;stop-opacity:1;" />
+      <stop
+         style="stop-color:#ffffff;stop-opacity:0.69;"
+         offset="0.32894737"
+         id="stop5078" />
+      <stop
+         style="stop-color:#c2c2c2;stop-opacity:0.34;"
+         offset="0.65789473"
+         id="stop5076" />
+      <stop
+         id="stop5072"
+         offset="1"
+         style="stop-color:#ffffff;stop-opacity:0;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2966">
+      <stop
+         id="stop2968"
+         offset="0"
+         style="stop-color:#ffd1d1;stop-opacity:1;" />
+      <stop
+         style="stop-color:#ff1d1d;stop-opacity:1;"
+         offset="0.5"
+         id="stop3006" />
+      <stop
+         id="stop2970"
+         offset="1"
+         style="stop-color:#6f0000;stop-opacity:1;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2974">
+      <stop
+         id="stop2976"
+         offset="0"
+         style="stop-color:#c1c1c1;stop-opacity:1;" />
+      <stop
+         id="stop2978"
+         offset="1"
+         style="stop-color:#acacac;stop-opacity:1;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2984"
+       inkscape:collect="always">
+      <stop
+         id="stop2986"
+         offset="0"
+         style="stop-color:#e7e2b8;stop-opacity:1;" />
+      <stop
+         id="stop2988"
+         offset="1"
+         style="stop-color:#e7e2b8;stop-opacity:0;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient2994">
+      <stop
+         id="stop2996"
+         offset="0"
+         style="stop-color:#000000;stop-opacity:1;" />
+      <stop
+         id="stop2998"
+         offset="1"
+         style="stop-color:#c9c9c9;stop-opacity:1;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient6395"
+       inkscape:collect="always">
+      <stop
+         id="stop6397"
+         offset="0"
+         style="stop-color:#ffffff;stop-opacity:1;" />
+      <stop
+         id="stop6399"
+         offset="1"
+         style="stop-color:#ffffff;stop-opacity:0;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient9910">
+      <stop
+         id="stop9912"
+         offset="0"
+         style="stop-color:#cf9e72;stop-opacity:1;" />
+      <stop
+         style="stop-color:#dac2a5;stop-opacity:1;"
+         offset="0.31578946"
+         id="stop9918" />
+      <stop
+         id="stop9914"
+         offset="1"
+         style="stop-color:#a47537;stop-opacity:1;" />
+    </linearGradient>
+    <linearGradient
+       id="linearGradient9920">
+      <stop
+         style="stop-color:#5b90c8;stop-opacity:1;"
+         offset="0"
+         id="stop9922" />
+      <stop
+         id="stop9924"
+         offset="0.31578946"
+         style="stop-color:#8fb0d1;stop-opacity:1;" />
+      <stop
+         style="stop-color:#34679d;stop-opacity:1;"
+         offset="1"
+         id="stop9926" />
+    </linearGradient>
+    <inkscape:perspective
+       id="perspective90"
+       inkscape:persp3d-origin="24 : 16 : 1"
+       inkscape:vp_z="48 : 24 : 1"
+       inkscape:vp_y="0 : 1000 : 0"
+       inkscape:vp_x="0 : 24 : 1"
+       sodipodi:type="inkscape:persp3d" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient5048"
+       id="radialGradient4587"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.420168,0,21.88866)"
+       cx="23.25"
+       cy="37.75"
+       fx="23.25"
+       fy="37.75"
+       r="14.875" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient5048"
+       id="radialGradient4589"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1,0,0,0.420168,0,21.88866)"
+       cx="23.25"
+       cy="37.75"
+       fx="23.25"
+       fy="37.75"
+       r="14.875" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient5068"
+       id="linearGradient4591"
+       gradientUnits="userSpaceOnUse"
+       x1="11.75"
+       y1="14.1875"
+       x2="37.625"
+       y2="14.1875" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2966"
+       id="linearGradient4593"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(5.259571e-3,0.999987,0.999987,-5.259571e-3,42.9955,-2.496241)"
+       x1="48.90625"
+       y1="17.376184"
+       x2="50.988335"
+       y2="22.250591" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2974"
+       id="linearGradient4595"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(5.259571e-3,0.999987,0.999987,-5.259571e-3,42.99552,-2.496241)"
+       x1="46"
+       y1="19.8125"
+       x2="47.6875"
+       y2="22.625" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2984"
+       id="radialGradient4597"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(1.53767e-2,2.923527,2.029691,-1.067544e-2,20.39098,-69.72665)"
+       cx="29.053354"
+       cy="27.640751"
+       fx="29.053354"
+       fy="27.640751"
+       r="3.2408545" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient2994"
+       id="linearGradient4599"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(5.259571e-3,0.999987,0.999987,-5.259571e-3,48.6929,-14.14491)"
+       x1="25.71875"
+       y1="31.046875"
+       x2="25.514589"
+       y2="30.703125" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient6395"
+       id="linearGradient4616"
+       gradientUnits="userSpaceOnUse"
+       x1="20.064156"
+       y1="27.140348"
+       x2="20.682873"
+       y2="44.110912"
+       gradientTransform="translate(1.3103102,-0.1756055)" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient5036"
+       id="linearGradient4621"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(1.3103102,5.4493945)"
+       x1="15.375"
+       y1="26.0846"
+       x2="34.250416"
+       y2="26.0846" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient5058"
+       id="linearGradient4623"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(1.3103102,5.4493945)"
+       x1="30.875"
+       y1="19.4596"
+       x2="15.625"
+       y2="19.0846" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient9910"
+       id="linearGradient4635"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(0.4086846,0.7711833,-0.5964296,0.3177383,44.033782,-23.97341)"
+       x1="28.244684"
+       y1="60.445503"
+       x2="28.244684"
+       y2="68.224884" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient5181"
+       id="linearGradient5179"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="matrix(-0.1505486,0.7709305,-0.6691088,-0.1286595,73.066406,3.8421113)"
+       x1="28.244684"
+       y1="60.445503"
+       x2="28.244684"
+       y2="68.224884"
+       spreadMethod="pad" />
+    <radialGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient5205"
+       id="radialGradient5203"
+       cx="8.7850113"
+       cy="4.2393656"
+       fx="8.7850113"
+       fy="4.2393656"
+       r="4.8153415"
+       gradientTransform="matrix(1,0,0,0.843955,0,0.6615318)"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient5219"
+       id="linearGradient5217"
+       x1="26.320396"
+       y1="3.1035335"
+       x2="31.056053"
+       y2="3.1035335"
+       gradientUnits="userSpaceOnUse"
+       gradientTransform="translate(4.3466981e-2,-0.4434378)" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient5219"
+       id="linearGradient5231"
+       x1="5.1859436"
+       y1="12.967629"
+       x2="10.163419"
+       y2="12.967629"
+       gradientUnits="userSpaceOnUse" />
+    <linearGradient
+       inkscape:collect="always"
+       xlink:href="#linearGradient5241"
+       id="linearGradient5239"
+       x1="26.363861"
+       y1="2.6600959"
+       x2="31.09952"
+       y2="2.6600959"
+       gradientUnits="userSpaceOnUse" />
+  </defs>
+  <sodipodi:namedview
+     id="base"
+     pagecolor="#ffffff"
+     bordercolor="#666666"
+     borderopacity="1.0"
+     inkscape:pageopacity="0.0"
+     inkscape:pageshadow="2"
+     inkscape:zoom="1"
+     inkscape:cx="24"
+     inkscape:cy="41.351953"
+     inkscape:current-layer="layer1"
+     showgrid="true"
+     inkscape:grid-bbox="true"
+     inkscape:document-units="px"
+     inkscape:window-width="1680"
+     inkscape:window-height="990"
+     inkscape:window-x="-5"
+     inkscape:window-y="-3" />
+  <metadata
+     id="metadata4169">
+    <rdf:RDF>
+      <cc:Work
+         rdf:about="">
+        <dc:format>image/svg+xml</dc:format>
+        <dc:type
+           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+      </cc:Work>
+    </rdf:RDF>
+  </metadata>
+  <g
+     id="layer1"
+     inkscape:label="Layer 1"
+     inkscape:groupmode="layer">
+    <path
+       sodipodi:type="arc"
+       style="opacity:0.31868131;fill:url(#radialGradient4587);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+       id="path5046"
+       sodipodi:cx="23.25"
+       sodipodi:cy="37.75"
+       sodipodi:rx="14.375"
+       sodipodi:ry="5.75"
+       d="M 37.625,37.75 A 14.375,5.75 0 1 1 8.875,37.75 A 14.375,5.75 0 1 1 37.625,37.75 z"
+       inkscape:r_cx="true"
+       inkscape:r_cy="true"
+       transform="translate(2.3103102,3.8243945)" />
+    <path
+       sodipodi:type="arc"
+       style="opacity:0.6978022;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+       id="path5056"
+       sodipodi:cx="24.9375"
+       sodipodi:cy="36.8125"
+       sodipodi:rx="8.5625"
+       sodipodi:ry="2.9375"
+       d="M 33.5,36.8125 A 8.5625,2.9375 0 1 1 16.375,36.8125 A 8.5625,2.9375 0 1 1 33.5,36.8125 z"
+       inkscape:r_cx="true"
+       inkscape:r_cy="true"
+       transform="translate(1.1853102,4.5743945)" />
+    <path
+       transform="matrix(0.573913,0,0,0.573913,12.21683,19.409174)"
+       inkscape:r_cy="true"
+       inkscape:r_cx="true"
+       d="M 37.625,37.75 A 14.375,5.75 0 1 1 8.875,37.75 A 14.375,5.75 0 1 1 37.625,37.75 z"
+       sodipodi:ry="5.75"
+       sodipodi:rx="14.375"
+       sodipodi:cy="37.75"
+       sodipodi:cx="23.25"
+       id="path6351"
+       style="opacity:0.78571424;fill:url(#radialGradient4589);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+       sodipodi:type="arc" />
+    <path
+       sodipodi:type="arc"
+       style="fill:url(#linearGradient4591);fill-opacity:1;fill-rule:evenodd;stroke:#8c8c8c;stroke-width:0.99749684;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+       id="path5030"
+       sodipodi:cx="24.6875"
+       sodipodi:cy="14.1875"
+       sodipodi:rx="12.4375"
+       sodipodi:ry="5.6875"
+       d="M 37.125,14.1875 A 12.4375,5.6875 0 1 1 12.25,14.1875 A 12.4375,5.6875 0 1 1 37.125,14.1875 z"
+       inkscape:r_cx="true"
+       inkscape:r_cy="true"
+       transform="matrix(1.005025,0,0,1,1.1237522,5.4493945)" />
+    <path
+       style="fill:url(#linearGradient5179);fill-opacity:1.0;fill-rule:evenodd;stroke:#934000;stroke-width:0.84087049999999985;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+       d="M 27.998875,20.463257 C 28.827792,15.942734 29.36196,11.813387 29.580744,8.6536723 L 25.969813,7.9593452 C 24.85854,11.352558 23.668827,16.033107 22.653743,21.231155 C 20.821442,30.614013 20.164186,38.623422 20.968883,40.602719 C 20.994324,40.662629 21.028765,40.742605 21.057059,40.790692 C 21.077559,40.823816 21.115292,40.864672 21.137258,40.89162 C 21.17287,40.93274 21.226211,40.976886 21.2656,41.001808 C 21.275564,41.007525 21.298179,41.033853 21.308382,41.038537 C 21.3187,41.042703 21.345969,41.04467 21.356526,41.047794 C 21.361864,41.049096 21.3752,41.051386 21.380601,41.052423 C 21.385997,41.053462 21.39923,41.05628 21.404673,41.057051 C 21.415643,41.058067 21.441675,41.066348 21.452818,41.06631 C 21.464045,41.065747 21.494932,41.049705 21.506329,41.048096 C 21.552244,41.03958 21.618343,41.0184 21.666858,40.993457 C 21.697379,40.976598 21.747759,40.952684 21.779246,40.929556 C 21.823591,40.895438 21.885645,40.834017 21.931798,40.787872 C 23.423311,39.250103 25.828603,31.576813 27.660903,22.193954 C 27.774911,21.610133 27.893996,21.035223 27.998875,20.463257 z"
+       id="path5177"
+       inkscape:r_cx="true"
+       inkscape:r_cy="true" />
+    <g
+       id="g6334"
+       transform="translate(-38.93969,-7.6756055)"
+       inkscape:r_cx="true"
+       inkscape:r_cy="true">
+      <path
+         sodipodi:nodetypes="cccccc"
+         id="path2960"
+         d="M 81.189325,8.8512115 L 75.593983,14.505723 L 60.324794,46.150492 C 59.091904,49.407024 63.727034,51.320174 65.336892,48.436664 L 80.231414,16.856367 L 81.189325,8.8512115 z"
+         style="fill:#cb9022;fill-opacity:1;fill-rule:evenodd;stroke:#5c410c;stroke-width:1.00000083;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+         inkscape:r_cx="true"
+         inkscape:r_cy="true" />
+      <path
+         style="fill:url(#linearGradient4593);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+         d="M 63.226659,41.398 C 63.226659,41.398 63.327968,42.834989 64.580911,43.390907 C 65.871703,43.963619 67.237126,43.376936 67.237126,43.376936 L 64.794871,48.421105 C 64.794871,48.421105 63.921152,49.877754 61.954609,49.092304 C 60.014929,48.317582 60.784239,46.41092 60.784239,46.41092 L 63.226659,41.398 z"
+         id="path2964"
+         sodipodi:nodetypes="czcczcc"
+         inkscape:r_cx="true"
+         inkscape:r_cy="true" />
+      <path
+         sodipodi:nodetypes="czcczcc"
+         id="path2962"
+         d="M 63.226659,41.398 C 63.226659,41.398 63.327968,42.834989 64.580911,43.390907 C 65.871703,43.963619 67.237126,43.376936 67.237126,43.376936 L 66.247658,45.38217 C 66.247658,45.38217 64.933158,46.216127 63.561344,45.615052 C 62.151825,44.997456 62.237191,43.403234 62.237191,43.403234 L 63.226659,41.398 z"
+         style="fill:url(#linearGradient4595);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+         inkscape:r_cx="true"
+         inkscape:r_cy="true" />
+      <path
+         sodipodi:nodetypes="cccc"
+         id="path2982"
+         d="M 80.47809,10.282021 L 76.001816,14.805631 C 76.822195,16.301338 78.170037,17.07551 79.730379,16.661047 L 80.47809,10.282021 z"
+         style="fill:url(#radialGradient4597);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+         inkscape:r_cx="true"
+         inkscape:r_cy="true" />
+      <path
+         sodipodi:nodetypes="cccc"
+         id="path2992"
+         d="M 79.078925,11.63315 L 80.664108,9.9997888 L 80.363939,12.345152 C 79.646349,12.567679 79.300467,12.163243 79.078925,11.63315 z"
+         style="fill:url(#linearGradient4599);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+         inkscape:r_cx="true"
+         inkscape:r_cy="true" />
+      <path
+         sodipodi:nodetypes="ccccc"
+         id="path3002"
+         d="M 75.970567,14.805795 L 77.228768,16.3617 L 64.439998,43.316362 C 63.581628,42.876439 63.348884,42.080316 63.26774,41.419121 L 75.970567,14.805795 z"
+         style="fill:#ffffff;fill-opacity:0.36363639;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+         inkscape:r_cx="true"
+         inkscape:r_cy="true" />
+      <path
+         sodipodi:nodetypes="ccccc"
+         id="path3004"
+         d="M 79.792879,16.660719 L 79.043875,16.852161 L 66.494476,43.620552 C 66.494476,43.620552 67.107516,43.507166 67.242681,43.400734 L 79.792879,16.660719 z"
+         style="fill:#000000;fill-opacity:0.36363639;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+         inkscape:r_cx="true"
+         inkscape:r_cy="true" />
+    </g>
+    <path
+       sodipodi:nodetypes="ccccc"
+       inkscape:r_cy="true"
+       inkscape:r_cx="true"
+       id="path6403"
+       d="M 36.901284,22.160689 L 34.787462,40.493558 C 33.944399,45.27341 18.041167,45.325655 17.083141,40.493558 L 14.880931,22.222503 C 16.988702,27.452913 35.893665,26.677938 36.901284,22.160689 z"
+       style="opacity:0.53846154;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:#ffffff;stroke-width:0.99999958;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible" />
+    <path
+       style="fill:url(#linearGradient4635);fill-opacity:1;fill-rule:evenodd;stroke:#7a5422;stroke-width:0.88272452000000001;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+       d="M 21.023869,19.547427 C 18.586476,15.060057 16.190309,11.10441 14.212267,8.1997613 L 10.993559,9.9144767 C 12.451005,13.597309 14.722487,18.456679 17.478068,23.656432 C 22.452095,33.042366 27.38802,40.471245 29.343649,41.685156 C 29.403667,41.721202 29.484153,41.769013 29.538317,41.792881 C 29.576397,41.808673 29.632836,41.820149 29.667839,41.829596 C 29.722845,41.842665 29.793392,41.846979 29.840277,41.84345 C 29.851739,41.842043 29.886813,41.850531 29.897756,41.848066 C 29.908435,41.845075 29.930517,41.829261 29.940671,41.825204 C 29.945616,41.822909 29.957317,41.816337 29.96213,41.813772 C 29.966941,41.81121 29.978922,41.805165 29.983587,41.80234 C 29.992623,41.796174 30.018051,41.786678 30.026503,41.779479 C 30.034664,41.771766 30.047277,41.737871 30.054857,41.729135 C 30.084012,41.692157 30.119931,41.631125 30.139915,41.578107 C 30.151696,41.543735 30.173798,41.490417 30.182058,41.449938 C 30.192644,41.391576 30.198173,41.297942 30.20197,41.227898 C 30.293135,38.923592 26.915372,30.664626 21.941345,21.278691 C 21.631849,20.694679 21.332264,20.115198 21.023869,19.547427 z"
+       id="path9898"
+       inkscape:r_cx="true"
+       inkscape:r_cy="true" />
+    <path
+       style="fill:url(#linearGradient4621);fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient4623);stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+       d="M 38.43531,19.824395 L 35.56031,41.199394 C 34.643643,46.396554 17.351977,46.45336 16.31031,41.199394 L 13.346922,19.831978 C 15.187541,26.701263 37.339721,27.042546 38.43531,19.824395 z"
+       id="path5034"
+       inkscape:r_cx="true"
+       inkscape:r_cy="true"
+       sodipodi:nodetypes="ccccc" />
+    <path
+       style="opacity:0.72527472;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+       d="M 41.792173,2.3485895 L 37.019203,7.2099487 L 28.710698,24.48987 L 37.41695,7.6960846 L 41.792173,2.3485895 z"
+       id="path6355"
+       inkscape:r_cx="true"
+       inkscape:r_cy="true" />
+    <path
+       style="opacity:0.41758243;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+       d="M 41.659591,2.3485895 L 40.775707,9.066104 L 34.013999,23.473405 L 40.554736,9.0219098 L 40.024406,9.1102981 L 41.659591,2.3485895 z"
+       id="path6357"
+       inkscape:r_cx="true"
+       inkscape:r_cy="true" />
+    <path
+       style="fill:url(#linearGradient4616);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;marker:none;marker-start:none;marker-mid:none;marker-end:none;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;visibility:visible;display:inline;overflow:visible"
+       d="M 19.783475,25.10859 L 20.755747,44.023696 L 24.026115,44.554026 L 24.202892,25.63892 L 19.783475,25.10859 z"
+       id="path6393"
+       inkscape:r_cx="true"
+       inkscape:r_cy="true" />
+    <path
+       style="fill:url(#radialGradient5203);fill-rule:evenodd;stroke:#2e3436;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;fill-opacity:1.0"
+       d="M 4.4696699,0.88487097 C 12.612527,-0.5437004 14.755384,5.7420138 11.898241,7.4562996 C 9.0410985,9.1705852 8.4696699,4.0277281 7.3268128,3.0277281 C 6.1839556,2.0277281 4.612527,1.0277281 4.4696699,0.88487097 z"
+       id="path4658" />
+    <rect
+       style="fill:#edd400;fill-opacity:1;stroke:#c4a000;stroke-width:1.08124149;stroke-opacity:1"
+       id="rect5189"
+       width="3.1687586"
+       height="3.0437586"
+       x="27.195011"
+       y="-2.229372"
+       transform="matrix(0.9862258,0.1654047,-0.1654047,0.9862258,0,0)" />
+    <rect
+       style="fill:url(#linearGradient5217);fill-opacity:1;stroke:url(#linearGradient5239);stroke-width:0.93109107000000002;stroke-opacity:1"
+       id="rect5191"
+       width="3.8045666"
+       height="2.6916652"
+       x="26.829407"
+       y="1.3142633"
+       transform="matrix(0.9867211,0.1624237,-0.1591631,0.9872523,0,0)" />
+    <rect
+       style="fill:url(#linearGradient5231);fill-opacity:1.0;stroke:#888a85;stroke-width:1.04273272000000006;stroke-opacity:1"
+       id="rect5193"
+       width="3.9347429"
+       height="1.8134226"
+       x="5.7073102"
+       y="12.060918"
+       transform="matrix(0.9071697,-0.420765,0.420765,0.9071697,0,0)" />
+  </g>
+</svg>
diff --git a/reactos/base/applications/paint/icons/pen_cur.ico b/reactos/base/applications/paint/icons/pen_cur.ico
new file mode 100755 (executable)
index 0000000..107e555
Binary files /dev/null and b/reactos/base/applications/paint/icons/pen_cur.ico differ
diff --git a/reactos/base/applications/paint/icons/transparency.xcf b/reactos/base/applications/paint/icons/transparency.xcf
new file mode 100755 (executable)
index 0000000..63097b9
Binary files /dev/null and b/reactos/base/applications/paint/icons/transparency.xcf differ
diff --git a/reactos/base/applications/paint/icons/transparent.ico b/reactos/base/applications/paint/icons/transparent.ico
new file mode 100755 (executable)
index 0000000..d4f1c84
Binary files /dev/null and b/reactos/base/applications/paint/icons/transparent.ico differ
diff --git a/reactos/base/applications/paint/icons/vertstretch.ico b/reactos/base/applications/paint/icons/vertstretch.ico
new file mode 100755 (executable)
index 0000000..73b8001
Binary files /dev/null and b/reactos/base/applications/paint/icons/vertstretch.ico differ
diff --git a/reactos/base/applications/paint/icons/zoom_cur.ico b/reactos/base/applications/paint/icons/zoom_cur.ico
new file mode 100755 (executable)
index 0000000..fe457fa
Binary files /dev/null and b/reactos/base/applications/paint/icons/zoom_cur.ico differ
diff --git a/reactos/base/applications/paint/lang/cs-CZ.rc b/reactos/base/applications/paint/lang/cs-CZ.rc
new file mode 100644 (file)
index 0000000..23f86c0
--- /dev/null
@@ -0,0 +1,201 @@
+/* FILE:        ??rospaint??/lang/cs-CZ.rc\r
+ * TRANSLATOR:  Radek Liska aka Black_Fox (radekliska at gmail dot com)\r
+ * UPDATED:     2009-04-28\r
+ */\r
+\r
+LANGUAGE LANG_CZECH, SUBLANG_DEFAULT\r
+\r
+ID_MENU MENU\r
+BEGIN\r
+    POPUP "&Soubor"\r
+    BEGIN\r
+        MENUITEM "Nový\tCtrl+N", IDM_FILENEW\r
+        MENUITEM "Otevøít...\tCtrl+O", IDM_FILEOPEN\r
+        MENUITEM "Ulo\9eit\tCtrl+S", IDM_FILESAVE\r
+        MENUITEM "Ulo\9eit jako...", IDM_FILESAVEAS\r
+        MENUITEM SEPARATOR\r
+        MENUITEM "Nastavit jako pozadí (vedle sebe)", IDM_FILEASWALLPAPERPLANE\r
+        MENUITEM "Nastavit jako pozadí (na støed)", IDM_FILEASWALLPAPERCENTERED\r
+        MENUITEM "Nastavit jako pozadí (roztáhnout)", IDM_FILEASWALLPAPERSTRETCHED\r
+        MENUITEM SEPARATOR\r
+        MENUITEM "Ukonèit\tAlt+F4", IDM_FILEEXIT\r
+    END\r
+\r
+    POPUP "Úpr&avy"\r
+    BEGIN\r
+        MENUITEM "Zpìt\tCtrl+Z", IDM_EDITUNDO\r
+        MENUITEM "Znovu\tCtrl+Y", IDM_EDITREDO\r
+        MENUITEM SEPARATOR\r
+        MENUITEM "Vyjmout\tCtrl+X", IDM_EDITCUT\r
+        MENUITEM "Kopírovat\tCtrl+C", IDM_EDITCOPY\r
+        MENUITEM "Vlo\9eit\tCtrl+V", IDM_EDITPASTE\r
+        MENUITEM "Vymazat výbìr\tDel", IDM_EDITDELETESELECTION\r
+        MENUITEM "Invertovat výbìr", IDM_EDITINVERTSELECTION\r
+        MENUITEM "Vybrat v\9ae\tCtrl+A", IDM_EDITSELECTALL\r
+        MENUITEM SEPARATOR\r
+        MENUITEM "Kopírovat do...", IDM_EDITCOPYTO\r
+        MENUITEM "Vlo\9eit z...", IDM_EDITPASTEFROM\r
+    END\r
+\r
+    POPUP "&Zobrazit"\r
+    BEGIN\r
+        MENUITEM "Panel nástrojù\tCtrl+T", IDM_VIEWTOOLBOX, CHECKED\r
+        MENUITEM "Barevná paleta\tCtrl+L", IDM_VIEWCOLORPALETTE, CHECKED\r
+        MENUITEM "Stavový øádek", IDM_VIEWSTATUSBAR, CHECKED\r
+        MENUITEM "Format icon bar", IDM_FORMATICONBAR, CHECKED, GRAYED\r
+        MENUITEM SEPARATOR\r
+        POPUP "Lupa"\r
+        BEGIN\r
+            MENUITEM "12,5%", IDM_VIEWZOOM125\r
+            MENUITEM "25%", IDM_VIEWZOOM25\r
+            MENUITEM "50%", IDM_VIEWZOOM50\r
+            MENUITEM "100%", IDM_VIEWZOOM100\r
+            MENUITEM "200%", IDM_VIEWZOOM200\r
+            MENUITEM "400%", IDM_VIEWZOOM400\r
+            MENUITEM "800%", IDM_VIEWZOOM800\r
+        END\r
+        MENUITEM "Celá obrazovka\tCtrl+F", IDM_VIEWFULLSCREEN\r
+    END\r
+    \r
+    POPUP "&Obrázek"\r
+    BEGIN\r
+        MENUITEM "Pøeklopit nebo otoèit...\tCtrl+R", IDM_IMAGEROTATEMIRROR\r
+        MENUITEM "Zmìnit velikost...\tCtrl+W", IDM_IMAGECHANGESIZE\r
+        MENUITEM "Oøíznout", IDM_IMAGECROP\r
+        MENUITEM "Inverovat barvy\tCtrl+I", IDM_IMAGEINVERTCOLORS\r
+        MENUITEM "Atributy...\tCtrl+E", IDM_IMAGEATTRIBUTES\r
+        MENUITEM "Vymazat obrázek", IDM_IMAGEDELETEIMAGE\r
+        MENUITEM "Kreslit neprùhlednì", IDM_IMAGEDRAWOPAQUE\r
+    END\r
+    \r
+    POPUP "&Barvy"\r
+    BEGIN\r
+        MENUITEM "Upravit paletu...", IDM_COLORSEDITPALETTE\r
+    END\r
+    \r
+    POPUP "&Nápovìda"\r
+    BEGIN\r
+        MENUITEM "Témata nápovìdy", IDM_HELPHELPTOPICS\r
+        MENUITEM SEPARATOR\r
+        MENUITEM "O programu...", IDM_HELPINFO\r
+    END\r
+END\r
+\r
+LANGUAGE LANG_CZECH, SUBLANG_DEFAULT\r
+\r
+ID_ACCELERATORS ACCELERATORS\r
+BEGIN\r
+    "^N", IDM_FILENEW\r
+    "^O", IDM_FILEOPEN\r
+    "^S", IDM_FILESAVE\r
+    "^Z", IDM_EDITUNDO\r
+    "^Y", IDM_EDITREDO\r
+    "^X", IDM_EDITCUT\r
+    "^C", IDM_EDITCOPY\r
+    "^V", IDM_EDITPASTE\r
+    VK_DELETE, IDM_EDITDELETESELECTION, VIRTKEY\r
+    "^A", IDM_EDITSELECTALL\r
+    "^T", IDM_VIEWTOOLBOX\r
+    "^L", IDM_VIEWCOLORPALETTE\r
+    "^F", IDM_VIEWFULLSCREEN\r
+    "^R", IDM_IMAGEROTATEMIRROR\r
+    "^W", IDM_IMAGECHANGESIZE\r
+    "^I", IDM_IMAGEINVERTCOLORS\r
+    "^E", IDM_IMAGEATTRIBUTES\r
+    "N", IDM_IMAGEDELETEIMAGE, CONTROL, SHIFT, VIRTKEY\r
+END\r
+\r
+LANGUAGE LANG_CZECH, SUBLANG_DEFAULT\r
+\r
+IDD_MIRRORROTATE DIALOGEX 100, 100, 180, 100\r
+STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU\r
+FONT 8, "MS Shell Dlg"\r
+CAPTION "Pøeklopit nebo otoèit"\r
+BEGIN\r
+    GROUPBOX "Pøeklopit nebo otoèit", IDD_MIRRORROTATEGROUP, 6, 6, 112, 86\r
+    AUTORADIOBUTTON "Pøeklopit vodorovnì", IDD_MIRRORROTATERB1, 12, 18, 100, 10, WS_GROUP\r
+    AUTORADIOBUTTON "Pøeklopit svisle", IDD_MIRRORROTATERB2, 12, 30, 100, 10\r
+    AUTORADIOBUTTON "Otoèit o úhel", IDD_MIRRORROTATERB3, 12, 42, 100, 10\r
+    AUTORADIOBUTTON "90°", IDD_MIRRORROTATERB4, 42, 54, 50, 10, WS_GROUP | WS_DISABLED\r
+    AUTORADIOBUTTON "180°", IDD_MIRRORROTATERB5, 42, 66, 50, 10, WS_DISABLED\r
+    AUTORADIOBUTTON "270°", IDD_MIRRORROTATERB6, 42, 78, 50, 10, WS_DISABLED\r
+    DEFPUSHBUTTON "OK", IDOK, 125, 8, 48, 14\r
+    PUSHBUTTON "Storno", IDCANCEL, 125, 24, 48, 14\r
+END\r
+\r
+LANGUAGE LANG_CZECH, SUBLANG_DEFAULT\r
+\r
+IDD_ATTRIBUTES DIALOGEX 100, 100, 210, 120\r
+STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU\r
+FONT 8, "MS Shell Dlg"\r
+CAPTION "Atributy"\r
+BEGIN\r
+    EDITTEXT IDD_ATTRIBUTESEDIT1, 40, 40, 35, 12\r
+    EDITTEXT IDD_ATTRIBUTESEDIT2, 110, 40, 35, 12\r
+    LTEXT "\8aíøka:", IDD_ATTRIBUTESTEXT1, 10, 40, 30, 10\r
+    LTEXT "Vý\9aka:", IDD_ATTRIBUTESTEXT2, 80, 40, 30, 10\r
+    LTEXT "Datum zmìny:", IDD_ATTRIBUTESTEXT3, 10, 5, 60, 10\r
+    LTEXT "Velikost souboru:", IDD_ATTRIBUTESTEXT4, 10, 15, 60, 10\r
+    LTEXT "Rozli\9aení:", IDD_ATTRIBUTESTEXT5, 10, 25, 60, 10\r
+    LTEXT "Not available", IDD_ATTRIBUTESTEXT6, 70, 5, 60, 10\r
+    LTEXT "Not available", IDD_ATTRIBUTESTEXT7, 70, 15, 60, 10\r
+    LTEXT "Not available", IDD_ATTRIBUTESTEXT8, 70, 25, 60, 10\r
+    GROUPBOX "Jednotka", IDD_ATTRIBUTESGROUP1, 6, 57, 139, 27\r
+    AUTORADIOBUTTON "Palce", IDD_ATTRIBUTESRB1, 12, 69, 35, 10, WS_GROUP\r
+    AUTORADIOBUTTON "Centimetry", IDD_ATTRIBUTESRB2, 52, 69, 35, 10\r
+    AUTORADIOBUTTON "Pixely", IDD_ATTRIBUTESRB3, 92, 69, 35, 10\r
+    GROUPBOX "Barvy", IDD_ATTRIBUTESGROUP2, 6, 88, 139, 27\r
+    AUTORADIOBUTTON "Èernobílé", IDD_ATTRIBUTESRB4, 12, 100, 70, 10, WS_GROUP\r
+    AUTORADIOBUTTON "Barvy", IDD_ATTRIBUTESRB5, 92, 100, 35, 10\r
+    DEFPUSHBUTTON "OK", IDOK, 155, 8, 48, 14\r
+    PUSHBUTTON "Storno", IDCANCEL, 155, 24, 48, 14\r
+    PUSHBUTTON "Výchozí", IDD_ATTRIBUTESSTANDARD, 155, 40, 48, 14\r
+END\r
+\r
+LANGUAGE LANG_CZECH, SUBLANG_DEFAULT\r
+\r
+IDD_CHANGESIZE DIALOGEX 100, 100, 210, 80\r
+STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU\r
+FONT 8, "MS Shell Dlg"\r
+CAPTION "Zmìnit velikost"\r
+BEGIN\r
+    GROUPBOX "Zmìnit velikost", IDD_CHANGESIZEGROUP, 6, 6, 142, 66\r
+    ICON IDI_HORZSTRETCH, IDD_CHANGESIZEICON1, 12, 18\r
+    LTEXT "Vodorovnì:", IDD_CHANGESIZETEXT1, 45, 24, 40, 10\r
+    EDITTEXT IDD_CHANGESIZEEDIT1, 90, 23, 32, 12\r
+    LTEXT "%", IDD_CHANGESIZETEXT2, 125, 24, 15, 10\r
+    ICON IDI_VERTSTRETCH, IDD_CHANGESIZEICON2, 12, 43\r
+    LTEXT "Svisle:", IDD_CHANGESIZETEXT3, 45, 49, 40, 10\r
+    EDITTEXT IDD_CHANGESIZEEDIT2, 90, 48, 32, 12\r
+    LTEXT "%", IDD_CHANGESIZETEXT4, 125, 49, 15, 10\r
+    DEFPUSHBUTTON "OK", IDOK, 155, 8, 48, 14\r
+    PUSHBUTTON "Storno", IDCANCEL, 155, 24, 48, 14\r
+END\r
+\r
+STRINGTABLE\r
+BEGIN\r
+    IDS_PROGRAMNAME, "Malování"\r
+    IDS_WINDOWTITLE, "%s - Malování"\r
+    IDS_INFOTITLE, "ReactOS Malování"\r
+    IDS_INFOTEXT, "ReactOS Malování je dostupné pod licencí GNU Lesser General Public License (LGPL) verze 3 (viz. www.gnu.org)"\r
+    IDS_SAVEPROMPTTEXT, "Chcete ulo\9eit provedené zmìny v %s?"\r
+    IDS_DEFAULTFILENAME, "Bez názvu.bmp"\r
+    IDS_TOOLTIP1, "Volný výbìr"\r
+    IDS_TOOLTIP2, "Výbìr"\r
+    IDS_TOOLTIP3, "Guma"\r
+    IDS_TOOLTIP4, "Vyplnit barvou"\r
+    IDS_TOOLTIP5, "Zvolit barvu"\r
+    IDS_TOOLTIP6, "Lupa"\r
+    IDS_TOOLTIP7, "Tu\9eka"\r
+    IDS_TOOLTIP8, "\8atìtec"\r
+    IDS_TOOLTIP9, "Sprej"\r
+    IDS_TOOLTIP10, "Text"\r
+    IDS_TOOLTIP11, "Èára"\r
+    IDS_TOOLTIP12, "Beziérova køivka"\r
+    IDS_TOOLTIP13, "Obdélník"\r
+    IDS_TOOLTIP14, "Polygon"\r
+    IDS_TOOLTIP15, "Elipsa"\r
+    IDS_TOOLTIP16, "Zaoblený obdélník"\r
+    IDS_OPENFILTER, "Soubory bitmap (*.bmp;*.dib)\1*.bmp;*.dib\1V\9aechny soubory (*.*)\1*.*\1"\r
+    IDS_SAVEFILTER, "24bitová bitmapa (*.bmp;*.dib)\1*.bmp;*.dib\1"\r
+END\r
diff --git a/reactos/base/applications/paint/lang/de-DE.rc b/reactos/base/applications/paint/lang/de-DE.rc
new file mode 100755 (executable)
index 0000000..346237b
--- /dev/null
@@ -0,0 +1,201 @@
+/*\r
+ * German Language resource file / Deutsche Sprachresourcendatei\r
+ * Program's initial language / anfängliche Programmsprache, Benedikt Freisen\r
+ */\r
+\r
+LANGUAGE LANG_GERMAN, SUBLANG_GERMAN\r
+\r
+ID_MENU MENU\r
+BEGIN\r
+    POPUP "&Datei"\r
+    BEGIN\r
+        MENUITEM "Neu\tStrg+N", IDM_FILENEW\r
+        MENUITEM "Öffnen...\tStrg+O", IDM_FILEOPEN\r
+        MENUITEM "Speichern\tStrg+S", IDM_FILESAVE\r
+        MENUITEM "Speichern unter...", IDM_FILESAVEAS\r
+        MENUITEM SEPARATOR\r
+        MENUITEM "Als Hintergrund (Fläche)", IDM_FILEASWALLPAPERPLANE\r
+        MENUITEM "Als Hintergrund (Zentriert)", IDM_FILEASWALLPAPERCENTERED\r
+        MENUITEM "Als Hintergrund (Gestreckt)", IDM_FILEASWALLPAPERSTRETCHED\r
+        MENUITEM SEPARATOR\r
+        MENUITEM "Beenden\tAlt+F4", IDM_FILEEXIT\r
+    END\r
+\r
+    POPUP "&Bearbeiten"\r
+    BEGIN\r
+        MENUITEM "Rückgängig\tStrg+Z", IDM_EDITUNDO\r
+        MENUITEM "Wiederholen\tStrg+Y", IDM_EDITREDO\r
+        MENUITEM SEPARATOR\r
+        MENUITEM "Ausschneiden\tStrg+X", IDM_EDITCUT\r
+        MENUITEM "Kopieren\tStrg+C", IDM_EDITCOPY\r
+        MENUITEM "Einfügen\tStrg+V", IDM_EDITPASTE\r
+        MENUITEM "Auswahl löschen\tEntf", IDM_EDITDELETESELECTION\r
+        MENUITEM "Markierung umkehren", IDM_EDITINVERTSELECTION\r
+        MENUITEM "Alles markieren\tStrg+A", IDM_EDITSELECTALL\r
+        MENUITEM SEPARATOR\r
+        MENUITEM "Kopieren nach...", IDM_EDITCOPYTO\r
+        MENUITEM "Einfügen aus...", IDM_EDITPASTEFROM\r
+    END\r
+\r
+    POPUP "&Ansicht"\r
+    BEGIN\r
+        MENUITEM "Werkzeugkasten\tStrg+W", IDM_VIEWTOOLBOX, CHECKED\r
+        MENUITEM "Farbpalette\tStrg+F", IDM_VIEWCOLORPALETTE, CHECKED\r
+        MENUITEM "Statusleiste", IDM_VIEWSTATUSBAR, CHECKED\r
+        MENUITEM "Formatsymbolleiste", IDM_FORMATICONBAR, CHECKED, GRAYED\r
+        MENUITEM SEPARATOR\r
+        POPUP "Zoom"\r
+        BEGIN\r
+            MENUITEM "12,5%", IDM_VIEWZOOM125\r
+            MENUITEM "25%", IDM_VIEWZOOM25\r
+            MENUITEM "50%", IDM_VIEWZOOM50\r
+            MENUITEM "100%", IDM_VIEWZOOM100\r
+            MENUITEM "200%", IDM_VIEWZOOM200\r
+            MENUITEM "400%", IDM_VIEWZOOM400\r
+            MENUITEM "800%", IDM_VIEWZOOM800\r
+        END\r
+        MENUITEM "Gesamtbild\tStrg+G", IDM_VIEWFULLSCREEN\r
+    END\r
+    \r
+    POPUP "B&ild"\r
+    BEGIN\r
+        MENUITEM "Drehen/Spiegeln...\tStrg+D", IDM_IMAGEROTATEMIRROR\r
+        MENUITEM "Größe ändern...\tStrg+K", IDM_IMAGECHANGESIZE\r
+        MENUITEM "Zuschneiden", IDM_IMAGECROP\r
+        MENUITEM "Farben umkehren\tStrg+U", IDM_IMAGEINVERTCOLORS\r
+        MENUITEM "Attribute...\tStrg+E", IDM_IMAGEATTRIBUTES\r
+        MENUITEM "Bild löschen\tStrg+Umschalt+N", IDM_IMAGEDELETEIMAGE\r
+        MENUITEM "Deckend zeichnen", IDM_IMAGEDRAWOPAQUE\r
+    END\r
+    \r
+    POPUP "&Farben"\r
+    BEGIN\r
+        MENUITEM "Palette bearbeiten...", IDM_COLORSEDITPALETTE\r
+    END\r
+    \r
+    POPUP "&?"\r
+    BEGIN\r
+        MENUITEM "Hilfethemen", IDM_HELPHELPTOPICS\r
+        MENUITEM SEPARATOR\r
+        MENUITEM "Info", IDM_HELPINFO\r
+    END\r
+END\r
+\r
+LANGUAGE LANG_GERMAN, SUBLANG_GERMAN\r
+\r
+ID_ACCELERATORS ACCELERATORS\r
+BEGIN\r
+    "^N", IDM_FILENEW\r
+    "^O", IDM_FILEOPEN\r
+    "^S", IDM_FILESAVE\r
+    "^Z", IDM_EDITUNDO\r
+    "^Y", IDM_EDITREDO\r
+    "^X", IDM_EDITCUT\r
+    "^C", IDM_EDITCOPY\r
+    "^V", IDM_EDITPASTE\r
+    VK_DELETE, IDM_EDITDELETESELECTION, VIRTKEY\r
+    "^A", IDM_EDITSELECTALL\r
+    "^W", IDM_VIEWTOOLBOX\r
+    "^F", IDM_VIEWCOLORPALETTE\r
+    "^G", IDM_VIEWFULLSCREEN\r
+    "^D", IDM_IMAGEROTATEMIRROR\r
+    "^K", IDM_IMAGECHANGESIZE\r
+    "^U", IDM_IMAGEINVERTCOLORS\r
+    "^E", IDM_IMAGEATTRIBUTES\r
+    "N", IDM_IMAGEDELETEIMAGE, CONTROL, SHIFT, VIRTKEY\r
+END\r
+\r
+LANGUAGE LANG_GERMAN, SUBLANG_GERMAN\r
+\r
+IDD_MIRRORROTATE DIALOGEX 100, 100, 180, 100\r
+STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU\r
+FONT 8, "MS Shell Dlg"\r
+CAPTION "Bild drehen und spiegeln"\r
+BEGIN\r
+    GROUPBOX "Spiegeln oder drehen", IDD_MIRRORROTATEGROUP, 6, 6, 112, 86\r
+    AUTORADIOBUTTON "Horizontal spiegeln", IDD_MIRRORROTATERB1, 12, 18, 100, 10, WS_GROUP\r
+    AUTORADIOBUTTON "Vertikal spiegeln", IDD_MIRRORROTATERB2, 12, 30, 100, 10\r
+    AUTORADIOBUTTON "Drehen im Winkel von", IDD_MIRRORROTATERB3, 12, 42, 100, 10\r
+    AUTORADIOBUTTON "90°", IDD_MIRRORROTATERB4, 42, 54, 50, 10, WS_GROUP | WS_DISABLED\r
+    AUTORADIOBUTTON "180°", IDD_MIRRORROTATERB5, 42, 66, 50, 10, WS_DISABLED\r
+    AUTORADIOBUTTON "270°", IDD_MIRRORROTATERB6, 42, 78, 50, 10, WS_DISABLED\r
+    DEFPUSHBUTTON "OK", IDOK, 125, 8, 48, 14\r
+    PUSHBUTTON "Abbrechen", IDCANCEL, 125, 24, 48, 14\r
+END\r
+\r
+LANGUAGE LANG_GERMAN, SUBLANG_GERMAN\r
+\r
+IDD_ATTRIBUTES DIALOGEX 100, 100, 210, 120\r
+STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU\r
+FONT 8, "MS Shell Dlg"\r
+CAPTION "Attribute"\r
+BEGIN\r
+    EDITTEXT IDD_ATTRIBUTESEDIT1, 40, 40, 35, 12\r
+    EDITTEXT IDD_ATTRIBUTESEDIT2, 110, 40, 35, 12\r
+    LTEXT "Breite:", IDD_ATTRIBUTESTEXT1, 10, 40, 30, 10\r
+    LTEXT "Höhe:", IDD_ATTRIBUTESTEXT2, 80, 40, 30, 10\r
+    LTEXT "Dateidatum:", IDD_ATTRIBUTESTEXT3, 10, 5, 60, 10\r
+    LTEXT "Dateigröße:", IDD_ATTRIBUTESTEXT4, 10, 15, 60, 10\r
+    LTEXT "Auflösung:", IDD_ATTRIBUTESTEXT5, 10, 25, 60, 10\r
+    LTEXT "Nicht verfügbar", IDD_ATTRIBUTESTEXT6, 70, 5, 60, 10\r
+    LTEXT "Nicht verfügbar", IDD_ATTRIBUTESTEXT7, 70, 15, 60, 10\r
+    LTEXT "Nicht verfügbar", IDD_ATTRIBUTESTEXT8, 70, 25, 60, 10\r
+    GROUPBOX "Maßeinheit", IDD_ATTRIBUTESGROUP1, 6, 57, 139, 27\r
+    AUTORADIOBUTTON "Zoll", IDD_ATTRIBUTESRB1, 12, 69, 35, 10, WS_GROUP\r
+    AUTORADIOBUTTON "cm", IDD_ATTRIBUTESRB2, 52, 69, 35, 10\r
+    AUTORADIOBUTTON "Pixel", IDD_ATTRIBUTESRB3, 92, 69, 35, 10\r
+    GROUPBOX "Farben", IDD_ATTRIBUTESGROUP2, 6, 88, 139, 27\r
+    AUTORADIOBUTTON "Schwarzweiß", IDD_ATTRIBUTESRB4, 12, 100, 70, 10, WS_GROUP\r
+    AUTORADIOBUTTON "Farben", IDD_ATTRIBUTESRB5, 92, 100, 35, 10\r
+    DEFPUSHBUTTON "OK", IDOK, 155, 8, 48, 14\r
+    PUSHBUTTON "Abbrechen", IDCANCEL, 155, 24, 48, 14\r
+    PUSHBUTTON "Standard", IDD_ATTRIBUTESSTANDARD, 155, 40, 48, 14\r
+END\r
+\r
+LANGUAGE LANG_GERMAN, SUBLANG_GERMAN\r
+\r
+IDD_CHANGESIZE DIALOGEX 100, 100, 210, 80\r
+STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU\r
+FONT 8, "MS Shell Dlg"\r
+CAPTION "Größe ändern"\r
+BEGIN\r
+    GROUPBOX "Größe ändern", IDD_CHANGESIZEGROUP, 6, 6, 142, 66\r
+    ICON IDI_HORZSTRETCH, IDD_CHANGESIZEICON1, 12, 18\r
+    LTEXT "Horizontal:", IDD_CHANGESIZETEXT1, 45, 24, 40, 10\r
+    EDITTEXT IDD_CHANGESIZEEDIT1, 90, 23, 32, 12\r
+    LTEXT "%", IDD_CHANGESIZETEXT2, 125, 24, 15, 10\r
+    ICON IDI_VERTSTRETCH, IDD_CHANGESIZEICON2, 12, 43\r
+    LTEXT "Vertikal:", IDD_CHANGESIZETEXT3, 45, 49, 40, 10\r
+    EDITTEXT IDD_CHANGESIZEEDIT2, 90, 48, 32, 12\r
+    LTEXT "%", IDD_CHANGESIZETEXT4, 125, 49, 15, 10\r
+    DEFPUSHBUTTON "OK", IDOK, 155, 8, 48, 14\r
+    PUSHBUTTON "Abbrechen", IDCANCEL, 155, 24, 48, 14\r
+END\r
+\r
+STRINGTABLE\r
+BEGIN\r
+    IDS_PROGRAMNAME, "Paint"\r
+    IDS_WINDOWTITLE, "%s - Paint"\r
+    IDS_INFOTITLE, "Paint für ReactOS"\r
+    IDS_INFOTEXT, "Paint für ReactOS steht unter der GNU Lesser General Public License (LGPL) Version 3. (siehe www.gnu.org)"\r
+    IDS_SAVEPROMPTTEXT, "Möchten Sie die Änderungen an %s speichern?"\r
+    IDS_DEFAULTFILENAME, "Unbenannt.bmp"\r
+    IDS_TOOLTIP1, "Freie Auswahl"\r
+    IDS_TOOLTIP2, "Auswahl"\r
+    IDS_TOOLTIP3, "Radierer"\r
+    IDS_TOOLTIP4, "Farbfüller"\r
+    IDS_TOOLTIP5, "Farbe auswählen"\r
+    IDS_TOOLTIP6, "Zoom"\r
+    IDS_TOOLTIP7, "Stift"\r
+    IDS_TOOLTIP8, "Pinsel"\r
+    IDS_TOOLTIP9, "Sprühdose"\r
+    IDS_TOOLTIP10, "Text"\r
+    IDS_TOOLTIP11, "Linie"\r
+    IDS_TOOLTIP12, "Bezier-Kurve"\r
+    IDS_TOOLTIP13, "Rechteck"\r
+    IDS_TOOLTIP14, "Polygon"\r
+    IDS_TOOLTIP15, "Ellipse"\r
+    IDS_TOOLTIP16, "Abgerundetes Rechteck"\r
+    IDS_OPENFILTER, "Bitmapdateien (*.bmp;*.dib)\1*.bmp;*.dib\1Alle Dateien (*.*)\1*.*\1"\r
+    IDS_SAVEFILTER, "24-Bit-Bitmap (*.bmp;*.dib)\1*.bmp;*.dib\1"\r
+END\r
diff --git a/reactos/base/applications/paint/lang/en-GB.rc b/reactos/base/applications/paint/lang/en-GB.rc
new file mode 100755 (executable)
index 0000000..42b7766
--- /dev/null
@@ -0,0 +1,201 @@
+/*\r
+ * British English Language resource file\r
+ * Translated by: Benedikt Freisen\r
+ */\r
+\r
+LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_UK\r
+\r
+ID_MENU MENU\r
+BEGIN\r
+    POPUP "&File"\r
+    BEGIN\r
+        MENUITEM "New\tCtrl+N", IDM_FILENEW\r
+        MENUITEM "Open...\tCtrl+O", IDM_FILEOPEN\r
+        MENUITEM "Save\tCtrl+S", IDM_FILESAVE\r
+        MENUITEM "Save as...", IDM_FILESAVEAS\r
+        MENUITEM SEPARATOR\r
+        MENUITEM "Set as wallpaper (tiled)", IDM_FILEASWALLPAPERPLANE\r
+        MENUITEM "Set as wallpaper (centered)", IDM_FILEASWALLPAPERCENTERED\r
+        MENUITEM "Set as wallpaper (stretched)", IDM_FILEASWALLPAPERSTRETCHED\r
+        MENUITEM SEPARATOR\r
+        MENUITEM "Quit\tAlt+F4", IDM_FILEEXIT\r
+    END\r
+\r
+    POPUP "&Edit"\r
+    BEGIN\r
+        MENUITEM "Undo\tCtrl+Z", IDM_EDITUNDO\r
+        MENUITEM "Redo\tCtrl+Y", IDM_EDITREDO\r
+        MENUITEM SEPARATOR\r
+        MENUITEM "Cut\tCtrl+X", IDM_EDITCUT\r
+        MENUITEM "Copy\tCtrl+C", IDM_EDITCOPY\r
+        MENUITEM "Paste\tCtrl+V", IDM_EDITPASTE\r
+        MENUITEM "Delete selection\tDel", IDM_EDITDELETESELECTION\r
+        MENUITEM "Invert selection", IDM_EDITINVERTSELECTION\r
+        MENUITEM "Select all\tCtrl+A", IDM_EDITSELECTALL\r
+        MENUITEM SEPARATOR\r
+        MENUITEM "Copy to...", IDM_EDITCOPYTO\r
+        MENUITEM "Paste from...", IDM_EDITPASTEFROM\r
+    END\r
+\r
+    POPUP "&View"\r
+    BEGIN\r
+        MENUITEM "Tool box\tCtrl+T", IDM_VIEWTOOLBOX, CHECKED\r
+        MENUITEM "Colour palette\tCtrl+L", IDM_VIEWCOLORPALETTE, CHECKED\r
+        MENUITEM "Status bar", IDM_VIEWSTATUSBAR, CHECKED\r
+        MENUITEM "Text Toolbar", IDM_FORMATICONBAR, CHECKED, GRAYED\r
+        MENUITEM SEPARATOR\r
+        POPUP "Zoom"\r
+        BEGIN\r
+            MENUITEM "12,5%", IDM_VIEWZOOM125\r
+            MENUITEM "25%", IDM_VIEWZOOM25\r
+            MENUITEM "50%", IDM_VIEWZOOM50\r
+            MENUITEM "100%", IDM_VIEWZOOM100\r
+            MENUITEM "200%", IDM_VIEWZOOM200\r
+            MENUITEM "400%", IDM_VIEWZOOM400\r
+            MENUITEM "800%", IDM_VIEWZOOM800\r
+        END\r
+        MENUITEM "Full screen\tCtrl+F", IDM_VIEWFULLSCREEN\r
+    END\r
+    \r
+    POPUP "&Image"\r
+    BEGIN\r
+        MENUITEM "Rotate/Mirror...\tCtrl+R", IDM_IMAGEROTATEMIRROR\r
+        MENUITEM "Resize...\tCtrl+W", IDM_IMAGECHANGESIZE\r
+        MENUITEM "Crop", IDM_IMAGECROP\r
+        MENUITEM "Invert colours\tCtrl+I", IDM_IMAGEINVERTCOLORS\r
+        MENUITEM "Attributes...\tCtrl+E", IDM_IMAGEATTRIBUTES\r
+        MENUITEM "Delete image", IDM_IMAGEDELETEIMAGE\r
+        MENUITEM "Draw opaque", IDM_IMAGEDRAWOPAQUE\r
+    END\r
+    \r
+    POPUP "&Colours"\r
+    BEGIN\r
+        MENUITEM "Edit palette...", IDM_COLORSEDITPALETTE\r
+    END\r
+    \r
+    POPUP "&?"\r
+    BEGIN\r
+        MENUITEM "Help topics", IDM_HELPHELPTOPICS\r
+        MENUITEM SEPARATOR\r
+        MENUITEM "Info", IDM_HELPINFO\r
+    END\r
+END\r
+\r
+LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_UK\r
+\r
+ID_ACCELERATORS ACCELERATORS\r
+BEGIN\r
+    "^N", IDM_FILENEW\r
+    "^O", IDM_FILEOPEN\r
+    "^S", IDM_FILESAVE\r
+    "^Z", IDM_EDITUNDO\r
+    "^Y", IDM_EDITREDO\r
+    "^X", IDM_EDITCUT\r
+    "^C", IDM_EDITCOPY\r
+    "^V", IDM_EDITPASTE\r
+    VK_DELETE, IDM_EDITDELETESELECTION, VIRTKEY\r
+    "^A", IDM_EDITSELECTALL\r
+    "^T", IDM_VIEWTOOLBOX\r
+    "^L", IDM_VIEWCOLORPALETTE\r
+    "^F", IDM_VIEWFULLSCREEN\r
+    "^R", IDM_IMAGEROTATEMIRROR\r
+    "^W", IDM_IMAGECHANGESIZE\r
+    "^I", IDM_IMAGEINVERTCOLORS\r
+    "^E", IDM_IMAGEATTRIBUTES\r
+    "N", IDM_IMAGEDELETEIMAGE, CONTROL, SHIFT, VIRTKEY\r
+END\r
+\r
+LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_UK\r
+\r
+IDD_MIRRORROTATE DIALOGEX 100, 100, 180, 100\r
+STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU\r
+FONT 8, "MS Shell Dlg"\r
+CAPTION "Rotate and mirror image"\r
+BEGIN\r
+    GROUPBOX "Rotate or mirror", IDD_MIRRORROTATEGROUP, 6, 6, 112, 86\r
+    AUTORADIOBUTTON "Mirror horizontally", IDD_MIRRORROTATERB1, 12, 18, 100, 10, WS_GROUP\r
+    AUTORADIOBUTTON "Mirror vertically", IDD_MIRRORROTATERB2, 12, 30, 100, 10\r
+    AUTORADIOBUTTON "Rotate by an angle of", IDD_MIRRORROTATERB3, 12, 42, 100, 10\r
+    AUTORADIOBUTTON "90°", IDD_MIRRORROTATERB4, 42, 54, 50, 10, WS_GROUP | WS_DISABLED\r
+    AUTORADIOBUTTON "180°", IDD_MIRRORROTATERB5, 42, 66, 50, 10, WS_DISABLED\r
+    AUTORADIOBUTTON "270°", IDD_MIRRORROTATERB6, 42, 78, 50, 10, WS_DISABLED\r
+    DEFPUSHBUTTON "OK", IDOK, 125, 8, 48, 14\r
+    PUSHBUTTON "Cancel", IDCANCEL, 125, 24, 48, 14\r
+END\r
+\r
+LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_UK\r
+\r
+IDD_ATTRIBUTES DIALOGEX 100, 100, 210, 120\r
+STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU\r
+FONT 8, "MS Shell Dlg"\r
+CAPTION "Attributes"\r
+BEGIN\r
+    EDITTEXT IDD_ATTRIBUTESEDIT1, 40, 40, 35, 12\r
+    EDITTEXT IDD_ATTRIBUTESEDIT2, 110, 40, 35, 12\r
+    LTEXT "Width:", IDD_ATTRIBUTESTEXT1, 10, 40, 30, 10\r
+    LTEXT "Height:", IDD_ATTRIBUTESTEXT2, 80, 40, 30, 10\r
+    LTEXT "File date:", IDD_ATTRIBUTESTEXT3, 10, 5, 60, 10\r
+    LTEXT "File size:", IDD_ATTRIBUTESTEXT4, 10, 15, 60, 10\r
+    LTEXT "Resolution:", IDD_ATTRIBUTESTEXT5, 10, 25, 60, 10\r
+    LTEXT "Not available", IDD_ATTRIBUTESTEXT6, 70, 5, 60, 10\r
+    LTEXT "Not available", IDD_ATTRIBUTESTEXT7, 70, 15, 60, 10\r
+    LTEXT "Not available", IDD_ATTRIBUTESTEXT8, 70, 25, 60, 10\r
+    GROUPBOX "Unit", IDD_ATTRIBUTESGROUP1, 6, 57, 139, 27\r
+    AUTORADIOBUTTON "Inch", IDD_ATTRIBUTESRB1, 12, 69, 35, 10, WS_GROUP\r
+    AUTORADIOBUTTON "cm", IDD_ATTRIBUTESRB2, 52, 69, 35, 10\r
+    AUTORADIOBUTTON "Pixels", IDD_ATTRIBUTESRB3, 92, 69, 35, 10\r
+    GROUPBOX "Colours", IDD_ATTRIBUTESGROUP2, 6, 88, 139, 27\r
+    AUTORADIOBUTTON "Black and white", IDD_ATTRIBUTESRB4, 12, 100, 70, 10, WS_GROUP\r
+    AUTORADIOBUTTON "Colours", IDD_ATTRIBUTESRB5, 92, 100, 35, 10\r
+    DEFPUSHBUTTON "OK", IDOK, 155, 8, 48, 14\r
+    PUSHBUTTON "Cancel", IDCANCEL, 155, 24, 48, 14\r
+    PUSHBUTTON "Standard", IDD_ATTRIBUTESSTANDARD, 155, 40, 48, 14\r
+END\r
+\r
+LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_UK\r
+\r
+IDD_CHANGESIZE DIALOGEX 100, 100, 210, 80\r
+STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU\r
+FONT 8, "MS Shell Dlg"\r
+CAPTION "Change size"\r
+BEGIN\r
+    GROUPBOX "Change size", IDD_CHANGESIZEGROUP, 6, 6, 142, 66\r
+    ICON IDI_HORZSTRETCH, IDD_CHANGESIZEICON1, 12, 18\r
+    LTEXT "Horizontally:", IDD_CHANGESIZETEXT1, 45, 24, 40, 10\r
+    EDITTEXT IDD_CHANGESIZEEDIT1, 90, 23, 32, 12\r
+    LTEXT "%", IDD_CHANGESIZETEXT2, 125, 24, 15, 10\r
+    ICON IDI_VERTSTRETCH, IDD_CHANGESIZEICON2, 12, 43\r
+    LTEXT "Vertically:", IDD_CHANGESIZETEXT3, 45, 49, 40, 10\r
+    EDITTEXT IDD_CHANGESIZEEDIT2, 90, 48, 32, 12\r
+    LTEXT "%", IDD_CHANGESIZETEXT4, 125, 49, 15, 10\r
+    DEFPUSHBUTTON "OK", IDOK, 155, 8, 48, 14\r
+    PUSHBUTTON "Cancel", IDCANCEL, 155, 24, 48, 14\r
+END\r
+\r
+STRINGTABLE\r
+BEGIN\r
+    IDS_PROGRAMNAME, "Paint"\r
+    IDS_WINDOWTITLE, "%s - Paint"\r
+    IDS_INFOTITLE, "Paint for ReactOS"\r
+    IDS_INFOTEXT, "Paint for ReactOS is available under the GNU Lesser General Public License (LGPL) version 3 (see www.gnu.org)"\r
+    IDS_SAVEPROMPTTEXT, "Do you want to save the changes to %s?"\r
+    IDS_DEFAULTFILENAME, "Unnamed.bmp"\r
+    IDS_TOOLTIP1, "Free selection"\r
+    IDS_TOOLTIP2, "Selection"\r
+    IDS_TOOLTIP3, "Rubber"\r
+    IDS_TOOLTIP4, "Fill with colour"\r
+    IDS_TOOLTIP5, "Select colour"\r
+    IDS_TOOLTIP6, "Zoom"\r
+    IDS_TOOLTIP7, "Pencil"\r
+    IDS_TOOLTIP8, "Brush"\r
+    IDS_TOOLTIP9, "Airbrush"\r
+    IDS_TOOLTIP10, "Text"\r
+    IDS_TOOLTIP11, "Line"\r
+    IDS_TOOLTIP12, "Bezier curve"\r
+    IDS_TOOLTIP13, "Rectangle"\r
+    IDS_TOOLTIP14, "Polygon"\r
+    IDS_TOOLTIP15, "Ellipse"\r
+    IDS_TOOLTIP16, "Rounded rectangle"\r
+    IDS_OPENFILTER, "Bitmap files (*.bmp;*.dib)\1*.bmp;*.dib\1All files (*.*)\1*.*\1"\r
+    IDS_SAVEFILTER, "24 bit bitmap (*.bmp;*.dib)\1*.bmp;*.dib\1"\r
+END\r
diff --git a/reactos/base/applications/paint/lang/en-US.rc b/reactos/base/applications/paint/lang/en-US.rc
new file mode 100755 (executable)
index 0000000..f66af8f
--- /dev/null
@@ -0,0 +1,201 @@
+/*\r
+ * US-English Language resource file\r
+ * Translated by: first times touched from en-GB.rc file by Mario Kacmar\r
+ */\r
+\r
+LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US\r
+\r
+ID_MENU MENU\r
+BEGIN\r
+    POPUP "&File"\r
+    BEGIN\r
+        MENUITEM "&New\tCtrl+N", IDM_FILENEW\r
+        MENUITEM "&Open...\tCtrl+O", IDM_FILEOPEN\r
+        MENUITEM "&Save\tCtrl+S", IDM_FILESAVE\r
+        MENUITEM "Save &as...", IDM_FILESAVEAS\r
+        MENUITEM SEPARATOR\r
+        MENUITEM "Set as wallpaper (tiled)", IDM_FILEASWALLPAPERPLANE\r
+        MENUITEM "Set as wallpaper (centered)", IDM_FILEASWALLPAPERCENTERED\r
+        MENUITEM "Set as wallpaper (stretched)", IDM_FILEASWALLPAPERSTRETCHED\r
+        MENUITEM SEPARATOR\r
+        MENUITEM "&Quit\tAlt+F4", IDM_FILEEXIT\r
+    END\r
+\r
+    POPUP "&Edit"\r
+    BEGIN\r
+        MENUITEM "Undo\tCtrl+Z", IDM_EDITUNDO\r
+        MENUITEM "Redo\tCtrl+Y", IDM_EDITREDO\r
+        MENUITEM SEPARATOR\r
+        MENUITEM "Cut\tCtrl+X", IDM_EDITCUT\r
+        MENUITEM "Copy\tCtrl+C", IDM_EDITCOPY\r
+        MENUITEM "Paste\tCtrl+V", IDM_EDITPASTE\r
+        MENUITEM "Delete selection\tDel", IDM_EDITDELETESELECTION\r
+        MENUITEM "Invert selection", IDM_EDITINVERTSELECTION\r
+        MENUITEM "Select all\tCtrl+A", IDM_EDITSELECTALL\r
+        MENUITEM SEPARATOR\r
+        MENUITEM "Copy to...", IDM_EDITCOPYTO\r
+        MENUITEM "Paste from...", IDM_EDITPASTEFROM\r
+    END\r
+\r
+    POPUP "&View"\r
+    BEGIN\r
+        MENUITEM "Tool box\tCtrl+T", IDM_VIEWTOOLBOX, CHECKED\r
+        MENUITEM "Color palette\tCtrl+L", IDM_VIEWCOLORPALETTE, CHECKED\r
+        MENUITEM "Status bar", IDM_VIEWSTATUSBAR, CHECKED\r
+        MENUITEM "Text Toolbar", IDM_FORMATICONBAR, CHECKED, GRAYED\r
+        MENUITEM SEPARATOR\r
+        POPUP "Zoom"\r
+        BEGIN\r
+            MENUITEM "12,5%", IDM_VIEWZOOM125\r
+            MENUITEM "25%", IDM_VIEWZOOM25\r
+            MENUITEM "50%", IDM_VIEWZOOM50\r
+            MENUITEM "100%", IDM_VIEWZOOM100\r
+            MENUITEM "200%", IDM_VIEWZOOM200\r
+            MENUITEM "400%", IDM_VIEWZOOM400\r
+            MENUITEM "800%", IDM_VIEWZOOM800\r
+        END\r
+        MENUITEM "Full screen\tCtrl+F", IDM_VIEWFULLSCREEN\r
+    END\r
+    \r
+    POPUP "&Image"\r
+    BEGIN\r
+        MENUITEM "Rotate/Mirror...\tCtrl+R", IDM_IMAGEROTATEMIRROR\r
+        MENUITEM "Resize...\tCtrl+W", IDM_IMAGECHANGESIZE\r
+        MENUITEM "Crop", IDM_IMAGECROP\r
+        MENUITEM "Invert colors\tCtrl+I", IDM_IMAGEINVERTCOLORS\r
+        MENUITEM "Attributes...\tCtrl+E", IDM_IMAGEATTRIBUTES\r
+        MENUITEM "Delete image\tCtrl+Shft+N", IDM_IMAGEDELETEIMAGE\r
+        MENUITEM "Draw opaque", IDM_IMAGEDRAWOPAQUE\r
+    END\r
+    \r
+    POPUP "&Colors"\r
+    BEGIN\r
+        MENUITEM "Edit palette...", IDM_COLORSEDITPALETTE\r
+    END\r
+    \r
+    POPUP "&?"\r
+    BEGIN\r
+        MENUITEM "Help topics", IDM_HELPHELPTOPICS\r
+        MENUITEM SEPARATOR\r
+        MENUITEM "Info", IDM_HELPINFO\r
+    END\r
+END\r
+\r
+LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US\r
+\r
+ID_ACCELERATORS ACCELERATORS\r
+BEGIN\r
+    "^N", IDM_FILENEW\r
+    "^O", IDM_FILEOPEN\r
+    "^S", IDM_FILESAVE\r
+    "^Z", IDM_EDITUNDO\r
+    "^Y", IDM_EDITREDO\r
+    "^X", IDM_EDITCUT\r
+    "^C", IDM_EDITCOPY\r
+    "^V", IDM_EDITPASTE\r
+    VK_DELETE, IDM_EDITDELETESELECTION, VIRTKEY\r
+    "^A", IDM_EDITSELECTALL\r
+    "^T", IDM_VIEWTOOLBOX\r
+    "^L", IDM_VIEWCOLORPALETTE\r
+    "^F", IDM_VIEWFULLSCREEN\r
+    "^R", IDM_IMAGEROTATEMIRROR\r
+    "^W", IDM_IMAGECHANGESIZE\r
+    "^I", IDM_IMAGEINVERTCOLORS\r
+    "^E", IDM_IMAGEATTRIBUTES\r
+    "N", IDM_IMAGEDELETEIMAGE, CONTROL, SHIFT, VIRTKEY\r
+END\r
+\r
+LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US\r
+\r
+IDD_MIRRORROTATE DIALOGEX 100, 100, 180, 100\r
+STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU\r
+FONT 8, "MS Shell Dlg"\r
+CAPTION "Rotate and mirror image"\r
+BEGIN\r
+    GROUPBOX "Rotate or mirror", IDD_MIRRORROTATEGROUP, 6, 6, 112, 86\r
+    AUTORADIOBUTTON "Mirror horizontally", IDD_MIRRORROTATERB1, 12, 18, 100, 10, WS_GROUP\r
+    AUTORADIOBUTTON "Mirror vertically", IDD_MIRRORROTATERB2, 12, 30, 100, 10\r
+    AUTORADIOBUTTON "Rotate by an angle of", IDD_MIRRORROTATERB3, 12, 42, 100, 10\r
+    AUTORADIOBUTTON "90°", IDD_MIRRORROTATERB4, 42, 54, 50, 10, WS_GROUP | WS_DISABLED\r
+    AUTORADIOBUTTON "180°", IDD_MIRRORROTATERB5, 42, 66, 50, 10, WS_DISABLED\r
+    AUTORADIOBUTTON "270°", IDD_MIRRORROTATERB6, 42, 78, 50, 10, WS_DISABLED\r
+    DEFPUSHBUTTON "OK", IDOK, 125, 8, 48, 14\r
+    PUSHBUTTON "Cancel", IDCANCEL, 125, 24, 48, 14\r
+END\r
+\r
+LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US\r
+\r
+IDD_ATTRIBUTES DIALOGEX 100, 100, 210, 120\r
+STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU\r
+FONT 8, "MS Shell Dlg"\r
+CAPTION "Attributes"\r
+BEGIN\r
+    EDITTEXT IDD_ATTRIBUTESEDIT1, 40, 40, 35, 12\r
+    EDITTEXT IDD_ATTRIBUTESEDIT2, 110, 40, 35, 12\r
+    LTEXT "Width:", IDD_ATTRIBUTESTEXT1, 10, 40, 30, 10\r
+    LTEXT "Height:", IDD_ATTRIBUTESTEXT2, 80, 40, 30, 10\r
+    LTEXT "File date:", IDD_ATTRIBUTESTEXT3, 10, 5, 60, 10\r
+    LTEXT "File size:", IDD_ATTRIBUTESTEXT4, 10, 15, 60, 10\r
+    LTEXT "Resolution:", IDD_ATTRIBUTESTEXT5, 10, 25, 60, 10\r
+    LTEXT "Not available", IDD_ATTRIBUTESTEXT6, 70, 5, 60, 10\r
+    LTEXT "Not available", IDD_ATTRIBUTESTEXT7, 70, 15, 60, 10\r
+    LTEXT "Not available", IDD_ATTRIBUTESTEXT8, 70, 25, 60, 10\r
+    GROUPBOX "Units", IDD_ATTRIBUTESGROUP1, 6, 57, 139, 27\r
+    AUTORADIOBUTTON "Inches", IDD_ATTRIBUTESRB1, 12, 69, 35, 10, WS_GROUP\r
+    AUTORADIOBUTTON "cm", IDD_ATTRIBUTESRB2, 52, 69, 35, 10\r
+    AUTORADIOBUTTON "Pixels", IDD_ATTRIBUTESRB3, 92, 69, 35, 10\r
+    GROUPBOX "Colors", IDD_ATTRIBUTESGROUP2, 6, 88, 139, 27\r
+    AUTORADIOBUTTON "Black and white", IDD_ATTRIBUTESRB4, 12, 100, 70, 10, WS_GROUP\r
+    AUTORADIOBUTTON "Colors", IDD_ATTRIBUTESRB5, 92, 100, 35, 10\r
+    DEFPUSHBUTTON "OK", IDOK, 155, 8, 48, 14\r
+    PUSHBUTTON "Cancel", IDCANCEL, 155, 24, 48, 14\r
+    PUSHBUTTON "Default", IDD_ATTRIBUTESSTANDARD, 155, 40, 48, 14\r
+END\r
+\r
+LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US\r
+\r
+IDD_CHANGESIZE DIALOGEX 100, 100, 210, 80\r
+STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU\r
+FONT 8, "MS Shell Dlg"\r
+CAPTION "Change size"\r
+BEGIN\r
+    GROUPBOX "Change size", IDD_CHANGESIZEGROUP, 6, 6, 142, 66\r
+    ICON IDI_HORZSTRETCH, IDD_CHANGESIZEICON1, 12, 18\r
+    LTEXT "Horizontally:", IDD_CHANGESIZETEXT1, 45, 24, 40, 10\r
+    EDITTEXT IDD_CHANGESIZEEDIT1, 90, 23, 32, 12\r
+    LTEXT "%", IDD_CHANGESIZETEXT2, 125, 24, 15, 10\r
+    ICON IDI_VERTSTRETCH, IDD_CHANGESIZEICON2, 12, 43\r
+    LTEXT "Vertically:", IDD_CHANGESIZETEXT3, 45, 49, 40, 10\r
+    EDITTEXT IDD_CHANGESIZEEDIT2, 90, 48, 32, 12\r
+    LTEXT "%", IDD_CHANGESIZETEXT4, 125, 49, 15, 10\r
+    DEFPUSHBUTTON "OK", IDOK, 155, 8, 48, 14\r
+    PUSHBUTTON "Cancel", IDCANCEL, 155, 24, 48, 14\r
+END\r
+\r
+STRINGTABLE\r
+BEGIN\r
+    IDS_PROGRAMNAME, "Paint"\r
+    IDS_WINDOWTITLE, "%s - Paint"\r
+    IDS_INFOTITLE, "Paint for ReactOS"\r
+    IDS_INFOTEXT, "Paint for ReactOS is available under the GNU Lesser General Public License (LGPL) version 3 (see www.gnu.org)"\r
+    IDS_SAVEPROMPTTEXT, "Do you want to save the changes to %s?"\r
+    IDS_DEFAULTFILENAME, "Unnamed.bmp"\r
+    IDS_TOOLTIP1, "Free selection"\r
+    IDS_TOOLTIP2, "Selection"\r
+    IDS_TOOLTIP3, "Rubber"\r
+    IDS_TOOLTIP4, "Fill with color"\r
+    IDS_TOOLTIP5, "Select color"\r
+    IDS_TOOLTIP6, "Zoom"\r
+    IDS_TOOLTIP7, "Pencil"\r
+    IDS_TOOLTIP8, "Brush"\r
+    IDS_TOOLTIP9, "Airbrush"\r
+    IDS_TOOLTIP10, "Text"\r
+    IDS_TOOLTIP11, "Line"\r
+    IDS_TOOLTIP12, "Bezier curve"\r
+    IDS_TOOLTIP13, "Rectangle"\r
+    IDS_TOOLTIP14, "Polygon"\r
+    IDS_TOOLTIP15, "Ellipse"\r
+    IDS_TOOLTIP16, "Rounded rectangle"\r
+    IDS_OPENFILTER, "Bitmap files (*.bmp;*.dib)\1*.bmp;*.dib\1All files (*.*)\1*.*\1"\r
+    IDS_SAVEFILTER, "24 bit bitmap (*.bmp;*.dib)\1*.bmp;*.dib\1"\r
+END\r
diff --git a/reactos/base/applications/paint/lang/es-ES.rc b/reactos/base/applications/paint/lang/es-ES.rc
new file mode 100755 (executable)
index 0000000..558db4d
--- /dev/null
@@ -0,0 +1,201 @@
+/*\r
+ * Spanish Language resource file\r
+ * Traducido por: gabriel ilardi febrero 2009\r
+ */\r
\r
+LANGUAGE LANG_SPANISH, SUBLANG_NEUTRAL\r
+\r
+ID_MENU MENU\r
+BEGIN\r
+    POPUP "&Archivo"\r
+    BEGIN\r
+        MENUITEM "Nuevo\tCtrl+N", IDM_FILENEW\r
+        MENUITEM "Abrir...\tCtrl+O", IDM_FILEOPEN\r
+        MENUITEM "Guardar\tCtrl+S", IDM_FILESAVE\r
+        MENUITEM "Guardar como...", IDM_FILESAVEAS\r
+        MENUITEM SEPARATOR\r
+        MENUITEM "Fondo de pantalla (normal)", IDM_FILEASWALLPAPERPLANE\r
+        MENUITEM "Fondo de pantalla (centrado)", IDM_FILEASWALLPAPERCENTERED\r
+        MENUITEM "Fondo de pantalla (extendido)", IDM_FILEASWALLPAPERSTRETCHED\r
+        MENUITEM SEPARATOR\r
+        MENUITEM "Salir\tAlt+F4", IDM_FILEEXIT\r
+    END\r
+\r
+    POPUP "&Edición"\r
+    BEGIN\r
+        MENUITEM "Deshacer\tCtrl+Z", IDM_EDITUNDO\r
+        MENUITEM "Rehacer\tCtrl+Y", IDM_EDITREDO\r
+        MENUITEM SEPARATOR\r
+        MENUITEM "Cortar\tCtrl+X", IDM_EDITCUT\r
+        MENUITEM "Copiar\tCtrl+C", IDM_EDITCOPY\r
+        MENUITEM "Pegar\tCtrl+V", IDM_EDITPASTE\r
+        MENUITEM "Borrar selección\tDel", IDM_EDITDELETESELECTION\r
+        MENUITEM "Invertir selección", IDM_EDITINVERTSELECTION\r
+        MENUITEM "Seleccionar todo\tCtrl+A", IDM_EDITSELECTALL\r
+        MENUITEM SEPARATOR\r
+        MENUITEM "Copiar en...", IDM_EDITCOPYTO\r
+        MENUITEM "Pegar desde...", IDM_EDITPASTEFROM\r
+    END\r
+\r
+    POPUP "&Vista"\r
+    BEGIN\r
+        MENUITEM "Caja de herramientas\tCtrl+T", IDM_VIEWTOOLBOX, CHECKED\r
+        MENUITEM "Paleta de colores\tCtrl+L", IDM_VIEWCOLORPALETTE, CHECKED\r
+        MENUITEM "Barra de estado", IDM_VIEWSTATUSBAR, CHECKED\r
+        MENUITEM "Barra de formato del texto", IDM_FORMATICONBAR, CHECKED, GRAYED\r
+        MENUITEM SEPARATOR\r
+        POPUP "Zoom"\r
+        BEGIN\r
+            MENUITEM "12,5%", IDM_VIEWZOOM125\r
+            MENUITEM "25%", IDM_VIEWZOOM25\r
+            MENUITEM "50%", IDM_VIEWZOOM50\r
+            MENUITEM "100%", IDM_VIEWZOOM100\r
+            MENUITEM "200%", IDM_VIEWZOOM200\r
+            MENUITEM "400%", IDM_VIEWZOOM400\r
+            MENUITEM "800%", IDM_VIEWZOOM800\r
+        END\r
+        MENUITEM "Ver en pantalla completa\tCtrl+F", IDM_VIEWFULLSCREEN\r
+    END\r
+    \r
+    POPUP "&Imagen"\r
+    BEGIN\r
+        MENUITEM "Rotar/Invertir...\tCtrl+R", IDM_IMAGEROTATEMIRROR\r
+        MENUITEM "Cambiar dimensiones...\tCtrl+W", IDM_IMAGECHANGESIZE\r
+        MENUITEM "Recortar", IDM_IMAGECROP\r
+        MENUITEM "Invertir colores\tCtrl+I", IDM_IMAGEINVERTCOLORS\r
+        MENUITEM "Atributos...\tCtrl+E", IDM_IMAGEATTRIBUTES\r
+        MENUITEM "Borrar imagen\tCtrl+Shft+N", IDM_IMAGEDELETEIMAGE\r
+        MENUITEM "Opaco", IDM_IMAGEDRAWOPAQUE\r
+    END\r
+    \r
+    POPUP "&Colores"\r
+    BEGIN\r
+        MENUITEM "Editar paleta...", IDM_COLORSEDITPALETTE\r
+    END\r
+    \r
+    POPUP "&?"\r
+    BEGIN\r
+        MENUITEM "Ayuda", IDM_HELPHELPTOPICS\r
+        MENUITEM SEPARATOR\r
+        MENUITEM "Acerca", IDM_HELPINFO\r
+    END\r
+END\r
+\r
+LANGUAGE LANG_SPANISH, SUBLANG_NEUTRAL\r
+\r
+ID_ACCELERATORS ACCELERATORS\r
+BEGIN\r
+    "^N", IDM_FILENEW\r
+    "^O", IDM_FILEOPEN\r
+    "^S", IDM_FILESAVE\r
+    "^Z", IDM_EDITUNDO\r
+    "^Y", IDM_EDITREDO\r
+    "^X", IDM_EDITCUT\r
+    "^C", IDM_EDITCOPY\r
+    "^V", IDM_EDITPASTE\r
+    VK_DELETE, IDM_EDITDELETESELECTION, VIRTKEY\r
+    "^A", IDM_EDITSELECTALL\r
+    "^T", IDM_VIEWTOOLBOX\r
+    "^L", IDM_VIEWCOLORPALETTE\r
+    "^F", IDM_VIEWFULLSCREEN\r
+    "^R", IDM_IMAGEROTATEMIRROR\r
+    "^W", IDM_IMAGECHANGESIZE\r
+    "^I", IDM_IMAGEINVERTCOLORS\r
+    "^E", IDM_IMAGEATTRIBUTES\r
+    "N", IDM_IMAGEDELETEIMAGE, CONTROL, SHIFT, VIRTKEY\r
+END\r
+\r
+LANGUAGE LANG_SPANISH, SUBLANG_NEUTRAL\r
+\r
+IDD_MIRRORROTATE DIALOGEX 100, 100, 180, 100\r
+STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU\r
+FONT 8, "MS Shell Dlg"\r
+CAPTION "Rotar e invertir"\r
+BEGIN\r
+    GROUPBOX "Rotar e invertir", IDD_MIRRORROTATEGROUP, 6, 6, 112, 86\r
+    AUTORADIOBUTTON "Invertir horizontalmente", IDD_MIRRORROTATERB1, 12, 18, 100, 10, WS_GROUP\r
+    AUTORADIOBUTTON "Invertir verticalmente", IDD_MIRRORROTATERB2, 12, 30, 100, 10\r
+    AUTORADIOBUTTON "Rotar", IDD_MIRRORROTATERB3, 12, 42, 100, 10\r
+    AUTORADIOBUTTON "90°", IDD_MIRRORROTATERB4, 42, 54, 50, 10, WS_GROUP | WS_DISABLED\r
+    AUTORADIOBUTTON "180°", IDD_MIRRORROTATERB5, 42, 66, 50, 10, WS_DISABLED\r
+    AUTORADIOBUTTON "270°", IDD_MIRRORROTATERB6, 42, 78, 50, 10, WS_DISABLED\r
+    DEFPUSHBUTTON "Aceptar", IDOK, 125, 8, 48, 14\r
+    PUSHBUTTON "Cancelar", IDCANCEL, 125, 24, 48, 14\r
+END\r
+\r
+LANGUAGE LANG_SPANISH, SUBLANG_NEUTRAL\r
+\r
+IDD_ATTRIBUTES DIALOGEX 100, 100, 210, 120\r
+STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU\r
+FONT 8, "MS Shell Dlg"\r
+CAPTION "Atributos"\r
+BEGIN\r
+    EDITTEXT IDD_ATTRIBUTESEDIT1, 40, 40, 35, 12\r
+    EDITTEXT IDD_ATTRIBUTESEDIT2, 110, 40, 35, 12\r
+    LTEXT "Ancho:", IDD_ATTRIBUTESTEXT1, 10, 40, 30, 10\r
+    LTEXT "Altura:", IDD_ATTRIBUTESTEXT2, 80, 40, 30, 10\r
+    LTEXT "Fecha modificación:", IDD_ATTRIBUTESTEXT3, 10, 5, 60, 10\r
+    LTEXT "Espacio en disco:", IDD_ATTRIBUTESTEXT4, 10, 15, 60, 10\r
+    LTEXT "Resolución:", IDD_ATTRIBUTESTEXT5, 10, 25, 60, 10\r
+    LTEXT "No disponible", IDD_ATTRIBUTESTEXT6, 70, 5, 60, 10\r
+    LTEXT "No disponible", IDD_ATTRIBUTESTEXT7, 70, 15, 60, 10\r
+    LTEXT "No disponible", IDD_ATTRIBUTESTEXT8, 70, 25, 60, 10\r
+    GROUPBOX "Unidades", IDD_ATTRIBUTESGROUP1, 6, 57, 139, 27\r
+    AUTORADIOBUTTON "Pulgadas", IDD_ATTRIBUTESRB1, 12, 69, 35, 10, WS_GROUP\r
+    AUTORADIOBUTTON "cm", IDD_ATTRIBUTESRB2, 52, 69, 35, 10\r
+    AUTORADIOBUTTON "Pixels", IDD_ATTRIBUTESRB3, 92, 69, 35, 10\r
+    GROUPBOX "Colores", IDD_ATTRIBUTESGROUP2, 6, 88, 139, 27\r
+    AUTORADIOBUTTON "Blanco y negro", IDD_ATTRIBUTESRB4, 12, 100, 70, 10, WS_GROUP\r
+    AUTORADIOBUTTON "Colores", IDD_ATTRIBUTESRB5, 92, 100, 35, 10\r
+    DEFPUSHBUTTON "Aceptar", IDOK, 155, 8, 48, 14\r
+    PUSHBUTTON "Cancelar", IDCANCEL, 155, 24, 48, 14\r
+    PUSHBUTTON "Predefinido", IDD_ATTRIBUTESSTANDARD, 155, 40, 48, 14\r
+END\r
+\r
+LANGUAGE LANG_SPANISH, SUBLANG_NEUTRAL\r
+\r
+IDD_CHANGESIZE DIALOGEX 100, 100, 210, 80\r
+STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU\r
+FONT 8, "MS Shell Dlg"\r
+CAPTION "Redimensionar"\r
+BEGIN\r
+    GROUPBOX "Redimensionar", IDD_CHANGESIZEGROUP, 6, 6, 142, 66\r
+    ICON IDI_HORZSTRETCH, IDD_CHANGESIZEICON1, 12, 18\r
+    LTEXT "Horizontalmente:", IDD_CHANGESIZETEXT1, 45, 24, 40, 10\r
+    EDITTEXT IDD_CHANGESIZEEDIT1, 90, 23, 32, 12\r
+    LTEXT "%", IDD_CHANGESIZETEXT2, 125, 24, 15, 10\r
+    ICON IDI_VERTSTRETCH, IDD_CHANGESIZEICON2, 12, 43\r
+    LTEXT "Verticalmente:", IDD_CHANGESIZETEXT3, 45, 49, 40, 10\r
+    EDITTEXT IDD_CHANGESIZEEDIT2, 90, 48, 32, 12\r
+    LTEXT "%", IDD_CHANGESIZETEXT4, 125, 49, 15, 10\r
+    DEFPUSHBUTTON "Aceptar", IDOK, 155, 8, 48, 14\r
+    PUSHBUTTON "Cancelar", IDCANCEL, 155, 24, 48, 14\r
+END\r
+\r
+STRINGTABLE\r
+BEGIN\r
+    IDS_PROGRAMNAME, "Paint"\r
+    IDS_WINDOWTITLE, "%s - Paint"\r
+    IDS_INFOTITLE, "Paint for ReactOS"\r
+    IDS_INFOTEXT, "Paint for ReactOS is available under the GNU Lesser General Public License (LGPL) version 3 (see www.gnu.org)"\r
+    IDS_SAVEPROMPTTEXT, "Do you want to save the changes to %s?"\r
+    IDS_DEFAULTFILENAME, "Unnamed.bmp"\r
+    IDS_TOOLTIP1, "Free selection"\r
+    IDS_TOOLTIP2, "Selection"\r
+    IDS_TOOLTIP3, "Rubber"\r
+    IDS_TOOLTIP4, "Fill with color"\r
+    IDS_TOOLTIP5, "Select color"\r
+    IDS_TOOLTIP6, "Zoom"\r
+    IDS_TOOLTIP7, "Pencil"\r
+    IDS_TOOLTIP8, "Brush"\r
+    IDS_TOOLTIP9, "Airbrush"\r
+    IDS_TOOLTIP10, "Text"\r
+    IDS_TOOLTIP11, "Line"\r
+    IDS_TOOLTIP12, "Bezier curve"\r
+    IDS_TOOLTIP13, "Rectangle"\r
+    IDS_TOOLTIP14, "Polygon"\r
+    IDS_TOOLTIP15, "Ellipse"\r
+    IDS_TOOLTIP16, "Rounded rectangle"\r
+    IDS_OPENFILTER, "Bitmap files (*.bmp;*.dib)\1*.bmp;*.dib\1All files (*.*)\1*.*\1"\r
+    IDS_SAVEFILTER, "24 bit bitmap (*.bmp;*.dib)\1*.bmp;*.dib\1"\r
+END\r
diff --git a/reactos/base/applications/paint/lang/fr-FR.rc b/reactos/base/applications/paint/lang/fr-FR.rc
new file mode 100644 (file)
index 0000000..fc8e185
--- /dev/null
@@ -0,0 +1,201 @@
+/*\r
+ * FR-French Language resource file\r
+ * Translated by:\r
+ */\r
+\r
+LANGUAGE LANG_FRENCH, SUBLANG_FRENCH\r
+\r
+ID_MENU MENU\r
+BEGIN\r
+    POPUP "&Fichier"\r
+    BEGIN\r
+        MENUITEM "&Nouveau\tCtrl+N", IDM_FILENEW\r
+        MENUITEM "&Ouvrir...\tCtrl+O", IDM_FILEOPEN\r
+        MENUITEM "&Enregistrer\tCtrl+S", IDM_FILESAVE\r
+        MENUITEM "Enregistrer &sous...", IDM_FILESAVEAS\r
+        MENUITEM SEPARATOR\r
+        MENUITEM "Choisir comme image d'arrière-plan (mosaïque)", IDM_FILEASWALLPAPERPLANE\r
+        MENUITEM "Choisir comme image d'arrière-plan (centrée)", IDM_FILEASWALLPAPERCENTERED\r
+        MENUITEM "Choisir comme image d'arrière-plan (étirée)", IDM_FILEASWALLPAPERSTRETCHED\r
+        MENUITEM SEPARATOR\r
+        MENUITEM "&Quitter\tAlt+F4", IDM_FILEEXIT\r
+    END\r
+\r
+    POPUP "&Edition"\r
+    BEGIN\r
+        MENUITEM "Annuler\tCtrl+Z", IDM_EDITUNDO\r
+        MENUITEM "Rétablir\tCtrl+Y", IDM_EDITREDO\r
+        MENUITEM SEPARATOR\r
+        MENUITEM "Couper\tCtrl+X", IDM_EDITCUT\r
+        MENUITEM "Copier\tCtrl+C", IDM_EDITCOPY\r
+        MENUITEM "Coller\tCtrl+V", IDM_EDITPASTE\r
+        MENUITEM "Effacer la sélection\tDel", IDM_EDITDELETESELECTION\r
+        MENUITEM "Inverser la sélection", IDM_EDITINVERTSELECTION\r
+        MENUITEM "Sélectionner tout\tCtrl+A", IDM_EDITSELECTALL\r
+        MENUITEM SEPARATOR\r
+        MENUITEM "Copier vers...", IDM_EDITCOPYTO\r
+        MENUITEM "Coller à partir de...", IDM_EDITPASTEFROM\r
+    END\r
+\r
+    POPUP "&Affichage"\r
+    BEGIN\r
+        MENUITEM "Boîte à outils\tCtrl+T", IDM_VIEWTOOLBOX, CHECKED\r
+        MENUITEM "Palette de couleurs\tCtrl+L", IDM_VIEWCOLORPALETTE, CHECKED\r
+        MENUITEM "Barre d'état", IDM_VIEWSTATUSBAR, CHECKED\r
+        MENUITEM "Barre d'outils texte", IDM_FORMATICONBAR, CHECKED, GRAYED\r
+        MENUITEM SEPARATOR\r
+        POPUP "Zoom"\r
+        BEGIN\r
+            MENUITEM "12,5%", IDM_VIEWZOOM125\r
+            MENUITEM "25%", IDM_VIEWZOOM25\r
+            MENUITEM "50%", IDM_VIEWZOOM50\r
+            MENUITEM "100%", IDM_VIEWZOOM100\r
+            MENUITEM "200%", IDM_VIEWZOOM200\r
+            MENUITEM "400%", IDM_VIEWZOOM400\r
+            MENUITEM "800%", IDM_VIEWZOOM800\r
+        END\r
+        MENUITEM "Plein écran\tCtrl+F", IDM_VIEWFULLSCREEN\r
+    END\r
+    \r
+    POPUP "&Image"\r
+    BEGIN\r
+        MENUITEM "Retourner/Faire pivoter...\tCtrl+R", IDM_IMAGEROTATEMIRROR\r
+        MENUITEM "Redimensionner...\tCtrl+W", IDM_IMAGECHANGESIZE\r
+        MENUITEM "Rogner", IDM_IMAGECROP\r
+        MENUITEM "Inverser les couleurs\tCtrl+I", IDM_IMAGEINVERTCOLORS\r
+        MENUITEM "Attributs...\tCtrl+E", IDM_IMAGEATTRIBUTES\r
+        MENUITEM "Effacer l'image\tCtrl+Shft+N", IDM_IMAGEDELETEIMAGE\r
+        MENUITEM "Dessiner opaque", IDM_IMAGEDRAWOPAQUE\r
+    END\r
+    \r
+    POPUP "&Couleurs"\r
+    BEGIN\r
+        MENUITEM "Modifier les couleurs...", IDM_COLORSEDITPALETTE\r
+    END\r
+    \r
+    POPUP "&?"\r
+    BEGIN\r
+        MENUITEM "Rubriques d'aide", IDM_HELPHELPTOPICS\r
+        MENUITEM SEPARATOR\r
+        MENUITEM "À propos de Paint", IDM_HELPINFO\r
+    END\r
+END\r
+\r
+LANGUAGE LANG_FRENCH, SUBLANG_FRENCH\r
+\r
+ID_ACCELERATORS ACCELERATORS\r
+BEGIN\r
+    "^N", IDM_FILENEW\r
+    "^O", IDM_FILEOPEN\r
+    "^S", IDM_FILESAVE\r
+    "^Z", IDM_EDITUNDO\r
+    "^Y", IDM_EDITREDO\r
+    "^X", IDM_EDITCUT\r
+    "^C", IDM_EDITCOPY\r
+    "^V", IDM_EDITPASTE\r
+    VK_DELETE, IDM_EDITDELETESELECTION, VIRTKEY\r
+    "^A", IDM_EDITSELECTALL\r
+    "^T", IDM_VIEWTOOLBOX\r
+    "^L", IDM_VIEWCOLORPALETTE\r
+    "^F", IDM_VIEWFULLSCREEN\r
+    "^R", IDM_IMAGEROTATEMIRROR\r
+    "^W", IDM_IMAGECHANGESIZE\r
+    "^I", IDM_IMAGEINVERTCOLORS\r
+    "^E", IDM_IMAGEATTRIBUTES\r
+    "N", IDM_IMAGEDELETEIMAGE, CONTROL, SHIFT, VIRTKEY\r
+END\r
+\r
+LANGUAGE LANG_FRENCH, SUBLANG_FRENCH\r
+\r
+IDD_MIRRORROTATE DIALOGEX 100, 100, 180, 100\r
+STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU\r
+FONT 8, "MS Shell Dlg"\r
+CAPTION "Retourner et faire pivoter"\r
+BEGIN\r
+    GROUPBOX "Retourner ou faire pivoter", IDD_MIRRORROTATEGROUP, 6, 6, 112, 86\r
+    AUTORADIOBUTTON "Retourner horizontalement", IDD_MIRRORROTATERB1, 12, 18, 100, 10, WS_GROUP\r
+    AUTORADIOBUTTON "Retourner verticalement", IDD_MIRRORROTATERB2, 12, 30, 100, 10\r
+    AUTORADIOBUTTON "Faire pivoter d'un angle de", IDD_MIRRORROTATERB3, 12, 42, 100, 10\r
+    AUTORADIOBUTTON "90°", IDD_MIRRORROTATERB4, 42, 54, 50, 10, WS_GROUP | WS_DISABLED\r
+    AUTORADIOBUTTON "180°", IDD_MIRRORROTATERB5, 42, 66, 50, 10, WS_DISABLED\r
+    AUTORADIOBUTTON "270°", IDD_MIRRORROTATERB6, 42, 78, 50, 10, WS_DISABLED\r
+    DEFPUSHBUTTON "OK", IDOK, 125, 8, 48, 14\r
+    PUSHBUTTON "Annuler", IDCANCEL, 125, 24, 48, 14\r
+END\r
+\r
+LANGUAGE LANG_FRENCH, SUBLANG_FRENCH\r
+\r
+IDD_ATTRIBUTES DIALOGEX 100, 100, 210, 120\r
+STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU\r
+FONT 8, "MS Shell Dlg"\r
+CAPTION "Attributs"\r
+BEGIN\r
+    EDITTEXT IDD_ATTRIBUTESEDIT1, 40, 40, 35, 12\r
+    EDITTEXT IDD_ATTRIBUTESEDIT2, 110, 40, 35, 12\r
+    LTEXT "Largeur :", IDD_ATTRIBUTESTEXT1, 10, 40, 30, 10\r
+    LTEXT "Hauteur :", IDD_ATTRIBUTESTEXT2, 80, 40, 30, 10\r
+    LTEXT "Dernier enregistrement du fichier :", IDD_ATTRIBUTESTEXT3, 10, 5, 60, 10\r
+    LTEXT "Taille sur le disque :", IDD_ATTRIBUTESTEXT4, 10, 15, 60, 10\r
+    LTEXT "Résolution :", IDD_ATTRIBUTESTEXT5, 10, 25, 60, 10\r
+    LTEXT "Non disponible", IDD_ATTRIBUTESTEXT6, 70, 5, 60, 10\r
+    LTEXT "Non disponible", IDD_ATTRIBUTESTEXT7, 70, 15, 60, 10\r
+    LTEXT "Non disponible", IDD_ATTRIBUTESTEXT8, 70, 25, 60, 10\r
+    GROUPBOX "Unités", IDD_ATTRIBUTESGROUP1, 6, 57, 139, 27\r
+    AUTORADIOBUTTON "Pouces", IDD_ATTRIBUTESRB1, 12, 69, 35, 10, WS_GROUP\r
+    AUTORADIOBUTTON "Cm", IDD_ATTRIBUTESRB2, 52, 69, 35, 10\r
+    AUTORADIOBUTTON "Pixels", IDD_ATTRIBUTESRB3, 92, 69, 35, 10\r
+    GROUPBOX "Couleurs", IDD_ATTRIBUTESGROUP2, 6, 88, 139, 27\r
+    AUTORADIOBUTTON "Noir et blanc", IDD_ATTRIBUTESRB4, 12, 100, 70, 10, WS_GROUP\r
+    AUTORADIOBUTTON "Couleurs", IDD_ATTRIBUTESRB5, 92, 100, 35, 10\r
+    DEFPUSHBUTTON "OK", IDOK, 155, 8, 48, 14\r
+    PUSHBUTTON "Annuler", IDCANCEL, 155, 24, 48, 14\r
+    PUSHBUTTON "Par défaut", IDD_ATTRIBUTESSTANDARD, 155, 40, 48, 14\r
+END\r
+\r
+LANGUAGE LANG_FRENCH, SUBLANG_FRENCH\r
+\r
+IDD_CHANGESIZE DIALOGEX 100, 100, 210, 80\r
+STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU\r
+FONT 8, "MS Shell Dlg"\r
+CAPTION "Redimensionner"\r
+BEGIN\r
+    GROUPBOX "Redimensionnement", IDD_CHANGESIZEGROUP, 6, 6, 142, 66\r
+    ICON IDI_HORZSTRETCH, IDD_CHANGESIZEICON1, 12, 18\r
+    LTEXT "Horizontal :", IDD_CHANGESIZETEXT1, 45, 24, 40, 10\r
+    EDITTEXT IDD_CHANGESIZEEDIT1, 90, 23, 32, 12\r
+    LTEXT "%", IDD_CHANGESIZETEXT2, 125, 24, 15, 10\r
+    ICON IDI_VERTSTRETCH, IDD_CHANGESIZEICON2, 12, 43\r
+    LTEXT "Vertical :", IDD_CHANGESIZETEXT3, 45, 49, 40, 10\r
+    EDITTEXT IDD_CHANGESIZEEDIT2, 90, 48, 32, 12\r
+    LTEXT "%", IDD_CHANGESIZETEXT4, 125, 49, 15, 10\r
+    DEFPUSHBUTTON "OK", IDOK, 155, 8, 48, 14\r
+    PUSHBUTTON "Annuler", IDCANCEL, 155, 24, 48, 14\r
+END\r
+\r
+STRINGTABLE\r
+BEGIN\r
+    IDS_PROGRAMNAME, "Paint"\r
+    IDS_WINDOWTITLE, "%s - Paint"\r
+    IDS_INFOTITLE, "Paint pour ReactOS"\r
+    IDS_INFOTEXT, "Paint pour ReactOS est mise à disposition sous la Licence publique générale limitée GNU (LGPL) version 3 (voir www.gnu.org)"\r
+    IDS_SAVEPROMPTTEXT, "Voulez-vous enregistrer les modifications de %s?"\r
+    IDS_DEFAULTFILENAME, "Sans titre.bmp"\r
+    IDS_TOOLTIP1, "Sélection libre"\r
+    IDS_TOOLTIP2, "Sélection"\r
+    IDS_TOOLTIP3, "Gomme"\r
+    IDS_TOOLTIP4, "Remplissage"\r
+    IDS_TOOLTIP5, "Prélèvement d'une couleur"\r
+    IDS_TOOLTIP6, "Zoom"\r
+    IDS_TOOLTIP7, "Pinceau"\r
+    IDS_TOOLTIP8, "Brosse"\r
+    IDS_TOOLTIP9, "Aérographe"\r
+    IDS_TOOLTIP10, "Texte"\r
+    IDS_TOOLTIP11, "Ligne"\r
+    IDS_TOOLTIP12, "Courbe"\r
+    IDS_TOOLTIP13, "Rectangle"\r
+    IDS_TOOLTIP14, "Polygone"\r
+    IDS_TOOLTIP15, "Ellipse"\r
+    IDS_TOOLTIP16, "Rectangle arrondi"\r
+    IDS_OPENFILTER, "Bitmap (*.bmp;*.dib)\1*.bmp;*.dib\1Tous les fichiers (*.*)\1*.*\1"\r
+    IDS_SAVEFILTER, "Bitmap 24 bit (*.bmp;*.dib)\1*.bmp;*.dib\1"\r
+END\r
diff --git a/reactos/base/applications/paint/lang/it-IT.rc b/reactos/base/applications/paint/lang/it-IT.rc
new file mode 100755 (executable)
index 0000000..94d1138
--- /dev/null
@@ -0,0 +1,201 @@
+/*\r
+ * Italian Language resource file\r
+ * Tradotto da: gabriel ilardi, febbraio 2009\r
+ */\r
\r
+LANGUAGE LANG_ITALIAN, SUBLANG_NEUTRAL\r
+\r
+ID_MENU MENU\r
+BEGIN\r
+    POPUP "&File"\r
+    BEGIN\r
+        MENUITEM "Nuovo\tCtrl+N", IDM_FILENEW\r
+        MENUITEM "Apri...\tCtrl+F12", IDM_FILEOPEN\r
+        MENUITEM "Salva\tMaiusc+F12", IDM_FILESAVE\r
+        MENUITEM "Salva con nome...", IDM_FILESAVEAS\r
+        MENUITEM SEPARATOR\r
+        MENUITEM "Imposta come sfondo (normale)", IDM_FILEASWALLPAPERPLANE\r
+        MENUITEM "Imposta come sfondo (centrata)", IDM_FILEASWALLPAPERCENTERED\r
+        MENUITEM "Imposta come sfondo (estesa)", IDM_FILEASWALLPAPERSTRETCHED\r
+        MENUITEM SEPARATOR\r
+        MENUITEM "Esci\tAlt+F4", IDM_FILEEXIT\r
+    END\r
+\r
+    POPUP "&Modifica"\r
+    BEGIN\r
+        MENUITEM "Annulla\tCtrl+Z", IDM_EDITUNDO\r
+        MENUITEM "Ripeti\tCtrl+Y", IDM_EDITREDO\r
+        MENUITEM SEPARATOR\r
+        MENUITEM "Taglia\tCtrl+X", IDM_EDITCUT\r
+        MENUITEM "Copia\tCtrl+C", IDM_EDITCOPY\r
+        MENUITEM "Incolla\tCtrl+V", IDM_EDITPASTE\r
+        MENUITEM "Cancella area selezionata\tCanc", IDM_EDITDELETESELECTION\r
+        MENUITEM "Inverte selezione", IDM_EDITINVERTSELECTION\r
+        MENUITEM "Seleziona tutto\tCtrl+5(tn)", IDM_EDITSELECTALL\r
+        MENUITEM SEPARATOR\r
+        MENUITEM "Copia su...", IDM_EDITCOPYTO\r
+        MENUITEM "Incolla da...", IDM_EDITPASTEFROM\r
+    END\r
+\r
+    POPUP "&Visualizza"\r
+    BEGIN\r
+        MENUITEM "Casella degli strumenti\tCtrl+T", IDM_VIEWTOOLBOX, CHECKED\r
+        MENUITEM "Tavolozza\tCtrl+L", IDM_VIEWCOLORPALETTE, CHECKED\r
+        MENUITEM "Barra di stato", IDM_VIEWSTATUSBAR, CHECKED\r
+        MENUITEM "Barra degli strumenti di testo", IDM_FORMATICONBAR, CHECKED, GRAYED\r
+        MENUITEM SEPARATOR\r
+        POPUP "Zoom"\r
+        BEGIN\r
+            MENUITEM "12,5%", IDM_VIEWZOOM125\r
+            MENUITEM "25%", IDM_VIEWZOOM25\r
+            MENUITEM "50%", IDM_VIEWZOOM50\r
+            MENUITEM "100%", IDM_VIEWZOOM100\r
+            MENUITEM "200%", IDM_VIEWZOOM200\r
+            MENUITEM "400%", IDM_VIEWZOOM400\r
+            MENUITEM "800%", IDM_VIEWZOOM800\r
+        END\r
+        MENUITEM "Visualizza a schermo intero\tCtrl+F", IDM_VIEWFULLSCREEN\r
+    END\r
+    \r
+    POPUP "&Immagine"\r
+    BEGIN\r
+        MENUITEM "Capovolgi/ruota...\tCtrl+R", IDM_IMAGEROTATEMIRROR\r
+        MENUITEM "Ridimensiona...\tCtrl+W", IDM_IMAGECHANGESIZE\r
+        MENUITEM "Ritaglia", IDM_IMAGECROP\r
+        MENUITEM "Inverti colori\tCtrl+I", IDM_IMAGEINVERTCOLORS\r
+        MENUITEM "Attributi...\tCtrl+E", IDM_IMAGEATTRIBUTES\r
+        MENUITEM "Cancella immagine\tCtrl+Maiusc+N", IDM_IMAGEDELETEIMAGE\r
+        MENUITEM "Opaco", IDM_IMAGEDRAWOPAQUE\r
+    END\r
+    \r
+    POPUP "&Colori"\r
+    BEGIN\r
+        MENUITEM "Modifica colori...", IDM_COLORSEDITPALETTE\r
+    END\r
+    \r
+    POPUP "&?"\r
+    BEGIN\r
+        MENUITEM "Guida in linea", IDM_HELPHELPTOPICS\r
+        MENUITEM SEPARATOR\r
+        MENUITEM "Informazioni", IDM_HELPINFO\r
+    END\r
+END\r
+\r
+LANGUAGE LANG_ITALIAN, SUBLANG_NEUTRAL\r
+\r
+ID_ACCELERATORS ACCELERATORS\r
+BEGIN\r
+    "^N", IDM_FILENEW\r
+    VK_F12, IDM_FILEOPEN, CONTROL, VIRTKEY\r
+    VK_F12, IDM_FILESAVE, SHIFT, VIRTKEY\r
+    "^Z", IDM_EDITUNDO\r
+    "^Y", IDM_EDITREDO\r
+    "^X", IDM_EDITCUT\r
+    "^C", IDM_EDITCOPY\r
+    "^V", IDM_EDITPASTE\r
+    VK_DELETE, IDM_EDITDELETESELECTION, VIRTKEY\r
+    "5", IDM_EDITSELECTALL\r
+    "^T", IDM_VIEWTOOLBOX\r
+    "^L", IDM_VIEWCOLORPALETTE\r
+    "^F", IDM_VIEWFULLSCREEN\r
+    "^R", IDM_IMAGEROTATEMIRROR\r
+    "^W", IDM_IMAGECHANGESIZE\r
+    "^I", IDM_IMAGEINVERTCOLORS\r
+    "^E", IDM_IMAGEATTRIBUTES\r
+    "N", IDM_IMAGEDELETEIMAGE, CONTROL, SHIFT, VIRTKEY\r
+END\r
+\r
+LANGUAGE LANG_ITALIAN, SUBLANG_NEUTRAL\r
+\r
+IDD_MIRRORROTATE DIALOGEX 100, 100, 180, 100\r
+STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU\r
+FONT 8, "MS Shell Dlg"\r
+CAPTION "Capovolgi o ruota"\r
+BEGIN\r
+    GROUPBOX "Capovolgi o ruota", IDD_MIRRORROTATEGROUP, 6, 6, 112, 86\r
+    AUTORADIOBUTTON "Capovolgi orizzontalmente", IDD_MIRRORROTATERB1, 12, 18, 100, 10, WS_GROUP\r
+    AUTORADIOBUTTON "Capovolgi verticalmente", IDD_MIRRORROTATERB2, 12, 30, 100, 10\r
+    AUTORADIOBUTTON "Ruota di", IDD_MIRRORROTATERB3, 12, 42, 100, 10\r
+    AUTORADIOBUTTON "90°", IDD_MIRRORROTATERB4, 42, 54, 50, 10, WS_GROUP | WS_DISABLED\r
+    AUTORADIOBUTTON "180°", IDD_MIRRORROTATERB5, 42, 66, 50, 10, WS_DISABLED\r
+    AUTORADIOBUTTON "270°", IDD_MIRRORROTATERB6, 42, 78, 50, 10, WS_DISABLED\r
+    DEFPUSHBUTTON "OK", IDOK, 125, 8, 48, 14\r
+    PUSHBUTTON "Annulla", IDCANCEL, 125, 24, 48, 14\r
+END\r
+\r
+LANGUAGE LANG_ITALIAN, SUBLANG_NEUTRAL\r
+\r
+IDD_ATTRIBUTES DIALOGEX 100, 100, 210, 120\r
+STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU\r
+FONT 8, "MS Shell Dlg"\r
+CAPTION "Attributi"\r
+BEGIN\r
+    EDITTEXT IDD_ATTRIBUTESEDIT1, 40, 40, 35, 12\r
+    EDITTEXT IDD_ATTRIBUTESEDIT2, 110, 40, 35, 12\r
+    LTEXT "Larghezza:", IDD_ATTRIBUTESTEXT1, 10, 40, 30, 10\r
+    LTEXT "Altezza:", IDD_ATTRIBUTESTEXT2, 80, 40, 30, 10\r
+    LTEXT "Ultimo salvataggio:", IDD_ATTRIBUTESTEXT3, 10, 5, 60, 10\r
+    LTEXT "Dimensioni su disco:", IDD_ATTRIBUTESTEXT4, 10, 15, 60, 10\r
+    LTEXT "Risoluzione:", IDD_ATTRIBUTESTEXT5, 10, 25, 60, 10\r
+    LTEXT "Non disponibile", IDD_ATTRIBUTESTEXT6, 70, 5, 60, 10\r
+    LTEXT "Non disponibile", IDD_ATTRIBUTESTEXT7, 70, 15, 60, 10\r
+    LTEXT "Non disponibile", IDD_ATTRIBUTESTEXT8, 70, 25, 60, 10\r
+    GROUPBOX "Unità di misura", IDD_ATTRIBUTESGROUP1, 6, 57, 139, 27\r
+    AUTORADIOBUTTON "Pollici", IDD_ATTRIBUTESRB1, 12, 69, 35, 10, WS_GROUP\r
+    AUTORADIOBUTTON "Cm", IDD_ATTRIBUTESRB2, 52, 69, 35, 10\r
+    AUTORADIOBUTTON "Pixel", IDD_ATTRIBUTESRB3, 92, 69, 35, 10\r
+    GROUPBOX "Colori", IDD_ATTRIBUTESGROUP2, 6, 88, 139, 27\r
+    AUTORADIOBUTTON "Bianco e nero", IDD_ATTRIBUTESRB4, 12, 100, 70, 10, WS_GROUP\r
+    AUTORADIOBUTTON "Colori", IDD_ATTRIBUTESRB5, 92, 100, 35, 10\r
+    DEFPUSHBUTTON "OK", IDOK, 155, 8, 48, 14\r
+    PUSHBUTTON "Annulla", IDCANCEL, 155, 24, 48, 14\r
+    PUSHBUTTON "Predefiniti", IDD_ATTRIBUTESSTANDARD, 155, 40, 48, 14\r
+END\r
+\r
+LANGUAGE LANG_ITALIAN, SUBLANG_NEUTRAL\r
+\r
+IDD_CHANGESIZE DIALOGEX 100, 100, 210, 80\r
+STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU\r
+FONT 8, "MS Shell Dlg"\r
+CAPTION "Ridimensiona"\r
+BEGIN\r
+    GROUPBOX "Ridimensiona", IDD_CHANGESIZEGROUP, 6, 6, 142, 66\r
+    ICON IDI_HORZSTRETCH, IDD_CHANGESIZEICON1, 12, 18\r
+    LTEXT "Orizzontalmente:", IDD_CHANGESIZETEXT1, 45, 24, 40, 10\r
+    EDITTEXT IDD_CHANGESIZEEDIT1, 90, 23, 32, 12\r
+    LTEXT "%", IDD_CHANGESIZETEXT2, 125, 24, 15, 10\r
+    ICON IDI_VERTSTRETCH, IDD_CHANGESIZEICON2, 12, 43\r
+    LTEXT "Verticalmente:", IDD_CHANGESIZETEXT3, 45, 49, 40, 10\r
+    EDITTEXT IDD_CHANGESIZEEDIT2, 90, 48, 32, 12\r
+    LTEXT "%", IDD_CHANGESIZETEXT4, 125, 49, 15, 10\r
+    DEFPUSHBUTTON "OK", IDOK, 155, 8, 48, 14\r
+    PUSHBUTTON "Annulla", IDCANCEL, 155, 24, 48, 14\r
+END\r
+\r
+STRINGTABLE\r
+BEGIN\r
+    IDS_PROGRAMNAME, "Paint"\r
+    IDS_WINDOWTITLE, "%s - Paint"\r
+    IDS_INFOTITLE, "Paint for ReactOS"\r
+    IDS_INFOTEXT, "Paint for ReactOS is available under the GNU Lesser General Public License (LGPL) version 3 (see www.gnu.org)"\r
+    IDS_SAVEPROMPTTEXT, "Do you want to save the changes to %s?"\r
+    IDS_DEFAULTFILENAME, "Unnamed.bmp"\r
+    IDS_TOOLTIP1, "Free selection"\r
+    IDS_TOOLTIP2, "Selection"\r
+    IDS_TOOLTIP3, "Rubber"\r
+    IDS_TOOLTIP4, "Fill with color"\r
+    IDS_TOOLTIP5, "Select color"\r
+    IDS_TOOLTIP6, "Zoom"\r
+    IDS_TOOLTIP7, "Pencil"\r
+    IDS_TOOLTIP8, "Brush"\r
+    IDS_TOOLTIP9, "Airbrush"\r
+    IDS_TOOLTIP10, "Text"\r
+    IDS_TOOLTIP11, "Line"\r
+    IDS_TOOLTIP12, "Bezier curve"\r
+    IDS_TOOLTIP13, "Rectangle"\r
+    IDS_TOOLTIP14, "Polygon"\r
+    IDS_TOOLTIP15, "Ellipse"\r
+    IDS_TOOLTIP16, "Rounded rectangle"\r
+    IDS_OPENFILTER, "Bitmap files (*.bmp;*.dib)\1*.bmp;*.dib\1All files (*.*)\1*.*\1"\r
+    IDS_SAVEFILTER, "24 bit bitmap (*.bmp;*.dib)\1*.bmp;*.dib\1"\r
+END\r
diff --git a/reactos/base/applications/paint/lang/pt-BR.rc b/reactos/base/applications/paint/lang/pt-BR.rc
new file mode 100644 (file)
index 0000000..0520446
--- /dev/null
@@ -0,0 +1,201 @@
+/*\r
+ * Portuguese Brazilian Language resource file\r
+ * Translated by: Wagner Leandro Bueno Angelo\r
+ */\r
+\r
+LANGUAGE LANG_PORTUGUESE, SUBLANG_PORTUGUESE_BRAZILIAN\r
+\r
+ID_MENU MENU\r
+BEGIN\r
+    POPUP "&Arquivo"\r
+    BEGIN\r
+        MENUITEM "&Novo\tCtrl+N", IDM_FILENEW\r
+        MENUITEM "A&brir...\tCtrl+O", IDM_FILEOPEN\r
+        MENUITEM "&Salvar\tCtrl+S", IDM_FILESAVE\r
+        MENUITEM "Salvar &como...", IDM_FILESAVEAS\r
+        MENUITEM SEPARATOR\r
+        MENUITEM "Definir como plano de fundo (Lado a lado)", IDM_FILEASWALLPAPERPLANE\r
+        MENUITEM "Definir como plano de fundo (Centralizado)", IDM_FILEASWALLPAPERCENTERED\r
+        MENUITEM "Definir como plano de fundo (Esticado)", IDM_FILEASWALLPAPERSTRETCHED\r
+        MENUITEM SEPARATOR\r
+        MENUITEM "Sai&r\tAlt+F4", IDM_FILEEXIT\r
+    END\r
+\r
+    POPUP "&Editar"\r
+    BEGIN\r
+        MENUITEM "Desfa&zer\tCtrl+Z", IDM_EDITUNDO\r
+        MENUITEM "R&epetir\tCtrl+Y", IDM_EDITREDO\r
+        MENUITEM SEPARATOR\r
+        MENUITEM "&Recortar\tCtrl+X", IDM_EDITCUT\r
+        MENUITEM "&Copiar\tCtrl+C", IDM_EDITCOPY\r
+        MENUITEM "C&olar\tCtrl+V", IDM_EDITPASTE\r
+        MENUITEM "&Limpar seleção\tDel", IDM_EDITDELETESELECTION\r
+        MENUITEM "&Inverter seleção", IDM_EDITINVERTSELECTION\r
+        MENUITEM "Selecionar &tudo\tCtrl+A", IDM_EDITSELECTALL\r
+        MENUITEM SEPARATOR\r
+        MENUITEM "Copiar &para...", IDM_EDITCOPYTO\r
+        MENUITEM "Colar &de...", IDM_EDITPASTEFROM\r
+    END\r
+\r
+    POPUP "E&xibir"\r
+    BEGIN\r
+        MENUITEM "Caixa de &ferramentas\tCtrl+T", IDM_VIEWTOOLBOX, CHECKED\r
+        MENUITEM "Caixa de &cores\tCtrl+L", IDM_VIEWCOLORPALETTE, CHECKED\r
+        MENUITEM "Barra de &status", IDM_VIEWSTATUSBAR, CHECKED\r
+        MENUITEM "&Barra de ferramentas de texto", IDM_FORMATICONBAR, CHECKED, GRAYED\r
+        MENUITEM SEPARATOR\r
+        POPUP "&Zoom"\r
+        BEGIN\r
+            MENUITEM "12,5%", IDM_VIEWZOOM125\r
+            MENUITEM "25%", IDM_VIEWZOOM25\r
+            MENUITEM "50%", IDM_VIEWZOOM50\r
+            MENUITEM "100%", IDM_VIEWZOOM100\r
+            MENUITEM "200%", IDM_VIEWZOOM200\r
+            MENUITEM "400%", IDM_VIEWZOOM400\r
+            MENUITEM "800%", IDM_VIEWZOOM800\r
+        END\r
+        MENUITEM "E&xibir bitmap\tCtrl+F", IDM_VIEWFULLSCREEN\r
+    END\r
+    \r
+    POPUP "&Imagem"\r
+    BEGIN\r
+        MENUITEM "Inverter/&girar...\tCtrl+R", IDM_IMAGEROTATEMIRROR\r
+        MENUITEM "&Alongar/inclinar...\tCtrl+W", IDM_IMAGECHANGESIZE\r
+        MENUITEM "Cortar", IDM_IMAGECROP\r
+        MENUITEM "&Inverter cores\tCtrl+I", IDM_IMAGEINVERTCOLORS\r
+        MENUITEM "A&tributos...\tCtrl+E", IDM_IMAGEATTRIBUTES\r
+        MENUITEM "&Limpar imagem\tCtrl+Shft+N", IDM_IMAGEDELETEIMAGE\r
+        MENUITEM "&Desenho opaco", IDM_IMAGEDRAWOPAQUE\r
+    END\r
+\r
+    POPUP "&Cores"\r
+    BEGIN\r
+        MENUITEM "&Edit cores...", IDM_COLORSEDITPALETTE\r
+    END\r
+    \r
+    POPUP "&?"\r
+    BEGIN\r
+        MENUITEM "&Tópicos da Ajuda", IDM_HELPHELPTOPICS\r
+        MENUITEM SEPARATOR\r
+        MENUITEM "So&bre", IDM_HELPINFO\r
+    END\r
+END\r
+\r
+LANGUAGE LANG_PORTUGUESE, SUBLANG_PORTUGUESE_BRAZILIAN\r
+\r
+ID_ACCELERATORS ACCELERATORS\r
+BEGIN\r
+    "^N", IDM_FILENEW\r
+    "^O", IDM_FILEOPEN\r
+    "^S", IDM_FILESAVE\r
+    "^Z", IDM_EDITUNDO\r
+    "^Y", IDM_EDITREDO\r
+    "^X", IDM_EDITCUT\r
+    "^C", IDM_EDITCOPY\r
+    "^V", IDM_EDITPASTE\r
+    VK_DELETE, IDM_EDITDELETESELECTION, VIRTKEY\r
+    "^A", IDM_EDITSELECTALL\r
+    "^T", IDM_VIEWTOOLBOX\r
+    "^L", IDM_VIEWCOLORPALETTE\r
+    "^F", IDM_VIEWFULLSCREEN\r
+    "^R", IDM_IMAGEROTATEMIRROR\r
+    "^W", IDM_IMAGECHANGESIZE\r
+    "^I", IDM_IMAGEINVERTCOLORS\r
+    "^E", IDM_IMAGEATTRIBUTES\r
+    "N", IDM_IMAGEDELETEIMAGE, CONTROL, SHIFT, VIRTKEY\r
+END\r
+\r
+LANGUAGE LANG_PORTUGUESE, SUBLANG_PORTUGUESE_BRAZILIAN\r
+\r
+IDD_MIRRORROTATE DIALOGEX 100, 100, 180, 100\r
+STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU\r
+FONT 8, "MS Shell Dlg"\r
+CAPTION "Inverter e girar imagem"\r
+BEGIN\r
+    GROUPBOX "Inverter ou girar", IDD_MIRRORROTATEGROUP, 6, 6, 112, 86\r
+    AUTORADIOBUTTON "Inverter &horizontalmente", IDD_MIRRORROTATERB1, 12, 18, 100, 10, WS_GROUP\r
+    AUTORADIOBUTTON "Inverter &verticalmente", IDD_MIRRORROTATERB2, 12, 30, 100, 10\r
+    AUTORADIOBUTTON "&Girar", IDD_MIRRORROTATERB3, 12, 42, 100, 10\r
+    AUTORADIOBUTTON "90°", IDD_MIRRORROTATERB4, 42, 54, 50, 10, WS_GROUP | WS_DISABLED\r
+    AUTORADIOBUTTON "180°", IDD_MIRRORROTATERB5, 42, 66, 50, 10, WS_DISABLED\r
+    AUTORADIOBUTTON "270°", IDD_MIRRORROTATERB6, 42, 78, 50, 10, WS_DISABLED\r
+    DEFPUSHBUTTON "OK", IDOK, 125, 8, 48, 14\r
+    PUSHBUTTON "Cancelar", IDCANCEL, 125, 24, 48, 14\r
+END\r
+\r
+LANGUAGE LANG_PORTUGUESE, SUBLANG_PORTUGUESE_BRAZILIAN\r
+\r
+IDD_ATTRIBUTES DIALOGEX 100, 100, 210, 120\r
+STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU\r
+FONT 8, "MS Shell Dlg"\r
+CAPTION "Atributos"\r
+BEGIN\r
+    EDITTEXT IDD_ATTRIBUTESEDIT1, 40, 40, 35, 12\r
+    EDITTEXT IDD_ATTRIBUTESEDIT2, 110, 40, 35, 12\r
+    LTEXT "&Largura:", IDD_ATTRIBUTESTEXT1, 10, 40, 30, 10\r
+    LTEXT "Altura:", IDD_ATTRIBUTESTEXT2, 80, 40, 30, 10\r
+    LTEXT "Data do arquivo:", IDD_ATTRIBUTESTEXT3, 10, 5, 60, 10\r
+    LTEXT "Tamanho do arquivo:", IDD_ATTRIBUTESTEXT4, 10, 15, 60, 10\r
+    LTEXT "Resolução:", IDD_ATTRIBUTESTEXT5, 10, 25, 60, 10\r
+    LTEXT "não disponível", IDD_ATTRIBUTESTEXT6, 70, 5, 60, 10\r
+    LTEXT "não disponível", IDD_ATTRIBUTESTEXT7, 70, 15, 60, 10\r
+    LTEXT "não disponível", IDD_ATTRIBUTESTEXT8, 70, 25, 60, 10\r
+    GROUPBOX "Unidades", IDD_ATTRIBUTESGROUP1, 6, 57, 139, 27\r
+    AUTORADIOBUTTON "P&olegadas", IDD_ATTRIBUTESRB1, 12, 69, 35, 10, WS_GROUP\r
+    AUTORADIOBUTTON "c&m", IDD_ATTRIBUTESRB2, 52, 69, 35, 10\r
+    AUTORADIOBUTTON "Pi&xels", IDD_ATTRIBUTESRB3, 92, 69, 35, 10\r
+    GROUPBOX "Cores", IDD_ATTRIBUTESGROUP2, 6, 88, 139, 27\r
+    AUTORADIOBUTTON "Preto e &branco", IDD_ATTRIBUTESRB4, 12, 100, 70, 10, WS_GROUP\r
+    AUTORADIOBUTTON "Co&res", IDD_ATTRIBUTESRB5, 92, 100, 35, 10\r
+    DEFPUSHBUTTON "OK", IDOK, 155, 8, 48, 14\r
+    PUSHBUTTON "Cancelar", IDCANCEL, 155, 24, 48, 14\r
+    PUSHBUTTON "&Padrão", IDD_ATTRIBUTESSTANDARD, 155, 40, 48, 14\r
+END\r
+\r
+LANGUAGE LANG_PORTUGUESE, SUBLANG_PORTUGUESE_BRAZILIAN\r
+\r
+IDD_CHANGESIZE DIALOGEX 100, 100, 210, 80\r
+STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU\r
+FONT 8, "MS Shell Dlg"\r
+CAPTION "Alterar tamanho"\r
+BEGIN\r
+    GROUPBOX "Alterar tamanho", IDD_CHANGESIZEGROUP, 6, 6, 142, 66\r
+    ICON IDI_HORZSTRETCH, IDD_CHANGESIZEICON1, 12, 18\r
+    LTEXT "Horizontal:", IDD_CHANGESIZETEXT1, 45, 24, 40, 10\r
+    EDITTEXT IDD_CHANGESIZEEDIT1, 90, 23, 32, 12\r
+    LTEXT "%", IDD_CHANGESIZETEXT2, 125, 24, 15, 10\r
+    ICON IDI_VERTSTRETCH, IDD_CHANGESIZEICON2, 12, 43\r
+    LTEXT "Vertical:", IDD_CHANGESIZETEXT3, 45, 49, 40, 10\r
+    EDITTEXT IDD_CHANGESIZEEDIT2, 90, 48, 32, 12\r
+    LTEXT "%", IDD_CHANGESIZETEXT4, 125, 49, 15, 10\r
+    DEFPUSHBUTTON "OK", IDOK, 155, 8, 48, 14\r
+    PUSHBUTTON "Cancelar", IDCANCEL, 155, 24, 48, 14\r
+END\r
+\r
+STRINGTABLE\r
+BEGIN\r
+    IDS_PROGRAMNAME, "Paint"\r
+    IDS_WINDOWTITLE, "%s - Paint"\r
+    IDS_INFOTITLE, "Paint para ReactOS"\r
+    IDS_INFOTEXT, "Paint para ReactOS está disponível sob a licença GNU Lesser General Public License (LGPL) versão 3 (visite www.gnu.org)"\r
+    IDS_SAVEPROMPTTEXT, "Salvar as alterações em %s?"\r
+    IDS_DEFAULTFILENAME, "Imagem.bmp"\r
+    IDS_TOOLTIP1, "Selecionar forma livre"\r
+    IDS_TOOLTIP2, "Selecionar"\r
+    IDS_TOOLTIP3, "Apagador/Apagador de cor"\r
+    IDS_TOOLTIP4, "Preencher com cor"\r
+    IDS_TOOLTIP5, "Selecionar cor"\r
+    IDS_TOOLTIP6, "Lente de aumento"\r
+    IDS_TOOLTIP7, "Lápis"\r
+    IDS_TOOLTIP8, "Pincel"\r
+    IDS_TOOLTIP9, "Splay"\r
+    IDS_TOOLTIP10, "Texto"\r
+    IDS_TOOLTIP11, "Linnha"\r
+    IDS_TOOLTIP12, "Curva"\r
+    IDS_TOOLTIP13, "Retângulo"\r
+    IDS_TOOLTIP14, "Polígono"\r
+    IDS_TOOLTIP15, "Ellipse"\r
+    IDS_TOOLTIP16, "Retângulo arredondado"\r
+    IDS_OPENFILTER, "Arquivos de bitmap (*.bmp;*.dib)\1*.bmp;*.dib\1Todos os arquivos (*.*)\1*.*\1"\r
+    IDS_SAVEFILTER, "Bitmaps de 24 bits (*.bmp;*.dib)\1*.bmp;*.dib\1"\r
+END\r
diff --git a/reactos/base/applications/paint/lang/pt-PT.rc b/reactos/base/applications/paint/lang/pt-PT.rc
new file mode 100644 (file)
index 0000000..560a4a1
--- /dev/null
@@ -0,0 +1,201 @@
+/*\r
+ * Portuguese  Language resource file\r
+ * Translated by: Manuel D V Silva\r
+ */\r
+\r
+LANGUAGE LANG_PORTUGUESE, SUBLANG_PORTUGUESE\r
+\r
+ID_MENU MENU\r
+BEGIN\r
+    POPUP "&Ficheiro"\r
+    BEGIN\r
+        MENUITEM "&Novo\tCtrl+O", IDM_FILENEW\r
+        MENUITEM "&Abrir...\tCtrl+A", IDM_FILEOPEN\r
+        MENUITEM "&Guardar\tCtrl+G", IDM_FILESAVE\r
+        MENUITEM "Guardar &como...", IDM_FILESAVEAS\r
+        MENUITEM SEPARATOR\r
+        MENUITEM "Definir como fundo (Mosaico)", IDM_FILEASWALLPAPERPLANE\r
+        MENUITEM "Definir como fundo (Centrado)", IDM_FILEASWALLPAPERCENTERED\r
+        MENUITEM "Definir como fundo (Esticado)", IDM_FILEASWALLPAPERSTRETCHED\r
+        MENUITEM SEPARATOR\r
+        MENUITEM "Sai&r\tAlt+F4", IDM_FILEEXIT\r
+    END\r
+\r
+    POPUP "&Editar"\r
+    BEGIN\r
+        MENUITEM "An&ular\tCtrl+Z", IDM_EDITUNDO\r
+        MENUITEM "&Repetir\tCtrl+Y", IDM_EDITREDO\r
+        MENUITEM SEPARATOR\r
+        MENUITEM "Cor&tar\tCtrl+X", IDM_EDITCUT\r
+        MENUITEM "&Copiar\tCtrl+C", IDM_EDITCOPY\r
+        MENUITEM "Co&lar\tCtrl+V", IDM_EDITPASTE\r
+        MENUITEM "Limpar &seleção\tDel", IDM_EDITDELETESELECTION\r
+        MENUITEM "&Inverter seleção", IDM_EDITINVERTSELECTION\r
+        MENUITEM "Selecion&ar tudo\tCtrl+T", IDM_EDITSELECTALL\r
+        MENUITEM SEPARATOR\r
+        MENUITEM "C&opiar para...", IDM_EDITCOPYTO\r
+        MENUITEM "Colar &de...", IDM_EDITPASTEFROM\r
+    END\r
+\r
+    POPUP "&Ver"\r
+    BEGIN\r
+        MENUITEM "Caixa de &ferramentas\tCtrl+F", IDM_VIEWTOOLBOX, CHECKED\r
+        MENUITEM "&Caixa de cores\tCtrl+D", IDM_VIEWCOLORPALETTE, CHECKED\r
+        MENUITEM "Barra de e&stado", IDM_VIEWSTATUSBAR, CHECKED\r
+        MENUITEM "Barra de f&erramentas de texto", IDM_FORMATICONBAR, CHECKED, GRAYED\r
+        MENUITEM SEPARATOR\r
+        POPUP "&Zoom"\r
+        BEGIN\r
+            MENUITEM "12,5%", IDM_VIEWZOOM125\r
+            MENUITEM "25%", IDM_VIEWZOOM25\r
+            MENUITEM "50%", IDM_VIEWZOOM50\r
+            MENUITEM "100%", IDM_VIEWZOOM100\r
+            MENUITEM "200%", IDM_VIEWZOOM200\r
+            MENUITEM "400%", IDM_VIEWZOOM400\r
+            MENUITEM "800%", IDM_VIEWZOOM800\r
+        END\r
+        MENUITEM "&Ver mapa de bits\tCtrl+B", IDM_VIEWFULLSCREEN\r
+    END\r
+    \r
+    POPUP "&Imagem"\r
+    BEGIN\r
+        MENUITEM "I&nverter/rodar...\tCtrl+R", IDM_IMAGEROTATEMIRROR\r
+        MENUITEM "Redimensionar/&Torcer...\tCtrl+W", IDM_IMAGECHANGESIZE\r
+        MENUITEM "&Recortar", IDM_IMAGECROP\r
+        MENUITEM "Inverter &cores\tCtrl+I", IDM_IMAGEINVERTCOLORS\r
+        MENUITEM "&Atributos...\tCtrl+E", IDM_IMAGEATTRIBUTES\r
+        MENUITEM "&Limpar imagem\tCtrl+Shft+N", IDM_IMAGEDELETEIMAGE\r
+        MENUITEM "&Desenho opaco", IDM_IMAGEDRAWOPAQUE\r
+    END\r
+\r
+    POPUP "&Cores"\r
+    BEGIN\r
+        MENUITEM "&Editar cores...", IDM_COLORSEDITPALETTE\r
+    END\r
+    \r
+    POPUP "&Ajuda"\r
+    BEGIN\r
+        MENUITEM "&Tópicos da Ajuda", IDM_HELPHELPTOPICS\r
+        MENUITEM SEPARATOR\r
+        MENUITEM "&Acerca do Paint", IDM_HELPINFO\r
+    END\r
+END\r
+\r
+LANGUAGE LANG_PORTUGUESE, SUBLANG_PORTUGUESE\r
+\r
+ID_ACCELERATORS ACCELERATORS\r
+BEGIN\r
+    "^O", IDM_FILENEW\r
+    "^A", IDM_FILEOPEN\r
+    "^G", IDM_FILESAVE\r
+    "^Z", IDM_EDITUNDO\r
+    "^Y", IDM_EDITREDO\r
+    "^X", IDM_EDITCUT\r
+    "^C", IDM_EDITCOPY\r
+    "^V", IDM_EDITPASTE\r
+    VK_DELETE, IDM_EDITDELETESELECTION, VIRTKEY\r
+    "^T", IDM_EDITSELECTALL\r
+    "^F", IDM_VIEWTOOLBOX\r
+    "^D", IDM_VIEWCOLORPALETTE\r
+    "^F", IDM_VIEWFULLSCREEN\r
+    "^R", IDM_IMAGEROTATEMIRROR\r
+    "^W", IDM_IMAGECHANGESIZE\r
+    "^I", IDM_IMAGEINVERTCOLORS\r
+    "^E", IDM_IMAGEATTRIBUTES\r
+    "N", IDM_IMAGEDELETEIMAGE, CONTROL, SHIFT, VIRTKEY\r
+END\r
+\r
+LANGUAGE LANG_PORTUGUESE, SUBLANG_PORTUGUESE\r
+\r
+IDD_MIRRORROTATE DIALOGEX 100, 100, 180, 100\r
+STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU\r
+FONT 8, "MS Shell Dlg"\r
+CAPTION "Inverter e rodar"\r
+BEGIN\r
+    GROUPBOX "Inverter ou rodar", IDD_MIRRORROTATEGROUP, 6, 6, 112, 86\r
+    AUTORADIOBUTTON "Inverter na &horizontal", IDD_MIRRORROTATERB1, 12, 18, 100, 10, WS_GROUP\r
+    AUTORADIOBUTTON "Inverter na &vertical", IDD_MIRRORROTATERB2, 12, 30, 100, 10\r
+    AUTORADIOBUTTON "&Rodar por ângulo", IDD_MIRRORROTATERB3, 12, 42, 100, 10\r
+    AUTORADIOBUTTON "90°", IDD_MIRRORROTATERB4, 42, 54, 50, 10, WS_GROUP | WS_DISABLED\r
+    AUTORADIOBUTTON "180°", IDD_MIRRORROTATERB5, 42, 66, 50, 10, WS_DISABLED\r
+    AUTORADIOBUTTON "270°", IDD_MIRRORROTATERB6, 42, 78, 50, 10, WS_DISABLED\r
+    DEFPUSHBUTTON "OK", IDOK, 125, 8, 48, 14\r
+    PUSHBUTTON "Cancelar", IDCANCEL, 125, 24, 48, 14\r
+END\r
+\r
+LANGUAGE LANG_PORTUGUESE, SUBLANG_PORTUGUESE\r
+\r
+IDD_ATTRIBUTES DIALOGEX 100, 100, 210, 120\r
+STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU\r
+FONT 8, "MS Shell Dlg"\r
+CAPTION "Atributos"\r
+BEGIN\r
+    EDITTEXT IDD_ATTRIBUTESEDIT1, 40, 40, 35, 12\r
+    EDITTEXT IDD_ATTRIBUTESEDIT2, 110, 40, 35, 12\r
+    LTEXT "&Largura:", IDD_ATTRIBUTESTEXT1, 10, 40, 30, 10\r
+    LTEXT "Altura:", IDD_ATTRIBUTESTEXT2, 80, 40, 30, 10\r
+    LTEXT "Data do arquivo:", IDD_ATTRIBUTESTEXT3, 10, 5, 60, 10\r
+    LTEXT "Tamanho do arquivo:", IDD_ATTRIBUTESTEXT4, 10, 15, 60, 10\r
+    LTEXT "Resolução:", IDD_ATTRIBUTESTEXT5, 10, 25, 60, 10\r
+    LTEXT "não disponível", IDD_ATTRIBUTESTEXT6, 70, 5, 60, 10\r
+    LTEXT "não disponível", IDD_ATTRIBUTESTEXT7, 70, 15, 60, 10\r
+    LTEXT "não disponível", IDD_ATTRIBUTESTEXT8, 70, 25, 60, 10\r
+    GROUPBOX "Unidades", IDD_ATTRIBUTESGROUP1, 6, 57, 139, 27\r
+    AUTORADIOBUTTON "P&olegadas", IDD_ATTRIBUTESRB1, 12, 69, 35, 10, WS_GROUP\r
+    AUTORADIOBUTTON "c&m", IDD_ATTRIBUTESRB2, 52, 69, 35, 10\r
+    AUTORADIOBUTTON "Pi&xels", IDD_ATTRIBUTESRB3, 92, 69, 35, 10\r
+    GROUPBOX "Cores", IDD_ATTRIBUTESGROUP2, 6, 88, 139, 27\r
+    AUTORADIOBUTTON "Preto e &branco", IDD_ATTRIBUTESRB4, 12, 100, 70, 10, WS_GROUP\r
+    AUTORADIOBUTTON "Co&res", IDD_ATTRIBUTESRB5, 92, 100, 35, 10\r
+    DEFPUSHBUTTON "OK", IDOK, 155, 8, 48, 14\r
+    PUSHBUTTON "Cancelar", IDCANCEL, 155, 24, 48, 14\r
+    PUSHBUTTON "&Predefinição", IDD_ATTRIBUTESSTANDARD, 155, 40, 48, 14\r
+END\r
+\r
+LANGUAGE LANG_PORTUGUESE, SUBLANG_PORTUGUESE\r
+\r
+IDD_CHANGESIZE DIALOGEX 100, 100, 210, 80\r
+STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU\r
+FONT 8, "MS Shell Dlg"\r
+CAPTION "Alterar tamanho"\r
+BEGIN\r
+    GROUPBOX "Alterar tamanho", IDD_CHANGESIZEGROUP, 6, 6, 142, 66\r
+    ICON IDI_HORZSTRETCH, IDD_CHANGESIZEICON1, 12, 18\r
+    LTEXT "Horizontal:", IDD_CHANGESIZETEXT1, 45, 24, 40, 10\r
+    EDITTEXT IDD_CHANGESIZEEDIT1, 90, 23, 32, 12\r
+    LTEXT "%", IDD_CHANGESIZETEXT2, 125, 24, 15, 10\r
+    ICON IDI_VERTSTRETCH, IDD_CHANGESIZEICON2, 12, 43\r
+    LTEXT "Vertical:", IDD_CHANGESIZETEXT3, 45, 49, 40, 10\r
+    EDITTEXT IDD_CHANGESIZEEDIT2, 90, 48, 32, 12\r
+    LTEXT "%", IDD_CHANGESIZETEXT4, 125, 49, 15, 10\r
+    DEFPUSHBUTTON "OK", IDOK, 155, 8, 48, 14\r
+    PUSHBUTTON "Cancelar", IDCANCEL, 155, 24, 48, 14\r
+END\r
+\r
+STRINGTABLE\r
+BEGIN\r
+    IDS_PROGRAMNAME, "Paint"\r
+    IDS_WINDOWTITLE, "%s - Paint"\r
+    IDS_INFOTITLE, "Paint para ReactOS"\r
+    IDS_INFOTEXT, "Paint para ReactOS está disponível sob a licença GNU Lesser General Public License (LGPL) versão 3 (visite www.gnu.org)"\r
+    IDS_SAVEPROMPTTEXT, "Pretende guardar as alterações a %s?"\r
+    IDS_DEFAULTFILENAME, "Imagem.bmp"\r
+    IDS_TOOLTIP1, "Selecionar forma livre"\r
+    IDS_TOOLTIP2, "Selecionar"\r
+    IDS_TOOLTIP3, "Borracha/Apagar cor"\r
+    IDS_TOOLTIP4, "Preencher com cor"\r
+    IDS_TOOLTIP5, "Escolher cor"\r
+    IDS_TOOLTIP6, "Lupa"\r
+    IDS_TOOLTIP7, "Lápis"\r
+    IDS_TOOLTIP8, "Pincel"\r
+    IDS_TOOLTIP9, "Aerógrafo"\r
+    IDS_TOOLTIP10, "Texto"\r
+    IDS_TOOLTIP11, "Linnha"\r
+    IDS_TOOLTIP12, "Curva"\r
+    IDS_TOOLTIP13, "Retângulo"\r
+    IDS_TOOLTIP14, "Polígono"\r
+    IDS_TOOLTIP15, "Elipse"\r
+    IDS_TOOLTIP16, "Retângulo arredondado"\r
+    IDS_OPENFILTER, "Ficheiros de mapa de bits (*.bmp;*.dib)\1*.bmp;*.dib\1Todos os arquivos (*.*)\1*.*\1"\r
+    IDS_SAVEFILTER, "Mapa de bits de 24 bits (*.bmp;*.dib)\1*.bmp;*.dib\1"\r
+END\r
diff --git a/reactos/base/applications/paint/lang/sk-SK.rc b/reactos/base/applications/paint/lang/sk-SK.rc
new file mode 100644 (file)
index 0000000..a512b33
--- /dev/null
@@ -0,0 +1,202 @@
+/*\r
+ * Slovak Language resource file\r
+ * Translated by: Mário Kaèmár /Mario Kacmar/ aka Kario\r
+ * Last changed:  28-04-2009\r
+ */\r
+\r
+LANGUAGE LANG_SLOVAK, SUBLANG_DEFAULT\r
+\r
+ID_MENU MENU\r
+BEGIN\r
+    POPUP "&Súbor"\r
+    BEGIN\r
+        MENUITEM "&Nový\tCtrl+N", IDM_FILENEW\r
+        MENUITEM "&Otvori\9d...\tCtrl+O", IDM_FILEOPEN\r
+        MENUITEM "&Ulo\9ei\9d\tCtrl+S", IDM_FILESAVE\r
+        MENUITEM "Ulo\9ei\9d &ako...", IDM_FILESAVEAS\r
+        MENUITEM SEPARATOR\r
+        MENUITEM "Nastavi\9d ako pozadie (vydlá\9edené)", IDM_FILEASWALLPAPERPLANE\r
+        MENUITEM "Nastavi\9d ako pozadie (v strede)", IDM_FILEASWALLPAPERCENTERED\r
+        MENUITEM "Nastavi\9d ako pozadie (roztiahnuté)", IDM_FILEASWALLPAPERSTRETCHED\r
+        MENUITEM SEPARATOR\r
+        MENUITEM "Skonèi\9d\tAlt+F4", IDM_FILEEXIT\r
+    END\r
+\r
+    POPUP "&Upravi\9d"\r
+    BEGIN\r
+        MENUITEM "Spä\9d\tCtrl+Z", IDM_EDITUNDO\r
+        MENUITEM "Znova\tCtrl+Y", IDM_EDITREDO\r
+        MENUITEM SEPARATOR\r
+        MENUITEM "Vystrihnú\9d\tCtrl+X", IDM_EDITCUT\r
+        MENUITEM "Kopírova\9d\tCtrl+C", IDM_EDITCOPY\r
+        MENUITEM "Prilepi\9d\tCtrl+V", IDM_EDITPASTE\r
+        MENUITEM "Vymaza\9d výber\tDel", IDM_EDITDELETESELECTION\r
+        MENUITEM "Invertova\9d výber", IDM_EDITINVERTSELECTION\r
+        MENUITEM "Vybra\9d v\9aetko\tCtrl+A", IDM_EDITSELECTALL\r
+        MENUITEM SEPARATOR\r
+        MENUITEM "Kopírova\9d do...", IDM_EDITCOPYTO\r
+        MENUITEM "Prilepi\9d z...", IDM_EDITPASTEFROM\r
+    END\r
+\r
+    POPUP "&Zobrazi\9d"\r
+    BEGIN\r
+        MENUITEM "Panel nástrojov\tCtrl+T", IDM_VIEWTOOLBOX, CHECKED\r
+        MENUITEM "Paleta farieb\tCtrl+L", IDM_VIEWCOLORPALETTE, CHECKED\r
+        MENUITEM "Stavový riadok", IDM_VIEWSTATUSBAR, CHECKED\r
+        MENUITEM "Format icon bar", IDM_FORMATICONBAR, CHECKED, GRAYED\r
+        MENUITEM SEPARATOR\r
+        POPUP "Lupa" //Zoom\r
+        BEGIN\r
+            MENUITEM "12,5%", IDM_VIEWZOOM125\r
+            MENUITEM "25%", IDM_VIEWZOOM25\r
+            MENUITEM "50%", IDM_VIEWZOOM50\r
+            MENUITEM "100%", IDM_VIEWZOOM100\r
+            MENUITEM "200%", IDM_VIEWZOOM200\r
+            MENUITEM "400%", IDM_VIEWZOOM400\r
+            MENUITEM "800%", IDM_VIEWZOOM800\r
+        END\r
+        MENUITEM "Celá obrazovka\tCtrl+F", IDM_VIEWFULLSCREEN\r
+    END\r
+\r
+    POPUP "&Obrázok"\r
+    BEGIN\r
+        MENUITEM "Prevráti\9d alebo otoèi\9d...\tCtrl+R", IDM_IMAGEROTATEMIRROR\r
+        MENUITEM "Zmeni\9d ve¾kos\9d...\tCtrl+W", IDM_IMAGECHANGESIZE\r
+        MENUITEM "Oreza\9d", IDM_IMAGECROP\r
+        MENUITEM "Invertova\9d farby\tCtrl+I", IDM_IMAGEINVERTCOLORS\r
+        MENUITEM "Atribúty...\tCtrl+E", IDM_IMAGEATTRIBUTES\r
+        MENUITEM "Vymaza\9d obrázok\tCtrl+Shft+N", IDM_IMAGEDELETEIMAGE\r
+        MENUITEM "Kresli\9d nepriesvitne", IDM_IMAGEDRAWOPAQUE\r
+    END\r
+\r
+    POPUP "&Farby"\r
+    BEGIN\r
+        MENUITEM "Upravi\9d paletu...", IDM_COLORSEDITPALETTE\r
+    END\r
+\r
+    POPUP "&Pomocník"\r
+    BEGIN\r
+        MENUITEM "&Témy pomocníka", IDM_HELPHELPTOPICS\r
+        MENUITEM SEPARATOR\r
+        MENUITEM "Info", IDM_HELPINFO\r
+    END\r
+END\r
+\r
+LANGUAGE LANG_SLOVAK, SUBLANG_DEFAULT\r
+\r
+ID_ACCELERATORS ACCELERATORS\r
+BEGIN\r
+    "^N", IDM_FILENEW\r
+    "^O", IDM_FILEOPEN\r
+    "^S", IDM_FILESAVE\r
+    "^Z", IDM_EDITUNDO\r
+    "^Y", IDM_EDITREDO\r
+    "^X", IDM_EDITCUT\r
+    "^C", IDM_EDITCOPY\r
+    "^V", IDM_EDITPASTE\r
+    VK_DELETE, IDM_EDITDELETESELECTION, VIRTKEY\r
+    "^A", IDM_EDITSELECTALL\r
+    "^T", IDM_VIEWTOOLBOX\r
+    "^L", IDM_VIEWCOLORPALETTE\r
+    "^F", IDM_VIEWFULLSCREEN\r
+    "^R", IDM_IMAGEROTATEMIRROR\r
+    "^W", IDM_IMAGECHANGESIZE\r
+    "^I", IDM_IMAGEINVERTCOLORS\r
+    "^E", IDM_IMAGEATTRIBUTES\r
+    "N", IDM_IMAGEDELETEIMAGE, CONTROL, SHIFT, VIRTKEY\r
+END\r
+\r
+LANGUAGE LANG_SLOVAK, SUBLANG_DEFAULT\r
+\r
+IDD_MIRRORROTATE DIALOGEX 100, 100, 180, 100\r
+STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU\r
+FONT 8, "MS Shell Dlg"\r
+CAPTION "Prevrátenie alebo otoèenie obrázka"\r
+BEGIN\r
+    GROUPBOX "Prevráti\9d alebo otoèi\9d", IDD_MIRRORROTATEGROUP, 6, 6, 112, 86\r
+    AUTORADIOBUTTON "Prevráti\9d vodorovne", IDD_MIRRORROTATERB1, 12, 18, 100, 10, WS_GROUP\r
+    AUTORADIOBUTTON "Prevráti\9d zvislo", IDD_MIRRORROTATERB2, 12, 30, 100, 10\r
+    AUTORADIOBUTTON "&Otoèi\9d o uhol", IDD_MIRRORROTATERB3, 12, 42, 100, 10\r
+    AUTORADIOBUTTON "90°", IDD_MIRRORROTATERB4, 42, 54, 50, 10, WS_GROUP | WS_DISABLED\r
+    AUTORADIOBUTTON "180°", IDD_MIRRORROTATERB5, 42, 66, 50, 10, WS_DISABLED\r
+    AUTORADIOBUTTON "270°", IDD_MIRRORROTATERB6, 42, 78, 50, 10, WS_DISABLED\r
+    DEFPUSHBUTTON "OK", IDOK, 125, 8, 48, 14\r
+    PUSHBUTTON "Zru\9ai\9d", IDCANCEL, 125, 24, 48, 14\r
+END\r
+\r
+LANGUAGE LANG_SLOVAK, SUBLANG_DEFAULT\r
+\r
+IDD_ATTRIBUTES DIALOGEX 100, 100, 210, 120\r
+STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU\r
+FONT 8, "MS Shell Dlg"\r
+CAPTION "Atribúty"\r
+BEGIN\r
+    EDITTEXT IDD_ATTRIBUTESEDIT1, 40, 40, 35, 12\r
+    EDITTEXT IDD_ATTRIBUTESEDIT2, 110, 40, 35, 12\r
+    LTEXT "\8aírka:", IDD_ATTRIBUTESTEXT1, 10, 40, 30, 10\r
+    LTEXT "Vý\9aka:", IDD_ATTRIBUTESTEXT2, 80, 40, 30, 10\r
+    LTEXT "File date:", IDD_ATTRIBUTESTEXT3, 10, 5, 60, 10\r
+    LTEXT "File size:", IDD_ATTRIBUTESTEXT4, 10, 15, 60, 10\r
+    LTEXT "Rozlí\9aenie:", IDD_ATTRIBUTESTEXT5, 10, 25, 60, 10\r
+    LTEXT "Nie je k dispozícii", IDD_ATTRIBUTESTEXT6, 70, 5, 60, 10\r
+    LTEXT "Nie je k dispozícii", IDD_ATTRIBUTESTEXT7, 70, 15, 60, 10\r
+    LTEXT "Nie je k dispozícii", IDD_ATTRIBUTESTEXT8, 70, 25, 60, 10\r
+    GROUPBOX "Jednotky", IDD_ATTRIBUTESGROUP1, 6, 57, 139, 27\r
+    AUTORADIOBUTTON "palce", IDD_ATTRIBUTESRB1, 12, 69, 35, 10, WS_GROUP\r
+    AUTORADIOBUTTON "cm", IDD_ATTRIBUTESRB2, 52, 69, 35, 10\r
+    AUTORADIOBUTTON "pixely", IDD_ATTRIBUTESRB3, 92, 69, 35, 10\r
+    GROUPBOX "Farby", IDD_ATTRIBUTESGROUP2, 6, 88, 139, 27\r
+    AUTORADIOBUTTON "Èierno&bielo", IDD_ATTRIBUTESRB4, 12, 100, 70, 10, WS_GROUP\r
+    AUTORADIOBUTTON "&Farebne", IDD_ATTRIBUTESRB5, 92, 100, 45, 10\r
+    DEFPUSHBUTTON "OK", IDOK, 155, 8, 48, 14\r
+    PUSHBUTTON "Zru\9ai\9d", IDCANCEL, 155, 24, 48, 14\r
+    PUSHBUTTON "&Predvolené", IDD_ATTRIBUTESSTANDARD, 155, 40, 48, 14\r
+END\r
+\r
+LANGUAGE LANG_SLOVAK, SUBLANG_DEFAULT\r
+\r
+IDD_CHANGESIZE DIALOGEX 100, 100, 210, 80\r
+STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU\r
+FONT 8, "MS Shell Dlg"\r
+CAPTION "Zmena ve¾kosti"\r
+BEGIN\r
+    GROUPBOX "Zmeni\9d ve¾kos\9d", IDD_CHANGESIZEGROUP, 6, 6, 142, 66\r
+    ICON IDI_HORZSTRETCH, IDD_CHANGESIZEICON1, 12, 18\r
+    LTEXT "&Vodorovne:", IDD_CHANGESIZETEXT1, 45, 24, 40, 10\r
+    EDITTEXT IDD_CHANGESIZEEDIT1, 90, 23, 32, 12\r
+    LTEXT "%", IDD_CHANGESIZETEXT2, 125, 24, 15, 10\r
+    ICON IDI_VERTSTRETCH, IDD_CHANGESIZEICON2, 12, 43\r
+    LTEXT "&Zvislo:", IDD_CHANGESIZETEXT3, 45, 49, 40, 10\r
+    EDITTEXT IDD_CHANGESIZEEDIT2, 90, 48, 32, 12\r
+    LTEXT "%", IDD_CHANGESIZETEXT4, 125, 49, 15, 10\r
+    DEFPUSHBUTTON "OK", IDOK, 155, 8, 48, 14\r
+    PUSHBUTTON "Zru\9ai\9d", IDCANCEL, 155, 24, 48, 14\r
+END\r
+\r
+STRINGTABLE\r
+BEGIN\r
+    IDS_PROGRAMNAME, "Skicár"\r
+    IDS_WINDOWTITLE, "%s - Skicár"\r
+    IDS_INFOTITLE, "Skicár systému ReactOS"\r
+    IDS_INFOTEXT, "Skicár systému ReactOS je dostupný za podmienok GNU Lesser General Public License (LGPL) verzia 3 (viï www.gnu.org)"\r
+    IDS_SAVEPROMPTTEXT, "Chcete ulo\9ei\9d vykonané zmeny do %s?"\r
+    IDS_DEFAULTFILENAME, "Bez názvu.bmp"\r
+    IDS_TOOLTIP1, "Vo¾ný výber"\r
+    IDS_TOOLTIP2, "Výber"\r
+    IDS_TOOLTIP3, "Guma"\r
+    IDS_TOOLTIP4, "Vyplni\9d farbou"\r
+    IDS_TOOLTIP5, "Zvoli\9d farbu"\r
+    IDS_TOOLTIP6, "Lupa"\r
+    IDS_TOOLTIP7, "Ceruzka"\r
+    IDS_TOOLTIP8, "\8atetec"\r
+    IDS_TOOLTIP9, "Sprej"\r
+    IDS_TOOLTIP10, "Text"\r
+    IDS_TOOLTIP11, "Èiara"\r
+    IDS_TOOLTIP12, "Bézierova krivka" //kreslenie kriviek pomocou bodov\r
+    IDS_TOOLTIP13, "Obdå\9enik" //pravouholník\r
+    IDS_TOOLTIP14, "Polygón" //mnohouholník\r
+    IDS_TOOLTIP15, "Elipsa"\r
+    IDS_TOOLTIP16, "Zaoblený obdå\9enik"\r
+    IDS_OPENFILTER, "Bitmap files (*.bmp;*.dib)\1*.bmp;*.dib\1All files (*.*)\1*.*\1"\r
+    IDS_SAVEFILTER, "24 bit bitmap (*.bmp;*.dib)\1*.bmp;*.dib\1"\r
+END\r
diff --git a/reactos/base/applications/paint/lang/uk-UA.rc b/reactos/base/applications/paint/lang/uk-UA.rc
new file mode 100644 (file)
index 0000000..fba60e3
--- /dev/null
@@ -0,0 +1,202 @@
+/*\r
+ * Ukrainian Language resource file\r
+ * Translated by: Artem Reznikov\r
+ * Last changed:  29-04-2009\r
+ */\r
+\r
+LANGUAGE LANG_UKRAINIAN, SUBLANG_DEFAULT\r
+\r
+ID_MENU MENU\r
+BEGIN\r
+    POPUP "&Ôàéë"\r
+    BEGIN\r
+        MENUITEM "&Ñòâîðèòè\tCtrl+N", IDM_FILENEW\r
+        MENUITEM "Â&³äêðèòè...\tCtrl+O", IDM_FILEOPEN\r
+        MENUITEM "Ç&áåðåãòè\tCtrl+S", IDM_FILESAVE\r
+        MENUITEM "Çáåðåãòè &ÿê...", IDM_FILESAVEAS\r
+        MENUITEM SEPARATOR\r
+        MENUITEM "&Çàìîñòèòè ðîáî÷èé ñò³ë Windows", IDM_FILEASWALLPAPERPLANE\r
+        MENUITEM "Äî ö&åíòðó ðîáî÷îãî ñòîëà Windows", IDM_FILEASWALLPAPERCENTERED\r
+        MENUITEM "&Âñòàíîâèòè ÿê òëî (ðîçòÿãíóòè)", IDM_FILEASWALLPAPERSTRETCHED\r
+        MENUITEM SEPARATOR\r
+        MENUITEM "Â&èõ³ä\tAlt+F4", IDM_FILEEXIT\r
+    END\r
+\r
+    POPUP "&Ðåäàãóâàííÿ"\r
+    BEGIN\r
+        MENUITEM "Ñêàñóâàòè\tCtrl+Z", IDM_EDITUNDO\r
+        MENUITEM "Ïîâòîðèòè\tCtrl+Y", IDM_EDITREDO\r
+        MENUITEM SEPARATOR\r
+        MENUITEM "Âèð³çàòè\tCtrl+X", IDM_EDITCUT\r
+        MENUITEM "Êîï³þâàòè\tCtrl+C", IDM_EDITCOPY\r
+        MENUITEM "Âñòàâèòè\tCtrl+V", IDM_EDITPASTE\r
+        MENUITEM "Âèäàëèòè âèä³ëåííÿ\tDel", IDM_EDITDELETESELECTION\r
+        MENUITEM "Îáåðíóòè âèä³ëåííÿ", IDM_EDITINVERTSELECTION\r
+        MENUITEM "Âèä³ëèòè âñå\tCtrl+A", IDM_EDITSELECTALL\r
+        MENUITEM SEPARATOR\r
+        MENUITEM "Êîï³þâàòè äî ôàéëó...", IDM_EDITCOPYTO\r
+        MENUITEM "Âñòàâèòè ç ôàéëó...", IDM_EDITPASTEFROM\r
+    END\r
+\r
+    POPUP "Â&èãëÿä"\r
+    BEGIN\r
+        MENUITEM "Ïàíåëü åëåìåíò³â\tCtrl+T", IDM_VIEWTOOLBOX, CHECKED\r
+        MENUITEM "Ïàë³òðà\tCtrl+L", IDM_VIEWCOLORPALETTE, CHECKED\r
+        MENUITEM "Ðÿäîê ñòàíó", IDM_VIEWSTATUSBAR, CHECKED\r
+        MENUITEM "Ïàíåëü àòðèáóò³â òåêñòó", IDM_FORMATICONBAR, CHECKED, GRAYED\r
+        MENUITEM SEPARATOR\r
+        POPUP "Ìàñøòàá"\r
+        BEGIN\r
+            MENUITEM "12,5%", IDM_VIEWZOOM125\r
+            MENUITEM "25%", IDM_VIEWZOOM25\r
+            MENUITEM "50%", IDM_VIEWZOOM50\r
+            MENUITEM "100%", IDM_VIEWZOOM100\r
+            MENUITEM "200%", IDM_VIEWZOOM200\r
+            MENUITEM "400%", IDM_VIEWZOOM400\r
+            MENUITEM "800%", IDM_VIEWZOOM800\r
+        END\r
+        MENUITEM "Íà âåñü åêðàí\tCtrl+F", IDM_VIEWFULLSCREEN\r
+    END\r
+    \r
+    POPUP "&Çîáðàæåííÿ"\r
+    BEGIN\r
+        MENUITEM "³äîáðàçèòè/ïîâåðíóòè...\tCtrl+R", IDM_IMAGEROTATEMIRROR\r
+        MENUITEM "Çì³íèòè ðîçì³ð...\tCtrl+W", IDM_IMAGECHANGESIZE\r
+        MENUITEM "Îá³òíóòè", IDM_IMAGECROP\r
+        MENUITEM "Îáåðíóòè êîëüîðè\tCtrl+I", IDM_IMAGEINVERTCOLORS\r
+        MENUITEM "Àòðèáóòè...\tCtrl+E", IDM_IMAGEATTRIBUTES\r
+        MENUITEM "Âèäàëèòè ìàëþíîê\tCtrl+Shft+N", IDM_IMAGEDELETEIMAGE\r
+        MENUITEM "Íåïðîçîðå òëî", IDM_IMAGEDRAWOPAQUE\r
+    END\r
+    \r
+    POPUP "&Êîëüîðè"\r
+    BEGIN\r
+        MENUITEM "Çì³íèòè ïàë³òðó...", IDM_COLORSEDITPALETTE\r
+    END\r
+    \r
+    POPUP "&Äîâ³äêà"\r
+    BEGIN\r
+        MENUITEM "Âèêëèê äîâ³äêè", IDM_HELPHELPTOPICS\r
+        MENUITEM SEPARATOR\r
+        MENUITEM "²íôîðìàö³ÿ", IDM_HELPINFO\r
+    END\r
+END\r
+\r
+LANGUAGE LANG_UKRAINIAN, SUBLANG_DEFAULT\r
+\r
+ID_ACCELERATORS ACCELERATORS\r
+BEGIN\r
+    "^N", IDM_FILENEW\r
+    "^O", IDM_FILEOPEN\r
+    "^S", IDM_FILESAVE\r
+    "^Z", IDM_EDITUNDO\r
+    "^Y", IDM_EDITREDO\r
+    "^X", IDM_EDITCUT\r
+    "^C", IDM_EDITCOPY\r
+    "^V", IDM_EDITPASTE\r
+    VK_DELETE, IDM_EDITDELETESELECTION, VIRTKEY\r
+    "^A", IDM_EDITSELECTALL\r
+    "^T", IDM_VIEWTOOLBOX\r
+    "^L", IDM_VIEWCOLORPALETTE\r
+    "^F", IDM_VIEWFULLSCREEN\r
+    "^R", IDM_IMAGEROTATEMIRROR\r
+    "^W", IDM_IMAGECHANGESIZE\r
+    "^I", IDM_IMAGEINVERTCOLORS\r
+    "^E", IDM_IMAGEATTRIBUTES\r
+    "N", IDM_IMAGEDELETEIMAGE, CONTROL, SHIFT, VIRTKEY\r
+END\r
+\r
+LANGUAGE LANG_UKRAINIAN, SUBLANG_DEFAULT\r
+\r
+IDD_MIRRORROTATE DIALOGEX 100, 100, 180, 100\r
+STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU\r
+FONT 8, "MS Shell Dlg"\r
+CAPTION "³äîáðàæåííÿ é ïîâîðîò"\r
+BEGIN\r
+    GROUPBOX "Ïåðåãîðíóòè àáî ïîâåðíóòè", IDD_MIRRORROTATEGROUP, 6, 6, 112, 86\r
+    AUTORADIOBUTTON "³äîáðàçèòè çë³âà íàïðàâî", IDD_MIRRORROTATERB1, 12, 18, 100, 10, WS_GROUP\r
+    AUTORADIOBUTTON "³äîáðàçèòè çâåðõó âíèç", IDD_MIRRORROTATERB2, 12, 30, 100, 10\r
+    AUTORADIOBUTTON "Ïîâåðíóòè íà êóò", IDD_MIRRORROTATERB3, 12, 42, 100, 10\r
+    AUTORADIOBUTTON "90°", IDD_MIRRORROTATERB4, 42, 54, 50, 10, WS_GROUP | WS_DISABLED\r
+    AUTORADIOBUTTON "180°", IDD_MIRRORROTATERB5, 42, 66, 50, 10, WS_DISABLED\r
+    AUTORADIOBUTTON "270°", IDD_MIRRORROTATERB6, 42, 78, 50, 10, WS_DISABLED\r
+    DEFPUSHBUTTON "OK", IDOK, 125, 8, 48, 14\r
+    PUSHBUTTON "Ñêàñóâàòè", IDCANCEL, 125, 24, 48, 14\r
+END\r
+\r
+LANGUAGE LANG_UKRAINIAN, SUBLANG_DEFAULT\r
+\r
+IDD_ATTRIBUTES DIALOGEX 100, 100, 210, 120\r
+STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU\r
+FONT 8, "MS Shell Dlg"\r
+CAPTION "Àòðèáóòè"\r
+BEGIN\r
+    EDITTEXT IDD_ATTRIBUTESEDIT1, 40, 40, 35, 12\r
+    EDITTEXT IDD_ATTRIBUTESEDIT2, 110, 40, 35, 12\r
+    LTEXT "Øèðèíà:", IDD_ATTRIBUTESTEXT1, 10, 40, 30, 10\r
+    LTEXT "Âèñîòà:", IDD_ATTRIBUTESTEXT2, 80, 40, 30, 10\r
+    LTEXT "Äàòà ôàéëà:", IDD_ATTRIBUTESTEXT3, 10, 5, 60, 10\r
+    LTEXT "Ðîçì³ð ôàéëà:", IDD_ATTRIBUTESTEXT4, 10, 15, 60, 10\r
+    LTEXT "Ðîçä³ëüíà çäàòí³ñòü:", IDD_ATTRIBUTESTEXT5, 10, 25, 60, 10\r
+    LTEXT "Not available", IDD_ATTRIBUTESTEXT6, 70, 5, 60, 10\r
+    LTEXT "Not available", IDD_ATTRIBUTESTEXT7, 70, 15, 60, 10\r
+    LTEXT "Not available", IDD_ATTRIBUTESTEXT8, 70, 25, 60, 10\r
+    GROUPBOX "Îäèíèö³ âèì³ðþâàííÿ", IDD_ATTRIBUTESGROUP1, 6, 57, 139, 27\r
+    AUTORADIOBUTTON "äþéìè", IDD_ATTRIBUTESRB1, 12, 69, 35, 10, WS_GROUP\r
+    AUTORADIOBUTTON "ñì", IDD_ATTRIBUTESRB2, 52, 69, 35, 10\r
+    AUTORADIOBUTTON "ï³êñåë³", IDD_ATTRIBUTESRB3, 92, 69, 35, 10\r
+    GROUPBOX "Êîëüîðè", IDD_ATTRIBUTESGROUP2, 6, 88, 139, 27\r
+    AUTORADIOBUTTON "÷îðíî-á³ëà", IDD_ATTRIBUTESRB4, 12, 100, 70, 10, WS_GROUP\r
+    AUTORADIOBUTTON "êîëüîðîâà", IDD_ATTRIBUTESRB5, 92, 100, 35, 10\r
+    DEFPUSHBUTTON "OK", IDOK, 155, 8, 48, 14\r
+    PUSHBUTTON "Ñêàñóâàòè", IDCANCEL, 155, 24, 48, 14\r
+    PUSHBUTTON "Çà ïðîìîâ÷àííÿì", IDD_ATTRIBUTESSTANDARD, 155, 40, 48, 14\r
+END\r
+\r
+LANGUAGE LANG_UKRAINIAN, SUBLANG_DEFAULT\r
+\r
+IDD_CHANGESIZE DIALOGEX 100, 100, 210, 80\r
+STYLE DS_SHELLFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU\r
+FONT 8, "MS Shell Dlg"\r
+CAPTION "Çì³íà ðîçì³ðó"\r
+BEGIN\r
+    GROUPBOX "Çì³íåííÿ ðîçì³ðó", IDD_CHANGESIZEGROUP, 6, 6, 142, 66\r
+    ICON IDI_HORZSTRETCH, IDD_CHANGESIZEICON1, 12, 18\r
+    LTEXT "Ïî ãîðèçîíòàë³:", IDD_CHANGESIZETEXT1, 45, 24, 40, 10\r
+    EDITTEXT IDD_CHANGESIZEEDIT1, 90, 23, 32, 12\r
+    LTEXT "%", IDD_CHANGESIZETEXT2, 125, 24, 15, 10\r
+    ICON IDI_VERTSTRETCH, IDD_CHANGESIZEICON2, 12, 43\r
+    LTEXT "Ïî âåðòèêàë³:", IDD_CHANGESIZETEXT3, 45, 49, 40, 10\r
+    EDITTEXT IDD_CHANGESIZEEDIT2, 90, 48, 32, 12\r
+    LTEXT "%", IDD_CHANGESIZETEXT4, 125, 49, 15, 10\r
+    DEFPUSHBUTTON "OK", IDOK, 155, 8, 48, 14\r
+    PUSHBUTTON "Ñêàñóâàòè", IDCANCEL, 155, 24, 48, 14\r
+END\r
+\r
+STRINGTABLE\r
+BEGIN\r
+    IDS_PROGRAMNAME, "Paint"\r
+    IDS_WINDOWTITLE, "%s - Paint"\r
+    IDS_INFOTITLE, "Paint äëÿ ReactOS"\r
+    IDS_INFOTEXT, "Paint for ReactOS is available under the GNU Lesser General Public License (LGPL) version 3 (see www.gnu.org)"\r
+    IDS_SAVEPROMPTTEXT, "Çáåðåãòè çì³íè äî %s?"\r
+    IDS_DEFAULTFILENAME, "Áåç_³ìåí³.bmp"\r
+    IDS_TOOLTIP1, "Âèä³ëåííÿ äîâ³ëüíî¿ îáëàñò³"\r
+    IDS_TOOLTIP2, "Âèä³ëåííÿ"\r
+    IDS_TOOLTIP3, "Ëàñòèê"\r
+    IDS_TOOLTIP4, "Çàëèâêà"\r
+    IDS_TOOLTIP5, "Âèá³ð êîëüîð³â"\r
+    IDS_TOOLTIP6, "Ìàñøòàá"\r
+    IDS_TOOLTIP7, "Îë³âåöü"\r
+    IDS_TOOLTIP8, "Ïåíçåëü"\r
+    IDS_TOOLTIP9, "Ðîçïèëþâà÷"\r
+    IDS_TOOLTIP10, "Òåêñò"\r
+    IDS_TOOLTIP11, "˳í³ÿ"\r
+    IDS_TOOLTIP12, "Êðèâà Áåç'º"\r
+    IDS_TOOLTIP13, "Ïðÿìîêóòíèê"\r
+    IDS_TOOLTIP14, "Áàãàòîêóòíèê"\r
+    IDS_TOOLTIP15, "Åë³ïñ"\r
+    IDS_TOOLTIP16, "Ïðÿìîêóòíèê ç îêðóãëåíèìè êóòàìè"\r
+    IDS_OPENFILTER, "Òî÷êîâ³ ðèñóíêè (*.bmp;*.dib)\1*.bmp;*.dib\1Óñ³ ôàéëè (*.*)\1*.*\1"\r
+    IDS_SAVEFILTER, "24-ðîçðÿäíèé ðèñóíîê (*.bmp;*.dib)\1*.bmp;*.dib\1"\r
+END\r
diff --git a/reactos/base/applications/paint/lgpl.txt b/reactos/base/applications/paint/lgpl.txt
new file mode 100755 (executable)
index 0000000..b87303c
--- /dev/null
@@ -0,0 +1,165 @@
+                  GNU LESSER GENERAL PUBLIC LICENSE\r
+                       Version 3, 29 June 2007\r
+\r
+ Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>\r
+ Everyone is permitted to copy and distribute verbatim copies\r
+ of this license document, but changing it is not allowed.\r
+\r
+\r
+  This version of the GNU Lesser General Public License incorporates\r
+the terms and conditions of version 3 of the GNU General Public\r
+License, supplemented by the additional permissions listed below.\r
+\r
+  0. Additional Definitions. \r
+\r
+  As used herein, "this License" refers to version 3 of the GNU Lesser\r
+General Public License, and the "GNU GPL" refers to version 3 of the GNU\r
+General Public License.\r
+\r
+  "The Library" refers to a covered work governed by this License,\r
+other than an Application or a Combined Work as defined below.\r
+\r
+  An "Application" is any work that makes use of an interface provided\r
+by the Library, but which is not otherwise based on the Library.\r
+Defining a subclass of a class defined by the Library is deemed a mode\r
+of using an interface provided by the Library.\r
+\r
+  A "Combined Work" is a work produced by combining or linking an\r
+Application with the Library.  The particular version of the Library\r
+with which the Combined Work was made is also called the "Linked\r
+Version".\r
+\r
+  The "Minimal Corresponding Source" for a Combined Work means the\r
+Corresponding Source for the Combined Work, excluding any source code\r
+for portions of the Combined Work that, considered in isolation, are\r
+based on the Application, and not on the Linked Version.\r
+\r
+  The "Corresponding Application Code" for a Combined Work means the\r
+object code and/or source code for the Application, including any data\r
+and utility programs needed for reproducing the Combined Work from the\r
+Application, but excluding the System Libraries of the Combined Work.\r
+\r
+  1. Exception to Section 3 of the GNU GPL.\r
+\r
+  You may convey a covered work under sections 3 and 4 of this License\r
+without being bound by section 3 of the GNU GPL.\r
+\r
+  2. Conveying Modified Versions.\r
+\r
+  If you modify a copy of the Library, and, in your modifications, a\r
+facility refers to a function or data to be supplied by an Application\r
+that uses the facility (other than as an argument passed when the\r
+facility is invoked), then you may convey a copy of the modified\r
+version:\r
+\r
+   a) under this License, provided that you make a good faith effort to\r
+   ensure that, in the event an Application does not supply the\r
+   function or data, the facility still operates, and performs\r
+   whatever part of its purpose remains meaningful, or\r
+\r
+   b) under the GNU GPL, with none of the additional permissions of\r
+   this License applicable to that copy.\r
+\r
+  3. Object Code Incorporating Material from Library Header Files.\r
+\r
+  The object code form of an Application may incorporate material from\r
+a header file that is part of the Library.  You may convey such object\r
+code under terms of your choice, provided that, if the incorporated\r
+material is not limited to numerical parameters, data structure\r
+layouts and accessors, or small macros, inline functions and templates\r
+(ten or fewer lines in length), you do both of the following:\r
+\r
+   a) Give prominent notice with each copy of the object code that the\r
+   Library is used in it and that the Library and its use are\r
+   covered by this License.\r
+\r
+   b) Accompany the object code with a copy of the GNU GPL and this license\r
+   document.\r
+\r
+  4. Combined Works.\r
+\r
+  You may convey a Combined Work under terms of your choice that,\r
+taken together, effectively do not restrict modification of the\r
+portions of the Library contained in the Combined Work and reverse\r
+engineering for debugging such modifications, if you also do each of\r
+the following:\r
+\r
+   a) Give prominent notice with each copy of the Combined Work that\r
+   the Library is used in it and that the Library and its use are\r
+   covered by this License.\r
+\r
+   b) Accompany the Combined Work with a copy of the GNU GPL and this license\r
+   document.\r
+\r
+   c) For a Combined Work that displays copyright notices during\r
+   execution, include the copyright notice for the Library among\r
+   these notices, as well as a reference directing the user to the\r
+   copies of the GNU GPL and this license document.\r
+\r
+   d) Do one of the following:\r
+\r
+       0) Convey the Minimal Corresponding Source under the terms of this\r
+       License, and the Corresponding Application Code in a form\r
+       suitable for, and under terms that permit, the user to\r
+       recombine or relink the Application with a modified version of\r
+       the Linked Version to produce a modified Combined Work, in the\r
+       manner specified by section 6 of the GNU GPL for conveying\r
+       Corresponding Source.\r
+\r
+       1) Use a suitable shared library mechanism for linking with the\r
+       Library.  A suitable mechanism is one that (a) uses at run time\r
+       a copy of the Library already present on the user's computer\r
+       system, and (b) will operate properly with a modified version\r
+       of the Library that is interface-compatible with the Linked\r
+       Version. \r
+\r
+   e) Provide Installation Information, but only if you would otherwise\r
+   be required to provide such information under section 6 of the\r
+   GNU GPL, and only to the extent that such information is\r
+   necessary to install and execute a modified version of the\r
+   Combined Work produced by recombining or relinking the\r
+   Application with a modified version of the Linked Version. (If\r
+   you use option 4d0, the Installation Information must accompany\r
+   the Minimal Corresponding Source and Corresponding Application\r
+   Code. If you use option 4d1, you must provide the Installation\r
+   Information in the manner specified by section 6 of the GNU GPL\r
+   for conveying Corresponding Source.)\r
+\r
+  5. Combined Libraries.\r
+\r
+  You may place library facilities that are a work based on the\r
+Library side by side in a single library together with other library\r
+facilities that are not Applications and are not covered by this\r
+License, and convey such a combined library under terms of your\r
+choice, if you do both of the following:\r
+\r
+   a) Accompany the combined library with a copy of the same work based\r
+   on the Library, uncombined with any other library facilities,\r
+   conveyed under the terms of this License.\r
+\r
+   b) Give prominent notice with the combined library that part of it\r
+   is a work based on the Library, and explaining where to find the\r
+   accompanying uncombined form of the same work.\r
+\r
+  6. Revised Versions of the GNU Lesser General Public License.\r
+\r
+  The Free Software Foundation may publish revised and/or new versions\r
+of the GNU Lesser General Public License from time to time. Such new\r
+versions will be similar in spirit to the present version, but may\r
+differ in detail to address new problems or concerns.\r
+\r
+  Each version is given a distinguishing version number. If the\r
+Library as you received it specifies that a certain numbered version\r
+of the GNU Lesser General Public License "or any later version"\r
+applies to it, you have the option of following the terms and\r
+conditions either of that published version or of any later version\r
+published by the Free Software Foundation. If the Library as you\r
+received it does not specify a version number of the GNU Lesser\r
+General Public License, you may choose any version of the GNU Lesser\r
+General Public License ever published by the Free Software Foundation.\r
+\r
+  If the Library as you received it specifies that a proxy can decide\r
+whether future versions of the GNU Lesser General Public License shall\r
+apply, that proxy's public statement of acceptance of any version is\r
+permanent authorization for you to choose that version for the\r
+Library.\r
diff --git a/reactos/base/applications/paint/main.c b/reactos/base/applications/paint/main.c
new file mode 100755 (executable)
index 0000000..19d0c29
--- /dev/null
@@ -0,0 +1,359 @@
+/*\r
+ * PROJECT:     PAINT for ReactOS\r
+ * LICENSE:     LGPL\r
+ * FILE:        main.c\r
+ * PURPOSE:     Initializing everything\r
+ * PROGRAMMERS: Benedikt Freisen\r
+ */\r
+\r
+/* INCLUDES *********************************************************/\r
+\r
+#include <windows.h>\r
+#include <windowsx.h>\r
+#include <commctrl.h>\r
+#include <stdio.h>\r
+#include "definitions.h"\r
+\r
+#include "drawing.h"\r
+#include "dib.h"\r
+\r
+#include "globalvar.h"\r
+#include "history.h"\r
+#include "mouse.h"\r
+\r
+#include "winproc.h"\r
+#include "palette.h"\r
+#include "toolsettings.h"\r
+#include "selection.h"\r
+\r
+/* FUNCTIONS ********************************************************/\r
+\r
+HDC hDrawingDC;\r
+HDC hSelDC;\r
+int *bmAddress;\r
+BITMAPINFO bitmapinfo;\r
+int imgXRes = 400;\r
+int imgYRes = 300;\r
+\r
+HBITMAP hBms[4];\r
+int currInd = 0;\r
+int undoSteps = 0;\r
+int redoSteps = 0;\r
+\r
+// global status variables\r
+\r
+short startX;\r
+short startY;\r
+short lastX;\r
+short lastY;\r
+int lineWidth = 1;\r
+int shapeStyle = 0;\r
+int brushStyle = 0;\r
+int activeTool = 7;\r
+int airBrushWidth = 5;\r
+int rubberRadius = 4;\r
+int transpBg = 0;\r
+int zoom = 1000;\r
+int rectSel_src[4];\r
+int rectSel_dest[4];\r
+HWND hSelection;\r
+HWND hImageArea;\r
+HBITMAP hSelBm;\r
+\r
+\r
+// global declarations and WinMain\r
+\r
+\r
+// initial palette colors; may be changed by the user during execution\r
+int palColors[28] =\r
+    {0x000000, 0x464646, 0x787878, 0x300099, 0x241ced, 0x0078ff, 0x0ec2ff,\r
+    0x00f2ff, 0x1de6a8, 0x4cb122, 0xefb700, 0xf36d4d, 0x99362f, 0x98316f,\r
+    0xffffff, 0xdcdcdc, 0xb4b4b4, 0x3c5a9c, 0xb1a3ff, 0x7aaae5, 0x9ce4f5,\r
+    0xbdf9ff, 0xbcf9d3, 0x61bb9d, 0xead999, 0xd19a70, 0x8e6d54, 0xd5a5b5};\r
+// foreground and background colors with initial value\r
+int fgColor = 0x00000000;\r
+int bgColor = 0x00ffffff;\r
+// the current zoom in percent*10\r
+HWND hStatusBar;\r
+HWND hScrollbox;\r
+HWND hMainWnd;\r
+HWND hPalWin;\r
+HWND hToolSettings;\r
+CHOOSECOLOR choosecolor;\r
+OPENFILENAME ofn;\r
+OPENFILENAME sfn;\r
+HICON hNontranspIcon;\r
+HICON hTranspIcon;\r
+\r
+HCURSOR hCurFill;\r
+HCURSOR hCurColor;\r
+HCURSOR hCurZoom;\r
+HCURSOR hCurPen;\r
+HCURSOR hCurAirbrush;\r
+\r
+HWND hScrlClient;\r
+\r
+HWND hToolBtn[16];\r
+\r
+HINSTANCE hProgInstance;\r
+\r
+char filename[256];\r
+char filepathname[1000];\r
+BOOL isAFile = FALSE;\r
+\r
+int WINAPI WinMain (HINSTANCE hThisInstance, HINSTANCE hPrevInstance, LPSTR lpszArgument, int nFunsterStil)\r
+{\r
+    hProgInstance = hThisInstance;\r
+    HWND hwnd;               /* This is the handle for our window */\r
+    MSG messages;            /* Here messages to the application are saved */\r
+\r
+    // Necessary\r
+    InitCommonControls();\r
+\r
+    //initializing and registering the window class used for the main window\r
+    WNDCLASSEX wincl;\r
+    wincl.hInstance         = hThisInstance;\r
+    wincl.lpszClassName     = "WindowsApp";\r
+    wincl.lpfnWndProc       = WindowProcedure;\r
+    wincl.style             = CS_DBLCLKS;\r
+    wincl.cbSize            = sizeof (WNDCLASSEX);\r
+    wincl.hIcon             = LoadIcon (NULL, IDI_APPLICATION);\r
+    wincl.hIconSm           = LoadIcon (hThisInstance, MAKEINTRESOURCE(500));\r
+    wincl.hCursor           = LoadCursor (NULL, IDC_ARROW);\r
+    wincl.lpszMenuName      = NULL;\r
+    wincl.cbClsExtra        = 0;\r
+    wincl.cbWndExtra        = 0;\r
+    wincl.hbrBackground     = GetSysColorBrush(COLOR_BTNFACE);\r
+    RegisterClassEx (&wincl);\r
+\r
+    // initializing and registering the window class used for the scroll box\r
+\r
+    WNDCLASSEX wclScroll;\r
+    wclScroll.hInstance     = hThisInstance;\r
+    wclScroll.lpszClassName = "Scrollbox";\r
+    wclScroll.lpfnWndProc   = WindowProcedure;\r
+    wclScroll.style         = 0;\r
+    wclScroll.cbSize        = sizeof (WNDCLASSEX);\r
+    wclScroll.hIcon         = NULL;\r
+    wclScroll.hIconSm       = NULL;\r
+    wclScroll.hCursor       = LoadCursor (NULL, IDC_ARROW);\r
+    wclScroll.lpszMenuName  = NULL;\r
+    wclScroll.cbClsExtra    = 0;\r
+    wclScroll.cbWndExtra    = 0;\r
+    wclScroll.hbrBackground = GetSysColorBrush(COLOR_APPWORKSPACE);\r
+    RegisterClassEx (&wclScroll);\r
+\r
+    // initializing and registering the window class used for the palette window\r
+\r
+    WNDCLASSEX wclPal;\r
+    wclPal.hInstance        = hThisInstance;\r
+    wclPal.lpszClassName    = "Palette";\r
+    wclPal.lpfnWndProc      = PalWinProc;\r
+    wclPal.style            = CS_DBLCLKS;\r
+    wclPal.cbSize           = sizeof (WNDCLASSEX);\r
+    wclPal.hIcon            = NULL;\r
+    wclPal.hIconSm          = NULL;\r
+    wclPal.hCursor          = LoadCursor (NULL, IDC_ARROW);\r
+    wclPal.lpszMenuName     = NULL;\r
+    wclPal.cbClsExtra       = 0;\r
+    wclPal.cbWndExtra       = 0;\r
+    wclPal.hbrBackground    = GetSysColorBrush(COLOR_BTNFACE);\r
+    RegisterClassEx (&wclPal);\r
+\r
+    // initializing and registering the window class for the settings window\r
+\r
+    WNDCLASSEX wclSettings;\r
+    wclSettings.hInstance       = hThisInstance;\r
+    wclSettings.lpszClassName   = "ToolSettings";\r
+    wclSettings.lpfnWndProc     = SettingsWinProc;\r
+    wclSettings.style           = CS_DBLCLKS;\r
+    wclSettings.cbSize          = sizeof (WNDCLASSEX);\r
+    wclSettings.hIcon           = NULL;\r
+    wclSettings.hIconSm         = NULL;\r
+    wclSettings.hCursor         = LoadCursor (NULL, IDC_ARROW);\r
+    wclSettings.lpszMenuName    = NULL;\r
+    wclSettings.cbClsExtra      = 0;\r
+    wclSettings.cbWndExtra      = 0;\r
+    wclSettings.hbrBackground   = GetSysColorBrush(COLOR_BTNFACE);\r
+    RegisterClassEx (&wclSettings);\r
+\r
+    // initializing and registering the window class for the selection frame\r
+\r
+    WNDCLASSEX wclSelection;\r
+    wclSelection.hInstance      = hThisInstance;\r
+    wclSelection.lpszClassName  = "Selection";\r
+    wclSelection.lpfnWndProc    = SelectionWinProc;\r
+    wclSelection.style          = CS_DBLCLKS;\r
+    wclSelection.cbSize         = sizeof (WNDCLASSEX);\r
+    wclSelection.hIcon          = NULL;\r
+    wclSelection.hIconSm        = NULL;\r
+    wclSelection.hCursor        = LoadCursor (NULL, IDC_SIZEALL);\r
+    wclSelection.lpszMenuName   = NULL;\r
+    wclSelection.cbClsExtra     = 0;\r
+    wclSelection.cbWndExtra     = 0;\r
+    wclSelection.hbrBackground  = NULL;//GetSysColorBrush(COLOR_BTNFACE);\r
+    RegisterClassEx (&wclSelection);\r
+\r
+    LoadString(hThisInstance, IDS_DEFAULTFILENAME, (LPTSTR)&filename, 256);\r
+    char progtitle[1000];\r
+    char resstr[100];\r
+    LoadString(hThisInstance, IDS_WINDOWTITLE, (LPTSTR)&resstr, 100);\r
+    sprintf(progtitle, resstr, &filename);\r
+    \r
+    \r
+    // create main window\r
+    hwnd = CreateWindowEx (0, "WindowsApp", (LPTSTR)progtitle, WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, 544, 375, HWND_DESKTOP, NULL, hThisInstance, NULL);\r
+\r
+    hMainWnd = hwnd;\r
+\r
+    // loading and setting the window menu from resource\r
+    HMENU menu;\r
+    menu = LoadMenu(hThisInstance, MAKEINTRESOURCE(ID_MENU));\r
+    SetMenu(hwnd, menu);\r
+    HANDLE haccel = LoadAccelerators(hThisInstance, MAKEINTRESOURCE(800));\r
+\r
+    // preloading the draw transparent/nontransparent icons for later use\r
+    hNontranspIcon  = LoadImage(hThisInstance, MAKEINTRESOURCE(IDI_NONTRANSPARENT), IMAGE_ICON, 40, 30, LR_DEFAULTCOLOR);\r
+    hTranspIcon     = LoadImage(hThisInstance, MAKEINTRESOURCE(IDI_TRANSPARENT), IMAGE_ICON, 40, 30, LR_DEFAULTCOLOR);\r
+\r
+    hCurFill        = LoadIcon(hThisInstance, MAKEINTRESOURCE(IDC_FILL));\r
+    hCurColor       = LoadIcon(hThisInstance, MAKEINTRESOURCE(IDC_COLOR));\r
+    hCurZoom        = LoadIcon(hThisInstance, MAKEINTRESOURCE(IDC_ZOOM));\r
+    hCurPen         = LoadIcon(hThisInstance, MAKEINTRESOURCE(IDC_PEN));\r
+    hCurAirbrush    = LoadIcon(hThisInstance, MAKEINTRESOURCE(IDC_AIRBRUSH));\r
+\r
+    HWND hLine = CreateWindowEx (0, "STATIC", "", WS_CHILD | WS_VISIBLE | SS_ETCHEDHORZ, 0, 0, 5000, 2, hwnd, NULL, hThisInstance, NULL);\r
+\r
+    // creating the 16 bitmap radio buttons and setting the bitmap\r
+\r
+\r
+    // FIXME: Unintentionally there is a line above the tool bar. To prevent cropping of the buttons height has been increased from 200 to 205\r
+    HWND hToolbar = CreateWindowEx(0, TOOLBARCLASSNAME, NULL, WS_CHILD | WS_VISIBLE | CCS_NOPARENTALIGN | CCS_VERT | CCS_NORESIZE | TBSTYLE_TOOLTIPS, 3, 3, 50, 205, hwnd, NULL, hThisInstance, NULL);\r
+    HIMAGELIST hImageList = ImageList_Create(16, 16, ILC_COLOR24 | ILC_MASK, 16, 0);\r
+    SendMessage(hToolbar, TB_SETIMAGELIST, 0, (LPARAM)hImageList);\r
+    HBITMAP tempBm = LoadImage(hThisInstance, MAKEINTRESOURCE(IDB_TOOLBARICONS), IMAGE_BITMAP, 256, 16, 0);\r
+    ImageList_AddMasked(hImageList, tempBm, 0xff00ff);\r
+    DeleteObject(tempBm);\r
+    SendMessage(hToolbar, TB_BUTTONSTRUCTSIZE, sizeof(TBBUTTON), 0);\r
+    int i;\r
+    char tooltips[16][30];\r
+    for (i=0; i<16; i++)\r
+    {\r
+        int wrapnow = 0;\r
+        if (i%2==1) wrapnow = TBSTATE_WRAP;\r
+        LoadString(hThisInstance, IDS_TOOLTIP1+i, (LPTSTR)&tooltips[i], 30);\r
+        TBBUTTON tbbutton = {i, (HMENU)(ID_FREESEL+i), TBSTATE_ENABLED | wrapnow, TBSTYLE_CHECKGROUP, {0}, 0, &tooltips[i]};\r
+        SendMessage(hToolbar, TB_ADDBUTTONS, 1, (LPARAM)&tbbutton);\r
+    }\r
+   // SendMessage(hToolbar, TB_SETROWS, MAKEWPARAM(8, FALSE), (LPARAM)NULL);\r
+    SendMessage(hToolbar, TB_CHECKBUTTON, ID_PEN, MAKELONG(TRUE, 0));\r
+    SendMessage(hToolbar, TB_SETMAXTEXTROWS, 0, 0);\r
+\r
+    SendMessage(hToolbar, TB_SETBUTTONSIZE, 0, MAKELONG(25, 25));\r
+   // SendMessage(hToolbar, TB_AUTOSIZE, 0, 0);\r
+\r
+\r
+\r
+\r
+    // creating the tool settings child window\r
+    hToolSettings = CreateWindowEx(0, "ToolSettings", "", WS_CHILD | WS_VISIBLE, 7, 210, 42, 140, hwnd, NULL, hThisInstance, NULL);\r
+\r
+    // creating the palette child window\r
+    hPalWin = CreateWindowEx(0, "Palette", "", WS_CHILD | WS_VISIBLE, 56, 9, 255, 32, hwnd, NULL, hThisInstance, NULL);\r
+\r
+    // creating the scroll box\r
+    hScrollbox = CreateWindowEx (WS_EX_CLIENTEDGE, "Scrollbox", "", WS_CHILD | WS_GROUP | WS_HSCROLL | WS_VSCROLL | WS_VISIBLE, 56, 49, 472, 248, hwnd, NULL, hThisInstance, NULL);\r
+\r
+    // creating the status bar\r
+    hStatusBar = CreateWindowEx (0, STATUSCLASSNAME, "", SBARS_SIZEGRIP | WS_CHILD | WS_VISIBLE, 0, 0, 0, 0, hwnd, NULL, hThisInstance, NULL);\r
+    SendMessage(hStatusBar, SB_SETMINHEIGHT, 21, 0);\r
+\r
+    hScrlClient = CreateWindowEx(0, "Scrollbox", "", WS_CHILD | WS_VISIBLE, 0, 0, 500, 500, hScrollbox, NULL, hThisInstance, NULL);\r
+\r
+    // create selection window (initially hidden)\r
+    hSelection = CreateWindowEx(WS_EX_TRANSPARENT, "Selection", "", WS_CHILD | BS_OWNERDRAW, 350, 0, 100, 100, hScrlClient, NULL, hThisInstance, NULL);\r
+\r
+    // creating the window inside the scroll box, on which the image in hDrawingDC's bitmap is drawn\r
+    hImageArea = CreateWindowEx (0, "Scrollbox", "", WS_CHILD | WS_VISIBLE, 3, 3, imgXRes, imgYRes, hScrlClient, NULL, hThisInstance, NULL);\r
+\r
+    hDrawingDC = CreateCompatibleDC(GetDC(hImageArea));\r
+    hSelDC = CreateCompatibleDC(GetDC(hImageArea));\r
+    SelectObject(hDrawingDC, CreatePen(PS_SOLID, 0, fgColor));\r
+    SelectObject(hDrawingDC, CreateSolidBrush(bgColor));\r
+\r
+    hBms[0] = CreateDIBWithProperties(imgXRes, imgYRes);\r
+    SelectObject(hDrawingDC, hBms[0]);\r
+    Rectangle(hDrawingDC, 0-1, 0-1, imgXRes+1, imgYRes+1);\r
+\r
+    // initializing the CHOOSECOLOR structure for use with ChooseColor\r
+    int custColors[16] =\r
+        {0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff,\r
+        0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff, 0xffffff};\r
+    choosecolor.lStructSize     = sizeof(CHOOSECOLOR);\r
+    choosecolor.hwndOwner       = hwnd;\r
+    choosecolor.hInstance       = NULL;\r
+    choosecolor.rgbResult       = 0x00ffffff;\r
+    choosecolor.lpCustColors    = (COLORREF*)&custColors;\r
+    choosecolor.Flags           = 0;\r
+    choosecolor.lCustData       = 0;\r
+    choosecolor.lpfnHook        = NULL;\r
+    choosecolor.lpTemplateName  = NULL;\r
+\r
+    int c;\r
+\r
+    // initializing the OPENFILENAME structure for use with GetOpenFileName and GetSaveFileName\r
+    char ofnFilename[1000];\r
+    CopyMemory(&ofnFilename, &filename, 256);\r
+    char ofnFiletitle[256];\r
+    char ofnFilter[1000];\r
+    LoadString(hThisInstance, IDS_OPENFILTER, (LPTSTR)&ofnFilter, 1000);\r
+    for (c=0; c<1000; c++) if (ofnFilter[c]==(char)1) ofnFilter[c] = (char)0;\r
+    ZeroMemory(&ofn, sizeof(OPENFILENAME));\r
+    ofn.lStructSize     = sizeof (OPENFILENAME);\r
+    ofn.hwndOwner       = hwnd;\r
+    ofn.hInstance       = hThisInstance;\r
+    ofn.lpstrFilter     = (LPCTSTR)&ofnFilter;\r
+    ofn.lpstrFile       = (LPTSTR)&ofnFilename;\r
+    ofn.nMaxFile        = 1000;\r
+    ofn.lpstrFileTitle  = (LPTSTR)&ofnFiletitle;\r
+    ofn.nMaxFileTitle   = 256;\r
+    ofn.Flags           = OFN_HIDEREADONLY;\r
+\r
+    char sfnFilename[1000];\r
+    CopyMemory(&sfnFilename, &filename, 256);\r
+    char sfnFiletitle[256];\r
+    char sfnFilter[1000];\r
+    LoadString(hThisInstance, IDS_SAVEFILTER, (LPTSTR)&sfnFilter, 1000);\r
+    for (c=0; c<1000; c++) if (sfnFilter[c]==(char)1) sfnFilter[c] = (char)0;\r
+    ZeroMemory(&sfn, sizeof(OPENFILENAME));\r
+    sfn.lStructSize     = sizeof (OPENFILENAME);\r
+    sfn.hwndOwner       = hwnd;\r
+    sfn.hInstance       = hThisInstance;\r
+    sfn.lpstrFilter     = (LPCTSTR)&sfnFilter;\r
+    sfn.lpstrFile       = (LPTSTR)&sfnFilename;\r
+    sfn.nMaxFile        = 1000;\r
+    sfn.lpstrFileTitle  = (LPTSTR)&sfnFiletitle;\r
+    sfn.nMaxFileTitle   = 256;\r
+    sfn.Flags           = OFN_OVERWRITEPROMPT | OFN_HIDEREADONLY;\r
+\r
+\r
+    // by moving the window, the things in WM_SIZE are done\r
+    MoveWindow(hwnd, 100, 100, 600, 450, TRUE);\r
+\r
+    /* Make the window visible on the screen */\r
+    ShowWindow (hwnd, nFunsterStil);\r
+\r
+    /* Run the message loop. It will run until GetMessage() returns 0 */\r
+    while (GetMessage (&messages, NULL, 0, 0))\r
+    {\r
+        TranslateAccelerator(hwnd, haccel, &messages);\r
+\r
+        /* Translate virtual-key messages into character messages */\r
+        TranslateMessage(&messages);\r
+        /* Send message to WindowProcedure */\r
+        DispatchMessage(&messages);\r
+    }\r
+\r
+    /* The program return-value is 0 - The value that PostQuitMessage() gave */\r
+    return messages.wParam;\r
+}\r
diff --git a/reactos/base/applications/paint/mouse.c b/reactos/base/applications/paint/mouse.c
new file mode 100755 (executable)
index 0000000..9d2407b
--- /dev/null
@@ -0,0 +1,207 @@
+/*\r
+ * PROJECT:     PAINT for ReactOS\r
+ * LICENSE:     LGPL\r
+ * FILE:        mouse.c\r
+ * PURPOSE:     Things which should not be in the mouse event handler itself\r
+ * PROGRAMMERS: Benedikt Freisen\r
+ */\r
+\r
+/* INCLUDES *********************************************************/\r
+\r
+#include "globalvar.h"\r
+\r
+/* FUNCTIONS ********************************************************/\r
+\r
+void placeSelWin()\r
+{\r
+    MoveWindow(hSelection, rectSel_dest[0]*zoom/1000, rectSel_dest[1]*zoom/1000, rectSel_dest[2]*zoom/1000+6, rectSel_dest[3]*zoom/1000+6, TRUE);\r
+    BringWindowToTop(hSelection);\r
+    SendMessage(hImageArea, WM_PAINT, 0, 0);\r
+    //SendMessage(hSelection, WM_PAINT, 0, 0);\r
+}\r
+\r
+void startPainting(HDC hdc, short x, short y, int fg, int bg)\r
+{\r
+    startX = x;\r
+    startY = y;\r
+    lastX = x;\r
+    lastY = y;\r
+    if ((activeTool!=5)&&(activeTool!=6)) newReversible();\r
+    switch (activeTool)\r
+    {\r
+        case 2:\r
+            ShowWindow(hSelection, SW_HIDE);\r
+            break;\r
+        case 3:\r
+            Erase(hdc, x, y, x, y, bg, rubberRadius);\r
+            break;\r
+        case 4:\r
+            Fill(hdc, x, y, fg);\r
+            break;\r
+        case 7:\r
+            SetPixel(hdc, x, y, fg);\r
+            break;\r
+        case 8:\r
+            Brush(hdc, x, y, x, y, fg, brushStyle);\r
+            break;\r
+        case 9:\r
+            Airbrush(hdc, x, y, fg, airBrushWidth);\r
+            break;\r
+    }\r
+}\r
+\r
+void whilePainting(HDC hdc, short x, short y, int fg, int bg)\r
+{\r
+    switch (activeTool)\r
+    {\r
+        case 2:\r
+            {\r
+                resetToU1();\r
+                short tempX = max(0, min(x, imgXRes));\r
+                short tempY = max(0, min(y, imgYRes));\r
+                rectSel_dest[0] = rectSel_src[0] = min(startX, tempX);\r
+                rectSel_dest[1] = rectSel_src[1] = min(startY, tempY);\r
+                rectSel_dest[2] = rectSel_src[2] = max(startX, tempX)-min(startX, tempX);\r
+                rectSel_dest[3] = rectSel_src[3] = max(startY, tempY)-min(startY, tempY);\r
+                RectSel(hdc, startX, startY, tempX, tempY);\r
+            }\r
+            break;\r
+        case 3:\r
+            Erase(hdc, lastX, lastY, x, y, bg, rubberRadius);\r
+            break;\r
+        case 7:\r
+            Line(hdc, lastX, lastY, x, y, fg, 1);\r
+            break;\r
+        case 8:\r
+            Brush(hdc, lastX, lastY, x, y, fg, brushStyle);\r
+            break;\r
+        case 9:\r
+            Airbrush(hdc, x, y, fg, airBrushWidth);\r
+            break;\r
+        case 11:\r
+            resetToU1();\r
+            Line(hdc, startX, startY, x, y, fg, lineWidth);\r
+            break;\r
+        case 13:\r
+            resetToU1();\r
+            switch (shapeStyle)\r
+            {\r
+                case 0:\r
+                    Rect(hdc, startX, startY, x, y, fg, bg, lineWidth, FALSE);\r
+                    break;\r
+                case 1:\r
+                    Rect(hdc, startX, startY, x, y, fg, bg, lineWidth, TRUE);\r
+                    break;\r
+                case 2:\r
+                    Rect(hdc, startX, startY, x, y, fg, fg, lineWidth, TRUE);\r
+                    break;\r
+            }\r
+            break;\r
+        case 15:\r
+            resetToU1();\r
+            switch (shapeStyle)\r
+            {\r
+                case 0:\r
+                    Ellp(hdc, startX, startY, x, y, fg, bg, lineWidth, FALSE);\r
+                    break;\r
+                case 1:\r
+                    Ellp(hdc, startX, startY, x, y, fg, bg, lineWidth, TRUE);\r
+                    break;\r
+                case 2:\r
+                    Ellp(hdc, startX, startY, x, y, fg, fg, lineWidth, TRUE);\r
+                    break;\r
+            }\r
+            break;\r
+        case 16:\r
+            resetToU1();\r
+            switch (shapeStyle)\r
+            {\r
+                case 0:\r
+                    RRect(hdc, startX, startY, x, y, fg, bg, lineWidth, FALSE);\r
+                    break;\r
+                case 1:\r
+                    RRect(hdc, startX, startY, x, y, fg, bg, lineWidth, TRUE);\r
+                    break;\r
+                case 2:\r
+                    RRect(hdc, startX, startY, x, y, fg, fg, lineWidth, TRUE);\r
+                    break;\r
+            }\r
+            break;\r
+    }\r
+    \r
+    lastX = x;\r
+    lastY = y;\r
+}\r
+\r
+void endPainting(HDC hdc, short x, short y, int fg, int bg)\r
+{\r
+    switch (activeTool)\r
+    {\r
+        case 2:\r
+            resetToU1();\r
+            if ((rectSel_src[2]!=0)&&(rectSel_src[3]!=0))\r
+            {\r
+                DeleteObject(SelectObject(hSelDC, hSelBm = (HBITMAP)CreateDIBWithProperties(rectSel_src[2], rectSel_src[3])));\r
+                BitBlt(hSelDC, 0, 0, rectSel_src[2], rectSel_src[3], hDrawingDC, rectSel_src[0], rectSel_src[1], SRCCOPY);\r
+                placeSelWin();\r
+                ShowWindow(hSelection, SW_SHOW);\r
+            }\r
+            break;\r
+        case 3:\r
+            Erase(hdc, lastX, lastY, x, y, bg, rubberRadius);\r
+            break;\r
+        case 7:\r
+            Line(hdc, lastX, lastY, x, y, fg, 1);\r
+            SetPixel(hdc, x, y, fg);\r
+            break;\r
+        case 11:\r
+            resetToU1();\r
+            Line(hdc, startX, startY, x, y, fg, lineWidth);\r
+            break;\r
+        case 13:\r
+            resetToU1();\r
+            switch (shapeStyle)\r
+            {\r
+                case 0:\r
+                    Rect(hdc, startX, startY, x, y, fg, bg, lineWidth, FALSE);\r
+                    break;\r
+                case 1:\r
+                    Rect(hdc, startX, startY, x, y, fg, bg, lineWidth, TRUE);\r
+                    break;\r
+                case 2:\r
+                    Rect(hdc, startX, startY, x, y, fg, fg, lineWidth, TRUE);\r
+                    break;\r
+            }\r
+            break;\r
+        case 15:\r
+            resetToU1();\r
+            switch (shapeStyle)\r
+            {\r
+                case 0:\r
+                    Ellp(hdc, startX, startY, x, y, fg, bg, lineWidth, FALSE);\r
+                    break;\r
+                case 1:\r
+                    Ellp(hdc, startX, startY, x, y, fg, bg, lineWidth, TRUE);\r
+                    break;\r
+                case 2:\r
+                    Ellp(hdc, startX, startY, x, y, fg, fg, lineWidth, TRUE);\r
+                    break;\r
+            }\r
+            break;\r
+        case 16:\r
+            resetToU1();\r
+            switch (shapeStyle)\r
+            {\r
+                case 0:\r
+                    RRect(hdc, startX, startY, x, y, fg, bg, lineWidth, FALSE);\r
+                    break;\r
+                case 1:\r
+                    RRect(hdc, startX, startY, x, y, fg, bg, lineWidth, TRUE);\r
+                    break;\r
+                case 2:\r
+                    RRect(hdc, startX, startY, x, y, fg, fg, lineWidth, TRUE);\r
+                    break;\r
+            }\r
+            break;\r
+    }\r
+}\r
diff --git a/reactos/base/applications/paint/mouse.h b/reactos/base/applications/paint/mouse.h
new file mode 100755 (executable)
index 0000000..18c8e4a
--- /dev/null
@@ -0,0 +1,15 @@
+/*\r
+ * PROJECT:     PAINT for ReactOS\r
+ * LICENSE:     LGPL\r
+ * FILE:        mouse.h\r
+ * PURPOSE:     Things which should not be in the mouse event handler itself\r
+ * PROGRAMMERS: Benedikt Freisen\r
+ */\r
+\r
+void placeSelWin();\r
+\r
+void startPainting(HDC hdc, short x, short y, int fg, int bg);\r
+\r
+void whilePainting(HDC hdc, short x, short y, int fg, int bg);\r
+\r
+void endPainting(HDC hdc, short x, short y, int fg, int bg);\r
diff --git a/reactos/base/applications/paint/paint.exe.manifest b/reactos/base/applications/paint/paint.exe.manifest
new file mode 100755 (executable)
index 0000000..b6163de
--- /dev/null
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>\r
+<assembly\r
+  xmlns="urn:schemas-microsoft-com:asm.v1"\r
+  manifestVersion="1.0">\r
+<assemblyIdentity\r
+    name="DevCpp.Apps.Paint"\r
+    processorArchitecture="x86"\r
+    version="1.0.0.0"\r
+    type="win32"/>\r
+<description>Paint</description>\r
+<dependency>\r
+    <dependentAssembly>\r
+        <assemblyIdentity\r
+            type="win32"\r
+            name="Microsoft.Windows.Common-Controls"\r
+            version="6.0.0.0"\r
+            processorArchitecture="x86"\r
+            publicKeyToken="6595b64144ccf1df"\r
+            language="*"\r
+        />\r
+    </dependentAssembly>\r
+</dependency>\r
+</assembly>\r
diff --git a/reactos/base/applications/paint/paint.rbuild b/reactos/base/applications/paint/paint.rbuild
new file mode 100755 (executable)
index 0000000..c384c3c
--- /dev/null
@@ -0,0 +1,23 @@
+<?xml version="1.0"?>\r
+<!DOCTYPE module SYSTEM "../../../tools/rbuild/project.dtd">\r
+<module name="paint" type="win32gui" installbase="system32" installname="paint.exe" allowwarnings="true">\r
+       <include base="paint">.</include>\r
+       <library>comdlg32</library>\r
+       <library>shell32</library>\r
+       <library>user32</library>\r
+       <library>gdi32</library>\r
+       <library>advapi32</library>\r
+       <library>kernel32</library>\r
+       <library>comctl32</library>\r
+       <file>dialogs.c</file>\r
+       <file>dib.c</file>\r
+       <file>drawing.c</file>\r
+       <file>history.c</file>\r
+       <file>main.c</file>\r
+       <file>mouse.c</file>\r
+       <file>palette.c</file>\r
+       <file>selection.c</file>\r
+       <file>toolsettings.c</file>\r
+       <file>winproc.c</file>\r
+       <file>rsrc.rc</file>\r
+</module>\r
diff --git a/reactos/base/applications/paint/palette.c b/reactos/base/applications/paint/palette.c
new file mode 100755 (executable)
index 0000000..9e09572
--- /dev/null
@@ -0,0 +1,107 @@
+/*\r
+ * PROJECT:     PAINT for ReactOS\r
+ * LICENSE:     LGPL\r
+ * FILE:        palette.c\r
+ * PURPOSE:     Window procedure of the palette window\r
+ * PROGRAMMERS: Benedikt Freisen\r
+ */\r
+\r
+/* INCLUDES *********************************************************/\r
+\r
+#include <windows.h>\r
+#include "globalvar.h"\r
+\r
+/* FUNCTIONS ********************************************************/\r
+\r
+LRESULT CALLBACK PalWinProc (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)\r
+{\r
+    switch (message)\r
+    {\r
+        case WM_PAINT:\r
+            {\r
+                DefWindowProc (hwnd, message, wParam, lParam);\r
+                HDC hdc = GetDC(hwnd);\r
+                HPEN oldPen;\r
+                HBRUSH oldBrush;\r
+                int i;\r
+                long rectang[4] = {0, 0, 31, 32};\r
+                int a;\r
+                int b;\r
+                for (b=2; b<30; b++) for (a=2; a<29; a++) if ((a+b)%2==1) SetPixel(hdc, a, b, GetSysColor(COLOR_BTNHILIGHT));\r
+                DrawEdge(hdc, (LPRECT)&rectang, EDGE_RAISED, BF_TOPLEFT);\r
+                DrawEdge(hdc, (LPRECT)&rectang, BDR_SUNKENOUTER, BF_TOPLEFT|BF_BOTTOMRIGHT);\r
+                    rectang[0] = 11;\r
+                    rectang[1] = 12;\r
+                    rectang[2] = 26;\r
+                    rectang[3] = 27;\r
+                    DrawEdge(hdc, (LPRECT)&rectang, BDR_RAISEDINNER, BF_RECT|BF_MIDDLE);\r
+                    oldPen = SelectObject(hdc, CreatePen(PS_NULL, 0, 0));\r
+                    oldBrush = SelectObject(hdc, CreateSolidBrush(bgColor));\r
+                    Rectangle( hdc, rectang[0]+2,rectang[1]+2,rectang[2]-1,rectang[3]-1);\r
+                    DeleteObject(SelectObject(hdc, oldBrush));\r
+                    DeleteObject(SelectObject(hdc, oldPen));\r
+                    rectang[0] = 4;\r
+                    rectang[1] = 5;\r
+                    rectang[2] = 19;\r
+                    rectang[3] = 20;\r
+                    DrawEdge(hdc, (LPRECT)&rectang, BDR_RAISEDINNER, BF_RECT|BF_MIDDLE);\r
+                    oldPen = SelectObject(hdc, CreatePen(PS_NULL, 0, 0));\r
+                    oldBrush = SelectObject(hdc, CreateSolidBrush(fgColor));\r
+                    Rectangle( hdc, rectang[0]+2,rectang[1]+2,rectang[2]-1,rectang[3]-1);\r
+                    DeleteObject(SelectObject(hdc, oldBrush));\r
+                    DeleteObject(SelectObject(hdc, oldPen));\r
+                for (i=0; i<28; i++)\r
+                {\r
+                    rectang[0] = 31+(i%14)*16;\r
+                    rectang[1] = 0+(i/14)*16;\r
+                    rectang[2] = 16+rectang[0];\r
+                    rectang[3] = 16+rectang[1];\r
+                    DrawEdge(hdc, (LPRECT)&rectang, EDGE_RAISED, BF_TOPLEFT);\r
+                    DrawEdge(hdc, (LPRECT)&rectang, BDR_SUNKENOUTER, BF_RECT);\r
+                    oldPen = SelectObject(hdc, CreatePen(PS_NULL, 0, 0));\r
+                    oldBrush = SelectObject(hdc, CreateSolidBrush(palColors[i]));\r
+                    Rectangle( hdc, rectang[0]+2,rectang[1]+2,rectang[2]-1,rectang[3]-1);\r
+                    DeleteObject(SelectObject(hdc, oldBrush));\r
+                    DeleteObject(SelectObject(hdc, oldPen));\r
+                }\r
+                ReleaseDC(hwnd, hdc);\r
+            }\r
+            break;\r
+        case WM_LBUTTONDOWN:\r
+            if (LOWORD(lParam)>=31)\r
+            {\r
+                fgColor = palColors[(LOWORD(lParam)-31)/16+(HIWORD(lParam)/16)*14];\r
+                SendMessage(hwnd, WM_PAINT, 0, 0);\r
+            }\r
+            break;\r
+        case WM_RBUTTONDOWN:\r
+            if (LOWORD(lParam)>=31)\r
+            {\r
+                bgColor = palColors[(LOWORD(lParam)-31)/16+(HIWORD(lParam)/16)*14];\r
+                SendMessage(hwnd, WM_PAINT, 0, 0);\r
+            }\r
+            break;\r
+        case WM_LBUTTONDBLCLK:\r
+            if (LOWORD(lParam)>=31) if (ChooseColor(&choosecolor))\r
+            {\r
+                palColors[(LOWORD(lParam)-31)/16+(HIWORD(lParam)/16)*14] = choosecolor.rgbResult;\r
+                fgColor = choosecolor.rgbResult;\r
+                SendMessage(hwnd, WM_PAINT, 0, 0);\r
+            }\r
+            break;\r
+        case WM_RBUTTONDBLCLK:\r
+            if (LOWORD(lParam)>=31) if (ChooseColor(&choosecolor))\r
+            {\r
+                palColors[(LOWORD(lParam)-31)/16+(HIWORD(lParam)/16)*14] = choosecolor.rgbResult;\r
+                bgColor = choosecolor.rgbResult;\r
+                SendMessage(hwnd, WM_PAINT, 0, 0);\r
+            }\r
+            break;\r
+        \r
+        default:\r
+            return DefWindowProc (hwnd, message, wParam, lParam);\r
+    }\r
+\r
+    return 0;\r
+}\r
+\r
diff --git a/reactos/base/applications/paint/palette.h b/reactos/base/applications/paint/palette.h
new file mode 100755 (executable)
index 0000000..744d8b5
--- /dev/null
@@ -0,0 +1,9 @@
+/*\r
+ * PROJECT:     PAINT for ReactOS\r
+ * LICENSE:     LGPL\r
+ * FILE:        palette.h\r
+ * PURPOSE:     Window procedure of the palette window\r
+ * PROGRAMMERS: Benedikt Freisen\r
+ */\r
+\r
+LRESULT CALLBACK PalWinProc (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam);\r
diff --git a/reactos/base/applications/paint/rsrc.rc b/reactos/base/applications/paint/rsrc.rc
new file mode 100755 (executable)
index 0000000..9e14089
--- /dev/null
@@ -0,0 +1,37 @@
+/*\r
+ * PROJECT:     PAINT for ReactOS\r
+ * LICENSE:     LGPL\r
+ * FILE:        main.c\r
+ * PURPOSE:     Managing the resources\r
+ * PROGRAMMERS: Benedikt Freisen\r
+ */\r
\r
+/* INCLUDES *********************************************************/\r
+\r
+#include <windows.h>\r
+#include "definitions.h"\r
+\r
+#include "icons.rc"\r
+\r
+// cp 1252 languages\r
+#include "lang/de-DE.rc"\r
+#include "lang/en-GB.rc"\r
+#include "lang/en-US.rc"\r
+#include "lang/fr-FR.rc"\r
+#include "lang/it-IT.rc"\r
+#include "lang/es-ES.rc"\r
+#include "lang/pt-BR.rc"\r
+#include "lang/pt-PT.rc"\r
+// cp 1250 languages\r
+#include "lang/sk-SK.rc"\r
+#include "lang/cs-CZ.rc"\r
+// cp 1251 languages\r
+#include "lang/uk-UA.rc"\r
+\r
+\r
+//\r
+// SUPPORT FOR WINDOWS XP THEMES:\r
+// THIS WILL MAKE THE PROGRAM USE THE COMMON CONTROLS\r
+// LIBRARY VERSION 6.0 (IF IT IS AVAILABLE)\r
+//\r
+1 24 "paint.exe.manifest"\r
diff --git a/reactos/base/applications/paint/selection.c b/reactos/base/applications/paint/selection.c
new file mode 100755 (executable)
index 0000000..9fac566
--- /dev/null
@@ -0,0 +1,75 @@
+/*\r
+ * PROJECT:     PAINT for ReactOS\r
+ * LICENSE:     LGPL\r
+ * FILE:        selection.c\r
+ * PURPOSE:     Window procedure of the selection window\r
+ * PROGRAMMERS: Benedikt Freisen\r
+ */\r
+\r
+/* INCLUDES *********************************************************/\r
+\r
+#include <windows.h>\r
+#include "globalvar.h"\r
+\r
+/* FUNCTIONS ********************************************************/\r
+\r
+BOOL moving = FALSE;\r
+short xPos;\r
+short yPos;\r
+\r
+LRESULT CALLBACK SelectionWinProc (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)\r
+{\r
+    switch (message)\r
+    {\r
+        case WM_PAINT:\r
+            {\r
+                if (!moving)\r
+                {\r
+                    DefWindowProc (hwnd, message, wParam, lParam);\r
+                    HDC hdc=GetDC(hwnd);\r
+                    SelectionFrame(hdc, 1, 1, rectSel_dest[2]*zoom/1000+5, rectSel_dest[3]*zoom/1000+5);\r
+                    ReleaseDC(hwnd, hdc);\r
+                }\r
+            }\r
+            break;\r
+        case WM_LBUTTONDOWN:\r
+            xPos = LOWORD(lParam);\r
+            yPos = HIWORD(lParam);\r
+            SetCapture(hwnd);\r
+            moving = TRUE;\r
+            break;\r
+        case WM_MOUSEMOVE:\r
+            if (moving)\r
+            {\r
+                resetToU1();\r
+                rectSel_dest[0]+=(short)LOWORD(lParam)-xPos;\r
+                rectSel_dest[1]+=(short)HIWORD(lParam)-yPos;\r
+                \r
+                Rect(hDrawingDC, rectSel_src[0], rectSel_src[1], rectSel_src[0]+rectSel_src[2], rectSel_src[1]+rectSel_src[3], bgColor, bgColor, 0, TRUE);\r
+                if (transpBg==0)\r
+                    BitBlt(hDrawingDC, rectSel_dest[0], rectSel_dest[1], rectSel_dest[2], rectSel_dest[3], hSelDC, 0, 0, SRCCOPY);\r
+                else\r
+                    BitBlt(hDrawingDC, rectSel_dest[0], rectSel_dest[1], rectSel_dest[2], rectSel_dest[3], hSelDC, 0, 0, SRCAND);\r
+                    //TransparentBlt(hDrawingDC, rectSel_dest[0], rectSel_dest[1], rectSel_dest[2], rectSel_dest[3], hSelDC, 0, 0, rectSel_dest[2], rectSel_dest[3], bgColor);\r
+                SendMessage(hImageArea, WM_PAINT, 0, 0);\r
+                xPos = LOWORD(lParam);\r
+                yPos = HIWORD(lParam);\r
+                //SendMessage(hwnd, WM_PAINT, 0, 0);\r
+            }\r
+            break;\r
+        case WM_LBUTTONUP:\r
+            if (moving)\r
+            {\r
+                moving = FALSE;\r
+                ReleaseCapture();\r
+                placeSelWin();\r
+                ShowWindow(hSelection, SW_HIDE);\r
+                ShowWindow(hSelection, SW_SHOW);\r
+            }\r
+            break;\r
+        default:\r
+            return DefWindowProc (hwnd, message, wParam, lParam);\r
+    }\r
+\r
+    return 0;\r
+}\r
diff --git a/reactos/base/applications/paint/selection.h b/reactos/base/applications/paint/selection.h
new file mode 100755 (executable)
index 0000000..8813b44
--- /dev/null
@@ -0,0 +1,9 @@
+/*\r
+ * PROJECT:     PAINT for ReactOS\r
+ * LICENSE:     LGPL\r
+ * FILE:        selection.h\r
+ * PURPOSE:     Window procedure of the selection window\r
+ * PROGRAMMERS: Benedikt Freisen\r
+ */\r
+\r
+LRESULT CALLBACK SelectionWinProc (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam);\r
diff --git a/reactos/base/applications/paint/toolsettings.c b/reactos/base/applications/paint/toolsettings.c
new file mode 100755 (executable)
index 0000000..f15dc22
--- /dev/null
@@ -0,0 +1,248 @@
+/*\r
+ * PROJECT:     PAINT for ReactOS\r
+ * LICENSE:     LGPL\r
+ * FILE:        toolsettings.c\r
+ * PURPOSE:     Window procedure of the tool settings window\r
+ * PROGRAMMERS: Benedikt Freisen\r
+ */\r
+\r
+/* INCLUDES *********************************************************/\r
+\r
+#include <windows.h>\r
+#include "globalvar.h"\r
+\r
+/* FUNCTIONS ********************************************************/\r
+\r
+LRESULT CALLBACK SettingsWinProc (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)\r
+{\r
+    switch (message)\r
+    {\r
+        case WM_PAINT:\r
+            {\r
+                DefWindowProc (hwnd, message, wParam, lParam);\r
+                \r
+                HDC hdc = GetDC(hwnd);\r
+                \r
+                int rectang[4] = {0, 0, 42, 66};\r
+                DrawEdge(hdc, (LPRECT)&rectang, BDR_SUNKENOUTER, BF_RECT | BF_MIDDLE);\r
+                int rectang2[4] = {0, 70, 42, 136};\r
+                if (activeTool>=13)\r
+                    DrawEdge(hdc, (LPRECT)&rectang2, BDR_SUNKENOUTER, BF_RECT | BF_MIDDLE);\r
+                else\r
+                    DrawEdge(hdc, (LPRECT)&rectang2, 0, BF_RECT | BF_MIDDLE);\r
+                switch (activeTool)\r
+                {\r
+                    case 1:\r
+                    case 2:\r
+                    case 10:\r
+                        {\r
+                            HPEN oldPen = SelectObject(hdc, CreatePen(PS_NULL, 0, 0));\r
+                            SelectObject(hdc, GetSysColorBrush(COLOR_HIGHLIGHT));\r
+                            Rectangle(hdc, 2, transpBg*31+2, 41, transpBg*31+33);\r
+                            DeleteObject(SelectObject(hdc, oldPen));\r
+                            DrawIconEx(hdc, 1, 2, hNontranspIcon, 40, 30, 0, NULL, DI_NORMAL);\r
+                            DrawIconEx(hdc, 1, 33, hTranspIcon, 40, 30, 0, NULL, DI_NORMAL);\r
+                        }\r
+                        break;\r
+                    case 3:\r
+                        {\r
+                            int i;\r
+                            HPEN oldPen = SelectObject(hdc, CreatePen(PS_NULL, 0, 0));\r
+                            for (i=0; i<4; i++)\r
+                            {\r
+                                if (rubberRadius==i+2)\r
+                                {\r
+                                    SelectObject(hdc, GetSysColorBrush(COLOR_HIGHLIGHT));\r
+                                    Rectangle(hdc, 14, i*15+2, 29, i*15+17);\r
+                                    SelectObject(hdc, GetSysColorBrush(COLOR_HIGHLIGHTTEXT));\r
+                                } else SelectObject(hdc, GetSysColorBrush(COLOR_WINDOWTEXT));\r
+                                Rectangle(hdc, 19-i, i*14+7, 24+i, i*16+12);\r
+                            }\r
+                            DeleteObject(SelectObject(hdc, oldPen));\r
+                        }\r
+                        break;\r
+                    case 8:\r
+                        {\r
+                            HPEN oldPen = SelectObject(hdc, CreatePen(PS_NULL, 0, 0));\r
+                            SelectObject(hdc, GetSysColorBrush(COLOR_HIGHLIGHT));\r
+                            Rectangle(hdc, brushStyle%3*13+2, brushStyle/3*15+2, brushStyle%3*13+15, brushStyle/3*15+17);\r
+                            DeleteObject(SelectObject(hdc, oldPen));\r
+                            int i;\r
+                            for (i=0; i<12; i++)\r
+                            if (i==brushStyle)\r
+                                Brush(hdc, i%3*13+7, i/3*15+8, i%3*13+7, i/3*15+8, GetSysColor(COLOR_HIGHLIGHTTEXT), i);\r
+                            else\r
+                                Brush(hdc, i%3*13+7, i/3*15+8, i%3*13+7, i/3*15+8, GetSysColor(COLOR_WINDOWTEXT), i);\r
+                        }\r
+                        break;\r
+                    case 9:\r
+                        {\r
+                            HPEN oldPen = SelectObject(hdc, CreatePen(PS_NULL, 0, 0));\r
+                            SelectObject(hdc, GetSysColorBrush(COLOR_HIGHLIGHT));\r
+                            switch (airBrushWidth)\r
+                            {\r
+                                case 5:\r
+                                    Rectangle(hdc, 2, 2, 21, 31);\r
+                                    break;\r
+                                case 8:\r
+                                    Rectangle(hdc, 20, 2, 41, 31);\r
+                                    break;\r
+                                case 3:\r
+                                    Rectangle(hdc, 2, 30, 16, 61);\r
+                                    break;\r
+                                case 12:\r
+                                    Rectangle(hdc, 15, 30, 41, 61);\r
+                                    break;\r
+                            }\r
+                            if (airBrushWidth==5)\r
+                                Airbrush(hdc, 10, 15, GetSysColor(COLOR_HIGHLIGHTTEXT), 5);\r
+                            else\r
+                                Airbrush(hdc, 10, 15, GetSysColor(COLOR_WINDOWTEXT), 5);\r
+                            if (airBrushWidth==8)\r
+                                Airbrush(hdc, 30, 15, GetSysColor(COLOR_HIGHLIGHTTEXT), 8);\r
+                            else\r
+                                Airbrush(hdc, 30, 15, GetSysColor(COLOR_WINDOWTEXT), 8);\r
+                            if (airBrushWidth==3)\r
+                                Airbrush(hdc, 8, 45, GetSysColor(COLOR_HIGHLIGHTTEXT), 3);\r
+                            else\r
+                                Airbrush(hdc, 8, 45, GetSysColor(COLOR_WINDOWTEXT), 3);\r
+                            if (airBrushWidth==12)\r
+                                Airbrush(hdc, 27, 45, GetSysColor(COLOR_HIGHLIGHTTEXT), 12);\r
+                            else\r
+                                Airbrush(hdc, 27, 45, GetSysColor(COLOR_WINDOWTEXT), 12);\r
+                            DeleteObject(SelectObject(hdc, oldPen));\r
+                        }\r
+                        break;\r
+                    case 11:\r
+                    case 12:\r
+                        {\r
+                            int i;\r
+                            HPEN oldPen = SelectObject(hdc, CreatePen(PS_NULL, 0, 0));\r
+                            for (i=0; i<5; i++)\r
+                            {\r
+                                if (lineWidth==i+1)\r
+                                {\r
+                                    SelectObject(hdc, GetSysColorBrush(COLOR_HIGHLIGHT));\r
+                                    Rectangle(hdc, 2, i*12+2, 41, i*12+14);\r
+                                    SelectObject(hdc, GetSysColorBrush(COLOR_HIGHLIGHTTEXT));\r
+                                } else SelectObject(hdc, GetSysColorBrush(COLOR_WINDOWTEXT));\r
+                                Rectangle(hdc, 5, i*12+6, 38, i*12+8+i);\r
+                            }\r
+                            DeleteObject(SelectObject(hdc, oldPen));\r
+                        }\r
+                        break;\r
+                    case 13:\r
+                    case 14:\r
+                    case 15:\r
+                    case 16:\r
+                        {\r
+                            int i;\r
+                            HPEN oldPen = SelectObject(hdc, CreatePen(PS_NULL, 0, 0));\r
+                            for (i=0; i<3; i++)\r
+                            {\r
+                                if (shapeStyle==i)\r
+                                {\r
+                                    SelectObject(hdc, GetSysColorBrush(COLOR_HIGHLIGHT));\r
+                                    Rectangle(hdc, 2, i*20+2, 41, i*20+22);\r
+                                }\r
+                            }\r
+                            if (shapeStyle==0)\r
+                                Rect(hdc, 5, 6, 37, 16, GetSysColor(COLOR_HIGHLIGHTTEXT), GetSysColor(COLOR_APPWORKSPACE), 1, FALSE);\r
+                            else\r
+                                Rect(hdc, 5, 6, 37, 16, GetSysColor(COLOR_WINDOWTEXT), GetSysColor(COLOR_APPWORKSPACE), 1, FALSE);\r
+                            if (shapeStyle==1)\r
+                                Rect(hdc, 5, 26, 37, 36, GetSysColor(COLOR_HIGHLIGHTTEXT), GetSysColor(COLOR_APPWORKSPACE), 1, TRUE);\r
+                            else\r
+                                Rect(hdc, 5, 26, 37, 36, GetSysColor(COLOR_WINDOWTEXT), GetSysColor(COLOR_APPWORKSPACE), 1, TRUE);\r
+                            Rect(hdc, 5, 46, 37, 56, GetSysColor(COLOR_APPWORKSPACE), GetSysColor(COLOR_APPWORKSPACE), 1, TRUE);\r
+                            for (i=0; i<5; i++)\r
+                            {\r
+                                if (lineWidth==i+1)\r
+                                {\r
+                                    SelectObject(hdc, GetSysColorBrush(COLOR_HIGHLIGHT));\r
+                                    Rectangle(hdc, 2, i*12+72, 41, i*12+84);\r
+                                    SelectObject(hdc, GetSysColorBrush(COLOR_HIGHLIGHTTEXT));\r
+                                } else SelectObject(hdc, GetSysColorBrush(COLOR_WINDOWTEXT));\r
+                                Rectangle(hdc, 5, i*12+76, 38, i*12+78+i);\r
+                            }\r
+                            DeleteObject(SelectObject(hdc, oldPen));\r
+                        }\r
+                        break;\r
+                }\r
+                ReleaseDC(hwnd, hdc);\r
+            }\r
+            break;\r
+        case WM_LBUTTONDOWN:\r
+            {\r
+                switch (activeTool)\r
+                {\r
+                    case 1:\r
+                    case 2:\r
+                    case 10:\r
+                        if ((HIWORD(lParam)>1)&&(HIWORD(lParam)<64))\r
+                        {\r
+                            transpBg = (HIWORD(lParam)-2)/31;\r
+                            SendMessage(hwnd, WM_PAINT, 0, 0);\r
+                        }\r
+                        break;\r
+                    case 3:\r
+                        if ((HIWORD(lParam)>1)&&(HIWORD(lParam)<62))\r
+                        {\r
+                            rubberRadius = (HIWORD(lParam)-2)/15+2;\r
+                            SendMessage(hwnd, WM_PAINT, 0, 0);\r
+                        }\r
+                        break;\r
+                    case 8:\r
+                        if ((LOWORD(lParam)>1)&&(LOWORD(lParam)<40)&&(HIWORD(lParam)>1)&&(HIWORD(lParam)<62))\r
+                        {\r
+                            brushStyle = (HIWORD(lParam)-2)/15*3+(LOWORD(lParam)-2)/13;\r
+                            SendMessage(hwnd, WM_PAINT, 0, 0);\r
+                        }\r
+                        break;\r
+                    case 9:\r
+                        if (HIWORD(lParam)<62)\r
+                        {\r
+                            if (HIWORD(lParam)<30)\r
+                            {\r
+                                if (LOWORD(lParam)<20) airBrushWidth=5; else airBrushWidth=8;\r
+                            }else\r
+                            {\r
+                                if (LOWORD(lParam)<15) airBrushWidth=3; else airBrushWidth=12;\r
+                            }\r
+                            SendMessage(hwnd, WM_PAINT, 0, 0);\r
+                        }\r
+                        break;\r
+                    case 11:\r
+                    case 12:\r
+                        if (HIWORD(lParam)<=62)\r
+                        {\r
+                            lineWidth = (HIWORD(lParam)-2)/12+1;\r
+                            SendMessage(hwnd, WM_PAINT, 0, 0);\r
+                        }\r
+                        break;\r
+                    case 13:\r
+                    case 14:\r
+                    case 15:\r
+                    case 16:\r
+                        if (HIWORD(lParam)<=60)\r
+                        {\r
+                            shapeStyle = (HIWORD(lParam)-2)/20;\r
+                            SendMessage(hwnd, WM_PAINT, 0, 0);\r
+                        }\r
+                        if ((HIWORD(lParam)>=70)&&(HIWORD(lParam)<=132))\r
+                        {\r
+                            lineWidth = (HIWORD(lParam)-72)/12+1;\r
+                            SendMessage(hwnd, WM_PAINT, 0, 0);\r
+                        }\r
+                        break;\r
+                }\r
+            }\r
+            break;\r
+        \r
+        default:\r
+            return DefWindowProc (hwnd, message, wParam, lParam);\r
+    }\r
+\r
+    return 0;\r
+}\r
+\r
diff --git a/reactos/base/applications/paint/toolsettings.h b/reactos/base/applications/paint/toolsettings.h
new file mode 100755 (executable)
index 0000000..9d39d19
--- /dev/null
@@ -0,0 +1,9 @@
+/*\r
+ * PROJECT:     PAINT for ReactOS\r
+ * LICENSE:     LGPL\r
+ * FILE:        toolsettings.h\r
+ * PURPOSE:     Window procedure of the tool settings window\r
+ * PROGRAMMERS: Benedikt Freisen\r
+ */\r
+\r
+LRESULT CALLBACK SettingsWinProc (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam);\r
diff --git a/reactos/base/applications/paint/winproc.c b/reactos/base/applications/paint/winproc.c
new file mode 100755 (executable)
index 0000000..c97c2d1
--- /dev/null
@@ -0,0 +1,608 @@
+/*\r
+ * PROJECT:     PAINT for ReactOS\r
+ * LICENSE:     LGPL\r
+ * FILE:        winproc.c\r
+ * PURPOSE:     Window procedure of the main window and all children apart from\r
+ *              hPalWin, hToolSettings and hSelection\r
+ * PROGRAMMERS: Benedikt Freisen\r
+ */\r
+\r
+/* INCLUDES *********************************************************/\r
+\r
+#include <windows.h>\r
+#include <commctrl.h>\r
+//#include <htmlhelp.h>\r
+#include <stdio.h>\r
+#include "definitions.h"\r
+#include "globalvar.h"\r
+#include "dialogs.h"\r
+#include "history.h"\r
+\r
+/* FUNCTIONS ********************************************************/\r
+\r
+void selectTool(int tool)\r
+{\r
+    ShowWindow(hSelection, SW_HIDE);\r
+    activeTool = tool;\r
+    SendMessage(hToolSettings, WM_PAINT, 0, 0);\r
+}\r
+\r
+void updateCanvasAndScrollbars()\r
+{\r
+    ShowWindow(hSelection, SW_HIDE);\r
+    MoveWindow(hImageArea, 3, 3, imgXRes*zoom/1000, imgYRes*zoom/1000, FALSE);\r
+    InvalidateRect(hScrollbox, NULL, TRUE);\r
+    InvalidateRect(hImageArea, NULL, FALSE);\r
+    \r
+    SetScrollPos(hScrollbox, SB_HORZ, 0, TRUE);\r
+    SetScrollPos(hScrollbox, SB_VERT, 0, TRUE);\r
+}\r
+\r
+void ZoomTo(int newZoom)\r
+{\r
+    zoom = newZoom;\r
+    updateCanvasAndScrollbars();\r
+}\r
+\r
+HDC hdc;\r
+BOOL drawing;\r
+\r
+LRESULT CALLBACK WindowProcedure (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)\r
+{\r
+    switch (message)                  /* handle the messages */\r
+    {\r
+        case WM_DESTROY:\r
+            PostQuitMessage (0);       /* send a WM_QUIT to the message queue */\r
+            break;\r
+        case WM_CLOSE:\r
+            if (undoSteps>0)\r
+            {\r
+                char programname[20];\r
+                char saveprompttext[100];\r
+                LoadString(hProgInstance, IDS_PROGRAMNAME, (LPTSTR)&programname, 20);\r
+                LoadString(hProgInstance, IDS_SAVEPROMPTTEXT, (LPTSTR)&saveprompttext, 100);\r
+                char temptext[500];\r
+                sprintf(temptext, saveprompttext, filename);\r
+                switch (MessageBox(hwnd, (LPTSTR)&temptext, (LPTSTR)&programname, MB_YESNOCANCEL | MB_ICONQUESTION))\r
+                {\r
+                    case IDNO:\r
+                        DestroyWindow(hwnd);\r
+                        break;\r
+                    case IDYES:\r
+                        SendMessage(hwnd, WM_COMMAND, IDM_FILESAVEAS, 0);\r
+                        DestroyWindow(hwnd);\r
+                        break;\r
+                }\r
+            }\r
+            else\r
+            {\r
+                DestroyWindow(hwnd);\r
+            }\r
+            break;\r
+        case WM_INITMENUPOPUP:\r
+            switch (lParam)\r
+            {\r
+                case 0:\r
+                    if (FALSE)\r
+                    {\r
+                        EnableMenuItem(GetMenu(hMainWnd), IDM_FILEASWALLPAPERPLANE, MF_ENABLED | MF_BYCOMMAND);\r
+                        EnableMenuItem(GetMenu(hMainWnd), IDM_FILEASWALLPAPERCENTERED, MF_ENABLED | MF_BYCOMMAND);\r
+                        EnableMenuItem(GetMenu(hMainWnd), IDM_FILEASWALLPAPERSTRETCHED, MF_ENABLED | MF_BYCOMMAND);\r
+                    }\r
+                    else\r
+                    {\r
+                        EnableMenuItem(GetMenu(hMainWnd), IDM_FILEASWALLPAPERPLANE, MF_GRAYED | MF_BYCOMMAND);\r
+                        EnableMenuItem(GetMenu(hMainWnd), IDM_FILEASWALLPAPERCENTERED, MF_GRAYED | MF_BYCOMMAND);\r
+                        EnableMenuItem(GetMenu(hMainWnd), IDM_FILEASWALLPAPERSTRETCHED, MF_GRAYED | MF_BYCOMMAND);\r
+                    }\r
+                    break;\r
+                case 1:\r
+                    if (undoSteps>0)\r
+                        EnableMenuItem(GetMenu(hMainWnd), IDM_EDITUNDO, MF_ENABLED | MF_BYCOMMAND);\r
+                    else\r
+                        EnableMenuItem(GetMenu(hMainWnd), IDM_EDITUNDO, MF_GRAYED | MF_BYCOMMAND);\r
+                    if (redoSteps>0)\r
+                        EnableMenuItem(GetMenu(hMainWnd), IDM_EDITREDO, MF_ENABLED | MF_BYCOMMAND);\r
+                    else\r
+                        EnableMenuItem(GetMenu(hMainWnd), IDM_EDITREDO, MF_GRAYED | MF_BYCOMMAND);\r
+                    if (IsWindowVisible(hSelection))\r
+                    {\r
+                        EnableMenuItem(GetMenu(hMainWnd), IDM_EDITCUT, MF_ENABLED | MF_BYCOMMAND);\r
+                        EnableMenuItem(GetMenu(hMainWnd), IDM_EDITCOPY, MF_ENABLED | MF_BYCOMMAND);\r
+                        EnableMenuItem(GetMenu(hMainWnd), IDM_EDITDELETESELECTION, MF_ENABLED | MF_BYCOMMAND);\r
+                        EnableMenuItem(GetMenu(hMainWnd), IDM_EDITINVERTSELECTION, MF_ENABLED | MF_BYCOMMAND);\r
+                        EnableMenuItem(GetMenu(hMainWnd), IDM_EDITCOPYTO, MF_ENABLED | MF_BYCOMMAND);\r
+                    }\r
+                    else\r
+                    {\r
+                        EnableMenuItem(GetMenu(hMainWnd), IDM_EDITCUT, MF_GRAYED | MF_BYCOMMAND);\r
+                        EnableMenuItem(GetMenu(hMainWnd), IDM_EDITCOPY, MF_GRAYED | MF_BYCOMMAND);\r
+                        EnableMenuItem(GetMenu(hMainWnd), IDM_EDITDELETESELECTION, MF_GRAYED | MF_BYCOMMAND);\r
+                        EnableMenuItem(GetMenu(hMainWnd), IDM_EDITINVERTSELECTION, MF_GRAYED | MF_BYCOMMAND);\r
+                        EnableMenuItem(GetMenu(hMainWnd), IDM_EDITCOPYTO, MF_GRAYED | MF_BYCOMMAND);\r
+                    }\r
+                    OpenClipboard(hMainWnd);\r
+                    if (GetClipboardData(CF_BITMAP)!=NULL)\r
+                        EnableMenuItem(GetMenu(hMainWnd), IDM_EDITPASTE, MF_ENABLED | MF_BYCOMMAND);\r
+                    else\r
+                        EnableMenuItem(GetMenu(hMainWnd), IDM_EDITPASTE, MF_GRAYED | MF_BYCOMMAND);\r
+                    CloseClipboard();\r
+                    break;\r
+                case 3:\r
+                    if (IsWindowVisible(hSelection))\r
+                        EnableMenuItem(GetMenu(hMainWnd), IDM_IMAGECROP, MF_ENABLED | MF_BYCOMMAND);\r
+                    else\r
+                        EnableMenuItem(GetMenu(hMainWnd), IDM_IMAGECROP, MF_GRAYED | MF_BYCOMMAND);\r
+                    if (transpBg==0)\r
+                        CheckMenuItem(GetMenu(hMainWnd), IDM_IMAGEDRAWOPAQUE, MF_CHECKED | MF_BYCOMMAND);\r
+                    else\r
+                        CheckMenuItem(GetMenu(hMainWnd), IDM_IMAGEDRAWOPAQUE, MF_UNCHECKED | MF_BYCOMMAND);\r
+                    break;\r
+            }\r
+            break;\r
+        case WM_SIZE:\r
+            if (hwnd==hMainWnd)\r
+            { \r
+                int test[] = {LOWORD(lParam)-260, LOWORD(lParam)-140, LOWORD(lParam)-20};\r
+                SendMessage(hStatusBar, WM_SIZE, wParam, lParam);\r
+                SendMessage(hStatusBar, SB_SETPARTS, 3, (int)&test);\r
+                MoveWindow(hScrollbox, 56, 49,LOWORD(lParam)-56, HIWORD(lParam)-72, TRUE);\r
+                //InvalidateRect(hwnd, NULL, TRUE);\r
+            }\r
+            if ((hwnd==hImageArea)||(hwnd==hScrollbox))\r
+            {\r
+                long clientRectScrollbox[4];\r
+                GetClientRect(hScrollbox, (LPRECT)&clientRectScrollbox);\r
+                long clientRectImageArea[4];\r
+                GetClientRect(hImageArea, (LPRECT)&clientRectImageArea);\r
+                MoveWindow(hScrlClient, 0, 0, max(clientRectImageArea[2]+6, clientRectScrollbox[2]), max(clientRectImageArea[3]+6, clientRectScrollbox[3]), TRUE);\r
+                SCROLLINFO horzScroll;\r
+                horzScroll.cbSize       = sizeof(SCROLLINFO);\r
+                horzScroll.fMask        = SIF_PAGE | SIF_RANGE;\r
+                horzScroll.nMax         = 10000;\r
+                horzScroll.nMin         = 0;\r
+                horzScroll.nPage        = clientRectScrollbox[2]*10000/(clientRectImageArea[2]+6);\r
+                horzScroll.nPos         = 0;\r
+                horzScroll.nTrackPos    = 0;\r
+                SetScrollInfo(hScrollbox, SB_HORZ, &horzScroll, TRUE);\r
+                GetClientRect(hScrollbox, (LPRECT)clientRectScrollbox);\r
+                SCROLLINFO vertScroll;\r
+                vertScroll.cbSize       = sizeof(SCROLLINFO);\r
+                vertScroll.fMask        = SIF_PAGE | SIF_RANGE;\r
+                vertScroll.nMax         = 10000;\r
+                vertScroll.nMin         = 0;\r
+                vertScroll.nPage        = clientRectScrollbox[3]*10000/(clientRectImageArea[3]+6);\r
+                vertScroll.nPos         = 0;\r
+                vertScroll.nTrackPos    = 0;\r
+                SetScrollInfo(hScrollbox, SB_VERT, &vertScroll, TRUE);\r
+            }\r
+            break;\r
+        case WM_HSCROLL:\r
+            if (hwnd==hScrollbox)\r
+            {\r
+                if ((LOWORD(wParam)==SB_THUMBPOSITION)||(LOWORD(wParam)==SB_THUMBTRACK))\r
+                {\r
+                    SetScrollPos(hScrollbox, SB_HORZ, HIWORD(wParam), TRUE);\r
+                    MoveWindow(hScrlClient, -(imgXRes*zoom/1000+6)*GetScrollPos(hScrollbox, SB_HORZ)/10000, \r
+                        -(imgYRes*zoom/1000+6)*GetScrollPos(hScrollbox, SB_VERT)/10000, imgXRes*zoom/1000+6, imgYRes*zoom/1000+6, TRUE);\r
+                }\r
+            }\r
+            break;\r
+        case WM_VSCROLL:\r
+            if (hwnd==hScrollbox)\r
+            {\r
+                if ((LOWORD(wParam)==SB_THUMBPOSITION)||(LOWORD(wParam)==SB_THUMBTRACK))\r
+                {\r
+                    SetScrollPos(hScrollbox, SB_VERT, HIWORD(wParam), TRUE);\r
+                    MoveWindow(hScrlClient, -(imgXRes*zoom/1000+6)*GetScrollPos(hScrollbox, SB_HORZ)/10000, \r
+                        -(imgYRes*zoom/1000+6)*GetScrollPos(hScrollbox, SB_VERT)/10000, imgXRes*zoom/1000+6, imgYRes*zoom/1000+6, TRUE);\r
+                }\r
+            }\r
+            break;\r
+        case WM_GETMINMAXINFO:\r
+            if (hwnd==hMainWnd)\r
+            {\r
+                MINMAXINFO *mm = (LPMINMAXINFO)lParam;\r
+                (*mm).ptMinTrackSize.x = 330;\r
+                (*mm).ptMinTrackSize.y = 430;\r
+            }\r
+            break;\r
+        case WM_PAINT:\r
+            DefWindowProc (hwnd, message, wParam, lParam);\r
+            if (hwnd==hImageArea)\r
+            {\r
+                HDC hdc = GetDC(hImageArea);\r
+                StretchBlt(hdc, 0, 0, imgXRes*zoom/1000, imgYRes*zoom/1000, hDrawingDC, 0, 0, imgXRes, imgYRes, SRCCOPY);\r
+                ReleaseDC(hImageArea, hdc);\r
+                SendMessage(hSelection, WM_PAINT, 0, 0);\r
+            }\r
+            break; \r
+            \r
+        // mouse events used for drawing   \r
+        \r
+        case WM_SETCURSOR:\r
+            if (hwnd==hImageArea)\r
+            {\r
+                switch (activeTool)\r
+                {\r
+                    case 4:\r
+                        SetCursor(hCurFill);\r
+                        break;\r
+                    case 5:\r
+                        SetCursor(hCurColor);\r
+                        break;\r
+                    case 6:\r
+                        SetCursor(hCurZoom);\r
+                        break;\r
+                    case 7:\r
+                        SetCursor(hCurPen);\r
+                        break;\r
+                    case 9:\r
+                        SetCursor(hCurAirbrush);\r
+                        break;\r
+                    default:\r
+                        SetCursor(LoadCursor(NULL, IDC_CROSS));\r
+                }\r
+            } else DefWindowProc(hwnd, message, wParam, lParam);\r
+            break;\r
+        case WM_LBUTTONDOWN:\r
+            if (hwnd==hImageArea)\r
+            { \r
+                if ((!drawing)||(activeTool==5))\r
+                {\r
+                    SetCapture(hImageArea);\r
+                    drawing = TRUE;\r
+                    startPainting(hDrawingDC, LOWORD(lParam)*1000/zoom, HIWORD(lParam)*1000/zoom, fgColor, bgColor);\r
+                }else\r
+                {\r
+                    SendMessage(hwnd, WM_LBUTTONUP, wParam, lParam);\r
+                    undo();\r
+                }\r
+                SendMessage(hImageArea, WM_PAINT, 0, 0);\r
+                if ((activeTool==6)&&(zoom<8000)) ZoomTo(zoom*2);\r
+            }\r
+            break; \r
+        case WM_RBUTTONDOWN:\r
+            if (hwnd==hImageArea)\r
+            { \r
+                if ((!drawing)||(activeTool==5))\r
+                {\r
+                    SetCapture(hImageArea);\r
+                    drawing = TRUE;\r
+                    startPainting(hDrawingDC, LOWORD(lParam)*1000/zoom, HIWORD(lParam)*1000/zoom, bgColor, fgColor);\r
+                }else\r
+                {\r
+                    SendMessage(hwnd, WM_RBUTTONUP, wParam, lParam);\r
+                    undo();\r
+                }\r
+                SendMessage(hImageArea, WM_PAINT, 0, 0);\r
+                if ((activeTool==6)&&(zoom>125)) ZoomTo(zoom/2);\r
+            }\r
+            break; \r
+        case WM_LBUTTONUP:\r
+            if ((hwnd==hImageArea)&&drawing)\r
+            { \r
+                ReleaseCapture();\r
+                drawing = FALSE;\r
+                endPainting(hDrawingDC, LOWORD(lParam)*1000/zoom, HIWORD(lParam)*1000/zoom, fgColor, bgColor);\r
+                SendMessage(hImageArea, WM_PAINT, 0, 0);\r
+                if (activeTool==5)\r
+                {\r
+                    int tempColor = GetPixel(hDrawingDC, LOWORD(lParam)*1000/zoom, HIWORD(lParam)*1000/zoom);\r
+                    if (tempColor!=CLR_INVALID) fgColor = tempColor;\r
+                    SendMessage(hPalWin, WM_PAINT, 0, 0);\r
+                }\r
+                SendMessage(hStatusBar, SB_SETTEXT, 2, (LPARAM)"");\r
+            }\r
+            break;\r
+        case WM_RBUTTONUP:\r
+            if ((hwnd==hImageArea)&&drawing)\r
+            { \r
+                ReleaseCapture();\r
+                drawing = FALSE;\r
+                endPainting(hDrawingDC, LOWORD(lParam)*1000/zoom, HIWORD(lParam)*1000/zoom, bgColor, fgColor);\r
+                SendMessage(hImageArea, WM_PAINT, 0, 0);\r
+                if (activeTool==5)\r
+                {\r
+                    int tempColor = GetPixel(hDrawingDC, LOWORD(lParam)*1000/zoom, HIWORD(lParam)*1000/zoom);\r
+                    if (tempColor!=CLR_INVALID) bgColor = tempColor;\r
+                    SendMessage(hPalWin, WM_PAINT, 0, 0);\r
+                }\r
+                SendMessage(hStatusBar, SB_SETTEXT, 2, (LPARAM)"");\r
+            }\r
+            break;\r
+        case WM_MOUSEMOVE:\r
+            if (hwnd==hImageArea)\r
+            {\r
+                if ((!drawing)||(activeTool<=9))\r
+                {\r
+                    char coordStr[100];\r
+                    sprintf(coordStr, "%d, %d", (short)LOWORD(lParam)*1000/zoom, (short)HIWORD(lParam)*1000/zoom);\r
+                    SendMessage(hStatusBar, SB_SETTEXT, 1, (LPARAM)coordStr);\r
+                }\r
+                if (drawing)\r
+                {\r
+                    if ((wParam&MK_LBUTTON)!=0)\r
+                    {\r
+                        whilePainting(hDrawingDC, LOWORD(lParam)*1000/zoom, HIWORD(lParam)*1000/zoom, fgColor, bgColor);\r
+                        SendMessage(hImageArea, WM_PAINT, 0, 0);\r
+                        if ((activeTool>=10)||(activeTool==2))\r
+                        {\r
+                            char sizeStr[100];\r
+                            sprintf(sizeStr, "%d x %d", (short)LOWORD(lParam)*1000/zoom-startX, (short)HIWORD(lParam)*1000/zoom-startY);\r
+                            SendMessage(hStatusBar, SB_SETTEXT, 2, (LPARAM)sizeStr);\r
+                        }\r
+                    }\r
+                    if ((wParam&MK_RBUTTON)!=0)\r
+                    {\r
+                        whilePainting(hDrawingDC, LOWORD(lParam)*1000/zoom, HIWORD(lParam)*1000/zoom, bgColor, fgColor);\r
+                        SendMessage(hImageArea, WM_PAINT, 0, 0);\r
+                        if (activeTool>=10)\r
+                        {\r
+                            char sizeStr[100];\r
+                            sprintf(sizeStr, "%d x %d", (short)LOWORD(lParam)*1000/zoom-startX, (short)HIWORD(lParam)*1000/zoom-startY);\r
+                            SendMessage(hStatusBar, SB_SETTEXT, 2, (LPARAM)sizeStr);\r
+                        }\r
+                    }\r
+                }\r
+            } else\r
+            {\r
+                SendMessage(hStatusBar, SB_SETTEXT, 1, (LPARAM)"");\r
+            }\r
+            break;\r
+            \r
+        // menu and button events\r
+        \r
+        case WM_COMMAND:\r
+            switch (LOWORD(wParam))\r
+            {\r
+                case IDM_HELPINFO:\r
+                    {\r
+                        HICON paintIcon = LoadIcon(hProgInstance, MAKEINTRESOURCE(IDI_APPICON));\r
+                        char infotitle[100];\r
+                        char infotext[200];\r
+                        LoadString(hProgInstance, IDS_INFOTITLE, (LPTSTR)&infotitle, 100);\r
+                        LoadString(hProgInstance, IDS_INFOTEXT, (LPTSTR)&infotext, 200);\r
+                        ShellAbout(hMainWnd, (LPTSTR)&infotitle, (LPTSTR)&infotext, paintIcon);\r
+                        DeleteObject(paintIcon);\r
+                    }\r
+                    break;\r
+                case IDM_HELPHELPTOPICS:\r
+                    //HtmlHelp(hMainWnd, "help\\Paint.chm", 0, 0);\r
+                    break;\r
+                case IDM_FILEEXIT:\r
+                    SendMessage(hwnd, WM_CLOSE, wParam, lParam);\r
+                    break;\r
+                case IDM_FILENEW:\r
+                    Rectangle(hDrawingDC, 0-1, 0-1, imgXRes+1, imgYRes+1);\r
+                    SendMessage(hImageArea, WM_PAINT, 0, 0);\r
+                    break;\r
+                case IDM_FILEOPEN:\r
+                    if (GetOpenFileName(&ofn)!=0)\r
+                    {\r
+                        HBITMAP bmNew = (HBITMAP)LoadDIBFromFile(ofn.lpstrFile);\r
+                        if (bmNew!=NULL)\r
+                        {\r
+                            insertReversible(bmNew);\r
+                            updateCanvasAndScrollbars();\r
+                            char tempstr[1000];\r
+                            char resstr[100];\r
+                            CopyMemory(&filename, ofn.lpstrFileTitle, 256);\r
+                            CopyMemory(&filepathname, ofn.lpstrFileTitle, 1000);\r
+                            LoadString(hProgInstance, IDS_WINDOWTITLE, (LPTSTR)&resstr, 100);\r
+                            sprintf(tempstr, resstr, &filename);\r
+                            SetWindowText(hMainWnd, tempstr);\r
+                            clearHistory();\r
+                            isAFile = TRUE;\r
+                        }\r
+                    }\r
+                    break;\r
+                case IDM_FILESAVE:\r
+                    if (isAFile)\r
+                        SaveDIBToFile(hBms[currInd], &filepathname, hDrawingDC);\r
+                    else\r
+                        SendMessage(hwnd, WM_COMMAND, IDM_FILESAVEAS, 0);\r
+                    break;\r
+                case IDM_FILESAVEAS:\r
+                    if (GetSaveFileName(&sfn)!=0)\r
+                    {\r
+                        SaveDIBToFile(hBms[currInd], sfn.lpstrFile, hDrawingDC);\r
+                        char tempstr[1000];\r
+                        char resstr[100];\r
+                        CopyMemory(&filename, sfn.lpstrFileTitle, 256);\r
+                        CopyMemory(&filepathname, sfn.lpstrFileTitle, 1000);\r
+                        LoadString(hProgInstance, IDS_WINDOWTITLE, (LPTSTR)&resstr, 100);\r
+                        sprintf(tempstr, resstr, &filename);\r
+                        SetWindowText(hMainWnd, tempstr);\r
+                        isAFile = TRUE;\r
+                    }\r
+                    break;\r
+                case IDM_EDITUNDO:\r
+                    undo();\r
+                    SendMessage(hImageArea, WM_PAINT, 0, 0);\r
+                    break;\r
+                case IDM_EDITREDO:\r
+                    redo();\r
+                    SendMessage(hImageArea, WM_PAINT, 0, 0);\r
+                    break;\r
+                case IDM_EDITCOPY:\r
+                    OpenClipboard(hMainWnd);\r
+                    EmptyClipboard();\r
+                    SetClipboardData(CF_BITMAP, CopyImage(hSelBm, IMAGE_BITMAP, 0, 0, LR_COPYRETURNORG));\r
+                    CloseClipboard();\r
+                    break;\r
+                case IDM_EDITPASTE:\r
+                    OpenClipboard(hMainWnd);\r
+                    if (GetClipboardData(CF_BITMAP)!=NULL)\r
+                    {\r
+                        DeleteObject(SelectObject(hSelDC, hSelBm = CopyImage(GetClipboardData(CF_BITMAP), IMAGE_BITMAP, 0, 0, LR_COPYRETURNORG)));\r
+                        newReversible();\r
+                        rectSel_src[0] = rectSel_src[1] = rectSel_src[2] = rectSel_src[3] = 0;\r
+                        rectSel_dest[0] = rectSel_dest[1] = 0;\r
+                        rectSel_dest[2] = GetDIBWidth(hSelBm);\r
+                        rectSel_dest[3] = GetDIBHeight(hSelBm);\r
+                        BitBlt(hDrawingDC, rectSel_dest[0], rectSel_dest[1], rectSel_dest[2], rectSel_dest[3], hSelDC, 0, 0, SRCCOPY);\r
+                        placeSelWin();\r
+                        ShowWindow(hSelection, SW_SHOW);\r
+                    }\r
+                    CloseClipboard();\r
+                    break;\r
+                case IDM_EDITDELETESELECTION:\r
+                    ShowWindow(hSelection, SW_HIDE);\r
+                    break;\r
+                case IDM_EDITSELECTALL:\r
+                    if (activeTool==2)\r
+                    {\r
+                        startPainting(hDrawingDC, 0, 0, fgColor, bgColor);\r
+                        whilePainting(hDrawingDC, imgXRes, imgYRes, fgColor, bgColor);\r
+                        endPainting(hDrawingDC, imgXRes, imgYRes, fgColor, bgColor);\r
+                    }\r
+                    break;\r
+                case IDM_EDITCOPYTO:\r
+                    if (GetSaveFileName(&ofn)!=0) SaveDIBToFile(hSelBm, ofn.lpstrFile, hDrawingDC);\r
+                    break;\r
+                case IDM_COLORSEDITPALETTE:\r
+                    if (ChooseColor(&choosecolor))\r
+                    {\r
+                        fgColor = choosecolor.rgbResult;\r
+                        SendMessage(hPalWin, WM_PAINT, 0, 0);\r
+                    }\r
+                    break;\r
+                case IDM_IMAGEINVERTCOLORS:\r
+                    {\r
+                        newReversible();\r
+                        int tempRect[4] = {0, 0, imgXRes, imgYRes};\r
+                        InvertRect(hDrawingDC, (LPRECT)tempRect);\r
+                        SendMessage(hImageArea, WM_PAINT, 0, 0);\r
+                    }\r
+                    break; \r
+                case IDM_IMAGEDELETEIMAGE:\r
+                    newReversible();\r
+                    Rect(hDrawingDC, 0, 0, imgXRes, imgYRes, bgColor, bgColor, 0, TRUE);\r
+                    SendMessage(hImageArea, WM_PAINT, 0, 0);\r
+                    break;\r
+                case IDM_IMAGEROTATEMIRROR:\r
+                    switch (mirrorRotateDlg())\r
+                    {\r
+                        case 1:\r
+                            newReversible();\r
+                            StretchBlt(hDrawingDC, imgXRes-1, 0, -imgXRes, imgYRes, hDrawingDC, 0, 0, imgXRes, imgYRes, SRCCOPY);\r
+                            SendMessage(hImageArea, WM_PAINT, 0, 0);\r
+                            break;\r
+                        case 2:\r
+                            newReversible();\r
+                            StretchBlt(hDrawingDC, 0, imgYRes-1, imgXRes, -imgYRes, hDrawingDC, 0, 0, imgXRes, imgYRes, SRCCOPY);\r
+                            SendMessage(hImageArea, WM_PAINT, 0, 0);\r
+                            break;\r
+                        case 4:\r
+                            newReversible();\r
+                            StretchBlt(hDrawingDC, imgXRes-1, imgYRes-1, -imgXRes, -imgYRes, hDrawingDC, 0, 0, imgXRes, imgYRes, SRCCOPY);\r
+                            SendMessage(hImageArea, WM_PAINT, 0, 0);\r
+                            break;\r
+                    }\r
+                    break;\r
+                case IDM_IMAGEATTRIBUTES:\r
+                    {\r
+                        int attrdata[8] = {0, 0, 0, 0, 0, 0, 0, 0};\r
+                        attributesDlg();\r
+                        //cropReversible(640, 200);\r
+                        //ZoomTo(zoom);\r
+                    }\r
+                    break;\r
+                case IDM_IMAGECHANGESIZE:\r
+                    {\r
+                        int retVal = changeSizeDlg();\r
+                        if ((LOWORD(retVal)!=0)&&(HIWORD(retVal)!=0))\r
+                        {\r
+                            insertReversible(CopyImage(hBms[currInd], IMAGE_BITMAP, imgXRes*LOWORD(retVal)/100, imgYRes*HIWORD(retVal)/100, 0));\r
+                            updateCanvasAndScrollbars();\r
+                        }\r
+                    }\r
+                    break;\r
+                case IDM_IMAGEDRAWOPAQUE:\r
+                    transpBg = 1-transpBg;\r
+                    SendMessage(hToolSettings, WM_PAINT, 0, 0);\r
+                    break;\r
+                case IDM_IMAGECROP:\r
+                    insertReversible(CopyImage(hSelBm, IMAGE_BITMAP, 0, 0, LR_COPYRETURNORG));\r
+                    updateCanvasAndScrollbars();\r
+                    break;\r
+                    \r
+                case IDM_VIEWZOOM125:\r
+                    ZoomTo(125);\r
+                    break;\r
+                case IDM_VIEWZOOM25:\r
+                    ZoomTo(250);\r
+                    break;\r
+                case IDM_VIEWZOOM50:\r
+                    ZoomTo(500);\r
+                    break;\r
+                case IDM_VIEWZOOM100:\r
+                    ZoomTo(1000);\r
+                    break;\r
+                case IDM_VIEWZOOM200:\r
+                    ZoomTo(2000);\r
+                    break;\r
+                case IDM_VIEWZOOM400:\r
+                    ZoomTo(4000);\r
+                    break;\r
+                case IDM_VIEWZOOM800:\r
+                    ZoomTo(8000);\r
+                    break;\r
+                case ID_FREESEL:\r
+                    selectTool(1);\r
+                    break; \r
+                case ID_RECTSEL:\r
+                    selectTool(2);\r
+                    break; \r
+                case ID_RUBBER:\r
+                    selectTool(3);\r
+                    break; \r
+                case ID_FILL:\r
+                    selectTool(4);\r
+                    break; \r
+                case ID_COLOR:\r
+                    selectTool(5);\r
+                    break; \r
+                case ID_ZOOM:\r
+                    selectTool(6);\r
+                    break; \r
+                case ID_PEN:\r
+                    selectTool(7);\r
+                    break; \r
+                case ID_BRUSH:\r
+                    selectTool(8);\r
+                    break; \r
+                case ID_AIRBRUSH:\r
+                    selectTool(9);\r
+                    break; \r
+                case ID_TEXT:\r
+                    selectTool(10);\r
+                    break; \r
+                case ID_LINE:\r
+                    selectTool(11);\r
+                    break; \r
+                case ID_BEZIER:\r
+                    selectTool(12);\r
+                    break; \r
+                case ID_RECT:\r
+                    selectTool(13);\r
+                    break; \r
+                case ID_SHAPE:\r
+                    selectTool(14);\r
+                    break; \r
+                case ID_ELLIPSE:\r
+                    selectTool(15);\r
+                    break; \r
+                case ID_RRECT:\r
+                    selectTool(16);\r
+                    break;\r
+            }\r
+            break;\r
+        default:\r
+            return DefWindowProc (hwnd, message, wParam, lParam);\r
+    }\r
+\r
+    return 0;\r
+}\r
+\r
diff --git a/reactos/base/applications/paint/winproc.h b/reactos/base/applications/paint/winproc.h
new file mode 100755 (executable)
index 0000000..d446aaa
--- /dev/null
@@ -0,0 +1,10 @@
+/*\r
+ * PROJECT:     PAINT for ReactOS\r
+ * LICENSE:     LGPL\r
+ * FILE:        winproc.h\r
+ * PURPOSE:     Window procedure of the main window and all children apart from\r
+ *              hPalWin, hToolSettings and hSelection\r
+ * PROGRAMMERS: Benedikt Freisen\r
+ */\r
+\r
+LRESULT CALLBACK WindowProcedure (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam);\r