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 @@
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-