#define __frame_h
#include "geom.h"
-#include "render/render.h"
+#include "obrender/render.h"
typedef struct _ObFrame ObFrame;
/*! This is a special context, which occurs while dragging a window in
a move/resize */
OB_FRAME_CONTEXT_MOVE_RESIZE,
+ OB_FRAME_CONTEXT_DOCK,
OB_FRAME_NUM_CONTEXTS
} ObFrameContext;
Window window;
- Strut size;
+ Strut size; /* the size of the frame */
+ Strut oldsize; /* the size of the frame last told to the client */
Rect area;
gboolean visible;
gboolean flashing;
gboolean flash_on;
GTimeVal flash_end;
+ guint flash_timer;
/*! Is the frame currently in an animation for iconify or restore.
0 means that it is not animating. > 0 means it is animating an iconify.
< 0 means it is animating a restore.
*/
gint iconify_animation_going;
+ guint iconify_animation_timer;
GTimeVal iconify_animation_end;
};
void frame_show(ObFrame *self);
void frame_hide(ObFrame *self);
void frame_adjust_theme(ObFrame *self);
+#ifdef SHAPE
+void frame_adjust_shape_kind(ObFrame *self, int kind);
+#endif
void frame_adjust_shape(ObFrame *self);
void frame_adjust_area(ObFrame *self, gboolean moved,
gboolean resized, gboolean fake);
ObFrameContext frame_context_from_string(const gchar *name);
+/*! Parses a ObFrameContext from a string of space-separated context names.
+ @names The list of context names, the first of which is removed from the
+ string.
+ @cx The ObFrameContext is returned here. If an invalid name is found, this
+ is set to OB_FRAME_CONTEXT_NONE.
+ @return TRUE if there was something to read in @names, FALSE if it was an
+ empty input.
+*/
+gboolean frame_next_context_from_string(gchar *names, ObFrameContext *cx);
+
ObFrameContext frame_context(struct _ObClient *self, Window win,
gint x, gint y);