1
0
mirror of https://gitlab.com/OpenMW/openmw.git synced 2025-01-01 03:21:41 +00:00
OpenMW/apps/openmw/mwgui/postprocessorhud.hpp
2022-11-10 08:31:21 +04:00

103 lines
2.3 KiB
C++

#ifndef MYGUI_POSTPROCESSOR_HUD_H
#define MYGUI_POSTPROCESSOR_HUD_H
#include "windowbase.hpp"
#include <MyGUI_ListBox.h>
#include <components/settings/shadermanager.hpp>
namespace MyGUI
{
class ScrollView;
class EditBox;
class TabItem;
}
namespace Gui
{
class AutoSizedButton;
class AutoSizedEditBox;
}
namespace MWGui
{
class PostProcessorHud : public WindowBase
{
class ListWrapper final : public MyGUI::ListBox
{
MYGUI_RTTI_DERIVED(ListWrapper)
protected:
void onKeyButtonPressed(MyGUI::KeyCode key, MyGUI::Char ch) override;
};
public:
PostProcessorHud();
void onOpen() override;
void onClose() override;
void updateTechniques();
void toggleMode(Settings::ShaderManager::Mode mode);
static void registerMyGUIComponents();
private:
void notifyWindowResize(MyGUI::Window* sender);
void notifyFilterChanged(MyGUI::EditBox* sender);
void updateConfigView(const std::string& name);
void notifyResetButtonClicked(MyGUI::Widget* sender);
void notifyListChangePosition(MyGUI::ListBox* sender, size_t index);
void notifyKeyButtonPressed(MyGUI::Widget* sender, MyGUI::KeyCode key, MyGUI::Char ch);
void notifyActivatePressed(MyGUI::Widget* sender);
void notifyDeactivatePressed(MyGUI::Widget* sender);
void notifyShaderUpPressed(MyGUI::Widget* sender);
void notifyShaderDownPressed(MyGUI::Widget* sender);
void notifyMouseWheel(MyGUI::Widget* sender, int rel);
enum class Direction
{
Up,
Down
};
void moveShader(Direction direction);
void toggleTechnique(bool enabled);
void select(ListWrapper* list, size_t index);
void layout();
ListWrapper* mActiveList;
ListWrapper* mInactiveList;
Gui::AutoSizedButton* mButtonActivate;
Gui::AutoSizedButton* mButtonDeactivate;
Gui::AutoSizedButton* mButtonDown;
Gui::AutoSizedButton* mButtonUp;
MyGUI::ScrollView* mConfigLayout;
MyGUI::Widget* mConfigArea;
MyGUI::EditBox* mFilter;
Gui::AutoSizedEditBox* mShaderInfo;
std::string mOverrideHint;
};
}
#endif