openbox/frame.c (raw)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 |
#include "frame.h" Context frame_context_from_string(char *name) { if (!g_ascii_strcasecmp("root", name)) return Context_Root; else if (!g_ascii_strcasecmp("client", name)) return Context_Client; else if (!g_ascii_strcasecmp("titlebar", name)) return Context_Titlebar; else if (!g_ascii_strcasecmp("handle", name)) return Context_Handle; else if (!g_ascii_strcasecmp("frame", name)) return Context_Frame; else if (!g_ascii_strcasecmp("blcorner", name)) return Context_BLCorner; else if (!g_ascii_strcasecmp("tlcorner", name)) return Context_TLCorner; else if (!g_ascii_strcasecmp("brcorner", name)) return Context_BRCorner; else if (!g_ascii_strcasecmp("trcorner", name)) return Context_TRCorner; else if (!g_ascii_strcasecmp("maximize", name)) return Context_Maximize; else if (!g_ascii_strcasecmp("alldesktops", name)) return Context_AllDesktops; else if (!g_ascii_strcasecmp("shade", name)) return Context_Shade; else if (!g_ascii_strcasecmp("iconify", name)) return Context_Iconify; else if (!g_ascii_strcasecmp("icon", name)) return Context_Icon; else if (!g_ascii_strcasecmp("close", name)) return Context_Close; return Context_None; } 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; } } |