Add a new configuration for setting the default window size.
[vimprobable2.git] / vimprobable.h
blob5a6c2df6bfa630da6d4e9406d4daf218063fa83a
1 /*
2 (c) 2009 by Leon Winter
3 (c) 2009-2012 by Hannes Schueller
4 (c) 2009-2010 by Matto Fransen
5 (c) 2010-2011 by Hans-Peter Deifel
6 (c) 2010-2011 by Thomas Adam
7 see LICENSE file
8 */
10 /* macros */
11 #define LENGTH(x) (sizeof(x)/sizeof(x[0]))
13 /* enums */
14 enum { ModeNormal, ModePassThrough, ModeSendKey, ModeInsert, ModeHints }; /* modes */
15 enum { TargetCurrent, TargetNew }; /* target */
16 /* bitmask,
17 1 << 0: 0 = jumpTo, 1 = scroll
18 1 << 1: 0 = top/down, 1 = left/right
19 1 << 2: 0 = top/left, 1 = bottom/right
20 1 << 3: 0 = paging/halfpage, 1 = line
21 1 << 4: 0 = paging, 1 = halfpage aka buffer
23 enum { ScrollJumpTo, ScrollMove };
24 enum { OrientationVert, OrientationHoriz = (1 << 1) };
25 enum { DirectionTop,
26 DirectionBottom = (1 << 2),
27 DirectionLeft = OrientationHoriz,
28 DirectionRight = OrientationHoriz | (1 << 2)
30 enum { UnitPage,
31 UnitLine = (1 << 3),
32 UnitBuffer = (1 << 4)
34 /* bitmask:
35 1 << 0: 0 = Reload/Cancel 1 = Forward/Back
36 Forward/Back:
37 1 << 1: 0 = Forward 1 = Back
38 Reload/Cancel:
39 1 << 1: 0 = Cancel 1 = Force/Normal Reload
40 1 << 2: 0 = Force Reload 1 = Reload
42 enum { NavigationForwardBack = 1, NavigationReloadActions = (1 << 1) };
43 enum { NavigationCancel,
44 NavigationBack = (NavigationForwardBack | 1 << 1),
45 NavigationForward = (NavigationForwardBack),
46 NavigationReload = (NavigationReloadActions | 1 << 2),
47 NavigationForceReload = NavigationReloadActions
49 /* bitmask:
50 1 << 1: ClipboardPrimary (X11)
51 1 << 2: ClipboardGTK
52 1 << 3: SourceURL
53 1 << 4: SourceSelection
55 enum { ClipboardPrimary = 1 << 1, ClipboardGTK = 1 << 2 };
56 enum { SourceSelection = 1 << 4, SourceURL = 1 << 3 };
57 /* bitmask:
58 1 << 0: 0 = ZoomReset 1 = ZoomIn/Out
59 1 << 1: 0 = ZoomOut 1 = ZoomIn
60 1 << 2: 0 = TextZoom 1 = FullContentZoom
62 enum { ZoomReset,
63 ZoomOut,
64 ZoomIn = ZoomOut | (1 << 1)
66 enum { ZoomText, ZoomFullContent = (1 << 2) };
67 /* bitmask:
68 0 = Info, 1 = Warning, 2 = Error
69 1 << 2: 0 = AutoHide 1 = NoAutoHide
70 relevant for script:
71 1 << 3: 1 = Silent (no echo)
73 enum { Info, Warning, Error, NoAutoHide = 1 << 2, Silent = 1 << 3 };
74 enum { NthSubdir, Rootdir };
75 enum { InsertCurrentURL = 1 };
76 enum { Increment, Decrement };
77 /* bitmask:
78 1 << 0: 0 = DirectionNext 1 = DirectionPrev (Relative)
79 1 << 0: 0 = DirectionBackwards 1 = DirectionForward (Absolute)
81 1 << 1: 0 = DirectionRelative 1 = DirectionAbsolute
83 1 << 2: 0 = CaseInsensitive 1 = CaseSensitive
84 1 << 3: 0 = No Wrapping 1 = Wrapping
86 enum { DirectionRelative, DirectionAbsolute = 1 << 1 };
87 enum { DirectionNext, DirectionPrev, HideCompletion };
88 enum { DirectionBackwards = DirectionAbsolute, DirectionForward =
89 (1 << 0) | DirectionAbsolute };
90 enum { CaseInsensitive, CaseSensitive = 1 << 2 };
91 enum { Wrapping = 1 << 3 };
93 /* structs here */
94 typedef struct {
95 int i;
96 char *s;
97 } Arg;
99 typedef struct {
100 guint mask;
101 guint modkey;
102 guint key;
103 gboolean(*func) (const Arg * func);
104 Arg arg;
105 } Key;
107 typedef struct {
108 void *next;
109 Key Element;
110 } KeyList;
112 typedef struct {
113 guint mask;
114 guint modkey;
115 guint button;
116 gboolean(*func) (const Arg * arg);
117 const Arg arg;
118 } Mouse;
120 typedef struct {
121 char *name;
122 char (*var);
123 char *webkit;
124 gboolean intval;
125 gboolean boolval;
126 gboolean colourval;
127 gboolean reload;
128 } Setting;
130 typedef struct {
131 char *cmd;
132 gboolean(*func) (const Arg * arg);
133 const Arg arg;
134 } Command;
136 typedef struct {
137 char *handle;
138 char *uri;
139 } Searchengine;
141 typedef struct {
142 char *handle;
143 char *handler;
144 } URIHandler;
146 struct map_pair {
147 char *line;
148 char what[20];
149 char value[240];
150 } my_pair;
152 typedef struct {
153 void *next;
154 char element[255];
155 } Listelement;
157 enum ConfigFileError {
158 SUCCESS = 0,
159 FILE_NOT_FOUND = -1,
160 READING_FAILED = -2,
161 SYNTAX_ERROR = -3
164 /* constants */
165 #define MOUSE_BUTTON_1 1
166 #define MOUSE_BUTTON_2 2
167 #define MOUSE_BUTTON_3 3
168 #define MOUSE_BUTTON_4 4
169 #define MOUSE_BUTTON_5 5
170 #define BUFFERSIZE 255
171 #define MAXTAGSIZE 200
173 /* bookmarks */
174 #define BOOKMARKS_STORAGE_FILENAME "%s/vimprobable/bookmarks", config_base
176 /* quickmarks */
177 #define QUICKMARK_FILE "%s/vimprobable/quickmarks", config_base
179 /* history */
180 #define HISTORY_MAX_ENTRIES 1000
181 #define HISTORY_STORAGE_FILENAME "%s/vimprobable/history", config_base
182 #define CLOSED_URL_FILENAME "%s/vimprobable/closed", config_base
184 /* Command size */
185 #define COMMANDSIZE 1024
187 /* maximum size of internal string variable handled by :set
188 * if you set this to anything lower than 8, colour values
189 * will stop working */
190 #define MAX_SETTING_SIZE 1024
192 /* completion list size */
193 #define MAX_LIST_SIZE 40