mirror of
https://github.com/OpenMW/openmw.git
synced 2025-03-31 12:06:40 +00:00
Add scrolling to the script settings view
This commit is contained in:
parent
fba82eb1a7
commit
64df4f54c6
4 changed files with 35 additions and 14 deletions
|
@ -240,6 +240,7 @@ namespace MWGui
|
|||
getWidget(mMaxLights, "MaxLights");
|
||||
getWidget(mScriptFilter, "ScriptFilter");
|
||||
getWidget(mScriptList, "ScriptList");
|
||||
getWidget(mScriptBox, "ScriptBox");
|
||||
getWidget(mScriptView, "ScriptView");
|
||||
getWidget(mScriptDisabled, "ScriptDisabled");
|
||||
|
||||
|
@ -332,7 +333,7 @@ namespace MWGui
|
|||
mScriptList->eventListMouseItemActivate += MyGUI::newDelegate(this, &SettingsWindow::onScriptListSelection);
|
||||
}
|
||||
|
||||
void SettingsWindow::onTabChanged(MyGUI::TabControl* /*_sender*/, size_t index)
|
||||
void SettingsWindow::onTabChanged(MyGUI::TabControl* /*_sender*/, size_t /*index*/)
|
||||
{
|
||||
resetScrollbars();
|
||||
}
|
||||
|
@ -710,26 +711,28 @@ namespace MWGui
|
|||
|
||||
void SettingsWindow::resizeScriptSettings()
|
||||
{
|
||||
static int minListWidth = 150;
|
||||
static float relativeListWidth = 0.2f;
|
||||
static const int minListWidth = 150;
|
||||
static const float relativeListWidth = 0.2f;
|
||||
static const int padding = 2;
|
||||
static const int outerPadding = padding * 2;
|
||||
MyGUI::IntSize parentSize = mScriptFilter->getParent()->getClientCoord().size();
|
||||
int listWidth = std::max(minListWidth, static_cast<int>(parentSize.width * relativeListWidth));
|
||||
int filterHeight = mScriptFilter->getSize().height;
|
||||
int listBorder = (mScriptList->getSize().height - mScriptList->getClientCoord().height) / 2;
|
||||
int listHeight = parentSize.height - listBorder - mScriptList->getPosition().top;
|
||||
int listHeight = parentSize.height - mScriptList->getPosition().top - outerPadding;
|
||||
mScriptFilter->setSize({ listWidth, filterHeight });
|
||||
mScriptList->setSize({ listWidth, listHeight });
|
||||
mScriptView->setPosition({ listWidth, 0 });
|
||||
mScriptView->setSize({ parentSize.width - listWidth, parentSize.height });
|
||||
mScriptBox->setPosition({ listWidth + padding, 0 });
|
||||
mScriptBox->setSize({ parentSize.width - listWidth - padding, parentSize.height - outerPadding });
|
||||
mScriptDisabled->setPosition({0, 0});
|
||||
mScriptDisabled->setSize(parentSize);
|
||||
}
|
||||
|
||||
|
||||
void SettingsWindow::renderScriptSettings()
|
||||
{
|
||||
while (mScriptView->getChildCount() > 0)
|
||||
mScriptView->getChildAt(0)->detachFromWidget();
|
||||
mScriptList->removeAllItems();
|
||||
mScriptView->setCanvasSize({0, 0});
|
||||
|
||||
std::string filter(".*");
|
||||
filter += mScriptFilter->getCaption();
|
||||
|
@ -750,7 +753,7 @@ namespace MWGui
|
|||
mScriptDisabled->setVisible(disabled);
|
||||
mScriptFilter->setVisible(!disabled);
|
||||
mScriptList->setVisible(!disabled);
|
||||
mScriptView->setVisible(!disabled);
|
||||
mScriptBox->setVisible(!disabled);
|
||||
}
|
||||
|
||||
void SettingsWindow::onScriptFilterChange(MyGUI::Widget*)
|
||||
|
@ -767,6 +770,10 @@ namespace MWGui
|
|||
size_t scriptIndex = *mScriptList->getItemDataAt<size_t>(index);
|
||||
LuaUi::ScriptSettings script = LuaUi::scriptSettings()[scriptIndex];
|
||||
LuaUi::attachToWidget(script, mScriptView);
|
||||
MyGUI::IntSize canvasSize;
|
||||
if (mScriptView->getChildCount() > 0)
|
||||
canvasSize = mScriptView->getChildAt(0)->getSize();
|
||||
mScriptView->setCanvasSize(canvasSize);
|
||||
}
|
||||
|
||||
void SettingsWindow::onRebindAction(MyGUI::Widget* _sender)
|
||||
|
|
|
@ -46,7 +46,8 @@ namespace MWGui
|
|||
|
||||
MyGUI::EditBox* mScriptFilter;
|
||||
MyGUI::ListBox* mScriptList;
|
||||
MyGUI::Widget* mScriptView;
|
||||
MyGUI::Widget* mScriptBox;
|
||||
MyGUI::ScrollView* mScriptView;
|
||||
MyGUI::EditBox* mScriptDisabled;
|
||||
|
||||
void onTabChanged(MyGUI::TabControl* _sender, size_t index);
|
||||
|
|
|
@ -14,4 +14,11 @@
|
|||
<Child type="ScrollBar" skin="MW_HScroll" offset="3 498 513 14" align="Left Bottom HStretch" name="HScroll"/>
|
||||
</Resource>
|
||||
|
||||
<Resource type="ResourceSkin" name="MW_ScrollViewVH" size="516 516">
|
||||
<Property key="NeedKey" value="false"/>
|
||||
<Child type="Widget" skin="" offset="0 0 502 502" align="Stretch" name="Client"/>
|
||||
<Child type="ScrollBar" skin="MW_VScroll" offset="498 3 14 492" align="Right Top VStretch" name="VScroll"/>
|
||||
<Child type="ScrollBar" skin="MW_HScroll" offset="3 498 492 14" align="Left Bottom HStretch" name="HScroll"/>
|
||||
</Resource>
|
||||
|
||||
</MyGUI>
|
||||
|
|
|
@ -658,10 +658,16 @@
|
|||
</Widget>
|
||||
<Widget type="TabItem" skin="" position="4 32 360 308">
|
||||
<Property key="Caption" value=" Scripts "/>
|
||||
<Widget name="ScriptFilter" type="EditBox" skin="MW_TextEdit" position="0 0 150 40" />
|
||||
<Widget name="ScriptList" type="ListBox" skin="MW_List" position="0 40 150 268" />
|
||||
<Widget name="ScriptView" type="Widget" skin="" position="0 0 360 308" />
|
||||
<Widget name="ScriptDisabled" type="EditBox" skin="SandText" position="0 0 360 308" align="Center" visible="false">
|
||||
<Widget name="ScriptFilter" type="EditBox" skin="MW_TextEdit" position="0 0 150 40"/>
|
||||
<Widget name="ScriptList" type="ListBox" skin="MW_List" position="0 40 150 268"/>
|
||||
<Widget name="ScriptBox" type="Widget" skin="MW_Box" position="150 0 250 250" name="ScriptBox">
|
||||
<Widget name="ScriptView" type="ScrollView" skin="MW_ScrollViewVH" position="2 2 246 246" align="Stretch">
|
||||
<Property key="CanvasAlign" value="Left Top"/>
|
||||
<Property key="CanvasSize" value="246 246"/>
|
||||
</Widget>
|
||||
</Widget>
|
||||
<Widget name="ScriptDisabled" type="EditBox" skin="SandText" position="0 0 360 308" align="Center">
|
||||
<Property key="Visible" value="false"/>
|
||||
<Property key="Caption" value="Scripts settings are only available when a game is loaded."/>
|
||||
<Property key="TextAlign" value="Center" />
|
||||
<Property key="MultiLine" value="true" />
|
||||
|
|
Loading…
Reference in a new issue