diff --git a/CI/before_script.osx.sh b/CI/before_script.osx.sh index 32bdd41ae..00a948c65 100755 --- a/CI/before_script.osx.sh +++ b/CI/before_script.osx.sh @@ -10,7 +10,6 @@ mkdir build cd build cmake \ --D CMAKE_EXE_LINKER_FLAGS="-lz" \ -D CMAKE_PREFIX_PATH="$DEPENDENCIES_ROOT;$QT_PATH" \ -D CMAKE_OSX_DEPLOYMENT_TARGET="10.8" \ -D CMAKE_OSX_SYSROOT="macosx10.11" \ diff --git a/apps/openmw/CMakeLists.txt b/apps/openmw/CMakeLists.txt index 5f1095f01..b1883c601 100644 --- a/apps/openmw/CMakeLists.txt +++ b/apps/openmw/CMakeLists.txt @@ -190,6 +190,7 @@ if(APPLE) find_library(COREVIDEO_FRAMEWORK CoreVideo) find_library(VDA_FRAMEWORK VideoDecodeAcceleration) target_link_libraries(tes3mp ${COREVIDEO_FRAMEWORK} ${VDA_FRAMEWORK}) + target_link_libraries(tes3mp z ${COREVIDEO_FRAMEWORK} ${VDA_FRAMEWORK}) endif() endif(APPLE) diff --git a/apps/openmw/mwgui/settingswindow.cpp b/apps/openmw/mwgui/settingswindow.cpp index a0833194b..3211473e2 100644 --- a/apps/openmw/mwgui/settingswindow.cpp +++ b/apps/openmw/mwgui/settingswindow.cpp @@ -466,9 +466,6 @@ namespace MWGui else actions = MWBase::Environment::get().getInputManager()->getActionControllerSorting(); - const int h = 18; - const int w = mControlsBox->getWidth() - 28; - int curH = 0; for (std::vector::const_iterator it = actions.begin(); it != actions.end(); ++it) { std::string desc = MWBase::Environment::get().getInputManager()->getActionDescription (*it); @@ -481,16 +478,15 @@ namespace MWGui else binding = MWBase::Environment::get().getInputManager()->getActionControllerBindingName(*it); - Gui::SharedStateButton* leftText = mControlsBox->createWidget("SandTextButton", MyGUI::IntCoord(0,curH,w,h), MyGUI::Align::Default); + Gui::SharedStateButton* leftText = mControlsBox->createWidget("SandTextButton", MyGUI::IntCoord(), MyGUI::Align::Default); leftText->setCaptionWithReplacing(desc); - Gui::SharedStateButton* rightText = mControlsBox->createWidget("SandTextButton", MyGUI::IntCoord(0,curH,w,h), MyGUI::Align::Default); + Gui::SharedStateButton* rightText = mControlsBox->createWidget("SandTextButton", MyGUI::IntCoord(), MyGUI::Align::Default); rightText->setCaptionWithReplacing(binding); rightText->setTextAlign (MyGUI::Align::Right); rightText->setUserData(*it); // save the action id for callbacks rightText->eventMouseButtonClick += MyGUI::newDelegate(this, &SettingsWindow::onRebindAction); rightText->eventMouseWheel += MyGUI::newDelegate(this, &SettingsWindow::onInputTabMouseWheel); - curH += h; Gui::ButtonGroup group; group.push_back(leftText); @@ -498,9 +494,25 @@ namespace MWGui Gui::SharedStateButton::createButtonGroup(group); } + layoutControlsBox(); + } + + void SettingsWindow::layoutControlsBox() + { + const int h = 18; + const int w = mControlsBox->getWidth() - 28; + const int noWidgetsInRow = 2; + const int totalH = mControlsBox->getChildCount() / noWidgetsInRow * h; + + for (size_t i = 0; i < mControlsBox->getChildCount(); i++) + { + MyGUI::Widget * widget = mControlsBox->getChildAt(i); + widget->setCoord(0, i / noWidgetsInRow * h, w, h); + } + // Canvas size must be expressed with VScroll disabled, otherwise MyGUI would expand the scroll area when the scrollbar is hidden mControlsBox->setVisibleVScroll(false); - mControlsBox->setCanvasSize (mControlsBox->getWidth(), std::max(curH, mControlsBox->getHeight())); + mControlsBox->setCanvasSize (mControlsBox->getWidth(), std::max(totalH, mControlsBox->getHeight())); mControlsBox->setVisibleVScroll(true); } @@ -556,7 +568,7 @@ namespace MWGui void SettingsWindow::onWindowResize(MyGUI::Window *_sender) { - updateControlsBox(); + layoutControlsBox(); } void SettingsWindow::resetScrollbars() diff --git a/apps/openmw/mwgui/settingswindow.hpp b/apps/openmw/mwgui/settingswindow.hpp index 5b12cc557..2ac06dcaa 100644 --- a/apps/openmw/mwgui/settingswindow.hpp +++ b/apps/openmw/mwgui/settingswindow.hpp @@ -66,6 +66,8 @@ namespace MWGui void configureWidgets(MyGUI::Widget* widget); void updateSliderLabel(MyGUI::ScrollBar* scroller, const std::string& value); + + void layoutControlsBox(); private: void resetScrollbars();