2014-02-10 20:53:14 +00:00
|
|
|
/*
|
|
|
|
* PROJECT: PAINT for ReactOS
|
|
|
|
* LICENSE: LGPL
|
|
|
|
* FILE: base/applications/paint/textedit.c
|
|
|
|
* PURPOSE: Text editor and font chooser for the text tool
|
|
|
|
* PROGRAMMERS: Benedikt Freisen
|
|
|
|
*/
|
|
|
|
|
|
|
|
/* INCLUDES *********************************************************/
|
|
|
|
|
|
|
|
#include "precomp.h"
|
2014-02-11 11:48:15 +00:00
|
|
|
#include "textedit.h"
|
2014-02-10 20:53:14 +00:00
|
|
|
|
|
|
|
/* FUNCTIONS ********************************************************/
|
|
|
|
|
2014-02-11 11:48:15 +00:00
|
|
|
void
|
|
|
|
RegisterWclTextEdit()
|
|
|
|
{
|
|
|
|
WNDCLASSEX wclTextEdit;
|
|
|
|
/* initializing and registering the window class used for the text editor */
|
|
|
|
wclTextEdit.hInstance = hProgInstance;
|
|
|
|
wclTextEdit.lpszClassName = _T("TextEdit");
|
|
|
|
wclTextEdit.lpfnWndProc = TextEditWinProc;
|
|
|
|
wclTextEdit.style = CS_DBLCLKS;
|
|
|
|
wclTextEdit.cbSize = sizeof(WNDCLASSEX);
|
|
|
|
wclTextEdit.hIcon = LoadIcon(hProgInstance, MAKEINTRESOURCE(IDI_APPICON));
|
|
|
|
wclTextEdit.hIconSm = LoadIcon(hProgInstance, MAKEINTRESOURCE(IDI_APPICON));
|
|
|
|
wclTextEdit.hCursor = LoadCursor(NULL, IDC_ARROW);
|
|
|
|
wclTextEdit.lpszMenuName = NULL;
|
|
|
|
wclTextEdit.cbClsExtra = 0;
|
|
|
|
wclTextEdit.cbWndExtra = 0;
|
|
|
|
wclTextEdit.hbrBackground = GetSysColorBrush(COLOR_BTNFACE);
|
|
|
|
RegisterClassEx (&wclTextEdit);
|
|
|
|
}
|
|
|
|
|
2014-02-10 20:53:14 +00:00
|
|
|
LRESULT CALLBACK
|
|
|
|
TextEditWinProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
|
|
|
|
{
|
|
|
|
switch (message)
|
|
|
|
{
|
|
|
|
case WM_SIZE:
|
|
|
|
{
|
|
|
|
RECT clientRect;
|
|
|
|
GetClientRect(hwnd, &clientRect);
|
|
|
|
MoveWindow(hwndEditCtl, clientRect.left, clientRect.top, RECT_WIDTH(clientRect), RECT_HEIGHT(clientRect), TRUE);
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
case WM_CLOSE:
|
|
|
|
ShowWindow(hwnd, SW_HIDE);
|
|
|
|
break;
|
|
|
|
case WM_COMMAND:
|
|
|
|
switch(HIWORD(wParam))
|
|
|
|
{
|
|
|
|
case EN_UPDATE:
|
|
|
|
{
|
|
|
|
HeapFree(GetProcessHeap(), 0, textToolText);
|
|
|
|
textToolTextMaxLen = GetWindowTextLength(hwndEditCtl) + 1;
|
|
|
|
textToolText = HeapAlloc(GetProcessHeap(), HEAP_GENERATE_EXCEPTIONS, sizeof(TCHAR) * textToolTextMaxLen);
|
|
|
|
GetWindowText(hwndEditCtl, textToolText, textToolTextMaxLen);
|
|
|
|
ForceRefreshSelectionContents();
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
break;
|
|
|
|
default:
|
|
|
|
return DefWindowProc(hwnd, message, wParam, lParam);
|
|
|
|
}
|
|
|
|
|
|
|
|
return 0;
|
|
|
|
}
|