summaryrefslogtreecommitdiffstats
path: root/include/theme.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/theme.h')
-rw-r--r--include/theme.h46
1 files changed, 46 insertions, 0 deletions
diff --git a/include/theme.h b/include/theme.h
new file mode 100644
index 00000000..dae85d9c
--- /dev/null
+++ b/include/theme.h
@@ -0,0 +1,46 @@
+#ifndef THEME_H
+#define THEME_H
+#include <glib.h>
+typedef enum {
+ P_INTEGER,
+ P_FLOAT,
+ P_STRING,
+ P_BOOLEAN,
+ P_COLOR
+} PropertyType;
+
+typedef struct {
+ char *name;
+ PropertyType type;
+ union {
+ int i;
+ double f;
+ char *s;
+ int b;
+ unsigned int color;
+ } value;
+} Property;
+
+typedef struct _Widget {
+ char *name;
+
+ unsigned int num_widgets;
+ struct _Widget **widgets;
+
+ GHashTable *properties;
+
+ struct _Widget *parent;
+} Widget;
+
+extern Widget *rofi_theme;
+
+Widget *rofi_theme_find_or_create_class ( Widget *base, const char *class );
+
+
+void rofi_theme_print ( Widget *widget );
+
+Property *rofi_theme_property_create ( PropertyType type );
+void rofi_theme_property_free ( Property *p );
+void rofi_theme_free ( Widget * );
+void rofi_theme_parse_file ( const char *file );
+#endif