summaryrefslogtreecommitdiff
path: root/vcl/source/control
AgeCommit message (Collapse)Author
39 hourscid#1610241 silence Improper use of negative valueCaolán McNamara
Change-Id: If258376bb3303ea6cd497c30c0610f22f7fe2f7a Reviewed-on: https://gerrit.libreoffice.org/c/core/+/170433 Reviewed-by: Caolán McNamara <caolan.mcnamara@collabora.com> Tested-by: Jenkins
3 daysicon choice ctrl a11y: Don't allow unselecting entryMichael Weghorn
`SvtIconChoiceCtrl` is (only) used in `VerticalTabControl`, and having no tab selected doesn't make much sense. Support for non-single selection modes was dropped in commit af9413cb4ad49c0b4854c08cc2804644220755ae Author: Michael Weghorn <m.weghorn@posteo.de> Date: Tue Jul 2 11:53:27 2024 +0200 tdf#161853 icon choice ctrl: Drop support for non-single selection modes Consequently, also drop support for explicitly unselecting one or all entries via the `XAccessibleSelection` interface in the corresponding a11y class, `AccessibleIconChoiceCtrl`. Drop the now unused `SvtIconChoiceCtrl::SetNoSelection` and `SvxIconChoiceCtrl_Impl::SetNoSelection`. This is also in line with handling for the the non-vertical tab control used elsewehere. Change-Id: I852b5bf7480daf18bfdf26c3105849c27624ad8c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/170369 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
4 daystdf#161026 tdf#161355 tdf#161501 icon choice ctrl: Natively draw mouse-hoverMichael Weghorn
... feedback. Instead of always using `SvxIconChoiceCtrl_Impl::DrawHighlightFrame` to draw a frame around the currently mouse-hovered item in the icon choice control/vertical tab page, use the native drawing API to let the backends draw a `ControlType::TabItem` with the `ControlState::ROLLOVER` state set. This also aligns this more with the horizontal tabbar used in other dialogs (s. `TabControl::ImplDrawItem`). With this commit in place, the hovered vertical tab in e.g. the "Insert" -> "Hyperlink" or "Format" -> "Page" vertical tab dialogs is now displayed "properly" and in line with what happens for non-vertical tab pages (like the "Format" -> "Paragraph" one) on Windows or with the Breeze and Breeze Dark themes and the kf5 VCL plugin on Linux. Instead of just using the native drawing API for the mouse-hover feedback, this could likely be extended to also take care of focus, selection, etc. in a follow-up step. Change-Id: I5437d18cb78e8da0736c9ab920c55b90af4d0e25 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/170341 Reviewed-by: Rafael Lima <rafael.palma.lima@gmail.com> Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
4 daystdf#161026 tdf#161355 icon choice ctrl: Draw icon + text at the endMichael Weghorn
Draw the entry's icon and text after drawing other things, to make sure it is on top, i.e. always visible. This shouldn't make any difference by itself yet as currently only frames/borders are drawn after it, but that will change with an upcoming commit to use the native drawing API for taking care of at least the highlighting part. Change-Id: I97cebdf2470ea1ab92e56642e4b4fd4255542994 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/170340 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
4 daysicon choice ctrl: Decouple focus from text/icon drawingMichael Weghorn
Move focus drawing out of `SvxIconChoiceCtrl_Impl::PaintItem`, where it was drawn for the `IcnViewFieldType::Text` case, since that's not actually related to drawing the text. Move it to just after the (only) call to `SvxIconChoiceCtrl_Impl::PaintItem` with the `IcnViewFieldType::Text` parameter instead. Change-Id: I7c2bda33cb9107535569492db70d3b23b9280a09 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/170339 Reviewed-by: Michael Weghorn <m.weghorn@posteo.de> Tested-by: Jenkins
4 daystdf#161659: icon choice ctrl: Make use of the extra spaceMichael Weghorn
commit f6ea343e6fb2dc3539823dee60c9c6f96fc16275 Date: Thu May 30 12:26:11 2024 +0200 tdf#161030 Improve vertical Tab list display increased the width for items in the vertical tab control. Make use of the new space also for items using an icon. This causes them to be centered again (tdf#161659). When using the kf5 VCL plugin with the default Breeze style, this also causes the "New Document" text of the last item in the "Insert" -> "Hyperlink" dialog to no longer be cut off (see attachment 149544 from tdf#123623 for the previous behavior). (As a side note, switching `SvxIconChoiceCtrlEntry::eTextMode` from `SvxIconChoiceCtrlTextMode::Short` to `SvxIconChoiceCtrlTextMode::Full` would generally allow text to wrap and use multiple lines instead of cutting off text at the end of the single line.) Change-Id: I7ec2575bbeb895c034dfc9f2033cea3e3986305a Reviewed-on: https://gerrit.libreoffice.org/c/core/+/170262 Reviewed-by: Heiko Tietze <heiko.tietze@documentfoundation.org> Reviewed-by: Rafael Lima <rafael.palma.lima@gmail.com> Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
5 daysicon choice ctrl: Drop unused forward-declarationMichael Weghorn
Change-Id: I7035f9495b6b2fb0f602f88fef9b3c837417b875 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/170250 Reviewed-by: Michael Weghorn <m.weghorn@posteo.de> Tested-by: Jenkins
5 daysicon choice ctrl: Drop code for non-autoposition modeMichael Weghorn
As shown by Change-Id: I8d19e15d8c6e95cdc5e797e6b9524d9299dc1fdd Author: Michael Weghorn <m.weghorn@posteo.de> Date: Tue Jul 9 17:32:01 2024 +0200 icon choice ctrl: Always use SvxIconChoiceCtrlPositionMode::AutoArrange , `SvxIconChoiceCtrlPositionMode::AutoArrange` is the only positioning mode that actually gets used, so simplify the code by dropping the effectively unused code for `SvxIconChoiceCtrlPositionMode::Free`. (`git show --ignore-space-change` can help to see the "actual changes" more easily.) Change-Id: Icd5ee30eafefafbf597681e28521d5a566ea0af3 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/170249 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
5 daysicon choice ctrl: Always use SvxIconChoiceCtrlPositionMode::AutoArrangeMichael Weghorn
`SvxIconChoiceCtrl_Impl` is only used by `SvtIconChoiceCtrl` and that one explicitly sets `SvxIconChoiceCtrlPositionMode::AutoArrange` in its ctor to override the `SvxIconChoiceCtrlPositionMode::Free` default. In a first step, default to `SvxIconChoiceCtrlPositionMode::AutoArrange` and drop the setter, to simplify the code. Further cleanup will be done in a follow-up commit. Change-Id: I8d19e15d8c6e95cdc5e797e6b9524d9299dc1fdd Reviewed-on: https://gerrit.libreoffice.org/c/core/+/170248 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
5 daysicon choice ctrl: Simplify list pos handlingMichael Weghorn
Instead of storing the current list position in the `SvxIconChoiceCtrlEntry` and having to take care of updating that when entries are added to or removed from the `SvxIconChoiceCtrl_Impl` in order to keep it in sync with the elements in the vector, just calculate and return the vector index in `SvxIconChoiceCtrl_Impl::GetEntryListPos` on demand. Change-Id: Iec4e700c1ccc1261fde778b1b38af4dbac5a14c4 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/170247 Reviewed-by: Michael Weghorn <m.weghorn@posteo.de> Tested-by: Jenkins
5 daysicon choice ctrl: Drop unused GRID_NOT_FOUND defineMichael Weghorn
Unused since: commit 5db79db0f0c7c432d933433192506d234f6cd26e Author: Michael Weghorn <m.weghorn@posteo.de> Date: Wed Jul 3 10:54:48 2024 +0200 tdf#161853 Drop unused SvxIconChoiceCtrl_Impl::GetPredecessorGrid Change-Id: I146da489fcc1faa4915d2af5449131729cf042bf Reviewed-on: https://gerrit.libreoffice.org/c/core/+/170213 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
5 daysicon choice ctrl: Drop SvxIconChoiceCtrl_Impl::nMaxVirtWidthMichael Weghorn
Since Change-Id: I52c40acf2024b25b0cd713fd7c91d7e0b59f4663 Author: Michael Weghorn <m.weghorn@posteo.de> Date: Tue Jul 9 11:55:26 2024 +0200 icon choice ctrl: Drop WB_ALIGN_TOP , it is only written to, but never read, so drop it. Change-Id: Iee03649a1ff99bf77383710835995b393cab689e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/170212 Reviewed-by: Michael Weghorn <m.weghorn@posteo.de> Tested-by: Jenkins
5 daysicon choice ctrl: Drop WB_ALIGN_LEFTMichael Weghorn
At least since Change-Id: I52c40acf2024b25b0cd713fd7c91d7e0b59f4663 Author: Michael Weghorn <m.weghorn@posteo.de> Date: Tue Jul 9 11:55:26 2024 +0200 icon choice ctrl: Drop WB_ALIGN_TOP , it's quite clear that the `WB_ALIGN_LEFT` is always set, so drop the flag and code paths only relevant if the flag were not set. Change-Id: If736ffc386833d3ff188d4174baf36bd2bcca57e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/170209 Reviewed-by: Michael Weghorn <m.weghorn@posteo.de> Tested-by: Jenkins
5 daysicon choice ctrl: Drop WB_ALIGN_TOPMichael Weghorn
The `WB_ALIGN_TOP` flag is never set, last code path that would have set it (but was apparently already unused back then) was dropped in commit 80bf2654d72995f6b13c5addcd7c5e89ec76b0d9 Author: Caolán McNamara <caolanm@redhat.com> Date: Mon Jun 23 15:34:02 2014 +0100 meChoicePos is always PosLeft, simplify Change-Id: I40085b0db89484f0d24ecaccf910f4399198294d Therefore, drop the flag and all related code altogether. Change-Id: I52c40acf2024b25b0cd713fd7c91d7e0b59f4663 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/170208 Reviewed-by: Michael Weghorn <m.weghorn@posteo.de> Tested-by: Jenkins
5 daysicon choice ctrl: Don't explicitly call base class impl of methodMichael Weghorn
`SvtIconChoiceCtrl` doesn't override any of these methods, so there's no need to explicitly call the base class implementations. (And `Control` also doesn't implement them, so the `Window` base class implementations are used anyway.) Change-Id: I8196a568433416e10c2d0d50fad64b4525577679 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/170207 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
6 daysloplugin:unusedmethodsNoel Grandin
Change-Id: I799129a3449ebcbb7b7005b933349cd2e6287860 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/170185 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
11 daystdf#144981 tdf#161853 icon choice ctrl: One selection border is enoughMichael Weghorn
The previous `if (bSelected)` body a little bit further up in `SvxIconChoiceCtrl_Impl::PaintEntry` already has rRenderContext.DrawRect(CalcFocusRect(pEntry)); to draw a border around the selected entry. One border is enough, so don't draw another one using `vcl::RenderTools::DrawSelectionBackground` (pass false instead of true for the `bDrawBorder` param). For the gen and the Qt-based VCL plugins that use Cairo rendering by default, this avoids the additional misplaced and not properly cleared selection rectangle. See tdf#144981 comment 6 for where the problematic handling in the Cairo rendering path is, but which also mentions that changing this would break other things. For then gen VCL plugin using Skia (`SAL_FORCESKIA=1`) or on Windows, I see no visual change for either the "Hyperlink" dialog (Ctrl+K) or the "Page Style" dialog (Alt+Shift+P) in Writer with this change in place while moving focus between entries. On Windows, when moving focus out of the icon choice control (into the tab page), the border now remains black on all sides instead of being partially black (at least the top border) and partially blue (at least the bottom border), so it's more consistent there as well now. Change-Id: I6db415344e9276ce89d41c6b40fb93fc38ddf9a2 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/169972 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
11 daystdf#161853 Simplify SvxIconChoiceCtrl_Impl::RepaintSelectedEntriesMichael Weghorn
* Drop superfluous check at the start. (Loop will just do nothing if there are no elements.) * Use range-based for. Change-Id: Idbe0ba67268cf76d38b27fcf94e59eb8abd5f566 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/169971 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
11 daystdf#161853 Drop IconChoiceFlags::SelectingRectMichael Weghorn
Since commit 35775e291d6570b29dc0120e4839c720152b5149 Author: Michael Weghorn <m.weghorn@posteo.de> Date: Tue Jul 2 12:34:57 2024 +0200 tdf#161853 Drop now unused SvxIconChoiceCtrl_Impl::SelectRect etc. , that flag is never set, so there's no need to check for that. Drop it. Change-Id: Ibc2efdfc9b54c19bb90c2e71cc80e0cb4a0321a1 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/169970 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
11 daystdf#161853 SvxIconChoiceCtrlEntry: Drop means to manually set neighboursMichael Weghorn
This mechanism to manually sort the entries by setting a link/pointer to the neighbours isn't actually used, so drop the code to maintain a linked list. See Change-Id: I44eceb41866bb6d99ccea032f98637a42dabc9ee Author: Michael Weghorn <m.weghorn@posteo.de> Date: Wed Jul 3 10:44:46 2024 +0200 tdf#161853 Drop always null SvxIconChoiceCtrl_Impl::pHead Change-Id: Ib939145999725232d803103dc1fd0b49fa2d425a Reviewed-on: https://gerrit.libreoffice.org/c/core/+/169916 Reviewed-by: Michael Weghorn <m.weghorn@posteo.de> Tested-by: Jenkins
11 daystdf#161853 Drop unused SvxIconChoiceCtrl_Impl::GetPredecessorGridMichael Weghorn
Unused since: Change-Id: I4a412389669f9cbc6701b7ed78bd45f838e13590 Author: Michael Weghorn <m.weghorn@posteo.de> Date: Wed Jul 3 10:34:20 2024 +0200 tdf#161853 Drop unused SvxIconChoiceCtrl_Impl::{Set,Find}EntryPredecessor Change-Id: I3688c74d0cdf01c68913767f6aa214c54ab719cf Reviewed-on: https://gerrit.libreoffice.org/c/core/+/169915 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
11 daystdf#161853 Drop always null SvxIconChoiceCtrl_Impl::pHeadMichael Weghorn
With Change-Id: I13ae34ffc51972bef746e53fcd46e65ea9fbf82c Author: Michael Weghorn <m.weghorn@posteo.de> Date: Wed Jul 3 10:38:56 2024 +0200 tdf#161853 Drop unused SvxIconChoiceCtrl_Impl::InitPredecessors in place, it can be seen that `SvxIconChoiceCtrl_Impl::pHead` is always nullptr as it's initialized to that and never assigned a different value afterwards. Therefore, drop it and all related code. Drop the now unused `bKeepPredecessors` param from `SvxIconChoiceCtrl_Impl::Arrange` and `SvxIconChoiceCtrl_Impl::ImpArrange`. (Use `git show --ignore-space change` to more clearly see the "actual changes"). Change-Id: I44eceb41866bb6d99ccea032f98637a42dabc9ee Reviewed-on: https://gerrit.libreoffice.org/c/core/+/169914 Reviewed-by: Michael Weghorn <m.weghorn@posteo.de> Tested-by: Jenkins
11 daystdf#161853 Drop unused SvxIconChoiceCtrl_Impl::InitPredecessorsMichael Weghorn
Unused since: Change-Id: I4a412389669f9cbc6701b7ed78bd45f838e13590 Author: Michael Weghorn <m.weghorn@posteo.de> Date: Wed Jul 3 10:34:20 2024 +0200 tdf#161853 Drop unused SvxIconChoiceCtrl_Impl::{Set,Find}EntryPredecessor Change-Id: I13ae34ffc51972bef746e53fcd46e65ea9fbf82c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/169913 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
11 daystdf#161853 Drop unused SvxIconChoiceCtrl_Impl::{Set,Find}EntryPredecessorMichael Weghorn
Both methods are unused since: Change-Id: I926b03a0f2054c21f8ab96eeee0083156443d2c0 Author: Michael Weghorn <m.weghorn@posteo.de> Date: Wed Jul 3 10:17:41 2024 +0200 tdf#161853 Drop unused SvxIconChoiceCtrl_Impl::SetEntryPos Further cleanup will be done in following commits. Change-Id: I4a412389669f9cbc6701b7ed78bd45f838e13590 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/169912 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
11 daystdf#161853 Drop unused SvxIconChoiceCtrl_Impl::SetEntryPosMichael Weghorn
Unused since: Change-Id: I63ab1272140a0d5386538e6b749ba0f652f49c38 Author: Michael Weghorn <m.weghorn@posteo.de> Date: Wed Jul 3 10:15:27 2024 +0200 tdf#161853 Drop SvxIconViewFlags::POS_MOVED Change-Id: I926b03a0f2054c21f8ab96eeee0083156443d2c0 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/169911 Reviewed-by: Michael Weghorn <m.weghorn@posteo.de> Tested-by: Jenkins
11 daystdf#161853 Drop SvxIconViewFlags::POS_MOVEDMichael Weghorn
The flag is never set, so there's no need to check or clear it either. Change-Id: I63ab1272140a0d5386538e6b749ba0f652f49c38 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/169910 Reviewed-by: Michael Weghorn <m.weghorn@posteo.de> Tested-by: Jenkins
11 daystdf#161853 Drop SvxIconViewFlags::POS_LOCKEDMichael Weghorn
The flag is never set, so there's no need to check or clear it either. The only method setting it (`SvxIconChoiceCtrl_Impl::LockEntryPos`) was dropped in commit 18d18c8a5646868a8229dea9ffe3f46888c2bad5 Author: Joseph Powers <jpowers27@cox.net> Date: Sat Jul 23 07:16:14 2011 -0700 unusedcode.easy: svxIconChoiceCtrl_Impl Doing List cleanup, I ran into SaveSelection() and decided to delete it. While I was in the class, I went ahead and cleanup them all up. , but that method was already unused by then. Drop the flag and related code. Change-Id: I9b886f3a63444d502ef8c488437889a2b05e065a Reviewed-on: https://gerrit.libreoffice.org/c/core/+/169909 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
11 daystdf#161853 Drop SvxIconChoiceCtrl_Impl::bUpdateModeMichael Weghorn
It's initialized to true and since Change-Id: I0c6f191017b13fffee57d1e5eba1c03c05736ee2 Author: Michael Weghorn <m.weghorn@posteo.de> Date: Wed Jul 3 09:09:22 2024 +0200 tdf#161853 icon choice ctrl: Drop WB_SMART_ARRANGE handling , the value never changes, so drop it and simplify accordingly. Change-Id: I05007727e29a7884165fa25c668f139a96b7c4c5 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/169905 Reviewed-by: Michael Weghorn <m.weghorn@posteo.de> Tested-by: Jenkins
11 daystdf#161853 icon choice ctrl: Drop WB_SMART_ARRANGE handlingMichael Weghorn
That flag is unused since `OApplicationIconControl` was ported away from using `SvtIconChoiceCtrl` in commit fd2ea8e03510c6a99ec8be6228b7422f6c5b182b Date: Wed Aug 19 14:59:33 2020 +0100 weld OApplicationSwapWindow , so drop it. Change-Id: I0c6f191017b13fffee57d1e5eba1c03c05736ee2 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/169904 Reviewed-by: Michael Weghorn <m.weghorn@posteo.de> Tested-by: Jenkins
11 daystdf#161853 Drop SvxIconChoiceCtrl_Impl::MouseButtonUpMichael Weghorn
Since commit af9413cb4ad49c0b4854c08cc2804644220755ae Author: Michael Weghorn <m.weghorn@posteo.de> Date: Tue Jul 2 11:53:27 2024 +0200 tdf#161853 icon choice ctrl: Drop support for non-single selection modes , the `IconChoiceFlags::DownDeselect` and `IconChoiceFlags::DownCtrl` flags are never set, so `SvxIconChoiceCtrl_Impl::MouseButtonUp` wouldn't effectively do anything. Drop it and the now unused flags. Also drop the `SvtIconChoiceCtrl` override for `Control::MouseButtonUp`. Change-Id: I06808726389f31a426cba36e627b4305fb362bee Reviewed-on: https://gerrit.libreoffice.org/c/core/+/169903 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
11 daystdf#161853 Drop SvxIconChoiceCtrl_Impl::bHighlightFramePressedMichael Weghorn
Since commit af9413cb4ad49c0b4854c08cc2804644220755ae Author: Michael Weghorn <m.weghorn@posteo.de> Date: Tue Jul 2 11:53:27 2024 +0200 tdf#161853 icon choice ctrl: Drop support for non-single selection modes , `SvxIconChoiceCtrl_Impl::bHighlightFramePressed` is always false, so drop it and the corresponding handling. This also means that the `bKeepHighlightFlags` param for `SvxIconChoiceCtrl_Impl::SetEntryHighlightFrame` is now unused, so drop that as well. Change-Id: I278318b2bda14b06339a375b683a49f8594e2e34 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/169902 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
12 daystdf#161853 Drop SvxIconChoiceCtrl_Impl::GetSelectionCountMichael Weghorn
Support for anything except single selection mode was dropped in Change-Id: I0acde664d695571e9058b9829ad02745a4abaad2 Author: Michael Weghorn <m.weghorn@posteo.de> Date: Tue Jul 2 11:53:27 2024 +0200 tdf#161853 icon choice ctrl: Drop support for non-single selection modes , so the selection count will usually be 1. The only use is in `SvxIconChoiceCtrl_Impl::GetFirstSelectedEntry`, and should it be possible for no entry to be selected, that will still return `nullptr` anyway. Change-Id: I46562b448b59ba7013ff2e98cfba5925347e01a4 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/169886 Reviewed-by: Michael Weghorn <m.weghorn@posteo.de> Tested-by: Jenkins
12 daystdf#161853 icon choice ctrl: Drop unused async select handlerMichael Weghorn
`SvtIconChoiceCtrl` and its implementation class, `SvxIconChoiceCtrl_Impl`, is only used in `VerticalTabControl`. That one sets the `WB_HIGHLIGHTFRAME` bit, so the code path using the asynchronous handling in `SvxIconChoiceCtrl_Impl::CallSelectHandler` never gets used. The comment in there also explains that this should happen synchronously in case of single-select mode, which is by now the only implemented mode. Therefore, drop the asynchronous handling altogether. Change-Id: I238f3bb26b590df32f6dc7e67c402b2fb1762a62 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/169879 Reviewed-by: Michael Weghorn <m.weghorn@posteo.de> Tested-by: Jenkins
12 daystdf#161853 icon choice ctrl: Drop unused WB_NOASYNCSELECTHDLMichael Weghorn
That bit is never set, so drop it. Change-Id: Iffa13bd0a679505bdc47bc3fb5d828969ac9eb1b Reviewed-on: https://gerrit.libreoffice.org/c/core/+/169878 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
12 daystdf#161853 Drop now unused SvxIconChoiceCtrl_Impl::SelectRect etc.Michael Weghorn
`SvxIconChoiceCtrl_Impl::SelectRect` is unused since: Change-Id: Ifd60c030b91636acc58298f0e7b97b69c1312be1 Author: Michael Weghorn <m.weghorn@posteo.de> Date: Tue Jul 2 12:02:05 2024 +0200 tdf#161853 Simplify SvxIconChoiceCtrl_Impl::SetCursor_Impl Drop it, and drop the `GetHotSpot` helper that was only used by it. Also drop `SvxIconChoiceCtrl_Impl::aCurSelectionRect` that is by now only written to, but never read. Change-Id: I1fb833acce1d4a0d96c45bca2eda2d5969baff77 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/169877 Reviewed-by: Michael Weghorn <m.weghorn@posteo.de> Tested-by: Jenkins
12 daystdf#161853 Drop now unused SvxIconChoiceCtrl_Impl::SelectRangeMichael Weghorn
Unused since: Change-Id: Ifd60c030b91636acc58298f0e7b97b69c1312be1 Author: Michael Weghorn <m.weghorn@posteo.de> Date: Tue Jul 2 12:02:05 2024 +0200 tdf#161853 Simplify SvxIconChoiceCtrl_Impl::SetCursor_Impl Change-Id: I770e859e1bfd3610413f125cbfa3de0a9be4e66a Reviewed-on: https://gerrit.libreoffice.org/c/core/+/169876 Reviewed-by: Michael Weghorn <m.weghorn@posteo.de> Tested-by: Jenkins
12 daystdf#161853 icon choice ctrl: Drop tracking selected rectsMichael Weghorn
`SvxIconChoiceCtrl_Impl::AddSelectedRect` is unused since Change-Id: Ifd60c030b91636acc58298f0e7b97b69c1312be1 Author: Michael Weghorn <m.weghorn@posteo.de> Date: Tue Jul 2 12:02:05 2024 +0200 tdf#161853 Simplify SvxIconChoiceCtrl_Impl::SetCursor_Impl That means that no rects are ever added to `SvxIconChoiceCtrl_Impl::aSelectedRectList`, so drop it and the methods to manage its content. Change-Id: Ia2221ab2d4e8319e8fd103c7e4e02c4fdf5926fb Reviewed-on: https://gerrit.libreoffice.org/c/core/+/169875 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
12 daystdf#161853 Drop now unused SvxIconChoiceCtrl_Impl::SelectAllMichael Weghorn
Unused since: Change-Id: I0acde664d695571e9058b9829ad02745a4abaad2 Author: Michael Weghorn <m.weghorn@posteo.de> Date: Tue Jul 2 11:53:27 2024 +0200 tdf#161853 icon choice ctrl: Drop support for non-single selection modes Also drop the now unused `SvxIconChoiceCtrl_Impl::pAnchor`. Change-Id: I70351b1ad37a691ba18bf981972f97ab981cbe1e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/169874 Reviewed-by: Michael Weghorn <m.weghorn@posteo.de> Tested-by: Jenkins
12 daystdf#161853 Simplify SvxIconChoiceCtrl_Impl::SetCursor_ImplMichael Weghorn
Since Change-Id: I0acde664d695571e9058b9829ad02745a4abaad2 Author: Michael Weghorn <m.weghorn@posteo.de> Date: Tue Jul 2 11:53:27 2024 +0200 tdf#161853 icon choice ctrl: Drop support for non-single selection modes , the `bShift` and `bMod1` params passed to `SvxIconChoiceCtrl_Impl::SetCursor_Impl` are always false, so drop them and their handling. With that dropped, the `pOldCursor` param also becomes unused, so drop that as well. Change-Id: Ifd60c030b91636acc58298f0e7b97b69c1312be1 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/169873 Reviewed-by: Michael Weghorn <m.weghorn@posteo.de> Tested-by: Jenkins
12 daystdf#161853 icon choice ctrl: Drop support for non-single selection modesMichael Weghorn
Since commit fd2ea8e03510c6a99ec8be6228b7422f6c5b182b Date: Wed Aug 19 14:59:33 2020 +0100 weld OApplicationSwapWindow , the `SvtIconChoiceCtrl` and its implementation class, `SvxIconChoiceCtrl_Impl`, is only used in `VerticalTabControl`. That one was explicitly enabling `SelectionMode::Single` in its ctor. Therefore, other modes are unused. Drop support for them altogether to simplify the implementation. This commit primarily drops `SvxIconChoiceCtrl_Impl::eSelectionMode` and uses thereof, and allows for further simplification in upcoming commits. Change-Id: I0acde664d695571e9058b9829ad02745a4abaad2 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/169872 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
12 daystdf#161853 icon choice control: Drop WB_NOSELECTIONMichael Weghorn
It's never set, so drop it, also to prepare for further cleanup in upcoming commits. Change-Id: Id1751b68e3666130a69b981f9095303115d30caa Reviewed-on: https://gerrit.libreoffice.org/c/core/+/169871 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
13 daystdf#161853 vcl: Drop unnecessary indirection for icon choice controlMichael Weghorn
Just call `SvxIconChoiceCtrl_Impl::SetEntryTextMode` directly, instead of doing so via the `pView`, and drop the now unused `SvtIconChoiceCtrl::SetEntryTextMode`. Change-Id: I9b42f1bee6984e2c34814addd998cefd56dbe7f0 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/169837 Reviewed-by: Michael Weghorn <m.weghorn@posteo.de> Tested-by: Jenkins
13 daystdf#161853 vcl: Simplify SvxIconChoiceCtrl_Impl::SetEntryTextModeMichael Weghorn
It never gets called with a null SvxIconChoiceCtrlEntry, so change the param from pointer to reference (also in `SvtIconChoiceCtrl::SetEntryTextMode`), and drop the handling for the never-reached null case. This also makes SvtIconChoiceCtrl::eTextMode become unused, so drop it. Change-Id: I428c47dcbc85568009be3454ffa7a8b977c6d095 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/169836 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
13 daystdf#161853 vcl: Drop SvtIconChoiceCtrl::GetEntryTextMichael Weghorn
Just call `SvxIconChoiceCtrlEntry::GetText` directly instead of having an extra level of indirection to get the same result. Change-Id: I6a299f5de4e7979044ade11e5441260383ce0b87 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/169834 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
13 daystdf#161853 vcl: Drop SvtIconChoiceCtrl::DrawEntryImageMichael Weghorn
Just draw the image using the render context right in `SvxIconChoiceCtrl_Impl::PaintItem` instead of having a very specialized static method that's only used from there. Change-Id: Idf8967f6df3823742445906e558fcd7f532271af Reviewed-on: https://gerrit.libreoffice.org/c/core/+/169833 Reviewed-by: Michael Weghorn <m.weghorn@posteo.de> Tested-by: Jenkins
13 daystdf#161853 vcl: Drop unused SvxIconChoiceCtrlColumnInfoMichael Weghorn
Unused since: Change-Id: I113a00d41a40b10df9d4d6dbb71565d462d9f8ae Author: Michael Weghorn <m.weghorn@posteo.de> Date: Mon Jul 1 13:24:56 2024 +0200 tdf#161853 vcl: Drop unused SvxIconChoiceCtrl_Impl::GetColumn Change-Id: Ie32fcc443323bd2840aa14edefc533b743e1ed75 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/169825 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
13 daystdf#161853 vcl: Drop SvxIconChoiceCtrl_Impl::GetColumnMichael Weghorn
Since no column is ever set, see Change-Id: I06a877d5ebffef95495cc3e57be088cdc08d71fe Author: Michael Weghorn <m.weghorn@posteo.de> Date: Mon Jul 1 13:19:18 2024 +0200 tdf#161853 vcl: Drop unused SvxIconChoiceCtrl_Impl::SetColumn , there are also no columns to get, so drop `SvxIconChoiceCtrl_Impl::GetColumn` and `SvxIconChoiceCtrl_Impl::m_pColumns` altogether. Change-Id: I113a00d41a40b10df9d4d6dbb71565d462d9f8ae Reviewed-on: https://gerrit.libreoffice.org/c/core/+/169804 Reviewed-by: Michael Weghorn <m.weghorn@posteo.de> Tested-by: Jenkins
13 daystdf#161853 vcl: Drop unused SvxIconChoiceCtrl_Impl::SetColumnMichael Weghorn
It's unused since commit b64751ba28fd69fb2a93a21b10a92b68f4dd2097 Date: Fri Apr 26 10:47:00 2024 +0200 tdf#99528 Properly layout vertical tabs without icons Change-Id: I06a877d5ebffef95495cc3e57be088cdc08d71fe Reviewed-on: https://gerrit.libreoffice.org/c/core/+/169803 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
13 daystdf#161853 vcl: Simplify SvxIconChoiceCtrl_Impl::CalcTextRectMichael Weghorn
Drop the `OUString* pStr` param and always use the entry text instead. This is the default, and all callers explicitly passing a string were passing the entry text anyway. Change-Id: I0ef46ca001fe568febb02e132df379c360d8282a Reviewed-on: https://gerrit.libreoffice.org/c/core/+/169802 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>
13 daystdf#161853 vcl: Pass vector by const ref instead of pointerMichael Weghorn
Pass the vector of rectangles by const ref instead of as pointer for both variants of `SvxIconChoiceCtrl_Impl::SelectRect`, which also makes it clearer that this is never nullptr. Change-Id: I10c9ff27602128eb878d03125d966e1fbf198237 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/169797 Tested-by: Jenkins Reviewed-by: Michael Weghorn <m.weghorn@posteo.de>