1
0
mirror of https://github.com/gryf/wmaker.git synced 2025-12-19 04:20:27 +01:00

fixed bug in WMSetButtonEnabled and WMSetButtonSelected

This commit is contained in:
dan
2002-02-28 11:01:39 +00:00
parent 0c1881e224
commit 1cd1f16c3c
2 changed files with 77 additions and 72 deletions

View File

@@ -410,7 +410,7 @@ WMSetButtonDisabledTextColor(WMButton *bPtr, WMColor *color)
void void
WMSetButtonSelected(WMButton *bPtr, int isSelected) WMSetButtonSelected(WMButton *bPtr, int isSelected)
{ {
bPtr->flags.selected = isSelected; bPtr->flags.selected = isSelected ? 1 : 0;
if (bPtr->view->flags.realized) { if (bPtr->view->flags.realized) {
paintButton(bPtr); paintButton(bPtr);
@@ -453,7 +453,7 @@ WMSetButtonFont(WMButton *bPtr, WMFont *font)
void void
WMSetButtonEnabled(WMButton *bPtr, Bool flag) WMSetButtonEnabled(WMButton *bPtr, Bool flag)
{ {
bPtr->flags.enabled = flag; bPtr->flags.enabled = flag ? 1 : 0;
if (bPtr->view->flags.mapped) { if (bPtr->view->flags.mapped) {
paintButton(bPtr); paintButton(bPtr);

View File

@@ -460,132 +460,137 @@ makeFontSetOfSize(char *fontset, int size)
static void static void
changeFontProp(char *fname, char *newprop, int which) changeFontProp(char *fname, char *newprop, int which)
{ {
char before[128], prop[128], after[128]; char before[128], prop[128], after[128];
char *ptr, *bptr; char *ptr, *bptr;
int part=0; int part=0;
if(!fname || !prop)
return;
ptr = fname; if(!fname || !prop)
bptr = before; return;
while (*ptr) {
if(*ptr == '-') { ptr = fname;
*bptr = 0; bptr = before;
if(part==which) bptr = prop; while (*ptr) {
else if(part==which+1) bptr = after; if(*ptr == '-') {
*bptr++ = *ptr; *bptr = 0;
part++; if(part==which)
} else { bptr = prop;
*bptr++ = *ptr; else if(part==which+1)
} ptr++; bptr = after;
}*bptr = 0; *bptr++ = *ptr;
snprintf(fname, 255, "%s-%s%s", before, newprop, after); part++;
} else {
*bptr++ = *ptr;
}
ptr++;
}
*bptr = 0;
snprintf(fname, 255, "%s-%s%s", before, newprop, after);
} }
WMFont * WMFont*
WMNormalizeFont(WMScreen *scr, WMFont *font) WMNormalizeFont(WMScreen *scr, WMFont *font)
{ {
WMFont *newfont=NULL; WMFont *newfont=NULL;
char fname[256]; char fname[256];
if(!scr || !font) if(!scr || !font)
return NULL; return NULL;
snprintf(fname, 255, font->name); snprintf(fname, 255, font->name);
changeFontProp(fname, "medium", 2); changeFontProp(fname, "medium", 2);
changeFontProp(fname, "r", 3); changeFontProp(fname, "r", 3);
newfont = WMCreateNormalFont(scr, fname); newfont = WMCreateNormalFont(scr, fname);
if(!newfont) if(!newfont)
return NULL; return NULL;
return newfont; return newfont;
} }
WMFont * WMFont*
WMStrengthenFont(WMScreen *scr, WMFont *font) WMStrengthenFont(WMScreen *scr, WMFont *font)
{ {
WMFont *newfont=NULL; WMFont *newfont=NULL;
char fname[256]; char fname[256];
if(!scr || !font) if(!scr || !font)
return NULL; return NULL;
snprintf(fname, 255, font->name); snprintf(fname, 255, font->name);
changeFontProp(fname, "bold", 2); changeFontProp(fname, "bold", 2);
newfont = WMCreateNormalFont(scr, fname); newfont = WMCreateNormalFont(scr, fname);
if(!newfont) if(!newfont)
return NULL; return NULL;
return newfont; return newfont;
} }
WMFont * WMFont*
WMUnstrengthenFont(WMScreen *scr, WMFont *font) WMUnstrengthenFont(WMScreen *scr, WMFont *font)
{ {
WMFont *newfont=NULL; WMFont *newfont=NULL;
char fname[256]; char fname[256];
if(!scr || !font) if(!scr || !font)
return NULL; return NULL;
snprintf(fname, 255, font->name); snprintf(fname, 255, font->name);
changeFontProp(fname, "medium", 2); changeFontProp(fname, "medium", 2);
newfont = WMCreateNormalFont(scr, fname); newfont = WMCreateNormalFont(scr, fname);
if(!newfont) if(!newfont)
return NULL; return NULL;
return newfont; return newfont;
} }
WMFont * WMFont*
WMEmphasizeFont(WMScreen *scr, WMFont *font) WMEmphasizeFont(WMScreen *scr, WMFont *font)
{ {
WMFont *newfont=NULL; WMFont *newfont=NULL;
char fname[256]; char fname[256];
if(!scr || !font) if(!scr || !font)
return NULL; return NULL;
snprintf(fname, 255, font->name); snprintf(fname, 255, font->name);
changeFontProp(fname, "o", 3); changeFontProp(fname, "o", 3);
newfont = WMCreateNormalFont(scr, fname); newfont = WMCreateNormalFont(scr, fname);
if(!newfont) if(!newfont)
return NULL; return NULL;
return newfont; return newfont;
} }
WMFont * WMFont*
WMUnemphasizeFont(WMScreen *scr, WMFont *font) WMUnemphasizeFont(WMScreen *scr, WMFont *font)
{ {
WMFont *newfont=NULL; WMFont *newfont=NULL;
char fname[256]; char fname[256];
if(!scr || !font) if(!scr || !font)
return NULL; return NULL;
snprintf(fname, 255, font->name); snprintf(fname, 255, font->name);
changeFontProp(fname, "r", 3); changeFontProp(fname, "r", 3);
newfont = WMCreateNormalFont(scr, fname); newfont = WMCreateNormalFont(scr, fname);
if(!newfont) if(!newfont)
return NULL; return NULL;
return newfont; return newfont;
} }
WMFont *
WMGetFontOfSize(WMScreen *scr, WMFont *font, int size) WMFont*
WMGetFontOfSize(WMScreen *scr, WMFont *font, int size)
{ {
if(!scr || !font || size<1) if(!scr || !font || size<1)
return NULL; return NULL;