์งํ ์ํฉ์ด ๋ฉ์ง ๊ฒ์ฒ๋ผ ๋ฐฐ๊ฒฝ์ ์ฑ์ฐ๋ ๋ฐ %p ๊ฐ์ ์ฌ์ฉํ ์ ์์(์ฆ, ์งํ ๊ฐ์ด 25%์ด๋ฉด ์๋ฆผ์ ์ผ์ชฝ ๋ถ๊ธฐ๊ฐ ๋๋จธ์ง ๋ถ๋ถ๋ณด๋ค ๋ฐ๊ฒ ์ฑ์์ง ์ ์์)
์ด๊ฒ์ ์ง์ ๊ตฌํํ๋ ๋ฐฉ๋ฒ์ ์์๋ผ ์ ์๋์ง ์ ์ ์์ ๊ฒ์ด๋ผ๊ณ ์๊ฐํ์ต๋๋ค. ๋๋ ๋ฌธ์ ๊ทธ๋๋ก ์ด์ ์ C๋ก ์๋ฌด ๊ฒ๋ ์์ฑํ์ง ์์์ผ๋ฏ๋ก ์์ ๋ฐ ํญ๋ชฉ์ ๋ํ ๊ตฌ์ฑ ์ต์ ์ ์ถ๊ฐํ๋ ๋ฐฉ๋ฒ์ ์ ์ ์์์ต๋๋ค(์ง๊ธ์ ์ฝ๊ฐ ๋ ๋ฐ์ ๋ฐฐ๊ฒฝ์์ ์ฌ์ฉํฉ๋๋ค). ๋๊ตฌ๋ ์ง ์ํฐ๋ฆฌ ํฌํฌ ๋ฅผ ์ฌ์ฉํ๊ธฐ์ ์ถฉ๋ถํ ์ ๋๋ก ํ๋๋ฅผ ์ํ ๊ฒ์ ๋๋ค.
์ด๋ด, ๋๋ ๋น์ ์ ํฌํฌ๋ฅผ ํ
์คํธํ์ต๋๋ค. ํ๋ ธ์ต๋๋ค. ํ์ ๋๊ธ์ ์ฐธ์กฐํ์ธ์.shrink
์ต์
์ ์กด์คํ์ง ์์ต๋๋ค. ๋ณผ๋ฅจ์ด 100%์ด๋ฉด ๋ง๋๋ ์ค์ ๋ก 50%์
๋๋ค. shrink
๊ฐ ์ค์ ๋์ด ์์ง ์์ผ๋ฉด ์ ์๋ํ๋ ๊ฒ ๊ฐ์ต๋๋ค.
๋ํ ์๋ฆผ์ ์ ์ฒด ๋์ด๋ฅผ ์งํ ํ์์ค๋ก ์ฌ์ฉํ์ง ์์ต๋๋ค. ๋น ๋ฅธ ํดํน์ผ๋ก bg_height/8
๋ฅผ ์ฌ์ฉํ๋๋ฐ ํจ์ฌ ์ข์ ๋ณด์
๋๋ค. (์งํ๋ฅ ํ์์ค ๋์ด๋ฅผ ๊ฒฐ์ ํ๊ธฐ ์ํด ํจ์ฌ ๋ ์ ๊ตํ ์๊ณ ๋ฆฌ์ฆ์ ์ฌ์ฉํ๊ธฐ๋ฅผ ๋ฐ๋๋๋ค.)
์ต์ ์ถ๊ฐ๋ ์ฌ๋ฌ ํ์ผ์์ ์ํํด์ผ ํ์ง๋ง ๊ณง๋ฐ๋ก ์ํํ ์ ์์ต๋๋ค. ํ์ง๋ง ์ต์ ์ ์ถ๊ฐํ ๊ฐ์น๊ฐ ์๋์ง ๋ชจ๋ฅด๊ฒ ์ต๋๋ค. IMHO ๊ทธ๋ฅ ๊ตฌ์ฑํ์ง ์๊ณ ์ ๊ธฐ๋ฅ์ผ๋ก ์ถ๊ฐํ๊ธฐ๋ง ํ๋ฉด ๋ฉ๋๋ค.
๊ฐ๋จํ ์์ ์์ ๋ฒ๊ทธ์ ๋๋ค.
bg_width / 100 * (cl->n->progress - 1)
๋ณด์ธ์.
shrink
๋ฅผ ๋นํ์ฑํ ํ๋ฉด ์๋ฆผ ๋๋น๊ฐ 300ํฝ์
์
๋๋ค. ๋ฐ๋ผ์ 300/100 == 3
์ ์งํ๋ฅ ํ์์ค์ ๊ณฑํ๋ฉด ๋๋น๊ฐ ๊ฒฐ์ ๋ฉ๋๋ค. ๊ด์ฐฎ์.
shrink
๋ฅผ ํ์ฑํํ๋ฉด ์งํ๋ฅ ํ์์ค์ด ์๋ ์๋ฆผ์ด 185px ๋๋น๋ก ์ถ์๋ฉ๋๋ค. 185/100 == 1
์
๋๋ค. ์ค์ ๋ก๋ 1.85
์ด์ง๋ง ์ผํ ๋ค์ ์๋ ๋นํธ๊ฐ ์๋ฆฝ๋๋ค. ์ค๋ฅ๋ ๊ฑฐ์ ์ ๋ฐ์ด๋ฉฐ 50%๋ฅผ ์ค๋ช
ํฉ๋๋ค.
์์๋ฅผ ๋ณ๊ฒฝํ๋ฉด(๋จผ์ ๊ณฑํ ๋ค์ ๋๋๊ธฐ) ๋ฌธ์ ๊ฐ ํด๊ฒฐ๋ฉ๋๋ค.
@bebehei ๋์์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค! ๋ด ํฌํฌ๋ฅผ ์ ๋ฐ์ดํธํ์ต๋๋ค. PR์ ์ ์ถํ๊ณ ์ถ์ง๋ง ์ต์ํ ๋จผ์ ์งํ๋ฅ ํ์์ค์ ํ์ฑํ/๋นํ์ฑํํ๋ ๊ตฌ์ฑ ์ต์ ์ด ์์์ผ๋ฉด ํ๋ ์๊ฐ์ด ๋ญ๋๋ค... ๋์ค์ ์ดํด๋ณด๊ณ ์์๋ผ ์ ์๋์ง ์์๋ณด๊ฒ ์ต๋๋ค. ๋ฐ.
์ด ๋ฌธ์ ์ ์ ๋ชฉ์ ํจ์น๊ฐ ์ํํ ์์ ์ ๋ํด ์๋ชป๋ ๊ธฐ๋๋ฅผ ์ฃผ์์ต๋๋ค. ๊ทธ๋์ ๋๋ ๊ทธ๊ฒ์ ๋ ๋ฉ์ง๊ฒ ๋ง๋ค ์ ์๋ค๊ณ ๊ฒฐ์ ํ์ต๋๋ค.
ํจ์น๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
diff --git a/src/x11/x.c b/src/x11/x.c
index 9f7ac20..3430892 100644
--- a/src/x11/x.c
+++ b/src/x11/x.c
@@ -565,14 +565,22 @@ static dimension_t x_render_layout(cairo_t *c, colored_layout *cl, colored_layou
double bg_half_height = settings.notification_height/2.0;
int pango_offset = (int) floor(h/2.0);
+ int progress_width = cl->n->progress > 0 ? bg_width * (cl->n->progress - 1) / 100 : bg_width;
+
if (first) bg_height += settings.frame_width;
if (last) bg_height += settings.frame_width;
else bg_height += settings.separator_height;
cairo_set_source_rgb(c, cl->frame.r, cl->frame.g, cl->frame.b);
- cairo_rectangle(c, bg_x, bg_y, bg_width, bg_height);
+ cairo_rectangle(c, bg_x, bg_y, progress_width, bg_height);
cairo_fill(c);
+ if (progress_width != bg_width) {
+ cairo_set_source_rgb(c, cl->frame.r - 0.2, cl->frame.g - 0.2, cl->frame.b - 0.2);
+ cairo_rectangle(c, bg_x + progress_width, bg_y, bg_width - progress_width, bg_height);
+ cairo_fill(c);
+ }
+
/* adding frame */
bg_x += settings.frame_width;
if (first) {
@@ -582,13 +590,26 @@ static dimension_t x_render_layout(cairo_t *c, colored_layout *cl, colored_layou
if (!last) bg_height -= settings.separator_height;
}
bg_width -= 2 * settings.frame_width;
+ if (progress_width < settings.frame_width) {
+ progress_width = 0;
+ } else if (progress_width - settings.frame_width > bg_width) {
+ progress_width = bg_width;
+ } else {
+ progress_width -= settings.frame_width;
+ }
if (last)
bg_height -= settings.frame_width;
cairo_set_source_rgb(c, cl->bg.r, cl->bg.g, cl->bg.b);
- cairo_rectangle(c, bg_x, bg_y, bg_width, bg_height);
+ cairo_rectangle(c, bg_x, bg_y, progress_width, bg_height);
cairo_fill(c);
+ if (progress_width != bg_width) {
+ cairo_set_source_rgb(c, cl->bg.r - 0.2, cl->bg.g - 0.2, cl->bg.b - 0.2);
+ cairo_rectangle(c, bg_x + progress_width, bg_y, bg_width - progress_width, bg_height);
+ cairo_fill(c);
+ }
+
bool use_padding = settings.notification_height <= (2 * settings.padding) + h;
if (use_padding)
dim.y += settings.padding;
@mid-kid ๊ธ์์, '๋ฉ์ง ๊ฒ'์ ๋ํ ์์ ์ ์ ์๋ผ๊ณ ์๊ฐํฉ๋๋ค. ์ฐ๋ฆฌ ๋ชจ๋๋ ์ฝ๊ฐ ๋ค๋ฅธ ์ทจํฅ์ ๊ฐ์ง๊ณ ์์ต๋๋ค. ๋๋ ๊ฐ์ธ์ ์ผ๋ก ์ ์ฒด ๋๋น๋ฅผ ๋ฐฐ๊ฒฝ์ผ๋ก ํ๋ ๊ฒ์ ์ซ์ดํฉ๋๋ค. ์ ์ถํด์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค. ํ๋ ์ ์์์ ๋ฐ๊ฟ ์๊ฐ์ ํ ๋ฒ๋ ํด๋ณธ ์ ์ด ์์ต๋๋ค.
์ฌ์ค, ์ ๊ฐ ๊ฐ์ ํ ์ฐพ๊ณ ์๋ ๊ฒ์ ๋ชจ๋ ์ฌ๋์ด ์์ ์ ์งํ๋ฅ ํ์์ค์ ๋ํ ์ง์ค๋ฉํธ๋ฆฌ๋ฅผ ์ง์ ํ ์ ์๋ ๋ช ๊ฐ์ง ์๋ฏธ ์๋ ์ต์ ์ ๋๋ค.
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
@mid-kid ๊ธ์์, '๋ฉ์ง ๊ฒ'์ ๋ํ ์์ ์ ์ ์๋ผ๊ณ ์๊ฐํฉ๋๋ค. ์ฐ๋ฆฌ ๋ชจ๋๋ ์ฝ๊ฐ ๋ค๋ฅธ ์ทจํฅ์ ๊ฐ์ง๊ณ ์์ต๋๋ค. ๋๋ ๊ฐ์ธ์ ์ผ๋ก ์ ์ฒด ๋๋น๋ฅผ ๋ฐฐ๊ฒฝ์ผ๋ก ํ๋ ๊ฒ์ ์ซ์ดํฉ๋๋ค. ์ ์ถํด์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค. ํ๋ ์ ์์์ ๋ฐ๊ฟ ์๊ฐ์ ํ ๋ฒ๋ ํด๋ณธ ์ ์ด ์์ต๋๋ค.
์ฌ์ค, ์ ๊ฐ ๊ฐ์ ํ ์ฐพ๊ณ ์๋ ๊ฒ์ ๋ชจ๋ ์ฌ๋์ด ์์ ์ ์งํ๋ฅ ํ์์ค์ ๋ํ ์ง์ค๋ฉํธ๋ฆฌ๋ฅผ ์ง์ ํ ์ ์๋ ๋ช ๊ฐ์ง ์๋ฏธ ์๋ ์ต์ ์ ๋๋ค.