From 6e72c20248f8a8d47e4b7474cc406706989ab23e Mon Sep 17 00:00:00 2001 From: dan Date: Fri, 29 Mar 2002 01:24:12 +0000 Subject: [PATCH] - Added WMSetButtonImageDimsWhenDisabled() and WMGetButtonEnabled() - Cleaned-up the header files of functions/vars declared but not implemented --- WINGs/ChangeLog | 2 ++ WINGs/WINGs/WINGs.h | 10 +++--- WINGs/wbutton.c | 82 ++++++++++++++++++++++++++++--------------- WINGs/wtext.c | 4 +-- WindowMaker/Defaults/WMGLOBAL | 1 + 5 files changed, 65 insertions(+), 34 deletions(-) diff --git a/WINGs/ChangeLog b/WINGs/ChangeLog index 7bfd13b2..9c060397 100644 --- a/WINGs/ChangeLog +++ b/WINGs/ChangeLog @@ -17,6 +17,8 @@ Changes since wmaker 0.80.0: 1 or 0 for the flag value, not the flag passed by the user. - Added 2 functions to retrieve the default system fonts: WMDefaultSystemFont(WMScreen *scr) and WMDefaultBoldSystemFont(WMScreen *scr) +- Added WMSetButtonImageDimsWhenDisabled() and WMGetButtonEnabled() +- Cleaned-up the header files of functions/vars declared but not implemented Changes since wmaker 0.70.0: diff --git a/WINGs/WINGs/WINGs.h b/WINGs/WINGs/WINGs.h index 5fa83234..1a134fc8 100644 --- a/WINGs/WINGs/WINGs.h +++ b/WINGs/WINGs/WINGs.h @@ -654,7 +654,7 @@ void WMDeleteEventHandler(WMView *view, unsigned long mask, int WMIsDoubleClick(XEvent *event); -int WMIsTripleClick(XEvent *event); +//int WMIsTripleClick(XEvent *event); void WMNextEvent(Display *dpy, XEvent *event); @@ -895,9 +895,9 @@ void WMRelayToNextResponder(WMView *view, XEvent *event); /* notifications */ extern char *WMViewSizeDidChangeNotification; -extern char *WMViewRealizedNotification; +extern char *WMViewFocusDidChangeNotification; -extern char *WMFontPanelDidChangeNotification; +extern char *WMViewRealizedNotification; /* ....................................................................... */ @@ -1007,7 +1007,9 @@ void WMSetButtonBordered(WMButton *bPtr, int isBordered); void WMSetButtonEnabled(WMButton *bPtr, Bool flag); -//void WMSetButtonImageDimsWhenDisabled(WMButton *bPtr, Bool flag); +int WMGetButtonEnabled(WMButton *bPtr); + +void WMSetButtonImageDimsWhenDisabled(WMButton *bPtr, Bool flag); void WMSetButtonTag(WMButton *bPtr, int tag); diff --git a/WINGs/wbutton.c b/WINGs/wbutton.c index 926ce2fc..a989040c 100644 --- a/WINGs/wbutton.c +++ b/WINGs/wbutton.c @@ -44,6 +44,8 @@ typedef struct W_Button { unsigned int enabled:1; + unsigned int dimsWhenDisabled:1; + unsigned int bordered:1; unsigned int springLoaded:1; @@ -135,13 +137,13 @@ WMCreateCustomButton(WMWidget *parent, int behaviourMask) bPtr->flags.stateLight = (behaviourMask & WBBStateLightMask)!=0; bPtr->flags.stateChange = (behaviourMask & WBBStateChangeMask)!=0; bPtr->flags.statePush = (behaviourMask & WBBStatePushMask)!=0; - + W_ResizeView(bPtr->view, DEFAULT_BUTTON_WIDTH, DEFAULT_BUTTON_HEIGHT); bPtr->flags.alignment = DEFAULT_BUTTON_ALIGNMENT; bPtr->flags.bordered = DEFAULT_BUTTON_IS_BORDERED; - - bPtr->flags.enabled = 1; + bPtr->flags.enabled = 1; + bPtr->flags.dimsWhenDisabled = 1; WMCreateEventHandler(bPtr->view, ExposureMask|StructureNotifyMask, handleEvents, bPtr); @@ -239,31 +241,38 @@ updateDisabledMask(WMButton *bPtr) if (bPtr->image) { XGCValues gcv; - bPtr->dimage->mask = XCreatePixmap(dpy, scr->stipple, - bPtr->dimage->width, - bPtr->dimage->height, 1); - - XSetForeground(dpy, scr->monoGC, 0); - XFillRectangle(dpy, bPtr->dimage->mask, scr->monoGC, 0, 0, - bPtr->dimage->width, bPtr->dimage->height); - - gcv.foreground = 1; - gcv.background = 0; - gcv.stipple = scr->stipple; - gcv.fill_style = FillStippled; - gcv.clip_mask = bPtr->image->mask; - gcv.clip_x_origin = 0; - gcv.clip_y_origin = 0; - - XChangeGC(dpy, scr->monoGC, GCForeground|GCBackground|GCStipple - |GCFillStyle|GCClipMask|GCClipXOrigin|GCClipYOrigin, &gcv); + if (bPtr->dimage->mask) { + XFreePixmap(dpy, bPtr->dimage->mask); + bPtr->dimage->mask = None; + } - XFillRectangle(dpy, bPtr->dimage->mask, scr->monoGC, 0, 0, - bPtr->dimage->width, bPtr->dimage->height); + if (bPtr->flags.dimsWhenDisabled) { + bPtr->dimage->mask = XCreatePixmap(dpy, scr->stipple, + bPtr->dimage->width, + bPtr->dimage->height, 1); - gcv.fill_style = FillSolid; - gcv.clip_mask = None; - XChangeGC(dpy, scr->monoGC, GCFillStyle|GCClipMask, &gcv); + XSetForeground(dpy, scr->monoGC, 0); + XFillRectangle(dpy, bPtr->dimage->mask, scr->monoGC, 0, 0, + bPtr->dimage->width, bPtr->dimage->height); + + gcv.foreground = 1; + gcv.background = 0; + gcv.stipple = scr->stipple; + gcv.fill_style = FillStippled; + gcv.clip_mask = bPtr->image->mask; + gcv.clip_x_origin = 0; + gcv.clip_y_origin = 0; + + XChangeGC(dpy, scr->monoGC, GCForeground|GCBackground|GCStipple + |GCFillStyle|GCClipMask|GCClipXOrigin|GCClipYOrigin, &gcv); + + XFillRectangle(dpy, bPtr->dimage->mask, scr->monoGC, 0, 0, + bPtr->dimage->width, bPtr->dimage->height); + + gcv.fill_style = FillSolid; + gcv.clip_mask = None; + XChangeGC(dpy, scr->monoGC, GCFillStyle|GCClipMask, &gcv); + } } } @@ -461,19 +470,36 @@ WMSetButtonEnabled(WMButton *bPtr, Bool flag) } +int +WMGetButtonEnabled(WMButton *bPtr) +{ + CHECK_CLASS(bPtr, WC_Button); + + return bPtr->flags.enabled; +} + + +void +WMSetButtonImageDimsWhenDisabled(WMButton *bPtr, Bool flag) +{ + bPtr->flags.dimsWhenDisabled = ((flag==0) ? 0 : 1); + + updateDisabledMask(bPtr); +} + + void WMSetButtonTag(WMButton *bPtr, int tag) { bPtr->tag = tag; } - void WMPerformButtonClick(WMButton *bPtr) { CHECK_CLASS(bPtr, WC_Button); - + if (!bPtr->flags.enabled) return; diff --git a/WINGs/wtext.c b/WINGs/wtext.c index 3757eabf..c819a7f3 100644 --- a/WINGs/wtext.c +++ b/WINGs/wtext.c @@ -3191,8 +3191,8 @@ WMCreateTextForDocumentType(WMWidget *parent, WMAction *parser, WMAction *writer WMRegisterViewForDraggedTypes(tPtr->view, types); } - WMAddNotificationObserver(fontChanged, tPtr, - "WMFontPanelDidChangeNotification", tPtr); + /*WMAddNotificationObserver(fontChanged, tPtr, + WMFontPanelDidChangeNotification, tPtr);*/ tPtr->firstTextBlock = NULL; tPtr->lastTextBlock = NULL; diff --git a/WindowMaker/Defaults/WMGLOBAL b/WindowMaker/Defaults/WMGLOBAL index 35f11141..3e4ab362 100644 --- a/WindowMaker/Defaults/WMGLOBAL +++ b/WindowMaker/Defaults/WMGLOBAL @@ -1,6 +1,7 @@ { SystemFont = "-*-helvetica-medium-r-normal-*-%d-*-*-*-*-*-*-*,-*-*-medium-r-normal-*-%d-*,-*-*-medium-r-normal-*-*-*"; BoldSystemFont = "-*-helvetica-bold-r-normal-*-%d-*-*-*-*-*-*-*,-*-*-bold-r-normal-*-%d-*,-*-*-medium-r-normal-*-*-*"; + DefaultFontSize = 12; FloppyPath = "/floppy"; MultiByteText = AUTO; DoubleClickTime = 250; -- 2.11.4.GIT