extend ArdourButton API to provide a new tweak for buttons with occasional text
Buttons with this tweak do not change their size request based on their text (or lack of it)
This commit is contained in:
parent
0eb509ac2e
commit
0fe194c90b
@ -541,14 +541,30 @@ ArdourButton::on_size_request (Gtk::Requisition* req)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((_elements & Text) && !_text.empty()) {
|
if (_elements & Text) {
|
||||||
// if _layout does not exist, char_pixel_height() creates it,
|
|
||||||
req->height = std::max(req->height, (int) ceil(char_pixel_height() * BASELINESTRETCH + 1.0));
|
|
||||||
assert (_layout);
|
|
||||||
_layout->get_pixel_size (_text_width, _text_height);
|
|
||||||
|
|
||||||
req->width += rint(1.75 * char_pixel_width()); // padding
|
if (_tweaks & OccasionalText) {
|
||||||
req->width += _text_width;
|
|
||||||
|
/* size should not change based on presence or absence
|
||||||
|
* of text.
|
||||||
|
*/
|
||||||
|
|
||||||
|
if (!_text.empty()) {
|
||||||
|
ensure_layout ();
|
||||||
|
_layout->set_text (_text);
|
||||||
|
_layout->get_pixel_size (_text_width, _text_height);
|
||||||
|
}
|
||||||
|
|
||||||
|
} else if (!_text.empty()) {
|
||||||
|
|
||||||
|
//if _layout does not exist, char_pixel_height() creates it,
|
||||||
|
|
||||||
|
req->height = std::max(req->height, (int) ceil(char_pixel_height() * BASELINESTRETCH + 1.0));
|
||||||
|
assert (_layout);
|
||||||
|
_layout->get_pixel_size (_text_width, _text_height);
|
||||||
|
req->width += rint(1.75 * char_pixel_width()); // padding
|
||||||
|
req->width += _text_width;
|
||||||
|
}
|
||||||
|
|
||||||
/* XXX hack (surprise). Deal with two common rotation angles */
|
/* XXX hack (surprise). Deal with two common rotation angles */
|
||||||
|
|
||||||
|
@ -55,7 +55,8 @@ class ArdourButton : public CairoWidget , public Gtkmm2ext::Activatable
|
|||||||
enum Tweaks {
|
enum Tweaks {
|
||||||
Square = 0x1,
|
Square = 0x1,
|
||||||
TrackHeader = 0x2,
|
TrackHeader = 0x2,
|
||||||
unused3 = 0x4,
|
OccasionalText = 0x4,
|
||||||
|
unused4 = 0x8,
|
||||||
};
|
};
|
||||||
|
|
||||||
Tweaks tweaks() const { return _tweaks; }
|
Tweaks tweaks() const { return _tweaks; }
|
||||||
|
Loading…
Reference in New Issue
Block a user