diff options
| author | Dana Jansens <danakj@orodu.net> | 2003-03-16 21:11:39 +0000 |
|---|---|---|
| committer | Dana Jansens <danakj@orodu.net> | 2003-03-16 21:11:39 +0000 |
| commit | f8a47de5ec444c452093371e3db16857eb39a490 (patch) | |
| tree | 31db2567842d98232775f9980f7a8d2586c0ac71 /openbox/frame.c | |
| parent | 8ba0586bcbdc7fe9648f1063812126d71a041670 (diff) | |
merge the C branch into HEAD
Diffstat (limited to 'openbox/frame.c')
| -rw-r--r-- | openbox/frame.c | 105 |
1 files changed, 105 insertions, 0 deletions
diff --git a/openbox/frame.c b/openbox/frame.c new file mode 100644 index 00000000..eee01e48 --- /dev/null +++ b/openbox/frame.c @@ -0,0 +1,105 @@ +#include "frame.h" + +void frame_client_gravity(Frame *self, int *x, int *y) +{ + /* horizontal */ + switch (self->client->gravity) { + default: + case NorthWestGravity: + case SouthWestGravity: + case WestGravity: + break; + + case NorthGravity: + case SouthGravity: + case CenterGravity: + *x -= (self->size.left + self->size.right) / 2; + break; + + case NorthEastGravity: + case SouthEastGravity: + case EastGravity: + *x -= self->size.left + self->size.right; + break; + + case ForgetGravity: + case StaticGravity: + *x -= self->size.left; + break; + } + + /* vertical */ + switch (self->client->gravity) { + default: + case NorthWestGravity: + case NorthEastGravity: + case NorthGravity: + break; + + case CenterGravity: + case EastGravity: + case WestGravity: + *y -= (self->size.top + self->size.bottom) / 2; + break; + + case SouthWestGravity: + case SouthEastGravity: + case SouthGravity: + *y -= self->size.top + self->size.bottom; + break; + + case ForgetGravity: + case StaticGravity: + *y -= self->size.top; + break; + } +} + +void frame_frame_gravity(Frame *self, int *x, int *y) +{ + /* horizontal */ + switch (self->client->gravity) { + default: + case NorthWestGravity: + case WestGravity: + case SouthWestGravity: + break; + case NorthGravity: + case CenterGravity: + case SouthGravity: + *x += (self->size.left + self->size.right) / 2; + break; + case NorthEastGravity: + case EastGravity: + case SouthEastGravity: + *x += self->size.left + self->size.right; + break; + case StaticGravity: + case ForgetGravity: + x += self->size.left; + break; + } + + /* vertical */ + switch (self->client->gravity) { + default: + case NorthWestGravity: + case WestGravity: + case SouthWestGravity: + break; + case NorthGravity: + case CenterGravity: + case SouthGravity: + *y += (self->size.top + self->size.bottom) / 2; + break; + case NorthEastGravity: + case EastGravity: + case SouthEastGravity: + *y += self->size.top + self->size.bottom; + break; + case StaticGravity: + case ForgetGravity: + *y += self->size.top; + break; + } +} |
