绘制 layout 标志
This commit is contained in:
@@ -120,4 +120,5 @@ const uint32_t dpi_fallback = 96;
|
||||
|
||||
const uint32_t bar_y_padding = 1;
|
||||
const uint32_t tag_x_padding = 10;
|
||||
const uint32_t layout_symbol_x_padding = 10;
|
||||
const uint32_t border_width = 1;
|
||||
|
||||
@@ -13,5 +13,6 @@ uint32_t *generate_wallpaper(const wallpaper_config_t *wallpaper_config,
|
||||
uint32_t get_font_height(const char *font_family, const uint32_t font_size,
|
||||
const uint32_t dpi);
|
||||
void draw_bar(monitor_t *monitor, bool is_current_monitor,
|
||||
color_set_t *color_set, uint32_t height, uint32_t tag_x_padding);
|
||||
color_set_t *color_set, uint32_t height, uint32_t tag_x_padding,
|
||||
uint32_t layout_x_padding);
|
||||
void clean_pango_context(void);
|
||||
|
||||
@@ -83,6 +83,7 @@ static uint32_t font_size = default_font_size;
|
||||
static uint32_t dpi = dpi_fallback;
|
||||
static uint32_t bar_y_pad = bar_y_padding;
|
||||
static uint32_t tag_x_pad = tag_x_padding;
|
||||
static uint32_t layout_symbol_x_pad = layout_symbol_x_padding;
|
||||
static uint32_t bar_height = 0;
|
||||
static uint32_t border_px = border_width;
|
||||
|
||||
@@ -476,6 +477,7 @@ void get_xresource_config(void) {
|
||||
get_xresource_uint32("zswm.font_size", &font_size);
|
||||
get_xresource_uint32("zswm.bar_y_padding", &bar_y_pad);
|
||||
get_xresource_uint32("zswm.tag_x_padding", &tag_x_pad);
|
||||
get_xresource_uint32("zswm.layout_symbol_x_padding", &layout_symbol_x_pad);
|
||||
get_xresource_uint32("zswm.border_width", &border_px);
|
||||
|
||||
logger("dpi: %u, font family: %s, font size: %u\n", dpi, font_family,
|
||||
@@ -488,7 +490,8 @@ void draw_all_monitor_bars(void) {
|
||||
}
|
||||
|
||||
void draw_monitor_bar(monitor_t *m) {
|
||||
draw_bar(m, m == current_monitor, color_set, bar_height, tag_x_pad);
|
||||
draw_bar(m, m == current_monitor, color_set, bar_height, tag_x_pad,
|
||||
layout_symbol_x_pad);
|
||||
flush_xcb_connection();
|
||||
}
|
||||
|
||||
|
||||
@@ -136,7 +136,8 @@ static void draw_rect(cairo_t *cr, int32_t x, int32_t y, uint32_t width,
|
||||
}
|
||||
|
||||
void draw_bar(monitor_t *monitor, bool is_current_monitor,
|
||||
color_set_t *color_set, uint32_t height, uint32_t tag_x_padding) {
|
||||
color_set_t *color_set, uint32_t height, uint32_t tag_x_padding,
|
||||
uint32_t layout_x_padding) {
|
||||
cairo_t *cr = monitor->cr;
|
||||
int32_t x = 0;
|
||||
uint32_t width = 0;
|
||||
@@ -166,6 +167,14 @@ void draw_bar(monitor_t *monitor, bool is_current_monitor,
|
||||
draw_text(cr, text, color, x, 0, width, height, true);
|
||||
x += width;
|
||||
}
|
||||
/* 绘制 layout 标识 */
|
||||
{
|
||||
text = monitor->layout->symbol;
|
||||
width = get_text_width(text) + layout_x_padding * 2;
|
||||
color = &color_set->layout_color;
|
||||
draw_text(cr, text, color, x, 0, width, height, true);
|
||||
x += width;
|
||||
}
|
||||
}
|
||||
|
||||
void clean_pango_context(void) {
|
||||
|
||||
Reference in New Issue
Block a user