MENUITEM "&Flip...", -1, GRAYED\r
MENUITEM "&Stretch...", -1, GRAYED\r
MENUITEM "S&kew...", -1, GRAYED\r
- MENUITEM "&Invert Colors", -1, GRAYED\r
+ MENUITEM "&Invert Colors", -1, GRAYED\r
MENUITEM SEPARATOR\r
MENUITEM "&Attributes...", -1, GRAYED\r
END\r
STYLE WS_BORDER | WS_DLGFRAME | WS_SYSMENU | DS_MODALFRAME\r
BEGIN\r
LTEXT "Name:", IDC_STATIC, 12, 5, 38, 9\r
- EDITTEXT IDC_IMAGE_NAME_EDIT, 58, 3, 76, 13, WS_CHILD | WS_VISIBLE | WS_TABSTOP\r
+ EDITTEXT IDC_IMAGE_NAME_EDIT, 58, 3, 94, 13, WS_CHILD | WS_VISIBLE | WS_TABSTOP\r
GROUPBOX "Canvas properties", IDC_STATIC, 4, 22, 148, 98\r
LTEXT "Image type:", IDC_STATIC, 12, 36, 42, 9\r
CONTROL "", IDC_IMAGETYPE, "ComboBox", WS_CHILD | WS_VISIBLE | WS_TABSTOP | CBS_DROPDOWNLIST, 58, 35, 88, 54\r
CONTROL "", IDC_UNIT, "ComboBox", WS_CHILD | WS_VISIBLE | WS_TABSTOP | CBS_DROPDOWNLIST, 58, 99, 54, 50\r
LTEXT "Image size:", IDC_STATIC, 12, 125, 42, 9\r
LTEXT "", IDC_IMAGE_SIZE, 58, 125, 54, 9\r
- PUSHBUTTON "OK", IDOK, 98, 144, 54, 13\r
- PUSHBUTTON "Cancel", IDCANCEL, 40, 144, 54, 13\r
+ PUSHBUTTON "OK", IDOK, 50, 144, 48, 13\r
+ PUSHBUTTON "Cancel", IDCANCEL, 102, 144, 48, 13\r
END\r
\r
\r
\r
STRINGTABLE DISCARDABLE\r
BEGIN\r
- IDS_APPNAME "ImageSoft"\r
- IDS_LICENSE "This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.\r\n\r\nThis program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.\r\n\r\nYou should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA."\r
- IDS_READY " Ready."\r
+ IDS_APPNAME "ImageSoft"\r
+ IDS_LICENSE "This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.\r\n\r\nThis program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.\r\n\r\nYou should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA."\r
+ IDS_READY " Ready."\r
\r
- IDS_TOOLBAR_STANDARD "Standard"\r
- IDS_TOOLBAR_TEST "Test"\r
- IDS_IMAGE_NAME "Image %1!u!"\r
+ IDS_TOOLBAR_STANDARD "Standard"\r
+ IDS_TOOLBAR_TEST "Test"\r
+ IDS_IMAGE_NAME "Image %1!u!"\r
END\r
\r
/* imageprop.c */\r
STRINGTABLE DISCARDABLE\r
BEGIN\r
- IDS_IMAGE_MONOCHROME "Monochrome (1 bit)"\r
- IDS_IMAGE_GREYSCALE "Greyscale (8 bit)"\r
- IDS_IMAGE_PALETTE "Palette or 256 color (8 bit)"\r
- IDS_IMAGE_TRUECOLOR "True color (24 bit)"\r
-\r
- IDS_UNIT_CM "Cm"\r
- IDS_UNIT_INCHES "Inches"\r
- IDS_UNIT_PIXELS "Pixels"\r
- IDS_UNIT_DOTSCM "Dots / Cm"\r
- IDS_UNIT_DPI "DPI"\r
+ IDS_IMAGE_MONOCHROME "Monochrome (1 bit)"\r
+ IDS_IMAGE_GREYSCALE "Greyscale (8 bit)"\r
+ IDS_IMAGE_PALETTE "Palette or 256 color (8 bit)"\r
+ IDS_IMAGE_TRUECOLOR "True color (24 bit)"\r
+\r
+ IDS_UNIT_PIXELS "Pixels"\r
+ IDS_UNIT_CM "Cm"\r
+ IDS_UNIT_INCHES "Inches"\r
+ IDS_UNIT_DOTSCM "Dots / Cm"\r
+ IDS_UNIT_DPI "DPI"\r
END\r
\r
/* Tooltips */\r
STRINGTABLE DISCARDABLE\r
BEGIN\r
- IDS_TOOLTIP_NEW "New"\r
- IDS_TOOLTIP_OPEN "Open"\r
- IDS_TOOLTIP_SAVE "Save"\r
+ IDS_TOOLTIP_NEW "New"\r
+ IDS_TOOLTIP_OPEN "Open"\r
+ IDS_TOOLTIP_SAVE "Save"\r
IDS_TOOLTIP_PRINTPRE "Print preview"\r
- IDS_TOOLTIP_PRINT "Print"\r
- IDS_TOOLTIP_CUT "Cut"\r
- IDS_TOOLTIP_COPY "Copy"\r
- IDS_TOOLTIP_PASTE "Paste"\r
- IDS_TOOLTIP_UNDO "Undo"\r
- IDS_TOOLTIP_REDO "Redo"\r
+ IDS_TOOLTIP_PRINT "Print"\r
+ IDS_TOOLTIP_CUT "Cut"\r
+ IDS_TOOLTIP_COPY "Copy"\r
+ IDS_TOOLTIP_PASTE "Paste"\r
+ IDS_TOOLTIP_UNDO "Undo"\r
+ IDS_TOOLTIP_REDO "Redo"\r
END\r
\r
/* Hints */\r
-#include "precomp.h"\r
-\r
-\r
-static LONG\r
-GetTextFromEdit(HWND hDlg, UINT Res)\r
-{\r
- LONG num = 0;\r
- INT len = GetWindowTextLength(GetDlgItem(hDlg, Res));\r
- TCHAR buf[len+1];\r
-\r
- if(len > 0)\r
- {\r
- GetDlgItemText(hDlg, Res, buf, len + 1);\r
- num = _ttol(buf);\r
- }\r
-\r
- return num;\r
-}\r
+#include <precomp.h>\r
\r
+static PIMAGE_PROP ImageProp;\r
+static HWND hImageType, hUnitType, hHeightUnit, hWidthUnit, hResUnit;\r
\r
#ifdef _MSC_VER\r
#pragma warning(disable : 4100)\r
#endif\r
INT_PTR CALLBACK\r
-ImagePropDialogProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)\r
+ImagePropDialogProc(HWND hDlg,\r
+ UINT message,\r
+ WPARAM wParam,\r
+ LPARAM lParam)\r
{\r
- HWND hImagetype;\r
- PIMAGE_PROP ImageProp;\r
- TCHAR buf[25];\r
-\r
- ImageProp = HeapAlloc(ProcessHeap,\r
- 0,\r
- sizeof(IMAGE_PROP));\r
- if (ImageProp == NULL)\r
- EndDialog(hDlg, 0);\r
+ TCHAR buf[35];\r
\r
switch (message)\r
{\r
case WM_INITDIALOG:\r
\r
- hImagetype = GetDlgItem(hDlg, IDC_IMAGETYPE);\r
+ ImageProp = HeapAlloc(ProcessHeap,\r
+ 0,\r
+ sizeof(IMAGE_PROP));\r
+ if (ImageProp == NULL)\r
+ EndDialog(hDlg, 0);\r
+\r
+ /* get handles to the windows */\r
+ hImageType = GetDlgItem(hDlg, IDC_IMAGETYPE);\r
+ hUnitType = GetDlgItem(hDlg, IDC_UNIT);\r
+ hWidthUnit = GetDlgItem(hDlg, IDC_WIDTH_STAT);\r
+ hHeightUnit = GetDlgItem(hDlg, IDC_HEIGHT_STAT);\r
+ hResUnit = GetDlgItem(hDlg, IDC_RES_STAT);\r
\r
+ /* fill image type combo box */\r
LoadString(hInstance, IDS_IMAGE_MONOCHROME, buf, sizeof(buf) / sizeof(TCHAR));\r
- SendMessage(hImagetype, CB_ADDSTRING, 0, (LPARAM)buf);\r
+ SendMessage(hImageType, CB_ADDSTRING, 0, (LPARAM)buf);\r
LoadString(hInstance, IDS_IMAGE_GREYSCALE, buf, sizeof(buf) / sizeof(TCHAR));\r
- SendMessage(hImagetype, CB_ADDSTRING, 0, (LPARAM)buf);\r
+ SendMessage(hImageType, CB_ADDSTRING, 0, (LPARAM)buf);\r
LoadString(hInstance, IDS_IMAGE_PALETTE, buf, sizeof(buf) / sizeof(TCHAR));\r
- SendMessage(hImagetype, CB_ADDSTRING, 0, (LPARAM)buf);\r
+ SendMessage(hImageType, CB_ADDSTRING, 0, (LPARAM)buf);\r
LoadString(hInstance, IDS_IMAGE_TRUECOLOR, buf, sizeof(buf) / sizeof(TCHAR));\r
- SendMessage(hImagetype, CB_ADDSTRING, 0, (LPARAM)buf);\r
-\r
- SendMessage(hImagetype, CB_SETCURSEL, 3, 0);\r
+ SendMessage(hImageType, CB_ADDSTRING, 0, (LPARAM)buf);\r
+ /* default 24bit */\r
+ SendMessage(hImageType, CB_SETCURSEL, 3, 0);\r
+\r
+ /* fill unit combo box */\r
+ LoadString(hInstance, IDS_UNIT_PIXELS, buf, sizeof(buf) / sizeof(TCHAR));\r
+ SendMessage(hUnitType, CB_ADDSTRING, 0, (LPARAM)buf);\r
+ LoadString(hInstance, IDS_UNIT_CM, buf, sizeof(buf) / sizeof(TCHAR));\r
+ SendMessage(hUnitType, CB_ADDSTRING, 0, (LPARAM)buf);\r
+ LoadString(hInstance, IDS_UNIT_INCHES, buf, sizeof(buf) / sizeof(TCHAR));\r
+ SendMessage(hUnitType, CB_ADDSTRING, 0, (LPARAM)buf);\r
+ /* default pixels */\r
+ SendMessage(hUnitType, CB_SETCURSEL, 0, 0);\r
+\r
+ /* default pixels */\r
+ LoadString(hInstance, IDS_UNIT_PIXELS, buf, sizeof(buf) / sizeof(TCHAR));\r
+ SendMessage(hWidthUnit, WM_SETTEXT, 0, (LPARAM)buf);\r
+ SendMessage(hHeightUnit, WM_SETTEXT, 0, (LPARAM)buf);\r
+ LoadString(hInstance, IDS_UNIT_DPI, buf, sizeof(buf) / sizeof(TCHAR));\r
+ SendMessage(hResUnit, WM_SETTEXT, 0, (LPARAM)buf);\r
+\r
+ /* temperary. Default vals should be loaded from registry */\r
+ SendDlgItemMessage(hDlg, IDC_WIDTH_EDIT, WM_SETTEXT, 0, (LPARAM)_T("400"));\r
+ SendDlgItemMessage(hDlg, IDC_HEIGHT_EDIT, WM_SETTEXT, 0, (LPARAM)_T("300"));\r
+ SendDlgItemMessage(hDlg, IDC_RES_EDIT, WM_SETTEXT, 0, (LPARAM)_T("50"));\r
\r
break;\r
\r
switch(LOWORD(wParam))\r
{\r
case IDOK:\r
+ {\r
/* FIXME: default vals should be taken from registry */\r
- ImageProp->Type = SendMessage(GetDlgItem(hDlg, IDC_IMAGETYPE), CB_GETCURSEL, 0, 0);\r
- ImageProp->Resolution = GetTextFromEdit(hDlg, IDC_RES_EDIT);\r
- ImageProp->Width = GetTextFromEdit(hDlg, IDC_WIDTH_EDIT);\r
- ImageProp->Height = GetTextFromEdit(hDlg, IDC_HEIGHT_EDIT);\r
+\r
+ INT Ret = GetTextFromEdit(ImageProp->lpImageName, hDlg, IDC_IMAGE_NAME_EDIT);\r
+ if (Ret == 0)\r
+ ImageProp->lpImageName = NULL;\r
+\r
+ ImageProp->Type = SendMessage(hImageType, CB_GETCURSEL, 0, 0);\r
+ ImageProp->Resolution = GetNumFromEdit(hDlg, IDC_RES_EDIT);\r
+ ImageProp->Width = GetNumFromEdit(hDlg, IDC_WIDTH_EDIT);\r
+ ImageProp->Height = GetNumFromEdit(hDlg, IDC_HEIGHT_EDIT);\r
+ ImageProp->Unit = SendMessage(hUnitType, CB_GETCURSEL, 0, 0);\r
\r
EndDialog(hDlg, (int)ImageProp);\r
+ }\r
break;\r
\r
case IDCANCEL:\r
EndDialog(hDlg, 0);\r
break;\r
+\r
+ case IDC_UNIT:\r
+ if (HIWORD(wParam) == CBN_SELCHANGE)\r
+ {\r
+ INT unit = SendMessage(hUnitType, CB_GETCURSEL, 0, 0);\r
+\r
+ switch (unit)\r
+ {\r
+ case 0:\r
+ /* pixels */\r
+ LoadString(hInstance, IDS_UNIT_PIXELS, buf, sizeof(buf) / sizeof(TCHAR));\r
+ SendMessage(hWidthUnit, WM_SETTEXT, 0, (LPARAM)buf);\r
+ SendMessage(hHeightUnit, WM_SETTEXT, 0, (LPARAM)buf);\r
+ LoadString(hInstance, IDS_UNIT_DPI, buf, sizeof(buf) / sizeof(TCHAR));\r
+ SendMessage(hResUnit, WM_SETTEXT, 0, (LPARAM)buf);\r
+ break;\r
+\r
+ case 1:\r
+ /* cm */\r
+ LoadString(hInstance, IDS_UNIT_CM, buf, sizeof(buf) / sizeof(TCHAR));\r
+ SendMessage(hWidthUnit, WM_SETTEXT, 0, (LPARAM)buf);\r
+ SendMessage(hHeightUnit, WM_SETTEXT, 0, (LPARAM)buf);\r
+ LoadString(hInstance, IDS_UNIT_DOTSCM, buf, sizeof(buf) / sizeof(TCHAR));\r
+ SendMessage(hResUnit, WM_SETTEXT, 0, (LPARAM)buf);\r
+ break;\r
+\r
+ case 2:\r
+ /* inch */\r
+ LoadString(hInstance, IDS_UNIT_INCHES, buf, sizeof(buf) / sizeof(TCHAR));\r
+ SendMessage(hWidthUnit, WM_SETTEXT, 0, (LPARAM)buf);\r
+ SendMessage(hHeightUnit, WM_SETTEXT, 0, (LPARAM)buf);\r
+ LoadString(hInstance, IDS_UNIT_DPI, buf, sizeof(buf) / sizeof(TCHAR));\r
+ SendMessage(hResUnit, WM_SETTEXT, 0, (LPARAM)buf);\r
+ break;\r
+ }\r
+ }\r
+ break;\r
}\r
break;\r
\r
\r
BOOL\r
CreateImageEditWindow(struct _MAIN_WND_INFO *MainWnd,\r
- LPCTSTR lpCaption,\r
POPEN_IMAGE_EDIT_INFO OpenInfo)\r
{\r
PEDIT_WND_INFO Info;\r
Info->OpenInfo = OpenInfo;\r
\r
hWndEditor = CreateMDIWindow(szImageEditWndClass,\r
- lpCaption,\r
+ OpenInfo->New.lpImageName,\r
WS_HSCROLL | WS_VSCROLL,\r
CW_USEDEFAULT,\r
CW_USEDEFAULT,\r
{\r
OPEN_IMAGE_EDIT_INFO OpenInfo;\r
PIMAGE_PROP ImageProp = NULL;\r
- LPTSTR lpCaption = NULL;\r
-\r
- LoadAndFormatString(hInstance,\r
- IDS_IMAGE_NAME,\r
- &lpCaption,\r
- ++Info->ImagesCreated);\r
\r
ImageProp = (PIMAGE_PROP)DialogBox(hInstance,\r
MAKEINTRESOURCE(IDD_IMAGE_PROP),\r
Info->hSelf,\r
ImagePropDialogProc);\r
\r
- if (ImageProp != 0)\r
+ if (ImageProp)\r
{\r
+ /* if an image name isn't provided, load a default name */\r
+ if (! ImageProp->lpImageName)\r
+ LoadAndFormatString(hInstance,\r
+ IDS_IMAGE_NAME,\r
+ &OpenInfo.New.lpImageName,\r
+ ++Info->ImagesCreated);\r
+ else\r
+ OpenInfo.New.lpImageName = ImageProp->lpImageName;\r
+\r
OpenInfo.CreateNew = TRUE;\r
OpenInfo.Type = ImageProp->Type;\r
OpenInfo.Resolution = ImageProp->Resolution;\r
ImageProp);\r
\r
CreateImageEditWindow(Info,\r
- lpCaption,\r
&OpenInfo);\r
}\r
\r
- if (lpCaption != NULL)\r
- LocalFree((HLOCAL)lpCaption);\r
break;\r
}\r
\r
\r
return Ret;\r
}\r
+\r
+INT\r
+GetTextFromEdit(OUT LPTSTR lpString,\r
+ IN HWND hDlg,\r
+ IN UINT Res)\r
+{\r
+ INT len = GetWindowTextLength(GetDlgItem(hDlg, Res));\r
+ if(len > 0)\r
+ {\r
+ GetDlgItemText(hDlg,\r
+ Res,\r
+ lpString,\r
+ len + 1);\r
+ }\r
+ else\r
+ lpString = NULL;\r
+\r
+ return len;\r
+}\r
+\r
+LONG\r
+GetNumFromEdit(IN HWND hDlg,\r
+ IN UINT Res)\r
+{\r
+ LONG num = 0;\r
+ INT len = GetWindowTextLength(GetDlgItem(hDlg, Res));\r
+ TCHAR buf[len+1];\r
+\r
+ if(len > 0)\r
+ {\r
+ GetDlgItemText(hDlg,\r
+ Res,\r
+ buf,\r
+ len + 1);\r
+ num = _ttol(buf);\r
+ }\r
+\r
+ return num;\r
+}\r
/* imageprop.c */\r
typedef struct _IMAGE_PROP\r
{\r
+ LPTSTR lpImageName;\r
/* Canvas properties */\r
USHORT Type;\r
+ USHORT Unit;\r
LONG Resolution;\r
/* size of drawing area */\r
LONG Width;\r
{\r
LONG Width;\r
LONG Height;\r
+ LPTSTR lpImageName;\r
} New;\r
struct\r
{\r
\r
\r
BOOL CreateImageEditWindow(struct _MAIN_WND_INFO *MainWnd,\r
- LPCTSTR lpCaption,\r
POPEN_IMAGE_EDIT_INFO OpenInfo);\r
VOID SetImageEditorEnvironment(PEDIT_WND_INFO Info,\r
BOOL Setup);\r
IN HINSTANCE hInstance,\r
IN UINT uID);\r
\r
+INT GetTextFromEdit(OUT LPTSTR lpString,\r
+ IN HWND hDlg,\r
+ IN UINT Res);\r
+\r
+LONG GetNumFromEdit(IN HWND hDlg,\r
+ IN UINT Res);\r
+\r
#endif /* __IMAGESOFT_PRECOMP_H */\r
#define IDS_HINT_SYS_NEXT 21007\r
\r
\r
-\r
-\r
/* image property dialog */\r
-#define IDD_IMAGE_PROP 4000\r
-#define IDC_IMAGE_NAME_EDIT 4001\r
-#define IDC_IMAGETYPE 4003\r
-#define IDC_WIDTH_EDIT 4004\r
-#define IDC_WIDTH_STAT 4005\r
-#define IDC_HEIGHT_EDIT 4006\r
-#define IDC_HEIGHT_STAT 4007\r
-#define IDC_RES_EDIT 4008\r
-#define IDC_RES_STAT 4009\r
-#define IDC_UNIT 4010\r
-#define IDC_IMAGE_SIZE 4011\r
+#define IDD_IMAGE_PROP 4000\r
+#define IDC_IMAGE_NAME_EDIT 4001\r
+#define IDC_IMAGETYPE 4003\r
+#define IDC_WIDTH_EDIT 4004\r
+#define IDC_WIDTH_STAT 4005\r
+#define IDC_HEIGHT_EDIT 4006\r
+#define IDC_HEIGHT_STAT 4007\r
+#define IDC_RES_EDIT 4008\r
+#define IDC_RES_STAT 4009\r
+#define IDC_UNIT 4010\r
+#define IDC_IMAGE_SIZE 4011\r
#define IDS_IMAGE_MONOCHROME 4100\r
-#define IDS_IMAGE_GREYSCALE 4101\r
-#define IDS_IMAGE_PALETTE 4102\r
-#define IDS_IMAGE_TRUECOLOR 4103\r
-#define IDS_UNIT_CM 4104\r
-#define IDS_UNIT_INCHES 4105\r
-#define IDS_UNIT_PIXELS 4106\r
-#define IDS_UNIT_DOTSCM 4107\r
-#define IDS_UNIT_DPI 4108\r
+#define IDS_IMAGE_GREYSCALE 4101\r
+#define IDS_IMAGE_PALETTE 4102\r
+#define IDS_IMAGE_TRUECOLOR 4103\r
+#define IDS_UNIT_CM 4104\r
+#define IDS_UNIT_INCHES 4105\r
+#define IDS_UNIT_PIXELS 4106\r
+#define IDS_UNIT_DOTSCM 4107\r
+#define IDS_UNIT_DPI 4108\r