#ifndef MYGUI_POSTPROCESSOR_HUD_H #define MYGUI_POSTPROCESSOR_HUD_H #include "windowbase.hpp" #include #include 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