Re: Image scaling for Platform RegisterImage and RegisterRGBAImage?
Mitchell <[email protected]> Thu, 8 May 2025 23:43:05 -0400
| Newsgroups | gmane.comp.lib.scintilla.devel |
|---|---|
| Message-ID | <[email protected]> |
Hi Neil, > On May 7, 2025, at 1:51 PM, Mitchell <[email protected]> wrote: > > Hi Neil, > >> On May 7, 2025, at 2:57 AM, Neil <[email protected]> wrote: >> >> Mitchell: >> Is there any appetite for modifying the Platform RegisterImage and RegisterRGBAImage interfaces to add a scaling parameter? >> ... >> It might be possible to make scale=1 an optional default parameter, but I don’t know enough about C++ to know if that’ll still require downstream Platform changes or not. >> >> It is not possible to add a parameter without modifying each downstream platform layer implementation. A defaulted parameter doesn't help this case - it helps the opposite case where user (or platform layer) code calls into platform-independent code. >> >> Using the scale set with SCI_RGBAIMAGESETSCALE for SCI_REGISTERRGBAIMAGE could potentially cause problems for applications which set a scale for SCI_MARKERDEFINERGBAIMAGE but don't currently reset it before calling SCI_REGISTERRGBAIMAGE. >> >> It may be possible to specify a scale factor by adding a scale field to the ListOptions struct as that will be ignored by current platform layers. However, ListOptions is a set of options to the whole ListBox, not to a specific image so would only be OK if all the images were scaled by the same factor. >> >> Another approach is to subvert the types used with ScintillaQt::WndProc or similar handling Message::RegisterRGBAImage by dynamic casting the ac.lb (autocomplete listbox) from interface ListBox to concrete ListBoxImpl then calling a private RegisterRGBAImageScaled method. > > Thanks for your input. I like the ListOptions idea. I would expect anyone taking advantage of this image scaling would be supplying same-size images for listbox items. > > I can start working on this feature, but it will be Qt-only. Is that acceptable? If not, then I’ll probably just make something application-specific and we can leave this for another time. Small update: I got my proof-of-concept working for GTK 3.10+ as well, so I would be able to potentially submit changes for Qt and GTK. Cheers, Mitchell -- You received this message because you are subscribed to the Google Groups "scintilla-interest" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion visit https://groups.google.com/d/msgid/scintilla-interest/7A9A23FB-713E-4E64-A57C-AD0D0D597AD2%40foicica.com.