76 explicit GItem(GString
const& css_and_title =
"");
79 GItem* toItem()
override {
return this;}
87 GString
text()
const override;
95 GItem& setMultiLine(
bool value =
true);
104 void setValue(GString
const& text)
override;
106 bool hasValue()
const override {
return isCheckable();}
111 static GType& Type();
112 GType& type()
const override {
return Type();}
117 void add(GWindow*)
override;
118 void add(GMenu*)
override;
119 void addProp(GProp&,
bool add_to_list)
override;
120 void pack(GRender* parent_render)
override;
121 class GTextCache* tcache_{};
126 GItem& Item(GString
const& css_and_text =
"");
130 class GLabel :
public GItem {
132 GLabel(GString
const& css_and_title =
"");
133 GLabel& clone(GClone
const&)
override;
135 using GItem::operator=;
137 using GType = GadgetType_<GLabel,GItem>;
138 static GType& Type();
139 GType& type()
const override {
return Type();}
143 GLabel& Label(GString
const& css_and_title =
"");
147 class GButton :
public GItem {
149 GButton(GString
const& css_and_title =
"");
150 GButton& clone(GClone
const&)
override;
152 using GItem::operator=;
154 using GType = GadgetType_<GButton,GItem>;
155 static GType& Type();
156 GType& type()
const override {
return Type();}
160 GButton& Button(GString
const& css_and_title =
"");
164 class GLinkItem :
public GItem {
166 GLinkItem(GString
const& css_and_title =
"");
167 GLinkItem& clone(GClone
const&)
override;
169 using GItem::operator=;
171 using GType = GadgetType_<GLinkItem,GItem>;
172 static GType& Type();
173 GType& type()
const override {
return Type();}
177 GLinkItem& LinkItem(GString
const& css_and_title =
"");
181 class GChoiceItem :
public GItem {
183 GChoiceItem(GString
const& css_and_title =
"");
184 GChoiceItem& clone(GClone
const&)
override;
186 using GItem::operator=;
188 using GType = GadgetType_<GChoiceItem,GItem>;
189 static GType& Type();
190 GType& type()
const override {
return Type();}
194 GChoiceItem& ChoiceItem(GString
const& css_and_title =
"");
198 class GCheckItem :
public GItem {
200 GCheckItem(GString
const& css_and_title =
"");
201 GCheckItem& clone(GClone
const&)
override;
203 using GItem::operator=;
205 using GType = GadgetType_<GCheckItem,GItem>;
206 static GType& Type();
207 GType& type()
const override {
return Type();}
211 GCheckItem& CheckItem(GString
const& css_and_title =
"");
215 class GRadioItem :
public GItem {
217 GRadioItem(GString
const& css_and_title =
"");
218 GRadioItem& clone(GClone
const&)
override;
220 using GItem::operator=;
222 using GType = GadgetType_<GRadioItem,GItem>;
223 static GType& Type();
224 GType& type()
const override {
return Type();}
228 GRadioItem& RadioItem(GString
const& css_and_title =
"");
232 class GTitle :
public GItem {
234 GTitle(GString
const& css_and_title =
"");
235 GTitle& clone(GClone
const&)
override;
237 using GItem::operator=;
238 Place place()
const override {
return Place::Top;}
240 using GType = GadgetType_<GTitle,GItem>;
241 static GType& Type();
242 GType& type()
const override {
return Type();}
246 GTitle& Title(GString
const& css_and_title =
"");
250 class GSeparator :
public GItem {
252 GSeparator(GString
const& css =
"");
253 GSeparator& clone(GClone
const&)
override;
255 using GType = GadgetType_<GSeparator,GItem>;
256 static GType& Type();
257 GType& type()
const override {
return Type();}
261 GSeparator& Separator(GString
const& css =
"");
268 GFiller(GString
const& css =
"");
272 static GType& Type();
273 GType& type()
const override {
return Type();}
277 GFiller& Filler(GString
const& css =
"");