mirror of
https://github.com/labwc/labwc.git
synced 2025-11-04 13:30:07 -05:00
rcxml: allow <theme><font> without place="" attribute
The construct below will set the font for all supported places. Currently
that's only ActiveWindow, but is likely to include InactiveWindow,
MenuHeader, MenuItem and OnScreenDisplay at some point.
<theme>
<font>
<name></name>
<size></size>
</font>
</theme>
This commit is contained in:
parent
ec2c67338a
commit
2e4f931469
2 changed files with 25 additions and 9 deletions
|
|
@ -8,7 +8,7 @@
|
||||||
<theme>
|
<theme>
|
||||||
<name></name>
|
<name></name>
|
||||||
<cornerRadius>8</cornerRadius>
|
<cornerRadius>8</cornerRadius>
|
||||||
<font place="ActiveWindow"><name>Sans</name><size>10</size></font>
|
<font><name>Sans</name><size>12</size></font>
|
||||||
</theme>
|
</theme>
|
||||||
|
|
||||||
<focus>
|
<focus>
|
||||||
|
|
|
||||||
|
|
@ -80,14 +80,30 @@ fill_font(char *nodename, char *content, enum font_place place)
|
||||||
}
|
}
|
||||||
string_truncate_at_pattern(nodename, ".font.theme");
|
string_truncate_at_pattern(nodename, ".font.theme");
|
||||||
|
|
||||||
|
switch (place) {
|
||||||
|
case FONT_PLACE_UNKNOWN:
|
||||||
|
/*
|
||||||
|
* If <theme><font></font></theme> is used without a place=""
|
||||||
|
* attribute, we set all font variables
|
||||||
|
*/
|
||||||
|
if (!strcmp(nodename, "name")) {
|
||||||
|
rc.font_name_activewindow = strdup(content);
|
||||||
|
} else if (!strcmp(nodename, "size")) {
|
||||||
|
rc.font_size_activewindow = atoi(content);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case FONT_PLACE_ACTIVEWINDOW:
|
||||||
|
if (!strcmp(nodename, "name")) {
|
||||||
|
rc.font_name_activewindow = strdup(content);
|
||||||
|
} else if (!strcmp(nodename, "size")) {
|
||||||
|
rc.font_size_activewindow = atoi(content);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
/* TODO: implement for all font places */
|
/* TODO: implement for all font places */
|
||||||
if (place != FONT_PLACE_ACTIVEWINDOW) {
|
|
||||||
return;
|
default:
|
||||||
}
|
break;
|
||||||
if (!strcmp(nodename, "name")) {
|
|
||||||
rc.font_name_activewindow = strdup(content);
|
|
||||||
} else if (!strcmp(nodename, "size")) {
|
|
||||||
rc.font_size_activewindow = atoi(content);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -108,7 +124,7 @@ enum_font_place(const char *place)
|
||||||
static void
|
static void
|
||||||
entry(xmlNode *node, char *nodename, char *content)
|
entry(xmlNode *node, char *nodename, char *content)
|
||||||
{
|
{
|
||||||
/* current <theme><font place=""></theme> */
|
/* current <theme><font place=""></font></theme> */
|
||||||
static enum font_place font_place = FONT_PLACE_UNKNOWN;
|
static enum font_place font_place = FONT_PLACE_UNKNOWN;
|
||||||
|
|
||||||
if (!nodename) {
|
if (!nodename) {
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue