X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=openbox%2Fclient.h;h=09c93e63770096592bca90b0b47b2ea843c5120d;hb=6799c67c07e99c440f549802f60d9f16995ab711;hp=bb63137f9df534024a6a77ae920fbfcf7752d6cc;hpb=ec7898dda7bfdd56cfb4d9ff51dddc1c1ab1f00e;p=chaz%2Fopenbox diff --git a/openbox/client.h b/openbox/client.h index bb63137f..09c93e63 100644 --- a/openbox/client.h +++ b/openbox/client.h @@ -40,15 +40,6 @@ struct _ObSessionState; struct _ObPrompt; typedef struct _ObClient ObClient; -typedef struct _ObClientIcon ObClientIcon; - -/*! Holds an icon in ARGB format */ -struct _ObClientIcon -{ - gint width; - gint height; - RrPixel32 *data; -}; /*! Possible window types */ typedef enum @@ -307,10 +298,8 @@ struct _ObClient */ guint functions; - /*! Icons for the client as specified on the client window */ - ObClientIcon *icons; - /*! The number of icons in icons */ - guint nicons; + /* The window's icon, in a variety of shapes and sizes */ + RrImage *icon_set; /*! Where the window should iconify to/from */ Rect icon_geometry; @@ -338,7 +327,7 @@ void client_remove_destroy_notify(ObClientCallback func); */ void client_manage(Window win, struct _ObPrompt *prompt); /*! Unmanages all managed windows */ -void client_unmanage_all(); +void client_unmanage_all(void); /*! Unmanages a given client */ void client_unmanage(ObClient *client); @@ -351,7 +340,7 @@ ObClient *client_fake_manage(Window win); void client_fake_unmanage(ObClient *self); /*! Sets the client list on the root window from the client_list */ -void client_set_list(); +void client_set_list(void); /*! Determines if the client should be shown or hidden currently. @return TRUE if it should be visible; otherwise, FALSE. @@ -407,10 +396,13 @@ void client_convert_gravity_resize(ObClient *self, gint gravity, client_configure(self, self->area.x, self->area.y, w, h, TRUE, TRUE, FALSE) #define client_move_resize(self, x, y, w, h) \ client_configure(self, x, y, w, h, TRUE, TRUE, FALSE) -#define client_reconfigure(self, force) \ - client_configure(self, ((ObClient*)self)->area.x, ((ObClient*)self)->area.y, \ - ((ObClient*)self)->area.width, \ - ((ObClient*)self)->area.height, FALSE, TRUE, force) + +/*! Make a client reconfigure so that it will honour its current max/min sizes + and other bounds. + @param force If TRUE, then a ConfigureNotify event will be sent to the client + even if nothing has changed. +*/ +void client_reconfigure(ObClient *self, gboolean force); /*! Figure out where a window will end up and what size it will be if you told it to move/resize to these coordinates. @@ -642,19 +634,28 @@ void client_setup_decor_and_functions(ObClient *self, gboolean reconfig); /*! Sets the window's type and transient flag */ void client_get_type_and_transientness(ObClient *self); -const ObClientIcon *client_icon(ObClient *self, gint w, gint h); +/*! Returns a client's icon set, or its parents (recursively) if it doesn't + have one +*/ +RrImage* client_icon(ObClient *self); /*! Return TRUE if the client is transient for some other window. Return FALSE if it's not transient or there is no window for it to be transient for */ gboolean client_has_parent(ObClient *self); -/*! Searches a client's direct parents for a focused window. The function does - not check for the passed client, only for *ONE LEVEL* of its parents. - If no focused parentt is found, NULL is returned. +/*! Searches a client's immediate parents for a focused window. The function + does not check for the passed client, only for *ONE LEVEL* of its parents. + If no focused parent is found, NULL is returned. */ ObClient *client_search_focus_parent(ObClient *self); +/*! Searches a client's parents for a focused window. The function + does not check for the passed client, but searches through all of its + parents. If no focused parent is found, NULL is returned. +*/ +ObClient *client_search_focus_parent_full(ObClient *self); + /*! Searches a client's transients for a focused window. The function does not check for the passed client, only for its transients. If no focused transient is found, NULL is returned. @@ -723,7 +724,7 @@ void client_set_layer(ObClient *self, gint layer); guint client_monitor(ObClient *self); -ObClient* client_under_pointer(); +ObClient* client_under_pointer(void); gboolean client_has_group_siblings(ObClient *self);