10 #include <gvarprop.hpp>
13 class GFlexValue :
public GDim {
15 GFlexValue() =
default;
16 GFlexValue(int8_t flex1, int8_t flex2, int8_t mode);
17 bool operator==(GFlexValue
const&)
const;
18 bool operator!=(GFlexValue
const&)
const;
19 int8_t flex1{}, flex2{}, mode{};
22 inline bool gconvert(GFlexValue
const& from, GFlexValue& to) {to = from;
return true;}
23 bool gconvert(GString
const& from, GFlexValue& to);
24 bool gconvert(GFlexValue
const& from, GString& to);
62 enum {MinFlex = 0, MaxFlex = 100};
63 enum Mode : int8_t {SelfWH, SelfFlow, ParentFlow};
67 GFlex(int8_t flex1, int8_t flex2, Mode mode);
69 GFlex(GFlexValue
const&);
73 GFlex& operator=(
GFlex const& value) {set(value);
return *
this;}
74 GFlex& operator=(GString
const& value) {set(value);
return *
this;}
77 void set(int8_t flex1, int8_t flex2, Mode);
79 int8_t flex1()
const {
return value_.flex1;}
80 int8_t flex2()
const {
return value_.flex2;}
81 Mode mode()
const {
return Mode(value_.mode);}
85 GType& type()
const override {
return Type();}
91 void updateGadget(
Gadget&)
override;
99 inline GFlex& Flex(GString
const& value) {
return *
new GFlex(value);}