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

WINGs: Reorganised the private header

The declarations have been split by source file, adding the usual
separation mark. Removed these 2 prototypes:
 - W_SetFocusOfToplevel: case typo, the correct prototype already existed
in the file;
 - W_TextWidth: function is not defined anywhere
This commit is contained in:
Christophe CURIS
2013-05-12 00:24:47 +02:00
committed by Carlos R. Mafra
parent e2d816c7a2
commit 367d1f938d

View File

@@ -23,105 +23,34 @@
extern "C" { extern "C" {
#endif /* __cplusplus */ #endif /* __cplusplus */
/* ---[ global settigns ]------------------------------------------------- */
#define DOUBLE_BUFFER 1 #define DOUBLE_BUFFER 1
#define WC_UserWidget 128
#define SCROLLER_WIDTH 20 #define SCROLLER_WIDTH 20
typedef struct _WINGsConfiguration {
char *systemFont;
char *boldSystemFont;
int defaultFontSize;
Bool antialiasedText;
char *floppyPath;
unsigned doubleClickDelay;
unsigned mouseWheelUp;
unsigned mouseWheelDown;
} _WINGsConfiguration;
extern _WINGsConfiguration WINGsConfiguration;
/* ---[ drag*.c ]--------------------------------------------------------- */
/*
* We need to define these structure first because they are used in W_Screen
* below. The rest of drag-related stuff if after because it needs W_Screen
*/
#define XDND_VERSION 3 #define XDND_VERSION 3
typedef struct W_Application {
char *applicationName;
int argc;
char **argv;
char *resourcePath;
} W_Application;
typedef struct W_Font {
struct W_Screen *screen;
struct _XftFont *font;
short height;
short y;
short refCount;
char *name;
} W_Font;
typedef struct W_Pixmap {
struct W_Screen *screen;
Pixmap pixmap;
Pixmap mask;
unsigned short width;
unsigned short height;
short depth;
short refCount;
} W_Pixmap;
typedef struct W_Color {
struct W_Screen *screen;
XColor color;
unsigned short alpha;
short refCount;
GC gc;
struct {
unsigned int exact:1;
} flags;
} W_Color;
typedef struct W_FocusInfo {
struct W_View *toplevel;
struct W_View *focused; /* view that has the focus in this toplevel */
struct W_FocusInfo *next;
} W_FocusInfo;
typedef void* W_DndState(WMView *destView, XClientMessageEvent *event,
WMDraggingInfo *info);
typedef struct W_DragOperationItem {
WMDragOperationType type;
char* text;
} W_DragOperationItem;
typedef struct W_DragSourceInfo {
WMView *sourceView;
Window destinationWindow;
W_DndState *state;
WMSelectionProcs *selectionProcs;
Window icon;
WMPoint imageLocation;
WMPoint mouseOffset; /* mouse pos in icon */
Cursor dragCursor;
WMRect noPositionMessageZone;
Atom firstThreeTypes[3];
} W_DragSourceInfo;
typedef struct W_DragDestinationInfo {
WMView *destView;
WMView *xdndAwareView;
Window sourceWindow;
W_DndState *state;
Bool sourceActionChanged;
WMArray *sourceTypes;
WMArray *requiredTypes;
Bool typeListAvailable;
WMArray *dropDatas;
} W_DragDestinationInfo;
typedef struct W_DraggingInfo { typedef struct W_DraggingInfo {
unsigned char protocolVersion; /* version supported on the other side */ unsigned char protocolVersion; /* version supported on the other side */
Time timestamp; Time timestamp;
@@ -129,10 +58,22 @@ typedef struct W_DraggingInfo {
Atom sourceAction; Atom sourceAction;
Atom destinationAction; Atom destinationAction;
W_DragSourceInfo* sourceInfo; /* infos needed by source */ struct W_DragSourceInfo* sourceInfo; /* infos needed by source */
W_DragDestinationInfo* destInfo; /* infos needed by destination */ struct W_DragDestinationInfo* destInfo; /* infos needed by destination */
} W_DraggingInfo; } W_DraggingInfo;
/* ---[ Structures from WINGs.h ]----------------------------------------- */
/* Pre-definition of internal structs */
typedef struct W_Color W_Color;
typedef struct W_Pixmap W_Pixmap;
typedef struct W_View W_View;
typedef struct W_FocusInfo {
W_View *toplevel;
W_View *focused; /* view that has the focus in this toplevel */
struct W_FocusInfo *next;
} W_FocusInfo;
typedef struct W_Screen { typedef struct W_Screen {
Display *display; Display *display;
@@ -147,7 +88,7 @@ typedef struct W_Screen {
Window rootWin; Window rootWin;
struct W_View *rootView; W_View *rootView;
RContext *rcontext; RContext *rcontext;
@@ -160,7 +101,7 @@ typedef struct W_Screen {
W_FocusInfo *focusInfo; W_FocusInfo *focusInfo;
RImage *applicationIconImage; /* image (can have alpha channel) */ RImage *applicationIconImage; /* image (can have alpha channel) */
struct W_Pixmap *applicationIconPixmap; /* pixmap - no alpha channel */ W_Pixmap *applicationIconPixmap; /* pixmap - no alpha channel */
Window applicationIconWindow; Window applicationIconWindow;
struct W_Window *windowList; /* list of windows in the app */ struct W_Window *windowList; /* list of windows in the app */
@@ -184,8 +125,8 @@ typedef struct W_Screen {
Pixmap stipple; Pixmap stipple;
struct W_View *dragSourceView; W_View *dragSourceView;
struct W_DraggingInfo dragInfo; W_DraggingInfo dragInfo;
/* colors */ /* colors */
W_Color *white; W_Color *white;
@@ -208,9 +149,9 @@ typedef struct W_Screen {
GC drawImStringGC; /* for WMDrawImageString() */ GC drawImStringGC; /* for WMDrawImageString() */
W_Font *normalFont; struct W_Font *normalFont;
W_Font *boldFont; struct W_Font *boldFont;
WMHashTable *fontCache; WMHashTable *fontCache;
@@ -221,57 +162,57 @@ typedef struct W_Screen {
struct W_Balloon *balloon; struct W_Balloon *balloon;
struct W_Pixmap *checkButtonImageOn; W_Pixmap *checkButtonImageOn;
struct W_Pixmap *checkButtonImageOff; W_Pixmap *checkButtonImageOff;
struct W_Pixmap *radioButtonImageOn; W_Pixmap *radioButtonImageOn;
struct W_Pixmap *radioButtonImageOff; W_Pixmap *radioButtonImageOff;
struct W_Pixmap *buttonArrow; W_Pixmap *buttonArrow;
struct W_Pixmap *pushedButtonArrow; W_Pixmap *pushedButtonArrow;
struct W_Pixmap *scrollerDimple; W_Pixmap *scrollerDimple;
struct W_Pixmap *upArrow; W_Pixmap *upArrow;
struct W_Pixmap *downArrow; W_Pixmap *downArrow;
struct W_Pixmap *leftArrow; W_Pixmap *leftArrow;
struct W_Pixmap *rightArrow; W_Pixmap *rightArrow;
struct W_Pixmap *hiUpArrow; W_Pixmap *hiUpArrow;
struct W_Pixmap *hiDownArrow; W_Pixmap *hiDownArrow;
struct W_Pixmap *hiLeftArrow; W_Pixmap *hiLeftArrow;
struct W_Pixmap *hiRightArrow; W_Pixmap *hiRightArrow;
struct W_Pixmap *pullDownIndicator; W_Pixmap *pullDownIndicator;
struct W_Pixmap *popUpIndicator; W_Pixmap *popUpIndicator;
struct W_Pixmap *checkMark; W_Pixmap *checkMark;
struct W_Pixmap *homeIcon; W_Pixmap *homeIcon;
struct W_Pixmap *altHomeIcon; W_Pixmap *altHomeIcon;
struct W_Pixmap *trashcanIcon; W_Pixmap *trashcanIcon;
struct W_Pixmap *altTrashcanIcon; W_Pixmap *altTrashcanIcon;
struct W_Pixmap *createDirIcon; W_Pixmap *createDirIcon;
struct W_Pixmap *altCreateDirIcon; W_Pixmap *altCreateDirIcon;
struct W_Pixmap *disketteIcon; W_Pixmap *disketteIcon;
struct W_Pixmap *altDisketteIcon; W_Pixmap *altDisketteIcon;
struct W_Pixmap *unmountIcon; W_Pixmap *unmountIcon;
struct W_Pixmap *altUnmountIcon; W_Pixmap *altUnmountIcon;
struct W_Pixmap *magnifyIcon; W_Pixmap *magnifyIcon;
/*struct W_Pixmap *altMagnifyIcon;*/ /*W_Pixmap *altMagnifyIcon;*/
struct W_Pixmap *wheelIcon; W_Pixmap *wheelIcon;
struct W_Pixmap *grayIcon; W_Pixmap *grayIcon;
struct W_Pixmap *rgbIcon; W_Pixmap *rgbIcon;
struct W_Pixmap *cmykIcon; W_Pixmap *cmykIcon;
struct W_Pixmap *hsbIcon; W_Pixmap *hsbIcon;
struct W_Pixmap *customPaletteIcon; W_Pixmap *customPaletteIcon;
struct W_Pixmap *colorListIcon; W_Pixmap *colorListIcon;
struct W_Pixmap *defaultObjectIcon; W_Pixmap *defaultObjectIcon;
Cursor defaultCursor; Cursor defaultCursor;
@@ -324,23 +265,260 @@ typedef struct W_Screen {
unsigned ignoreNextDoubleClick:1; unsigned ignoreNextDoubleClick:1;
} W_Screen; } W_Screen;
#define W_DRAWABLE(scr) (scr)->rcontext->drawable
/* ---[ drag*.c ]--------------------------------------------------------- */
typedef struct W_DragOperationItem {
WMDragOperationType type;
char* text;
} W_DragOperationItem;
typedef void* W_DndState(WMView *destView, XClientMessageEvent *event,
WMDraggingInfo *info);
typedef struct W_DragSourceInfo {
WMView *sourceView;
Window destinationWindow;
W_DndState *state;
WMSelectionProcs *selectionProcs;
Window icon;
WMPoint imageLocation;
WMPoint mouseOffset; /* mouse pos in icon */
Cursor dragCursor;
WMRect noPositionMessageZone;
Atom firstThreeTypes[3];
} W_DragSourceInfo;
typedef struct W_DragDestinationInfo {
WMView *destView;
WMView *xdndAwareView;
Window sourceWindow;
W_DndState *state;
Bool sourceActionChanged;
WMArray *sourceTypes;
WMArray *requiredTypes;
Bool typeListAvailable;
WMArray *dropDatas;
} W_DragDestinationInfo;
/* -- Functions -- */
void W_HandleDNDClientMessage(WMView *toplevel, XClientMessageEvent *event);
Atom W_OperationToAction(WMScreen *scr, WMDragOperationType operation);
WMDragOperationType W_ActionToOperation(WMScreen *scr, Atom action);
void W_FreeDragOperationItem(void* item);
Bool W_SendDnDClientMessage(Display *dpy, Window win, Atom message,
unsigned long data1, unsigned long data2,
unsigned long data3, unsigned long data4,
unsigned long data5);
void W_DragSourceStartTimer(WMDraggingInfo *info);
void W_DragSourceStopTimer(void);
void W_DragSourceStateHandler(WMDraggingInfo *info, XClientMessageEvent *event);
void W_DragDestinationStartTimer(WMDraggingInfo *info);
void W_DragDestinationStopTimer(void);
void W_DragDestinationStoreEnterMsgInfo(WMDraggingInfo *info, WMView *toplevel,
XClientMessageEvent *event);
void W_DragDestinationStorePositionMsgInfo(WMDraggingInfo *info,
WMView *toplevel,
XClientMessageEvent *event);
void W_DragDestinationCancelDropOnEnter(WMView *toplevel, WMDraggingInfo *info);
void W_DragDestinationStateHandler(WMDraggingInfo *info,
XClientMessageEvent *event);
void W_DragDestinationInfoClear(WMDraggingInfo *info);
void W_FreeViewXdndPart(WMView *view);
/* ---[ handlers.c ]------------------------------------------------------ */
Bool W_CheckIdleHandlers(void);
void W_CheckTimerHandlers(void);
Bool W_HandleInputEvents(Bool waitForInput, int inputfd);
/* ---[ notification.c ]-------------------------------------------------- */
void W_InitNotificationCenter(void);
void W_FlushASAPNotificationQueue(void);
void W_FlushIdleNotificationQueue(void);
/* ---[ selection.c ]----------------------------------------------------- */
void W_HandleSelectionEvent(XEvent *event);
/* ---[ wapplication.c ]-------------------------------------------------- */
typedef struct W_Application {
char *applicationName;
int argc;
char **argv;
char *resourcePath;
} W_Application;
/* -- Functions -- */
void W_InitApplication(WMScreen *scr);
Bool W_ApplicationInitialized(void);
/* ---[ wballoon.c ]------------------------------------------------------ */
struct W_Balloon *W_CreateBalloon(WMScreen *scr);
void W_BalloonHandleEnterView(WMView *view);
void W_BalloonHandleLeaveView(WMView *view);
/* ---[ wcolor.c ]-------------------------------------------------------- */
typedef struct W_Color {
struct W_Screen *screen;
XColor color;
unsigned short alpha;
short refCount;
GC gc;
struct {
unsigned int exact:1;
} flags;
} W_Color;
#define W_PIXEL(c) (c)->color.pixel
/* ---[ wevent.c ]-------------------------------------------------------- */
typedef struct W_EventHandler {
unsigned long eventMask;
WMEventProc *proc;
void *clientData;
} W_EventHandler;
/* -- Functions -- */
void W_CallDestroyHandlers(W_View *view);
/* ---[ wfont.c ]--------------------------------------------------------- */
typedef struct W_Font {
struct W_Screen *screen;
struct _XftFont *font;
short height;
short y;
short refCount;
char *name;
} W_Font;
#define W_FONTID(f) (f)->font->fid
/* ---[ widgets.c ]------------------------------------------------------- */
#define WC_UserWidget 128
#define CHECK_CLASS(widget, class) assert(W_CLASS(widget)==(class))
#define W_CLASS(widget) (((W_WidgetType*)(widget))->widgetClass)
#define W_VIEW(widget) (((W_WidgetType*)(widget))->view)
/* -- Functions -- */
W_Class W_RegisterUserWidget(void);
/* ---[ winputmethod.c ]-------------------------------------------------- */
void W_InitIM(WMScreen *scr);
void W_CreateIC(WMView *view);
void W_DestroyIC(WMView *view);
void W_FocusIC(WMView *view);
void W_UnFocusIC(WMView *view);
void W_SetPreeditPositon(W_View *view, int x, int y);
int W_LookupString(W_View *view, XKeyPressedEvent *event, char *buffer,
int buflen, KeySym *keysym, Status *status);
/* ---[ wmisc.c ]--------------------------------------------------------- */
void W_DrawRelief(W_Screen *scr, Drawable d, int x, int y, unsigned int width,
unsigned int height, WMReliefType relief);
void W_DrawReliefWithGC(W_Screen *scr, Drawable d, int x, int y,
unsigned int width, unsigned int height,
WMReliefType relief,
GC black, GC dark, GC light, GC white);
void W_PaintTextAndImage(W_View *view, int wrap, WMColor *textColor,
W_Font *font, WMReliefType relief, const char *text,
WMAlignment alignment, W_Pixmap *image,
WMImagePosition position, WMColor *backColor, int ofs);
void W_PaintText(W_View *view, Drawable d, WMFont *font, int x, int y,
int width, WMAlignment alignment, WMColor *color,
int wrap, const char *text, int length);
int W_GetTextHeight(WMFont *font, const char *text, int width, int wrap);
/* ---[ wpixmap.c ]------------------------------------------------------- */
typedef struct W_Pixmap {
struct W_Screen *screen;
Pixmap pixmap;
Pixmap mask;
unsigned short width;
unsigned short height;
short depth;
short refCount;
} W_Pixmap;
/* ---[ wview.c ]--------------------------------------------------------- */
typedef struct W_ViewDelegate { typedef struct W_ViewDelegate {
void *data; void *data;
void (*didMove)(struct W_ViewDelegate*, WMView*); void (*didMove)(struct W_ViewDelegate*, WMView*);
void (*didResize)(struct W_ViewDelegate*, WMView*); void (*didResize)(struct W_ViewDelegate*, WMView*);
void (*willMove)(struct W_ViewDelegate*, WMView*, int*, int*); void (*willMove)(struct W_ViewDelegate*, WMView*, int*, int*);
void (*willResize)(struct W_ViewDelegate*, WMView*, void (*willResize)(struct W_ViewDelegate*, WMView*,
unsigned int*, unsigned int*); unsigned int*, unsigned int*);
} W_ViewDelegate; } W_ViewDelegate;
typedef struct W_View { typedef struct W_View {
struct W_Screen *screen; struct W_Screen *screen;
@@ -416,39 +594,6 @@ typedef struct W_View {
int refCount; int refCount;
} W_View; } W_View;
typedef struct W_EventHandler {
unsigned long eventMask;
WMEventProc *proc;
void *clientData;
} W_EventHandler;
typedef struct _WINGsConfiguration {
char *systemFont;
char *boldSystemFont;
int defaultFontSize;
Bool antialiasedText;
char *floppyPath;
unsigned doubleClickDelay;
unsigned mouseWheelUp;
unsigned mouseWheelDown;
} _WINGsConfiguration;
extern _WINGsConfiguration WINGsConfiguration;
#define CHECK_CLASS(widget, class) assert(W_CLASS(widget)==(class))
#define W_CLASS(widget) (((W_WidgetType*)(widget))->widgetClass)
#define W_VIEW(widget) (((W_WidgetType*)(widget))->view)
#define W_VIEW_REALIZED(view) (view)->flags.realized #define W_VIEW_REALIZED(view) (view)->flags.realized
#define W_VIEW_MAPPED(view) (view)->flags.mapped #define W_VIEW_MAPPED(view) (view)->flags.mapped
@@ -459,14 +604,7 @@ extern _WINGsConfiguration WINGsConfiguration;
#define W_VIEW_WIDTH(view) (view)->size.width #define W_VIEW_WIDTH(view) (view)->size.width
#define W_VIEW_HEIGHT(view) (view)->size.height #define W_VIEW_HEIGHT(view) (view)->size.height
/* -- Functions -- */
#define W_PIXEL(c) (c)->color.pixel
#define W_FONTID(f) (f)->font->fid
#define W_DRAWABLE(scr) (scr)->rcontext->drawable
W_View *W_GetViewForXWindow(Display *display, Window window); W_View *W_GetViewForXWindow(Display *display, Window window);
@@ -476,20 +614,20 @@ W_View *W_CreateTopView(W_Screen *screen);
W_View *W_CreateUnmanagedTopView(W_Screen *screen); W_View *W_CreateUnmanagedTopView(W_Screen *screen);
W_View *W_CreateRootView(W_Screen *screen); W_View *W_CreateRootView(W_Screen *screen);
void W_DestroyView(W_View *view); void W_DestroyView(W_View *view);
void W_RealizeView(W_View *view); void W_RealizeView(W_View *view);
void W_RedisplayView(WMView *view);
void W_ReparentView(W_View *view, W_View *newParent, int x, int y); void W_ReparentView(W_View *view, W_View *newParent, int x, int y);
void W_RaiseView(W_View *view); void W_RaiseView(W_View *view);
void W_LowerView(W_View *view); void W_LowerView(W_View *view);
void W_MapView(W_View *view); void W_MapView(W_View *view);
void W_MapSubviews(W_View *view); void W_MapSubviews(W_View *view);
@@ -500,6 +638,10 @@ W_View *W_TopLevelOfView(W_View *view);
void W_UnmapView(W_View *view); void W_UnmapView(W_View *view);
WMView *W_RetainView(WMView *view);
void W_ReleaseView(WMView *view);
void W_MoveView(W_View *view, int x, int y); void W_MoveView(W_View *view, int x, int y);
void W_ResizeView(W_View *view, unsigned int width, unsigned int height); void W_ResizeView(W_View *view, unsigned int width, unsigned int height);
@@ -508,132 +650,17 @@ void W_SetViewBackgroundColor(W_View *view, WMColor *color);
void W_SetViewCursor(W_View *view, Cursor cursor); void W_SetViewCursor(W_View *view, Cursor cursor);
void W_DrawRelief(W_Screen *scr, Drawable d, int x, int y, unsigned int width, void W_SetFocusOfTopLevel(W_View *toplevel, W_View *view);
unsigned int height, WMReliefType relief);
void W_DrawReliefWithGC(W_Screen *scr, Drawable d, int x, int y,
unsigned int width, unsigned int height,
WMReliefType relief,
GC black, GC dark, GC light, GC white);
void W_CallDestroyHandlers(W_View *view);
void W_PaintTextAndImage(W_View *view, int wrap, WMColor *textColor,
W_Font *font, WMReliefType relief, const char *text,
WMAlignment alignment, W_Pixmap *image,
WMImagePosition position, WMColor *backColor, int ofs);
void W_PaintText(W_View *view, Drawable d, WMFont *font, int x, int y,
int width, WMAlignment alignment, WMColor *color,
int wrap, const char *text, int length);
int W_GetTextHeight(WMFont *font, const char *text, int width, int wrap);
int W_TextWidth(WMFont *font, const char *text, int length);
W_View *W_FocusedViewOfToplevel(W_View *view);
void W_BroadcastMessage(W_View *targetParent, XEvent *event); void W_BroadcastMessage(W_View *targetParent, XEvent *event);
void W_DispatchMessage(W_View *target, XEvent *event); void W_DispatchMessage(W_View *target, XEvent *event);
void W_SetFocusOfToplevel(W_View *toplevel, W_View *view);
W_View *W_FocusedViewOfToplevel(W_View *view);
void W_SetFocusOfTopLevel(W_View *toplevel, W_View *view);
void W_ReleaseView(WMView *view);
WMView *W_RetainView(WMView *view);
void W_InitApplication(WMScreen *scr);
void W_InitNotificationCenter(void);
W_Class W_RegisterUserWidget(void);
void W_RedisplayView(WMView *view);
Bool W_ApplicationInitialized(void);
void W_HandleSelectionEvent(XEvent *event);
void W_HandleDNDClientMessage(WMView *toplevel, XClientMessageEvent *event);
void W_FlushASAPNotificationQueue(void);
void W_FlushIdleNotificationQueue(void);
struct W_Balloon *W_CreateBalloon(WMScreen *scr);
void W_BalloonHandleEnterView(WMView *view);
void W_BalloonHandleLeaveView(WMView *view);
Bool W_CheckIdleHandlers(void);
void W_CheckTimerHandlers(void);
Bool W_HandleInputEvents(Bool waitForInput, int inputfd);
/* XDnD */
Atom W_OperationToAction(WMScreen *scr, WMDragOperationType operation);
WMDragOperationType W_ActionToOperation(WMScreen *scr, Atom action);
void W_FreeDragOperationItem(void* item);
Bool W_SendDnDClientMessage(Display *dpy, Window win, Atom message,
unsigned long data1, unsigned long data2,
unsigned long data3, unsigned long data4,
unsigned long data5);
void W_DragSourceStartTimer(WMDraggingInfo *info);
void W_DragSourceStopTimer(void);
void W_DragSourceStateHandler(WMDraggingInfo *info, XClientMessageEvent *event);
void W_DragDestinationStartTimer(WMDraggingInfo *info);
void W_DragDestinationStopTimer(void);
void W_DragDestinationStoreEnterMsgInfo(WMDraggingInfo *info, WMView *toplevel,
XClientMessageEvent *event);
void W_DragDestinationStorePositionMsgInfo(WMDraggingInfo *info,
WMView *toplevel,
XClientMessageEvent *event);
void W_DragDestinationCancelDropOnEnter(WMView *toplevel, WMDraggingInfo *info);
void W_DragDestinationStateHandler(WMDraggingInfo *info,
XClientMessageEvent *event);
void W_DragDestinationInfoClear(WMDraggingInfo *info);
void W_FreeViewXdndPart(WMView *view);
/* XIM */
void W_InitIM(WMScreen *scr);
void W_CreateIC(WMView *view);
void W_DestroyIC(WMView *view);
void W_FocusIC(WMView *view);
void W_UnFocusIC(WMView *view);
void W_SetPreeditPositon(W_View *view, int x, int y);
int W_LookupString(W_View *view, XKeyPressedEvent *event, char *buffer,
int buflen, KeySym *keysym, Status *status);
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif /* __cplusplus */ #endif /* __cplusplus */
#endif /* _WINGSP_H_ */ #endif /* _WINGSP_H_ */