GTK+CSS阴影脚本功能



gtk-css shade函数的用途是什么?遗憾的是,该功能没有记录在案。它会影响颜色属性的饱和度、灰度、不透明度或色调吗?

shade(hex:string, value:double)

示例

body {
  background: shade(#000, 0.15);
}
h1 {
  color: shade(#ddd, 22.6875);
}

它似乎用一些自定义权重将十六进制RGB的亮度乘以给定值。

gtk-widgets.css

button {
    background-color: shade(rgb(160,120,100), 0.5);
}

cssshade.cpp

#include <gtkmm.h>
#include <iostream>
#include <string>
int main(int argc, char* argv[])
{
    auto app = Gtk::Application::create();;
    std::string gladeFile = argv[1];
    auto gladeBuilder = Gtk::Builder::create();
    gladeBuilder->add_from_file(gladeFile);
    app->signal_startup().connect([&]
    {
         for(auto& object: gladeBuilder->get_objects())
         {
            auto widget = Glib::RefPtr<Gtk::Widget>::cast_dynamic(object);
            if(!widget)
                continue;
            auto style = widget->get_style_context();
            auto color = style->get_background_color();
            std::cout<<widget->get_name()<<" "<<color.to_string()<<std::endl;
        }
    });
    app->run();
  return 0;
}

输出:

gtkmm__GtkButton rgb(73,62,57)

这就是为什么所有通道都更改为不同的值。

最新更新