summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--vcl/source/gdi/FileDefinitionWidgetDraw.cxx25
-rw-r--r--vcl/source/gdi/WidgetDefinitionReader.cxx5
-rw-r--r--vcl/uiconfig/theme_definitions/definition.xml20
3 files changed, 47 insertions, 3 deletions
diff --git a/vcl/source/gdi/FileDefinitionWidgetDraw.cxx b/vcl/source/gdi/FileDefinitionWidgetDraw.cxx
index a287f2c0fee7..6681d2190dd2 100644
--- a/vcl/source/gdi/FileDefinitionWidgetDraw.cxx
+++ b/vcl/source/gdi/FileDefinitionWidgetDraw.cxx
@@ -42,7 +42,7 @@ FileDefinitionWidgetDraw::FileDefinitionWidgetDraw(SalGraphics& rGraphics)
pSVData->maNWFData.mbNoFocusRectsForFlatButtons = true;
}
-bool FileDefinitionWidgetDraw::isNativeControlSupported(ControlType eType, ControlPart /*ePart*/)
+bool FileDefinitionWidgetDraw::isNativeControlSupported(ControlType eType, ControlPart ePart)
{
switch (eType)
{
@@ -52,7 +52,9 @@ bool FileDefinitionWidgetDraw::isNativeControlSupported(ControlType eType, Contr
case ControlType::Checkbox:
return true;
case ControlType::Combobox:
- return false;
+ if (ePart == ControlPart::HasBackgroundTexture)
+ return false;
+ return true;
case ControlType::Editbox:
case ControlType::EditboxNoBorder:
case ControlType::MultilineEditbox:
@@ -248,7 +250,21 @@ bool FileDefinitionWidgetDraw::drawNativeControl(ControlType eType, ControlPart
}
break;
case ControlType::Combobox:
- break;
+ {
+ std::shared_ptr<WidgetDefinitionPart> pPart
+ = m_aWidgetDefinition.getDefinition(eType, ePart);
+ if (pPart)
+ {
+ auto aStates = pPart->getStates(eState, rValue);
+ if (!aStates.empty())
+ {
+ std::shared_ptr<WidgetDefinitionState> pState = aStates.back();
+ munchDrawCommands(pState->mpDrawCommands, m_rGraphics, nX, nY, nWidth, nHeight);
+ bOK = true;
+ }
+ }
+ }
+ break;
case ControlType::Editbox:
case ControlType::EditboxNoBorder:
case ControlType::MultilineEditbox:
@@ -309,6 +325,9 @@ bool FileDefinitionWidgetDraw::getNativeControlRegion(
case ControlType::Checkbox:
rNativeContentRegion = tools::Rectangle(Point(), Size(48, 32));
return true;
+ case ControlType::Radiobutton:
+ rNativeContentRegion = tools::Rectangle(Point(), Size(32, 32));
+ return true;
default:
break;
}
diff --git a/vcl/source/gdi/WidgetDefinitionReader.cxx b/vcl/source/gdi/WidgetDefinitionReader.cxx
index 40dcbcee45bb..f37385cc09b9 100644
--- a/vcl/source/gdi/WidgetDefinitionReader.cxx
+++ b/vcl/source/gdi/WidgetDefinitionReader.cxx
@@ -153,6 +153,11 @@ bool getControlTypeForXmlString(OString const& rString, ControlType& reType)
reType = ControlType::Checkbox;
bReturn = true;
}
+ else if (rString == "combobox")
+ {
+ reType = ControlType::Combobox;
+ bReturn = true;
+ }
return bReturn;
}
diff --git a/vcl/uiconfig/theme_definitions/definition.xml b/vcl/uiconfig/theme_definitions/definition.xml
index fa37bf8f5ba2..0cbdebaa078c 100644
--- a/vcl/uiconfig/theme_definitions/definition.xml
+++ b/vcl/uiconfig/theme_definitions/definition.xml
@@ -90,6 +90,26 @@
</part>
</checkbox>
+ <combobox>
+ <part value="Entire">
+ <state enabled="any" focused="any" pressed="any" rollover="any" default="any" selected="any" button-value="any">
+ <rect stroke="#4CD964" fill="#FFFFFF" stroke-width="1" rx="5" ry="5" />
+ </state>
+ </part>
+ <part value="ButtonUp">
+ <state enabled="any" focused="any" pressed="any" rollover="any" default="any" selected="any" button-value="any">
+ <line stroke="#C7C7C7" stroke-width="4" x1="0.2" y1="0.6" x2="0.5" y2="0.4"/>
+ <line stroke="#C7C7C7" stroke-width="4" x1="0.5" y1="0.4" x2="0.8" y2="0.6"/>
+ </state>
+ </part>
+ <part value="ButtonDown">
+ <state enabled="any" focused="any" pressed="any" rollover="any" default="any" selected="any" button-value="any">
+ <line stroke="#C7C7C7" stroke-width="4" x1="0.2" y1="0.4" x2="0.5" y2="0.6"/>
+ <line stroke="#C7C7C7" stroke-width="4" x1="0.5" y1="0.6" x2="0.8" y2="0.4"/>
+ </state>
+ </part>
+ </combobox>
+
<editbox>
<part value="Entire">
<state enabled="any" focused="any" pressed="any" rollover="any" default="any" selected="any" button-value="any">