|
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 */
|