From: Christophe CURIS <christophe.cu...@free.fr>

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
---
 WINGs/WINGs/WINGsP.h |  627 ++++++++++++++++++++++++++------------------------
 1 file changed, 327 insertions(+), 300 deletions(-)

diff --git a/WINGs/WINGs/WINGsP.h b/WINGs/WINGs/WINGsP.h
index 40debb9..91b4d59 100644
--- a/WINGs/WINGs/WINGsP.h
+++ b/WINGs/WINGs/WINGsP.h
@@ -23,104 +23,33 @@
 extern "C" {
 #endif /* __cplusplus */
 
+/* ---[ global settigns ]------------------------------------------------- */
 
 #define DOUBLE_BUFFER   1
 
-#define WC_UserWidget  128
-
 #define SCROLLER_WIDTH 20
 
-#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 _WINGsConfiguration {
+    char *systemFont;
+    char *boldSystemFont;
+    int  defaultFontSize;
+    Bool antialiasedText;
+    char *floppyPath;
+    unsigned doubleClickDelay;
+    unsigned mouseWheelUp;
+    unsigned mouseWheelDown;
+} _WINGsConfiguration;
 
-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;
+extern _WINGsConfiguration WINGsConfiguration;
 
 
-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;
+/* ---[ 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
 
 typedef struct W_DraggingInfo {
     unsigned char protocolVersion; /* version supported on the other side */
