Add spacer widget to maintain size with GUI scaling

This is intended for the (Mixbus) Group Bar
This commit is contained in:
Robin Gareus
2025-06-10 20:27:41 +02:00
parent 41fc50898e
commit ccf3addf5a
2 changed files with 31 additions and 0 deletions

View File

@@ -21,6 +21,14 @@
using namespace ArdourWidgets;
ArdourScalingSpacer::ArdourScalingSpacer (int natural_width, int natural_height)
: CairoWidget ()
, _natural_width (natural_width)
, _natural_height (natural_height)
{
}
ArdourVSpacer::ArdourVSpacer (float r)
: CairoWidget ()
, ratio (r)

View File

@@ -29,6 +29,29 @@
namespace ArdourWidgets {
class LIBWIDGETS_API ArdourScalingSpacer : public CairoWidget
{
public:
ArdourScalingSpacer (int natural_width = 16, int natural_height = 16);
protected:
void render (Cairo::RefPtr<Cairo::Context> const& ctx, cairo_rectangle_t*) {}
void on_size_request (Gtk::Requisition* req) {
if (_natural_width > 0) {
req->width = _natural_width * UIConfigurationBase::instance().get_ui_scale ();
}
if (_natural_height > 0) {
req->height = _natural_height * UIConfigurationBase::instance().get_ui_scale ();
}
CairoWidget::on_size_request (req);
}
private:
int _natural_width;
int _natural_height;
};
class LIBWIDGETS_API ArdourVSpacer : public CairoWidget
{
public: