# Layout of the first line with the name and `star_buttons`
var top_line_layout = new HorizontalLayout(parent=self)
+ var lbl_name = new Label(parent=top_line_layout, text=beer_info.beer.name, size = 1.25) is lazy
+ var lbl_stats = new DescLabel(parent=self, text=beer_info.rating_text, size=0.5) is lazy
+ var lbl_desc: Label is noinit
+ var lbl_comment: nullable Label = null
+
init
do
- var lbl_name = new Label(parent=top_line_layout, text=beer_info.beer.name)
- lbl_name.size = 1.25
+ lbl_name
var desc = beer_info.beer.desc
if beer_info.is_new then desc += " (New)".t
- var lbl_desc = new Label(parent=self, text=desc)
+ lbl_desc = new DescLabel(parent=self, text=desc)
- var lbl_stats = new Label(parent=self, text=beer_info.rating_text)
- lbl_stats.size = 0.5
+ lbl_stats
var badges = beer_info.badges
if badges != null then
- var lbl_comment = new Label(parent=self, text=badges.join(" "))
+ var lbl_comment = new DescLabel(parent=self, text=badges.join(" "))
lbl_comment.size = 0.5
+ self.lbl_comment = lbl_comment
end
var rating = beer_info.user_rating or else 0
for i in [1..5] do
var but = new StarButton(beer_info.beer, i, i <= rating, parent=l_stars)
but.size = 1.5
- but.observers.add self
+ but.enabled = app.user != null
star_buttons.add but
end
end
class StarButton
super Button
- autoinit beer, rating, on, parent, enabled
+ autoinit beer, rating, on, parent, enabled, size, align
# Info on the beer to rate
var beer: Beer