X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=openbox%2Fframe.h;h=915c08db73ffabf79f46f14ba08030b15b660296;hb=HEAD;hp=fd5adf748701d49f943ad5a743564f3136a3ea64;hpb=22a88cfe99d897dc7d3be7b53b954f6cdfa250c6;p=chaz%2Fopenbox diff --git a/openbox/frame.h b/openbox/frame.h index fd5adf74..915c08db 100644 --- a/openbox/frame.h +++ b/openbox/frame.h @@ -21,7 +21,7 @@ #define __frame_h #include "geom.h" -#include "render/render.h" +#include "obrender/render.h" typedef struct _ObFrame ObFrame; @@ -53,6 +53,7 @@ typedef enum { /*! 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; @@ -84,7 +85,8 @@ struct _ObFrame 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; @@ -190,12 +192,14 @@ struct _ObFrame 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; }; @@ -205,6 +209,9 @@ void frame_free(ObFrame *self); 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); @@ -218,6 +225,16 @@ void frame_release_client(ObFrame *self); 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);