Separate Ardour UI widgets into dedicated library
[ardour.git] / libs / widgets / widgets / ui_config.h
1 #ifndef _WIDGETS_UI_BASE_H_
2 #define _WIDGETS_UI_BASE_H_
3
4 #include <cassert>
5
6 #include "pbd/stateful.h"
7 #include "canvas/colors.h"
8
9 #include "widgets/visibility.h"
10
11 namespace ArdourWidgets {
12
13 class LIBWIDGETS_API UIConfigurationBase : public PBD::Stateful
14 {
15 protected:
16         virtual ~UIConfigurationBase() { _instance = 0; }
17         static UIConfigurationBase* _instance;
18
19 public:
20         static UIConfigurationBase& instance() { return *_instance; }
21
22         sigc::signal<void>  DPIReset;
23         sigc::signal<void>  ColorsChanged;
24
25         virtual float get_ui_scale () = 0;
26         virtual bool get_widget_prelight () const = 0;
27         virtual ArdourCanvas::Color color (const std::string&, bool* failed = 0) const = 0;
28 };
29
30 }
31 #endif