Я пишу собственный виджет, используя gtkmm, и я хотел бы использовать стандартный цвет выбора, когда часть моего виджета выбрана. Например, когда вы выбираете текст в текстовом поле, цвет фона становится (для меня) темно-синим, поэтому я хочу получить такой же темно-синий цвет.
Я пробовал это, но я получаю только черный или белый, а не фактические используемые цвета:
bool MyWidget::on_draw(const Cairo::RefPtr<Cairo::Context>& cr) {
Gdk::Cairo::set_source_rgba(cr,
get_style_context()->get_color(Gtk::STATE_FLAG_SELECTED));
}
Каков правильный способ получить стандартные цвета с помощью gtkmm, чтобы, если пользователь изменит свою цветовую тему, изменения также были отражены здесь?
Или считается лучшей практикой определить некоторые новые стили CSS, которые унаследованы от стандартных системных, чтобы люди могли переопределять цвета только для моего виджета, если они хотят, не затрагивая другие?