/**
* @file place.h
* @author Joe Wingbermuehle
* @date 2004-2006
*
* @brief Header for client placement functions.
*
*/
#ifndef PLACE_H
#define PLACE_H
struct ClientNode;
struct ScreenType;
struct TrayType;
/** Bounding box. */
typedef struct BoundingBox {
int x; /**< x-coordinate of the bounding box. */
int y; /**< y-coordinate of the bounding box. */
int width; /**< Width of the bounding box. */
int height; /**< Height of the bounding box. */
} BoundingBox;
/*@{*/
void InitializePlacement();
void StartupPlacement();
void ShutdownPlacement();
void DestroyPlacement();
/*@}*/
/** Remove struts associated with a client.
* @param np The client.
*/
void RemoveClientStrut(struct ClientNode *np);
/** Read struts associated with a client.
* @param np The client.
*/
void ReadClientStrut(struct ClientNode *np);
/** Place a client on the screen.
* @param np The client to place.
* @param alreadyMapped 1 if already mapped, 0 if unmapped.
*/
void PlaceClient(struct ClientNode *np, int alreadyMapped);
/** Place a maximized client on the screen.
* @param np The client to place.
* @param horiz Set if maximizing horizontally.
* @param vert Set if maximizing vertically.
*/
void PlaceMaximizedClient(struct ClientNode *np, int horiz, int vert);
/** Move a client window for a border.
* @param np The client.
* @param negate 0 to gravitate for a border, 1 to gravitate for no border.
*/
void GravitateClient(struct ClientNode *np, int negate);
/** Get the x and y deltas for gravitating a client.
* @param np The client.
* @param x Location to store the x delta.
* @param y Location to store the y delta.
*/
void GetGravityDelta(const struct ClientNode *np, int *x, int *y);
/** Constrain the size of a client to available screen space.
* @param np The client.
*/
void ConstrainSize(struct ClientNode *np);
/** Get the bounding box for the screen.
* @param sp A pointer to the screen whose bounds to get.
* @param box The bounding box for the screen.
*/
void GetScreenBounds(const struct ScreenType *sp, BoundingBox *box);
/** Subtract bounds for the configured trays.
* @param tp The first tray to consider.
* @param box The bounding box.
* @param layer The maximum layer of the tray bounds.
*/
void SubtractTrayBounds(const struct TrayType *tp, BoundingBox *box,
unsigned int layer);
#endif /* PLACE_H */
syntax highlighted by Code2HTML, v. 0.9.1