@@ -129,10 +58,22 @@ typedef struct W_DraggingInfo {
     Atom sourceAction;
     Atom destinationAction;
 
-    W_DragSourceInfo* sourceInfo;    /* infos needed by source */
-    W_DragDestinationInfo* destInfo; /* infos needed by destination */
+    struct W_DragSourceInfo* sourceInfo;    /* infos needed by source */
+    struct W_DragDestinationInfo* destInfo; /* infos needed by destination */
 } 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 {
     Display *display;
@@ -147,7 +88,7 @@ typedef struct W_Screen {
 
     Window rootWin;
 
-    struct W_View *rootView;
+    W_View *rootView;
 
     RContext *rcontext;
 
@@ -160,7 +101,7 @@ typedef struct W_Screen {
     W_FocusInfo *focusInfo;
 
     RImage *applicationIconImage;      /* image (can have alpha channel) */
-    struct W_Pixmap *applicationIconPixmap; /* pixmap - no alpha channel */
+    W_Pixmap *applicationIconPixmap; /* pixmap - no alpha channel */
     Window applicationIconWindow;
 
     struct W_Window *windowList;       /* list of windows in the app */
@@ -184,8 +125,8 @@ typedef struct W_Screen {
 
     Pixmap stipple;
 
-    struct W_View *dragSourceView;
-    struct W_DraggingInfo dragInfo;
+    W_View *dragSourceView;
+    W_DraggingInfo dragInfo;
 
     /* colors */
     W_Color *white;
@@ -208,9 +149,9 @@ typedef struct W_Screen {
 
     GC drawImStringGC;                 /* for WMDrawImageString() */
 
-    W_Font *normalFont;
+    struct W_Font *normalFont;
 
-    W_Font *boldFont;
+    struct W_Font *boldFont;
 
     WMHashTable *fontCache;
 
@@ -221,57 +162,57 @@ typedef struct W_Screen {
     struct W_Balloon *balloon;
 
 
-    struct W_Pixmap *checkButtonImageOn;
-    struct W_Pixmap *checkButtonImageOff;
+    W_Pixmap *checkButtonImageOn;
+    W_Pixmap *checkButtonImageOff;
 
-    struct W_Pixmap *radioButtonImageOn;
-    struct W_Pixmap *radioButtonImageOff;
+    W_Pixmap *radioButtonImageOn;
+    W_Pixmap *radioButtonImageOff;
 
-    struct W_Pixmap *buttonArrow;
-    struct W_Pixmap *pushedButtonArrow;
+    W_Pixmap *buttonArrow;
+    W_Pixmap *pushedButtonArrow;
 
-    struct W_Pixmap *scrollerDimple;
+    W_Pixmap *scrollerDimple;
 
-    struct W_Pixmap *upArrow;
-    struct W_Pixmap *downArrow;
-    struct W_Pixmap *leftArrow;
-    struct W_Pixmap *rightArrow;
+    W_Pixmap *upArrow;
+    W_Pixmap *downArrow;
+    W_Pixmap *leftArrow;
+    W_Pixmap *rightArrow;
 
-    struct W_Pixmap *hiUpArrow;
-    struct W_Pixmap *hiDownArrow;
-    struct W_Pixmap *hiLeftArrow;
-    struct W_Pixmap *hiRightArrow;
+    W_Pixmap *hiUpArrow;
+    W_Pixmap *hiDownArrow;
+    W_Pixmap *hiLeftArrow;
+    W_Pixmap *hiRightArrow;
 
-    struct W_Pixmap *pullDownIndicator;
-    struct W_Pixmap *popUpIndicator;
+    W_Pixmap *pullDownIndicator;
+    W_Pixmap *popUpIndicator;
 
-    struct W_Pixmap *checkMark;
+    W_Pixmap *checkMark;
 
-    struct W_Pixmap *homeIcon;
-    struct W_Pixmap *altHomeIcon;
+    W_Pixmap *homeIcon;
+    W_Pixmap *altHomeIcon;
 
-    struct W_Pixmap *trashcanIcon;
-    struct W_Pixmap *altTrashcanIcon;
+    W_Pixmap *trashcanIcon;
+    W_Pixmap *altTrashcanIcon;
 
-    struct W_Pixmap *createDirIcon;
-    struct W_Pixmap *altCreateDirIcon;
+    W_Pixmap *createDirIcon;
+    W_Pixmap *altCreateDirIcon;
 
-    struct W_Pixmap *disketteIcon;
-    struct W_Pixmap *altDisketteIcon;
-    struct W_Pixmap *unmountIcon;
-    struct W_Pixmap *altUnmountIcon;
+    W_Pixmap *disketteIcon;
+    W_Pixmap *altDisketteIcon;
+    W_Pixmap *unmountIcon;
+    W_Pixmap *altUnmountIcon;
 
-    struct W_Pixmap *magnifyIcon;
-    /*struct W_Pixmap *altMagnifyIcon;*/
-    struct W_Pixmap *wheelIcon;
-    struct W_Pixmap *grayIcon;
-    struct W_Pixmap *rgbIcon;
-    struct W_Pixmap *cmykIcon;
-    struct W_Pixmap *hsbIcon;
-    struct W_Pixmap *customPaletteIcon;
-    struct W_Pixmap *colorListIcon;
+    W_Pixmap *magnifyIcon;
+    /*W_Pixmap *altMagnifyIcon;*/
+    W_Pixmap *wheelIcon;
+    W_Pixmap *grayIcon;
+    W_Pixmap *rgbIcon;
+    W_Pixmap *cmykIcon;
+    W_Pixmap *hsbIcon;
+    W_Pixmap *customPaletteIcon;
+    W_Pixmap *colorListIcon;
 
-    struct W_Pixmap *defaultObjectIcon;
+    W_Pixmap *defaultObjectIcon;
 
     Cursor defaultCursor;
 
@@ -324,189 +265,215 @@ typedef struct W_Screen {
     unsigned ignoreNextDoubleClick:1;
 } W_Screen;
 
+#define W_DRAWABLE(scr)                (scr)->rcontext->drawable
 
 
-typedef struct W_ViewDelegate {
-    void *data;
+/* ---[ drag*.c ]--------------------------------------------------------- */
 
-    void (*didMove)(struct W_ViewDelegate*, WMView*);
+typedef struct W_DragOperationItem {
+    WMDragOperationType type;
+    char* text;
+} W_DragOperationItem;
 
-    void (*didResize)(struct W_ViewDelegate*, WMView*);
+typedef void* W_DndState(WMView *destView, XClientMessageEvent *event,
+                         WMDraggingInfo *info);
 
-    void (*willMove)(struct W_ViewDelegate*, WMView*, int*, int*);
+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;
 
-    void (*willResize)(struct W_ViewDelegate*, WMView*,
-                       unsigned int*, unsigned int*);
-} W_ViewDelegate;
+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);
 
-typedef struct W_View {
-    struct W_Screen *screen;
+Atom W_OperationToAction(WMScreen *scr, WMDragOperationType operation);
 
-    WMWidget *self;     /* must point to the widget the view belongs to */
+WMDragOperationType W_ActionToOperation(WMScreen *scr, Atom action);
 
-    W_ViewDelegate *delegate;
+void W_FreeDragOperationItem(void* item);
 
-    Window window;
+Bool W_SendDnDClientMessage(Display *dpy, Window win, Atom message,
+                            unsigned long data1, unsigned long data2,
+                            unsigned long data3, unsigned long data4,
+                            unsigned long data5);
 
-    WMSize size;
+void W_DragSourceStartTimer(WMDraggingInfo *info);
 
-    short topOffs;
-    short leftOffs;
-    short bottomOffs;
-    short rightOffs;
+void W_DragSourceStopTimer(void);
 
-    WMPoint pos;
+void W_DragSourceStateHandler(WMDraggingInfo *info, XClientMessageEvent 
*event);
 
-    struct W_View *nextFocusChain;     /* next/prev in focus chain */
-    struct W_View *prevFocusChain;
+void W_DragDestinationStartTimer(WMDraggingInfo *info);
 
-    struct W_View *nextResponder;      /* next to receive keyboard events */
+void W_DragDestinationStopTimer(void);
 
-    struct W_View *parent;             /* parent WMView */
+void W_DragDestinationStoreEnterMsgInfo(WMDraggingInfo *info, WMView *toplevel,
+                                        XClientMessageEvent *event);
 
-    struct W_View *childrenList;       /* first in list of child windows */
+void W_DragDestinationStorePositionMsgInfo(WMDraggingInfo *info,
+                                           WMView *toplevel,
+                                           XClientMessageEvent *event);
 
-    struct W_View *nextSister;         /* next on parent's children list */
+void W_DragDestinationCancelDropOnEnter(WMView *toplevel, WMDraggingInfo 
*info);
 
-    WMArray *eventHandlers;            /* event handlers for this window */
+void W_DragDestinationStateHandler(WMDraggingInfo *info,
+                                   XClientMessageEvent *event);
 
-    unsigned long attribFlags;
-    XSetWindowAttributes attribs;
+void W_DragDestinationInfoClear(WMDraggingInfo *info);
 
-    void *hangedData;                  /* data holder for user program */
+void W_FreeViewXdndPart(WMView *view);
 
-    WMColor *backColor;
 
-    Cursor cursor;
+/* ---[ handlers.c ]------------------------------------------------------ */
 
-    Atom *droppableTypes;
-    struct W_DragSourceProcs      *dragSourceProcs;
-    struct W_DragDestinationProcs *dragDestinationProcs;
-    WMPixmap *dragImage;
-    int helpContext;
+Bool W_CheckIdleHandlers(void);
 
-    XIC xic;
+void W_CheckTimerHandlers(void);
 
-    struct {
-        unsigned int realized:1;
-        unsigned int mapped:1;
-        unsigned int parentDying:1;
-        unsigned int dying:1;           /* the view is being destroyed */
-        unsigned int topLevel:1;        /* is a top level window */
-        unsigned int root:1;            /* is the root window */
-        unsigned int mapWhenRealized:1; /* map the view when it's realized */
-        unsigned int alreadyDead:1;     /* view was freed */
+Bool W_HandleInputEvents(Bool waitForInput, int inputfd);
 
-        unsigned int dontCompressMotion:1; /* motion notify event compress */
-        unsigned int notifySizeChanged:1;
-        unsigned int dontCompressExpose:1; /* expose event compress */
 
-        /* toplevel only */
-        unsigned int worksWhenModal:1;
-        unsigned int pendingRelease1:1;
-        unsigned int pendingRelease2:1;
-        unsigned int pendingRelease3:1;
-        unsigned int pendingRelease4:1;
-        unsigned int pendingRelease5:1;
-        unsigned int xdndHintSet:1;
-    } flags;
+/* ---[ notification.c ]-------------------------------------------------- */
 
-    int refCount;
-} W_View;
+void W_InitNotificationCenter(void);
 
+void W_FlushASAPNotificationQueue(void);
 
-typedef struct W_EventHandler {
-    unsigned long eventMask;
+void W_FlushIdleNotificationQueue(void);
 
-    WMEventProc *proc;
 
-    void *clientData;
-} W_EventHandler;
+/* ---[ selection.c ]----------------------------------------------------- */
 
+void W_HandleSelectionEvent(XEvent *event);
 
 
+/* ---[ wapplication.c ]-------------------------------------------------- */
 
-typedef struct _WINGsConfiguration {
-    char *systemFont;
-    char *boldSystemFont;
-    int  defaultFontSize;
-    Bool antialiasedText;
-    char *floppyPath;
-    unsigned doubleClickDelay;
-    unsigned mouseWheelUp;
-    unsigned mouseWheelDown;
-} _WINGsConfiguration;
+typedef struct W_Application {
+    char *applicationName;
+    int argc;
+    char **argv;
+    char *resourcePath;
+} W_Application;
 
-extern _WINGsConfiguration WINGsConfiguration;
+/* -- Functions -- */
 
+void W_InitApplication(WMScreen *scr);
 
+Bool W_ApplicationInitialized(void);
 
-#define CHECK_CLASS(widget, class) assert(W_CLASS(widget)==(class))
 
+/* ---[ wballoon.c ]------------------------------------------------------ */
 
-#define W_CLASS(widget)        (((W_WidgetType*)(widget))->widgetClass)
-#define W_VIEW(widget)         (((W_WidgetType*)(widget))->view)
+struct W_Balloon *W_CreateBalloon(WMScreen *scr);
 
-#define W_VIEW_REALIZED(view)  (view)->flags.realized
-#define W_VIEW_MAPPED(view)    (view)->flags.mapped
+void W_BalloonHandleEnterView(WMView *view);
 
-#define W_VIEW_DISPLAY(view)    (view)->screen->display
-#define W_VIEW_SCREEN(view)    (view)->screen
-#define W_VIEW_DRAWABLE(view)  (view)->window
+void W_BalloonHandleLeaveView(WMView *view);
 
-#define W_VIEW_WIDTH(view)     (view)->size.width
-#define W_VIEW_HEIGHT(view)    (view)->size.height
 
+/* ---[ 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
 
-#define W_FONTID(f)            (f)->font->fid
 
-#define W_DRAWABLE(scr)                (scr)->rcontext->drawable
+/* ---[ wevent.c ]-------------------------------------------------------- */
 
+typedef struct W_EventHandler {
+    unsigned long eventMask;
 
+    WMEventProc *proc;
 
-W_View *W_GetViewForXWindow(Display *display, Window window);
+    void *clientData;
+} W_EventHandler;
 
-W_View *W_CreateView(W_View *parent);
+/* -- Functions -- */
 
-W_View *W_CreateTopView(W_Screen *screen);
+void W_CallDestroyHandlers(W_View *view);
 
-W_View *W_CreateUnmanagedTopView(W_Screen *screen);
 
+/* ---[ wfont.c ]--------------------------------------------------------- */
 
-W_View *W_CreateRootView(W_Screen *screen);
+typedef struct W_Font {
+    struct W_Screen *screen;
 
-void W_DestroyView(W_View *view);
+    struct _XftFont *font;
 
-void W_RealizeView(W_View *view);
+    short height;
+    short y;
+    short refCount;
+    char *name;
+} W_Font;
 
-void W_ReparentView(W_View *view, W_View *newParent, int x, int y);
+#define W_FONTID(f)            (f)->font->fid
 
-void W_RaiseView(W_View *view);
 
-void W_LowerView(W_View *view);
+/* ---[ widgets.c ]------------------------------------------------------- */
 
+#define WC_UserWidget  128
 
-void W_MapView(W_View *view);
+#define CHECK_CLASS(widget, class) assert(W_CLASS(widget)==(class))
 
-void W_MapSubviews(W_View *view);
+#define W_CLASS(widget)        (((W_WidgetType*)(widget))->widgetClass)
+#define W_VIEW(widget)         (((W_WidgetType*)(widget))->view)
 
-void W_UnmapSubviews(W_View *view);
+/* -- Functions -- */
 
-W_View *W_TopLevelOfView(W_View *view);
+W_Class W_RegisterUserWidget(void);
 
-void W_UnmapView(W_View *view);
 
-void W_MoveView(W_View *view, int x, int y);
+/* ---[ winputmethod.c ]-------------------------------------------------- */
 
-void W_ResizeView(W_View *view, unsigned int width, unsigned int height);
+void W_InitIM(WMScreen *scr);
 
-void W_SetViewBackgroundColor(W_View *view, WMColor *color);
+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);
 
-void W_SetViewCursor(W_View *view, Cursor cursor);
+
+/* ---[ wmisc.c ]--------------------------------------------------------- */
 
 void W_DrawRelief(W_Screen *scr, Drawable d, int x, int y, unsigned int width,
                   unsigned int height, WMReliefType relief);
@@ -516,8 +483,6 @@ void W_DrawReliefWithGC(W_Screen *scr, Drawable d, int x, 
int y,
                         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,
@@ -530,110 +495,172 @@ void W_PaintText(W_View *view, Drawable d, WMFont 
*font,  int x, int y,
 int W_GetTextHeight(WMFont *font, const char *text, int width, int wrap);
 
 
-int W_TextWidth(WMFont *font, const char *text, int length);
+/* ---[ 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;
 
-void W_BroadcastMessage(W_View *targetParent, XEvent *event);
 
-void W_DispatchMessage(W_View *target, XEvent *event);
+/* ---[ wview.c ]--------------------------------------------------------- */
 
-void W_SetFocusOfToplevel(W_View *toplevel, W_View *view);
+typedef struct W_ViewDelegate {
+    void *data;
+    void (*didMove)(struct W_ViewDelegate*, WMView*);
+    void (*didResize)(struct W_ViewDelegate*, WMView*);
+    void (*willMove)(struct W_ViewDelegate*, WMView*, int*, int*);
+    void (*willResize)(struct W_ViewDelegate*, WMView*,
+                       unsigned int*, unsigned int*);
+} W_ViewDelegate;
 
-W_View *W_FocusedViewOfToplevel(W_View *view);
+typedef struct W_View {
+    struct W_Screen *screen;
 
-void W_SetFocusOfTopLevel(W_View *toplevel, W_View *view);
+    WMWidget *self;     /* must point to the widget the view belongs to */
 
-void W_ReleaseView(WMView *view);
+    W_ViewDelegate *delegate;
 
-WMView *W_RetainView(WMView *view);
+    Window window;
 
-void W_InitApplication(WMScreen *scr);
+    WMSize size;
 
-void W_InitNotificationCenter(void);
+    short topOffs;
+    short leftOffs;
+    short bottomOffs;
+    short rightOffs;
 
-W_Class W_RegisterUserWidget(void);
+    WMPoint pos;
 
-void W_RedisplayView(WMView *view);
+    struct W_View *nextFocusChain;     /* next/prev in focus chain */
+    struct W_View *prevFocusChain;
 
-Bool W_ApplicationInitialized(void);
+    struct W_View *nextResponder;      /* next to receive keyboard events */
 
-void W_HandleSelectionEvent(XEvent *event);
+    struct W_View *parent;             /* parent WMView */
 
-void W_HandleDNDClientMessage(WMView *toplevel, XClientMessageEvent *event);
+    struct W_View *childrenList;       /* first in list of child windows */
 
-void W_FlushASAPNotificationQueue(void);
+    struct W_View *nextSister;         /* next on parent's children list */
 
-void W_FlushIdleNotificationQueue(void);
+    WMArray *eventHandlers;            /* event handlers for this window */
 
-struct W_Balloon *W_CreateBalloon(WMScreen *scr);
+    unsigned long attribFlags;
+    XSetWindowAttributes attribs;
 
-void W_BalloonHandleEnterView(WMView *view);
+    void *hangedData;                  /* data holder for user program */
 
-void W_BalloonHandleLeaveView(WMView *view);
+    WMColor *backColor;
 
-Bool W_CheckIdleHandlers(void);
+    Cursor cursor;
 
-void W_CheckTimerHandlers(void);
+    Atom *droppableTypes;
+    struct W_DragSourceProcs      *dragSourceProcs;
+    struct W_DragDestinationProcs *dragDestinationProcs;
+    WMPixmap *dragImage;
+    int helpContext;
 
-Bool W_HandleInputEvents(Bool waitForInput, int inputfd);
+    XIC xic;
 
-/* XDnD */
-Atom W_OperationToAction(WMScreen *scr, WMDragOperationType operation);
+    struct {
+        unsigned int realized:1;
+        unsigned int mapped:1;
+        unsigned int parentDying:1;
+        unsigned int dying:1;           /* the view is being destroyed */
+        unsigned int topLevel:1;        /* is a top level window */
+        unsigned int root:1;            /* is the root window */
+        unsigned int mapWhenRealized:1; /* map the view when it's realized */
+        unsigned int alreadyDead:1;     /* view was freed */
 
-WMDragOperationType W_ActionToOperation(WMScreen *scr, Atom action);
+        unsigned int dontCompressMotion:1; /* motion notify event compress */
+        unsigned int notifySizeChanged:1;
+        unsigned int dontCompressExpose:1; /* expose event compress */
 
-void W_FreeDragOperationItem(void* item);
+        /* toplevel only */
+        unsigned int worksWhenModal:1;
+        unsigned int pendingRelease1:1;
+        unsigned int pendingRelease2:1;
+        unsigned int pendingRelease3:1;
+        unsigned int pendingRelease4:1;
+        unsigned int pendingRelease5:1;
+        unsigned int xdndHintSet:1;
+    } flags;
 
-Bool W_SendDnDClientMessage(Display *dpy, Window win, Atom message,
-                            unsigned long data1, unsigned long data2,
-                            unsigned long data3, unsigned long data4,
-                            unsigned long data5);
+    int refCount;
+} W_View;
 
-void W_DragSourceStartTimer(WMDraggingInfo *info);
+#define W_VIEW_REALIZED(view)  (view)->flags.realized
+#define W_VIEW_MAPPED(view)    (view)->flags.mapped
 
-void W_DragSourceStopTimer(void);
+#define W_VIEW_DISPLAY(view)    (view)->screen->display
+#define W_VIEW_SCREEN(view)    (view)->screen
+#define W_VIEW_DRAWABLE(view)  (view)->window
 
-void W_DragSourceStateHandler(WMDraggingInfo *info, XClientMessageEvent 
*event);
+#define W_VIEW_WIDTH(view)     (view)->size.width
+#define W_VIEW_HEIGHT(view)    (view)->size.height
 
-void W_DragDestinationStartTimer(WMDraggingInfo *info);
+/* -- Functions -- */
 
-void W_DragDestinationStopTimer(void);
+W_View *W_GetViewForXWindow(Display *display, Window window);
 
-void W_DragDestinationStoreEnterMsgInfo(WMDraggingInfo *info, WMView *toplevel,
-                                        XClientMessageEvent *event);
+W_View *W_CreateView(W_View *parent);
 
-void W_DragDestinationStorePositionMsgInfo(WMDraggingInfo *info,
-                                           WMView *toplevel,
-                                           XClientMessageEvent *event);
+W_View *W_CreateTopView(W_Screen *screen);
 
-void W_DragDestinationCancelDropOnEnter(WMView *toplevel, WMDraggingInfo 
*info);
+W_View *W_CreateUnmanagedTopView(W_Screen *screen);
 
-void W_DragDestinationStateHandler(WMDraggingInfo *info,
-                                   XClientMessageEvent *event);
+W_View *W_CreateRootView(W_Screen *screen);
 
-void W_DragDestinationInfoClear(WMDraggingInfo *info);
+void W_DestroyView(W_View *view);
 
-void W_FreeViewXdndPart(WMView *view);
+void W_RealizeView(W_View *view);
 
-/* XIM */
-void W_InitIM(WMScreen *scr);
+void W_RedisplayView(WMView *view);
 
-void W_CreateIC(WMView *view);
+void W_ReparentView(W_View *view, W_View *newParent, int x, int y);
 
-void W_DestroyIC(WMView *view);
+void W_RaiseView(W_View *view);
 
-void W_FocusIC(WMView *view);
+void W_LowerView(W_View *view);
 
-void W_UnFocusIC(WMView *view);
+void W_MapView(W_View *view);
 
-void W_SetPreeditPositon(W_View *view, int x, int y);
+void W_MapSubviews(W_View *view);
+
+void W_UnmapSubviews(W_View *view);
+
+W_View *W_TopLevelOfView(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_ResizeView(W_View *view, unsigned int width, unsigned int height);
+
+void W_SetViewBackgroundColor(W_View *view, WMColor *color);
+
+void W_SetViewCursor(W_View *view, Cursor cursor);
+
+void W_SetFocusOfTopLevel(W_View *toplevel, W_View *view);
+
+W_View *W_FocusedViewOfToplevel(W_View *view);
+
+void W_BroadcastMessage(W_View *targetParent, XEvent *event);
+
+void W_DispatchMessage(W_View *target, XEvent *event);
 
-int W_LookupString(W_View *view, XKeyPressedEvent *event, char *buffer,
-                   int buflen, KeySym *keysym, Status *status);
 
 #ifdef __cplusplus
 }
 #endif /* __cplusplus */
 
 #endif /* _WINGSP_H_ */
-
-- 
1.7.10.4


-- 
To unsubscribe, send mail to wmaker-dev-unsubscr...@lists.windowmaker.org.

Reply via email to