X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=openbox%2Fframe.h;h=b5b8a9cf0ad593686e7150197bfc6d0f4c111f46;hb=cf5c75420a6237798ff73c1fe7af03eaca6f33b4;hp=5f31b8c9ac47390f8a4a0a6d83c3d564e059fcec;hpb=b5e597f1b3a810610fd63f50c55dc5a8b715744e;p=chaz%2Fopenbox diff --git a/openbox/frame.h b/openbox/frame.h index 5f31b8c9..b5b8a9cf 100644 --- a/openbox/frame.h +++ b/openbox/frame.h @@ -32,14 +32,18 @@ typedef void (*ObFrameIconifyAnimateFunc)(gpointer data); typedef enum { OB_FRAME_CONTEXT_NONE, OB_FRAME_CONTEXT_DESKTOP, + OB_FRAME_CONTEXT_ROOT, OB_FRAME_CONTEXT_CLIENT, OB_FRAME_CONTEXT_TITLEBAR, - OB_FRAME_CONTEXT_HANDLE, OB_FRAME_CONTEXT_FRAME, OB_FRAME_CONTEXT_BLCORNER, OB_FRAME_CONTEXT_BRCORNER, OB_FRAME_CONTEXT_TLCORNER, OB_FRAME_CONTEXT_TRCORNER, + OB_FRAME_CONTEXT_TOP, + OB_FRAME_CONTEXT_BOTTOM, + OB_FRAME_CONTEXT_LEFT, + OB_FRAME_CONTEXT_RIGHT, OB_FRAME_CONTEXT_MAXIMIZE, OB_FRAME_CONTEXT_ALLDESKTOPS, OB_FRAME_CONTEXT_SHADE, @@ -77,9 +81,6 @@ struct _ObFrame Strut size; Rect area; - /*! Is the frame visible? Don't read this directly ! Use frame_visible() - instead, because that takes into account if the frame is visible but - animating to the iconic (invisible) state. */ gboolean visible; guint decorations; @@ -98,10 +99,13 @@ struct _ObFrame Window lgrip; Window rgrip; + Window topresize; Window tltresize; Window tllresize; Window trtresize; Window trrresize; + Window leftresize; + Window rightresize; Colormap colormap; @@ -113,12 +117,18 @@ struct _ObFrame RrAppearance *a_unfocused_handle; RrAppearance *a_focused_handle; - Strut innersize; - GSList *clients; - gint width; /* title and handle */ - gint label_width; + gint icon_on; /* if the window icon button is on */ + gint label_on; /* if the window title is on */ + gint iconify_on; /* if the window iconify button is on */ + gint desk_on; /* if the window all-desktops button is on */ + gint shade_on; /* if the window shade button is on */ + gint max_on; /* if the window maximize button is on */ + gint close_on; /* if the window close button is on */ + + gint width; /* width of the titlebar and handle */ + gint label_width; /* width of the label in the titlebar */ gint icon_x; /* x-position of the window icon button */ gint label_x; /* x-position of the window title */ gint iconify_x; /* x-position of the window iconify button */ @@ -131,6 +141,10 @@ struct _ObFrame gint cbwidth_x; /* client border width */ gint cbwidth_y; /* client border width */ + /* the leftmost and rightmost elements in the titlebar */ + ObFrameContext leftmost; + ObFrameContext rightmost; + gboolean max_press; gboolean close_press; gboolean desk_press; @@ -154,11 +168,11 @@ struct _ObFrame */ gint iconify_animation_going; GTimeVal iconify_animation_end; - ObFrameIconifyAnimateFunc iconify_animation_cb; - gpointer iconify_animation_data; }; ObFrame *frame_new(struct _ObClient *c); +void frame_free(ObFrame *self); + void frame_show(ObFrame *self); void frame_hide(ObFrame *self); void frame_adjust_theme(ObFrame *self); @@ -170,12 +184,13 @@ void frame_adjust_state(ObFrame *self); void frame_adjust_focus(ObFrame *self, gboolean hilite); void frame_adjust_title(ObFrame *self); void frame_adjust_icon(ObFrame *self); -void frame_grab_client(ObFrame *self, struct _ObClient *client); -void frame_release_client(ObFrame *self, struct _ObClient *client); +void frame_grab_client(ObFrame *self); +void frame_release_client(ObFrame *self); ObFrameContext frame_context_from_string(const gchar *name); -ObFrameContext frame_context(struct _ObClient *self, Window win); +ObFrameContext frame_context(struct _ObClient *self, Window win, + gint x, gint y); /*! Applies gravity to the client's position to find where the frame should be positioned. @@ -195,15 +210,9 @@ void frame_flash_stop(ObFrame *self); /*! Start an animation for iconifying or restoring a frame. The callback will be called when the animation finishes. But if another animation is started in the meantime, the callback will never get called. */ -void frame_begin_iconify_animation(ObFrame *self, gboolean iconifying, - ObFrameIconifyAnimateFunc callback, - gpointer data); +void frame_begin_iconify_animation(ObFrame *self, gboolean iconifying); void frame_end_iconify_animation(ObFrame *self); -/* Returns true if the frame is visible (but false if it is only visible - because it is animating */ -gboolean frame_visible(ObFrame *self); - #define frame_iconify_animating(f) (f->iconify_animation_going != 0) #endif