42
47
: FilterExpanderLabel(_("Categories"), NUX_FILE_LINE_PARAM)
43
48
, all_button_(nullptr)
45
dash::Style& style = dash::Style::Instance();
50
52
genre_layout_ = new nux::GridHLayout(NUX_TRACKER_LOCATION);
51
53
genre_layout_->ForceChildrenSize(true);
52
54
genre_layout_->MatchContentSize(true);
53
genre_layout_->SetTopAndBottomPadding(style.GetSpaceBetweenFilterWidgets() - style.GetFilterHighlightPadding(), style.GetFilterHighlightPadding());
54
55
genre_layout_->EnablePartialVisibility(false);
58
SetContents(genre_layout_);
60
scale.changed.connect([this, columns] (double scale) {
61
if (all_button_) all_button_->scale = scale;
63
for (auto* button : buttons_)
64
button->scale = scale;
70
void FilterGenre::UpdateSize(int columns)
72
auto& style = dash::Style::Instance();
73
genre_layout_->SetTopAndBottomPadding(style.GetSpaceBetweenFilterWidgets().CP(scale) - style.GetFilterHighlightPadding().CP(scale), style.GetFilterHighlightPadding().CP(scale));
58
genre_layout_->SetChildrenSize((style.GetFilterBarWidth() - 12 * 2) / 3, style.GetFilterButtonHeight());
59
genre_layout_->SetSpaceBetweenChildren (12, 12);
77
genre_layout_->SetChildrenSize((style.GetFilterBarWidth().CP(scale) - CHILDREN_SPACE.CP(scale) * 2) / 3, style.GetFilterButtonHeight().CP(scale));
78
genre_layout_->SetSpaceBetweenChildren(CHILDREN_SPACE.CP(scale), CHILDREN_SPACE.CP(scale));
63
genre_layout_->SetChildrenSize((style.GetFilterBarWidth() - 10 ) / 2, style.GetFilterButtonHeight());
64
genre_layout_->SetSpaceBetweenChildren (10, 12);
82
genre_layout_->SetChildrenSize((style.GetFilterBarWidth().CP(scale) - CHILDREN_SPACE_SMALLER.CP(scale)) / 2, style.GetFilterButtonHeight().CP(scale));
83
genre_layout_->SetSpaceBetweenChildren(CHILDREN_SPACE_SMALLER.CP(scale), CHILDREN_SPACE.CP(scale));
67
SetContents(genre_layout_);
70
FilterGenre::~FilterGenre()
74
87
void FilterGenre::SetFilter(Filter::Ptr const& filter)
81
94
all_button_ = show_all_button ? new FilterAllButton(NUX_TRACKER_LOCATION) : nullptr;
82
95
SetRightHandView(all_button_);
98
all_button_->scale = scale();
84
99
all_button_->SetFilter(filter_);
86
102
show_button_func(filter_->show_all_button);
87
103
filter_->show_all_button.changed.connect(show_button_func);
89
105
expanded = !filter_->collapsed();
91
107
filter_->option_added.connect(sigc::mem_fun(this, &FilterGenre::OnOptionAdded));
106
122
std::string label(escape.Value());
108
124
FilterGenreButton* button = new FilterGenreButton(label, NUX_TRACKER_LOCATION);
125
button->scale = scale();
109
126
button->SetFilter(new_filter);
110
127
genre_layout_->AddView(button, 0, nux::MINOR_POSITION_CENTER, nux::MINOR_SIZE_FULL);
111
128
buttons_.push_back(button);