font: use PangoWeight enum

No change in functionality.

Suggested-by: @spl237
This commit is contained in:
Johan Malm 2025-04-23 20:01:26 +01:00 committed by Johan Malm
parent 5148c2aa31
commit 94ead35227
4 changed files with 17 additions and 68 deletions

View file

@ -1,6 +1,7 @@
/* SPDX-License-Identifier: GPL-2.0-only */ /* SPDX-License-Identifier: GPL-2.0-only */
#ifndef LABWC_FONT_H #ifndef LABWC_FONT_H
#define LABWC_FONT_H #define LABWC_FONT_H
#include <pango/pango-font.h>
struct lab_data_buffer; struct lab_data_buffer;
@ -10,26 +11,11 @@ enum font_slant {
FONT_SLANT_OBLIQUE FONT_SLANT_OBLIQUE
}; };
enum font_weight {
FONT_WEIGHT_NORMAL = 0,
FONT_WEIGHT_THIN,
FONT_WEIGHT_ULTRALIGHT,
FONT_WEIGHT_LIGHT,
FONT_WEIGHT_SEMILIGHT,
FONT_WEIGHT_BOOK,
FONT_WEIGHT_MEDIUM,
FONT_WEIGHT_SEMIBOLD,
FONT_WEIGHT_BOLD,
FONT_WEIGHT_ULTRABOLD,
FONT_WEIGHT_HEAVY,
FONT_WEIGHT_ULTRAHEAVY
};
struct font { struct font {
char *name; char *name;
int size; int size;
enum font_slant slant; enum font_slant slant;
enum font_weight weight; PangoWeight weight;
}; };
struct _PangoFontDescription *font_to_pango_desc(struct font *font); struct _PangoFontDescription *font_to_pango_desc(struct font *font);

View file

@ -23,44 +23,7 @@ font_to_pango_desc(struct font *font)
if (font->slant == FONT_SLANT_OBLIQUE) { if (font->slant == FONT_SLANT_OBLIQUE) {
pango_font_description_set_style(desc, PANGO_STYLE_OBLIQUE); pango_font_description_set_style(desc, PANGO_STYLE_OBLIQUE);
} }
switch (font->weight) { pango_font_description_set_weight(desc, font->weight);
case FONT_WEIGHT_THIN:
pango_font_description_set_weight(desc, PANGO_WEIGHT_THIN);
break;
case FONT_WEIGHT_ULTRALIGHT:
pango_font_description_set_weight(desc, PANGO_WEIGHT_ULTRALIGHT);
break;
case FONT_WEIGHT_LIGHT:
pango_font_description_set_weight(desc, PANGO_WEIGHT_LIGHT);
break;
case FONT_WEIGHT_SEMILIGHT:
pango_font_description_set_weight(desc, PANGO_WEIGHT_SEMILIGHT);
break;
case FONT_WEIGHT_BOOK:
pango_font_description_set_weight(desc, PANGO_WEIGHT_BOOK);
break;
case FONT_WEIGHT_NORMAL:
pango_font_description_set_weight(desc, PANGO_WEIGHT_NORMAL);
break;
case FONT_WEIGHT_MEDIUM:
pango_font_description_set_weight(desc, PANGO_WEIGHT_MEDIUM);
break;
case FONT_WEIGHT_SEMIBOLD:
pango_font_description_set_weight(desc, PANGO_WEIGHT_SEMIBOLD);
break;
case FONT_WEIGHT_BOLD:
pango_font_description_set_weight(desc, PANGO_WEIGHT_BOLD);
break;
case FONT_WEIGHT_ULTRABOLD:
pango_font_description_set_weight(desc, PANGO_WEIGHT_ULTRABOLD);
break;
case FONT_WEIGHT_HEAVY:
pango_font_description_set_weight(desc, PANGO_WEIGHT_HEAVY);
break;
case FONT_WEIGHT_ULTRAHEAVY:
pango_font_description_set_weight(desc, PANGO_WEIGHT_ULTRAHEAVY);
break;
}
return desc; return desc;
} }

