Introduce new data structure for handling settings

This commit is contained in:
Quentin Rameau 2015-11-29 17:16:48 +01:00
parent d04fb9bff3
commit 2aa1c38aed
1 changed files with 38 additions and 2 deletions

40
surf.c
View File

@ -31,18 +31,42 @@
#define LENGTH(x) (sizeof(x) / sizeof(x[0]))
#define CLEANMASK(mask) (mask & (MODKEY|GDK_SHIFT_MASK))
#define SETB(p, s) [p] = (Parameter){ { .b = s }, }
#define SETI(p, s) [p] = (Parameter){ { .i = s }, }
#define SETV(p, s) [p] = (Parameter){ { .v = s }, }
#define SETF(p, s) [p] = (Parameter){ { .f = s }, }
#define FSETB(p, s) [p] = (Parameter){ { .b = s }, 1 }
#define FSETI(p, s) [p] = (Parameter){ { .i = s }, 1 }
#define FSETV(p, s) [p] = (Parameter){ { .v = s }, 1 }
#define FSETF(p, s) [p] = (Parameter){ { .f = s }, 1 }
enum { AtomFind, AtomGo, AtomUri, AtomLast };
enum {
typedef enum {
CaretBrowsing,
CookiePolicies,
DiskCache,
DNSPrefetch,
FontSize,
FrameFlattening,
Geolocation,
HideBackground,
Inspector,
JavaScript,
KioskMode,
LoadImages,
Plugins,
PreferredLanguages,
RunInFullscreen,
ScrollBars,
};
ShowIndicators,
SpellChecking,
SpellLanguages,
StrictSSL,
Style,
ZoomLevel,
ParameterLast,
} ParamName;
enum {
OnDoc = WEBKIT_HIT_TEST_RESULT_CONTEXT_DOCUMENT,
@ -58,9 +82,15 @@ enum {
typedef union {
int b;
int i;
float f;
const void *v;
} Arg;
typedef struct {
Arg val;
int force;
} Parameter;
typedef struct Client {
GtkWidget *win;
WebKitWebView *view;
@ -91,6 +121,12 @@ typedef struct {
unsigned int stopevent;
} Button;
typedef struct {
const char *uri;
Parameter config[ParameterLast];
regex_t re;
} UriParameters;
typedef struct {
char *regex;
char *style;