Xforms4Perl

 view release on metacpan or  search on metacpan

X11/Xforms/Xforms.h  view on Meta::CPAN

 * The five Xforms-specific blessed objects
 */
typedef FL_FORM         FLForm;
typedef FL_OBJECT       FLObject;
typedef FL_IOPT 	FLOpt;
typedef FD_FSELECTOR 	FDFselector;
typedef FD_CMDLOG 	FDCmdlog;
typedef FL_EditKeymap 	FLEditKeymap;

/*
 * Mirror of FL_IOPT sturcture that gives the integers as an array
 * - obviously pretty vulnerable to changes!!!
 */

typedef struct
{
    float rgamma, ggamma, bgamma;
    int opt_int[23];
    char *rgbfile;		/* where RGB file is     */
    char vname[24];
} FL_IOPT_ARRAY;

/*
 * Mirror of FD_FSELECTOR sturcture that gives the objects as an array
 * - obviously pretty vulnerable to changes!!!
 */
typedef struct
{
    void *fsel_ob[11];
    FL_OBJECT *appbutt[3];
} FD_FSEL_ARRAY;

/*
 * Mirror of FD_CMDLOG sturcture that gives the objects as an array
 * - obviously pretty vulnerable to changes!!!
 */
typedef struct
{
    void *cmd_ob[4];
} FD_CMD_ARRAY;

/*
 * Mirror of FL_EditKeymap sturcture that gives the mappings as an array
 * - obviously pretty vulnerable to changes!!!
 */
typedef struct
{
	long	keymap_long[27];
} FL_KEYMAP_ARRAY;

/*
 * Mirror of FL_FORM structure that gives fields as arrays
 * - obviously pretty vulnerable to changes!!!
 */

typedef struct 
{
    void *fdui;			/* for fdesign              */
    void *u_vdata;		/* for application          */
#if FL_INCLUDE_VERSION >= 87
	char *u_cdata;
#endif
    long u_ldata;

    char *label;		/* window title             */
    unsigned long window;	/* X resource ID for window */
    FL_Coord	flf_flc[6];
    /* FL_Coord x, y, w, h;	/* current geometry info    */
    /* FL_Coord hotx, hoty;	/* hot-spot of the form     */

    FL_OBJECT *flf_flo[3];
    /*struct flobjs_ *first;
    struct flobjs_ *last;
    struct flobjs_ *focusobj;*/

    FL_FORMCALLBACKPTR form_callback;
    FL_FORM_ATACTIVATE activate_callback;
    FL_FORM_ATDEACTIVATE deactivate_callback;
    void *form_cb_data, *activate_data, *deactivate_data;

    FL_RAW_CALLBACK key_callback;
    FL_RAW_CALLBACK push_callback;
    FL_RAW_CALLBACK crossing_callback;
    FL_RAW_CALLBACK motion_callback;
    FL_RAW_CALLBACK all_callback;

    unsigned long compress_mask;
    unsigned long evmask;

    /* WM_DELETE_WINDOW message handler */
    FL_FORM_ATCLOSE close_callback;
    void *close_data;

    void *flpixmap;		/* back buffer             */

    unsigned long icon_pixmap;
    unsigned long icon_mask;

    /* interaction and other flags */
    int flf_int[10];
/*    int vmode;			/* current X visual class  */
/*    int deactivated;		/* true if sensitive       */
/*    int use_pixmap;		/* true if dbl buffering   */
/*    int frozen;			/* true if sync change     */
/*    int visible;		/* true if mapped          */
/*    int wm_border;		/* window manager info     */
/*    unsigned int prop;		/* other attributes        */
/*    int has_auto;		/*	*/
/*    int top;			/*	*/
/*    int sort_of_modal;		/* internal use.           */
#if FL_INCLUDE_VERSION >= 87
    struct forms_ *parent;
    struct forms_ *child;
    struct flobjs_ *parent_obj;
    int reserved[10];           /* future use              */
#else
    int reserved[12];           /* future use              */
#endif
} FLF_ARRAY;

/*
 * Mirror of FL_OBJECT structure that gives fields as arrays
 * - obviously pretty vulnerable to changes!!!
 */

