rofi/include/rofi.h

109 lines
2.6 KiB
C
Raw Normal View History

#ifndef __SIMPLESWITCHER_H__
#define __SIMPLESWITCHER_H__
2014-03-18 09:55:25 +00:00
#include <config.h>
#include <X11/X.h>
2014-01-25 22:37:37 +00:00
#define MAX(a, b) ((a) > (b) ? (a) : (b))
#define MIN(a, b) ((a) < (b) ? (a) : (b))
#define NEAR(a,o,b) ((b) > (a)-(o) && (b) < (a)+(o))
#define OVERLAP(a,b,c,d) (((a)==(c) && (b)==(d)) || MIN((a)+(b), (c)+(d)) - MAX((a), (c)) > 0)
#define INTERSECT(x,y,w,h,x1,y1,w1,h1) (OVERLAP((x),(w),(x1),(w1)) && OVERLAP((y),(h),(y1),(h1)))
2014-01-25 22:37:37 +00:00
extern const char *cache_dir;
2014-03-18 09:38:30 +00:00
#ifdef HAVE_I3_IPC_H
2014-01-26 14:39:50 +00:00
extern char *i3_socket_path;
#endif
typedef enum {
WINDOW_SWITCHER,
RUN_DIALOG,
2014-01-21 09:01:55 +00:00
SSH_DIALOG,
2014-01-22 08:24:31 +00:00
NUM_DIALOGS,
2014-01-29 23:47:23 +00:00
DMENU_DIALOG,
2014-01-22 08:24:31 +00:00
MODE_EXIT,
NEXT_DIALOG
} SwitcherMode;
typedef enum {
MENU_OK = 0,
MENU_CANCEL = -1,
MENU_NEXT = -2,
MENU_CUSTOM_INPUT = -3,
MENU_ENTRY_DELETE = -4
} MenuReturn;
2014-01-26 11:59:10 +00:00
2014-01-21 09:13:42 +00:00
typedef int ( *menu_match_cb )( char **tokens, const char *input, int index, void *data );
MenuReturn menu( char **lines, char **input, char *prompt,
Time *time, int *shift,
menu_match_cb mmc, void *mmc_data,
int *selected_line );
/**
* Allocator wrappers
*/
2014-03-11 19:16:44 +00:00
void* allocate( unsigned long bytes ) __attribute__((malloc));
void* allocate_clear( unsigned long bytes );
void* reallocate( void *ptr, unsigned long bytes );
void catch_exit( __attribute__( ( unused ) ) int sig );
2014-01-23 10:39:12 +00:00
typedef enum _WindowLocation {
2014-03-18 09:55:25 +00:00
WL_CENTER = 0,
WL_NORTH_WEST = 1,
WL_NORTH = 2,
WL_NORTH_EAST = 3,
WL_EAST = 4,
WL_EAST_SOUTH = 5,
WL_SOUTH = 6,
WL_SOUTH_WEST = 7,
WL_WEST = 8
} WindowLocation;
2014-01-26 11:59:10 +00:00
typedef enum {
VERTICAL = 0,
HORIZONTAL = 1
} WindowMode;
2014-01-23 10:39:12 +00:00
/**
* Settings
*/
typedef struct _Settings {
// Window settings
2014-01-26 11:59:10 +00:00
unsigned int window_opacity;
2014-01-23 10:39:12 +00:00
// Menu settings
2014-01-26 11:59:10 +00:00
unsigned int menu_bw;
unsigned int menu_width;
unsigned int menu_lines;
char * menu_font;
char * menu_fg;
char * menu_bg;
char * menu_hlfg;
char * menu_hlbg;
char * menu_bc;
2014-01-23 10:39:12 +00:00
// Behavior
2014-01-26 11:59:10 +00:00
unsigned int zeltak_mode;
char * terminal_emulator;
2014-03-18 09:38:30 +00:00
#ifdef HAVE_I3_IPC_H
2014-01-26 11:59:10 +00:00
unsigned int i3_mode;
2014-03-02 11:53:06 +00:00
#endif
2014-01-23 10:39:12 +00:00
// Key bindings
2014-01-26 11:59:10 +00:00
char * window_key;
char * run_key;
char * ssh_key;
WindowLocation location;
WindowMode wmode;
unsigned int padding;
2014-01-23 10:39:12 +00:00
} Settings;
extern Settings config;
2014-02-03 21:49:07 +00:00
int token_match ( char **tokens, const char *input,
__attribute__( ( unused ) )int index,
__attribute__( ( unused ) )void *data );
#endif