summaryrefslogtreecommitdiff
path: root/vcl
AgeCommit message (Collapse)Author
2019-01-22Revert "lok: custom widgets: render editbox borders"Ashod Nakashian
Looks like this is no longer needed to correctly render editbox borders. Not clear what fixed the issue. This reverts commit 9c5bc82fdfa67d0149806a0b55962edc7925dd0f.
2019-01-18vcl: LOK: notify of dialog creation before size changeAshod Nakashian
Notifying the size change of a non-existing dialog is worse than useless. This also fixes the issue with positioning dialogs in the center of the client window. Change-Id: I2e8163f4c5a0a09f79ea11c704c250b17a158948 Reviewed-on: https://gerrit.libreoffice.org/66517 Reviewed-by: Ashod Nakashian <ashnakash@gmail.com> Tested-by: Ashod Nakashian <ashnakash@gmail.com>
2019-01-17Resolves: tdf#120632 consider submenus on restoring focus from menuCaolán McNamara
additionally to the menu having focus, if a submenu of that menu has focus, then restore the focus when the whole hierarchy execution ends return focus to the toplevel menu's saved focus widget Change-Id: Iefd467fb1ba67ffd0a303505a893d2453e0ffbb3 Reviewed-on: https://gerrit.libreoffice.org/66132 Tested-by: Xisco Faulí <xiscofauli@libreoffice.org> Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com> (cherry picked from commit 74f07d85d37b9a90b625f33bbf4dbd268f78b2a4)
2019-01-17tdf#121855 like osx case don't search near-infinite calc grid for focusCaolán McNamara
Change-Id: Ie6bccd2781fbbdc5f4d5dc2eb6903191aafe8265 Reviewed-on: https://gerrit.libreoffice.org/64521 Tested-by: Jenkins Reviewed-by: Markus Mohrhard <markus.mohrhard@googlemail.com> (cherry picked from commit 78c52b1ab97397f99af279df78df798efde91136)
2019-01-17Resolves: tdf#121555 sometime crash on menu hierarchy changeCaolán McNamara
seems menubar gets set to dirty due to some menu activity that needs a refresh, but then the hierarchy changes and as its already dirty the maUpdateMenuBarIdle doesn't get launched the placement of the mbMenuBar test inside the loop through parents shows some confusion as to what which mbMenuBar might be met, the one belonging to this, or that of the parent being traversed, but it does seem to be the one belonging to this. Change-Id: I0b9dceadf64f7adf18eb1aa2dbda9bbfbcb66e0a Reviewed-on: https://gerrit.libreoffice.org/65465 Tested-by: Jenkins Tested-by: Xisco Faulí <xiscofauli@libreoffice.org> Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com> (cherry picked from commit c72ddb5e185d33e17762bc96207b86948950e173)
2019-01-17tdf#121778: Work around odd macOS 10.14 graphicsContextWithWindow failureStephan Bergmann
Although Stephan's original commit message below talks mainly about a unit test, this change helps at least in tdf#121778, too, and possibly other cases. It is interesting that wihout this change, a lot of these warnings are printed before the crash: warn:vcl.quartz:42670:52899343:vcl/quartz/salvd.cxx:312: No context Original commit message: When running on macOS 10.14, both master and libreoffice-6-1 (at least) started to fail CppunitTest_vcl_bitmap_render_test with > /Users/stephan/Software/lo2/core/vcl/qa/cppunit/bitmaprender/BitmapRenderTest.cxx:90: Assertion > Test name: BitmapRenderTest::testTdf113918 > equality assertion failed > - Expected: mcBlueOrIndex: 255, mcGreen: 255, mcRed: 255, mcAlpha: 0 > - Actual : mcBlueOrIndex: 1, mcGreen: 112, mcRed: 15, mcAlpha: 0 in --enable-debug/--enable-dbgutil builds. I tracked that down to the OSL_DEBUG_LEVEL>0--only call to Scheduler::ProcessEventsToIdle in test::BootstrapFixture::setUp (test/source/bootstrapfixture.cxx). If that call is also included in non-debug (i.e., OSL_DEBUG_LEVEL=0) builds, or if it is removed from all builds and instead an unsuspecting [NSApp nextEventMatchingMask: 0 untilDate: nil inMode: NSDefaultRunLoopMode dequeue: NO]; is added directly before the call to pVDev->SetOutputSizePixel(Size(2480, 3508)); at the start of BitmapRenderTest::testTdf113918 (vcl/qa/cppunit/bitmaprender/BitmapRenderTest.cxx:76), the test always fails. What happens is that, after such a nextEventMatchingMask call done, the call to NSGraphicsContext graphicsContextWithWindow in AquaSalVirtualDevice::SetSize (as called from the SetOutputSizePixel call in the test) returns nil, for unclear reasons. Until those underlying reasons are understood, change the code of SetSize to "fall back to a bitmap context" also in case the graphicsContextWithWindow call returned nil. Reviewed-on: https://gerrit.libreoffice.org/61519 Tested-by: Jenkins Reviewed-by: Stephan Bergmann <sbergman@redhat.com> (cherry picked from commit e659c6a1857fbb8e5a6e8ff60fe241483eea32dd) Change-Id: I604ebd2c444b58610e4ed73ec70af87b0a08e864 Reviewed-on: https://gerrit.libreoffice.org/64576 Reviewed-by: Stephan Bergmann <sbergman@redhat.com> Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com> (cherry picked from commit 9d7897521efd0c37693241e84c562ea32750740e)
2019-01-17vcl: protect more outdev functions for disposed stateMiklos Vajna
This is similar to commit c612c3b0aed9ad7f7f42b4313f821b71995ead15 (protect more printer code-paths., 2015-03-20), but handles more OutputDevice member functions. The user-level problem was that in case a macro creates a dialog with an embedded Chart document and the user clicks on e.g. the chart title (so an sdr::overlay::OverlayManager is created), then it can happen during closing the dialog that the overlay manager calls these functions after the output device is disposed. Reviewed-on: https://gerrit.libreoffice.org/66403 Reviewed-by: Miklos Vajna <vmiklos@collabora.com> Tested-by: Jenkins (cherry picked from commit 8b461713c0c86bc19af739aada4b1345cfa5dfbe) Conflicts: vcl/qa/cppunit/outdev.cxx Change-Id: I8021fb795704f19e52d70505804d68725c636ce0 Reviewed-on: https://gerrit.libreoffice.org/66455 Reviewed-by: Andras Timar <andras.timar@collabora.com> Tested-by: Andras Timar <andras.timar@collabora.com>
2019-01-12Fix headless build on LinuxThorsten Behrens
Conditional-compile some OpenGL-ness that crept in Change-Id: I8d12f34db3b4875470a0d81e9ef6a1654153b206 Reviewed-on: https://gerrit.libreoffice.org/63676 Tested-by: Jenkins Reviewed-by: Thorsten Behrens <Thorsten.Behrens@CIB.de> (cherry picked from commit 2bf8469cbca01e53043097708909f6cdf2aae264) Reviewed-on: https://gerrit.libreoffice.org/63688 (cherry picked from commit b51ca21cd6435a8c8df8df99e4d75a59ea9a2bf1)
2019-01-04Fix trivial warning.Michael Meeks
Change-Id: Id1dd556b10e734553cc85ab4641d1a2f9bae6c82
2018-12-10Strip _dark and _svg iconset filenames for displayJan-Marek Glogowski
The new display name code handles _dark and _svg like an property or extension. It strips both from the back of the base filename and adds them in brackets to the display name as (SVG), (dark) and (SVG + dark). This way we can drop the special handling for breeze_dark and sifr_dark display names. Change-Id: I0ebc8392582d7240b51528078de9d81b36e5a9e9 Reviewed-on: https://gerrit.libreoffice.org/62788 Tested-by: Jenkins Reviewed-by: Jan-Marek Glogowski <glogow@fbihome.de>
2018-12-10custom widgets: Rename 'stock' to 'action'.Jan Holesovsky
If the button has this property, it means it is located in the action area, not that it is a stock button per se. Change-Id: Ia57ad24d8cd4ff1d7b74d7ef82da0f352fe3deb3
2018-12-10custom widgets: Better way to find out whether to use the 'stock' theming.Jan Holesovsky
Change-Id: I75ea7b2d407d3acfd3094f17509c89240c48f50a
2018-12-10LOK: dialogs: limit listbox/combobox drop-down lengthAshod Nakashian
Dialogs routed to the LOK client have limited real estate on the screen because dialogs are rendered on a canvas. When the listbox drop-down bleeds outside the dialog area, on the desktop it's no problem, but in the browser, that requires a larger canvas and that brings a host of problems. Here we limit the maximum length of listbox/combobox drop-down lists to avoid this situation. This would ideally be configured via ListBoxMaximumLineCount alas it doesn't work. Change-Id: I55fff28dbfc59dec36714e221f76cf4160ba1505
2018-12-10use Image(OUString) instead of Image(Bitmap(OUString))Noel Grandin
which benefits LOOL since we can delay creating the image until we know the dpi setting of the display we are going to write to. Achieved by perl -pi -w -e "s/\bImage\s*\(\s*BitmapEx\s*\((\w+)\s*\)\s*\)/Image\(\1\)/g" $( git grep -lw "BitmapEx" ) followed by git grep -nP '\bImage\s*\(\s*BitmapEx\s*\(' followed by commenting out the BitmapEx(OUString) constructor and seeing what needed adjusting. Change-Id: I3224e11937d720fa484b0d659d25673a9e809267 Reviewed-on: https://gerrit.libreoffice.org/64760 Tested-by: Jenkins Reviewed-by: Michael Meeks <michael.meeks@collabora.com> Reviewed-on: https://gerrit.libreoffice.org/64860 Tested-by: Michael Meeks <michael.meeks@collabora.com>
2018-12-08utility constructor for Image "private:graphicrepository" urlsNoel Grandin
Change-Id: I118039f4e47818a43da9302ce3550ea800522675 Reviewed-on: https://gerrit.libreoffice.org/64765 Reviewed-by: Michael Meeks <michael.meeks@collabora.com> Tested-by: Jenkins Reviewed-on: https://gerrit.libreoffice.org/64803 Tested-by: Michael Meeks <michael.meeks@collabora.com>
2018-12-06Use lazy-loading stock Image to simplify framework image lists.Michael Meeks
Project stock names through XGraphic via origin URL. Change-Id: Ib445694f7c142a163ef7e7bc0beea39b88b99e14 (cherry picked from commit 77b88eebaadebb626108172e4f2de36c60960051)
2018-12-06Use HiDPI scaling to load scaled images.Michael Meeks
We render these at apparently the same pixel size as normal images, but the underlying canvas is larger so these then end up pixel-matching the true underlying grid. Change-Id: Ic4b749127e9c81da78d06b34d9f88c5635dc64b9 (cherry picked from commit 1799b122ef79432c9ce4e419bce660797c01efa4)
2018-12-06Add explicit API scaling via ImageTree API.Michael Meeks
Also add image scale to in-memory cache lookup. Change-Id: I1e84b922d4a9ab2f1723c5cb8a72f295c6940504 (cherry picked from commit 59b3cdbc27b65fb3e72dd0b3b2565851bc8f772c)
2018-12-06Preserve stock images until render time.Michael Meeks
This allows us to choose to render HiDPI images at the right time, when we have the DPI of the device to render to. The first step in a better, and more industry standard way of improving our UI for HiDPI via rendering level scaling that should retain a consistent look across the app with many fewer changes. Change-Id: I36681f3242cb650de4f0b2d0fcdffbe5618e30fc (cherry picked from commit e42c6d6903ab804235671d51ae3a05d1627e2574)
2018-12-06Anti-alias toolbar button drop-downs.Michael Meeks
Change-Id: Id4eed12f3d4a32b71d00b99e6e82ca7cefb3f8ec (cherry picked from commit 121a30224bbbe85b559b0e4559c14e145101511f)
2018-11-09custom widgets: Use only with LibreOfficeKit.Jan Holesovsky
Change-Id: I9f8f25ee72e93fdf575312b6b0c5d32be9ea45cc Reviewed-on: https://gerrit.libreoffice.org/63209 Reviewed-by: Tomaž Vajngerl <quikee@gmail.com> Tested-by: Tomaž Vajngerl <quikee@gmail.com>
2018-11-08No updateSettings() in AquaSalGraphicsTor Lillqvist
Just ifdef out the call of it for now. This is a temporary solution, we presumably do want dialogs to be "themed" appropriately for the iOS app. Change-Id: I0b14bd59ecc13037c9ff2a286405a5020081f1d5 Reviewed-on: https://gerrit.libreoffice.org/63112 Reviewed-by: Tor Lillqvist <tml@collabora.com> Tested-by: Tor Lillqvist <tml@collabora.com>
2018-11-08Don't build the CustomWidgetDraw code for iOS for nowTor Lillqvist
Change-Id: I91a263aa68b8f84d975d42b2b48f858137370986 Reviewed-on: https://gerrit.libreoffice.org/63111 Reviewed-by: Tor Lillqvist <tml@collabora.com> Tested-by: Tor Lillqvist <tml@collabora.com>
2018-11-08LOK: custom widgets: simplify and correct colorsAshod Nakashian
Also remove macroni. Change-Id: I0b2914e9f0e2aba9d8ca10338b515b598126e315
2018-11-08LOK: custom widgets: reduce theme plugin API surfaceAshod Nakashian
Change-Id: I89dcf5a102be19fd1bc314a89538a121522f4a43
2018-11-08LOK: custom widgets: reduce Color into an int to reduce API surfaceAshod Nakashian
Change-Id: Ib1afbb0b5647048f24d4ea6f9859b76328568dac
2018-11-08LOK: custom widgets: check size of API structuresAshod Nakashian
Change-Id: Iff50f7aeb471870230e9e822657deed6aefad268
2018-11-08LOK: custom widgets: No need for SAL_DLLPUBLIC_RTTI here any more.Jan Holesovsky
Change-Id: I7cae61e1fa9cf74b98627d557890fd41047421df
2018-11-08LOK: custom widgets: convert WidgetThemeLibrary to POD for ABI compatibilityAshod Nakashian
Change-Id: Ibc425d8e630460547d66723ccabeaf4ac29d2719
2018-11-08LOK: custom themes: isolate LO internals headers from theme pluginAshod Nakashian
Change-Id: Ic189aecf092b9cffd800e410d2d6e88016c43052
2018-11-08LOK: custom widgets: draw focused listbox text in highlight colorsAshod Nakashian
Change-Id: I8fc90458204d93044f7293f4bc74737debd72c23
2018-11-08lok: custom widgets: render editbox bordersAshod Nakashian
Change-Id: I1962a4a1397363b1c15e49d57b0bbcc9c232ce30
2018-11-08custom widgets: rework colors and cleanupAshod Nakashian
Use ColorData for custom widget themes to make it more readable and consistent. Renamed and split out colors to be more accurately named and representative of how they are used. Fixed a number of inconsistencies in how colors were used across widgets. Change-Id: I1cbb5f19223bd55107379b049beccaf1de4e26b2
2018-11-08LOK: custom widgets: don't clobber the custom colorsAshod Nakashian
The old logic threw away the result of updateSettings by applying the styles saved and modified after calling it, which lost all the custom colors thereby breaking custom-widgets and themeing altogether. Change-Id: Ic3750f145b67cd6a379f3b628a10c213a31656e7
2018-11-08LOK: custom widgets: support custom menu colorsAshod Nakashian
Change-Id: Icd6367fa40f9655cd58816461f0d2fca6f6932e2
2018-11-08custom widgets: correct focus colors and render button-up in listboxesAshod Nakashian
Change-Id: I70f46f94747f468a2bb79f8baa4576e4460bef31
2018-11-08custom widgets: comment unused params. to avoid compile warningsTomaž Vajngerl
Change-Id: I45b7ffdce2d470ed2f30b5408d8d861deb00514a
2018-11-08custom widgets: setup style setting in the widget libraryTomaž Vajngerl
Some theme colors are set using the style settings, which are implemented by each backend to correspond to the system theme. For custom widgets these need to also be set by the library itself. This commit adds the ground work and sets some of the colors for windows backgrounds. Change-Id: Ia65b1605b2b7bef7f01ff1feff2e7470479e626a
2018-11-08custom widgets: draw fixed line widgetTomaž Vajngerl
Change-Id: Icb8cfbe09caf5cbfcf1d3f461c297c052056250d
2018-11-08custom widgets: differentiate stock and non-stock buttonsTomaž Vajngerl
Change-Id: I05f01058d7886dacec3b00dcf31313aea3939164
2018-11-08vcl: mark stock buttons and transfer this to NWF on drawingTomaž Vajngerl
Stock buttons like OK/Cancel/Help need sometimes to be drawn differently than just another button. For this we need to mark such push buttons as "stock" when building them from a glade file and transfer this information down to the NWF backend when drawing the widget. Change-Id: I131657f026a731208db47f4c8220622c8aabb464
2018-11-08custom widgets: editbox - draw focus rectangleTomaž Vajngerl
Change-Id: I5d038d165d5ff08a07d24906f6a7cc2d6176f1ac
2018-11-08custom widgets: return early when the widget lib is not availableTomaž Vajngerl
Change-Id: I1d740b4a3840f73015f34bd2143663a919db2956
2018-11-08custom widgets: enable anti-aliasing when drawing widgetsTomaž Vajngerl
Change-Id: I050d8534cacdee63109158dbc150d9d13b43fe5e
2018-11-08custom widgets: get the region from the lib. + custom tab widthTomaž Vajngerl
This implements getting the region rectangle from the widget library so it is possible to redefine the size of the widgets if needed. Additionally increase a tab width which are too small by default. Change-Id: If662c44e02631715efd137ecbfc4a5770fa9f6ab
2018-11-08custom widgets: add Toolbar widgetTomaž Vajngerl
Change-Id: Ia4efe711c07213f2edf472602c5b2acc81876906
2018-11-08custom widgets: add List widget - ListNode, ListWidgetTomaž Vajngerl
also added ListNet as noop Change-Id: I033f908a8fc9ce9ec4b3d202e1299f7c0a9cad6c
2018-11-08custom widgets: add Progress widgetTomaž Vajngerl
Change-Id: I573a6c28f5ddb538ca3b0abf15197695fc113802
2018-11-08vcl: simplify ControlDrawParameters construction, add nValueTomaž Vajngerl
Don't require eButtonValue as a constructor parameter as it mostly isn't necessary and required. In addition add nValue instance variable. Change-Id: I927714f715fce1549d87cec633330a0dc313f569
2018-11-08custom widgets: add Slider widgetTomaž Vajngerl
Change-Id: Ie2192edfcfc49a1953059c5947b8ea7bb03a3c7d