Move ARDOUR_UI::ui_scale into UIConfiguration class
This commit is contained in:
parent
74db5abc7e
commit
45d487f16e
@ -208,7 +208,7 @@ ArdourButton::render (cairo_t* cr, cairo_rectangle_t *)
|
||||
uint32_t text_color;
|
||||
uint32_t led_color;
|
||||
|
||||
const float corner_radius = std::max(2.f, _corner_radius * ARDOUR_UI::ui_scale);
|
||||
const float corner_radius = std::max(2.f, _corner_radius * ARDOUR_UI::config()->get_ui_scale());
|
||||
|
||||
if (_update_colors) {
|
||||
set_colors ();
|
||||
@ -440,12 +440,12 @@ ArdourButton::render (cairo_t* cr, cairo_rectangle_t *)
|
||||
|
||||
//black ring
|
||||
cairo_set_source_rgb (cr, 0, 0, 0);
|
||||
cairo_arc (cr, 0, 0, _diameter * .5 - 1 * ARDOUR_UI::ui_scale, 0, 2 * M_PI);
|
||||
cairo_arc (cr, 0, 0, _diameter * .5 - 1 * ARDOUR_UI::config()->get_ui_scale(), 0, 2 * M_PI);
|
||||
cairo_fill(cr);
|
||||
|
||||
//led color
|
||||
ArdourCanvas::set_source_rgba (cr, led_color);
|
||||
cairo_arc (cr, 0, 0, _diameter * .5 - 3 * ARDOUR_UI::ui_scale, 0, 2 * M_PI);
|
||||
cairo_arc (cr, 0, 0, _diameter * .5 - 3 * ARDOUR_UI::config()->get_ui_scale(), 0, 2 * M_PI);
|
||||
cairo_fill(cr);
|
||||
|
||||
cairo_restore (cr);
|
||||
@ -527,7 +527,7 @@ ArdourButton::on_size_request (Gtk::Requisition* req)
|
||||
CairoWidget::on_size_request (req);
|
||||
|
||||
if (_diameter == 0) {
|
||||
const float newdia = rintf (11.f * ARDOUR_UI::ui_scale);
|
||||
const float newdia = rintf (11.f * ARDOUR_UI::config()->get_ui_scale());
|
||||
if (_diameter != newdia) {
|
||||
_pattern_height = 0;
|
||||
_diameter = newdia;
|
||||
|
@ -330,7 +330,7 @@ ArdourKnob::on_motion_notify_event (GdkEventMotion *ev)
|
||||
|
||||
|
||||
//scale the adjustment based on keyboard modifiers & GUI size
|
||||
const float ui_scale = max (1.f, ARDOUR_UI::ui_scale);
|
||||
const float ui_scale = max (1.f, ARDOUR_UI::config()->get_ui_scale());
|
||||
float scale = 0.0025 / ui_scale;
|
||||
|
||||
if (ev->state & Keyboard::GainFineScaleModifier) {
|
||||
|
@ -166,8 +166,6 @@ ARDOUR_UI *ARDOUR_UI::theArdourUI = 0;
|
||||
sigc::signal<void, framepos_t, bool, framepos_t> ARDOUR_UI::Clock;
|
||||
sigc::signal<void> ARDOUR_UI::CloseAllDialogs;
|
||||
|
||||
float ARDOUR_UI::ui_scale = 1.0;
|
||||
|
||||
static bool
|
||||
ask_about_configuration_copy (string const & old_dir, string const & new_dir, int version)
|
||||
{
|
||||
|
@ -186,7 +186,6 @@ class ARDOUR_UI : public Gtkmm2ext::UI, public ARDOUR::SessionHandlePtr
|
||||
|
||||
static ARDOUR_UI *instance () { return theArdourUI; }
|
||||
static UIConfiguration *config () { return theArdourUI->ui_config; }
|
||||
static float ui_scale;
|
||||
|
||||
PublicEditor& the_editor() { return *editor;}
|
||||
Mixer_UI* the_mixer() { return mixer; }
|
||||
|
@ -216,7 +216,7 @@ ARDOUR_UI::tearoff_settings (const char* name) const
|
||||
return 0;
|
||||
}
|
||||
|
||||
#define PX_SCALE(px) std::max((float)px, rintf((float)px * ARDOUR_UI::ui_scale))
|
||||
#define PX_SCALE(px) std::max((float)px, rintf((float)px * ARDOUR_UI::config()->get_ui_scale()))
|
||||
|
||||
void
|
||||
ARDOUR_UI::setup_transport ()
|
||||
|
@ -223,7 +223,7 @@ ARDOUR_UI::set_session (Session *s)
|
||||
|
||||
editor_meter_peak_display.set_name ("meterbridge peakindicator");
|
||||
editor_meter_peak_display.unset_flags (Gtk::CAN_FOCUS);
|
||||
editor_meter_peak_display.set_size_request (std::max(9.f, rintf(8.f * ui_scale)), -1);
|
||||
editor_meter_peak_display.set_size_request (std::max(9.f, rintf(8.f * ARDOUR_UI::config()->get_ui_scale())), -1);
|
||||
editor_meter_peak_display.set_corner_radius (3.0);
|
||||
|
||||
editor_meter_max_peak = -INFINITY;
|
||||
|
@ -423,8 +423,6 @@ ARDOUR_UI::parameter_changed (std::string p)
|
||||
? ArdourCanvas::WaveView::Rectified : ArdourCanvas::WaveView::Normal);
|
||||
} else if (p == "show-waveform-clipping") {
|
||||
ArdourCanvas::WaveView::set_global_show_waveform_clipping (ARDOUR_UI::config()->get_show_waveform_clipping());
|
||||
} else if (p == "font-scale") {
|
||||
ui_scale = config()->get_font_scale () / 102400.;
|
||||
} else if (p == "waveform-cache-size") {
|
||||
/* GUI option has units of megabytes; image cache uses units of bytes */
|
||||
ArdourCanvas::WaveView::set_image_cache_size (ARDOUR_UI::config()->get_waveform_cache_size() * 1048576);
|
||||
|
@ -414,7 +414,7 @@ Editor::Editor ()
|
||||
|
||||
samples_per_pixel = 2048; /* too early to use reset_zoom () */
|
||||
|
||||
timebar_height = std::max(12., ceil (15. * ARDOUR_UI::ui_scale));
|
||||
timebar_height = std::max(12., ceil (15. * ARDOUR_UI::config()->get_ui_scale()));
|
||||
TimeAxisView::setup_sizes ();
|
||||
ArdourMarker::setup_sizes (timebar_height);
|
||||
|
||||
|
@ -100,8 +100,8 @@ GainMeterBase::GainMeterBase (Session* s, bool horizontal, int fader_length, int
|
||||
next_release_selects = false;
|
||||
_width = Wide;
|
||||
|
||||
fader_length = rint (fader_length * ARDOUR_UI::ui_scale);
|
||||
fader_girth = rint (fader_girth * ARDOUR_UI::ui_scale);
|
||||
fader_length = rint (fader_length * ARDOUR_UI::config()->get_ui_scale());
|
||||
fader_girth = rint (fader_girth * ARDOUR_UI::config()->get_ui_scale());
|
||||
|
||||
if (horizontal) {
|
||||
gain_slider = manage (new HSliderController (&gain_adjustment, boost::shared_ptr<PBD::Controllable>(), fader_length, fader_girth));
|
||||
@ -935,7 +935,7 @@ GainMeterBase::redraw_metrics()
|
||||
meter_ticks2_area.queue_draw ();
|
||||
}
|
||||
|
||||
#define PX_SCALE(pxmin, dflt) rint(std::max((double)pxmin, (double)dflt * ARDOUR_UI::ui_scale))
|
||||
#define PX_SCALE(pxmin, dflt) rint(std::max((double)pxmin, (double)dflt * ARDOUR_UI::config()->get_ui_scale()))
|
||||
|
||||
GainMeter::GainMeter (Session* s, int fader_length)
|
||||
: GainMeterBase (s, false, fader_length, 24)
|
||||
|
@ -260,7 +260,7 @@ LevelMeterBase::setup_meters (int len, int initial_width, int thin_width)
|
||||
width = thin_meter_width;
|
||||
}
|
||||
|
||||
width = rint (width * ARDOUR_UI::ui_scale);
|
||||
width = rint (width * ARDOUR_UI::config()->get_ui_scale());
|
||||
|
||||
if ( meters.size() > 0
|
||||
&& nmeters == visible_meter_count
|
||||
|
@ -77,8 +77,8 @@ ArdourMarker::ArdourMarker (PublicEditor& ed, ArdourCanvas::Container& parent, g
|
||||
{
|
||||
|
||||
const double MH = marker_height - 1;
|
||||
const double M3 = std::max(1.f, rintf(3.f * ARDOUR_UI::ui_scale));
|
||||
const double M6 = std::max(2.f, rintf(6.f * ARDOUR_UI::ui_scale));
|
||||
const double M3 = std::max(1.f, rintf(3.f * ARDOUR_UI::config()->get_ui_scale()));
|
||||
const double M6 = std::max(2.f, rintf(6.f * ARDOUR_UI::config()->get_ui_scale()));
|
||||
|
||||
/* Shapes we use:
|
||||
*
|
||||
@ -403,7 +403,7 @@ ArdourMarker::setup_name_display ()
|
||||
limit = _right_label_limit;
|
||||
}
|
||||
|
||||
const float padding = std::max(2.f, rintf(2.f * ARDOUR_UI::ui_scale));
|
||||
const float padding = std::max(2.f, rintf(2.f * ARDOUR_UI::config()->get_ui_scale()));
|
||||
|
||||
/* Work out how wide the name can be */
|
||||
int name_width = min ((double) pixel_width (_name, name_font) + padding, limit);
|
||||
|
@ -304,7 +304,7 @@ meter_render_ticks (Gtk::Widget& w, MeterType type, vector<ARDOUR::DataType> typ
|
||||
|
||||
float box_l=0;
|
||||
float box_w=0;
|
||||
#define PX_SCALE(pxmin, dflt) rint(std::max((double)pxmin, (double)dflt * ARDOUR_UI::ui_scale))
|
||||
#define PX_SCALE(pxmin, dflt) rint(std::max((double)pxmin, (double)dflt * ARDOUR_UI::config()->get_ui_scale()))
|
||||
if (tickleft) {
|
||||
if (w.get_name().substr(0, 3) == "Bar") {
|
||||
box_w = PX_SCALE(2, 2);
|
||||
@ -641,7 +641,7 @@ meter_render_metrics (Gtk::Widget& w, MeterType type, vector<DataType> types)
|
||||
const double fixfontsize = 1.0;
|
||||
#else
|
||||
// counter-act global font-scaling.
|
||||
const double fixfontsize = std::min(1.0, 0.9 / sqrtf(ARDOUR_UI::ui_scale));
|
||||
const double fixfontsize = std::min(1.0, 0.9 / sqrtf(ARDOUR_UI::config()->get_ui_scale()));
|
||||
#endif
|
||||
|
||||
font.set_weight (Pango::WEIGHT_NORMAL);
|
||||
|
@ -58,7 +58,7 @@ PBD::Signal1<void,MeterStrip*> MeterStrip::CatchDeletion;
|
||||
PBD::Signal0<void> MeterStrip::MetricChanged;
|
||||
PBD::Signal0<void> MeterStrip::ConfigurationChanged;
|
||||
|
||||
#define PX_SCALE(pxmin, dflt) rint(std::max((double)pxmin, (double)dflt * ARDOUR_UI::ui_scale))
|
||||
#define PX_SCALE(pxmin, dflt) rint(std::max((double)pxmin, (double)dflt * ARDOUR_UI::config()->get_ui_scale()))
|
||||
|
||||
MeterStrip::MeterStrip (int metricmode, MeterType mt)
|
||||
: AxisView(0)
|
||||
@ -544,8 +544,8 @@ MeterStrip::on_size_allocate (Gtk::Allocation& a)
|
||||
tnh = 4 + std::max(2u, _session->track_number_decimals()) * 8; // TODO 8 = max_with_of_digit_0_to_9()
|
||||
}
|
||||
|
||||
nh *= ARDOUR_UI::ui_scale;
|
||||
tnh *= ARDOUR_UI::ui_scale;
|
||||
nh *= ARDOUR_UI::config()->get_ui_scale();
|
||||
tnh *= ARDOUR_UI::config()->get_ui_scale();
|
||||
|
||||
int prev_height, ignored;
|
||||
bool need_relayout = false;
|
||||
@ -810,7 +810,7 @@ MeterStrip::name_changed () {
|
||||
}
|
||||
const int tnh = 4 + std::max(2u, _session->track_number_decimals()) * 8; // TODO 8 = max_width_of_digit_0_to_9()
|
||||
// NB numbers are rotated 90deg. on the meterbridge -> use height
|
||||
number_label.set_size_request(PX_SCALE(18, 18), tnh * ARDOUR_UI::ui_scale);
|
||||
number_label.set_size_request(PX_SCALE(18, 18), tnh * ARDOUR_UI::config()->get_ui_scale());
|
||||
} else {
|
||||
number_label.hide();
|
||||
}
|
||||
|
@ -257,7 +257,7 @@ MixerStrip::init ()
|
||||
_comment_button.signal_clicked.connect (sigc::mem_fun (*this, &RouteUI::toggle_comment_editor));
|
||||
|
||||
// TODO implement ArdourKnob::on_size_request properly
|
||||
#define PX_SCALE(px) std::max((float)px, rintf((float)px * ARDOUR_UI::ui_scale))
|
||||
#define PX_SCALE(px) std::max((float)px, rintf((float)px * ARDOUR_UI::config()->get_ui_scale()))
|
||||
trim_control.set_size_request (PX_SCALE(19), PX_SCALE(19));
|
||||
#undef PX_SCALE
|
||||
trim_control.set_tooltip_prefix (_("Trim: "));
|
||||
@ -703,7 +703,7 @@ MixerStrip::set_width_enum (Width w, void* owner)
|
||||
|
||||
set_button_names ();
|
||||
|
||||
const float scale = std::max(1.f, ARDOUR_UI::ui_scale);
|
||||
const float scale = std::max(1.f, ARDOUR_UI::config()->get_ui_scale());
|
||||
|
||||
switch (w) {
|
||||
case Wide:
|
||||
|
@ -55,7 +55,7 @@ using namespace std;
|
||||
|
||||
Glib::RefPtr<ActionGroup> MonitorSection::monitor_actions;
|
||||
|
||||
#define PX_SCALE(px) std::max((float)px, rintf((float)px * ARDOUR_UI::ui_scale))
|
||||
#define PX_SCALE(px) std::max((float)px, rintf((float)px * ARDOUR_UI::config()->get_ui_scale()))
|
||||
|
||||
MonitorSection::MonitorSection (Session* s)
|
||||
: AxisView (s)
|
||||
|
@ -138,7 +138,7 @@ MonoPanner::on_expose_event (GdkEventExpose*)
|
||||
const int lr_box_size = height - 2 * step_down;
|
||||
const int pos_box_size = (int)(rint(step_down * .8)) | 1;
|
||||
const int top_step = step_down - pos_box_size;
|
||||
const double corner_radius = 5 * ARDOUR_UI::ui_scale;
|
||||
const double corner_radius = 5 * ARDOUR_UI::config()->get_ui_scale();
|
||||
|
||||
o = colors.outline;
|
||||
f = colors.fill;
|
||||
@ -253,8 +253,8 @@ MonoPanner::on_expose_event (GdkEventExpose*)
|
||||
context->set_line_width (2.0);
|
||||
context->move_to (spos + (pos_box_size/2.0), top_step); /* top right */
|
||||
context->rel_line_to (0.0, pos_box_size); /* lower right */
|
||||
context->rel_line_to (-pos_box_size/2.0, 4.0 * ARDOUR_UI::ui_scale); /* bottom point */
|
||||
context->rel_line_to (-pos_box_size/2.0, -4.0 * ARDOUR_UI::ui_scale); /* lower left */
|
||||
context->rel_line_to (-pos_box_size/2.0, 4.0 * ARDOUR_UI::config()->get_ui_scale()); /* bottom point */
|
||||
context->rel_line_to (-pos_box_size/2.0, -4.0 * ARDOUR_UI::config()->get_ui_scale()); /* lower left */
|
||||
context->rel_line_to (0.0, -pos_box_size); /* upper left */
|
||||
context->close_path ();
|
||||
|
||||
@ -266,7 +266,7 @@ MonoPanner::on_expose_event (GdkEventExpose*)
|
||||
|
||||
/* marker line */
|
||||
context->set_line_width (1.0);
|
||||
context->move_to (spos, 1 + top_step + pos_box_size + 4.0 * ARDOUR_UI::ui_scale);
|
||||
context->move_to (spos, 1 + top_step + pos_box_size + 4.0 * ARDOUR_UI::config()->get_ui_scale());
|
||||
context->line_to (spos, half_lr_box + step_down + lr_box_size - 1);
|
||||
context->set_source_rgba (UINT_RGBA_R_FLT(po), UINT_RGBA_G_FLT(po), UINT_RGBA_B_FLT(po), UINT_RGBA_A_FLT(po));
|
||||
context->stroke ();
|
||||
|
@ -240,7 +240,7 @@ PannerUI::setup_pan ()
|
||||
return;
|
||||
}
|
||||
|
||||
const float scale = std::max (1.f, ARDOUR_UI::ui_scale);
|
||||
const float scale = std::max (1.f, ARDOUR_UI::config()->get_ui_scale());
|
||||
|
||||
if (_current_uri == "http://ardour.org/plugin/panner_2in2out#ui")
|
||||
{
|
||||
|
@ -510,7 +510,7 @@ ProcessorEntry::toggle_panner_link ()
|
||||
ProcessorEntry::Control::Control (boost::shared_ptr<AutomationControl> c, string const & n)
|
||||
: _control (c)
|
||||
, _adjustment (gain_to_slider_position_with_max (1.0, Config->get_max_gain()), 0, 1, 0.01, 0.1)
|
||||
, _slider (&_adjustment, boost::shared_ptr<PBD::Controllable>(), 0, max(13.f, rintf(13.f * ARDOUR_UI::ui_scale)))
|
||||
, _slider (&_adjustment, boost::shared_ptr<PBD::Controllable>(), 0, max(13.f, rintf(13.f * ARDOUR_UI::config()->get_ui_scale())))
|
||||
, _slider_persistant_tooltip (&_slider)
|
||||
, _button (ArdourButton::led_default_elements)
|
||||
, _ignore_ui_adjustment (false)
|
||||
@ -792,7 +792,7 @@ PluginInsertProcessorEntry::plugin_insert_splitting_changed ()
|
||||
|
||||
if (_plugin_insert->splitting () || in != sinks)
|
||||
{
|
||||
_routing_icon.set_size_request (-1, std::max (7.f, rintf(7.f * ARDOUR_UI::ui_scale)));
|
||||
_routing_icon.set_size_request (-1, std::max (7.f, rintf(7.f * ARDOUR_UI::config()->get_ui_scale())));
|
||||
_routing_icon.set_visible(true);
|
||||
_input_icon.show();
|
||||
} else {
|
||||
@ -817,7 +817,7 @@ PluginInsertProcessorEntry::hide_things ()
|
||||
ProcessorEntry::PortIcon::PortIcon(bool input) {
|
||||
_input = input;
|
||||
_ports = ARDOUR::ChanCount(ARDOUR::DataType::AUDIO, 1);
|
||||
set_size_request (-1, std::max (2.f, rintf(2.f * ARDOUR_UI::ui_scale)));
|
||||
set_size_request (-1, std::max (2.f, rintf(2.f * ARDOUR_UI::config()->get_ui_scale())));
|
||||
}
|
||||
|
||||
bool
|
||||
@ -838,7 +838,7 @@ ProcessorEntry::PortIcon::on_expose_event (GdkEventExpose* ev)
|
||||
cairo_rectangle (cr, 0, 0, width, height);
|
||||
cairo_fill (cr);
|
||||
|
||||
const double dx = rint(max(2., 2. * ARDOUR_UI::ui_scale));
|
||||
const double dx = rint(max(2., 2. * ARDOUR_UI::config()->get_ui_scale()));
|
||||
if (_ports.n_total() > 1) {
|
||||
for (uint32_t i = 0; i < _ports.n_total(); ++i) {
|
||||
if (i < _ports.n_midi()) {
|
||||
@ -886,7 +886,7 @@ ProcessorEntry::RoutingIcon::on_expose_event (GdkEventExpose* ev)
|
||||
cairo_rectangle (cr, ev->area.x, ev->area.y, ev->area.width, ev->area.height);
|
||||
cairo_clip (cr);
|
||||
|
||||
cairo_set_line_width (cr, max (1.f, ARDOUR_UI::ui_scale));
|
||||
cairo_set_line_width (cr, max (1.f, ARDOUR_UI::config()->get_ui_scale()));
|
||||
cairo_set_line_cap (cr, CAIRO_LINE_CAP_ROUND);
|
||||
|
||||
Gtk::Allocation a = get_allocation();
|
||||
@ -936,7 +936,7 @@ ProcessorEntry::RoutingIcon::on_expose_event (GdkEventExpose* ev)
|
||||
cairo_curve_to (cr, si_x, 0, si_x0, height, si_x0, 0);
|
||||
cairo_stroke (cr);
|
||||
} else if (midi_sources == 0 && midi_sinks == 1) {
|
||||
const double dx = 1 + rint(max(2., 2. * ARDOUR_UI::ui_scale));
|
||||
const double dx = 1 + rint(max(2., 2. * ARDOUR_UI::config()->get_ui_scale()));
|
||||
// draw "T"
|
||||
// TODO connect back to track-input of last midi-out if any, otherwise draw "X"
|
||||
const float si_x = rintf(width * .2f) + .5f;
|
||||
|
@ -151,7 +151,7 @@ StereoPanner::on_expose_event (GdkEventExpose*)
|
||||
height = get_height ();
|
||||
|
||||
const int step_down = rint(height / 3.5);
|
||||
const double corner_radius = 5.0 * ARDOUR_UI::ui_scale;
|
||||
const double corner_radius = 5.0 * ARDOUR_UI::config()->get_ui_scale();
|
||||
const int lr_box_size = height - 2 * step_down;
|
||||
const int pos_box_size = (int)(rint(step_down * .8)) | 1;
|
||||
const int top_step = step_down - pos_box_size;
|
||||
|
@ -82,7 +82,7 @@ Glib::RefPtr<Gtk::SizeGroup> TimeAxisView::midi_scroomer_size_group = Glib::RefP
|
||||
void
|
||||
TimeAxisView::setup_sizes()
|
||||
{
|
||||
name_width_px = ceilf (100.f * ARDOUR_UI::ui_scale);
|
||||
name_width_px = ceilf (100.f * ARDOUR_UI::config()->get_ui_scale());
|
||||
}
|
||||
|
||||
TimeAxisView::TimeAxisView (ARDOUR::Session* sess, PublicEditor& ed, TimeAxisView* rent, Canvas& /*canvas*/)
|
||||
|
@ -180,6 +180,12 @@ UIConfiguration::set_pango_fontsize ()
|
||||
pango_cairo_font_map_set_resolution ((PangoCairoFontMap*) pango_cairo_font_map_get_default(), val/1024);
|
||||
}
|
||||
|
||||
float
|
||||
UIConfiguration::get_ui_scale ()
|
||||
{
|
||||
return get_font_scale () / 102400.;
|
||||
}
|
||||
|
||||
void
|
||||
UIConfiguration::map_parameters (boost::function<void (std::string)>& functor)
|
||||
{
|
||||
|
@ -80,10 +80,12 @@ class UIConfiguration : public PBD::Stateful
|
||||
|
||||
void reset_dpi ();
|
||||
void set_pango_fontsize ();
|
||||
|
||||
float get_ui_scale ();
|
||||
|
||||
static sigc::signal<void> DPIReset;
|
||||
|
||||
sigc::signal<void,std::string> ParameterChanged;
|
||||
sigc::signal<void,std::string> ParameterChanged;
|
||||
void map_parameters (boost::function<void (std::string)>&);
|
||||
|
||||
void parameter_changed (std::string);
|
||||
|
Loading…
Reference in New Issue
Block a user