mirror of
https://github.com/gryf/wmaker.git
synced 2025-12-20 04:48:06 +01:00
Add drawers to wmaker!
Drawers are horizontal docks, and they can themselves only live in the dock To use them, right click on the dock or a docked appicon and select "Add a drawer". Then move appicons into the drawer (drag them with the mouse). You may change the icon of the drawer. By default, drawers auto-expand and -collapse, and auto-raise/lower. This can be customized in the same way as for the clip. Set DisableDrawers to YES in G/D/WindowMaker if you do not want to see the menu entry to add a drawer. Just discovered this bug: the auto-attract icon functionality will not work (to be precise, it crashes WM!) if the clip is disabled (NoClip=YES). Will fix shortly, of course.
This commit is contained in:
committed by
Carlos R. Mafra
parent
707ce34a5e
commit
e14e6b3da8
19
src/dock.h
19
src/dock.h
@@ -39,6 +39,7 @@ typedef struct WDock {
|
||||
|
||||
#define WM_DOCK 0
|
||||
#define WM_CLIP 1
|
||||
#define WM_DRAWER 2
|
||||
int type;
|
||||
|
||||
WMagicNumber auto_expand_magic;
|
||||
@@ -66,7 +67,7 @@ typedef struct WDock {
|
||||
|
||||
|
||||
|
||||
WDock *wDockCreate(WScreen *scr, int type);
|
||||
WDock *wDockCreate(WScreen *scr, int type, char *name);
|
||||
WDock *wDockRestoreState(WScreen *scr, WMPropList *dock_state, int type);
|
||||
|
||||
void wDockDestroy(WDock *dock);
|
||||
@@ -85,6 +86,9 @@ void wDockDetach(WDock *dock, WAppIcon *icon);
|
||||
Bool wDockMoveIconBetweenDocks(WDock *src, WDock *dest, WAppIcon *icon, int x, int y);
|
||||
void wDockReattachIcon(WDock *dock, WAppIcon *icon, int x, int y);
|
||||
|
||||
void wSlideAppicons(WAppIcon **appicons, int n, int to_the_left);
|
||||
void wDrawerFillTheGap(WDock *drawer, WAppIcon *aicon, Bool redocking);
|
||||
|
||||
void wDockFinishLaunch(WDock *dock, WAppIcon *icon);
|
||||
void wDockTrackWindowLaunch(WDock *dock, Window window);
|
||||
WAppIcon *wDockFindIconForWindow(WDock *dock, Window window);
|
||||
@@ -100,14 +104,27 @@ void wClipSaveState(WScreen *scr);
|
||||
WMPropList *wClipSaveWorkspaceState(WScreen *scr, int workspace);
|
||||
WAppIcon *wClipRestoreState(WScreen *scr, WMPropList *clip_state);
|
||||
|
||||
void wDrawerIconPaint(WAppIcon *dicon);
|
||||
void wDrawersSaveState(WScreen *scr);
|
||||
void wDrawersRestoreState(WScreen *scr);
|
||||
int wIsADrawer(WScreen *scr, WAppIcon *aicon);
|
||||
|
||||
void wClipUpdateForWorkspaceChange(WScreen *scr, int workspace);
|
||||
|
||||
RImage *wClipMakeTile(WScreen *scr, RImage *normalTile);
|
||||
RImage* wDrawerMakeTile(WScreen *scr, RImage *normalTile);
|
||||
|
||||
#define WO_FAILED 0
|
||||
#define WO_NOT_APPLICABLE 1
|
||||
#define WO_SUCCESS 2
|
||||
|
||||
typedef enum
|
||||
{
|
||||
P_NORMAL = 0,
|
||||
P_AUTO_RAISE_LOWER,
|
||||
P_KEEP_ON_TOP,
|
||||
} dockPosition;
|
||||
|
||||
int wClipMakeIconOmnipresent(WAppIcon *aicon, int omnipresent);
|
||||
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user