You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

60 lines
1.8 KiB

#ifndef USSIMPLEBUTTON_H
#define USSIMPLEBUTTON_H
#include "AutoProperty.h"
#define US_SIMPLE_BUTTON_PROPERTY_1(NAME) US_SIMPLE_BUTTON_BASE(NAME, "fake title", "", true, \
true)
#define US_SIMPLE_BUTTON_PROPERTY_2(NAME, TITLE) US_SIMPLE_BUTTON_BASE(NAME, \
TITLE, \
"", \
true, \
true)
#define US_SIMPLE_BUTTON_PROPERTY_3(NAME, TITLE, IMAGE) \
US_SIMPLE_BUTTON_BASE(NAME, TITLE, IMAGE, true, true)
#define US_SIMPLE_BUTTON_PROPERTY_4(NAME, TITLE, IMAGE, ENABLE) \
US_SIMPLE_BUTTON_BASE(NAME, TITLE, IMAGE, ENABLE, true)
#define US_SIMPLE_BUTTON_PROPERTY_5(NAME, TITLE, IMAGE, ENABLE, VISIBLE) \
US_SIMPLE_BUTTON_BASE(NAME, TITLE, IMAGE, ENABLE, VISIBLE)
#define US_SIMPLE_BUTTON_ROUTER(A, B, C, D, E, FUNC, ...) FUNC
#define US_SIMPLE_BUTTON(...) \
US_SIMPLE_BUTTON_ROUTER(__VA_ARGS__, \
US_SIMPLE_BUTTON_PROPERTY_5(__VA_ARGS__), \
US_SIMPLE_BUTTON_PROPERTY_4(__VA_ARGS__), \
US_SIMPLE_BUTTON_PROPERTY_3(__VA_ARGS__), \
US_SIMPLE_BUTTON_PROPERTY_2(__VA_ARGS__), \
US_SIMPLE_BUTTON_PROPERTY_1(__VA_ARGS__), \
)
#define US_SIMPLE_BUTTON_BASE(NAME, TITLE, IMAGE, ENABLE, VISIBLE) \
US_PROPERTY_VIEW_ONLY(QString, NAME ## Title, TITLE) \
US_PROPERTY_VIEW_ONLY(QString, NAME ## Image, IMAGE) \
US_PROPERTY_VIEW_ONLY(bool, NAME ## Enable, ENABLE) \
US_PROPERTY_VIEW_ONLY(bool, NAME ## Visible, VISIBLE)
#include "UsViewControl.h"
class UsSimpleButton : public UsViewControl
{
Q_OBJECT
US_PROPERTY_VIEW_ONLY(QString, title, "")
US_PROPERTY_VIEW_ONLY(QString, image, "")
US_PROPERTY_VIEW_ONLY(int, value, 0)
public:
UsSimpleButton(const QString& _title, const QString& _image, bool visible,
bool enable) : UsViewControl(visible, enable)
{
title(_title);
image(_image);
}
};
#endif //USSIMPLEBUTTON_H