1#if ! defined(APPLICATION_NAME) 2#define APPLICATION_NAME "@PROG_N@" 3#endif 4 5#if ! defined(APPLICATION_EXEC) 6#define APPLICATION_EXEC "@PROG_X@" 7#endif 8 9#define APPLICATION_YEAR "@PROG_Y@" 10#define APPLICATION_VERSION "@PROG_V@" 11#define APPLICATION_COPYRIGHT "Jani Salonen <" PACKAGE_BUGREPORT ">" 12 13/* Static definitions, no user serviceable parts below this */ 14#define IS_NO 0 15#define IS_YES 1 16#define IS_MAYBE 2 17 18#define CHARSET_DEFAULT "UTF-8" 19#define CHARSET_DEFAULT_SIZE 5 20 21#define APPRES_FILE APPLICATION_EXEC ".res" 22#define CONFIG_FILE APPLICATION_EXEC ".conf" 23 24#define CONFIG_LINE_FEED 10 25#define CONFIG_PATH_DELIM '/' 26 27#define CONFIG_OPTION_NOTREQUIRED IS_NO /* Config parameter is required or not */ 28#define CONFIG_OPTION_REQUIRED IS_YES 29 30#define CONFIG_OPTION_LOOSE IS_NO /* Config parameter is secure or not */ 31#define CONFIG_OPTION_SECURE IS_YES 32 33#define CONFIG_TYPE_BOOLEAN 1 /* Config types */ 34#define CONFIG_TYPE_INTEGER 2 35#define CONFIG_TYPE_FLOAT 3 36#define CONFIG_TYPE_STRING 4 37#define CONFIG_TYPE_COLOR 5 38 39#define CONFIG_TYPE_BOOLEAN_NO IS_NO /* Config boolean bits */ 40#define CONFIG_TYPE_BOOLEAN_YES IS_YES 41 42#define DIR_PLACE_PRE "@prefix@" /* Static directory paths */ 43#define DIR_PLACE_BIN BINDIR "/" APPLICATION_EXEC 44 45#define DIR_PLACE_CONFS_1 "~/." APPLICATION_EXEC 46#define DIR_PLACE_CONFS_2 "$XDG_CONFIG_HOME" 47#define DIR_PLACE_CONFS_3 "$XDG_CONFIG_HOME/" APPLICATION_EXEC 48#define DIR_PLACE_CONFS_4 "~/.config" 49#define DIR_PLACE_CONFS_5 "~/.config/" APPLICATION_EXEC 50#define DIR_PLACE_CONFS_6 "$" APPLICATION_EXEC "_HOME/etc" 51#define DIR_PLACE_CONFS_7 ETCDIR 52 53#define DIR_PLACE_FONTS_1 "~/.fonts" 54#define DIR_PLACE_FONTS_2 "~/." APPLICATION_EXEC "/fonts" 55#define DIR_PLACE_FONTS_3 "$XDG_DATA_HOME/" APPLICATION_EXEC "/fonts" 56#define DIR_PLACE_FONTS_4 "$XDG_DATA_HOME/detroit/fonts" 57#define DIR_PLACE_FONTS_5 "~/.local/share/" APPLICATION_EXEC "/fonts" 58#define DIR_PLACE_FONTS_6 "~/.local/share/detroit/fonts" 59#define DIR_PLACE_FONTS_7 "$" APPLICATION_EXEC "_HOME/share/" APPLICATION_EXEC "/fonts" 60#define DIR_PLACE_FONTS_8 "$" APPLICATION_EXEC "_HOME/share/detroit/fonts" 61#define DIR_PLACE_FONTS_9 SHRDIR "/" APPLICATION_EXEC "/fonts" 62#define DIR_PLACE_FONTS_10 SHRDIR "/detroit/fonts" 63 64#define DIR_PLACE_WIDGETS_1 "." 65#define DIR_PLACE_WIDGETS_2 "~/." APPLICATION_EXEC "/widgets" 66#define DIR_PLACE_WIDGETS_3 "$XDG_DATA_HOME/" APPLICATION_EXEC "/widgets" 67#define DIR_PLACE_WIDGETS_4 "$XDG_DATA_HOME/detroit/widgets" 68#define DIR_PLACE_WIDGETS_5 "~/.local/share/" APPLICATION_EXEC "/widgets" 69#define DIR_PLACE_WIDGETS_6 "~/.local/share/detroit/widgets" 70#define DIR_PLACE_WIDGETS_7 "$" APPLICATION_EXEC "_HOME/share/" APPLICATION_EXEC "/widgets" 71#define DIR_PLACE_WIDGETS_8 "$" APPLICATION_EXEC "_HOME/share/detroit/widgets" 72#define DIR_PLACE_WIDGETS_9 SHRDIR "/" APPLICATION_EXEC "/widgets" 73#define DIR_PLACE_WIDGETS_10 SHRDIR "/detroit/widgets" 74 75#define DIR_PLACE_BOBS_1 "." 76#define DIR_PLACE_BOBS_2 "~/." APPLICATION_EXEC "/bobs" 77#define DIR_PLACE_BOBS_3 "$XDG_DATA_HOME/" APPLICATION_EXEC "/bobs" 78#define DIR_PLACE_BOBS_4 "$XDG_DATA_HOME/detroit/bobs" 79#define DIR_PLACE_BOBS_5 "~/.local/share/" APPLICATION_EXEC "/bobs" 80#define DIR_PLACE_BOBS_6 "~/.local/share/detroit/bobs" 81#define DIR_PLACE_BOBS_7 "$" APPLICATION_EXEC "_HOME/share/" APPLICATION_EXEC "/bobs" 82#define DIR_PLACE_BOBS_8 "$" APPLICATION_EXEC "_HOME/share/detroit/bobs" 83#define DIR_PLACE_BOBS_9 SHRDIR "/" APPLICATION_EXEC "/bobs" 84#define DIR_PLACE_BOBS_10 SHRDIR "/detroit/bobs" 85 86#if defined(HAVE_PATHS_H) && defined(_PATH_TMP) 87#define DIR_PLACE_TEMP _PATH_TMP 88#else 89#define DIR_PLACE_TEMP "/tmp" 90#endif 91 92#define ERROR_NOERROR 1 /* Error severity levels */ 93#define ERROR_SLIGHT 2 94#define ERROR_FATAL 3 95 96#define LOCK_LIBTOOL 0 /* Lockable subsystems and parts */ 97#define LOCK_PARTS 1 98 99#define THREAD_STATE_STOP 0 /* Thread states */ 100#define THREAD_STATE_RUN 1 101#define THREAD_STATE_IDLE 2 102#define THREAD_STATE_BORN 3 103 104#define THREAD_TERM_SELF 0 /* Thread likes to term by itself */ 105#define THREAD_TERM_CANCEL 1 /* Thread likes to term by pthread_cancel() */ 106 107#define THREAD_NUMA_POLICY_NONE 0 /* Numa policies */ 108#define THREAD_NUMA_POLICY_ROUND_ROBIN 1 109#define THREAD_NUMA_POLICY_FIXED_DOMAIN 2 110#define THREAD_NUMA_POLICY_FIXED_DOMAIN_ROUND_ROBIN 3 111#define THREAD_NUMA_POLICY_FIRST_TOUCH 4 112#define THREAD_NUMA_POLICY_FIRST_TOUCH_ROUND_ROBIN 5 113 114#define TIMER_RESOLUTION_THREADAGAIN (1000000 * 1000) / 1000 /* Timer delays for general use */ 115#define TIMER_RESOLUTION_VERYFAST (1000000 * 1000) / 10000 116 117#define FILE_FLAG_SILENT 0x1 /* File open flags */ 118#define FILE_FLAG_NOCOMPRESS 0x2 119 120#define FILE_MODE_READ "r" /* File open modes (man 3 fopen) */ 121#define FILE_MODE_READ_AND_WRITE "r+" 122#define FILE_MODE_WRITE_AND_TRUNCATE "w" 123#define FILE_MODE_READ_AND_WRITE_AND_TRUNCATE "w+" 124#define FILE_MODE_APPEND "a" 125#define FILE_MODE_READ_AND_APPEND "a+" 126 127#define IMAGE_FORMAT_NONE 0 /* Image types supported at the moment */ 128#define IMAGE_FORMAT_BMP 1 129#define IMAGE_FORMAT_CEL 2 130#define IMAGE_FORMAT_PIX 3 131#define IMAGE_FORMAT_PPM 4 132#define IMAGE_FORMAT_RAS 5 133#define IMAGE_FORMAT_RGB 6 134#define IMAGE_FORMAT_RLA 7 135#define IMAGE_FORMAT_SVG 8 136#define IMAGE_FORMAT_TGA 9 137 138#define STRING_ASCII 0 /* String types for string length functions */ 139#define STRING_UTF8 1 140#define STRING_UTF32 2 141 142#define WINDOW_COMMAND_NONE 0 /* Window spooled commands */ 143#define WINDOW_COMMAND_DRAW_PIXEL 1 144#define WINDOW_COMMAND_DRAW_PIXEL_ALPHA 2 145#define WINDOW_COMMAND_DRAW_PIXELS 3 146#define WINDOW_COMMAND_DRAW_PIXELS_ALPHA 4 147#define WINDOW_COMMAND_DRAW_SUBPIXEL 5 148#define WINDOW_COMMAND_DRAW_SUBPIXEL_ALPHA 6 149#define WINDOW_COMMAND_DRAW_SUBPIXELS 7 150#define WINDOW_COMMAND_DRAW_SUBPIXELS_ALPHA 8 151#define WINDOW_COMMAND_DRAW_LINE 9 152#define WINDOW_COMMAND_DRAW_LINE_AA 10 153#define WINDOW_COMMAND_DRAW_LINE_ALPHA 11 154#define WINDOW_COMMAND_DRAW_LINES 12 155#define WINDOW_COMMAND_DRAW_LINES_AA 13 156#define WINDOW_COMMAND_DRAW_LINES_ALPHA 14 157#define WINDOW_COMMAND_DRAW_CIRCLE 15 158#define WINDOW_COMMAND_DRAW_CIRCLE_AA 16 159#define WINDOW_COMMAND_DRAW_CIRCLE_ALPHA 17 160#define WINDOW_COMMAND_DRAW_CIRCLES 18 161#define WINDOW_COMMAND_DRAW_CIRCLES_AA 19 162#define WINDOW_COMMAND_DRAW_CIRCLES_ALPHA 20 163#define WINDOW_COMMAND_DRAW_TEXT 21 164#define WINDOW_COMMAND_DRAW_TEXTS 22 165#define WINDOW_COMMAND_DRAW_SET 23 166#define WINDOW_COMMAND_DRAW_SET_ALPHA 24 167#define WINDOW_COMMAND_DRAW_BORDER 25 168#define WINDOW_COMMAND_DRAW_BORDER_ALPHA 26 169#define WINDOW_COMMAND_DRAW_COPY 27 170#define WINDOW_COMMAND_DRAW_COPY_ALPHA 28 171#define WINDOW_COMMAND_DRAW_WIPE 29 172#define WINDOW_COMMAND_WINDOW_OPEN 30 173#define WINDOW_COMMAND_WINDOW_ICON 31 174#define WINDOW_COMMAND_WINDOW_CLOSE 32 175#define WINDOW_COMMAND_WINDOW_MAP 33 176#define WINDOW_COMMAND_WINDOW_UNMAP 34 177#define WINDOW_COMMAND_WINDOW_SET_ATTRS 35 178#define WINDOW_COMMAND_WINDOW_REFRESH 36 179#define WINDOW_COMMAND_BOBS 37 180 181#define CONST_FLOAT_EQUALS 0.0000000000001 /* Difference when two floats are considered as equal */ 182 183/* Math constants */ 184#define CONST_PI 3.14159265358979323846264338327950288419716 185#define CONST_PI_2 CONST_PI * 2.0 186#define CONST_PI_4 CONST_PI * 4.0 187 188#define CONST_SQRT_1_2 0.70710678118654752440 189#define CONST_SQRT_2_PI 1.12837916709551257390 190 191/* Compiler stuff */ 192#if defined(__STDC__) 193#define C89 194#if defined(__STDC_VERSION__) 195#define C90 196#if (__STDC_VERSION__ >= 199409L) 197#define C94 198#endif 199#if (__STDC_VERSION__ >= 199901L) 200#define C99 201#endif 202#endif 203#endif 204 205#ifndef __func__ 206#if (__STDC_VERSION__ < 199901L) 207#if (__GNUC__ >= 2) 208#define __func__ __FUNCTION__ 209#else 210#define __func__ "<unknown>" 211#endif 212#endif 213#endif 214