dockapps/wmbutton/wmbutton.h

108 lines
3.7 KiB
C
Raw Normal View History

/* wmbutton.h - Edward H. Flora - ehf_dockapps@cox.net */
/* Last Modified 3/27/04 */
/****** Include Files ***************************************************/
#include <X11/Xlib.h>
#include <X11/Xutil.h>
#include <X11/xpm.h>
#include <X11/extensions/shape.h>
#include <X11/keysym.h>
#include <math.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
#include <sys/time.h>
#include <unistd.h>
/****** Define Config File Info ***************************************/
#define CONFFILENAME "/.wmbutton" /* Default conf filename $HOME/.wmbutton */
#define CONFIGGLOBAL "/etc/wmbutton.conf" /* system configuration */
#define BUTTONFILENAME "/.wmbutton.xpm"
/****** Version Number *************************************************/
#define VER_STR "0.6.1" /* Version Number String */
/****** Define Error Codes *********************************************/
#define FAILDISP 20
#define FAILSWIN 21
#define FAILICON 22
#define FAILXPM 23
#define FAILWNAM 24
#define FAILGC 25
#define FAILCONF 26
#define FAILTMPL 27
#define FAILVIS 28
#define FAILBUT 29
/****** Define Other Options ****************************************/
#define VERB 0 /* Enable=1, Disable=0: Debugging (verbose) Mode*/
#define MIDMOUSE 1 /* Define Middle Mouse functionality */
#define LMASK 0 /* left button mask: run app # mask + button #*/
#define MMASK 10 /* middle button mask: run app # mask + button #*/
#define RMASK 20 /* right button mask: run app # mask + button #*/
#define NUMB_OF_APPS 9 /* Define number of apps */
#define EOLN '\n' /* Defines the new line character */
#define SIZE1 20 /* Defines the increment to increase the */
/* string by until a newline of EOF is found */
/****** Defines for Tool Tips ***************************************/
#define TOOLTIP_SUPPORT 1
#define TOOLTIP_FONT "-*-helvetica-medium-r-normal-*-10-*-*-*-*-*-*-*"
#define TOOLTIP_FONT_LEN 128
#define TOOLTIP_SHOW_DELAY 750
#define TOOLTIP_RESHOW_DELAY 1500
#define TOOLTIP_SPACE 12
#define TOOLTIP_TOP 0
#define TOOLTIP_BOTTOM 1
#define TOOLTIP_LEFT 0
#define TOOLTIP_RIGHT 2
#define BUTTON_SIZE 18
#define BUTTON_COLS 3
#define BUFFER_SIZE 1024
/****** Typedefs *******************************************/
struct Config_t {
char *configfile;
char *buttonfile;
char *Geometry_str;
char *Display_str;
int mmouse;
int Verbose;
char* szTooltipFont;
int bTooltipSwapColors;
int bTooltipDisable;
};
/****** Function Prototyes *******************************************/
void RunAppN(int app); // function to run app N as found in conf file
char *Parse(int app); // parse data in config file
void parseargs(int argc, char **argv);
char *readln(FILE *fp); // read line from file, return pointer to it
void err_mess(int err, char *str); // Error Handling Routine
void show_usage(void); // show usage message to stderr
int flush_expose(Window w);
/****** Tooltip Function Prototypes **********************************/
void initTooltip();
void destroyTooltip ();
int hasTooltipSupport ();
void showTooltip (int nButton, int nMouseX, int nMouseY);
void hideTooltip ();
int hasTooltip ();
void drawTooltipBalloon (Pixmap pix, GC gc, int x, int y, int w, int h, int side);
Pixmap createTooltipPixmap (int width, int height, int side, Pixmap *mask);
void initTime ();
long currentTimeMillis ();
void getWindowOrigin (Window w, int* nX, int* nY);
void getButtonLocation (int nButton, int* nLocationX, int* nLocationY);
char *getButtonAppNames (int nButton);
/**********************************************************************/