typedef struct
{
    struct forms_ *form;	/* the form this object belong        */
    void *u_vdata;		/* anything user likes                */
#if FL_INCLUDE_VERSION >= 87
	char *u_cdata;
#endif
    long u_ldata;		/* anything user lines                */

    int flo_int2[3];
/*    int objclass;		/* class of object, button, slider etc */
/*    int type;			/* type within the class              */
/*    int boxtype;		/* what kind of box type              */
    FL_Coord flo_flc[5];
/*    FL_Coord x, y, w, h;	/* obj. location and size             */
/*    FL_Coord bw;*/
    FL_COLOR col1, col2;	/* colors of obj                      */
    char *label;		/* object label                       */
    FL_COLOR lcol;		/* label color                        */
    int flo_int1[3];
/*    int align;*/
/*    int lsize, lstyle;		/* label size and style               */
    long *shortcut;

    int (*handle) (struct flobjs_ *, int, FL_Coord, FL_Coord, int, void *);
    void (*object_callback) (struct flobjs_ *, long);
    long argument;
    void *spec;			/* instantiation                      */

    int (*prehandle) (struct flobjs_ *, int, FL_Coord, FL_Coord, int, void *);
    int (*posthandle) (struct flobjs_ *, int, FL_Coord, FL_Coord, int, void *);

    /* re-configure preference */
    unsigned int flo_ui[3];
/*    unsigned int resize;	/* what to do if WM resizes the FORM     */
/*    unsigned int nwgravity;	/* how to re-position top-left corner    */
/*    unsigned int segravity;	/* how to re-position lower-right corner */

	struct flobjs_ *flo_obj[5];
/*    struct flobjs_ *prev;	/* prev. obj in form                  */
/*    struct flobjs_ *next;	/* next. obj in form                  */

/*    struct flobjs_ *parent;	*/
/*    struct flobjs_ *child;	*/
/*    struct flobjs_ *nc;		*/


    int is_child;

    void *flpixmap;		/* pixmap double buffering stateinfo   */
    int	flo_int[13];
/*    int use_pixmap;		/* true to use pixmap double buffering */

    /* some interaction flags */
/*    int double_buffer;		/* only used by mesa/gl canvas         */
/*    int pushed;*/
/*    int focus;*/
/*    int belowmouse;*/
/*    int active;			/* if accept event */
/*    int input;*/
/*    int wantkey;*/
/*    int radio;*/
/*    int automatic;*/
/*    int redraw;*/
/*    int visible;*/
/*    int clip;*/
    unsigned long click_timeout;
    void *c_vdata;		/* for class use  */
#if FL_INCLUDE_VERSION >= 87
	char *c_cdata;		/* for class use  */
#endif
    long c_ldata;		/* for class use  */
#if FL_INCLUDE_VERSION >= 87
    unsigned int spec_size;	/* for internal use         */
    FL_COLOR aux_col1, aux_col2;/* aux colors               */
    FL_COLOR dbl_background;    /* double buffer background */
	int how_return;
#endif
    int reserved[6];           /* for future use */

} FLO_ARRAY;

/*
 * The form callback data structure
 */
typedef struct _form_data {
	SV *	po;
	void *  u_vdata;
	SV *	fd_rawcallback;
	SV *	fd_fselcallback;
	SV * 	fd_callback;
	SV *	fd_atactivate;
	SV *	fd_atdeactivate;
	SV *	fd_atclose;
} form_data;

/*
 * The form callback data structure as an array
 */
typedef struct _fd_array {
	SV *	po;
	void *  u_vdata;
	SV *	fd_rawcallback;
	SV *	fd_fselcallback;
	SV * 	cb_ptr[4];
} fd_array;

/*
 * Pup callback logging blocks
 */
typedef struct _pupi_cb {
	struct _pupi_cb *next;
	int 	id;
	SV *	cb;
} pupi_cb;

typedef struct _pupm_cb {
	struct _pupm_cb *next;
	int 	id;
	SV *	cb;
	SV *	ecb;
	SV *	lcb;
	pupi_cb *items;
	
} pupm_cb;

/*
 * Block for recording xyplot overlay data. Used in co-ordinating
 * _add_..._overlay and _get_..._overlay functions
 */



( run in 0.655 second using v1.01-cache-2.11-cpan-39bf76dae61 )