Blame lib/Xm/IconButtonP.h

Packit b099d7
/*
Packit b099d7
 * Motif
Packit b099d7
 *
Packit b099d7
 * Copyright (c) 1987-2012, The Open Group. All rights reserved.
Packit b099d7
 *
Packit b099d7
 * These libraries and programs are free software; you can
Packit b099d7
 * redistribute them and/or modify them under the terms of the GNU
Packit b099d7
 * Lesser General Public License as published by the Free Software
Packit b099d7
 * Foundation; either version 2 of the License, or (at your option)
Packit b099d7
 * any later version.
Packit b099d7
 *
Packit b099d7
 * These libraries and programs are distributed in the hope that
Packit b099d7
 * they will be useful, but WITHOUT ANY WARRANTY; without even the
Packit b099d7
 * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
Packit b099d7
 * PURPOSE. See the GNU Lesser General Public License for more
Packit b099d7
 * details.
Packit b099d7
 *
Packit b099d7
 * You should have received a copy of the GNU Lesser General Public
Packit b099d7
 * License along with these librararies and programs; if not, write
Packit b099d7
 * to the Free Software Foundation, Inc., 51 Franklin Street, Fifth
Packit b099d7
 * Floor, Boston, MA 02110-1301 USA
Packit b099d7
 * 
Packit b099d7
 */
