summaryrefslogtreecommitdiff
path: root/vcl/source/control
AgeCommit message (Collapse)Author
2021-09-28vcl: rename OutDevState to StackChris Sherlock
I have moved the header file to include/vcl/rendercontext as this will eventually be part of the RenderContext split from OutputDevice. State and associated enums have also been moved to the vcl namespace. I have also moved ComplexTextLayoutFlags into the vcl::text namespace. Change-Id: I0abbf560e75b45a272854b267e948c240cd69091 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/121524 Tested-by: Jenkins Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
2021-09-20clean up ambiguous confusing rectangle APIs like IsInside()Luboš Luňák
Reading 'rectA.IsInside( rectB )' kind of suggests that the code checks whether 'rectA is inside rectB', but it's actually the other way around. Rename IsInside() -> Contains(), IsOver() -> Overlaps(), which should make it clear which way the logic goes. Change-Id: I9347450fe7dc34c96df6d636a4e3e660de1801ac Reviewed-on: https://gerrit.libreoffice.org/c/core/+/122271 Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk> Reviewed-by: Luboš Luňák <l.lunak@collabora.com> Tested-by: Jenkins
2021-09-15loplugin:constvarsNoel Grandin
Change-Id: I9b35d6333afa6b305bf73fc55a7e60c8365674e9 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/122134 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-09-06clang-tidy:readability-redundant-member-initNoel Grandin
Change-Id: I51f4e8affac41023110042b534a915f096ccd0c5 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/121692 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-08-30tdf#74702 vcl: introduce GetSystemTextColor()Chris Sherlock
Also rename DrawFlags to SystemDrawColorFlags, added a unit test. Change-Id: I3cb74b278e43561d1055b3b55b9730cdbdea51aa Reviewed-on: https://gerrit.libreoffice.org/c/core/+/113559 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2021-08-26use max of avg digit or 'average char' width to measure Edit spaceCaolán McNamara
instead of the x-width this is similar to what gtk does Change-Id: I2806939a09b275a3060ddf693e2763238a4e075f Reviewed-on: https://gerrit.libreoffice.org/c/core/+/121118 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2021-08-19jsdialog: dump id for imagesSzymon Kłos
Change-Id: Ia25dde027f79bc9c3c22cbaccdb41c2ff1ae4214 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/119504 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com> Reviewed-by: Szymon Kłos <szymon.klos@collabora.com> Reviewed-on: https://gerrit.libreoffice.org/c/core/+/120661 Tested-by: Jenkins
2021-08-18loplugin:constparamsNoel Grandin
Change-Id: Ic7410f836e584df45101e78e345c8b3c8d355e09 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/120680 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-08-18jsdialog: dump FixedImageSzymon Kłos
Change-Id: I9803558fa19ef5e508817d5db0bdeb54827f63d2 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/118969 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com> Reviewed-by: Szymon Kłos <szymon.klos@collabora.com> Reviewed-on: https://gerrit.libreoffice.org/c/core/+/120629 Tested-by: Jenkins
2021-08-17jsdialog: image for radiobuttonsSzymon Kłos
Change-Id: Ic6027223c5771ffb659a4503cfd305d0decc2433 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/118465 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com> Reviewed-by: Szymon Kłos <szymon.klos@collabora.com> Reviewed-on: https://gerrit.libreoffice.org/c/core/+/119244 Tested-by: Jenkins
2021-08-16Rename setX/setY to SetPosX/SetPosY, to align with SetPosMike Kaganski
Change-Id: I856194f26fefad993f416d7b92b57a9417a3c0a3 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/120546 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2021-08-13split SvNumberFormatter into it's own headerNoel Grandin
so I can make changes without running into cyclic dependencies between header files Change-Id: I98a91c7cc66002ba745cdb8239e5cc267922a45c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/120412 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-08-08no need to allocate ControlLayoutData separatelyNoel Grandin
Change-Id: I239befdaa05beea5200c81f23d0af861c9fc3baa Reviewed-on: https://gerrit.libreoffice.org/c/core/+/120177 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-08-02convert #defines to OUStringLiteralNoel Grandin
mostly by doing $ git grep -l '#define.*\"' -- *.cxx | xargs perl -pi -e 's/^#define\s+(\w+)\s+(\".*\")/constexpr OUStringLiteral \1 = u\2;/g' Change-Id: Idface893449b0ef2a3c5254865a300585d752fbb Reviewed-on: https://gerrit.libreoffice.org/c/core/+/119669 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-07-30flatten vcl::ImplControlDataNoel Grandin
the struct is already visible in the headers, so it's not a pimpl pattern, and it's only two pointers, so no point in allocating separately. The tdf#91081 bug comment I removed is no longer relevant, this general class of problem was solved with the introduction of VclPtr. Change-Id: Ie5d896baf0167273f8936930dd65891919c5bf7e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/119679 Tested-by: Noel Grandin <noel.grandin@collabora.co.uk> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-07-30use less GetOutDev()Noel Grandin
Change-Id: If6a528a5ff18e23226d5ec371a040cd994f1d384 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/119678 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-07-29rtl::Static -> static localNoel Grandin
in a handful cases, like a map or a vector, we don't need init on demand at all, the default constructor can be laid out at compile time Change-Id: I2d404584b5aa23db7b1f779e160e04e72dd2aa74 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/119656 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-07-29Revert "cid#1486241 'Constant' variable guards dead code"Samuel Mehrbrodt
This led to an exception when activating a page via UNO (seen in WollMux): warn:svtools.uno:211417:211417:svtools/source/uno/wizard/wizardshell.cxx:120: DBG_UNHANDLED_EXCEPTION in enterState exception: com.sun.star.uno.RuntimeException message: [jni_uno bridge error] UNO calling Java method onActivatePage: non-UNO exception occurred: java.lang.ArrayIndexOutOfBoundsException: Index 2 out of bounds for length 1 java stack trace: java.lang.ArrayIndexOutOfBoundsException: Index 2 out of bounds for length 1 at de.muenchen.allg.itd51.wollmux.dialog.mailmerge.MailmergeWizardController.onActivatePage(MailmergeWizardController.java:170) at com.sun.star.bridges.jni_uno.JNI_proxy.dispatch_call(Native Method) at com.sun.star.bridges.jni_uno.JNI_proxy.invoke(JNI_proxy.java:185) at com.sun.proxy.$Proxy118.execute(Unknown Source) at de.muenchen.allg.itd51.wollmux.dialog.mailmerge.MailmergeWizardController.startWizard(MailmergeWizardController.java:199) at de.muenchen.allg.itd51.wollmux.sidebar.SeriendruckSidebarContent.lambda$new$5(SeriendruckSidebarContent.java:468) This reverts commit 23c2c3433dc6bbfff2e1b590b1a89ee7f9c155c0. Change-Id: I6344a83eaa37b58c46a8b576c65bb15b11855c9c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/119655 Tested-by: Jenkins Reviewed-by: Samuel Mehrbrodt <samuel.mehrbrodt@allotropia.de>
2021-07-29jsdialog: toolbox popupsSzymon Kłos
unify menubutton popups and toolbox dropdowns Change-Id: I61c0c33a17d96f03d6513507bda6d5c8edbc55dd Reviewed-on: https://gerrit.libreoffice.org/c/core/+/117786 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com> Reviewed-by: Szymon Kłos <szymon.klos@collabora.com> Reviewed-on: https://gerrit.libreoffice.org/c/core/+/119608 Tested-by: Szymon Kłos <szymon.klos@collabora.com>
2021-07-28jsdialog: dump and activate popup windowsSzymon Kłos
Change-Id: I4eb49a81d12ac37f50c6595eeec6d472fdbe6d82 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/117251 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com> Reviewed-by: Szymon Kłos <szymon.klos@collabora.com> Reviewed-on: https://gerrit.libreoffice.org/c/core/+/119581 Tested-by: Szymon Kłos <szymon.klos@collabora.com>
2021-07-28jsdialog: dump internal image for buttonsSzymon Kłos
Change-Id: I53687f67042490c19d1056c74619d43566bf1289 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/117132 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com> Reviewed-by: Szymon Kłos <szymon.klos@collabora.com> Reviewed-on: https://gerrit.libreoffice.org/c/core/+/119562 Tested-by: Jenkins
2021-07-21flatten ImplListBoxWindowNoel Grandin
no need to allocate ImplEntryList separately Change-Id: I276e92895a00ebccff60f5067567a0ed066d4e66 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/119328 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-07-07DateFormatter: use Date::AddDays(), AddMonths(), AddYears()Eike Rathke
... that do all the checks and normalize. Change-Id: Id3ffcf5146b25020ec808aa70240953d39328a82 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/118540 Reviewed-by: Eike Rathke <erack@redhat.com> Tested-by: Jenkins
2021-07-06Related: tdf#125035 Introduce LongDateOrder and handle YDM in DateFormatterEike Rathke
This fixes also unotools/source/i18n/localedatawrapper.cxx:1473: LocaleDataWrapper::scanDateOrder: no magic applicable lv-LV requested lv-LV loaded that is the only locale with a YDM long date order. Change-Id: I776b8706bf5bd3ec11cc46d38fd3613c8df7519f Reviewed-on: https://gerrit.libreoffice.org/c/core/+/118482 Tested-by: Jenkins Reviewed-by: Eike Rathke <erack@redhat.com>
2021-07-05DateFormatter: make TextToDate() long date calendar aware, tdf#125035Eike Rathke
Using number formatter to display long date now can generate any arbitrary date string in any calendar known to the locale. Cope with non-default non-Gregorian calendars when parsing such string back to a date and convert to Gregorian for the calendar widget. This currently relies on month names being different between calendars, which isn't fail-proof but at least works for the ar_DZ Hijri->Gregorian case. A better approach would be to remember the calendar used in the number formatter output, but that's not available (yet?). Change-Id: I829655275de4d1983b7e453624efca967b16a3bd Reviewed-on: https://gerrit.libreoffice.org/c/core/+/118449 Reviewed-by: Eike Rathke <erack@redhat.com> Tested-by: Jenkins
2021-07-05Pass Formatter::StaticFormatter also from weld:DateFormatter, tdf#125035Eike Rathke
Change-Id: I8e6b0e581b9522fb04225fc945e579406a4be208 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/118438 Reviewed-by: Eike Rathke <erack@redhat.com> Tested-by: Jenkins
2021-07-04Resolves: tdf#125035 Use number formatter for long date in DateFormatter fieldsEike Rathke
Change-Id: Ib0cd55d9ad4e3abb4839d70c0086063a3f1a90f0 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/118344 Reviewed-by: Eike Rathke <erack@redhat.com> Tested-by: Jenkins
2021-07-01loplugin:unusedmethodsNoel Grandin
Change-Id: I3ff5333c1e73ca61b0a7339e4b7dcfce211b88e2 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/118207 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-06-30Purge out rtl::math::setNanBaiXiaochun
Change-Id: If8794c105e279afd4437517d3e61f2f900eb6490 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/118123 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2021-06-28loplugin:indentation improve checks for brace alignmentNoel Grandin
Change-Id: I333100fda7e181f68f36b03279b3fbb8cb768310 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/117615 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-06-24Delete copy ctors/assignments for DLLEXPORT classMike Kaganski
... instead of including <vcl/window.hxx> where it is not directly used. For details, see commit ee405fb2ef36337851801f1bd34411c606d55988. This reverts commits 6aa6b6c814b0353768fa7276d1f11d69a0ebedba and beeb19b361213d22247e5cb776dc522cbf190ca8. Change-Id: Ia91f3c303e1df0a698d06cdef1d8e64e99d781ef Reviewed-on: https://gerrit.libreoffice.org/c/core/+/117751 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
2021-06-22cid#1486241 'Constant' variable guards dead codeCaolán McNamara
Change-Id: Ia90e8ad537fccdf38ed0bf0e9f963033c69ec202 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/117612 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2021-06-21cid#1486243 'Constant' variable guards dead codeCaolán McNamara
Change-Id: I1bc2a7555f6d129526cabbebb8b88190e3ec3a4f Reviewed-on: https://gerrit.libreoffice.org/c/core/+/117545 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2021-06-21cid#1486241 'Constant' variable guards dead codeCaolán McNamara
Change-Id: Iec41990bbf076c0f8aaeda36ac56d3ac7ebc81d8 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/117544 Tested-by: Caolán McNamara <caolanm@redhat.com> Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2021-06-19loplugin:finalclassesNoel Grandin
improve the plugin to detect more cases. I only apply the new final changes to classes in /include here. Which reveals that RoadmapWizard::getPageController( TabPage* _pCurrentPage ) will always return nullptr Also needed to sprinkle some SAL_DLLPUBLIC_TEMPLATE around to workaround Visual Studio linking problems. Change-Id: Iadb7d46a9e0e73dabce562375ca013c0fea6690c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/117365 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-06-10loplugin:unnecessaryreturn RoadmapWizardNoel Grandin
Change-Id: I269fd92a6076fe9ebe18646e537e7031aec47fef Reviewed-on: https://gerrit.libreoffice.org/c/core/+/116976 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-05-28IsDisposed->isDisposed in vcl/../controlNoel Grandin
Change-Id: Icd5fb88f3827eddb307f5fe6b46667a72062e408 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/116358 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-05-27no need to allocate these on the heapNoel Grandin
Change-Id: I6933260f589c67f463ee60572a31c52c6be7eb66 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/116262 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-05-18tdf#142337 Button::GetOptimalSize only considered image beside text caseCaolán McNamara
not image above/below text Change-Id: I5a8e9bfb36cee1460d43478a100e574a3bf1930e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/115758 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
2021-05-17split OutputDevice from WindowNoel Grandin
as part of a longer-term goal of doing our widget rendering only inside a top-level render- context. I moved all of the OutputDevice-related code that existed in vcl::Window into a new subclass of OutputDevice called WindowOutputDevice. Notes for further work (*) not sure why we are getting an 1x1 surface in SvpSalGraphics::releaseCairoContext, but to fix it I clamp the size there (*) might have to dump VCLXDevice, and move it's code down into VCLXWindow and VCLXVirtualDevice (*) can we remove use of VCLXDevice in other places, in favour of just talking to the VCL code? Change-Id: I105946377f5322677d6f7d0c1c23847178a720b6 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/113204 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-05-13Revert "simplify the vcl<->toolkit connection"Noel Grandin
because it introduces a link-time dependency of vcl on toolkit, and toolkit already depends on vcl This reverts commit f7a86c5cdf4323c99d26512bf78de7f7c380667d. Change-Id: Ibdd4f3e8221d70e2abd8fcbda67f85af3ac0396e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/115547 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-05-12simplify the vcl<->toolkit connectionNoel Grandin
No need to store two different pointers and hide the underlying class behind an UNO interface Change-Id: I72c55e912caa9eae1cffa6c9d1b1d480e5668d40 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/115496 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-05-09tdf#97066 - When using CTRL-A in a listbox, update selected itemsAndreas Heinisch
Change-Id: I4f20b8e744bf99edd0677839654aa78aadcbfc85 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/115169 Tested-by: Jenkins Reviewed-by: Andreas Heinisch <andreas.heinisch@yahoo.de>
2021-05-05convert sal_uLong and tools::Long in vcl/settingsNoel Grandin
Change-Id: I69711b791884218f4a14c85fe69072b9ea06dc79 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/115109 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-05-03vcl: remove MetricVectorChris Sherlock
Change-Id: Ib700887ca79f423c65dfb75eea36bbfd808fa172 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/114976 Tested-by: Jenkins Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
2021-05-03sal_uLong->sal_Int32 in ButtonNoel Grandin
Change-Id: Ib2a9f8eecbeee4de1ac8f0fc1a5bfa93f6746d48 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/115008 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-05-02tdf#79049 speed up OOXML workbook load (4)Noel Grandin
Optimise LocaleDataWrapper for reads by initialising the data we in the constructor, so we don't need any kind of locking Reduces load time from 34s to 28s. Change-Id: I4bd3bddb30b70ba015fe5b1372534f9507762b74 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/114960 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-04-30simplify WallpaperNoel Grandin
All of it's member fields are already COW types, so it doesn't need the complication Change-Id: I44e402e8e80fe96462fc4e1aa06b9ec6815e3cd0 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/114933 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-04-26drop mask from BitmapExNoel Grandin
So that we have fewer cases to deal with when we transition to 32-bit bitmaps. (*) rename maMask to maAlphaMask, since now it is only being used for alpha duties. (*) drop mbAlpha and mbTransparent to simplify state management, the only thing we need to check for alpha is if maAlphaMask is non-empty. Change-Id: I06252e38e950e846a94b4c2ba8ea763be17801fe Reviewed-on: https://gerrit.libreoffice.org/c/core/+/111679 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
2021-04-26lok: add rendering and input for form controls in CalcTomaž Vajngerl
Until now the form controls were nto rendered to a tile when drawing tiles for LOKit usage (online). This change adds LokControlHandler that is responsible for rendering of the form controls on the tiles (currently implemented only for Calc) and handles mouse input events that come through LOKit. Change-Id: Ifcecc9a320a7836b76b0a10771b06c15339baed2 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/114635 Tested-by: Jenkins Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>