Kaydet (Commit) ae9eab1c authored tarafından Tomaž Vajngerl's avatar Tomaž Vajngerl Kaydeden (comit) Tomaž Vajngerl

Draw basic scrollbar from the theme definition

Change-Id: I2a017746f02c547413c949a1728ebbfa781a7f66
Reviewed-on: https://gerrit.libreoffice.org/68749
Tested-by: Jenkins
Reviewed-by: 's avatarTomaž Vajngerl <quikee@gmail.com>
üst d55e75d9
...@@ -24,6 +24,10 @@ private: ...@@ -24,6 +24,10 @@ private:
SalGraphics& m_rGraphics; SalGraphics& m_rGraphics;
WidgetDefinition m_aWidgetDefinition; WidgetDefinition m_aWidgetDefinition;
bool resolveDefinition(ControlType eType, ControlPart ePart, ControlState eState,
const ImplControlValue& rValue, long nX, long nY, long nWidth,
long nHeight);
public: public:
FileDefinitionWidgetDraw(SalGraphics& rGraphics); FileDefinitionWidgetDraw(SalGraphics& rGraphics);
......
...@@ -75,8 +75,12 @@ bool FileDefinitionWidgetDraw::isNativeControlSupported(ControlType eType, Contr ...@@ -75,8 +75,12 @@ bool FileDefinitionWidgetDraw::isNativeControlSupported(ControlType eType, Contr
case ControlType::TabPane: case ControlType::TabPane:
case ControlType::TabHeader: case ControlType::TabHeader:
case ControlType::TabBody: case ControlType::TabBody:
case ControlType::Scrollbar:
return false; return false;
case ControlType::Scrollbar:
if (ePart == ControlPart::DrawBackgroundHorz
|| ePart == ControlPart::DrawBackgroundVert)
return false;
return true;
case ControlType::Slider: case ControlType::Slider:
return true; return true;
case ControlType::Fixedline: case ControlType::Fixedline:
...@@ -201,6 +205,29 @@ void munchDrawCommands(std::vector<std::shared_ptr<DrawCommand>> const& rDrawCom ...@@ -201,6 +205,29 @@ void munchDrawCommands(std::vector<std::shared_ptr<DrawCommand>> const& rDrawCom
} // end anonymous namespace } // end anonymous namespace
bool FileDefinitionWidgetDraw::resolveDefinition(ControlType eType, ControlPart ePart,
ControlState eState,
const ImplControlValue& rValue, long nX, long nY,
long nWidth, long nHeight)
{
bool bOK = false;
auto const& pPart = m_aWidgetDefinition.getDefinition(eType, ePart);
if (pPart)
{
auto const& aStates = pPart->getStates(eState, rValue);
if (!aStates.empty())
{
// use last defined state
auto const& pState = aStates.back();
{
munchDrawCommands(pState->mpDrawCommands, m_rGraphics, nX, nY, nWidth, nHeight);
bOK = true;
}
}
}
return bOK;
}
bool FileDefinitionWidgetDraw::drawNativeControl(ControlType eType, ControlPart ePart, bool FileDefinitionWidgetDraw::drawNativeControl(ControlType eType, ControlPart ePart,
const tools::Rectangle& rControlRegion, const tools::Rectangle& rControlRegion,
ControlState eState, ControlState eState,
...@@ -377,7 +404,10 @@ bool FileDefinitionWidgetDraw::drawNativeControl(ControlType eType, ControlPart ...@@ -377,7 +404,10 @@ bool FileDefinitionWidgetDraw::drawNativeControl(ControlType eType, ControlPart
case ControlType::TabPane: case ControlType::TabPane:
case ControlType::TabBody: case ControlType::TabBody:
case ControlType::Scrollbar: case ControlType::Scrollbar:
break; {
bOK = resolveDefinition(eType, ePart, eState, rValue, nX, nY, nWidth, nHeight);
}
break;
case ControlType::Slider: case ControlType::Slider:
{ {
{ {
......
...@@ -140,6 +140,49 @@ ...@@ -140,6 +140,49 @@
</part> </part>
</editbox> </editbox>
<scrollbar>
<part value="ThumbHorz">
<state enabled="any" focused="any" pressed="any" rollover="any" default="any" selected="any" button-value="any">
<rect stroke="#C7C7C7" fill="#C7C7C7" stroke-width="1" />
<line stroke="#007AFF" stroke-width="5" x1="0.01" y1="0.5" x2="0.99" y2="0.5"/>
</state>
</part>
<part value="ThumbVert">
<state enabled="any" focused="any" pressed="any" rollover="any" default="any" selected="any" button-value="any">
<rect stroke="#C7C7C7" fill="#C7C7C7" stroke-width="1" />
<line stroke="#007AFF" stroke-width="5" x1="0.5" y1="0.01" x2="0.5" y2="0.99"/>
</state>
</part>
<part value="ButtonUp">
</part>
<part value="ButtonDown">
</part>
<part value="ButtonLeft">
</part>
<part value="ButtonRight">
</part>
<part value="TrackHorzLeft">
<state enabled="any" focused="any" pressed="any" rollover="any" default="any" selected="any" button-value="any">
<rect stroke="#C7C7C7" fill="#C7C7C7" stroke-width="1" />
</state>
</part>
<part value="TrackHorzRight">
<state enabled="any" focused="any" pressed="any" rollover="any" default="any" selected="any" button-value="any">
<rect stroke="#C7C7C7" fill="#C7C7C7" stroke-width="1" />
</state>
</part>
<part value="TrackVertUpper">
<state enabled="any" focused="any" pressed="any" rollover="any" default="any" selected="any" button-value="any">
<rect stroke="#C7C7C7" fill="#C7C7C7" stroke-width="1" />
</state>
</part>
<part value="TrackVertLower">
<state enabled="any" focused="any" pressed="any" rollover="any" default="any" selected="any" button-value="any">
<rect stroke="#C7C7C7" fill="#C7C7C7" stroke-width="1" />
</state>
</part>
</scrollbar>
<slider> <slider>
<part value="Button"> <part value="Button">
<state enabled="any" focused="any" pressed="any" rollover="any" default="any" selected="any" button-value="any"> <state enabled="any" focused="any" pressed="any" rollover="any" default="any" selected="any" button-value="any">
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment