wmii/cmd/menu/dat.h

109 lines
1.3 KiB
C

#define _XOPEN_SOURCE 600
#define IXP_P9_STRUCTS
#define IXP_NO_P9_
#include <fmt.h>
#include <stdarg.h>
#include <stdbool.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <ixp.h>
#include <stuff/x.h>
#include <stuff/util.h>
#ifndef EXTERN
# define EXTERN extern
#endif
enum {
FORWARD,
BACKWARD,
LINE,
WORD,
CHAR,
CARET_LAST,
};
enum {
LACCEPT,
LBACKWARD,
LCHAR,
LCOMPLETE,
LDELETE,
LFIRST,
LFORWARD,
LHISTORY,
LKILL,
LLAST,
LLINE,
LLITERAL,
LNEXT,
LNEXTPAGE,
LPASTE,
LPREV,
LPREVPAGE,
LREJECT,
LWORD,
};
typedef struct Item Item;
struct Item {
char* string;
char* retstring;
Item* next_link;
Item* next;
Item* prev;
int len;
int width;
};
EXTERN struct {
char* string;
char* end;
char* pos;
char* pos_end;
int size;
char* filter;
int filter_start;
} input;
EXTERN struct {
Window* win;
Image* buf;
char* prompt;
int height;
int rows;
bool ontop;
Rectangle itemr;
Point arrow;
} menu;
extern char binding_spec[];
EXTERN IxpServer srv;
EXTERN struct {
Item* all;
Item* first;
Item* start;
Item* end;
Item* sel;
int maxwidth;
} match;
extern Font* font;
extern CTuple cnorm;
extern CTuple csel;
EXTERN Item hist;
EXTERN Item* histsel;
EXTERN int itempad;
EXTERN int result;
EXTERN char* (*find)(const char*, const char*);
EXTERN int (*compare)(const char*, const char*, size_t);