aboutsummaryrefslogtreecommitdiffhomepage
path: root/win32/PlatWin.cxx
AgeCommit message (Collapse)AuthorFilesLines
2021-03-19UTF-8 text drawing and measurement.Neil1-34/+259
Move SurfaceGDI::WidthText to match declaration order.
2021-03-19Add an explicit FlushDrawing method to Surface that should be called afterNeil1-13/+12
completing a bitmap. Currently only has a real implementation on Direct2D. Avoiding implicit flushes inside Copy and FillRectangle produced a 23% speed improvement on files with about 1 indentation guide per line as the drawing pipeline was being flushed for each indentation guide.
2021-03-19Implement PopClip to allow local clipping.Neil1-0/+15
2021-03-19Add Surface::PixelDivisions which detects 'retina' displays that useNeil1-0/+12
multiple display pixels per logical pixel. Likely will only return >1 for Apple displays. Can be used for finer placement of elements.
2021-03-19Add Platform::Supports for SupportsFeature API.Neil1-0/+19
2021-03-19Add localeName to FontParameters for Bug [#2027].Neil1-1/+2
2021-03-19Ensure variables are initialised, are const where possible.Neil1-21/+26
Add default: break; to switches to avoid warnings.
2021-03-18Make Surface::Release and callers (where possible) noexcept.Neil1-4/+4
2021-03-18Use unique_ptr to add to RGBAImageSet.Neil1-2/+2
2021-03-18Use unique_ptr for Surface::Allocate to show transfer of ownership.Neil1-4/+4
2021-03-18std::optional is a basic vocabulary type that may be used widely so includeNeil1-0/+1
almost everywhere.
2021-03-18Move assert and debug trace functions into their own header Debugging.h.Neil1-0/+1
PLATFORM_ASSERT is used in data structure headers which led to including graphics and windowing APIs in data structure modules.
2021-03-18ListBox options API. ListOptions is currently empty but may contain list itemNeil1-0/+6
colours in the future.
2021-03-17Use unique_ptr for ListBox::Allocate to show transfer of ownership.Neil1-3/+2
2021-03-17Change Window::Cursor to an enum class.Neil1-9/+9
2021-03-17Remove Window::SetFont as never used.Neil1-5/+0
2021-03-17Change Font to an interface and stop using FontID. Fonts are shared andNeil1-177/+133
reference counted using std::shared_ptr. This optimizes memory and reduces potential for allocation bugs.
2021-03-17Make Window argument to Menu::Show const as that avoids warnings and the WindowNeil1-1/+1
is not altered by showing a menu.
2021-03-17Mark Window::Destroy, ListBox::Clear, and Menu::Destroy as noexcept sinceNeil1-4/+4
destroying state should not throw.
2021-03-17Extract geometry and colour definitions from Platform.h into src/Geometry.h.Neil1-0/+1
2021-03-17Remove DynamicLibrary as loading lexers with SCI_LOADLEXERLIBRARY was removedNeil1-36/+0
for Scintilla 5.
2021-03-16Convert Platform from a class to a namespace. Does not change callers.Neil1-5/+5
Make Assert, DebugPrintf, and similar noexcept so they can be used in noexcept methods and they don't throw.
2020-07-29Use dynamic_cast for SurfaceGDI::Copy as it will fail better if a mistake made.Neil1-1/+1
2020-07-28Fix factory leak by using global factory instead of getting from render target.Neil1-4/+1
2020-07-27Add private SurfaceD2D::GetBitmap to better encapsulate the bitmap render targetNeil1-8/+11
and simplify callers.
2020-07-17Tidied up code using wstring, which will often avoid allocating, and fixingNeil1-9/+9
variable names.
2020-07-17Fix truncation of locale due to not counting NUL. Add return code check.Neil1-2/+4
2020-07-15Hoist common conversion code into RectangleFromPRectangle.Neil1-4/+12
2020-07-15Stronger argument validation in BlobInline methods.Neil1-1/+9
2020-07-15Add extra checking and assertions for NULLs.Neil1-30/+34
Use ReleaseUnknown which is noexcept making it easier to reason about exceptions. Add constexpr where possible.
2020-07-11Removed GetNearestColor as paletted displays are no longer supported.Neil1-3/+1
2020-06-15Use ReleaseUnknown to extend noexcept over finalisation.Zufu Liu1-22/+9
2020-06-13Add include that defines back_inserter.Greg Smith1-0/+1
2020-06-11Bug [#2185]. Fix printing to use correct text size.Neil1-1/+3
2020-06-06Implement gradients for GDI. GradientRectangle previously drew an average of theNeil1-5/+60
first two stops over the whole rectangle.
2020-06-06Add DIBSection class to simplify bitmap operations on GDI.Neil1-66/+121
2020-06-06Avoid type-pun union when converting from RGBA colour to DWORD as this may beNeil1-13/+9
undefined or implementation defined behaviour. Drop some casts by hoisting out part of dwordMultiplied.
2020-06-06Specify locally visible methods as noexcept.Neil1-20/+20
2020-06-06Prefer .data() over &[0] as more explicit.Neil1-10/+7
Use range for when reasonable. Prefer transform over explicit loop.
2020-06-06Add ReleaseUnknown to safely release IUnknown* and avoid warnings when done inNeil1-12/+4
noexcept context.
2020-06-06Bug [#2063]. On Windows 8.1 where GetDpiForWindow is not available, useZufu Liu1-0/+23
GetDpiForMonitor to emulate it.
2020-06-06Use call_once for initialising Direct2D so only done once even with threads.Neil1-59/+61
2020-06-06Defer most initialisation until Scintilla window is created.Neil1-3/+5
Previously, more initialisation was performed inside DllMain but some actions such as loading libraries are unsafe inside DllMain. Avoid listbox UnregisterClass if no attempt to register which will occur if no Scintilla windows were created. std::call_once is used to ensure initialisation is performed at most once.
2020-05-28Bug [#2063]. Call AdjustWindowRectExForDpi when available to find correct size.Zufu Liu1-8/+16
2020-05-27Bug [#2063]. Make reverse arrow cursor scale with DPI.Zufu Liu1-9/+21
2020-05-27Bug [#2063]. Add SystemMetricsForDpi and use for ListBox and mouse drag and ↵Zufu Liu1-10/+36
drop. Simplify IME font definition.
2020-05-20Fix some minor warnings.Neil1-15/+14
2020-05-19Bug [#2171]. Implement per-monitor DPI Awareness on Windows.Neil1-21/+38
2020-05-19Encapsulate GetProcAddress in a way that avoids undefined and conditionallyNeil1-26/+22
defined behaviour.
2020-04-05Feature [feature-requests:1345]. Use ListBox_ macros in preference to LB_Neil1-10/+10
messages. Modify types to match.