]> Dogcows Code - chaz/openbox/commitdiff
use a context enum instead of quarks
authorDana Jansens <danakj@orodu.net>
Sat, 5 Apr 2003 17:22:01 +0000 (17:22 +0000)
committerDana Jansens <danakj@orodu.net>
Sat, 5 Apr 2003 17:22:01 +0000 (17:22 +0000)
engines/engineinterface.h
engines/openbox/obengine.c
openbox/frame.c
openbox/frame.h

index 5b9ec847b196bf81ce68596c7bd98f49ad221ee1..fd77ca291b7f930f9a85606f21238b5615bd9253 100644 (file)
@@ -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
index f98bb36c526b91a0e839e71cf31669e30138510e..4dda711e1cd03c8d50360aea32d72e7be31bde9e 100644 (file)
@@ -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");
-
-    return g_quark_try_string("none");
+    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 Context_None;
 }
index 2976ca2f298e855c594c6755dced0241117d1590..2064f304445ef6749621a7b88df023615a897c2d 100644 (file)
@@ -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 */
index ec530934aa5f9d28db761e306d70a4c3aba178c3..fb492d8cf59f46da9b9633a3f929b24392cddc53 100644 (file)
@@ -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;
 
This page took 0.0276 seconds and 4 git commands to generate.