1b5979ba10
- Add fallback values to env/xrdb references: ${env:UNEXISTING:fallback value} ${xrdb:UNEXISTING:fallback value} - Replace ${BAR.key} with ${root.key} and display deprecation warning if the former is used
37 lines
774 B
C++
37 lines
774 B
C++
#pragma once
|
|
|
|
#include <X11/Xresource.h>
|
|
|
|
#include "common.hpp"
|
|
|
|
LEMONBUDDY_NS
|
|
|
|
class xresource_manager {
|
|
public:
|
|
explicit xresource_manager();
|
|
|
|
string get_string(string name, string fallback = "") const;
|
|
float get_float(string name, float fallback = 0.0f) const;
|
|
int get_int(string name, int fallback = 0) const;
|
|
|
|
protected:
|
|
string load_value(string key, string res_type, size_t n) const;
|
|
|
|
private:
|
|
char* m_manager = nullptr;
|
|
XrmDatabase m_db;
|
|
};
|
|
|
|
namespace {
|
|
/**
|
|
* Configure injection module
|
|
*/
|
|
template <typename T = const xresource_manager&>
|
|
di::injector<T> configure_xresource_manager() {
|
|
auto instance = factory::generic_singleton<xresource_manager>();
|
|
return di::make_injector(di::bind<>().to(instance));
|
|
}
|
|
}
|
|
|
|
LEMONBUDDY_NS_END
|