diff --git a/vcl/Package_theme_definitions.mk b/vcl/Package_theme_definitions.mk index b51f60555165..9c75aa34ba7b 100644 --- a/vcl/Package_theme_definitions.mk +++ b/vcl/Package_theme_definitions.mk @@ -32,6 +32,8 @@ $(eval $(call gb_Package_add_files,vcl_theme_definitions,$(LIBO_SHARE_FOLDER)/th spinbox-right-rollover.svgx \ spinbox-right-disabled.svgx \ spinbox-entire.svgx \ + common-rect.svgx \ + common-rect-disabled.svgx \ pushbutton-default.svgx \ pushbutton-rollover.svgx \ tabitem-first.svgx \ @@ -42,6 +44,8 @@ $(eval $(call gb_Package_add_files,vcl_theme_definitions,$(LIBO_SHARE_FOLDER)/th tabitem-last-selected.svgx \ scrollbar-horizontal.svgx \ scrollbar-vertical.svgx \ + combobox.svgx \ + combobox-disabled.svgx \ )) # vim: set noet sw=4 ts=4: diff --git a/vcl/source/gdi/FileDefinitionWidgetDraw.cxx b/vcl/source/gdi/FileDefinitionWidgetDraw.cxx index 0067fed75954..54aa111431d9 100644 --- a/vcl/source/gdi/FileDefinitionWidgetDraw.cxx +++ b/vcl/source/gdi/FileDefinitionWidgetDraw.cxx @@ -723,6 +723,40 @@ bool FileDefinitionWidgetDraw::getNativeControlRegion( } } break; + case ControlType::Combobox: + case ControlType::Listbox: + { + auto const& pPart = m_aWidgetDefinition.getDefinition(eType, ControlPart::ButtonDown); + Size aComboButtonSize(pPart->mnWidth, pPart->mnHeight); + + if (ePart == ControlPart::ButtonDown) + { + Point aPoint(aLocation.X() + rBoundingControlRegion.GetWidth() + - aComboButtonSize.Width(), + aLocation.Y()); + rNativeContentRegion = tools::Rectangle(aPoint, aComboButtonSize); + rNativeBoundingRegion = rNativeContentRegion; + return true; + } + else if (ePart == ControlPart::SubEdit) + { + Size aSize(rBoundingControlRegion.GetWidth() - aComboButtonSize.Width(), + aComboButtonSize.Height()); + rNativeContentRegion = tools::Rectangle(aLocation, aSize); + rNativeContentRegion.expand(1); + rNativeBoundingRegion = rNativeContentRegion; + return true; + } + else if (ePart == ControlPart::Entire) + { + Size aSize(rBoundingControlRegion.GetWidth(), aComboButtonSize.Height()); + rNativeContentRegion = tools::Rectangle(aLocation, aSize); + rNativeBoundingRegion = rNativeContentRegion; + rNativeBoundingRegion.expand(1); + return true; + } + } + break; default: break; diff --git a/vcl/uiconfig/theme_definitions/combobox-disabled.svgx b/vcl/uiconfig/theme_definitions/combobox-disabled.svgx new file mode 100644 index 000000000000..ccb892d77f90 --- /dev/null +++ b/vcl/uiconfig/theme_definitions/combobox-disabled.svgx @@ -0,0 +1,4 @@ + + + + diff --git a/vcl/uiconfig/theme_definitions/combobox.svgx b/vcl/uiconfig/theme_definitions/combobox.svgx new file mode 100644 index 000000000000..b4a1627f3882 --- /dev/null +++ b/vcl/uiconfig/theme_definitions/combobox.svgx @@ -0,0 +1,4 @@ + + + + diff --git a/vcl/uiconfig/theme_definitions/common-rect-disabled.svgx b/vcl/uiconfig/theme_definitions/common-rect-disabled.svgx new file mode 100644 index 000000000000..e4c1f63599d7 --- /dev/null +++ b/vcl/uiconfig/theme_definitions/common-rect-disabled.svgx @@ -0,0 +1,3 @@ + + + diff --git a/vcl/uiconfig/theme_definitions/common-rect.svgx b/vcl/uiconfig/theme_definitions/common-rect.svgx new file mode 100644 index 000000000000..24a3b12c2d58 --- /dev/null +++ b/vcl/uiconfig/theme_definitions/common-rect.svgx @@ -0,0 +1,3 @@ + + + diff --git a/vcl/uiconfig/theme_definitions/definition.xml b/vcl/uiconfig/theme_definitions/definition.xml index 99df7524b8d2..8c9b1af285d9 100644 --- a/vcl/uiconfig/theme_definitions/definition.xml +++ b/vcl/uiconfig/theme_definitions/definition.xml @@ -124,24 +124,24 @@ - - + + + + + - - - - + + + + - - - - - + + @@ -157,8 +157,11 @@ - - + + + + + @@ -166,21 +169,20 @@ + + + + + + + + + + + + - - - - - - - - - - - - -