1
0
mirror of https://gitlab.com/OpenMW/openmw.git synced 2024-12-28 09:17:59 +00:00
OpenMW/components/widgets/imagebutton.hpp

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

58 lines
1.6 KiB
C++
Raw Normal View History

2015-04-30 23:15:25 +00:00
#ifndef OPENMW_COMPONENTS_WIDGETS_IMAGEBUTTON_H
#define OPENMW_COMPONENTS_WIDGETS_IMAGEBUTTON_H
#include <MyGUI_ImageBox.h>
namespace Gui
{
/**
* @brief allows using different image textures depending on the button state
*/
2020-02-13 20:36:56 +00:00
class ImageButton final : public MyGUI::ImageBox
{
MYGUI_RTTI_DERIVED(ImageButton)
public:
MyGUI::IntSize getRequestedSize();
ImageButton();
static void setDefaultNeedKeyFocus(bool enabled);
/// Set mImageNormal, mImageHighlighted and mImagePushed based on file convention (image_idle.ext,
/// image_over.ext and image_pressed.ext)
void setImage(const std::string& image);
void setTextureRect(MyGUI::IntCoord coord);
private:
void updateImage();
static bool sDefaultNeedKeyFocus;
protected:
void setPropertyOverride(const std::string& _key, const std::string& _value) override;
void onMouseLostFocus(MyGUI::Widget* _new) override;
void onMouseSetFocus(MyGUI::Widget* _old) override;
void onMouseButtonPressed(int _left, int _top, MyGUI::MouseButton _id) override;
void onMouseButtonReleased(int _left, int _top, MyGUI::MouseButton _id) override;
void onKeySetFocus(MyGUI::Widget* _old) override;
void onKeyLostFocus(MyGUI::Widget* _new) override;
std::string mImageHighlighted;
std::string mImageNormal;
std::string mImagePushed;
bool mMouseFocus;
bool mMousePress;
bool mKeyFocus;
bool mUseWholeTexture;
MyGUI::IntCoord mTextureRect;
};
}
#endif