[MSPAINT] Implement the text tool (#4237)

- Add CFontsDialog and IDD_FONTS.
- Rewrite CTextEditWindow.
- Implement TOOL_TEXT tool.
- Add the font-related settings.
CORE-17949
This commit is contained in:
Katayama Hirofumi MZ 2022-01-05 16:26:05 +09:00 committed by GitHub
parent 951e52104a
commit 361a2ce4f7
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
52 changed files with 1686 additions and 99 deletions

View file

@ -19,6 +19,7 @@
CMirrorRotateDialog mirrorRotateDialog; CMirrorRotateDialog mirrorRotateDialog;
CAttributesDialog attributesDialog; CAttributesDialog attributesDialog;
CStretchSkewDialog stretchSkewDialog; CStretchSkewDialog stretchSkewDialog;
CFontsDialog fontsDialog;
/* FUNCTIONS ********************************************************/ /* FUNCTIONS ********************************************************/
@ -258,3 +259,332 @@ LRESULT CStretchSkewDialog::OnCancel(WORD wNotifyCode, WORD wID, HWND hWndCtl, B
EndDialog(0); EndDialog(0);
return 0; return 0;
} }
static INT CALLBACK
EnumFontFamProc(ENUMLOGFONT *lpelf, NEWTEXTMETRIC *lpntm, INT FontType, LPARAM lParam)
{
CSimpleArray<CString>& arrFontNames = *reinterpret_cast<CSimpleArray<CString>*>(lParam);
LPTSTR name = lpelf->elfLogFont.lfFaceName;
if (name[0] == TEXT('@')) // Vertical fonts
return TRUE;
for (INT i = 0; i < arrFontNames.GetSize(); ++i)
{
if (arrFontNames[i] == name) // Already exists
return TRUE;
}
arrFontNames.Add(name);
return TRUE;
}
// TODO: AutoComplete font names
// TODO: Vertical text
CFontsDialog::CFontsDialog()
{
}
void CFontsDialog::InitFontNames()
{
// List the fonts
CSimpleArray<CString> arrFontNames;
HDC hDC = CreateCompatibleDC(NULL);
if (hDC)
{
EnumFontFamilies(hDC, NULL, (FONTENUMPROC)EnumFontFamProc,
reinterpret_cast<LPARAM>(&arrFontNames));
DeleteDC(hDC);
}
// Actually add them to the combobox
HWND hwndNames = GetDlgItem(IDD_FONTSNAMES);
SendMessage(hwndNames, CB_RESETCONTENT, 0, 0);
for (INT i = 0; i < arrFontNames.GetSize(); ++i)
{
ComboBox_AddString(hwndNames, arrFontNames[i]);
}
::SetWindowText(hwndNames, registrySettings.strFontName);
}
void CFontsDialog::InitFontSizes()
{
static const INT s_sizes[] =
{
8, 9, 10, 11, 12, 14, 16, 18, 20, 22, 24, 26, 28, 36, 48, 72
};
HWND hwndSizes = GetDlgItem(IDD_FONTSSIZES);
ComboBox_ResetContent(hwndSizes);
TCHAR szText[16];
for (UINT i = 0; i < _countof(s_sizes); ++i)
{
wsprintf(szText, TEXT("%d"), s_sizes[i]);
INT iItem = ComboBox_AddString(hwndSizes, szText);
if (s_sizes[i] == (INT)registrySettings.PointSize)
ComboBox_SetCurSel(hwndSizes, iItem);
}
if (ComboBox_GetCurSel(hwndSizes) == CB_ERR)
{
wsprintf(szText, TEXT("%d"), (INT)registrySettings.PointSize);
::SetWindowText(hwndSizes, szText);
}
}
void CFontsDialog::InitToolbar()
{
HWND hwndToolbar = GetDlgItem(IDD_FONTSTOOLBAR);
SendMessage(hwndToolbar, TB_BUTTONSTRUCTSIZE, sizeof(TBBUTTON), 0);
SendMessage(hwndToolbar, TB_SETBITMAPSIZE, 0, MAKELPARAM(16, 16));
SendMessage(hwndToolbar, TB_SETBUTTONWIDTH, 0, MAKELPARAM(20, 20));
TBADDBITMAP AddBitmap;
AddBitmap.hInst = hProgInstance;
AddBitmap.nID = IDB_FONTSTOOLBAR;
SendMessage(hwndToolbar, TB_ADDBITMAP, 4, (LPARAM)&AddBitmap);
HIMAGELIST himl = ImageList_LoadImage(hProgInstance, MAKEINTRESOURCE(IDB_FONTSTOOLBAR),
16, 8, RGB(255, 0, 255), IMAGE_BITMAP,
LR_CREATEDIBSECTION);
SendMessage(hwndToolbar, TB_SETIMAGELIST, 0, (LPARAM)himl);
TBBUTTON buttons[] =
{
{ 0, IDM_BOLD, TBSTATE_ENABLED, TBSTYLE_CHECK },
{ 1, IDM_ITALIC, TBSTATE_ENABLED, TBSTYLE_CHECK },
{ 2, IDM_UNDERLINE, TBSTATE_ENABLED, TBSTYLE_CHECK },
{ 3, IDM_VERTICAL, 0, TBSTYLE_CHECK }, // TODO:
};
SendMessage(hwndToolbar, TB_ADDBUTTONS, _countof(buttons), (LPARAM)&buttons);
SendMessage(hwndToolbar, TB_CHECKBUTTON, IDM_BOLD, registrySettings.Bold);
SendMessage(hwndToolbar, TB_CHECKBUTTON, IDM_ITALIC, registrySettings.Italic);
SendMessage(hwndToolbar, TB_CHECKBUTTON, IDM_UNDERLINE, registrySettings.Underline);
}
LRESULT CFontsDialog::OnInitDialog(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
{
// TODO: Tooltips
InitFontNames();
InitFontSizes();
InitToolbar();
if (registrySettings.FontsPositionX != 0 || registrySettings.FontsPositionY != 0)
{
SetWindowPos(NULL,
registrySettings.FontsPositionX, registrySettings.FontsPositionY,
0, 0,
SWP_NOSIZE | SWP_NOACTIVATE | SWP_NOZORDER);
SendMessage(DM_REPOSITION, 0, 0);
}
if (!registrySettings.ShowTextTool)
ShowWindow(SW_HIDE);
return TRUE;
}
LRESULT CFontsDialog::OnClose(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
{
ShowWindow(SW_HIDE); // Just hide. Recycle for optimization
return 0;
}
void CFontsDialog::OnFontName(UINT codeNotify)
{
HWND hwndNames = GetDlgItem(IDD_FONTSNAMES);
INT iItem = CB_ERR;
UINT cch;
TCHAR szText[LF_FACESIZE];
switch (codeNotify)
{
case CBN_SELCHANGE:
iItem = ComboBox_GetCurSel(hwndNames);
cch = ComboBox_GetLBTextLen(hwndNames, iItem);
if (iItem != CB_ERR && 0 < cch && cch < _countof(szText))
{
ComboBox_GetLBText(hwndNames, iItem, szText);
}
break;
case CBN_EDITCHANGE:
GetDlgItemText(IDD_FONTSNAMES, szText, _countof(szText));
iItem = ComboBox_FindStringExact(hwndNames, -1, szText);
break;
}
if (iItem != CB_ERR && registrySettings.strFontName.CompareNoCase(szText) != 0)
{
registrySettings.strFontName = szText;
toolsModel.NotifyToolChanged();
}
}
void CFontsDialog::OnFontSize(UINT codeNotify)
{
HWND hwndSizes = GetDlgItem(IDD_FONTSSIZES);
WCHAR szText[8];
INT iItem, PointSize = 0;
UINT cch;
switch (codeNotify)
{
case CBN_SELCHANGE:
iItem = ComboBox_GetCurSel(hwndSizes);
cch = ComboBox_GetLBTextLen(hwndSizes, iItem);
if (iItem != CB_ERR && 0 < cch && cch < _countof(szText))
{
ComboBox_GetLBText(hwndSizes, iItem, szText);
PointSize = _ttoi(szText);
}
break;
case CBN_EDITCHANGE:
::GetWindowText(hwndSizes, szText, _countof(szText));
PointSize = _ttoi(szText);
break;
}
if (PointSize > 0)
{
registrySettings.PointSize = PointSize;
toolsModel.NotifyToolChanged();
}
}
LRESULT CFontsDialog::OnCommand(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
{
UINT id = LOWORD(wParam);
UINT codeNotify = HIWORD(wParam);
HWND hwndToolbar = GetDlgItem(IDD_FONTSTOOLBAR);
BOOL bChecked = ::SendMessage(hwndToolbar, TB_ISBUTTONCHECKED, id, 0);
switch (id)
{
case IDCANCEL:
ShowWindow(SW_HIDE);
registrySettings.ShowTextTool = FALSE;
break;
case IDD_FONTSNAMES:
OnFontName(codeNotify);
break;
case IDD_FONTSSIZES:
OnFontSize(codeNotify);
break;
case IDM_BOLD:
registrySettings.Bold = bChecked;
toolsModel.NotifyToolChanged();
break;
case IDM_ITALIC:
registrySettings.Italic = bChecked;
toolsModel.NotifyToolChanged();
break;
case IDM_UNDERLINE:
registrySettings.Underline = bChecked;
toolsModel.NotifyToolChanged();
break;
case IDM_VERTICAL:
// TODO:
break;
}
return 0;
}
LRESULT CFontsDialog::OnNotify(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
{
NMHDR *pnmhdr = reinterpret_cast<NMHDR *>(lParam);
if (pnmhdr->code == TTN_NEEDTEXT)
{
LPTOOLTIPTEXT pToolTip = reinterpret_cast<LPTOOLTIPTEXT>(lParam);
pToolTip->hinst = hProgInstance;
switch (pnmhdr->idFrom)
{
case IDM_BOLD: pToolTip->lpszText = MAKEINTRESOURCE(IDS_BOLD); break;
case IDM_ITALIC: pToolTip->lpszText = MAKEINTRESOURCE(IDS_ITALIC); break;
case IDM_UNDERLINE: pToolTip->lpszText = MAKEINTRESOURCE(IDS_UNDERLINE); break;
case IDM_VERTICAL: pToolTip->lpszText = MAKEINTRESOURCE(IDS_VERTICAL); break;
default:
break;
}
}
return 0;
}
LRESULT CFontsDialog::OnMove(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
{
RECT rc;
GetWindowRect(&rc);
registrySettings.FontsPositionX = rc.left;
registrySettings.FontsPositionY = rc.top;
return 0;
}
LRESULT CFontsDialog::OnToolsModelToolChanged(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
{
if (wParam != TOOL_TEXT)
ShowWindow(SW_HIDE);
return 0;
}
LRESULT CFontsDialog::OnMeasureItem(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
{
if (wParam == IDD_FONTSNAMES)
{
LPMEASUREITEMSTRUCT pMeasureItem = reinterpret_cast<LPMEASUREITEMSTRUCT>(lParam);
RECT rc;
::GetClientRect(GetDlgItem(IDD_FONTSNAMES), &rc);
pMeasureItem->itemWidth = rc.right - rc.left;
pMeasureItem->itemHeight = GetSystemMetrics(SM_CYVSCROLL);
return TRUE;
}
return 0;
}
LRESULT CFontsDialog::OnDrawItem(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
{
// TODO: Owner-draw the font types
if (wParam == IDD_FONTSNAMES)
{
LPDRAWITEMSTRUCT pDrawItem = reinterpret_cast<LPDRAWITEMSTRUCT>(lParam);
if (pDrawItem->itemID == (UINT)-1)
return TRUE;
SetBkMode(pDrawItem->hDC, TRANSPARENT);
HWND hwndItem = pDrawItem->hwndItem;
RECT rcItem = pDrawItem->rcItem;
if (pDrawItem->itemState & ODS_SELECTED)
{
FillRect(pDrawItem->hDC, &rcItem, GetSysColorBrush(COLOR_HIGHLIGHT));
SetTextColor(pDrawItem->hDC, GetSysColor(COLOR_HIGHLIGHTTEXT));
}
else
{
FillRect(pDrawItem->hDC, &rcItem, GetSysColorBrush(COLOR_WINDOW));
SetTextColor(pDrawItem->hDC, GetSysColor(COLOR_WINDOWTEXT));
}
TCHAR szText[LF_FACESIZE];
szText[0] = 0;
ComboBox_GetLBText(hwndItem, pDrawItem->itemID, szText);
rcItem.left += 24;
DrawText(pDrawItem->hDC, szText, -1, &rcItem, DT_LEFT | DT_VCENTER | DT_SINGLELINE);
if (pDrawItem->itemState & ODS_FOCUS)
::DrawFocusRect(pDrawItem->hDC, &pDrawItem->rcItem);
return TRUE;
}
return 0;
}

View file

@ -86,3 +86,37 @@ public:
POINT percentage; POINT percentage;
POINT angle; POINT angle;
}; };
class CFontsDialog : public CDialogImpl<CFontsDialog>
{
public:
enum { IDD = IDD_FONTS };
CFontsDialog();
void InitFontNames();
void InitFontSizes();
void InitToolbar();
BEGIN_MSG_MAP(CFontsDialog)
MESSAGE_HANDLER(WM_INITDIALOG, OnInitDialog)
MESSAGE_HANDLER(WM_CLOSE, OnClose)
MESSAGE_HANDLER(WM_COMMAND, OnCommand)
MESSAGE_HANDLER(WM_MOVE, OnMove)
MESSAGE_HANDLER(WM_NOTIFY, OnNotify)
MESSAGE_HANDLER(WM_TOOLSMODELTOOLCHANGED, OnToolsModelToolChanged)
MESSAGE_HANDLER(WM_MEASUREITEM, OnMeasureItem)
MESSAGE_HANDLER(WM_DRAWITEM, OnDrawItem)
END_MSG_MAP()
protected:
LRESULT OnInitDialog(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
LRESULT OnClose(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
LRESULT OnCommand(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
LRESULT OnMove(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
LRESULT OnNotify(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
LRESULT OnToolsModelToolChanged(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
LRESULT OnMeasureItem(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
LRESULT OnDrawItem(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
void OnFontSize(UINT codeNotify);
void OnFontName(UINT codeNotify);
};

View file

@ -229,7 +229,7 @@ RectSel(HDC hdc, LONG x1, LONG y1, LONG x2, LONG y2)
{ {
HBRUSH oldBrush; HBRUSH oldBrush;
LOGBRUSH logbrush; LOGBRUSH logbrush;
HPEN oldPen = (HPEN) SelectObject(hdc, CreatePen(PS_DOT, 1, 0x00000000)); HPEN oldPen = (HPEN) SelectObject(hdc, CreatePen(PS_DOT, 1, GetSysColor(COLOR_HIGHLIGHT)));
UINT oldRop = GetROP2(hdc); UINT oldRop = GetROP2(hdc);
SetROP2(hdc, R2_NOTXORPEN); SetROP2(hdc, R2_NOTXORPEN);
@ -276,20 +276,34 @@ SelectionFrame(HDC hdc, LONG x1, LONG y1, LONG x2, LONG y2, DWORD system_selecti
void void
Text(HDC hdc, LONG x1, LONG y1, LONG x2, LONG y2, COLORREF fg, COLORREF bg, LPCTSTR lpchText, HFONT font, LONG style) Text(HDC hdc, LONG x1, LONG y1, LONG x2, LONG y2, COLORREF fg, COLORREF bg, LPCTSTR lpchText, HFONT font, LONG style)
{ {
HFONT oldFont; INT iSaveDC = SaveDC(hdc); // We will modify the clipping region. Save now.
RECT rect = {x1, y1, x2, y2};
COLORREF oldColor; RECT rc;
COLORREF oldBkColor; SetRect(&rc, x1, y1, x2, y2);
int oldBkMode;
oldFont = (HFONT) SelectObject(hdc, font); if (style == 0) // Transparent
oldColor = SetTextColor(hdc, fg); {
oldBkColor = SetBkColor(hdc, bg); SetBkMode(hdc, TRANSPARENT);
oldBkMode = SetBkMode(hdc, TRANSPARENT); GetBkColor(hdc);
if (style == 0) }
Rect(hdc, x1, y1, x2, y2, bg, bg, 1, 2); else // Opaque
DrawText(hdc, lpchText, -1, &rect, DT_EDITCONTROL); {
SelectObject(hdc, oldFont); SetBkMode(hdc, OPAQUE);
SetTextColor(hdc, oldColor); SetBkColor(hdc, bg);
SetBkColor(hdc, oldBkColor);
SetBkMode(hdc, oldBkMode); HBRUSH hbr = CreateSolidBrush(bg);
FillRect(hdc, &rc, hbr); // Fill the background
DeleteObject(hbr);
}
IntersectClipRect(hdc, rc.left, rc.top, rc.right, rc.bottom);
HGDIOBJ hFontOld = SelectObject(hdc, font);
SetTextColor(hdc, fg);
const UINT uFormat = DT_LEFT | DT_TOP | DT_EDITCONTROL | DT_NOPREFIX | DT_NOCLIP |
DT_EXPANDTABS | DT_WORDBREAK;
DrawText(hdc, lpchText, -1, &rc, uFormat);
SelectObject(hdc, hFontOld);
RestoreDC(hdc, iSaveDC); // Restore
} }

View file

@ -99,10 +99,9 @@ extern CTextEditWindow textEditWindow;
class CMirrorRotateDialog; class CMirrorRotateDialog;
class CAttributesDialog; class CAttributesDialog;
class CStretchSkewDialog; class CStretchSkewDialog;
class CFontsDialog;
extern CMirrorRotateDialog mirrorRotateDialog; extern CMirrorRotateDialog mirrorRotateDialog;
extern CAttributesDialog attributesDialog; extern CAttributesDialog attributesDialog;
extern CStretchSkewDialog stretchSkewDialog; extern CStretchSkewDialog stretchSkewDialog;
extern CFontsDialog fontsDialog;
/* VARIABLES declared in mouse.cpp **********************************/

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

View file

@ -12,8 +12,6 @@
#include "precomp.h" #include "precomp.h"
#include "dialogs.h"
/* FUNCTIONS ********************************************************/ /* FUNCTIONS ********************************************************/
void void
@ -102,10 +100,28 @@ LRESULT CImgAreaWindow::OnSize(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL& bH
return 0; return 0;
} }
LRESULT CImgAreaWindow::OnEraseBkGnd(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
{
HDC hdc = (HDC)wParam;
if (toolsModel.GetActiveTool() == TOOL_TEXT && !toolsModel.IsBackgroundTransparent() &&
textEditWindow.IsWindowVisible())
{
// Do clipping
HWND hChild = textEditWindow;
RECT rcChild;
::GetWindowRect(hChild, &rcChild);
::MapWindowPoints(NULL, m_hWnd, (LPPOINT)&rcChild, 2);
ExcludeClipRect(hdc, rcChild.left, rcChild.top, rcChild.right, rcChild.bottom);
}
return DefWindowProc(nMsg, wParam, lParam);
}
LRESULT CImgAreaWindow::OnPaint(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled) LRESULT CImgAreaWindow::OnPaint(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
{ {
DefWindowProc(WM_PAINT, wParam, lParam); PAINTSTRUCT ps;
HDC hdc = GetDC(); HDC hdc = BeginPaint(&ps);
int imgXRes = imageModel.GetWidth(); int imgXRes = imageModel.GetWidth();
int imgYRes = imageModel.GetHeight(); int imgYRes = imageModel.GetHeight();
StretchBlt(hdc, 0, 0, Zoomed(imgXRes), Zoomed(imgYRes), imageModel.GetDC(), 0, 0, imgXRes, StretchBlt(hdc, 0, 0, Zoomed(imgXRes), Zoomed(imgYRes), imageModel.GetDC(), 0, 0, imgXRes,
@ -126,9 +142,11 @@ LRESULT CImgAreaWindow::OnPaint(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL& b
} }
DeleteObject(SelectObject(hdc, oldPen)); DeleteObject(SelectObject(hdc, oldPen));
} }
ReleaseDC(hdc); EndPaint(&ps);
selectionWindow.Invalidate(FALSE); selectionWindow.Invalidate(FALSE);
miniature.Invalidate(FALSE); miniature.Invalidate(FALSE);
if (textEditWindow.IsWindowVisible())
textEditWindow.Invalidate(FALSE);
return 0; return 0;
} }
@ -382,3 +400,10 @@ LRESULT CImgAreaWindow::OnMouseWheel(UINT nMsg, WPARAM wParam, LPARAM lParam, BO
{ {
return ::SendMessage(GetParent(), nMsg, wParam, lParam); return ::SendMessage(GetParent(), nMsg, wParam, lParam);
} }
LRESULT CImgAreaWindow::OnCtlColorEdit(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
{
HDC hdc = (HDC)wParam;
SetBkMode(hdc, TRANSPARENT);
return (LRESULT)GetStockObject(NULL_BRUSH);
}

View file

@ -21,6 +21,7 @@ public:
BEGIN_MSG_MAP(CImgAreaWindow) BEGIN_MSG_MAP(CImgAreaWindow)
MESSAGE_HANDLER(WM_SIZE, OnSize) MESSAGE_HANDLER(WM_SIZE, OnSize)
MESSAGE_HANDLER(WM_ERASEBKGND, OnEraseBkGnd)
MESSAGE_HANDLER(WM_PAINT, OnPaint) MESSAGE_HANDLER(WM_PAINT, OnPaint)
MESSAGE_HANDLER(WM_SETCURSOR, OnSetCursor) MESSAGE_HANDLER(WM_SETCURSOR, OnSetCursor)
MESSAGE_HANDLER(WM_LBUTTONDOWN, OnLButtonDown) MESSAGE_HANDLER(WM_LBUTTONDOWN, OnLButtonDown)
@ -36,12 +37,14 @@ public:
MESSAGE_HANDLER(WM_IMAGEMODELIMAGECHANGED, OnImageModelImageChanged) MESSAGE_HANDLER(WM_IMAGEMODELIMAGECHANGED, OnImageModelImageChanged)
MESSAGE_HANDLER(WM_CAPTURECHANGED, OnCaptureChanged) MESSAGE_HANDLER(WM_CAPTURECHANGED, OnCaptureChanged)
MESSAGE_HANDLER(WM_KEYDOWN, OnKeyDown) MESSAGE_HANDLER(WM_KEYDOWN, OnKeyDown)
MESSAGE_HANDLER(WM_CTLCOLOREDIT, OnCtlColorEdit)
END_MSG_MAP() END_MSG_MAP()
BOOL drawing; BOOL drawing;
private: private:
LRESULT OnSize(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled); LRESULT OnSize(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
LRESULT OnEraseBkGnd(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
LRESULT OnPaint(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled); LRESULT OnPaint(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
LRESULT OnSetCursor(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled); LRESULT OnSetCursor(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
LRESULT OnLButtonDown(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled); LRESULT OnLButtonDown(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
@ -57,6 +60,7 @@ private:
LRESULT OnImageModelImageChanged(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled); LRESULT OnImageModelImageChanged(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
LRESULT OnCaptureChanged(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled); LRESULT OnCaptureChanged(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
LRESULT OnKeyDown(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled); LRESULT OnKeyDown(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
LRESULT OnCtlColorEdit(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
void drawZoomFrame(int mouseX, int mouseY); void drawZoomFrame(int mouseX, int mouseY);
void cancelDrawing(); void cancelDrawing();

View file

@ -8,6 +8,8 @@
LANGUAGE LANG_BULGARIAN, SUBLANG_DEFAULT LANGUAGE LANG_BULGARIAN, SUBLANG_DEFAULT
//IDB_FONTSTOOLBAR BITMAP "icons/fontstoolbar-bg-BG.bmp"
ID_MENU MENU ID_MENU MENU
BEGIN BEGIN
POPUP "&Файл" POPUP "&Файл"
@ -191,6 +193,17 @@ BEGIN
PUSHBUTTON "Отказ", IDCANCEL, 170, 24, 48, 14 PUSHBUTTON "Отказ", IDCANCEL, 170, 24, 48, 14
END END
IDD_FONTS DIALOG 0, 0, 225, 25
CAPTION "Fonts"
STYLE DS_CENTER | DS_MODALFRAME | WS_POPUPWINDOW | WS_CAPTION
EXSTYLE WS_EX_TOOLWINDOW
FONT 8, "MS Shell Dlg"
BEGIN
COMBOBOX IDD_FONTSNAMES, 5, 5, 110, 200, CBS_HASSTRINGS | CBS_DROPDOWN | CBS_AUTOHSCROLL | CBS_SORT | CBS_OWNERDRAWFIXED | WS_VSCROLL | WS_TABSTOP
COMBOBOX IDD_FONTSSIZES, 120, 5, 35, 250, CBS_HASSTRINGS | CBS_DROPDOWN | WS_VSCROLL | WS_TABSTOP
CONTROL "", IDD_FONTSTOOLBAR, "ToolbarWindow32", TBSTYLE_TOOLTIPS | CCS_NODIVIDER | CCS_NOPARENTALIGN | CCS_NOMOVEY, 160, 5, 60, 20
END
STRINGTABLE STRINGTABLE
BEGIN BEGIN
IDS_PROGRAMNAME "Рисуване" IDS_PROGRAMNAME "Рисуване"
@ -225,4 +238,8 @@ BEGIN
IDS_ANGLE "The angle must be between -89 and 89." IDS_ANGLE "The angle must be between -89 and 89."
IDS_LOADERRORTEXT "The file %s could not be loaded." IDS_LOADERRORTEXT "The file %s could not be loaded."
IDS_ENLARGEPROMPTTEXT "The image in the clipboard is larger than the bitmap.\nWould you like the bitmap enlarged?" IDS_ENLARGEPROMPTTEXT "The image in the clipboard is larger than the bitmap.\nWould you like the bitmap enlarged?"
IDS_BOLD "Bold"
IDS_ITALIC "Italic"
IDS_UNDERLINE "Underline"
IDS_VERTICAL "Vertical"
END END

View file

@ -8,6 +8,8 @@
LANGUAGE LANG_CZECH, SUBLANG_DEFAULT LANGUAGE LANG_CZECH, SUBLANG_DEFAULT
//IDB_FONTSTOOLBAR BITMAP "icons/fontstoolbar-cs-CZ.bmp"
ID_MENU MENU ID_MENU MENU
BEGIN BEGIN
POPUP "&Soubor" POPUP "&Soubor"
@ -191,6 +193,17 @@ BEGIN
PUSHBUTTON "Storno", IDCANCEL, 170, 24, 48, 14 PUSHBUTTON "Storno", IDCANCEL, 170, 24, 48, 14
END END
IDD_FONTS DIALOG 0, 0, 225, 25
CAPTION "Fonts"
STYLE DS_CENTER | DS_MODALFRAME | WS_POPUPWINDOW | WS_CAPTION
EXSTYLE WS_EX_TOOLWINDOW
FONT 8, "MS Shell Dlg"
BEGIN
COMBOBOX IDD_FONTSNAMES, 5, 5, 110, 200, CBS_HASSTRINGS | CBS_DROPDOWN | CBS_AUTOHSCROLL | CBS_SORT | CBS_OWNERDRAWFIXED | WS_VSCROLL | WS_TABSTOP
COMBOBOX IDD_FONTSSIZES, 120, 5, 35, 250, CBS_HASSTRINGS | CBS_DROPDOWN | WS_VSCROLL | WS_TABSTOP
CONTROL "", IDD_FONTSTOOLBAR, "ToolbarWindow32", TBSTYLE_TOOLTIPS | CCS_NODIVIDER | CCS_NOPARENTALIGN | CCS_NOMOVEY, 160, 5, 60, 20
END
STRINGTABLE STRINGTABLE
BEGIN BEGIN
IDS_PROGRAMNAME "Malování" IDS_PROGRAMNAME "Malování"
@ -225,4 +238,8 @@ BEGIN
IDS_ANGLE "Úhel musí být -89 a 89." IDS_ANGLE "Úhel musí být -89 a 89."
IDS_LOADERRORTEXT "Soubor %s nemohl být načten." IDS_LOADERRORTEXT "Soubor %s nemohl být načten."
IDS_ENLARGEPROMPTTEXT "Obrázek ve schránce je větší než bitmapa.\nChcete bitmapu zvětšit?" IDS_ENLARGEPROMPTTEXT "Obrázek ve schránce je větší než bitmapa.\nChcete bitmapu zvětšit?"
IDS_BOLD "Bold"
IDS_ITALIC "Italic"
IDS_UNDERLINE "Underline"
IDS_VERTICAL "Vertical"
END END

View file

@ -8,6 +8,8 @@
LANGUAGE LANG_GERMAN, SUBLANG_NEUTRAL LANGUAGE LANG_GERMAN, SUBLANG_NEUTRAL
//IDB_FONTSTOOLBAR BITMAP "icons/fontstoolbar-de-DE.bmp"
ID_MENU MENU ID_MENU MENU
BEGIN BEGIN
POPUP "&Datei" POPUP "&Datei"
@ -191,6 +193,17 @@ BEGIN
PUSHBUTTON "Abbrechen", IDCANCEL, 170, 24, 48, 14 PUSHBUTTON "Abbrechen", IDCANCEL, 170, 24, 48, 14
END END
IDD_FONTS DIALOG 0, 0, 225, 25
CAPTION "Fonts"
STYLE DS_CENTER | DS_MODALFRAME | WS_POPUPWINDOW | WS_CAPTION
EXSTYLE WS_EX_TOOLWINDOW
FONT 8, "MS Shell Dlg"
BEGIN
COMBOBOX IDD_FONTSNAMES, 5, 5, 110, 200, CBS_HASSTRINGS | CBS_DROPDOWN | CBS_AUTOHSCROLL | CBS_SORT | CBS_OWNERDRAWFIXED | WS_VSCROLL | WS_TABSTOP
COMBOBOX IDD_FONTSSIZES, 120, 5, 35, 250, CBS_HASSTRINGS | CBS_DROPDOWN | WS_VSCROLL | WS_TABSTOP
CONTROL "", IDD_FONTSTOOLBAR, "ToolbarWindow32", TBSTYLE_TOOLTIPS | CCS_NODIVIDER | CCS_NOPARENTALIGN | CCS_NOMOVEY, 160, 5, 60, 20
END
STRINGTABLE STRINGTABLE
BEGIN BEGIN
IDS_PROGRAMNAME "Paint" IDS_PROGRAMNAME "Paint"
@ -225,4 +238,8 @@ BEGIN
IDS_ANGLE "Der Winkel muss zwischen -89 und 89 liegen." IDS_ANGLE "Der Winkel muss zwischen -89 und 89 liegen."
IDS_LOADERRORTEXT "Die Datei %s konnte nicht geladen werden." IDS_LOADERRORTEXT "Die Datei %s konnte nicht geladen werden."
IDS_ENLARGEPROMPTTEXT "Das Bild in der Zwischenablage ist größer als die Bitmap.\nSoll die Bitmap vergrößert werden?" IDS_ENLARGEPROMPTTEXT "Das Bild in der Zwischenablage ist größer als die Bitmap.\nSoll die Bitmap vergrößert werden?"
IDS_BOLD "Bold"
IDS_ITALIC "Italic"
IDS_UNDERLINE "Underline"
IDS_VERTICAL "Vertical"
END END

View file

@ -8,6 +8,8 @@
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_UK LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_UK
//IDB_FONTSTOOLBAR BITMAP "icons/fontstoolbar-en-GB.bmp"
ID_MENU MENU ID_MENU MENU
BEGIN BEGIN
POPUP "&File" POPUP "&File"
@ -191,6 +193,17 @@ BEGIN
PUSHBUTTON "Cancel", IDCANCEL, 170, 24, 48, 14 PUSHBUTTON "Cancel", IDCANCEL, 170, 24, 48, 14
END END
IDD_FONTS DIALOG 0, 0, 225, 25
CAPTION "Fonts"
STYLE DS_CENTER | DS_MODALFRAME | WS_POPUPWINDOW | WS_CAPTION
EXSTYLE WS_EX_TOOLWINDOW
FONT 8, "MS Shell Dlg"
BEGIN
COMBOBOX IDD_FONTSNAMES, 5, 5, 110, 200, CBS_HASSTRINGS | CBS_DROPDOWN | CBS_AUTOHSCROLL | CBS_SORT | CBS_OWNERDRAWFIXED | WS_VSCROLL | WS_TABSTOP
COMBOBOX IDD_FONTSSIZES, 120, 5, 35, 250, CBS_HASSTRINGS | CBS_DROPDOWN | WS_VSCROLL | WS_TABSTOP
CONTROL "", IDD_FONTSTOOLBAR, "ToolbarWindow32", TBSTYLE_TOOLTIPS | CCS_NODIVIDER | CCS_NOPARENTALIGN | CCS_NOMOVEY, 160, 5, 60, 20
END
STRINGTABLE STRINGTABLE
BEGIN BEGIN
IDS_PROGRAMNAME "Paint" IDS_PROGRAMNAME "Paint"
@ -225,4 +238,8 @@ BEGIN
IDS_ANGLE "The angle must be between -89 and 89." IDS_ANGLE "The angle must be between -89 and 89."
IDS_LOADERRORTEXT "The file %s could not be loaded." IDS_LOADERRORTEXT "The file %s could not be loaded."
IDS_ENLARGEPROMPTTEXT "The image in the clipboard is larger than the bitmap.\nWould you like the bitmap enlarged?" IDS_ENLARGEPROMPTTEXT "The image in the clipboard is larger than the bitmap.\nWould you like the bitmap enlarged?"
IDS_BOLD "Bold"
IDS_ITALIC "Italic"
IDS_UNDERLINE "Underline"
IDS_VERTICAL "Vertical"
END END

View file

@ -8,6 +8,8 @@
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
IDB_FONTSTOOLBAR BITMAP "icons/fontstoolbar.bmp"
ID_MENU MENU ID_MENU MENU
BEGIN BEGIN
POPUP "&File" POPUP "&File"
@ -191,6 +193,17 @@ BEGIN
PUSHBUTTON "Cancel", IDCANCEL, 170, 24, 48, 14 PUSHBUTTON "Cancel", IDCANCEL, 170, 24, 48, 14
END END
IDD_FONTS DIALOG 0, 0, 225, 25
CAPTION "Fonts"
STYLE DS_CENTER | DS_MODALFRAME | WS_POPUPWINDOW | WS_CAPTION
EXSTYLE WS_EX_TOOLWINDOW
FONT 8, "MS Shell Dlg"
BEGIN
COMBOBOX IDD_FONTSNAMES, 5, 5, 110, 200, CBS_HASSTRINGS | CBS_DROPDOWN | CBS_AUTOHSCROLL | CBS_SORT | CBS_OWNERDRAWFIXED | WS_VSCROLL | WS_TABSTOP
COMBOBOX IDD_FONTSSIZES, 120, 5, 35, 250, CBS_HASSTRINGS | CBS_DROPDOWN | WS_VSCROLL | WS_TABSTOP
CONTROL "", IDD_FONTSTOOLBAR, "ToolbarWindow32", TBSTYLE_TOOLTIPS | CCS_NODIVIDER | CCS_NOPARENTALIGN | CCS_NOMOVEY, 160, 5, 60, 20
END
STRINGTABLE STRINGTABLE
BEGIN BEGIN
IDS_PROGRAMNAME "Paint" IDS_PROGRAMNAME "Paint"
@ -225,4 +238,8 @@ BEGIN
IDS_ANGLE "The angle must be between -89 and 89." IDS_ANGLE "The angle must be between -89 and 89."
IDS_LOADERRORTEXT "The file %s could not be loaded." IDS_LOADERRORTEXT "The file %s could not be loaded."
IDS_ENLARGEPROMPTTEXT "The image in the clipboard is larger than the bitmap.\nWould you like the bitmap enlarged?" IDS_ENLARGEPROMPTTEXT "The image in the clipboard is larger than the bitmap.\nWould you like the bitmap enlarged?"
IDS_BOLD "Bold"
IDS_ITALIC "Italic"
IDS_UNDERLINE "Underline"
IDS_VERTICAL "Vertical"
END END

View file

@ -10,6 +10,8 @@
LANGUAGE LANG_SPANISH, SUBLANG_NEUTRAL LANGUAGE LANG_SPANISH, SUBLANG_NEUTRAL
//IDB_FONTSTOOLBAR BITMAP "icons/fontstoolbar-es-ES.bmp"
ID_MENU MENU ID_MENU MENU
BEGIN BEGIN
POPUP "&Archivo" POPUP "&Archivo"
@ -193,6 +195,17 @@ BEGIN
PUSHBUTTON "Cancelar", IDCANCEL, 170, 24, 48, 14 PUSHBUTTON "Cancelar", IDCANCEL, 170, 24, 48, 14
END END
IDD_FONTS DIALOG 0, 0, 225, 25
CAPTION "Tipografías"
STYLE DS_CENTER | DS_MODALFRAME | WS_POPUPWINDOW | WS_CAPTION
EXSTYLE WS_EX_TOOLWINDOW
FONT 8, "MS Shell Dlg"
BEGIN
COMBOBOX IDD_FONTSNAMES, 5, 5, 110, 200, CBS_HASSTRINGS | CBS_DROPDOWN | CBS_AUTOHSCROLL | CBS_SORT | CBS_OWNERDRAWFIXED | WS_VSCROLL | WS_TABSTOP
COMBOBOX IDD_FONTSSIZES, 120, 5, 35, 250, CBS_HASSTRINGS | CBS_DROPDOWN | WS_VSCROLL | WS_TABSTOP
CONTROL "", IDD_FONTSTOOLBAR, "ToolbarWindow32", TBSTYLE_TOOLTIPS | CCS_NODIVIDER | CCS_NOPARENTALIGN | CCS_NOMOVEY, 160, 5, 60, 20
END
STRINGTABLE STRINGTABLE
BEGIN BEGIN
IDS_PROGRAMNAME "Paint" IDS_PROGRAMNAME "Paint"
@ -227,4 +240,8 @@ BEGIN
IDS_ANGLE "El ángulo debe de estar entre -89 y 89." IDS_ANGLE "El ángulo debe de estar entre -89 y 89."
IDS_LOADERRORTEXT "No se pudo cargar el archivo %s." IDS_LOADERRORTEXT "No se pudo cargar el archivo %s."
IDS_ENLARGEPROMPTTEXT "La imagen en el Portapapeles es más grande que el lienzo.\n¿Quieres adaptar las dimensiones del lienzo a su nuevo tamaño?" IDS_ENLARGEPROMPTTEXT "La imagen en el Portapapeles es más grande que el lienzo.\n¿Quieres adaptar las dimensiones del lienzo a su nuevo tamaño?"
IDS_BOLD "Negrita"
IDS_ITALIC "Cursiva"
IDS_UNDERLINE "Subrayado"
IDS_VERTICAL "Vertical"
END END

View file

@ -8,6 +8,8 @@
LANGUAGE LANG_ESTONIAN, SUBLANG_DEFAULT LANGUAGE LANG_ESTONIAN, SUBLANG_DEFAULT
//IDB_FONTSTOOLBAR BITMAP "icons/fontstoolbar-et-EE.bmp"
ID_MENU MENU ID_MENU MENU
BEGIN BEGIN
POPUP "&Fail" POPUP "&Fail"
@ -191,6 +193,17 @@ BEGIN
PUSHBUTTON "Tühista", IDCANCEL, 170, 24, 48, 14 PUSHBUTTON "Tühista", IDCANCEL, 170, 24, 48, 14
END END
IDD_FONTS DIALOG 0, 0, 225, 25
CAPTION "Fonts"
STYLE DS_CENTER | DS_MODALFRAME | WS_POPUPWINDOW | WS_CAPTION
EXSTYLE WS_EX_TOOLWINDOW
FONT 8, "MS Shell Dlg"
BEGIN
COMBOBOX IDD_FONTSNAMES, 5, 5, 110, 200, CBS_HASSTRINGS | CBS_DROPDOWN | CBS_AUTOHSCROLL | CBS_SORT | CBS_OWNERDRAWFIXED | WS_VSCROLL | WS_TABSTOP
COMBOBOX IDD_FONTSSIZES, 120, 5, 35, 250, CBS_HASSTRINGS | CBS_DROPDOWN | WS_VSCROLL | WS_TABSTOP
CONTROL "", IDD_FONTSTOOLBAR, "ToolbarWindow32", TBSTYLE_TOOLTIPS | CCS_NODIVIDER | CCS_NOPARENTALIGN | CCS_NOMOVEY, 160, 5, 60, 20
END
STRINGTABLE STRINGTABLE
BEGIN BEGIN
IDS_PROGRAMNAME "Paint" IDS_PROGRAMNAME "Paint"
@ -225,4 +238,8 @@ BEGIN
IDS_ANGLE "Nurk peab -89 ja 89 vahemikus olema." IDS_ANGLE "Nurk peab -89 ja 89 vahemikus olema."
IDS_LOADERRORTEXT "Faili %s ei suudetud laadida." IDS_LOADERRORTEXT "Faili %s ei suudetud laadida."
IDS_ENLARGEPROMPTTEXT "Pilt lõikelaual on suurem kui digitaalkujutis.\nKas soovid digitaalkujutist suurendada?" IDS_ENLARGEPROMPTTEXT "Pilt lõikelaual on suurem kui digitaalkujutis.\nKas soovid digitaalkujutist suurendada?"
IDS_BOLD "Bold"
IDS_ITALIC "Italic"
IDS_UNDERLINE "Underline"
IDS_VERTICAL "Vertical"
END END

View file

@ -1,5 +1,7 @@
LANGUAGE LANG_BASQUE, SUBLANG_DEFAULT LANGUAGE LANG_BASQUE, SUBLANG_DEFAULT
//IDB_FONTSTOOLBAR BITMAP "icons/fontstoolbar-eu-ES.bmp"
ID_MENU MENU ID_MENU MENU
BEGIN BEGIN
POPUP "&Fitxategia" POPUP "&Fitxategia"
@ -183,6 +185,17 @@ BEGIN
PUSHBUTTON "Utzi", IDCANCEL, 170, 24, 48, 14 PUSHBUTTON "Utzi", IDCANCEL, 170, 24, 48, 14
END END
IDD_FONTS DIALOG 0, 0, 225, 25
CAPTION "Fonts"
STYLE DS_CENTER | DS_MODALFRAME | WS_POPUPWINDOW | WS_CAPTION
EXSTYLE WS_EX_TOOLWINDOW
FONT 8, "MS Shell Dlg"
BEGIN
COMBOBOX IDD_FONTSNAMES, 5, 5, 110, 200, CBS_HASSTRINGS | CBS_DROPDOWN | CBS_AUTOHSCROLL | CBS_SORT | CBS_OWNERDRAWFIXED | WS_VSCROLL | WS_TABSTOP
COMBOBOX IDD_FONTSSIZES, 120, 5, 35, 250, CBS_HASSTRINGS | CBS_DROPDOWN | WS_VSCROLL | WS_TABSTOP
CONTROL "", IDD_FONTSTOOLBAR, "ToolbarWindow32", TBSTYLE_TOOLTIPS | CCS_NODIVIDER | CCS_NOPARENTALIGN | CCS_NOMOVEY, 160, 5, 60, 20
END
STRINGTABLE STRINGTABLE
BEGIN BEGIN
IDS_PROGRAMNAME "Paint" IDS_PROGRAMNAME "Paint"
@ -217,4 +230,8 @@ BEGIN
IDS_ANGLE "Angelu -89 eta 89 tartean izan behar da." IDS_ANGLE "Angelu -89 eta 89 tartean izan behar da."
IDS_LOADERRORTEXT "%s artxiboaren karga ez ahal da." IDS_LOADERRORTEXT "%s artxiboaren karga ez ahal da."
IDS_ENLARGEPROMPTTEXT "Klipboard dagoen argazkia bitmap-a baino handiagoa da.\nNahi duzu bitmap-a luzatu?" IDS_ENLARGEPROMPTTEXT "Klipboard dagoen argazkia bitmap-a baino handiagoa da.\nNahi duzu bitmap-a luzatu?"
IDS_BOLD "Bold"
IDS_ITALIC "Italic"
IDS_UNDERLINE "Underline"
IDS_VERTICAL "Vertical"
END END

View file

@ -1,5 +1,7 @@
LANGUAGE LANG_FRENCH, SUBLANG_FRENCH LANGUAGE LANG_FRENCH, SUBLANG_FRENCH
//IDB_FONTSTOOLBAR BITMAP "icons/fontstoolbar-fr-FR.bmp"
ID_MENU MENU ID_MENU MENU
BEGIN BEGIN
POPUP "&Fichier" POPUP "&Fichier"
@ -183,6 +185,17 @@ BEGIN
PUSHBUTTON "Annuler", IDCANCEL, 170, 24, 48, 14 PUSHBUTTON "Annuler", IDCANCEL, 170, 24, 48, 14
END END
IDD_FONTS DIALOG 0, 0, 225, 25
CAPTION "Fonts"
STYLE DS_CENTER | DS_MODALFRAME | WS_POPUPWINDOW | WS_CAPTION
EXSTYLE WS_EX_TOOLWINDOW
FONT 8, "MS Shell Dlg"
BEGIN
COMBOBOX IDD_FONTSNAMES, 5, 5, 110, 200, CBS_HASSTRINGS | CBS_DROPDOWN | CBS_AUTOHSCROLL | CBS_SORT | CBS_OWNERDRAWFIXED | WS_VSCROLL | WS_TABSTOP
COMBOBOX IDD_FONTSSIZES, 120, 5, 35, 250, CBS_HASSTRINGS | CBS_DROPDOWN | WS_VSCROLL | WS_TABSTOP
CONTROL "", IDD_FONTSTOOLBAR, "ToolbarWindow32", TBSTYLE_TOOLTIPS | CCS_NODIVIDER | CCS_NOPARENTALIGN | CCS_NOMOVEY, 160, 5, 60, 20
END
STRINGTABLE STRINGTABLE
BEGIN BEGIN
IDS_PROGRAMNAME "Paint" IDS_PROGRAMNAME "Paint"
@ -217,4 +230,8 @@ BEGIN
IDS_ANGLE "L'angle doit être entre -89 et 89." IDS_ANGLE "L'angle doit être entre -89 et 89."
IDS_LOADERRORTEXT "Le fichier %s n'a pas pu être chargé." IDS_LOADERRORTEXT "Le fichier %s n'a pas pu être chargé."
IDS_ENLARGEPROMPTTEXT "L'image dans le presse-papier est plus grande que le bitmap.\nSouhaitez-vous agrandir le bitmap ?" IDS_ENLARGEPROMPTTEXT "L'image dans le presse-papier est plus grande que le bitmap.\nSouhaitez-vous agrandir le bitmap ?"
IDS_BOLD "Bold"
IDS_ITALIC "Italic"
IDS_UNDERLINE "Underline"
IDS_VERTICAL "Vertical"
END END

View file

@ -1,5 +1,7 @@
LANGUAGE LANG_HEBREW, SUBLANG_DEFAULT LANGUAGE LANG_HEBREW, SUBLANG_DEFAULT
//IDB_FONTSTOOLBAR BITMAP "icons/fontstoolbar-he-IL.bmp"
ID_MENU MENU ID_MENU MENU
BEGIN BEGIN
POPUP "&קובץ" POPUP "&קובץ"
@ -186,6 +188,17 @@ BEGIN
PUSHBUTTON "ביטול", IDCANCEL, 170, 24, 48, 14 PUSHBUTTON "ביטול", IDCANCEL, 170, 24, 48, 14
END END
IDD_FONTS DIALOG 0, 0, 225, 25
CAPTION "Fonts"
STYLE DS_CENTER | DS_MODALFRAME | WS_POPUPWINDOW | WS_CAPTION
EXSTYLE WS_EX_TOOLWINDOW
FONT 8, "MS Shell Dlg"
BEGIN
COMBOBOX IDD_FONTSNAMES, 5, 5, 110, 200, CBS_HASSTRINGS | CBS_DROPDOWN | CBS_AUTOHSCROLL | CBS_SORT | CBS_OWNERDRAWFIXED | WS_VSCROLL | WS_TABSTOP
COMBOBOX IDD_FONTSSIZES, 120, 5, 35, 250, CBS_HASSTRINGS | CBS_DROPDOWN | WS_VSCROLL | WS_TABSTOP
CONTROL "", IDD_FONTSTOOLBAR, "ToolbarWindow32", TBSTYLE_TOOLTIPS | CCS_NODIVIDER | CCS_NOPARENTALIGN | CCS_NOMOVEY, 160, 5, 60, 20
END
STRINGTABLE STRINGTABLE
BEGIN BEGIN
IDS_PROGRAMNAME "צייר" IDS_PROGRAMNAME "צייר"
@ -220,4 +233,8 @@ BEGIN
IDS_ANGLE, "The angle must be between -89 and 89." IDS_ANGLE, "The angle must be between -89 and 89."
IDS_LOADERRORTEXT, ".%s לא היה ניתן לטעון את הקובץ" IDS_LOADERRORTEXT, ".%s לא היה ניתן לטעון את הקובץ"
IDS_ENLARGEPROMPTTEXT "The image in the clipboard is larger than the bitmap.\nWould you like the bitmap enlarged?" IDS_ENLARGEPROMPTTEXT "The image in the clipboard is larger than the bitmap.\nWould you like the bitmap enlarged?"
IDS_BOLD "Bold"
IDS_ITALIC "Italic"
IDS_UNDERLINE "Underline"
IDS_VERTICAL "Vertical"
END END

View file

@ -1,5 +1,7 @@
LANGUAGE LANG_HUNGARIAN, SUBLANG_DEFAULT LANGUAGE LANG_HUNGARIAN, SUBLANG_DEFAULT
//IDB_FONTSTOOLBAR BITMAP "icons/fontstoolbar-hu-HU.bmp"
ID_MENU MENU ID_MENU MENU
BEGIN BEGIN
POPUP "&Fájl" POPUP "&Fájl"
@ -183,6 +185,17 @@ BEGIN
PUSHBUTTON "Mégse", IDCANCEL, 170, 24, 48, 14 PUSHBUTTON "Mégse", IDCANCEL, 170, 24, 48, 14
END END
IDD_FONTS DIALOG 0, 0, 225, 25
CAPTION "Fonts"
STYLE DS_CENTER | DS_MODALFRAME | WS_POPUPWINDOW | WS_CAPTION
EXSTYLE WS_EX_TOOLWINDOW
FONT 8, "MS Shell Dlg"
BEGIN
COMBOBOX IDD_FONTSNAMES, 5, 5, 110, 200, CBS_HASSTRINGS | CBS_DROPDOWN | CBS_AUTOHSCROLL | CBS_SORT | CBS_OWNERDRAWFIXED | WS_VSCROLL | WS_TABSTOP
COMBOBOX IDD_FONTSSIZES, 120, 5, 35, 250, CBS_HASSTRINGS | CBS_DROPDOWN | WS_VSCROLL | WS_TABSTOP
CONTROL "", IDD_FONTSTOOLBAR, "ToolbarWindow32", TBSTYLE_TOOLTIPS | CCS_NODIVIDER | CCS_NOPARENTALIGN | CCS_NOMOVEY, 160, 5, 60, 20
END
STRINGTABLE STRINGTABLE
BEGIN BEGIN
IDS_PROGRAMNAME "Paint" IDS_PROGRAMNAME "Paint"
@ -217,4 +230,8 @@ BEGIN
IDS_ANGLE "A szögnek -89 és 89 között kell lennie." IDS_ANGLE "A szögnek -89 és 89 között kell lennie."
IDS_LOADERRORTEXT "A(z) %s fájlt nem sikerült betölteni." IDS_LOADERRORTEXT "A(z) %s fájlt nem sikerült betölteni."
IDS_ENLARGEPROMPTTEXT "A vágólapon lévő kép nagyobb mint a bitkép.\nSzeretné a bitkép méretét megnövelni?" IDS_ENLARGEPROMPTTEXT "A vágólapon lévő kép nagyobb mint a bitkép.\nSzeretné a bitkép méretét megnövelni?"
IDS_BOLD "Bold"
IDS_ITALIC "Italic"
IDS_UNDERLINE "Underline"
IDS_VERTICAL "Vertical"
END END

View file

@ -8,6 +8,8 @@
LANGUAGE LANG_INDONESIAN, SUBLANG_DEFAULT LANGUAGE LANG_INDONESIAN, SUBLANG_DEFAULT
//IDB_FONTSTOOLBAR BITMAP "icons/fontstoolbar-id-ID.bmp"
ID_MENU MENU ID_MENU MENU
BEGIN BEGIN
POPUP "Be&rkas" POPUP "Be&rkas"
@ -191,6 +193,17 @@ BEGIN
PUSHBUTTON "Batal", IDCANCEL, 170, 24, 48, 14 PUSHBUTTON "Batal", IDCANCEL, 170, 24, 48, 14
END END
IDD_FONTS DIALOG 0, 0, 225, 25
CAPTION "Fonts"
STYLE DS_CENTER | DS_MODALFRAME | WS_POPUPWINDOW | WS_CAPTION
EXSTYLE WS_EX_TOOLWINDOW
FONT 8, "MS Shell Dlg"
BEGIN
COMBOBOX IDD_FONTSNAMES, 5, 5, 110, 200, CBS_HASSTRINGS | CBS_DROPDOWN | CBS_AUTOHSCROLL | CBS_SORT | CBS_OWNERDRAWFIXED | WS_VSCROLL | WS_TABSTOP
COMBOBOX IDD_FONTSSIZES, 120, 5, 35, 250, CBS_HASSTRINGS | CBS_DROPDOWN | WS_VSCROLL | WS_TABSTOP
CONTROL "", IDD_FONTSTOOLBAR, "ToolbarWindow32", TBSTYLE_TOOLTIPS | CCS_NODIVIDER | CCS_NOPARENTALIGN | CCS_NOMOVEY, 160, 5, 60, 20
END
STRINGTABLE STRINGTABLE
BEGIN BEGIN
IDS_PROGRAMNAME "Paint" IDS_PROGRAMNAME "Paint"
@ -225,4 +238,8 @@ BEGIN
IDS_ANGLE "Sudut hanya tersedia antara -89 and 89." IDS_ANGLE "Sudut hanya tersedia antara -89 and 89."
IDS_LOADERRORTEXT "Berkas %s tidak bisa dimuat." IDS_LOADERRORTEXT "Berkas %s tidak bisa dimuat."
IDS_ENLARGEPROMPTTEXT "Gambar pada papan klip lebih besar dari kanvas.\nPerbesar kanvas?" IDS_ENLARGEPROMPTTEXT "Gambar pada papan klip lebih besar dari kanvas.\nPerbesar kanvas?"
IDS_BOLD "Bold"
IDS_ITALIC "Italic"
IDS_UNDERLINE "Underline"
IDS_VERTICAL "Vertical"
END END

View file

@ -8,6 +8,8 @@
LANGUAGE LANG_ITALIAN, SUBLANG_NEUTRAL LANGUAGE LANG_ITALIAN, SUBLANG_NEUTRAL
//IDB_FONTSTOOLBAR BITMAP "icons/fontstoolbar-it-IT.bmp"
ID_MENU MENU ID_MENU MENU
BEGIN BEGIN
POPUP "&File" POPUP "&File"
@ -191,6 +193,17 @@ BEGIN
PUSHBUTTON "Annulla", IDCANCEL, 170, 24, 48, 14 PUSHBUTTON "Annulla", IDCANCEL, 170, 24, 48, 14
END END
IDD_FONTS DIALOG 0, 0, 225, 25
CAPTION "Fonts"
STYLE DS_CENTER | DS_MODALFRAME | WS_POPUPWINDOW | WS_CAPTION
EXSTYLE WS_EX_TOOLWINDOW
FONT 8, "MS Shell Dlg"
BEGIN
COMBOBOX IDD_FONTSNAMES, 5, 5, 110, 200, CBS_HASSTRINGS | CBS_DROPDOWN | CBS_AUTOHSCROLL | CBS_SORT | CBS_OWNERDRAWFIXED | WS_VSCROLL | WS_TABSTOP
COMBOBOX IDD_FONTSSIZES, 120, 5, 35, 250, CBS_HASSTRINGS | CBS_DROPDOWN | WS_VSCROLL | WS_TABSTOP
CONTROL "", IDD_FONTSTOOLBAR, "ToolbarWindow32", TBSTYLE_TOOLTIPS | CCS_NODIVIDER | CCS_NOPARENTALIGN | CCS_NOMOVEY, 160, 5, 60, 20
END
STRINGTABLE STRINGTABLE
BEGIN BEGIN
IDS_PROGRAMNAME "Paint" IDS_PROGRAMNAME "Paint"
@ -225,4 +238,8 @@ BEGIN
IDS_ANGLE "L'angolo deve essere compreso tra -89 e 89." IDS_ANGLE "L'angolo deve essere compreso tra -89 e 89."
IDS_LOADERRORTEXT "l file %s non può essere caricato." IDS_LOADERRORTEXT "l file %s non può essere caricato."
IDS_ENLARGEPROMPTTEXT "The image in the clipboard is larger than the bitmap.\nWould you like the bitmap enlarged?" IDS_ENLARGEPROMPTTEXT "The image in the clipboard is larger than the bitmap.\nWould you like the bitmap enlarged?"
IDS_BOLD "Bold"
IDS_ITALIC "Italic"
IDS_UNDERLINE "Underline"
IDS_VERTICAL "Vertical"
END END

View file

@ -8,6 +8,8 @@
LANGUAGE LANG_JAPANESE, SUBLANG_DEFAULT LANGUAGE LANG_JAPANESE, SUBLANG_DEFAULT
//IDB_FONTSTOOLBAR BITMAP "icons/fontstoolbar-ja-JP.bmp"
ID_MENU MENU ID_MENU MENU
BEGIN BEGIN
POPUP "ファイル(&F)" POPUP "ファイル(&F)"
@ -191,6 +193,17 @@ BEGIN
PUSHBUTTON "キャンセル", IDCANCEL, 170, 24, 48, 14 PUSHBUTTON "キャンセル", IDCANCEL, 170, 24, 48, 14
END END
IDD_FONTS DIALOG 0, 0, 225, 25
CAPTION "フォント"
STYLE DS_CENTER | DS_MODALFRAME | WS_POPUPWINDOW | WS_CAPTION
EXSTYLE WS_EX_TOOLWINDOW
FONT 9, "MS UI Gothic"
BEGIN
COMBOBOX IDD_FONTSNAMES, 5, 5, 110, 200, CBS_HASSTRINGS | CBS_DROPDOWN | CBS_AUTOHSCROLL | CBS_SORT | CBS_OWNERDRAWFIXED | WS_VSCROLL | WS_TABSTOP
COMBOBOX IDD_FONTSSIZES, 120, 5, 35, 250, CBS_HASSTRINGS | CBS_DROPDOWN | WS_VSCROLL | WS_TABSTOP
CONTROL "", IDD_FONTSTOOLBAR, "ToolbarWindow32", TBSTYLE_TOOLTIPS | CCS_NODIVIDER | CCS_NOPARENTALIGN | CCS_NOMOVEY, 160, 5, 60, 20
END
STRINGTABLE STRINGTABLE
BEGIN BEGIN
IDS_PROGRAMNAME "ペイント" IDS_PROGRAMNAME "ペイント"
@ -225,4 +238,8 @@ BEGIN
IDS_ANGLE "角度は -89 から 89 の間でなければなりません。" IDS_ANGLE "角度は -89 から 89 の間でなければなりません。"
IDS_LOADERRORTEXT "ファイル %s は読み込めませんでした。" IDS_LOADERRORTEXT "ファイル %s は読み込めませんでした。"
IDS_ENLARGEPROMPTTEXT "クリップボードの画像はビットマップよりも大きいです。\nビットマップを拡張しますか" IDS_ENLARGEPROMPTTEXT "クリップボードの画像はビットマップよりも大きいです。\nビットマップを拡張しますか"
IDS_BOLD "太字"
IDS_ITALIC "斜体"
IDS_UNDERLINE "下線"
IDS_VERTICAL "縦書き"
END END

View file

@ -8,6 +8,8 @@
LANGUAGE LANG_DUTCH, SUBLANG_NEUTRAL LANGUAGE LANG_DUTCH, SUBLANG_NEUTRAL
//IDB_FONTSTOOLBAR BITMAP "icons/fontstoolbar-nl-NL.bmp"
ID_MENU MENU ID_MENU MENU
BEGIN BEGIN
POPUP "&Bestand" POPUP "&Bestand"
@ -191,6 +193,17 @@ BEGIN
PUSHBUTTON "Annuleren", IDCANCEL, 170, 24, 48, 14 PUSHBUTTON "Annuleren", IDCANCEL, 170, 24, 48, 14
END END
IDD_FONTS DIALOG 0, 0, 225, 25
CAPTION "Fonts"
STYLE DS_CENTER | DS_MODALFRAME | WS_POPUPWINDOW | WS_CAPTION
EXSTYLE WS_EX_TOOLWINDOW
FONT 8, "MS Shell Dlg"
BEGIN
COMBOBOX IDD_FONTSNAMES, 5, 5, 110, 200, CBS_HASSTRINGS | CBS_DROPDOWN | CBS_AUTOHSCROLL | CBS_SORT | CBS_OWNERDRAWFIXED | WS_VSCROLL | WS_TABSTOP
COMBOBOX IDD_FONTSSIZES, 120, 5, 35, 250, CBS_HASSTRINGS | CBS_DROPDOWN | WS_VSCROLL | WS_TABSTOP
CONTROL "", IDD_FONTSTOOLBAR, "ToolbarWindow32", TBSTYLE_TOOLTIPS | CCS_NODIVIDER | CCS_NOPARENTALIGN | CCS_NOMOVEY, 160, 5, 60, 20
END
STRINGTABLE STRINGTABLE
BEGIN BEGIN
IDS_PROGRAMNAME "Paint" IDS_PROGRAMNAME "Paint"
@ -225,4 +238,8 @@ BEGIN
IDS_ANGLE "The angle must be between -89 and 89." IDS_ANGLE "The angle must be between -89 and 89."
IDS_LOADERRORTEXT "The file %s could not be loaded." IDS_LOADERRORTEXT "The file %s could not be loaded."
IDS_ENLARGEPROMPTTEXT "The image in the clipboard is larger than the bitmap.\nWould you like the bitmap enlarged?" IDS_ENLARGEPROMPTTEXT "The image in the clipboard is larger than the bitmap.\nWould you like the bitmap enlarged?"
IDS_BOLD "Bold"
IDS_ITALIC "Italic"
IDS_UNDERLINE "Underline"
IDS_VERTICAL "Vertical"
END END

View file

@ -8,6 +8,8 @@
LANGUAGE LANG_NORWEGIAN, SUBLANG_NEUTRAL LANGUAGE LANG_NORWEGIAN, SUBLANG_NEUTRAL
//IDB_FONTSTOOLBAR BITMAP "icons/fontstoolbar-no-NO.bmp"
ID_MENU MENU ID_MENU MENU
BEGIN BEGIN
POPUP "&Fil" POPUP "&Fil"
@ -191,6 +193,17 @@ BEGIN
PUSHBUTTON "Avbryt", IDCANCEL, 170, 24, 48, 14 PUSHBUTTON "Avbryt", IDCANCEL, 170, 24, 48, 14
END END
IDD_FONTS DIALOG 0, 0, 225, 25
CAPTION "Fonts"
STYLE DS_CENTER | DS_MODALFRAME | WS_POPUPWINDOW | WS_CAPTION
EXSTYLE WS_EX_TOOLWINDOW
FONT 8, "MS Shell Dlg"
BEGIN
COMBOBOX IDD_FONTSNAMES, 5, 5, 110, 200, CBS_HASSTRINGS | CBS_DROPDOWN | CBS_AUTOHSCROLL | CBS_SORT | CBS_OWNERDRAWFIXED | WS_VSCROLL | WS_TABSTOP
COMBOBOX IDD_FONTSSIZES, 120, 5, 35, 250, CBS_HASSTRINGS | CBS_DROPDOWN | WS_VSCROLL | WS_TABSTOP
CONTROL "", IDD_FONTSTOOLBAR, "ToolbarWindow32", TBSTYLE_TOOLTIPS | CCS_NODIVIDER | CCS_NOPARENTALIGN | CCS_NOMOVEY, 160, 5, 60, 20
END
STRINGTABLE STRINGTABLE
BEGIN BEGIN
IDS_PROGRAMNAME "Paint" IDS_PROGRAMNAME "Paint"
@ -225,4 +238,8 @@ BEGIN
IDS_ANGLE "The angle must be between -89 and 89." IDS_ANGLE "The angle must be between -89 and 89."
IDS_LOADERRORTEXT "The file %s could not be loaded." IDS_LOADERRORTEXT "The file %s could not be loaded."
IDS_ENLARGEPROMPTTEXT "The image in the clipboard is larger than the bitmap.\nWould you like the bitmap enlarged?" IDS_ENLARGEPROMPTTEXT "The image in the clipboard is larger than the bitmap.\nWould you like the bitmap enlarged?"
IDS_BOLD "Bold"
IDS_ITALIC "Italic"
IDS_UNDERLINE "Underline"
IDS_VERTICAL "Vertical"
END END

View file

@ -9,6 +9,8 @@
LANGUAGE LANG_POLISH, SUBLANG_DEFAULT LANGUAGE LANG_POLISH, SUBLANG_DEFAULT
//IDB_FONTSTOOLBAR BITMAP "icons/fontstoolbar-pl-PL.bmp"
ID_MENU MENU ID_MENU MENU
BEGIN BEGIN
POPUP "&Plik" POPUP "&Plik"
@ -192,6 +194,17 @@ BEGIN
PUSHBUTTON "Anuluj", IDCANCEL, 170, 24, 48, 14 PUSHBUTTON "Anuluj", IDCANCEL, 170, 24, 48, 14
END END
IDD_FONTS DIALOG 0, 0, 225, 25
CAPTION "Fonts"
STYLE DS_CENTER | DS_MODALFRAME | WS_POPUPWINDOW | WS_CAPTION
EXSTYLE WS_EX_TOOLWINDOW
FONT 8, "MS Shell Dlg"
BEGIN
COMBOBOX IDD_FONTSNAMES, 5, 5, 110, 200, CBS_HASSTRINGS | CBS_DROPDOWN | CBS_AUTOHSCROLL | CBS_SORT | CBS_OWNERDRAWFIXED | WS_VSCROLL | WS_TABSTOP
COMBOBOX IDD_FONTSSIZES, 120, 5, 35, 250, CBS_HASSTRINGS | CBS_DROPDOWN | WS_VSCROLL | WS_TABSTOP
CONTROL "", IDD_FONTSTOOLBAR, "ToolbarWindow32", TBSTYLE_TOOLTIPS | CCS_NODIVIDER | CCS_NOPARENTALIGN | CCS_NOMOVEY, 160, 5, 60, 20
END
STRINGTABLE STRINGTABLE
BEGIN BEGIN
IDS_PROGRAMNAME "Paint" IDS_PROGRAMNAME "Paint"
@ -226,4 +239,8 @@ BEGIN
IDS_ANGLE "Wprowadź liczbę całkowitą z zakresu od -89 do 89." IDS_ANGLE "Wprowadź liczbę całkowitą z zakresu od -89 do 89."
IDS_LOADERRORTEXT "Plik %s nie może być załadowany." IDS_LOADERRORTEXT "Plik %s nie może być załadowany."
IDS_ENLARGEPROMPTTEXT "Obraz w schowku jest większy niż bitmapa.\nChciałbyś powiększyć bitmapę?" IDS_ENLARGEPROMPTTEXT "Obraz w schowku jest większy niż bitmapa.\nChciałbyś powiększyć bitmapę?"
IDS_BOLD "Bold"
IDS_ITALIC "Italic"
IDS_UNDERLINE "Underline"
IDS_VERTICAL "Vertical"
END END

View file

@ -8,6 +8,8 @@
LANGUAGE LANG_PORTUGUESE, SUBLANG_PORTUGUESE_BRAZILIAN LANGUAGE LANG_PORTUGUESE, SUBLANG_PORTUGUESE_BRAZILIAN
//IDB_FONTSTOOLBAR BITMAP "icons/fontstoolbar-pt-BR.bmp"
ID_MENU MENU ID_MENU MENU
BEGIN BEGIN
POPUP "&Arquivo" POPUP "&Arquivo"
@ -191,6 +193,17 @@ BEGIN
PUSHBUTTON "Cancelar", IDCANCEL, 170, 24, 48, 14 PUSHBUTTON "Cancelar", IDCANCEL, 170, 24, 48, 14
END END
IDD_FONTS DIALOG 0, 0, 225, 25
CAPTION "Fonts"
STYLE DS_CENTER | DS_MODALFRAME | WS_POPUPWINDOW | WS_CAPTION
EXSTYLE WS_EX_TOOLWINDOW
FONT 8, "MS Shell Dlg"
BEGIN
COMBOBOX IDD_FONTSNAMES, 5, 5, 110, 200, CBS_HASSTRINGS | CBS_DROPDOWN | CBS_AUTOHSCROLL | CBS_SORT | CBS_OWNERDRAWFIXED | WS_VSCROLL | WS_TABSTOP
COMBOBOX IDD_FONTSSIZES, 120, 5, 35, 250, CBS_HASSTRINGS | CBS_DROPDOWN | WS_VSCROLL | WS_TABSTOP
CONTROL "", IDD_FONTSTOOLBAR, "ToolbarWindow32", TBSTYLE_TOOLTIPS | CCS_NODIVIDER | CCS_NOPARENTALIGN | CCS_NOMOVEY, 160, 5, 60, 20
END
STRINGTABLE STRINGTABLE
BEGIN BEGIN
IDS_PROGRAMNAME "Paint" IDS_PROGRAMNAME "Paint"
@ -225,4 +238,8 @@ BEGIN
IDS_ANGLE "The angle must be between -89 and 89." IDS_ANGLE "The angle must be between -89 and 89."
IDS_LOADERRORTEXT "The file %s could not be loaded." IDS_LOADERRORTEXT "The file %s could not be loaded."
IDS_ENLARGEPROMPTTEXT "The image in the clipboard is larger than the bitmap.\nWould you like the bitmap enlarged?" IDS_ENLARGEPROMPTTEXT "The image in the clipboard is larger than the bitmap.\nWould you like the bitmap enlarged?"
IDS_BOLD "Bold"
IDS_ITALIC "Italic"
IDS_UNDERLINE "Underline"
IDS_VERTICAL "Vertical"
END END

View file

@ -8,6 +8,8 @@
LANGUAGE LANG_PORTUGUESE, SUBLANG_PORTUGUESE LANGUAGE LANG_PORTUGUESE, SUBLANG_PORTUGUESE
//IDB_FONTSTOOLBAR BITMAP "icons/fontstoolbar-pt-PT.bmp"
ID_MENU MENU ID_MENU MENU
BEGIN BEGIN
POPUP "&Ficheiro" POPUP "&Ficheiro"
@ -191,6 +193,17 @@ BEGIN
PUSHBUTTON "Cancelar", IDCANCEL, 170, 24, 48, 14 PUSHBUTTON "Cancelar", IDCANCEL, 170, 24, 48, 14
END END
IDD_FONTS DIALOG 0, 0, 225, 25
CAPTION "Fonts"
STYLE DS_CENTER | DS_MODALFRAME | WS_POPUPWINDOW | WS_CAPTION
EXSTYLE WS_EX_TOOLWINDOW
FONT 8, "MS Shell Dlg"
BEGIN
COMBOBOX IDD_FONTSNAMES, 5, 5, 110, 200, CBS_HASSTRINGS | CBS_DROPDOWN | CBS_AUTOHSCROLL | CBS_SORT | CBS_OWNERDRAWFIXED | WS_VSCROLL | WS_TABSTOP
COMBOBOX IDD_FONTSSIZES, 120, 5, 35, 250, CBS_HASSTRINGS | CBS_DROPDOWN | WS_VSCROLL | WS_TABSTOP
CONTROL "", IDD_FONTSTOOLBAR, "ToolbarWindow32", TBSTYLE_TOOLTIPS | CCS_NODIVIDER | CCS_NOPARENTALIGN | CCS_NOMOVEY, 160, 5, 60, 20
END
STRINGTABLE STRINGTABLE
BEGIN BEGIN
IDS_PROGRAMNAME "Paint" IDS_PROGRAMNAME "Paint"
@ -225,4 +238,8 @@ BEGIN
IDS_ANGLE "The angle must be between -89 and 89." IDS_ANGLE "The angle must be between -89 and 89."
IDS_LOADERRORTEXT "The file %s could not be loaded." IDS_LOADERRORTEXT "The file %s could not be loaded."
IDS_ENLARGEPROMPTTEXT "The image in the clipboard is larger than the bitmap.\nWould you like the bitmap enlarged?" IDS_ENLARGEPROMPTTEXT "The image in the clipboard is larger than the bitmap.\nWould you like the bitmap enlarged?"
IDS_BOLD "Bold"
IDS_ITALIC "Italic"
IDS_UNDERLINE "Underline"
IDS_VERTICAL "Vertical"
END END

View file

@ -9,6 +9,8 @@
LANGUAGE LANG_ROMANIAN, SUBLANG_NEUTRAL LANGUAGE LANG_ROMANIAN, SUBLANG_NEUTRAL
//IDB_FONTSTOOLBAR BITMAP "icons/fontstoolbar-ro-RO.bmp"
ID_MENU MENU ID_MENU MENU
BEGIN BEGIN
POPUP "&Fișier" POPUP "&Fișier"
@ -192,6 +194,17 @@ BEGIN
PUSHBUTTON "A&nulează", IDCANCEL, 170, 24, 48, 14 PUSHBUTTON "A&nulează", IDCANCEL, 170, 24, 48, 14
END END
IDD_FONTS DIALOG 0, 0, 225, 25
CAPTION "Fonts"
STYLE DS_CENTER | DS_MODALFRAME | WS_POPUPWINDOW | WS_CAPTION
EXSTYLE WS_EX_TOOLWINDOW
FONT 8, "MS Shell Dlg"
BEGIN
COMBOBOX IDD_FONTSNAMES, 5, 5, 110, 200, CBS_HASSTRINGS | CBS_DROPDOWN | CBS_AUTOHSCROLL | CBS_SORT | CBS_OWNERDRAWFIXED | WS_VSCROLL | WS_TABSTOP
COMBOBOX IDD_FONTSSIZES, 120, 5, 35, 250, CBS_HASSTRINGS | CBS_DROPDOWN | WS_VSCROLL | WS_TABSTOP
CONTROL "", IDD_FONTSTOOLBAR, "ToolbarWindow32", TBSTYLE_TOOLTIPS | CCS_NODIVIDER | CCS_NOPARENTALIGN | CCS_NOMOVEY, 160, 5, 60, 20
END
STRINGTABLE STRINGTABLE
BEGIN BEGIN
IDS_PROGRAMNAME "Pictare" IDS_PROGRAMNAME "Pictare"
@ -226,4 +239,8 @@ BEGIN
IDS_ANGLE "Unghiul trebuie să fie între -89 și 89." IDS_ANGLE "Unghiul trebuie să fie între -89 și 89."
IDS_LOADERRORTEXT "Fișierul %s nu poate fi încărcat." IDS_LOADERRORTEXT "Fișierul %s nu poate fi încărcat."
IDS_ENLARGEPROMPTTEXT "Imaginea din memorie este mai mare decât suprafața curent disponibilă în aplicație.\nDoriți să redimensionați suprafața de desen disponibilă?" IDS_ENLARGEPROMPTTEXT "Imaginea din memorie este mai mare decât suprafața curent disponibilă în aplicație.\nDoriți să redimensionați suprafața de desen disponibilă?"
IDS_BOLD "Bold"
IDS_ITALIC "Italic"
IDS_UNDERLINE "Underline"
IDS_VERTICAL "Vertical"
END END

View file

@ -1,5 +1,7 @@
LANGUAGE LANG_RUSSIAN, SUBLANG_DEFAULT LANGUAGE LANG_RUSSIAN, SUBLANG_DEFAULT
//IDB_FONTSTOOLBAR BITMAP "icons/fontstoolbar-ru-RU.bmp"
ID_MENU MENU ID_MENU MENU
BEGIN BEGIN
POPUP "&Файл" POPUP "&Файл"
@ -183,6 +185,17 @@ BEGIN
PUSHBUTTON "Отмена", IDCANCEL, 170, 24, 48, 14 PUSHBUTTON "Отмена", IDCANCEL, 170, 24, 48, 14
END END
IDD_FONTS DIALOG 0, 0, 225, 25
CAPTION "Fonts"
STYLE DS_CENTER | DS_MODALFRAME | WS_POPUPWINDOW | WS_CAPTION
EXSTYLE WS_EX_TOOLWINDOW
FONT 8, "MS Shell Dlg"
BEGIN
COMBOBOX IDD_FONTSNAMES, 5, 5, 110, 200, CBS_HASSTRINGS | CBS_DROPDOWN | CBS_AUTOHSCROLL | CBS_SORT | CBS_OWNERDRAWFIXED | WS_VSCROLL | WS_TABSTOP
COMBOBOX IDD_FONTSSIZES, 120, 5, 35, 250, CBS_HASSTRINGS | CBS_DROPDOWN | WS_VSCROLL | WS_TABSTOP
CONTROL "", IDD_FONTSTOOLBAR, "ToolbarWindow32", TBSTYLE_TOOLTIPS | CCS_NODIVIDER | CCS_NOPARENTALIGN | CCS_NOMOVEY, 160, 5, 60, 20
END
STRINGTABLE STRINGTABLE
BEGIN BEGIN
IDS_PROGRAMNAME "Paint" IDS_PROGRAMNAME "Paint"
@ -217,4 +230,8 @@ BEGIN
IDS_ANGLE, "Угол должен быть в интервале от -89 до 89." IDS_ANGLE, "Угол должен быть в интервале от -89 до 89."
IDS_LOADERRORTEXT, "Невозможно загрузить файл %s." IDS_LOADERRORTEXT, "Невозможно загрузить файл %s."
IDS_ENLARGEPROMPTTEXT "Изображения в буфере обмена больше растрового изображения.\nХотите увеличить точечный рисунок?" IDS_ENLARGEPROMPTTEXT "Изображения в буфере обмена больше растрового изображения.\nХотите увеличить точечный рисунок?"
IDS_BOLD "Bold"
IDS_ITALIC "Italic"
IDS_UNDERLINE "Underline"
IDS_VERTICAL "Vertical"
END END

View file

@ -9,6 +9,8 @@
LANGUAGE LANG_SLOVAK, SUBLANG_DEFAULT LANGUAGE LANG_SLOVAK, SUBLANG_DEFAULT
//IDB_FONTSTOOLBAR BITMAP "icons/fontstoolbar-sk-SK.bmp"
ID_MENU MENU ID_MENU MENU
BEGIN BEGIN
POPUP "&Súbor" POPUP "&Súbor"
@ -192,6 +194,17 @@ BEGIN
PUSHBUTTON "Zrušiť", IDCANCEL, 170, 24, 48, 14 PUSHBUTTON "Zrušiť", IDCANCEL, 170, 24, 48, 14
END END
IDD_FONTS DIALOG 0, 0, 225, 25
CAPTION "Fonts"
STYLE DS_CENTER | DS_MODALFRAME | WS_POPUPWINDOW | WS_CAPTION
EXSTYLE WS_EX_TOOLWINDOW
FONT 8, "MS Shell Dlg"
BEGIN
COMBOBOX IDD_FONTSNAMES, 5, 5, 110, 200, CBS_HASSTRINGS | CBS_DROPDOWN | CBS_AUTOHSCROLL | CBS_SORT | CBS_OWNERDRAWFIXED | WS_VSCROLL | WS_TABSTOP
COMBOBOX IDD_FONTSSIZES, 120, 5, 35, 250, CBS_HASSTRINGS | CBS_DROPDOWN | WS_VSCROLL | WS_TABSTOP
CONTROL "", IDD_FONTSTOOLBAR, "ToolbarWindow32", TBSTYLE_TOOLTIPS | CCS_NODIVIDER | CCS_NOPARENTALIGN | CCS_NOMOVEY, 160, 5, 60, 20
END
STRINGTABLE STRINGTABLE
BEGIN BEGIN
IDS_PROGRAMNAME "Skicár" IDS_PROGRAMNAME "Skicár"
@ -226,4 +239,8 @@ BEGIN
IDS_ANGLE "The angle must be between -89 and 89." IDS_ANGLE "The angle must be between -89 and 89."
IDS_LOADERRORTEXT "The file %s could not be loaded." IDS_LOADERRORTEXT "The file %s could not be loaded."
IDS_ENLARGEPROMPTTEXT "The image in the clipboard is larger than the bitmap.\nWould you like the bitmap enlarged?" IDS_ENLARGEPROMPTTEXT "The image in the clipboard is larger than the bitmap.\nWould you like the bitmap enlarged?"
IDS_BOLD "Bold"
IDS_ITALIC "Italic"
IDS_UNDERLINE "Underline"
IDS_VERTICAL "Vertical"
END END

View file

@ -8,6 +8,8 @@
LANGUAGE LANG_ALBANIAN, SUBLANG_NEUTRAL LANGUAGE LANG_ALBANIAN, SUBLANG_NEUTRAL
//IDB_FONTSTOOLBAR BITMAP "icons/fontstoolbar-sq-AL.bmp"
ID_MENU MENU ID_MENU MENU
BEGIN BEGIN
POPUP "&File" POPUP "&File"
@ -191,6 +193,17 @@ BEGIN
PUSHBUTTON "Anulo", IDCANCEL, 170, 24, 48, 14 PUSHBUTTON "Anulo", IDCANCEL, 170, 24, 48, 14
END END
IDD_FONTS DIALOG 0, 0, 225, 25
CAPTION "Fonts"
STYLE DS_CENTER | DS_MODALFRAME | WS_POPUPWINDOW | WS_CAPTION
EXSTYLE WS_EX_TOOLWINDOW
FONT 8, "MS Shell Dlg"
BEGIN
COMBOBOX IDD_FONTSNAMES, 5, 5, 110, 200, CBS_HASSTRINGS | CBS_DROPDOWN | CBS_AUTOHSCROLL | CBS_SORT | CBS_OWNERDRAWFIXED | WS_VSCROLL | WS_TABSTOP
COMBOBOX IDD_FONTSSIZES, 120, 5, 35, 250, CBS_HASSTRINGS | CBS_DROPDOWN | WS_VSCROLL | WS_TABSTOP
CONTROL "", IDD_FONTSTOOLBAR, "ToolbarWindow32", TBSTYLE_TOOLTIPS | CCS_NODIVIDER | CCS_NOPARENTALIGN | CCS_NOMOVEY, 160, 5, 60, 20
END
STRINGTABLE STRINGTABLE
BEGIN BEGIN
IDS_PROGRAMNAME "Paint" IDS_PROGRAMNAME "Paint"
@ -225,4 +238,8 @@ BEGIN
IDS_ANGLE "Këndi duhet të jetë në mes -89 dhe 89." IDS_ANGLE "Këndi duhet të jetë në mes -89 dhe 89."
IDS_LOADERRORTEXT "Dokumenti %s nuk mund te ngarkohej." IDS_LOADERRORTEXT "Dokumenti %s nuk mund te ngarkohej."
IDS_ENLARGEPROMPTTEXT "The image in the clipboard is larger than the bitmap.\nWould you like the bitmap enlarged?" IDS_ENLARGEPROMPTTEXT "The image in the clipboard is larger than the bitmap.\nWould you like the bitmap enlarged?"
IDS_BOLD "Bold"
IDS_ITALIC "Italic"
IDS_UNDERLINE "Underline"
IDS_VERTICAL "Vertical"
END END

View file

@ -1,5 +1,7 @@
LANGUAGE LANG_SWEDISH, SUBLANG_NEUTRAL LANGUAGE LANG_SWEDISH, SUBLANG_NEUTRAL
//IDB_FONTSTOOLBAR BITMAP "icons/fontstoolbar-sv-SE.bmp"
ID_MENU MENU ID_MENU MENU
BEGIN BEGIN
POPUP "&Arkiv" POPUP "&Arkiv"
@ -183,6 +185,17 @@ BEGIN
PUSHBUTTON "Avbryt", IDCANCEL, 170, 24, 48, 14 PUSHBUTTON "Avbryt", IDCANCEL, 170, 24, 48, 14
END END
IDD_FONTS DIALOG 0, 0, 225, 25
CAPTION "Fonts"
STYLE DS_CENTER | DS_MODALFRAME | WS_POPUPWINDOW | WS_CAPTION
EXSTYLE WS_EX_TOOLWINDOW
FONT 8, "MS Shell Dlg"
BEGIN
COMBOBOX IDD_FONTSNAMES, 5, 5, 110, 200, CBS_HASSTRINGS | CBS_DROPDOWN | CBS_AUTOHSCROLL | CBS_SORT | CBS_OWNERDRAWFIXED | WS_VSCROLL | WS_TABSTOP
COMBOBOX IDD_FONTSSIZES, 120, 5, 35, 250, CBS_HASSTRINGS | CBS_DROPDOWN | WS_VSCROLL | WS_TABSTOP
CONTROL "", IDD_FONTSTOOLBAR, "ToolbarWindow32", TBSTYLE_TOOLTIPS | CCS_NODIVIDER | CCS_NOPARENTALIGN | CCS_NOMOVEY, 160, 5, 60, 20
END
STRINGTABLE STRINGTABLE
BEGIN BEGIN
IDS_PROGRAMNAME "Paint" IDS_PROGRAMNAME "Paint"
@ -217,4 +230,8 @@ BEGIN
IDS_ANGLE "The angle must be between -89 and 89." IDS_ANGLE "The angle must be between -89 and 89."
IDS_LOADERRORTEXT "The file %s could not be loaded." IDS_LOADERRORTEXT "The file %s could not be loaded."
IDS_ENLARGEPROMPTTEXT "The image in the clipboard is larger than the bitmap.\nWould you like the bitmap enlarged?" IDS_ENLARGEPROMPTTEXT "The image in the clipboard is larger than the bitmap.\nWould you like the bitmap enlarged?"
IDS_BOLD "Bold"
IDS_ITALIC "Italic"
IDS_UNDERLINE "Underline"
IDS_VERTICAL "Vertical"
END END

View file

@ -8,6 +8,8 @@
LANGUAGE LANG_TURKISH, SUBLANG_DEFAULT LANGUAGE LANG_TURKISH, SUBLANG_DEFAULT
//IDB_FONTSTOOLBAR BITMAP "icons/fontstoolbar-tr-TR.bmp"
ID_MENU MENU ID_MENU MENU
BEGIN BEGIN
POPUP "&Dosya" POPUP "&Dosya"
@ -191,6 +193,17 @@ BEGIN
PUSHBUTTON "İptal", IDCANCEL, 170, 24, 48, 14 PUSHBUTTON "İptal", IDCANCEL, 170, 24, 48, 14
END END
IDD_FONTS DIALOG 0, 0, 225, 25
CAPTION "Fonts"
STYLE DS_CENTER | DS_MODALFRAME | WS_POPUPWINDOW | WS_CAPTION
EXSTYLE WS_EX_TOOLWINDOW
FONT 8, "MS Shell Dlg"
BEGIN
COMBOBOX IDD_FONTSNAMES, 5, 5, 110, 200, CBS_HASSTRINGS | CBS_DROPDOWN | CBS_AUTOHSCROLL | CBS_SORT | CBS_OWNERDRAWFIXED | WS_VSCROLL | WS_TABSTOP
COMBOBOX IDD_FONTSSIZES, 120, 5, 35, 250, CBS_HASSTRINGS | CBS_DROPDOWN | WS_VSCROLL | WS_TABSTOP
CONTROL "", IDD_FONTSTOOLBAR, "ToolbarWindow32", TBSTYLE_TOOLTIPS | CCS_NODIVIDER | CCS_NOPARENTALIGN | CCS_NOMOVEY, 160, 5, 60, 20
END
STRINGTABLE STRINGTABLE
BEGIN BEGIN
IDS_PROGRAMNAME "Paint" IDS_PROGRAMNAME "Paint"
@ -225,4 +238,8 @@ BEGIN
IDS_ANGLE "Açı -89 ile 89 arasında olmalıdır." IDS_ANGLE "Açı -89 ile 89 arasında olmalıdır."
IDS_LOADERRORTEXT "%s dosyası yüklenemedi." IDS_LOADERRORTEXT "%s dosyası yüklenemedi."
IDS_ENLARGEPROMPTTEXT "Panodaki resim bit eşleminden daha büyük.\nBit eşlemin genişletilmişini ister misiniz?" IDS_ENLARGEPROMPTTEXT "Panodaki resim bit eşleminden daha büyük.\nBit eşlemin genişletilmişini ister misiniz?"
IDS_BOLD "Bold"
IDS_ITALIC "Italic"
IDS_UNDERLINE "Underline"
IDS_VERTICAL "Vertical"
END END

View file

@ -8,6 +8,8 @@
LANGUAGE LANG_UKRAINIAN, SUBLANG_DEFAULT LANGUAGE LANG_UKRAINIAN, SUBLANG_DEFAULT
//IDB_FONTSTOOLBAR BITMAP "icons/fontstoolbar-uk-UA.bmp"
ID_MENU MENU ID_MENU MENU
BEGIN BEGIN
POPUP "&Файл" POPUP "&Файл"
@ -191,6 +193,17 @@ BEGIN
PUSHBUTTON "Скасувати", IDCANCEL, 170, 24, 48, 14 PUSHBUTTON "Скасувати", IDCANCEL, 170, 24, 48, 14
END END
IDD_FONTS DIALOG 0, 0, 225, 25
CAPTION "Fonts"
STYLE DS_CENTER | DS_MODALFRAME | WS_POPUPWINDOW | WS_CAPTION
EXSTYLE WS_EX_TOOLWINDOW
FONT 8, "MS Shell Dlg"
BEGIN
COMBOBOX IDD_FONTSNAMES, 5, 5, 110, 200, CBS_HASSTRINGS | CBS_DROPDOWN | CBS_AUTOHSCROLL | CBS_SORT | CBS_OWNERDRAWFIXED | WS_VSCROLL | WS_TABSTOP
COMBOBOX IDD_FONTSSIZES, 120, 5, 35, 250, CBS_HASSTRINGS | CBS_DROPDOWN | WS_VSCROLL | WS_TABSTOP
CONTROL "", IDD_FONTSTOOLBAR, "ToolbarWindow32", TBSTYLE_TOOLTIPS | CCS_NODIVIDER | CCS_NOPARENTALIGN | CCS_NOMOVEY, 160, 5, 60, 20
END
STRINGTABLE STRINGTABLE
BEGIN BEGIN
IDS_PROGRAMNAME "Paint" IDS_PROGRAMNAME "Paint"
@ -225,4 +238,8 @@ BEGIN
IDS_ANGLE "The angle must be between -89 and 89." IDS_ANGLE "The angle must be between -89 and 89."
IDS_LOADERRORTEXT "The file %s could not be loaded." IDS_LOADERRORTEXT "The file %s could not be loaded."
IDS_ENLARGEPROMPTTEXT "The image in the clipboard is larger than the bitmap.\nWould you like the bitmap enlarged?" IDS_ENLARGEPROMPTTEXT "The image in the clipboard is larger than the bitmap.\nWould you like the bitmap enlarged?"
IDS_BOLD "Bold"
IDS_ITALIC "Italic"
IDS_UNDERLINE "Underline"
IDS_VERTICAL "Vertical"
END END

View file

@ -8,6 +8,8 @@
LANGUAGE LANG_VIETNAMESE, SUBLANG_VIETNAMESE_VIETNAM LANGUAGE LANG_VIETNAMESE, SUBLANG_VIETNAMESE_VIETNAM
//IDB_FONTSTOOLBAR BITMAP "icons/fontstoolbar-vi-VN.bmp"
ID_MENU MENU ID_MENU MENU
BEGIN BEGIN
POPUP "&Tập tin" POPUP "&Tập tin"
@ -191,6 +193,17 @@ BEGIN
PUSHBUTTON "Hủy", IDCANCEL, 170, 24, 48, 14 PUSHBUTTON "Hủy", IDCANCEL, 170, 24, 48, 14
END END
IDD_FONTS DIALOG 0, 0, 225, 25
CAPTION "Fonts"
STYLE DS_CENTER | DS_MODALFRAME | WS_POPUPWINDOW | WS_CAPTION
EXSTYLE WS_EX_TOOLWINDOW
FONT 8, "MS Shell Dlg"
BEGIN
COMBOBOX IDD_FONTSNAMES, 5, 5, 110, 200, CBS_HASSTRINGS | CBS_DROPDOWN | CBS_AUTOHSCROLL | CBS_SORT | CBS_OWNERDRAWFIXED | WS_VSCROLL | WS_TABSTOP
COMBOBOX IDD_FONTSSIZES, 120, 5, 35, 250, CBS_HASSTRINGS | CBS_DROPDOWN | WS_VSCROLL | WS_TABSTOP
CONTROL "", IDD_FONTSTOOLBAR, "ToolbarWindow32", TBSTYLE_TOOLTIPS | CCS_NODIVIDER | CCS_NOPARENTALIGN | CCS_NOMOVEY, 160, 5, 60, 20
END
STRINGTABLE STRINGTABLE
BEGIN BEGIN
IDS_PROGRAMNAME "Vẽ" IDS_PROGRAMNAME "Vẽ"
@ -225,4 +238,8 @@ BEGIN
IDS_ANGLE "Giá trị của góc phải ở giữa -89 và 89." IDS_ANGLE "Giá trị của góc phải ở giữa -89 và 89."
IDS_LOADERRORTEXT "Không thể tải tập tin %s." IDS_LOADERRORTEXT "Không thể tải tập tin %s."
IDS_ENLARGEPROMPTTEXT "Hình ảnh bạn định dán lớn hơn hình bitmap này.\n Bạn có muốn nới rộng hình bitmap?" IDS_ENLARGEPROMPTTEXT "Hình ảnh bạn định dán lớn hơn hình bitmap này.\n Bạn có muốn nới rộng hình bitmap?"
IDS_BOLD "Bold"
IDS_ITALIC "Italic"
IDS_UNDERLINE "Underline"
IDS_VERTICAL "Vertical"
END END

View file

@ -9,6 +9,8 @@
LANGUAGE LANG_CHINESE, SUBLANG_CHINESE_SIMPLIFIED LANGUAGE LANG_CHINESE, SUBLANG_CHINESE_SIMPLIFIED
//IDB_FONTSTOOLBAR BITMAP "icons/fontstoolbar-zh-CN.bmp"
ID_MENU MENU ID_MENU MENU
BEGIN BEGIN
POPUP "文件(&F)" POPUP "文件(&F)"
@ -192,6 +194,17 @@ BEGIN
PUSHBUTTON "取消", IDCANCEL, 170, 24, 48, 14 PUSHBUTTON "取消", IDCANCEL, 170, 24, 48, 14
END END
IDD_FONTS DIALOG 0, 0, 225, 25
CAPTION "Fonts"
STYLE DS_CENTER | DS_MODALFRAME | WS_POPUPWINDOW | WS_CAPTION
EXSTYLE WS_EX_TOOLWINDOW
FONT 9, "宋体"
BEGIN
COMBOBOX IDD_FONTSNAMES, 5, 5, 110, 200, CBS_HASSTRINGS | CBS_DROPDOWN | CBS_AUTOHSCROLL | CBS_SORT | CBS_OWNERDRAWFIXED | WS_VSCROLL | WS_TABSTOP
COMBOBOX IDD_FONTSSIZES, 120, 5, 35, 250, CBS_HASSTRINGS | CBS_DROPDOWN | WS_VSCROLL | WS_TABSTOP
CONTROL "", IDD_FONTSTOOLBAR, "ToolbarWindow32", TBSTYLE_TOOLTIPS | CCS_NODIVIDER | CCS_NOPARENTALIGN | CCS_NOMOVEY, 160, 5, 60, 20
END
STRINGTABLE STRINGTABLE
BEGIN BEGIN
IDS_PROGRAMNAME "画图" IDS_PROGRAMNAME "画图"
@ -226,4 +239,8 @@ BEGIN
IDS_ANGLE "角度必须在 -89 与 89 之间。" IDS_ANGLE "角度必须在 -89 与 89 之间。"
IDS_LOADERRORTEXT "文件 %s 无法加载。" IDS_LOADERRORTEXT "文件 %s 无法加载。"
IDS_ENLARGEPROMPTTEXT "剪贴板中的图像比位图大。\n你想扩大位图吗?" IDS_ENLARGEPROMPTTEXT "剪贴板中的图像比位图大。\n你想扩大位图吗?"
IDS_BOLD "Bold"
IDS_ITALIC "Italic"
IDS_UNDERLINE "Underline"
IDS_VERTICAL "Vertical"
END END

View file

@ -8,6 +8,8 @@
LANGUAGE LANG_CHINESE, SUBLANG_CHINESE_HONGKONG LANGUAGE LANG_CHINESE, SUBLANG_CHINESE_HONGKONG
//IDB_FONTSTOOLBAR BITMAP "icons/fontstoolbar-zh-HK.bmp"
ID_MENU MENU ID_MENU MENU
BEGIN BEGIN
POPUP "檔案(&F)" POPUP "檔案(&F)"
@ -191,6 +193,17 @@ BEGIN
PUSHBUTTON "取消", IDCANCEL, 170, 24, 48, 14 PUSHBUTTON "取消", IDCANCEL, 170, 24, 48, 14
END END
IDD_FONTS DIALOG 0, 0, 225, 25
CAPTION "Fonts"
STYLE DS_CENTER | DS_MODALFRAME | WS_POPUPWINDOW | WS_CAPTION
EXSTYLE WS_EX_TOOLWINDOW
FONT 9, "新細明體"
BEGIN
COMBOBOX IDD_FONTSNAMES, 5, 5, 110, 200, CBS_HASSTRINGS | CBS_DROPDOWN | CBS_AUTOHSCROLL | CBS_SORT | CBS_OWNERDRAWFIXED | WS_VSCROLL | WS_TABSTOP
COMBOBOX IDD_FONTSSIZES, 120, 5, 35, 250, CBS_HASSTRINGS | CBS_DROPDOWN | WS_VSCROLL | WS_TABSTOP
CONTROL "", IDD_FONTSTOOLBAR, "ToolbarWindow32", TBSTYLE_TOOLTIPS | CCS_NODIVIDER | CCS_NOPARENTALIGN | CCS_NOMOVEY, 160, 5, 60, 20
END
STRINGTABLE STRINGTABLE
BEGIN BEGIN
IDS_PROGRAMNAME "小畫家" IDS_PROGRAMNAME "小畫家"
@ -225,4 +238,8 @@ BEGIN
IDS_ANGLE "角度必須介乎 -89 至 89 之間。" IDS_ANGLE "角度必須介乎 -89 至 89 之間。"
IDS_LOADERRORTEXT "無法載入檔案 %s。" IDS_LOADERRORTEXT "無法載入檔案 %s。"
IDS_ENLARGEPROMPTTEXT "剪貼簿中的圖像比點陣圖大。\n你要擴大點陣圖嗎" IDS_ENLARGEPROMPTTEXT "剪貼簿中的圖像比點陣圖大。\n你要擴大點陣圖嗎"
IDS_BOLD "Bold"
IDS_ITALIC "Italic"
IDS_UNDERLINE "Underline"
IDS_VERTICAL "Vertical"
END END

View file

@ -9,6 +9,8 @@
LANGUAGE LANG_CHINESE, SUBLANG_CHINESE_TRADITIONAL LANGUAGE LANG_CHINESE, SUBLANG_CHINESE_TRADITIONAL
//IDB_FONTSTOOLBAR BITMAP "icons/fontstoolbar-zh-TW.bmp"
ID_MENU MENU ID_MENU MENU
BEGIN BEGIN
POPUP "檔案(&F)" POPUP "檔案(&F)"
@ -192,6 +194,17 @@ BEGIN
PUSHBUTTON "取消", IDCANCEL, 170, 24, 48, 14 PUSHBUTTON "取消", IDCANCEL, 170, 24, 48, 14
END END
IDD_FONTS DIALOG 0, 0, 225, 25
CAPTION "Fonts"
STYLE DS_CENTER | DS_MODALFRAME | WS_POPUPWINDOW | WS_CAPTION
EXSTYLE WS_EX_TOOLWINDOW
FONT 9, "新細明體"
BEGIN
COMBOBOX IDD_FONTSNAMES, 5, 5, 110, 200, CBS_HASSTRINGS | CBS_DROPDOWN | CBS_AUTOHSCROLL | CBS_SORT | CBS_OWNERDRAWFIXED | WS_VSCROLL | WS_TABSTOP
COMBOBOX IDD_FONTSSIZES, 120, 5, 35, 250, CBS_HASSTRINGS | CBS_DROPDOWN | WS_VSCROLL | WS_TABSTOP
CONTROL "", IDD_FONTSTOOLBAR, "ToolbarWindow32", TBSTYLE_TOOLTIPS | CCS_NODIVIDER | CCS_NOPARENTALIGN | CCS_NOMOVEY, 160, 5, 60, 20
END
STRINGTABLE STRINGTABLE
BEGIN BEGIN
IDS_PROGRAMNAME "畫圖" IDS_PROGRAMNAME "畫圖"
@ -226,4 +239,8 @@ BEGIN
IDS_ANGLE "角度必須介於 -89 和 89 之間。" IDS_ANGLE "角度必須介於 -89 和 89 之間。"
IDS_LOADERRORTEXT "無法載入檔案 %s。" IDS_LOADERRORTEXT "無法載入檔案 %s。"
IDS_ENLARGEPROMPTTEXT "剪貼簿中的圖像比點陣圖大。\n你想擴大點陣圖嗎?" IDS_ENLARGEPROMPTTEXT "剪貼簿中的圖像比點陣圖大。\n你想擴大點陣圖嗎?"
IDS_BOLD "Bold"
IDS_ITALIC "Italic"
IDS_UNDERLINE "Underline"
IDS_VERTICAL "Vertical"
END END

View file

@ -171,7 +171,10 @@ _tWinMain (HINSTANCE hThisInstance, HINSTANCE hPrevInstance, LPTSTR lpszArgument
hProgInstance = hThisInstance; hProgInstance = hThisInstance;
/* initialize common controls library */ /* initialize common controls library */
InitCommonControls(); INITCOMMONCONTROLSEX iccx;
iccx.dwSize = sizeof(iccx);
iccx.dwICC = ICC_STANDARD_CLASSES | ICC_USEREX_CLASSES;
InitCommonControlsEx(&iccx);
LoadString(hThisInstance, IDS_DEFAULTFILENAME, filepathname, _countof(filepathname)); LoadString(hThisInstance, IDS_DEFAULTFILENAME, filepathname, _countof(filepathname));
CPath pathFileName(filepathname); CPath pathFileName(filepathname);
@ -256,6 +259,8 @@ _tWinMain (HINSTANCE hThisInstance, HINSTANCE hPrevInstance, LPTSTR lpszArgument
DoLoadImageFile(mainWindow, __targv[1], TRUE); DoLoadImageFile(mainWindow, __targv[1], TRUE);
} }
imageModel.ClearHistory();
/* initializing the CHOOSECOLOR structure for use with ChooseColor */ /* initializing the CHOOSECOLOR structure for use with ChooseColor */
ZeroMemory(&choosecolor, sizeof(choosecolor)); ZeroMemory(&choosecolor, sizeof(choosecolor));
choosecolor.lStructSize = sizeof(CHOOSECOLOR); choosecolor.lStructSize = sizeof(CHOOSECOLOR);
@ -327,10 +332,6 @@ _tWinMain (HINSTANCE hThisInstance, HINSTANCE hPrevInstance, LPTSTR lpszArgument
/* by moving the window, the things in WM_SIZE are done */ /* by moving the window, the things in WM_SIZE are done */
mainWindow.SetWindowPlacement(&(registrySettings.WindowPlacement)); mainWindow.SetWindowPlacement(&(registrySettings.WindowPlacement));
/* creating the text editor window for the text tool */
RECT textEditWindowPos = {300, 0, 300 + 300, 0 + 200};
textEditWindow.Create(hwnd, textEditWindowPos, NULL, WS_OVERLAPPEDWINDOW);
/* Make the window visible on the screen */ /* Make the window visible on the screen */
ShowWindow (hwnd, nFunsterStil); ShowWindow (hwnd, nFunsterStil);
@ -340,6 +341,9 @@ _tWinMain (HINSTANCE hThisInstance, HINSTANCE hPrevInstance, LPTSTR lpszArgument
/* Run the message loop. It will run until GetMessage() returns 0 */ /* Run the message loop. It will run until GetMessage() returns 0 */
while (GetMessage(&messages, NULL, 0, 0)) while (GetMessage(&messages, NULL, 0, 0))
{ {
if (fontsDialog.IsWindow() && IsDialogMessage(fontsDialog, &messages))
continue;
TranslateAccelerator(hwnd, haccel, &messages); TranslateAccelerator(hwnd, haccel, &messages);
/* Translate virtual-key messages into character messages */ /* Translate virtual-key messages into character messages */

View file

@ -366,12 +366,7 @@ struct TextTool : ToolBase
{ {
} }
void OnButtonDown(BOOL bLeftButton, LONG x, LONG y, BOOL bDoubleClick) void UpdatePoint(LONG x, LONG y)
{
imageModel.CopyPrevious();
}
void OnMouseMove(BOOL bLeftButton, LONG x, LONG y)
{ {
POINT temp; POINT temp;
imageModel.ResetToPrevious(); imageModel.ResetToPrevious();
@ -381,16 +376,78 @@ struct TextTool : ToolBase
RectSel(m_hdc, start.x, start.y, temp.x, temp.y); RectSel(m_hdc, start.x, start.y, temp.x, temp.y);
} }
void OnButtonDown(BOOL bLeftButton, LONG x, LONG y, BOOL bDoubleClick)
{
if (!textEditWindow.IsWindow())
textEditWindow.Create(imageArea);
imageModel.CopyPrevious();
UpdatePoint(x, y);
}
void OnMouseMove(BOOL bLeftButton, LONG x, LONG y)
{
UpdatePoint(x, y);
}
void OnButtonUp(BOOL bLeftButton, LONG x, LONG y) void OnButtonUp(BOOL bLeftButton, LONG x, LONG y)
{ {
imageModel.ResetToPrevious(); imageModel.ResetToPrevious();
BOOL bTextBoxShown = textEditWindow.IsWindowVisible();
if (bTextBoxShown && textEditWindow.GetWindowTextLength() > 0)
{
CString szText;
textEditWindow.GetWindowText(szText);
RECT rc;
textEditWindow.InvalidateEditRect();
textEditWindow.GetEditRect(&rc);
INT style = (toolsModel.IsBackgroundTransparent() ? 0 : 1);
Text(m_hdc, rc.left, rc.top, rc.right, rc.bottom, m_fg, m_bg, szText,
textEditWindow.GetFont(), style);
}
if (registrySettings.ShowTextTool)
{
if (!fontsDialog.IsWindow())
fontsDialog.Create(mainWindow);
fontsDialog.ShowWindow(SW_SHOWNOACTIVATE);
}
if (!bTextBoxShown || selectionModel.IsSrcRectSizeNonzero())
{
RECT rc;
selectionModel.GetRect(&rc);
// Enlarge if tool small
INT cxMin = CX_MINTEXTEDIT, cyMin = CY_MINTEXTEDIT;
if (selectionModel.IsSrcRectSizeNonzero()) if (selectionModel.IsSrcRectSizeNonzero())
{ {
imageModel.CopyPrevious(); if (rc.right - rc.left < cxMin)
rc.right = rc.left + cxMin;
if (rc.bottom - rc.top < cyMin)
rc.bottom = rc.top + cyMin;
}
else
{
SetRect(&rc, x, y, x + cxMin, y + cyMin);
}
placeSelWin(); if (!textEditWindow.IsWindow())
selectionWindow.ShowWindow(SW_SHOW); textEditWindow.Create(imageArea);
ForceRefreshSelectionContents();
textEditWindow.SetWindowText(NULL);
textEditWindow.ValidateEditRect(&rc);
textEditWindow.ShowWindow(SW_SHOWNOACTIVATE);
textEditWindow.SetFocus();
}
else
{
textEditWindow.ShowWindow(SW_HIDE);
textEditWindow.SetWindowText(NULL);
} }
} }
@ -398,6 +455,8 @@ struct TextTool : ToolBase
{ {
imageModel.ResetToPrevious(); imageModel.ResetToPrevious();
selectionModel.ResetPtStack(); selectionModel.ResetPtStack();
textEditWindow.SetWindowText(NULL);
textEditWindow.ShowWindow(SW_HIDE);
ToolBase::OnCancelDraw(); ToolBase::OnCancelDraw();
} }
}; };

View file

@ -97,6 +97,8 @@ void PaletteModel::NotifyColorChanged()
{ {
paletteWindow.SendMessage(WM_PALETTEMODELCOLORCHANGED); paletteWindow.SendMessage(WM_PALETTEMODELCOLORCHANGED);
selectionWindow.SendMessage(WM_PALETTEMODELCOLORCHANGED); selectionWindow.SendMessage(WM_PALETTEMODELCOLORCHANGED);
if (textEditWindow.IsWindow())
textEditWindow.SendMessage(WM_PALETTEMODELCOLORCHANGED);
} }
void PaletteModel::NotifyPaletteChanged() void PaletteModel::NotifyPaletteChanged()

View file

@ -50,6 +50,7 @@
#include "toolsettings.h" #include "toolsettings.h"
#include "toolsmodel.h" #include "toolsmodel.h"
#include "winproc.h" #include "winproc.h"
#include "dialogs.h"
#include "common.h" #include "common.h"
#endif /* _MSPAINT_H */ #endif /* _MSPAINT_H */

View file

@ -25,13 +25,18 @@ static DWORD ReadDWORD(CRegKey &key, LPCTSTR lpName, DWORD &dwValue, BOOL bCheck
return dwPrev; return dwPrev;
} }
static void ReadFileHistory(CRegKey &key, LPCTSTR lpName, CString &strFile) static void ReadString(CRegKey &key, LPCTSTR lpName, CString &strValue, LPCTSTR lpDefault = TEXT(""))
{ {
CString strTemp;
ULONG nChars = MAX_PATH; ULONG nChars = MAX_PATH;
LPTSTR szFile = strFile.GetBuffer(nChars); LPTSTR psz = strTemp.GetBuffer(nChars);
if (key.QueryStringValue(lpName, szFile, &nChars) != ERROR_SUCCESS) LONG error = key.QueryStringValue(lpName, psz, &nChars);
szFile[0] = '\0'; strTemp.ReleaseBuffer();
strFile.ReleaseBuffer();
if (error == ERROR_SUCCESS)
strValue = strTemp;
else
strValue = lpDefault;
} }
void RegistrySettings::SetWallpaper(LPCTSTR szFileName, RegistrySettings::WallpaperStyle style) void RegistrySettings::SetWallpaper(LPCTSTR szFileName, RegistrySettings::WallpaperStyle style)
@ -61,15 +66,20 @@ void RegistrySettings::LoadPresets()
ThumbXPos = 180; ThumbXPos = 180;
ThumbYPos = 200; ThumbYPos = 200;
UnitSetting = 0; UnitSetting = 0;
const WINDOWPLACEMENT DefaultWindowPlacement = { Bold = FALSE;
sizeof(WINDOWPLACEMENT), Italic = FALSE;
0, Underline = FALSE;
SW_SHOWNORMAL, CharSet = DEFAULT_CHARSET;
{0, 0}, PointSize = 14;
{-1, -1}, FontsPositionX = 0;
{100, 100, 700, 550} FontsPositionY = 0;
}; ShowTextTool = TRUE;
WindowPlacement = DefaultWindowPlacement;
LOGFONT lf;
GetObject(GetStockObject(DEFAULT_GUI_FONT), sizeof(lf), &lf);
strFontName = lf.lfFaceName;
ZeroMemory(&WindowPlacement, sizeof(WindowPlacement));
} }
void RegistrySettings::Load() void RegistrySettings::Load()
@ -98,10 +108,24 @@ void RegistrySettings::Load()
CRegKey files; CRegKey files;
if (files.Open(HKEY_CURRENT_USER, _T("Software\\Microsoft\\Windows\\CurrentVersion\\Applets\\Paint\\Recent File List"), KEY_READ) == ERROR_SUCCESS) if (files.Open(HKEY_CURRENT_USER, _T("Software\\Microsoft\\Windows\\CurrentVersion\\Applets\\Paint\\Recent File List"), KEY_READ) == ERROR_SUCCESS)
{ {
ReadFileHistory(files, _T("File1"), strFile1); ReadString(files, _T("File1"), strFile1);
ReadFileHistory(files, _T("File2"), strFile2); ReadString(files, _T("File2"), strFile2);
ReadFileHistory(files, _T("File3"), strFile3); ReadString(files, _T("File3"), strFile3);
ReadFileHistory(files, _T("File4"), strFile4); ReadString(files, _T("File4"), strFile4);
}
CRegKey text;
if (text.Open(HKEY_CURRENT_USER, _T("Software\\Microsoft\\Windows\\CurrentVersion\\Applets\\Paint\\Text"), KEY_READ) == ERROR_SUCCESS)
{
ReadDWORD(text, _T("Bold"), Bold, FALSE);
ReadDWORD(text, _T("Italic"), Italic, FALSE);
ReadDWORD(text, _T("Underline"), Underline, FALSE);
ReadDWORD(text, _T("CharSet"), CharSet, FALSE);
ReadDWORD(text, _T("PointSize"), PointSize, FALSE);
ReadDWORD(text, _T("PositionX"), FontsPositionX, FALSE);
ReadDWORD(text, _T("PositionY"), FontsPositionY, FALSE);
ReadDWORD(text, _T("ShowTextTool"), ShowTextTool, FALSE);
ReadString(text, _T("TypeFaceName"), strFontName, strFontName);
} }
// Fix the bitmap size if too large // Fix the bitmap size if too large
@ -144,6 +168,20 @@ void RegistrySettings::Store()
if (!strFile4.IsEmpty()) if (!strFile4.IsEmpty())
files.SetStringValue(_T("File4"), strFile4); files.SetStringValue(_T("File4"), strFile4);
} }
CRegKey text;
if (text.Create(HKEY_CURRENT_USER, _T("Software\\Microsoft\\Windows\\CurrentVersion\\Applets\\Paint\\Text")) == ERROR_SUCCESS)
{
text.SetDWORDValue(_T("Bold"), Bold);
text.SetDWORDValue(_T("Italic"), Italic);
text.SetDWORDValue(_T("Underline"), Underline);
text.SetDWORDValue(_T("CharSet"), CharSet);
text.SetDWORDValue(_T("PointSize"), PointSize);
text.SetDWORDValue(_T("PositionX"), FontsPositionX);
text.SetDWORDValue(_T("PositionY"), FontsPositionY);
text.SetDWORDValue(_T("ShowTextTool"), ShowTextTool);
text.SetStringValue(_T("TypeFaceName"), strFontName);
}
} }
void RegistrySettings::SetMostRecentFile(LPCTSTR szPathName) void RegistrySettings::SetMostRecentFile(LPCTSTR szPathName)

View file

@ -32,6 +32,16 @@ public:
CString strFile3; CString strFile3;
CString strFile4; CString strFile4;
CString strFontName;
DWORD PointSize;
DWORD Bold;
DWORD Italic;
DWORD Underline;
DWORD CharSet;
DWORD FontsPositionX;
DWORD FontsPositionY;
DWORD ShowTextTool;
enum WallpaperStyle { enum WallpaperStyle {
TILED, TILED,
CENTERED, CENTERED,

View file

@ -13,6 +13,7 @@
#define IDI_APPICON 500 #define IDI_APPICON 500
#define IDB_TOOLBARICONS 510 #define IDB_TOOLBARICONS 510
#define IDB_FONTSTOOLBAR 511
#define IDI_TRANSPARENT 526 #define IDI_TRANSPARENT 526
#define IDI_NONTRANSPARENT 527 #define IDI_NONTRANSPARENT 527
@ -96,6 +97,11 @@
#define IDM_HELPHELPTOPICS 270 #define IDM_HELPHELPTOPICS 270
#define IDM_HELPINFO 271 #define IDM_HELPINFO 271
#define IDM_BOLD 280
#define IDM_ITALIC 281
#define IDM_UNDERLINE 282
#define IDM_VERTICAL 283
/* the following 16 numbers need to be in order, increasing by 1 */ /* the following 16 numbers need to be in order, increasing by 1 */
#define ID_FREESEL 600 #define ID_FREESEL 600
#define ID_RECTSEL 601 #define ID_RECTSEL 601
@ -165,6 +171,11 @@
#define IDD_STRETCHSKEWEDITVSKEW 757 #define IDD_STRETCHSKEWEDITVSKEW 757
#define IDD_STRETCHSKEWTEXTVDEG 758 #define IDD_STRETCHSKEWTEXTVDEG 758
#define IDD_FONTS 760
#define IDD_FONTSNAMES 761
#define IDD_FONTSSIZES 762
#define IDD_FONTSTOOLBAR 764
#define IDS_PROGRAMNAME 900 #define IDS_PROGRAMNAME 900
#define IDS_WINDOWTITLE 901 #define IDS_WINDOWTITLE 901
#define IDS_INFOTITLE 902 #define IDS_INFOTITLE 902
@ -202,3 +213,8 @@
#define IDS_LOADERRORTEXT 933 #define IDS_LOADERRORTEXT 933
#define IDS_ENLARGEPROMPTTEXT 934 #define IDS_ENLARGEPROMPTTEXT 934
#define IDS_BOLD 935
#define IDS_ITALIC 936
#define IDS_UNDERLINE 937
#define IDS_VERTICAL 938

View file

@ -10,6 +10,7 @@
#include <windef.h> #include <windef.h>
#include <winuser.h> #include <winuser.h>
#include <commctrl.h>
#include "resource.h" #include "resource.h"

View file

@ -347,3 +347,8 @@ void SelectionModel::NotifyRefreshNeeded()
{ {
selectionWindow.SendMessage(WM_SELECTIONMODELREFRESHNEEDED); selectionWindow.SendMessage(WM_SELECTIONMODELREFRESHNEEDED);
} }
void SelectionModel::GetRect(LPRECT prc) const
{
*prc = m_rcDest;
}

View file

@ -65,6 +65,7 @@ public:
LONG GetDestRectHeight() const; LONG GetDestRectHeight() const;
LONG GetDestRectLeft() const; LONG GetDestRectLeft() const;
LONG GetDestRectTop() const; LONG GetDestRectTop() const;
void GetRect(LPRECT prc) const;
void DrawTextToolText(HDC hDCImage, COLORREF crFg, COLORREF crBg, BOOL bBgTransparent = FALSE); void DrawTextToolText(HDC hDCImage, COLORREF crFg, COLORREF crBg, BOOL bBgTransparent = FALSE);
private: private:

View file

@ -10,50 +10,502 @@
#include "precomp.h" #include "precomp.h"
#define CXY_GRIP 3
/* FUNCTIONS ********************************************************/ /* FUNCTIONS ********************************************************/
LRESULT CTextEditWindow::OnCreate(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
CTextEditWindow::CTextEditWindow() : m_hFont(NULL), m_hFontZoomed(NULL), m_nAppIsMovingOrSizing(0)
{ {
/* creating the edit control within the editor window */ SetRectEmpty(&m_rc);
RECT editControlPos = {0, 0, 0 + 100, 0 + 100}; }
editControl.Create(_T("EDIT"), m_hWnd, editControlPos, NULL,
WS_CHILD | WS_VISIBLE | WS_BORDER | WS_HSCROLL | WS_VSCROLL | ES_MULTILINE | ES_NOHIDESEL | ES_AUTOHSCROLL | ES_AUTOVSCROLL, #define X0 rc.left
WS_EX_CLIENTEDGE); #define X1 ((rc.left + rc.right - CXY_GRIP) / 2)
#define X2 (rc.right - CXY_GRIP)
#define Y0 rc.top
#define Y1 ((rc.top + rc.bottom - CXY_GRIP) / 2)
#define Y2 (rc.bottom - CXY_GRIP)
#define RECT0 X0, Y0, X0 + CXY_GRIP, Y0 + CXY_GRIP // Upper Left
#define RECT1 X1, Y0, X1 + CXY_GRIP, Y0 + CXY_GRIP // Top
#define RECT2 X2, Y0, X2 + CXY_GRIP, Y0 + CXY_GRIP // Upper Right
#define RECT3 X0, Y1, X0 + CXY_GRIP, Y1 + CXY_GRIP // Left
#define RECT4 X2, Y1, X2 + CXY_GRIP, Y1 + CXY_GRIP // Right
#define RECT5 X0, Y2, X0 + CXY_GRIP, Y2 + CXY_GRIP // Lower Left
#define RECT6 X1, Y2, X1 + CXY_GRIP, Y2 + CXY_GRIP // Bottom
#define RECT7 X2, Y2, X2 + CXY_GRIP, Y2 + CXY_GRIP // Lower Right
INT CTextEditWindow::DoHitTest(RECT& rc, POINT pt)
{
RECT rcGrip;
SetRect(&rcGrip, RECT0);
if (PtInRect(&rcGrip, pt))
return HTTOPLEFT;
SetRect(&rcGrip, RECT1);
if (PtInRect(&rcGrip, pt))
return HTTOP;
SetRect(&rcGrip, RECT2);
if (PtInRect(&rcGrip, pt))
return HTTOPRIGHT;
SetRect(&rcGrip, RECT3);
if (PtInRect(&rcGrip, pt))
return HTLEFT;
SetRect(&rcGrip, RECT4);
if (PtInRect(&rcGrip, pt))
return HTRIGHT;
SetRect(&rcGrip, RECT5);
if (PtInRect(&rcGrip, pt))
return HTBOTTOMLEFT;
SetRect(&rcGrip, RECT6);
if (PtInRect(&rcGrip, pt))
return HTBOTTOM;
SetRect(&rcGrip, RECT7);
if (PtInRect(&rcGrip, pt))
return HTBOTTOMRIGHT;
// On border line?
RECT rcInner = rc;
InflateRect(&rcInner, -3, -3);
if (!PtInRect(&rcInner, pt) && PtInRect(&rc, pt))
return HTCAPTION;
return HTCLIENT;
}
void CTextEditWindow::DrawGrip(HDC hDC, RECT& rc)
{
HGDIOBJ hbrOld = SelectObject(hDC, GetStockObject(NULL_BRUSH));
HPEN hPen = CreatePen(PS_DOT, 1, GetSysColor(COLOR_HIGHLIGHT));
HGDIOBJ hPenOld = SelectObject(hDC, hPen);
InflateRect(&rc, -1, -1);
Rectangle(hDC, rc.left, rc.top, rc.right, rc.bottom);
InflateRect(&rc, 1, 1);
SelectObject(hDC, hPenOld);
SelectObject(hDC, hbrOld);
DeleteObject(hPen);
RECT rcGrip;
HBRUSH hbrHighlight = GetSysColorBrush(COLOR_HIGHLIGHT);
SetRect(&rcGrip, RECT0);
FillRect(hDC, &rcGrip, hbrHighlight);
SetRect(&rcGrip, RECT1);
FillRect(hDC, &rcGrip, hbrHighlight);
SetRect(&rcGrip, RECT2);
FillRect(hDC, &rcGrip, hbrHighlight);
SetRect(&rcGrip, RECT3);
FillRect(hDC, &rcGrip, hbrHighlight);
SetRect(&rcGrip, RECT4);
FillRect(hDC, &rcGrip, hbrHighlight);
SetRect(&rcGrip, RECT5);
FillRect(hDC, &rcGrip, hbrHighlight);
SetRect(&rcGrip, RECT6);
FillRect(hDC, &rcGrip, hbrHighlight);
SetRect(&rcGrip, RECT7);
FillRect(hDC, &rcGrip, hbrHighlight);
}
void CTextEditWindow::FixEditPos(LPCTSTR pszOldText)
{
CString szText;
GetWindowText(szText);
RECT rcParent;
::GetWindowRect(m_hwndParent, &rcParent);
RECT rc, rcWnd, rcText;
GetWindowRect(&rcWnd);
rcText = rcWnd;
HDC hDC = GetDC();
if (hDC)
{
SelectObject(hDC, m_hFontZoomed);
TEXTMETRIC tm;
GetTextMetrics(hDC, &tm);
szText += TEXT("x"); // This is a trick to enable the last newlines
const UINT uFormat = DT_LEFT | DT_TOP | DT_EDITCONTROL | DT_NOPREFIX | DT_NOCLIP |
DT_EXPANDTABS | DT_WORDBREAK;
DrawText(hDC, szText, -1, &rcText, uFormat | DT_CALCRECT);
if (tm.tmDescent > 0)
rcText.bottom += tm.tmDescent;
ReleaseDC(hDC);
}
UnionRect(&rc, &rcText, &rcWnd);
::MapWindowPoints(NULL, m_hwndParent, (LPPOINT)&rc, 2);
rcWnd = rc;
::GetClientRect(m_hwndParent, &rcParent);
IntersectRect(&rc, &rcParent, &rcWnd);
++m_nAppIsMovingOrSizing;
MoveWindow(rc.left, rc.top, rc.right - rc.left, rc.bottom - rc.top, FALSE);
--m_nAppIsMovingOrSizing;
DefWindowProc(WM_HSCROLL, SB_LEFT, 0);
DefWindowProc(WM_VSCROLL, SB_TOP, 0);
::InvalidateRect(m_hwndParent, &rc, TRUE);
}
LRESULT CTextEditWindow::OnChar(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
{
if (wParam == VK_TAB)
return 0; // FIXME: Tabs
CString szText;
GetWindowText(szText);
LRESULT ret = DefWindowProc(nMsg, wParam, lParam);
FixEditPos(szText);
return ret;
}
LRESULT CTextEditWindow::OnKeyDown(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
{
if (wParam == VK_ESCAPE)
{
toolsModel.OnCancelDraw();
return 0; return 0;
}
CString szText;
GetWindowText(szText);
LRESULT ret = DefWindowProc(nMsg, wParam, lParam);
FixEditPos(szText);
return ret;
}
LRESULT CTextEditWindow::OnLButtonDown(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
{
LRESULT ret = DefWindowProc(nMsg, wParam, lParam);
DefWindowProc(WM_HSCROLL, SB_LEFT, 0);
DefWindowProc(WM_VSCROLL, SB_TOP, 0);
return ret;
}
LRESULT CTextEditWindow::OnEraseBkGnd(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
{
HDC hDC = (HDC)wParam;
if (!toolsModel.IsBackgroundTransparent())
{
RECT rc;
GetClientRect(&rc);
HBRUSH hbr = CreateSolidBrush(paletteModel.GetBgColor());
FillRect(hDC, &rc, hbr);
DeleteObject(hbr);
}
SetTextColor(hDC, paletteModel.GetFgColor());
return TRUE;
}
LRESULT CTextEditWindow::OnPaint(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
{
RECT rc;
GetClientRect(&rc);
DefWindowProc(nMsg, wParam, lParam);
HDC hDC = GetDC();
if (hDC)
{
DrawGrip(hDC, rc);
ReleaseDC(hDC);
}
return 0;
}
LRESULT CTextEditWindow::OnNCPaint(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
{
RECT rc;
GetWindowRect(&rc);
HDC hDC = GetDCEx(NULL, DCX_WINDOW | DCX_PARENTCLIP);
if (hDC)
{
OffsetRect(&rc, -rc.left, -rc.top);
DrawGrip(hDC, rc);
ReleaseDC(hDC);
}
return 0;
}
LRESULT CTextEditWindow::OnNCCalcSize(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
{
return 0; // No frame.
}
LRESULT CTextEditWindow::OnNCHitTest(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
{
POINT pt = { GET_X_LPARAM(lParam), GET_Y_LPARAM(lParam) };
RECT rc;
GetWindowRect(&rc);
return DoHitTest(rc, pt);
}
LRESULT CTextEditWindow::OnSetCursor(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
{
UINT nHitTest = LOWORD(lParam);
if (nHitTest == HTCAPTION)
{
SetCursor(LoadCursor(NULL, IDC_SIZEALL));
return FALSE;
}
return DefWindowProc(nMsg, wParam, lParam);
}
LRESULT CTextEditWindow::OnMove(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
{
LRESULT ret = DefWindowProc(nMsg, wParam, lParam);
if (m_nAppIsMovingOrSizing == 0)
{
Reposition();
InvalidateEditRect();
}
return ret;
} }
LRESULT CTextEditWindow::OnSize(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled) LRESULT CTextEditWindow::OnSize(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
{ {
RECT clientRect; LRESULT ret = DefWindowProc(nMsg, wParam, lParam);
GetClientRect(&clientRect);
editControl.MoveWindow(clientRect.left, clientRect.top, RECT_WIDTH(clientRect), RECT_HEIGHT(clientRect), TRUE); RECT rc;
GetClientRect(&rc);
SendMessage(EM_SETRECTNP, 0, (LPARAM)&rc);
SendMessage(EM_SETMARGINS, EC_LEFTMARGIN | EC_RIGHTMARGIN, MAKELONG(0, 0));
if (m_nAppIsMovingOrSizing == 0)
{
Reposition();
InvalidateEditRect();
}
return ret;
}
// Hack: Use DECLARE_WND_SUPERCLASS instead!
HWND CTextEditWindow::Create(HWND hwndParent)
{
m_hwndParent = hwndParent;
const DWORD style = ES_LEFT | ES_MULTILINE | ES_WANTRETURN | ES_AUTOVSCROLL |
WS_CHILD | WS_THICKFRAME;
m_hWnd = ::CreateWindowEx(0, WC_EDIT, NULL, style, 0, 0, 0, 0,
hwndParent, NULL, hProgInstance, NULL);
if (m_hWnd)
{
#undef SubclassWindow // Don't use this macro
SubclassWindow(m_hWnd);
UpdateFont();
PostMessage(WM_SIZE, 0, 0);
}
return m_hWnd;
}
void CTextEditWindow::DoFillBack(HWND hwnd, HDC hDC)
{
if (toolsModel.IsBackgroundTransparent())
return;
RECT rc;
SendMessage(EM_GETRECT, 0, (LPARAM)&rc);
MapWindowPoints(hwnd, (LPPOINT)&rc, 2);
HBRUSH hbr = CreateSolidBrush(paletteModel.GetBgColor());
FillRect(hDC, &rc, hbr);
DeleteObject(hbr);
}
LRESULT CTextEditWindow::OnCreate(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
{
UpdateFont();
return 0; return 0;
} }
LRESULT CTextEditWindow::OnClose(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled) LRESULT CTextEditWindow::OnClose(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
{ {
ShowWindow(SW_HIDE); ShowWindow(SW_HIDE);
if (m_hFont)
{
DeleteObject(m_hFont);
m_hFont = NULL;
}
if (m_hFontZoomed)
{
DeleteObject(m_hFontZoomed);
m_hFontZoomed = NULL;
}
return 0; return 0;
} }
LRESULT CTextEditWindow::OnCommand(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled) void CTextEditWindow::InvalidateEditRect()
{ {
switch(HIWORD(wParam)) RECT rc;
{ GetWindowRect(&rc);
case EN_UPDATE: ::MapWindowPoints(NULL, m_hwndParent, (LPPOINT)&rc, 2);
{ ::InvalidateRect(m_hwndParent, &rc, TRUE);
HeapFree(GetProcessHeap(), 0, textToolText);
textToolTextMaxLen = editControl.GetWindowTextLength() + 1; GetClientRect(&rc);
textToolText = (LPTSTR) HeapAlloc(GetProcessHeap(), HEAP_GENERATE_EXCEPTIONS, sizeof(TCHAR) * textToolTextMaxLen); MapWindowPoints(imageArea, (LPPOINT)&rc, 2);
editControl.GetWindowText(textToolText, textToolTextMaxLen); rc.left = UnZoomed(rc.left);
ForceRefreshSelectionContents(); rc.top = UnZoomed(rc.top);
break; rc.right = UnZoomed(rc.right);
} rc.bottom = UnZoomed(rc.bottom);
} m_rc = rc;
}
LRESULT CTextEditWindow::OnPaletteModelColorChanged(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
{
UpdateFont();
return 0;
}
LRESULT CTextEditWindow::OnToolsModelSettingsChanged(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
{
UpdateFont();
return 0;
}
LRESULT CTextEditWindow::OnToolsModelZoomChanged(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
{
UpdateFont();
ValidateEditRect(NULL);
return 0; return 0;
} }
LRESULT CTextEditWindow::OnToolsModelToolChanged(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled) LRESULT CTextEditWindow::OnToolsModelToolChanged(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
{ {
ShowWindow((wParam == TOOL_TEXT) ? SW_SHOW : SW_HIDE); if (wParam == TOOL_TEXT)
{
UpdateFont();
}
else
{
ShowWindow(SW_HIDE);
}
return 0; return 0;
} }
void CTextEditWindow::UpdateFont()
{
if (m_hFont)
{
DeleteObject(m_hFont);
m_hFont = NULL;
}
if (m_hFontZoomed)
{
DeleteObject(m_hFontZoomed);
m_hFontZoomed = NULL;
}
LOGFONT lf;
ZeroMemory(&lf, sizeof(lf));
lf.lfCharSet = DEFAULT_CHARSET; // registrySettings.CharSet; // Ignore
lf.lfWeight = (registrySettings.Bold ? FW_BOLD : FW_NORMAL);
lf.lfItalic = registrySettings.Italic;
lf.lfUnderline = registrySettings.Underline;
lstrcpyn(lf.lfFaceName, registrySettings.strFontName, _countof(lf.lfFaceName));
HDC hdc = GetDC();
if (hdc)
{
INT nFontSize = registrySettings.PointSize;
lf.lfHeight = -MulDiv(nFontSize, GetDeviceCaps(hdc, LOGPIXELSY), 72);
ReleaseDC(hdc);
}
m_hFont = ::CreateFontIndirect(&lf);
lf.lfHeight = Zoomed(lf.lfHeight);
m_hFontZoomed = ::CreateFontIndirect(&lf);
SetWindowFont(m_hWnd, m_hFontZoomed, TRUE);
DefWindowProc(EM_SETMARGINS, EC_LEFTMARGIN | EC_RIGHTMARGIN, MAKELONG(0, 0));
FixEditPos(NULL);
Invalidate();
}
LRESULT CTextEditWindow::OnSetSel(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
{
LRESULT ret = DefWindowProc(nMsg, wParam, lParam);
DefWindowProc(WM_HSCROLL, SB_LEFT, 0);
DefWindowProc(WM_VSCROLL, SB_TOP, 0);
InvalidateEditRect();
return ret;
}
BOOL CTextEditWindow::GetEditRect(LPRECT prc) const
{
*prc = m_rc;
return TRUE;
}
void CTextEditWindow::ValidateEditRect(LPCRECT prc OPTIONAL)
{
if (prc)
m_rc = *prc;
INT x0 = Zoomed(m_rc.left), y0 = Zoomed(m_rc.top);
INT x1 = Zoomed(m_rc.right), y1 = Zoomed(m_rc.bottom);
++m_nAppIsMovingOrSizing;
MoveWindow(x0, y0, x1 - x0, y1 - y0, TRUE);
--m_nAppIsMovingOrSizing;
}
void CTextEditWindow::Reposition()
{
RECT rc, rcImage;
GetWindowRect(&rc);
::MapWindowPoints(NULL, imageArea, (LPPOINT)&rc, 2);
imageArea.GetClientRect(&rcImage);
if (rc.bottom > rcImage.bottom)
{
rc.top = rcImage.bottom - (rc.bottom - rc.top);
rc.bottom = rcImage.bottom;
}
if (rc.right > rcImage.right)
{
rc.left = rcImage.right - (rc.right - rc.left);
rc.right = rcImage.right;
}
if (rc.left < 0)
{
rc.right += -rc.left;
rc.left = 0;
}
if (rc.top < 0)
{
rc.bottom += -rc.top;
rc.top = 0;
}
++m_nAppIsMovingOrSizing;
MoveWindow(rc.left, rc.top, rc.right - rc.left, rc.bottom - rc.top, TRUE);
--m_nAppIsMovingOrSizing;
}
LRESULT CTextEditWindow::OnMouseWheel(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
{
return ::SendMessage(GetParent(), nMsg, wParam, lParam);
}

View file

@ -8,24 +8,73 @@
#pragma once #pragma once
#define CX_MINTEXTEDIT 100
#define CY_MINTEXTEDIT 24
class CTextEditWindow : public CWindowImpl<CTextEditWindow> class CTextEditWindow : public CWindowImpl<CTextEditWindow>
{ {
public: public:
DECLARE_WND_CLASS_EX(_T("TextEdit"), CS_DBLCLKS, COLOR_BTNFACE) CTextEditWindow();
HWND Create(HWND hwndParent);
void DoFillBack(HWND hwnd, HDC hDC);
void FixEditPos(LPCTSTR pszOldText);
void InvalidateEditRect();
void UpdateFont();
BOOL GetEditRect(LPRECT prc) const;
void ValidateEditRect(LPCRECT prc OPTIONAL);
HFONT GetFont() const { return m_hFont; }
BEGIN_MSG_MAP(CTextEditWindow) BEGIN_MSG_MAP(CTextEditWindow)
MESSAGE_HANDLER(WM_CREATE, OnCreate) MESSAGE_HANDLER(WM_CREATE, OnCreate)
MESSAGE_HANDLER(WM_SIZE, OnSize)
MESSAGE_HANDLER(WM_CLOSE, OnClose) MESSAGE_HANDLER(WM_CLOSE, OnClose)
MESSAGE_HANDLER(WM_COMMAND, OnCommand)
MESSAGE_HANDLER(WM_TOOLSMODELTOOLCHANGED, OnToolsModelToolChanged) MESSAGE_HANDLER(WM_TOOLSMODELTOOLCHANGED, OnToolsModelToolChanged)
MESSAGE_HANDLER(WM_TOOLSMODELSETTINGSCHANGED, OnToolsModelSettingsChanged)
MESSAGE_HANDLER(WM_TOOLSMODELZOOMCHANGED, OnToolsModelZoomChanged)
MESSAGE_HANDLER(WM_PALETTEMODELCOLORCHANGED, OnPaletteModelColorChanged)
MESSAGE_HANDLER(WM_CHAR, OnChar)
MESSAGE_HANDLER(WM_KEYDOWN, OnKeyDown)
MESSAGE_HANDLER(WM_ERASEBKGND, OnEraseBkGnd)
MESSAGE_HANDLER(WM_PAINT, OnPaint)
MESSAGE_HANDLER(WM_NCPAINT, OnNCPaint)
MESSAGE_HANDLER(WM_NCCALCSIZE, OnNCCalcSize);
MESSAGE_HANDLER(WM_NCHITTEST, OnNCHitTest);
MESSAGE_HANDLER(WM_SETCURSOR, OnSetCursor);
MESSAGE_HANDLER(WM_MOVE, OnMove);
MESSAGE_HANDLER(WM_SIZE, OnSize);
MESSAGE_HANDLER(WM_LBUTTONDOWN, OnLButtonDown);
MESSAGE_HANDLER(EM_SETSEL, OnSetSel);
MESSAGE_HANDLER(WM_MOUSEWHEEL, OnMouseWheel);
END_MSG_MAP() END_MSG_MAP()
CWindow editControl;
LRESULT OnCreate(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled); LRESULT OnCreate(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
LRESULT OnSize(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
LRESULT OnClose(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled); LRESULT OnClose(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
LRESULT OnCommand(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
LRESULT OnToolsModelToolChanged(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled); LRESULT OnToolsModelToolChanged(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
LRESULT OnToolsModelSettingsChanged(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
LRESULT OnToolsModelZoomChanged(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
LRESULT OnPaletteModelColorChanged(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
LRESULT OnChar(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
LRESULT OnKeyDown(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
LRESULT OnLButtonDown(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
LRESULT OnEraseBkGnd(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
LRESULT OnPaint(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
LRESULT OnNCPaint(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
LRESULT OnNCCalcSize(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
LRESULT OnNCHitTest(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
LRESULT OnSetCursor(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
LRESULT OnMove(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
LRESULT OnSize(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
LRESULT OnSetSel(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
LRESULT OnMouseWheel(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
protected:
HWND m_hwndParent;
HFONT m_hFont;
HFONT m_hFontZoomed;
LONG m_nAppIsMovingOrSizing;
RECT m_rc;
INT DoHitTest(RECT& rc, POINT pt);
void DrawGrip(HDC hDC, RECT& rc);
void Reposition();
}; };

View file

@ -92,8 +92,17 @@ void ToolsModel::SetActiveTool(TOOLTYPE nActiveTool)
case TOOL_RUBBER: case TOOL_RUBBER:
case TOOL_COLOR: case TOOL_COLOR:
case TOOL_ZOOM: case TOOL_ZOOM:
case TOOL_TEXT:
break; break;
case TOOL_TEXT:
if (nActiveTool != TOOL_TEXT)
{
// Finish the text
OnButtonDown(TRUE, -1, -1, TRUE);
OnButtonUp(TRUE, -1, -1);
}
break;
default: default:
m_oldActiveTool = m_activeTool; m_oldActiveTool = m_activeTool;
break; break;
@ -152,6 +161,10 @@ void ToolsModel::NotifyToolChanged()
{ {
toolBoxContainer.SendMessage(WM_TOOLSMODELTOOLCHANGED, m_activeTool); toolBoxContainer.SendMessage(WM_TOOLSMODELTOOLCHANGED, m_activeTool);
toolSettingsWindow.SendMessage(WM_TOOLSMODELTOOLCHANGED, m_activeTool); toolSettingsWindow.SendMessage(WM_TOOLSMODELTOOLCHANGED, m_activeTool);
if (fontsDialog.IsWindow())
fontsDialog.SendMessage(WM_TOOLSMODELTOOLCHANGED, m_activeTool);
textEditWindow.SendMessage(WM_TOOLSMODELTOOLCHANGED, m_activeTool); textEditWindow.SendMessage(WM_TOOLSMODELTOOLCHANGED, m_activeTool);
} }
@ -159,11 +172,15 @@ void ToolsModel::NotifyToolSettingsChanged()
{ {
toolSettingsWindow.SendMessage(WM_TOOLSMODELSETTINGSCHANGED); toolSettingsWindow.SendMessage(WM_TOOLSMODELSETTINGSCHANGED);
selectionWindow.SendMessage(WM_TOOLSMODELSETTINGSCHANGED); selectionWindow.SendMessage(WM_TOOLSMODELSETTINGSCHANGED);
if (textEditWindow.IsWindow())
textEditWindow.SendMessage(WM_TOOLSMODELSETTINGSCHANGED);
} }
void ToolsModel::NotifyZoomChanged() void ToolsModel::NotifyZoomChanged()
{ {
toolSettingsWindow.SendMessage(WM_TOOLSMODELZOOMCHANGED); toolSettingsWindow.SendMessage(WM_TOOLSMODELZOOMCHANGED);
if (textEditWindow.IsWindow())
textEditWindow.SendMessage(WM_TOOLSMODELZOOMCHANGED);
} }
void ToolsModel::OnButtonDown(BOOL bLeftButton, LONG x, LONG y, BOOL bDoubleClick) void ToolsModel::OnButtonDown(BOOL bLeftButton, LONG x, LONG y, BOOL bDoubleClick)

View file

@ -85,10 +85,6 @@ private:
ToolBase *GetOrCreateTool(TOOLTYPE nTool); ToolBase *GetOrCreateTool(TOOLTYPE nTool);
void NotifyToolChanged();
void NotifyToolSettingsChanged();
void NotifyZoomChanged();
public: public:
ToolsModel(); ToolsModel();
~ToolsModel(); ~ToolsModel();
@ -117,4 +113,8 @@ public:
void resetTool(); void resetTool();
void selectAll(); void selectAll();
void NotifyToolChanged();
void NotifyToolSettingsChanged();
void NotifyZoomChanged();
}; };

View file

@ -13,8 +13,6 @@
#include "precomp.h" #include "precomp.h"
#include "dialogs.h"
/* FUNCTIONS ********************************************************/ /* FUNCTIONS ********************************************************/
BOOL BOOL
@ -326,7 +324,7 @@ LRESULT CMainWindow::OnInitMenuPopup(UINT nMsg, WPARAM wParam, LPARAM lParam, BO
CheckMenuItem(menu, IDM_VIEWTOOLBOX, CHECKED_IF(toolBoxContainer.IsWindowVisible())); CheckMenuItem(menu, IDM_VIEWTOOLBOX, CHECKED_IF(toolBoxContainer.IsWindowVisible()));
CheckMenuItem(menu, IDM_VIEWCOLORPALETTE, CHECKED_IF(paletteWindow.IsWindowVisible())); CheckMenuItem(menu, IDM_VIEWCOLORPALETTE, CHECKED_IF(paletteWindow.IsWindowVisible()));
CheckMenuItem(menu, IDM_VIEWSTATUSBAR, CHECKED_IF(::IsWindowVisible(hStatusBar))); CheckMenuItem(menu, IDM_VIEWSTATUSBAR, CHECKED_IF(::IsWindowVisible(hStatusBar)));
CheckMenuItem(menu, IDM_FORMATICONBAR, CHECKED_IF(textEditWindow.IsWindowVisible())); CheckMenuItem(menu, IDM_FORMATICONBAR, CHECKED_IF(fontsDialog.IsWindowVisible()));
EnableMenuItem(menu, IDM_FORMATICONBAR, ENABLED_IF(toolsModel.GetActiveTool() == TOOL_TEXT)); EnableMenuItem(menu, IDM_FORMATICONBAR, ENABLED_IF(toolsModel.GetActiveTool() == TOOL_TEXT));
CheckMenuItem(menu, IDM_VIEWSHOWGRID, CHECKED_IF(showGrid)); CheckMenuItem(menu, IDM_VIEWSHOWGRID, CHECKED_IF(showGrid));
@ -522,10 +520,14 @@ LRESULT CMainWindow::OnCommand(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL& bH
break; break;
} }
case IDM_EDITUNDO: case IDM_EDITUNDO:
if (toolsModel.GetActiveTool() == TOOL_TEXT && textEditWindow.IsWindowVisible())
break;
imageModel.Undo(); imageModel.Undo();
imageArea.Invalidate(FALSE); imageArea.Invalidate(FALSE);
break; break;
case IDM_EDITREDO: case IDM_EDITREDO:
if (toolsModel.GetActiveTool() == TOOL_TEXT && textEditWindow.IsWindowVisible())
break;
imageModel.Redo(); imageModel.Redo();
imageArea.Invalidate(FALSE); imageArea.Invalidate(FALSE);
break; break;
@ -557,6 +559,11 @@ LRESULT CMainWindow::OnCommand(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL& bH
} }
case IDM_EDITSELECTALL: case IDM_EDITSELECTALL:
{ {
if (toolsModel.GetActiveTool() == TOOL_TEXT && textEditWindow.IsWindowVisible())
{
textEditWindow.SendMessage(EM_SETSEL, 0, -1);
break;
}
HWND hToolbar = FindWindowEx(toolBoxContainer.m_hWnd, NULL, TOOLBARCLASSNAME, NULL); HWND hToolbar = FindWindowEx(toolBoxContainer.m_hWnd, NULL, TOOLBARCLASSNAME, NULL);
SendMessage(hToolbar, TB_CHECKBUTTON, ID_RECTSEL, MAKELPARAM(TRUE, 0)); SendMessage(hToolbar, TB_CHECKBUTTON, ID_RECTSEL, MAKELPARAM(TRUE, 0));
toolsModel.selectAll(); toolsModel.selectAll();
@ -662,7 +669,16 @@ LRESULT CMainWindow::OnCommand(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL& bH
alignChildrenToMainWindow(); alignChildrenToMainWindow();
break; break;
case IDM_FORMATICONBAR: case IDM_FORMATICONBAR:
textEditWindow.ShowWindow(textEditWindow.IsWindowVisible() ? SW_HIDE : SW_SHOW); if (toolsModel.GetActiveTool() == TOOL_TEXT)
{
if (!fontsDialog.IsWindow())
{
fontsDialog.Create(mainWindow);
}
registrySettings.ShowTextTool = !fontsDialog.IsWindowVisible();
fontsDialog.ShowWindow(registrySettings.ShowTextTool ? SW_SHOW : SW_HIDE);
fontsDialog.SendMessage(DM_REPOSITION, 0, 0);
}
break; break;
case IDM_VIEWSHOWGRID: case IDM_VIEWSHOWGRID:
showGrid = !showGrid; showGrid = !showGrid;