View file

@ -863,29 +863,29 @@ set_font_attr(struct font *font, const char *nodename, const char *content)
} }
} else if (!strcmp(nodename, "weight")) { } else if (!strcmp(nodename, "weight")) {
if (!strcasecmp(content, "thin")) { if (!strcasecmp(content, "thin")) {
font->weight = FONT_WEIGHT_THIN; font->weight = PANGO_WEIGHT_THIN;
} else if (!strcasecmp(content, "ultralight")) { } else if (!strcasecmp(content, "ultralight")) {
font->weight = FONT_WEIGHT_ULTRALIGHT; font->weight = PANGO_WEIGHT_ULTRALIGHT;
} else if (!strcasecmp(content, "light")) { } else if (!strcasecmp(content, "light")) {
font->weight = FONT_WEIGHT_LIGHT; font->weight = PANGO_WEIGHT_LIGHT;
} else if (!strcasecmp(content, "semilight")) { } else if (!strcasecmp(content, "semilight")) {
font->weight = FONT_WEIGHT_SEMILIGHT; font->weight = PANGO_WEIGHT_SEMILIGHT;
} else if (!strcasecmp(content, "book")) { } else if (!strcasecmp(content, "book")) {
font->weight = FONT_WEIGHT_BOOK; font->weight = PANGO_WEIGHT_BOOK;
} else if (!strcasecmp(content, "medium")) { } else if (!strcasecmp(content, "medium")) {
font->weight = FONT_WEIGHT_MEDIUM; font->weight = PANGO_WEIGHT_MEDIUM;
} else if (!strcasecmp(content, "semibold")) { } else if (!strcasecmp(content, "semibold")) {
font->weight = FONT_WEIGHT_SEMIBOLD; font->weight = PANGO_WEIGHT_SEMIBOLD;
} else if (!strcasecmp(content, "bold")) { } else if (!strcasecmp(content, "bold")) {
font->weight = FONT_WEIGHT_BOLD; font->weight = PANGO_WEIGHT_BOLD;
} else if (!strcasecmp(content, "ultrabold")) { } else if (!strcasecmp(content, "ultrabold")) {
font->weight = FONT_WEIGHT_ULTRABOLD; font->weight = PANGO_WEIGHT_ULTRABOLD;
} else if (!strcasecmp(content, "heavy")) { } else if (!strcasecmp(content, "heavy")) {
font->weight = FONT_WEIGHT_HEAVY; font->weight = PANGO_WEIGHT_HEAVY;
} else if (!strcasecmp(content, "ultraheavy")) { } else if (!strcasecmp(content, "ultraheavy")) {
font->weight = FONT_WEIGHT_ULTRAHEAVY; font->weight = PANGO_WEIGHT_ULTRAHEAVY;
} else { } else {
font->weight = FONT_WEIGHT_NORMAL; font->weight = PANGO_WEIGHT_NORMAL;
} }
} }
} }
@ -1475,7 +1475,7 @@ init_font_defaults(struct font *font)
{ {
font->size = 10; font->size = 10;
font->slant = FONT_SLANT_NORMAL; font->slant = FONT_SLANT_NORMAL;
font->weight = FONT_WEIGHT_NORMAL; font->weight = PANGO_WEIGHT_NORMAL;
} }
static void static void

View file

@ -297,7 +297,7 @@ create_osd_scene(struct output *output, struct wl_array *views)
/* Draw workspace indicator */ /* Draw workspace indicator */
if (show_workspace) { if (show_workspace) {
struct font font = rc.font_osd; struct font font = rc.font_osd;
font.weight = FONT_WEIGHT_BOLD; font.weight = PANGO_WEIGHT_BOLD;
/* Center workspace indicator on the x axis */ /* Center workspace indicator on the x axis */
int x = (w - font_width(&font, workspace_name)) / 2; int x = (w - font_width(&font, workspace_name)) / 2;