vimprobable/vimprobable.h

176 lines
4.5 KiB
C

/*
(c) 2009 by Leon Winter
(c) 2009, 2010 by Hannes Schueller
(c) 2009, 2010 by Matto Fransen
(c) 2010 by Hans-Peter Deifel
(c) 2010 by Thomas Adam
see LICENSE file
*/
/* macros */
#define LENGTH(x) (sizeof(x)/sizeof(x[0]))
/* enums */
enum { ModeNormal, ModePassThrough, ModeSendKey, ModeInsert, ModeHints }; /* modes */
enum { TargetCurrent, TargetNew }; /* target */
/* bitmask,
1 << 0: 0 = jumpTo, 1 = scroll
1 << 1: 0 = top/down, 1 = left/right
1 << 2: 0 = top/left, 1 = bottom/right
1 << 3: 0 = paging/halfpage, 1 = line
1 << 4: 0 = paging, 1 = halfpage aka buffer
*/
enum { ScrollJumpTo, ScrollMove };
enum { OrientationVert, OrientationHoriz = (1 << 1) };
enum { DirectionTop,
DirectionBottom = (1 << 2),
DirectionLeft = OrientationHoriz,
DirectionRight = OrientationHoriz | (1 << 2)
};
enum { UnitPage,
UnitLine = (1 << 3),
UnitBuffer = (1 << 4)
};
/* bitmask:
1 << 0: 0 = Reload/Cancel 1 = Forward/Back
Forward/Back:
1 << 1: 0 = Forward 1 = Back
Reload/Cancel:
1 << 1: 0 = Cancel 1 = Force/Normal Reload
1 << 2: 0 = Force Reload 1 = Reload
*/
enum { NavigationForwardBack = 1, NavigationReloadActions = (1 << 1) };
enum { NavigationCancel,
NavigationBack = (NavigationForwardBack | 1 << 1),
NavigationForward = (NavigationForwardBack),
NavigationReload = (NavigationReloadActions | 1 << 2),
NavigationForceReload = NavigationReloadActions
};
/* bitmask:
1 << 1: ClipboardPrimary (X11)
1 << 2: ClipboardGTK
1 << 3: 0 = SourceSelection 1 = SourceURL
*/
enum { ClipboardPrimary = 1 << 1, ClipboardGTK = 1 << 2 };
enum { SourceSelection, SourceURL = 1 << 3 };
/* bitmask:
1 << 0: 0 = ZoomReset 1 = ZoomIn/Out
1 << 1: 0 = ZoomOut 1 = ZoomIn
1 << 2: 0 = TextZoom 1 = FullContentZoom
*/
enum { ZoomReset,
ZoomOut,
ZoomIn = ZoomOut | (1 << 1)
};
enum { ZoomText, ZoomFullContent = (1 << 2) };
/* bitmask:
0 = Info, 1 = Warning, 2 = Error
1 << 2: 0 = AutoHide 1 = NoAutoHide
relevant for script:
1 << 3: 1 = Silent (no echo)
*/
enum { Info, Warning, Error, NoAutoHide = 1 << 2, Silent = 1 << 3 };
enum { NthSubdir, Rootdir };
enum { InsertCurrentURL = 1 };
enum { Increment, Decrement };
/* bitmask:
1 << 0: 0 = DirectionNext 1 = DirectionPrev (Relative)
1 << 0: 0 = DirectionBackwards 1 = DirectionForward (Absolute)
1 << 1: 0 = DirectionRelative 1 = DirectionAbsolute
1 << 2: 0 = CaseInsensitive 1 = CaseSensitive
1 << 3: 0 = No Wrapping 1 = Wrapping
*/
enum { DirectionRelative, DirectionAbsolute = 1 << 1 };
enum { DirectionNext, DirectionPrev, HideCompletion };
enum { DirectionBackwards = DirectionAbsolute, DirectionForward =
(1 << 0) | DirectionAbsolute };
enum { CaseInsensitive, CaseSensitive = 1 << 2 };
enum { Wrapping = 1 << 3 };
/* structs here */
typedef struct {
int i;
char *s;
} Arg;
typedef struct {
guint mask;
guint modkey;
guint key;
gboolean(*func) (const Arg * func);
Arg arg;
} Key;
typedef struct {
void *next;
Key Element;
} KeyList;
typedef struct {
guint mask;
guint modkey;
guint button;
gboolean(*func) (const Arg * arg);
const Arg arg;
} Mouse;
typedef struct {
char *name;
char (*var);
char *webkit;
gboolean intval;
gboolean boolval;
gboolean colourval;
gboolean reload;
} Setting;
typedef struct {
char *cmd;
gboolean(*func) (const Arg * arg);
const Arg arg;
} Command;
typedef struct {
char *handle;
char *uri;
} Searchengine;
struct map_pair {
char *line;
char what[20];
char value[240];
} my_pair;
typedef struct {
void *next;
char element[255];
} Listelement;
/* constants */
#define MOUSE_BUTTON_1 1
#define MOUSE_BUTTON_2 2
#define MOUSE_BUTTON_3 3
#define MOUSE_BUTTON_4 4
#define MOUSE_BUTTON_5 5
#define BUFFERSIZE 255
#define MAXTAGSIZE 200
/* bookmarks */
#define BOOKMARKS_STORAGE_FILENAME "%s/.config/vimprobable/bookmarks", getenv("HOME")
/* quickmarks */
#define QUICKMARK_FILE "%s/.config/vimprobable/quickmarks", getenv("HOME")
/* history */
#define HISTORY_MAX_ENTRIES 1000
#define HISTORY_STORAGE_FILENAME "%s/.config/vimprobable/history", getenv("HOME")
#define CLOSED_URL_FILENAME "%s/.config/vimprobable/closed", getenv("HOME")
/* Command size */
#define COMMANDSIZE 1024
/* completion list size */
#define MAX_LIST_SIZE 40