Files
cdesktop/cde/programs/dtappbuilder/src/ab/pal.h
2018-04-28 12:30:20 -06:00

244 lines
6.7 KiB
C

/*
* CDE - Common Desktop Environment
*
* Copyright (c) 1993-2012, The Open Group. All rights reserved.
*
* These libraries and programs are free software; you can
* redistribute them and/or modify them under the terms of the GNU
* Lesser General Public License as published by the Free Software
* Foundation; either version 2 of the License, or (at your option)
* any later version.
*
* These libraries and programs are distributed in the hope that
* they will be useful, but WITHOUT ANY WARRANTY; without even the
* implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
* PURPOSE. See the GNU Lesser General Public License for more
* details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with these libraries and programs; if not, write
* to the Free Software Foundation, Inc., 51 Franklin Street, Fifth
* Floor, Boston, MA 02110-1301 USA
*/
/*
* $XConsortium: pal.h /main/3 1995/11/06 17:35:34 rswiston $
*
* @(#)pal.h 1.32 01 Feb 1995 cde_app_builder/src/ab
*
* RESTRICTED CONFIDENTIAL INFORMATION:
*
* The information in this document is subject to special
* restrictions in a confidential disclosure agreement between
* HP, IBM, Sun, USL, SCO and Univel. Do not distribute this
* document outside HP, IBM, Sun, USL, SCO, or Univel without
* Sun's specific written approval. This document and all copies
* and derivative works thereof must be returned or destroyed at
* Sun's request.
*
* Copyright 1993 Sun Microsystems, Inc. All rights reserved.
*
*/
/*
* pal.h - implements the palette object mechanism
*/
#ifndef _PAL_H_
#define _PAL_H_
#include <X11/Intrinsic.h>
#include <ab_private/obj.h>
#include <ab_private/proj.h>
/*
* AppBuilder Property sheet types: Revolving & fixed
*/
typedef enum
{
AB_PROP_UNDEF = 0,
AB_PROP_REVOLVING,
AB_PROP_FIXED,
AB_PROP_TYPE_NUM_VALUES /* number of valid values - MUST BE LAST */
/* ANSI: no comma after last enum item! */
} AB_PROP_TYPE;
typedef struct _PAL_ITEM_INFO PalItemInfo;
typedef struct _PAL_EDITABLE_OBJ_INFO PalEditableObjInfo;
/*
* define types for palette item "methods"
*/
typedef int (*PalItemInitProc) (
ABObj
);
typedef Widget (*PalItemPropInitProc) (
Widget,
AB_PROP_TYPE
);
typedef int (*PalItemPropClearProc) (
AB_PROP_TYPE
);
typedef int (*PalItemPropActiveProc) (
AB_PROP_TYPE,
BOOL
);
typedef int (*PalItemPropLoadProc) (
ABObj,
AB_PROP_TYPE,
unsigned long
);
typedef int (*PalItemPropApplyProc) (
AB_PROP_TYPE
);
typedef BOOL (*PalItemPropPendingFunc)(
AB_PROP_TYPE
);
typedef BOOL (*PalItemIsaFunc) (
ABObj
);
typedef struct _PAL_SUBTYPE_INFO {
int subtype;
String subname;
Pixmap pixmap;
unsigned int pmwidth;
unsigned int pmheight;
} PalSubtypeInfo;
/*
* Palette Item Info Structure - one for each type of object supported
*/
typedef struct _PAL_ITEM_INFO {
/* Data...*/
AB_OBJECT_TYPE type; /* AB type */
char *name; /* virtual name */
PalSubtypeInfo *subinfo; /* specific subtype info */
int num_subinfo; /* number of subtypes */
Widget rev_prop_frame; /* revolving prop sheet */
Widget fix_prop_dialog; /* fixed prop sheet */
/* Methods...*/
PalItemInitProc initialize; /* initializes instance */
PalItemIsaFunc is_a_test; /* "is a" test */
PalItemPropInitProc prop_initialize; /* creates prop sheet */
PalItemPropActiveProc prop_activate; /* sets prop sheet active/inactive */
PalItemPropClearProc prop_clear; /* clears prop sheet */
PalItemPropLoadProc prop_load; /* loads prop sheet */
PalItemPropApplyProc prop_apply; /* applys properties to obj */
PalItemPropPendingFunc prop_pending; /* checks for pending changes */
} PAL_ITEM_INFO;
typedef struct _PAL_EDITABLE_OBJ_INFO {
AB_OBJECT_TYPE type;
int subtype;
ISTRING name;
PalItemInfo *palitem;
PalEditableObjInfo *next;
} PAL_EDITABLE_OBJ_INFO;
typedef BOOL (*PalEditableObjTestFunc) (
PalEditableObjInfo *edobj_info
);
extern PalItemInfo *ab_button_palitem;
extern PalItemInfo *ab_choice_palitem;
extern PalItemInfo *ab_combo_box_palitem;
extern PalItemInfo *ab_cpanel_palitem;
extern PalItemInfo *ab_custdlg_palitem;
extern PalItemInfo *ab_drawp_palitem;
extern PalItemInfo *ab_label_palitem;
extern PalItemInfo *ab_group_palitem;
extern PalItemInfo *ab_list_palitem;
extern PalItemInfo *ab_mainwin_palitem;
extern PalItemInfo *ab_menu_palitem;
extern PalItemInfo *ab_menubar_palitem;
extern PalItemInfo *ab_scale_palitem;
extern PalItemInfo *ab_separator_palitem;
extern PalItemInfo *ab_spinbox_palitem;
extern PalItemInfo *ab_termp_palitem;
extern PalItemInfo *ab_textf_palitem;
extern PalItemInfo *ab_textp_palitem;
extern PalItemInfo *ab_fchooser_palitem;
extern PalItemInfo *ab_panedwin_palitem;
extern void pal_register_item_info(
Widget pwidget,
PalItemInfo *palitem,
int subtype,
String subname,
Pixmap pixmap
);
extern void pal_enable_item_drag(
Widget item_widget,
int subtype
);
extern PalItemInfo *pal_get_item_info(
ABObj obj
);
extern PalItemInfo* pal_get_type_item_info(
AB_OBJECT_TYPE type,
int subtype
);
extern Pixmap pal_get_item_pixmap(
ABObj obj,
int subtype,
int *p_width,
int *p_height
);
extern STRING pal_get_item_subname(
ABObj obj,
int subtype
);
extern void pal_register_editable_obj(
AB_OBJECT_TYPE type,
int subtype,
STRING name,
PalItemInfo *palitem
);
extern PalEditableObjInfo *
pal_get_editable_obj_info(
ABObj obj
);
extern void pal_add_editable_obj_menu_items(
Widget menu_pane,
XtCallbackProc item_cb,
PalEditableObjTestFunc test_func
);
extern int pal_initialize_obj(
ABObj obj
);
extern int pal_create_menu(
AB_PROP_TYPE type,
ABObj module,
STRING menu_name,
STRING menu_title
);
extern void pal_set_File_menu(
AB_CHOOSER_TYPE chooser_type,
BOOL active
);
#endif /* _PAL_H_ */