use a context enum instead of quarks
This commit is contained in:
parent
831db744f4
commit
bca8082d6d
4 changed files with 76 additions and 34 deletions
|
@ -46,6 +46,6 @@ typedef void EngineFrameShow(Frame *self);
|
|||
typedef void EngineFrameHide(Frame *self);
|
||||
|
||||
/* get_context */
|
||||
typedef GQuark EngineGetContext(Client *client, Window win);
|
||||
typedef Context EngineGetContext(Client *client, Window win);
|
||||
|
||||
#endif
|
||||
|
|
|
@ -92,21 +92,6 @@ gboolean startup()
|
|||
{
|
||||
char *path;
|
||||
|
||||
g_quark_from_string("none");
|
||||
g_quark_from_string("root");
|
||||
g_quark_from_string("client");
|
||||
g_quark_from_string("titlebar");
|
||||
g_quark_from_string("handle");
|
||||
g_quark_from_string("frame");
|
||||
g_quark_from_string("blcorner");
|
||||
g_quark_from_string("brcorner");
|
||||
g_quark_from_string("maximize");
|
||||
g_quark_from_string("alldesktops");
|
||||
g_quark_from_string("shade");
|
||||
g_quark_from_string("iconify");
|
||||
g_quark_from_string("icon");
|
||||
g_quark_from_string("close");
|
||||
|
||||
/* create the ~/.openbox/themes/openbox dir */
|
||||
path = g_build_filename(g_get_home_dir(), ".openbox", "themes", "openbox",
|
||||
NULL);
|
||||
|
@ -861,28 +846,28 @@ static void mouse_event(const ObEvent *e, ObFrame *self)
|
|||
}
|
||||
}
|
||||
|
||||
GQuark get_context(Client *client, Window win)
|
||||
Context get_context(Client *client, Window win)
|
||||
{
|
||||
ObFrame *self;
|
||||
|
||||
if (win == ob_root) return g_quark_try_string("root");
|
||||
if (client == NULL) return g_quark_try_string("none");
|
||||
if (win == client->window) return g_quark_try_string("client");
|
||||
if (win == ob_root) return Context_Root;
|
||||
if (client == NULL) return Context_None;
|
||||
if (win == client->window) return Context_Client;
|
||||
|
||||
self = (ObFrame*) client->frame;
|
||||
if (win == self->frame.window) return g_quark_try_string("frame");
|
||||
if (win == self->frame.plate) return g_quark_try_string("client");
|
||||
if (win == self->title) return g_quark_try_string("titlebar");
|
||||
if (win == self->label) return g_quark_try_string("titlebar");
|
||||
if (win == self->handle) return g_quark_try_string("handle");
|
||||
if (win == self->lgrip) return g_quark_try_string("blcorner");
|
||||
if (win == self->rgrip) return g_quark_try_string("brcorner");
|
||||
if (win == self->max) return g_quark_try_string("maximize");
|
||||
if (win == self->iconify) return g_quark_try_string("iconify");
|
||||
if (win == self->close) return g_quark_try_string("close");
|
||||
if (win == self->icon) return g_quark_try_string("icon");
|
||||
if (win == self->desk) return g_quark_try_string("alldesktops");
|
||||
if (win == self->shade) return g_quark_try_string("shade");
|
||||
if (win == self->frame.window) return Context_Frame;
|
||||
if (win == self->frame.plate) return Context_Client;
|
||||
if (win == self->title) return Context_Titlebar;
|
||||
if (win == self->label) return Context_Titlebar;
|
||||
if (win == self->handle) return Context_Handle;
|
||||
if (win == self->lgrip) return Context_BLCorner;
|
||||
if (win == self->rgrip) return Context_BRCorner;
|
||||
if (win == self->max) return Context_Maximize;
|
||||
if (win == self->iconify) return Context_Iconify;
|
||||
if (win == self->close) return Context_Close;
|
||||
if (win == self->icon) return Context_Icon;
|
||||
if (win == self->desk) return Context_AllDesktops;
|
||||
if (win == self->shade) return Context_Shade;
|
||||
|
||||
return g_quark_try_string("none");
|
||||
return Context_None;
|
||||
}
|
||||
|
|
|
@ -1,5 +1,40 @@
|
|||
#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 */
|
||||
|
|
|
@ -4,6 +4,28 @@
|
|||
#include "geom.h"
|
||||
#include "client.h"
|
||||
|
||||
typedef enum {
|
||||
Context_None,
|
||||
Context_Root,
|
||||
Context_Client,
|
||||
Context_Titlebar,
|
||||
Context_Handle,
|
||||
Context_Frame,
|
||||
Context_BLCorner,
|
||||
Context_BRCorner,
|
||||
Context_TLCorner,
|
||||
Context_TRCorner,
|
||||
Context_Maximize,
|
||||
Context_AllDesktops,
|
||||
Context_Shade,
|
||||
Context_Iconify,
|
||||
Context_Icon,
|
||||
Context_Close,
|
||||
NUM_CONTEXTS
|
||||
} Context;
|
||||
|
||||
Context frame_context_from_string(char *name);
|
||||
|
||||
typedef struct Frame {
|
||||
Client *client;
|
||||
|
||||
|
|
Loading…
Reference in a new issue