diff options
Diffstat (limited to 'win32/PlatWin.cxx')
-rw-r--r-- | win32/PlatWin.cxx | 64 |
1 files changed, 36 insertions, 28 deletions
diff --git a/win32/PlatWin.cxx b/win32/PlatWin.cxx index c1d1f7cd1..4d31e5af5 100644 --- a/win32/PlatWin.cxx +++ b/win32/PlatWin.cxx @@ -57,23 +57,10 @@ #define LOAD_LIBRARY_SEARCH_SYSTEM32 0x00000800 #endif -static void *PointerFromWindow(HWND hWnd) { - return reinterpret_cast<void *>(::GetWindowLongPtr(hWnd, 0)); -} - -static void SetWindowPointer(HWND hWnd, void *ptr) { - ::SetWindowLongPtr(hWnd, 0, reinterpret_cast<LONG_PTR>(ptr)); -} - -extern UINT CodePageFromCharSet(DWORD characterSet, UINT documentCodePage); - -static CRITICAL_SECTION crPlatformLock; -static HINSTANCE hinstPlatformRes = 0; - -static HCURSOR reverseArrowCursor = NULL; - namespace Scintilla { +UINT CodePageFromCharSet(DWORD characterSet, UINT documentCodePage); + static RECT RectFromPRectangle(PRectangle prc) { RECT rc = {static_cast<LONG>(prc.left), static_cast<LONG>(prc.top), static_cast<LONG>(prc.right), static_cast<LONG>(prc.bottom)}; @@ -240,6 +227,19 @@ HFONT FormatAndMetrics::HFont() { namespace { +void *PointerFromWindow(HWND hWnd) { + return reinterpret_cast<void *>(::GetWindowLongPtr(hWnd, 0)); +} + +void SetWindowPointer(HWND hWnd, void *ptr) { + ::SetWindowLongPtr(hWnd, 0, reinterpret_cast<LONG_PTR>(ptr)); +} + +CRITICAL_SECTION crPlatformLock; +HINSTANCE hinstPlatformRes = 0; + +HCURSOR reverseArrowCursor = NULL; + FormatAndMetrics *FamFromFontID(void *fid) { return static_cast<FormatAndMetrics *>(fid); } @@ -280,9 +280,7 @@ D2D1_TEXT_ANTIALIAS_MODE DWriteMapFontQuality(int extraFontFlag) { } #endif -} - -static void SetLogFont(LOGFONTW &lf, const char *faceName, int characterSet, float size, int weight, bool italic, int extraFontFlag) { +void SetLogFont(LOGFONTW &lf, const char *faceName, int characterSet, float size, int weight, bool italic, int extraFontFlag) { lf = LOGFONTW(); // The negative is to allow for leading lf.lfHeight = -(abs(lround(size))); @@ -298,7 +296,7 @@ static void SetLogFont(LOGFONTW &lf, const char *faceName, int characterSet, flo * If one font is the same as another, its hash will be the same, but if the hash is the * same then they may still be different. */ -static int HashFont(const FontParameters &fp) noexcept { +int HashFont(const FontParameters &fp) noexcept { return static_cast<int>(fp.size) ^ (fp.characterSet << 10) ^ @@ -309,6 +307,8 @@ static int HashFont(const FontParameters &fp) noexcept { fp.faceName[0]; } +} + class FontCached : Font { FontCached *next; int usage; @@ -1284,7 +1284,7 @@ void SurfaceD2D::SetFont(Font &font_) { yInternalLeading = pfm->yInternalLeading; codePageText = codePage; if (pfm->characterSet) { - codePageText = CodePageFromCharSet(pfm->characterSet, codePage); + codePageText = Scintilla::CodePageFromCharSet(pfm->characterSet, codePage); } if (pRenderTarget) { D2D1_TEXT_ANTIALIAS_MODE aaMode; @@ -1806,6 +1806,8 @@ void Window::SetPosition(PRectangle rc) { static_cast<int>(rc.Width()), static_cast<int>(rc.Height()), SWP_NOZORDER | SWP_NOACTIVATE); } +namespace { + static RECT RectFromMonitor(HMONITOR hMonitor) { MONITORINFO mi = {}; mi.cbSize = sizeof(mi); @@ -1822,6 +1824,8 @@ static RECT RectFromMonitor(HMONITOR hMonitor) { return rc; } +} + void Window::SetPositionRelative(PRectangle rc, Window relativeTo) { const LONG style = ::GetWindowLong(static_cast<HWND>(wid), GWL_STYLE); if (style & WS_POPUP) { @@ -1876,16 +1880,14 @@ void Window::InvalidateRectangle(PRectangle rc) { ::InvalidateRect(static_cast<HWND>(wid), &rcw, FALSE); } -static LRESULT Window_SendMessage(const Window *w, UINT msg, WPARAM wParam=0, LPARAM lParam=0) { - return ::SendMessage(static_cast<HWND>(w->GetID()), msg, wParam, lParam); -} - void Window::SetFont(Font &font) { - Window_SendMessage(this, WM_SETFONT, + ::SendMessage(static_cast<HWND>(wid), WM_SETFONT, reinterpret_cast<WPARAM>(font.GetID()), 0); } -static void FlipBitmap(HBITMAP bitmap, int width, int height) { +namespace { + +void FlipBitmap(HBITMAP bitmap, int width, int height) { HDC hdc = ::CreateCompatibleDC(NULL); if (hdc != NULL) { HGDIOBJ prevBmp = ::SelectObject(hdc, bitmap); @@ -1895,7 +1897,7 @@ static void FlipBitmap(HBITMAP bitmap, int width, int height) { } } -static HCURSOR GetReverseArrowCursor() { +HCURSOR GetReverseArrowCursor() { if (reverseArrowCursor != NULL) return reverseArrowCursor; @@ -1926,6 +1928,8 @@ static HCURSOR GetReverseArrowCursor() { return cursor; } +} + void Window::SetCursor(Cursor curs) { switch (curs) { case cursorText: @@ -2853,7 +2857,9 @@ LRESULT PASCAL ListBoxX::StaticWndProc( } } -static bool ListBoxX_Register() { +namespace { + +bool ListBoxX_Register() { WNDCLASSEX wndclassc; wndclassc.cbSize = sizeof(wndclassc); // We need CS_HREDRAW and CS_VREDRAW because of the ellipsis that might be drawn for @@ -2878,6 +2884,8 @@ bool ListBoxX_Unregister() { return ::UnregisterClass(ListBoxX_ClassName, hinstPlatformRes) != 0; } +} + Menu::Menu() : mid(0) { } |