From 97964e85599e96f24d0dd7134d699dafd17dccd2 Mon Sep 17 00:00:00 2001 From: Kim Woelders Date: Sat, 30 Oct 2004 14:24:13 +0000 Subject: [PATCH] Added shade/unshade using mouse wheel to title bar actions. SVN revision: 12088 --- config/actionclasses.cfg | 16 +++++++++++++++- src/actions.c | 16 ++++++++++------ 2 files changed, 25 insertions(+), 7 deletions(-) diff --git a/config/actionclasses.cfg b/config/actionclasses.cfg index 614eca28..01e498a1 100644 --- a/config/actionclasses.cfg +++ b/config/actionclasses.cfg @@ -73,7 +73,7 @@ __ACLASS __BGN __NEXT_ACTION __TOOLTIP_ACTION_TEXT "Toggle the shaded (rolled-up) state of this window." __EVENT __DOUBLE_CLICK - __ALLOW_ANY_BUTTON __ON + __BUTTON 1 __ACTION __A_SHADE __NEXT_ACTION __TOOLTIP_ACTION_TEXT "Show/Hide group borders." @@ -99,6 +99,20 @@ __ACLASS __BGN __BUTTON 1 __MODIFIER_KEY __CTRL_SHIFT __ACTION __A_BREAK_GROUP + + __NEXT_ACTION + __TOOLTIP_ACTION_TEXT "Shade." + __EVENT __MOUSE_PRESS + __BUTTON 4 + __ALLOW_ANY_MODIFIER_KEYS __ON + __ACTION __A_SHADE on + + __NEXT_ACTION + __TOOLTIP_ACTION_TEXT "Unshade." + __EVENT __MOUSE_PRESS + __BUTTON 5 + __ALLOW_ANY_MODIFIER_KEYS __ON + __ACTION __A_SHADE off __END __ACLASS __BGN diff --git a/src/actions.c b/src/actions.c index 9a54bebe..37dc6459 100644 --- a/src/actions.c +++ b/src/actions.c @@ -2380,24 +2380,29 @@ DoShade(EWin * ewin, const void *params, int nogroup) { EWin **gwins = NULL; Group *curr_group = NULL; - int i, num; - char shaded; + int i, num, shade; EDBUG(6, "doShade"); gwins = ListWinGroupMembersForEwin(ewin, ACTION_SHADE, nogroup, &num); - shaded = ewin->shaded; + if (!params) + shade = !ewin->shaded; + else if (!strcmp(params, "on")) + shade = 1; + else if (!strcmp(params, "off")) + shade = 0; + for (i = 0; i < num; i++) { curr_group = EwinsInGroup(ewin, gwins[i]); if (gwins[i]->shaded - && ((curr_group && !curr_group->cfg.mirror) || shaded)) + && ((curr_group && !curr_group->cfg.mirror) || !shade)) { SoundPlay("SOUND_UNSHADE"); EwinUnShade(gwins[i]); } else if (!gwins[i]->shaded - && ((curr_group && !curr_group->cfg.mirror) || !shaded)) + && ((curr_group && !curr_group->cfg.mirror) || shade)) { SoundPlay("SOUND_SHADE"); EwinShade(gwins[i]); @@ -2406,7 +2411,6 @@ DoShade(EWin * ewin, const void *params, int nogroup) } Efree(gwins); EDBUG_RETURN(0); - params = NULL; } static int