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);
|
typedef void EngineFrameHide(Frame *self);
|
||||||
|
|
||||||
/* get_context */
|
/* get_context */
|
||||||
typedef GQuark EngineGetContext(Client *client, Window win);
|
typedef Context EngineGetContext(Client *client, Window win);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -92,21 +92,6 @@ gboolean startup()
|
||||||
{
|
{
|
||||||
char *path;
|
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 */
|
/* create the ~/.openbox/themes/openbox dir */
|
||||||
path = g_build_filename(g_get_home_dir(), ".openbox", "themes", "openbox",
|
path = g_build_filename(g_get_home_dir(), ".openbox", "themes", "openbox",
|
||||||
NULL);
|
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;
|
ObFrame *self;
|
||||||
|
|
||||||
if (win == ob_root) return g_quark_try_string("root");
|
if (win == ob_root) return Context_Root;
|
||||||
if (client == NULL) return g_quark_try_string("none");
|
if (client == NULL) return Context_None;
|
||||||
if (win == client->window) return g_quark_try_string("client");
|
if (win == client->window) return Context_Client;
|
||||||
|
|
||||||
self = (ObFrame*) client->frame;
|
self = (ObFrame*) client->frame;
|
||||||
if (win == self->frame.window) return g_quark_try_string("frame");
|
if (win == self->frame.window) return Context_Frame;
|
||||||
if (win == self->frame.plate) return g_quark_try_string("client");
|
if (win == self->frame.plate) return Context_Client;
|
||||||
if (win == self->title) return g_quark_try_string("titlebar");
|
if (win == self->title) return Context_Titlebar;
|
||||||
if (win == self->label) return g_quark_try_string("titlebar");
|
if (win == self->label) return Context_Titlebar;
|
||||||
if (win == self->handle) return g_quark_try_string("handle");
|
if (win == self->handle) return Context_Handle;
|
||||||
if (win == self->lgrip) return g_quark_try_string("blcorner");
|
if (win == self->lgrip) return Context_BLCorner;
|
||||||
if (win == self->rgrip) return g_quark_try_string("brcorner");
|
if (win == self->rgrip) return Context_BRCorner;
|
||||||
if (win == self->max) return g_quark_try_string("maximize");
|
if (win == self->max) return Context_Maximize;
|
||||||
if (win == self->iconify) return g_quark_try_string("iconify");
|
if (win == self->iconify) return Context_Iconify;
|
||||||
if (win == self->close) return g_quark_try_string("close");
|
if (win == self->close) return Context_Close;
|
||||||
if (win == self->icon) return g_quark_try_string("icon");
|
if (win == self->icon) return Context_Icon;
|
||||||
if (win == self->desk) return g_quark_try_string("alldesktops");
|
if (win == self->desk) return Context_AllDesktops;
|
||||||
if (win == self->shade) return g_quark_try_string("shade");
|
if (win == self->shade) return Context_Shade;
|
||||||
|
|
||||||
return g_quark_try_string("none");
|
return Context_None;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,5 +1,40 @@
|
||||||
#include "frame.h"
|
#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)
|
void frame_client_gravity(Frame *self, int *x, int *y)
|
||||||
{
|
{
|
||||||
/* horizontal */
|
/* horizontal */
|
||||||
|
|
|
@ -4,6 +4,28 @@
|
||||||
#include "geom.h"
|
#include "geom.h"
|
||||||
#include "client.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 {
|
typedef struct Frame {
|
||||||
Client *client;
|
Client *client;
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue