GTK + CSS加密脚本功能

时间:2016-08-03 11:43:21

标签: css gtk gtk3

shade功能的目的是什么?遗憾的是,该功能未记录在案。它是否会影响颜色属性的饱和度,灰度,不透明度或色调?

shade(hex:string, value:double)

实施例

body {
  background: shade(#000, 0.15);
}

h1 {
  color: shade(#ddd, 22.6875);
}

1 个答案:

答案 0 :(得分:1)

似乎将RGB的luminance乘以给定值的十六进制乘以一些自定义重量。

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)

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