mirror of
https://github.com/zlgopen/awtk.git
synced 2025-05-08 19:44:45 +08:00
improve gradient
This commit is contained in:
parent
db5658c0a4
commit
9ac9dd0309
@ -21,9 +21,9 @@
|
||||
round_radius_bottom_right ="8">
|
||||
<normal bg_color="linear-gradient(180deg, #FF0000 20%, #0000FF);" />
|
||||
<pressed bg_color="linear-gradient(180deg, #FF0000, #0000FF 80%);" x_offset="1" y_offset="1"/>
|
||||
<over bg_color="linear-gradient(180deg, #FF0000 20%, #0000FF 80%);" />
|
||||
<over bg_color="linear-gradient(180deg, #FF0000 70%, #0000FF 30%);" />
|
||||
<disable bg_color="gray" text_color="#d0d0d0" />
|
||||
<focused bg_color="linear-gradient(180deg, #FF0000 20%, #0000FF);" border_color="green"/>
|
||||
<focused bg_color="linear-gradient(180deg, #FF0000 20%, #0000FF 80%);" border_color="green"/>
|
||||
</style>
|
||||
|
||||
<style name="icon" icon="earth" border_color="#a0a0a0" text_color="black">
|
||||
|
@ -3,6 +3,7 @@
|
||||
2022/04/14
|
||||
* 让 windows 的串口也支持 select 的形式(感谢智明提供补丁)。
|
||||
* 还原 app_helper_base.py 脚本的修改(感谢智明提供补丁)。
|
||||
* 修复 awtk 在 OpenGL 下的渐变色,上面的颜色坐标比例比下面的颜色要大的时候,颜色不正确的问题(感谢智明提供补丁)。
|
||||
|
||||
2022/04/13
|
||||
* 复切换主题时,销毁style后,由于控件need_update_style为false,没有通知该控件style更新数据,导致获取该控件样式属性时发生崩溃问题(感谢兆坤提供补丁)。
|
||||
|
7
foobar.fs
Normal file
7
foobar.fs
Normal file
@ -0,0 +1,7 @@
|
||||
function foo(a, b) {
|
||||
return a + b
|
||||
}
|
||||
|
||||
function bar(a, b) {
|
||||
return a - b
|
||||
}
|
12
m.js
Normal file
12
m.js
Normal file
@ -0,0 +1,12 @@
|
||||
var code = '
|
||||
function foo(a, b) {
|
||||
return a + b
|
||||
}
|
||||
function bar(a, b) {
|
||||
return a - b
|
||||
}
|
||||
'
|
||||
var m = require_str(code)
|
||||
print(m.foo(100, 99))
|
||||
print(m.bar(100, 99))
|
||||
|
3
main.fs
Normal file
3
main.fs
Normal file
@ -0,0 +1,3 @@
|
||||
var m = require('foobar.fs')
|
||||
print(m.foo(100, 99))
|
||||
print(m.bar(100, 99))
|
@ -60,6 +60,9 @@ vg_gradient_t* vg_gradient_init_with_gradient(vg_gradient_t* gradient, const rec
|
||||
info->sy = rect->y + rect->h * g->stops[0].offset;
|
||||
info->ex = rect->x;
|
||||
info->ey = rect->y + rect->h * g->stops[1].offset;
|
||||
if (info->sy > info->ey) {
|
||||
info->ey = info->sy;
|
||||
}
|
||||
}
|
||||
}
|
||||
gradient->gradient = *g;
|
||||
|
@ -105,6 +105,50 @@ TEST(Gradient, str1) {
|
||||
str_reset(&str);
|
||||
}
|
||||
|
||||
TEST(Gradient, str1_1) {
|
||||
gradient_t a;
|
||||
color_t c;
|
||||
gradient_init_from_str(&a, "linear-gradient(#FF0000 80%, #0000FF 20%)");
|
||||
ASSERT_EQ(a.type, GRADIENT_LINEAR);
|
||||
ASSERT_EQ(a.degree, 0u);
|
||||
ASSERT_EQ(a.nr, 2u);
|
||||
|
||||
ASSERT_EQ(a.stops[0].offset, 0.8f);
|
||||
ASSERT_EQ(a.stops[0].color.rgba.r, 0xff);
|
||||
ASSERT_EQ(a.stops[1].offset, 0.2f);
|
||||
ASSERT_EQ(a.stops[1].color.rgba.b, 0xff);
|
||||
|
||||
c = gradient_get_color(&a, 0);
|
||||
ASSERT_EQ(c.rgba.r, 0xff);
|
||||
ASSERT_EQ(c.rgba.g, 0);
|
||||
ASSERT_EQ(c.rgba.b, 0);
|
||||
ASSERT_EQ(c.rgba.a, 0xff);
|
||||
|
||||
c = gradient_get_color(&a, 0.5);
|
||||
ASSERT_EQ(c.rgba.r, 0xff);
|
||||
ASSERT_EQ(c.rgba.g, 0);
|
||||
ASSERT_EQ(c.rgba.b, 0);
|
||||
ASSERT_EQ(c.rgba.a, 0xff);
|
||||
|
||||
c = gradient_get_color(&a, 0.9);
|
||||
ASSERT_EQ(c.rgba.r, 0);
|
||||
ASSERT_EQ(c.rgba.g, 0);
|
||||
ASSERT_EQ(c.rgba.b, 0xff);
|
||||
ASSERT_EQ(c.rgba.a, 0xff);
|
||||
|
||||
c = gradient_get_color(&a, 1);
|
||||
ASSERT_EQ(c.rgba.r, 0);
|
||||
ASSERT_EQ(c.rgba.g, 0);
|
||||
ASSERT_EQ(c.rgba.b, 0xff);
|
||||
ASSERT_EQ(c.rgba.a, 0xff);
|
||||
|
||||
str_t str;
|
||||
str_init(&str, 0);
|
||||
ASSERT_EQ(gradient_to_str(&a, &str), RET_OK);
|
||||
ASSERT_STREQ(str.str, "linear-gradient(0deg, #FF0000 80%, #0000FF 20%)");
|
||||
str_reset(&str);
|
||||
}
|
||||
|
||||
TEST(Gradient, str2) {
|
||||
gradient_t a;
|
||||
gradient_init_from_str(&a, "linear-gradient(#FF0000 0%, #00FF00 50%, #0000FF 100%)");
|
||||
|
@ -124,3 +124,16 @@ TEST(VGGradient, init_with_gradient3) {
|
||||
ASSERT_EQ(g->info.linear.ex, 0.0f);
|
||||
ASSERT_EQ(g->info.linear.ey, 80.0f);
|
||||
}
|
||||
|
||||
TEST(VGGradient, init_with_gradient4) {
|
||||
vg_gradient_t gg;
|
||||
gradient_t agradient;
|
||||
rect_t rect = {0, 0, 100, 100};
|
||||
gradient_init_from_str(&agradient, "linear-gradient(180deg, #6AB2FF 80%, #0D81FF 20%);");
|
||||
vg_gradient_t* g = vg_gradient_init_with_gradient(&gg, &rect, &agradient);
|
||||
ASSERT_EQ(g->gradient.type, GRADIENT_LINEAR);
|
||||
ASSERT_EQ(g->info.linear.sx, 0.0f);
|
||||
ASSERT_EQ(g->info.linear.sy, 80.0f);
|
||||
ASSERT_EQ(g->info.linear.ex, 0.0f);
|
||||
ASSERT_EQ(g->info.linear.ey, 80.0f);
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user