X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=openbox%2Fframe.h;h=ebd8de982457afb76cf27b2f846ae9a4c450eae2;hb=775d5da7ade2d184dfcef5c046b8d39f91804f01;hp=8f210b0c6dc745edd19942e65edc703fef722f40;hpb=08e42acaadf8868abb94dc75da0daa9c6e4e2d1c;p=chaz%2Fopenbox diff --git a/openbox/frame.h b/openbox/frame.h index 8f210b0c..ebd8de98 100644 --- a/openbox/frame.h +++ b/openbox/frame.h @@ -114,8 +114,16 @@ struct _ObFrame 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 */ @@ -128,6 +136,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; @@ -145,19 +157,17 @@ struct _ObFrame gboolean flash_on; GTimeVal flash_end; - /*! The step which the client is currently in for animating iconify and - restore. - 0 means that it is not animating. FRAME_ANIMATE_ICONIFY_STEPS is the - first step for iconifying, and -FRAME_ANIMATE_ICONIFY_STEPS is the - forst step for restoring. It counts towards 0 either way. Visually, - +x == -(FRAME_ANIMATE_ICONIFY_STEPS-x+1) + /*! 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_step; - ObFrameIconifyAnimateFunc iconify_animation_cb; - gpointer iconify_animation_data; + gint iconify_animation_going; + GTimeVal iconify_animation_end; }; 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); @@ -169,12 +179,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. @@ -194,8 +205,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); + +#define frame_iconify_animating(f) (f->iconify_animation_going != 0) #endif