Packit b099d7
Packit b099d7
#ifndef _XmIconButtonP_h
Packit b099d7
#define _XmIconButtonP_h
Packit b099d7
Packit b099d7
Packit b099d7
/************************************************************
Packit b099d7
*	INCLUDE FILES
Packit b099d7
*************************************************************/
Packit b099d7
#include <Xm/PrimitiveP.h>
Packit b099d7
#include <Xm/IconButton.h>
Packit b099d7
#include <Xm/XmP.h>
Packit b099d7
Packit b099d7
#ifdef __cplusplus
Packit b099d7
extern "C" {
Packit b099d7
#endif
Packit b099d7
Packit b099d7
/************************************************************
Packit b099d7
*	TYPEDEFS AND DEFINES
Packit b099d7
*************************************************************/
Packit b099d7
Packit b099d7
#define XmIconButtonIndex (XmPrimitiveIndex + 1)
Packit b099d7
Packit b099d7
/************************************************************
Packit b099d7
*	MACROS
Packit b099d7
*************************************************************/
Packit b099d7
Packit b099d7
/************************************************************
Packit b099d7
*	GLOBAL DECLARATIONS
Packit b099d7
*************************************************************/
Packit b099d7
Packit b099d7
typedef struct {
Packit b099d7
    XtPointer extension;	/* Just in case we need it later. */
Packit b099d7
} XmIconButtonClassPart;
Packit b099d7
Packit b099d7
typedef struct _XmIconButtonClassRec {
Packit b099d7
    CoreClassPart		core_class;
Packit b099d7
    XmPrimitiveClassPart	primitive_class;
Packit b099d7
    XmIconButtonClassPart	        icon_class;
Packit b099d7
} XmIconButtonClassRec;
Packit b099d7
Packit b099d7
typedef struct {
Packit b099d7
    /* resources */
Packit b099d7
Packit b099d7
    String label;		/* The label to display. */
Packit b099d7
    Pixmap pixmap;		/* The pixmap to display. */
Packit b099d7
    Pixel arm_color;		/* The color to arm this widget with. */
Packit b099d7
    XmFontList font_list;	/* The font in MOTIF(tm) format. */
Packit b099d7
    XmIconPlacement icon_placement; /* Where to place the icon label. */
Packit b099d7
    Boolean recompute;		/* Whether to recompute size every time. */
Packit b099d7
    Boolean set;		/* State of the button. */
Packit b099d7
    Boolean armed;		/* Armed value for button. */
Packit b099d7
Packit b099d7
    Dimension v_space;		/* The amount of space between the edges */
Packit b099d7
    Dimension h_space;		/* of the widget and the picture/text. */
Packit b099d7
Packit b099d7
    Dimension icon_text_padding; /* padding between the icon and the text. */
Packit b099d7
Packit b099d7
    XtCallbackList activate_callback; /* Called when I am selected */
Packit b099d7
    XtCallbackList double_click_callback; /* Called when I am 2 clicked. */
Packit b099d7
Packit b099d7
    /*
Packit b099d7
     * Added in 1.2 for I18N.
Packit b099d7
     */
Packit b099d7
Packit b099d7
    XmString label_string;	/* The label stored as an XmString. */
Packit b099d7
    unsigned char string_direction;
Packit b099d7
    unsigned char alignment;
Packit b099d7
Packit b099d7
    /* private state */
Packit b099d7
Packit b099d7
    Position pix_x, pix_y;	/* Location of the pixmap. */
Packit b099d7
Packit b099d7
    /* public state */
Packit b099d7
    Dimension pix_width, pix_height; /* size of the pixmap. */
Packit b099d7
    Dimension pix_depth;	/* Depth of the pixmap. */
Packit b099d7
Packit b099d7
    /* private state */
Packit b099d7
    Position text_x, text_y;	/* Location to begin drawing text. */
Packit b099d7
    Dimension max_text_width;	/* maximum space the text can take up. */
Packit b099d7
    Dimension max_text_height;	/* maximum vertical space for the text */
Packit b099d7
Packit b099d7
    XtIntervalId unset_timer;	/* The arm and activate timer. */
Packit b099d7
    GC gc;			/* The graphics context. */
Packit b099d7
    GC fill_gc;			/* The gc for filling on the arm. */
Packit b099d7
    GC pixmap_fill_gc;		/* The gc for drawing the pixmap when
Packit b099d7
				   the button is filled. */
Packit b099d7
Packit b099d7
    GC stippled_text_gc;	/* GC to use stippling text. */
Packit b099d7
    GC stippled_set_text_gc;	/* GC to use for stip. text in a set button. */
Packit b099d7
    GC stippled_set_gc;		/* GC to use for images when toggle is set. */
Packit b099d7
    GC stippled_unset_gc;	/* GC to use for images when toggle is unset.*/
Packit b099d7
Packit b099d7
    Time time;			/* The server time of the last button click. */
Packit b099d7
Packit b099d7
    Boolean label_from_name;
Packit b099d7
    Boolean check_set_render_table;
Packit b099d7
#ifdef FIX_1381
Packit b099d7
		GC shadow_gc;			/* GC to use shadow for text. */
Packit b099d7
#endif
Packit b099d7
Packit b099d7
Packit b099d7
} XmIconButtonPart;
Packit b099d7
Packit b099d7
#define XmIconButton_label(w) (((XmIconButtonWidget)(w))->icon.label)
Packit b099d7
#define XmIconButton_pixmap(w) (((XmIconButtonWidget)(w))->icon.pixmap)
Packit b099d7
#define XmIconButton_arm_color(w) (((XmIconButtonWidget)(w))->icon.arm_color)
Packit b099d7
#define XmIconButton_font_list(w) (((XmIconButtonWidget)(w))->icon.font_list)
Packit b099d7
#define XmIconButton_icon_placement(w) (((XmIconButtonWidget)(w))->icon.icon_placement)
Packit b099d7
#define XmIconButton_recompute(w) (((XmIconButtonWidget)(w))->icon.recompute)
Packit b099d7
#define XmIconButton_set(w) (((XmIconButtonWidget)(w))->icon.set)
Packit b099d7
#define XmIconButton_armed(w) (((XmIconButtonWidget)(w))->icon.armed)
Packit b099d7
#define XmIconButton_v_space(w) (((XmIconButtonWidget)(w))->icon.v_space)
Packit b099d7
#define XmIconButton_h_space(w) (((XmIconButtonWidget)(w))->icon.h_space)
Packit b099d7
#define XmIconButton_icon_text_padding(w) (((XmIconButtonWidget)(w))->icon.icon_text_padding)
Packit b099d7
#define XmIconButton_activate_callback(w) (((XmIconButtonWidget)(w))->icon.activate_callback)
Packit b099d7
#define XmIconButton_double_click_callback(w) (((XmIconButtonWidget)(w))->icon.double_click_callback)
Packit b099d7
#define XmIconButton_label_string(w) (((XmIconButtonWidget)(w))->icon.label_string)
Packit b099d7
#define XmIconButton_string_direction(w) (((XmIconButtonWidget)(w))->icon.string_direction)
Packit b099d7
#define XmIconButton_alignment(w) (((XmIconButtonWidget)(w))->icon.alignment)
Packit b099d7
#define XmIconButton_pix_x(w) (((XmIconButtonWidget)(w))->icon.pix_x)
Packit b099d7
#define XmIconButton_pix_y(w) (((XmIconButtonWidget)(w))->icon.pix_y)
Packit b099d7
#define XmIconButton_pix_width(w) (((XmIconButtonWidget)(w))->icon.pix_width)
Packit b099d7
#define XmIconButton_pix_height(w) (((XmIconButtonWidget)(w))->icon.pix_height)
Packit b099d7
#define XmIconButton_pix_depth(w) (((XmIconButtonWidget)(w))->icon.pix_depth)
Packit b099d7
#define XmIconButton_text_x(w) (((XmIconButtonWidget)(w))->icon.text_x)
Packit b099d7
#define XmIconButton_text_y(w) (((XmIconButtonWidget)(w))->icon.text_y)
Packit b099d7
#define XmIconButton_max_text_width(w) (((XmIconButtonWidget)(w))->icon.max_text_width)
Packit b099d7
#define XmIconButton_max_text_height(w) (((XmIconButtonWidget)(w))->icon.max_text_height)
Packit b099d7
#define XmIconButton_unset_timer(w) (((XmIconButtonWidget)(w))->icon.unset_timer)
Packit b099d7
#define XmIconButton_gc(w) (((XmIconButtonWidget)(w))->icon.gc)
Packit b099d7
#define XmIconButton_fill_gc(w) (((XmIconButtonWidget)(w))->icon.fill_gc)
Packit b099d7
#define XmIconButton_pixmap_fill_gc(w) (((XmIconButtonWidget)(w))->icon.pixmap_fill_gc)
Packit b099d7
#define XmIconButton_stippled_text_gc(w) (((XmIconButtonWidget)(w))->icon.stippled_text_gc)
Packit b099d7
#ifdef FIX_1381
Packit b099d7
#define XmIconButton_insensitive_text_gc(w) (((XmIconButtonWidget)(w))->icon.stippled_text_gc)
Packit b099d7
#endif
Packit b099d7
#define XmIconButton_stippled_set_text_gc(w) (((XmIconButtonWidget)(w))->icon.stippled_set_text_gc)
Packit b099d7
#define XmIconButton_stippled_set_gc(w) (((XmIconButtonWidget)(w))->icon.stippled_set_gc)
Packit b099d7
#define XmIconButton_stippled_unset_gc(w) (((XmIconButtonWidget)(w))->icon.stippled_unset_gc)
Packit b099d7
#define XmIconButton_time(w) (((XmIconButtonWidget)(w))->icon.time)
Packit b099d7
#define XmIconButton_label_from_name(w) (((XmIconButtonWidget)(w))->icon.label_from_name)
Packit b099d7
#ifdef FIX_1381
Packit b099d7
#define XmIconButton_shadow_gc(w) (((XmIconButtonWidget)(w))->icon.shadow_gc)
Packit b099d7
#endif
Packit b099d7
typedef struct _XmIconButtonRec {
Packit b099d7
    CorePart		core;
Packit b099d7
    XmPrimitivePart	primitive;
Packit b099d7
    XmIconButtonPart	icon;
Packit b099d7
} XmIconButtonRec;
Packit b099d7
Packit b099d7
/************************************************************
Packit b099d7
*	EXTERNAL DECLARATIONS
Packit b099d7
*************************************************************/
Packit b099d7
Packit b099d7
extern XmIconButtonClassRec xmIconButtonClassRec;
Packit b099d7
Packit b099d7
/************************************************************
Packit b099d7
*	STATIC DECLARATIONS
Packit b099d7
*************************************************************/
Packit b099d7
Packit b099d7
#ifdef __cplusplus
Packit b099d7
}	/* Closes scope of 'extern "C"' declaration */
Packit b099d7
#endif
Packit b099d7
Packit b099d7
Packit b099d7
Packit b099d7
void _XmPrimitiveEnter(
Packit b099d7
                 Widget wid,
Packit b099d7
                 XEvent *event,
Packit b099d7
                 String *params,
Packit b099d7
                 Cardinal *num_params) ;
Packit b099d7
void _XmPrimitiveLeave(
Packit b099d7
                        Widget wid,
Packit b099d7
                        XEvent *event,
Packit b099d7
                        String *params,
Packit b099d7
                        Cardinal *num_params) ;
Packit b099d7
Packit b099d7
Packit b099d7
Packit b099d7
#endif /* _XmIconButtonP_h */