aboutsummaryrefslogtreecommitdiffhomepage
AgeCommit message (Collapse)AuthorFilesLines
2021-03-22Implement more support values.Neil8-1/+54
2021-03-22Replace multiple mode setting calls on Surface with SetMode as this isNeil5-19/+8
extensible. For CallTip, GTK and Qt hardcode BidiR2L to false as they don't support bidirectional, its the same as current, and the BidiR2L state on EditModel isn't easily accessible.
2021-03-22Use PolyLine to simplify wrap marker arrows and allow thicker strokes when thereNeil4-31/+32
is space.
2021-03-22Replace multiple calls when drawing boxes with Surface::RectangleFrame.Neil4-35/+9
Replace annotation boxing logic with calls to FillRectangle and Side. Switch to new AlphaRectangle signature. These will allow changing stroke width in future.
2021-03-21Update DrawTabArrow with new Surface calls so it can draw a thicker translucentNeil1-16/+25
arrow when an API is defined.
2021-03-20Replace FillRectangle with FillRectangleAligned as FillRectangle will stopNeil4-60/+59
aligning to pixel boundaries. Use Surface::SetMode as simpler and its predecessors will be removed.
2021-03-20Update CallTip with new Surface APIs.Neil4-29/+24
2021-03-20Use new Surface APIs for marker drawing. Clipping allows rounded fold markers toNeil5-276/+286
be highlighted better.
2021-03-20Use new Surface APIs that can adapt to different stroke widths and use clippingNeil4-96/+102
to allow more accurate less complex drawing code.
2021-03-20Use Surface::AllocatePixMap instead of changing an existing surface withNeil10-89/+48
InitPixMap. Changed DropGraphics from releasing surfaces to deleting them. This simplifies code and the added cost of allocating a new Surface is small.
2021-03-25Translucent text.Neil7-140/+127
2021-03-20Add AllocatePixMap method on Surface to create a pixmap surface.Neil7-34/+173
2021-03-20Use SurfaceMode struct as a way to inform Surface of modes like code page andNeil7-68/+125
bidirectional options in an extensible way instead of adding a call for each element.
2021-03-25Add FillRectangleAligned to align rectangle to pixel grid on x-axis beforeNeil7-0/+29
filling it to avoid partially drawn pixels on left and right edges.
2021-03-20Implement LineDraw and PolyLine.Neil7-0/+161
2021-03-20Implement Stadium on all platforms except for Win32 GDI.Neil7-2/+288
2021-03-20Implement RectangleFrame.Neil7-0/+57
2021-03-25Use FillStroke for parameters to Polygon, RectangleDraw, RoundedRectangle, andNeil7-6/+417
Ellipse.
2021-03-19Support strokeWidth and float cornerSize in AlphaRectangle. Use FillStrokeNeil7-0/+209
instead of separate colour and alpha arguments.
2021-03-25Implement translucent FillRectangle.Neil7-23/+92
2021-03-25Shorten names as containers provide context.Neil1-7/+7
2021-03-19UTF-8 text drawing and measurement.Neil7-34/+554
Move SurfaceGDI::WidthText to match declaration order.
2021-03-19Add an explicit FlushDrawing method to Surface that should be called afterNeil10-13/+32
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.Neil9-3/+54
2021-03-19Add Surface::PixelDivisions which detects 'retina' displays that useNeil9-0/+46
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.Neil12-2/+72
2021-03-19Add Geometry.cxx for geometric and colour operations too complex for headers.Neil11-7/+217
Add FillStroke to hold parameters for drawing shapes.
2021-03-19Add localeName to FontParameters for Bug [#2027].Neil2-3/+9
2021-03-19Switch enum to enum class.Neil22-408/+437
2021-03-19Protect against exceptions from ILexer5::Release as called inside destructor.Neil1-2/+10
2021-03-19Make simple constructor constexpr.Neil1-1/+1
2021-03-19Add SupportsFeature API but leave empty for now with no features defined.Neil4-0/+14
2021-03-19Ensure variables are initialised, are const where possible.Neil1-21/+26
Add default: break; to switches to avoid warnings.
2020-06-24Converting between UTF-8 and current encoding.Neil8-0/+105
Allows platform-independent code to be written just to handle Unicode.
2021-03-18Make Surface::Release and callers (where possible) noexcept.Neil13-17/+17
2021-03-18Use unique_ptr to add to RGBAImageSet.Neil4-17/+13
2021-03-18Use unique_ptr for CaseFolderForEncoding to show transfer of ownership.Neil11-26/+26
2021-03-18Use unique_ptr for Surface::Allocate to show transfer of ownership.Neil10-23/+22
2021-03-18std::optional is a basic vocabulary type that may be used widely so includeNeil46-0/+46
almost everywhere.
2021-03-18Move assert and debug trace functions into their own header Debugging.h.Neil52-101/+163
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 itemNeil5-0/+22
colours in the future.
2021-03-17Use unique_ptr for ListBox::Allocate to show transfer of ownership.Neil6-13/+10
2021-03-17Change Window::Cursor to an enum class.Neil9-53/+53
2021-03-17Remove Window::SetFont as never used.Neil5-23/+1
2021-03-17Change Font to an interface and stop using FontID. Fonts are shared andNeil23-621/+485
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 WindowNeil5-5/+5
is not altered by showing a menu.
2021-03-17Mark Window::Destroy, ListBox::Clear, and Menu::Destroy as noexcept sinceNeil5-20/+20
destroying state should not throw.
2021-03-17Extract geometry and colour definitions from Platform.h into src/Geometry.h.Neil54-196/+331
2021-03-17Remove DynamicLibrary as loading lexers with SCI_LOADLEXERLIBRARY was removedNeil5-188/+0
for Scintilla 5.
2021-03-16Convert Platform from a class to a namespace. Does not change callers.Neil6-46/+41
Make Assert, DebugPrintf, and similar noexcept so they can be used in noexcept methods and they don't throw.