Files
cpython-source-deps/generic/tixInt.h
2017-05-22 16:16:49 -05:00

859 lines
28 KiB
C
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
/*
* tixInt.h --
*
* Defines internal data types and functions used by the Tix library.
*
* Copyright (c) 1993-1999 Ioi Kim Lam.
* Copyright (c) 2000-2001 Tix Project Group.
*
* See the file "license.terms" for information on usage and redistribution
* of this file, and for a DISCLAIMER OF ALL WARRANTIES.
*
* $Id: tixInt.h,v 1.7 2008/02/28 04:29:17 hobbs Exp $
*/
#ifndef _TIX_INT_H_
#define _TIX_INT_H_
#ifndef _TIX_H_
#include <tix.h>
#endif
#ifndef _TIX_PORT_H_
#include <tixPort.h>
#endif
/*----------------------------------------------------------------------
*
* Tix Display Item Types
*
*----------------------------------------------------------------------
*/
#define TIX_DITEM_NONE 0
#define TIX_DITEM_TEXT 1
#define TIX_DITEM_IMAGETEXT 2
#define TIX_DITEM_WINDOW 3
#define TIX_DITEM_IMAGE 4
/*
* The following 12 values can be OR'ed to passed as the flags
* parameter to Tix_DItemDisplay().
*/
#define TIX_DITEM_NORMAL_BG (0x1 << 0)
#define TIX_DITEM_ACTIVE_BG (0x1 << 1)
#define TIX_DITEM_SELECTED_BG (0x1 << 2)
#define TIX_DITEM_DISABLED_BG (0x1 << 3)
#define TIX_DITEM_NORMAL_FG (0x1 << 4)
#define TIX_DITEM_ACTIVE_FG (0x1 << 5)
#define TIX_DITEM_SELECTED_FG (0x1 << 6)
#define TIX_DITEM_DISABLED_FG (0x1 << 7)
#define TIX_DITEM_FONT (0x1 << 8)
#define TIX_DITEM_PADX (0x1 << 9)
#define TIX_DITEM_PADY (0x1 << 10)
#define TIX_DITEM_ANCHOR (0x1 << 11)
#define TIX_DITEM_OTHER_BG \
(TIX_DITEM_ACTIVE_BG|TIX_DITEM_SELECTED_BG|TIX_DITEM_DISABLED_BG)
#define TIX_DITEM_ALL_BG \
(TIX_DITEM_NORMAL_BG|TIX_DITEM_OTHER_BG)
#define TIX_DONT_CALL_CONFIG TK_CONFIG_USER_BIT
/*
* These values are used ONLY for indexing the color array in
* Tix_StyleTemplate
*/
#define TIX_DITEM_NORMAL 0
#define TIX_DITEM_ACTIVE 1
#define TIX_DITEM_SELECTED 2
#define TIX_DITEM_DISABLED 3
/*
* Flags for MultiInfo
*/
#define TIX_CONFIG_INFO 1
#define TIX_CONFIG_VALUE 2
typedef union Tix_DItem Tix_DItem;
typedef union Tix_DItemStyle Tix_DItemStyle;
typedef struct Tix_DItemInfo Tix_DItemInfo;
typedef struct Tix_DispData Tix_DispData;
typedef struct Tix_StyleTemplate Tix_StyleTemplate;
typedef void Tix_DItemCalculateSizeProc(Tix_DItem * iPtr);
typedef char * Tix_DItemComponentProc(Tix_DItem * iPtr, int x, int y);
typedef int Tix_DItemConfigureProc(Tix_DItem * iPtr,
int argc, CONST84 char **argv, int flags);
typedef Tix_DItem * Tix_DItemCreateProc(Tix_DispData * ddPtr,
Tix_DItemInfo * diTypePtr);
typedef void Tix_DItemDisplayProc(Drawable drawable,
Tix_DItem * iPtr,
int x, int y, int width, int height,
int xOffset, int yOffset, int flag);
typedef void Tix_DItemFreeProc(Tix_DItem * diPtr);
typedef void Tix_DItemSizeChangedProc(Tix_DItem * iPtr);
typedef void Tix_DItemStyleChangedProc(Tix_DItem * iPtr);
typedef void Tix_DItemLostStyleProc(Tix_DItem * iPtr);
typedef int Tix_DItemStyleConfigureProc(Tix_DItemStyle* style,
int argc, CONST84 char **argv, int flags);
typedef Tix_DItemStyle* Tix_DItemStyleCreateProc(Tcl_Interp * interp,
Tk_Window tkwin,
Tix_DItemInfo * diTypePtr, char * name);
typedef void Tix_DItemStyleFreeProc(Tix_DItemStyle* style);
typedef void Tix_DItemStyleSetTemplateProc(Tix_DItemStyle* style,
Tix_StyleTemplate * tmplPtr);
/*
* These are debugging routines
*/
typedef int Tix_DItemRefCountProc();
typedef int Tix_DItemStyleRefCountProc();
/*----------------------------------------------------------------------
* Tix_DItemInfo --
*
* This structure is used to register a new display item (call
* Tix_AddDItemType).
*----------------------------------------------------------------------
*/
struct Tix_DItemInfo {
char * name;
int type;
/*
* These procedures communicate with the items
*/
Tix_DItemCreateProc * createProc;
Tix_DItemConfigureProc * configureProc;
Tix_DItemCalculateSizeProc * calculateSizeProc;
Tix_DItemComponentProc * componentProc;
Tix_DItemDisplayProc * displayProc;
Tix_DItemFreeProc * freeProc;
Tix_DItemStyleChangedProc *styleChangedProc;
Tix_DItemLostStyleProc * lostStyleProc;
/*
* These procedures communicate with the styles
*/
Tix_DItemStyleCreateProc * styleCreateProc;
Tix_DItemStyleConfigureProc * styleConfigureProc;
Tix_DItemStyleFreeProc * styleFreeProc;
Tix_DItemStyleSetTemplateProc * styleSetTemplateProc;
Tk_ConfigSpec * itemConfigSpecs;
Tk_ConfigSpec * styleConfigSpecs;
struct Tix_DItemInfo * next;
};
/*----------------------------------------------------------------------
* Tix_DispData --
*
* Information needed by the display types to display the item in
* an X drawable.
*----------------------------------------------------------------------
*/
struct Tix_DispData {
Display * display;
Tcl_Interp * interp;
Tk_Window tkwin;
Tix_DItemSizeChangedProc * sizeChangedProc;
};
/*----------------------------------------------------------------------
* Tix_StyleTemplate --
*
* A StyleTemplate is used to set the values of the default styles
* associated with a widget
*----------------------------------------------------------------------
*/
struct Tix_StyleTemplate {
int flags; /* determines which field is valid */
struct {
XColor * bg;
XColor * fg;
} colors[4]; /* colors for the four basic modes*/
int pad[2];
#if 0
/* %bordercolor not used */
XColor * borderColor;
Tix_Relief relief;
int borderWidth;
#endif
TixFont font;
};
/*----------------------------------------------------------------------
*
*
* Display Item Types
*
*
*----------------------------------------------------------------------
*/
/*
* Display Styles
*/
typedef struct TixBaseStyle TixBaseStyle;
typedef struct TixImageTextStyle TixImageTextStyle;
typedef struct TixImageStyle TixImageStyle;
typedef struct TixTextStyle TixTextStyle;
typedef struct TixWindowStyle TixWindowStyle;
typedef struct TixBaseItem TixBaseItem;
typedef struct TixColorStyle TixColorStyle;
typedef struct TixImageTextItem TixImageTextItem;
typedef struct TixImageItem TixImageItem;
typedef struct TixTextItem TixTextItem;
typedef struct TixWindowItem TixWindowItem;
/*----------------------------------------------------------------------
* TixBaseItem --
*
* This is the abstract base class for all display items. All
* display items should have the data members defined in the
* BaseItem structure
*----------------------------------------------------------------------
*/
#define ITEM_COMMON_MEMBERS \
Tix_DItemInfo * diTypePtr; \
Tix_DispData * ddPtr; \
ClientData clientData; \
int size[2]; /* Size of this element */ \
int selX, selY, selW, selH /* Location of the selection highlight */
struct TixBaseItem {
ITEM_COMMON_MEMBERS;
TixBaseStyle * stylePtr;
};
/*----------------------------------------------------------------------
* TixBaseStyle --
*
* This is the abstract base class for all display styles. All
* display items should have the data members defined in the
* BaseStyle structure. The common members are initialized by
* tixDiStyle.c
*
*----------------------------------------------------------------------
*/
#define STYLE_COMMON_MEMBERS \
Tcl_Command styleCmd; /* Token for style's command. */ \
Tcl_HashTable items; /* Ditems affected by this style */ \
int refCount; /* Number of ditems affected by this style */\
int flags; /* Various attributes */ \
Tcl_Interp *interp; /* Interpreter associated with style. */ \
Tk_Window tkwin; /* Window associated with this style */ \
Tix_DItemInfo * diTypePtr; \
Tk_Anchor anchor; /* Anchor information */ \
char * name; /* Name of this style */ \
int pad[2]; /* paddings */ \
\
struct { \
XColor * bg; \
XColor * fg; \
GC foreGC; \
GC backGC; \
GC anchorGC; \
} colors[4] /* colors and GC's for the four basic modes*/
#define STYLE_COLOR_MEMBERS /* Backwards-cimpatibility */
struct TixBaseStyle {
STYLE_COMMON_MEMBERS;
};
#define TIX_STYLE_DELETED 1
#define TIX_STYLE_DEFAULT 2
/*
* Abstract type for all styles that have a color element
*/
struct TixColorStyle {
STYLE_COMMON_MEMBERS;
};
/*----------------------------------------------------------------------
* ImageTextItem --
*
* Display an image together with a text string
*----------------------------------------------------------------------
*/
struct TixImageTextItem {
ITEM_COMMON_MEMBERS;
TixImageTextStyle *stylePtr;
/*-------------------------*/
/* Bitmap */
/*-------------------------*/
Pixmap bitmap;
int bitmapW, bitmapH; /* Size of bitmap */
/*-------------------------*/
/* Image */
/*-------------------------*/
char *imageString; /* Name of image to display (malloc'ed), or
* NULL. If non-NULL, bitmap, text, and
* textVarName are ignored. */
Tk_Image image;
int imageW, imageH; /* Size of image */
/*-------------------------*/
/* Text */
/*-------------------------*/
char * text; /* Show descriptive text */
size_t numChars; /* Size of text */
int textW, textH;
int wrapLength;
Tk_Justify justify; /* Justification to use for multi-line text. */
int underline; /* Index of character to underline. < 0 means
* don't underline anything. */
int showImage, showText;
};
struct TixImageTextStyle {
STYLE_COMMON_MEMBERS;
int wrapLength;
Tk_Justify justify; /* Justification to use for multi-line text. */
TixFont font;
int gap; /* Gap between text and image */
};
/*----------------------------------------------------------------------
* ImageItem --
*
* Displays an image
*----------------------------------------------------------------------
*/
struct TixImageItem {
ITEM_COMMON_MEMBERS;
TixImageStyle *stylePtr;
/*-------------------------*/
/* Image */
/*-------------------------*/
char *imageString; /* Name of image to display (malloc'ed), or
* NULL. If non-NULL, bitmap, text, and
* textVarName are ignored. */
Tk_Image image;
int imageW, imageH; /* Size of image */
};
struct TixImageStyle {
STYLE_COMMON_MEMBERS;
};
/*----------------------------------------------------------------------
* TextItem --
*
* Displays a text string.
*----------------------------------------------------------------------
*/
struct TixTextItem {
ITEM_COMMON_MEMBERS;
TixTextStyle *stylePtr;
/*-------------------------*/
/* Text */
/*-------------------------*/
char * text; /* Show descriptive text */
int numChars; /* Size of text */
int textW, textH;
int underline; /* Index of character to underline. < 0 means
* don't underline anything. */
};
struct TixTextStyle {
STYLE_COMMON_MEMBERS;
int wrapLength;
Tk_Justify justify; /* Justification to use for multi-line text. */
TixFont font;
};
/*----------------------------------------------------------------------
* WindowItem --
*
* Displays a window.
*----------------------------------------------------------------------
*/
struct TixWindowItem {
ITEM_COMMON_MEMBERS;
TixWindowStyle *stylePtr;
Tk_Window tkwin;
struct TixWindowItem * next;
int serial;
};
struct TixWindowStyle {
STYLE_COMMON_MEMBERS;
};
/*----------------------------------------------------------------------
* Tix_DItem and Tix_DItemStyle --
*
* These unions just make it easy to address the internals of the
* structures of the display items and styles. If you create a new
* display item, you will need to do you type casting yourself.
*----------------------------------------------------------------------
*/
union Tix_DItem {
TixBaseItem base;
TixImageTextItem imagetext;
TixTextItem text;
TixWindowItem window;
TixImageItem image;
};
union Tix_DItemStyle {
TixBaseStyle base;
TixColorStyle color;
TixImageTextStyle imagetext;
TixTextStyle text;
TixWindowStyle window;
TixImageStyle image;
};
#define Tix_DItemType(x) ((x)->base.diTypePtr->type)
#define Tix_DItemTypeName(x) ((x)->base.diTypePtr->name)
#define Tix_DItemWidth(x) ((x)->base.size[0])
#define Tix_DItemHeight(x) ((x)->base.size[1])
#define Tix_DItemConfigSpecs(x) ((x)->base.diTypePtr->itemConfigSpecs)
#define Tix_DItemPadX(x) ((x)->base.stylePtr->pad[0])
#define Tix_DItemPadY(x) ((x)->base.stylePtr->pad[1])
#define TIX_WIDTH 0
#define TIX_HEIGHT 1
typedef struct _TixpSubRegion TixpSubRegion;
/*----------------------------------------------------------------------
* Tix_ArgumentList --
*
* This data structure is used to split command arguments for
* the display item types
*----------------------------------------------------------------------
*/
#define FIXED_SIZE 4
typedef struct {
int argc;
CONST84 char **argv;
} Tix_Argument;
typedef struct {
Tix_Argument * arg;
int numLists;
Tix_Argument preAlloc[FIXED_SIZE];
} Tix_ArgumentList;
/*----------------------------------------------------------------------
* Tix_ScrollInfo --
*
* This data structure encapsulates all the necessary operations
* for scrolling widgets
*----------------------------------------------------------------------
*/
#define TIX_SCROLL_INT 1
#define TIX_SCROLL_DOUBLE 2
/* abstract type */
typedef struct Tix_ScrollInfo {
int type; /* TIX_SCROLL_INT or TIX_SCROLL_DOUBLE */
char * command;
} Tix_ScrollInfo;
typedef struct Tix_IntScrollInfo {
int type; /* TIX_SCROLL_INT */
char * command;
int total; /* total size (width or height) of the widget*/
int window; /* visible size */
int offset; /* The top/left side of the scrolled widget */
int unit; /* How much should we scroll when the user
* press the arrow on a scrollbar? */
} Tix_IntScrollInfo;
typedef struct Tix_DoubleScrollInfo {
int type; /* TIX_SCROLL_DOUBLE */
char * command;
double total; /* total size (width or height) of the widget*/
double window; /* visible size */
double offset; /* The top/left side of the scrolled widget */
double unit; /* How much should we scroll when the user
* press the arrow on a scrollbar? */
} Tix_DoubleScrollInfo;
/*----------------------------------------------------------------------
*
* Global variables
*
* Should be used only in the Tix library. Some systems don't support
* exporting of global variables from shared libraries.
*
*----------------------------------------------------------------------
*/
EXTERN Tk_Uid tixNormalUid;
EXTERN Tk_Uid tixDisabledUid;
EXTERN Tk_Uid tixCellUid;
EXTERN Tk_Uid tixRowUid;
EXTERN Tk_Uid tixColumnUid;
#define FLAG_READONLY 0
#define FLAG_STATIC 1
#define FLAG_FORCECALL 2
/*----------------------------------------------------------------------
*
*
* MEGA-WIDGET CONFIG HANDLING
*
*
*----------------------------------------------------------------------
*/
typedef struct _TixConfigSpec TixConfigSpec;
typedef struct _TixConfigAlias TixConfigAlias;
typedef struct _TixClassRecord TixClassRecord;
struct _TixConfigSpec {
unsigned int isAlias : 1;
unsigned int readOnly : 1;
unsigned int isStatic : 1;
unsigned int forceCall : 1;
char *argvName;
char * defValue;
char * dbName; /* The additional parts of a */
char * dbClass; /* TixWidgetConfigSpec structure */
char *verifyCmd;
TixConfigSpec * realPtr; /* valid only if this option is an alias */
};
/*
* Controls the access of root widget and subwidget commands and options
*/
typedef struct _Tix_ExportSpec {
Tix_LinkList exportCmds;
Tix_LinkList restrictCmds;
Tix_LinkList exportOpts;
Tix_LinkList restrictOpts;
} Tix_ExportSpec;
typedef struct _Tix_SubWidgetSpec {
struct _Tix_SubWidgetSpec * next;
CONST84 char * name;
Tix_ExportSpec export;
} Tix_SubWidgetSpec;
typedef struct _Tix_StringLink {
struct _Tix_StringLink *next;
CONST84 char * string;
} Tix_StringLink;
typedef struct _Tix_SubwidgetDef {
struct _TixSubwidgetDef * next;
CONST84 char * spec;
CONST84 char * value;
} Tix_SubwidgetDef;
typedef struct _TixClassParseStruct {
CONST84 char * alias;
CONST84 char * ClassName;
CONST84 char * configSpec;
CONST84 char * def;
CONST84 char * flag;
CONST84 char * forceCall;
CONST84 char * method;
CONST84 char * readOnly;
CONST84 char * isStatic;
CONST84 char * superClass;
CONST84 char * subWidget;
CONST84 char * isVirtual;
int optArgc;
CONST84 char ** optArgv;
} TixClassParseStruct;
struct _TixClassRecord {
TixClassRecord * next; /* Chains to the next class record in
* a superClass's unInitSubCls list */
TixClassRecord * superClass; /* The superclass of this class. Is
* NULL if this class does not have
* a superclass. */
unsigned int isWidget; /* TRUE iff this class is created by
* the "tixWidgetClass" command */
char * className; /* Instiantiation command */
char * ClassName; /* used in TK option database */
int nSpecs;
TixConfigSpec ** specs;
int nMethods;
char ** methods;
Tk_Window mainWindow; /* This variable is essentially
* a cached variable so that
* we can advoid calling
* Tk_MainWindow() */
int isVirtual; /* is this a virtual base class
* (shouldn't be instantiated)*/
TixClassParseStruct*parsePtr; /* Information supplied by the
* tixClass or tixWidgetClass
* commands */
Tix_LinkList unInitSubCls; /* The subclasses that have not been
* initialized. */
int initialized; /* Is this class initialized? A class
* is not initialized if it has been
* defined but some its superclass
* is not initialized.
*/
Tix_LinkList subWDefs; /* the -defaults option */
#if USE_ACCESS_CONTROL
Tix_LinkList subWidgets;
Tix_ExportSpec exportSpec; /* controls the export status
* of the commands and options
* of the root widget */
#endif
};
typedef struct _TixInterpState {
char * result;
char * errorInfo;
char * errorCode;
} TixInterpState;
/*----------------------------------------------------------------------
*
* Internal procedures
*
*----------------------------------------------------------------------
*/
EXTERN int Tix_CallConfigMethod(
Tcl_Interp *interp, TixClassRecord *cPtr,
CONST84 char * widRec, TixConfigSpec *spec, CONST84 char * value);
EXTERN int Tix_CallMethod(Tcl_Interp *interp,
CONST84 char *context, CONST84 char *widRec, CONST84 char *method,
int argc, CONST84 char **argv, int *foundPtr);
EXTERN int Tix_ChangeOneOption(
Tcl_Interp *interp, TixClassRecord *cPtr,
CONST84 char * widRec, TixConfigSpec *spec, CONST84 char * value,
int isDefault, int isInit);
EXTERN int Tix_ChangeOptions(
Tcl_Interp *interp, TixClassRecord *cPtr,
CONST84 char * widRec, int argc, CONST84 char **argv);
EXTERN TixConfigSpec * Tix_FindConfigSpecByName(
Tcl_Interp * interp,
TixClassRecord * cPtr, CONST84 char * name);
EXTERN CONST84 char * Tix_FindMethod(Tcl_Interp *interp,
CONST84 char *context, CONST84 char *method);
EXTERN char * Tix_FindPublicMethod(
Tcl_Interp *interp, TixClassRecord * cPtr,
CONST84 char * method);
EXTERN int Tix_GetChars(Tcl_Interp *interp,
CONST84 char *string, double *doublePtr);
EXTERN CONST84 char * Tix_GetConfigSpecFullName(CONST84 char *clasRec,
CONST84 char *flag);
EXTERN CONST84 char * Tix_GetContext(
Tcl_Interp * interp, CONST84 char * widRec);
EXTERN CONST84 char * Tix_GetMethodFullName(CONST84 char *context,
CONST84 char *method);
EXTERN void Tix_GetPublicMethods(Tcl_Interp *interp,
CONST84 char *widRec, int *numMethods,
char *** validMethods);
EXTERN int Tix_GetWidgetOption(
Tcl_Interp *interp, Tk_Window tkwin,
CONST84 char *argvName, CONST84 char *dbName, CONST84 char *dbClass,
CONST84 char *defValue, int argc, CONST84 char **argv,
int type, char *ptr);
EXTERN int Tix_GetVar(
Tcl_Interp *interp, TixClassRecord *cPtr,
CONST84 char * widRec, CONST84 char * flag);
EXTERN int Tix_QueryAllOptions(
Tcl_Interp *interp, TixClassRecord * cPtr,
CONST84 char *widRec);
EXTERN int Tix_QueryOneOption(
Tcl_Interp *interp, TixClassRecord *cPtr,
CONST84 char *widRec, CONST84 char *flag);
EXTERN int Tix_SuperClass(Tcl_Interp *interp,
CONST84 char *widClass, CONST84 char ** superClass_ret);
EXTERN int Tix_UnknownPublicMethodError(
Tcl_Interp *interp, TixClassRecord * cPtr,
CONST84 char * widRec, CONST84 char * method);
EXTERN int Tix_ValueMissingError(Tcl_Interp *interp,
CONST84 char *spec);
EXTERN void Tix_AddDItemType(
Tix_DItemInfo * diTypePtr);
EXTERN int Tix_ConfigureInfo2(
Tcl_Interp *interp, Tk_Window tkwin,
CONST84 char *entRec, Tk_ConfigSpec *entConfigSpecs,
Tix_DItem * iPtr, CONST84 char *argvName, int flags);
EXTERN int Tix_ConfigureValue2(Tcl_Interp *interp,
Tk_Window tkwin, CONST84 char * entRec,
Tk_ConfigSpec *entConfigSpecs, Tix_DItem * iPtr,
CONST84 char *argvName, int flags);
EXTERN void Tix_DItemCalculateSize(
Tix_DItem * iPtr);
EXTERN char * Tix_DItemComponent(Tix_DItem * diPtr,
int x, int y);
EXTERN int Tix_DItemConfigure(
Tix_DItem * diPtr, int argc,
CONST84 char **argv, int flags);
EXTERN Tix_DItem * Tix_DItemCreate(Tix_DispData * ddPtr,
CONST84 char * type);
EXTERN void Tix_DItemDrawBackground(Drawable drawable,
TixpSubRegion *subRegPtr, Tix_DItem * iPtr,
int x, int y, int width, int height,
int xOffset, int yOffset, int flags);
EXTERN void Tix_DItemDisplay(
Drawable drawable, Tix_DItem * iPtr,
int x, int y, int width, int height,
int xOffset, int yOffset, int flag);
EXTERN int Tix_DItemFillNormalBG(Drawable drawable,
TixpSubRegion *subRegPtr, Tix_DItem * iPtr,
int x, int y, int width, int height,
int xOffset, int yOffset, int flags);
EXTERN void Tix_DItemFree(
Tix_DItem * iPtr);
EXTERN void TixDItemStyleChanged(
Tix_DItemInfo * diTypePtr,
Tix_DItemStyle * stylePtr);
EXTERN void TixDItemStyleConfigureGCs(
Tix_DItemStyle *style);
EXTERN void TixDItemStyleFree(Tix_DItem *iPtr,
Tix_DItemStyle * stylePtr);
EXTERN void TixDItemGetAnchor(Tk_Anchor anchor,
int x, int y, int cav_w, int cav_h,
int width, int height, int * x_ret, int * y_ret);
EXTERN void Tix_FreeArgumentList(
Tix_ArgumentList *argListPtr);
EXTERN void TixGetColorDItemGC(
Tix_DItem * iPtr, GC * backGC_ret,
GC * foreGC_ret, GC * anchorGC_ret, int flags);
EXTERN Tix_DItemStyle* TixGetDefaultDItemStyle(
Tix_DispData * ddPtr, Tix_DItemInfo * diTypePtr,
Tix_DItem *iPtr, Tix_DItemStyle* oldStylePtr);
EXTERN Tix_DItemInfo * Tix_GetDItemType(
Tcl_Interp * interp, CONST84 char *type);
EXTERN void Tix_GetScrollFractions(
Tix_ScrollInfo * siPtr,
double * first_ret, double * last_ret);
EXTERN void Tix_InitScrollInfo(
Tix_ScrollInfo * siPtr, int type);
EXTERN int Tix_MultiConfigureInfo(
Tcl_Interp * interp,
Tk_Window tkwin, Tk_ConfigSpec **specsList,
int numLists, CONST84 char **widgRecList, CONST84 char *argvName,
int flags, int request);
EXTERN void Tix_SetDefaultStyleTemplate(
Tk_Window tkwin, Tix_StyleTemplate * tmplPtr);
EXTERN int Tix_SetScrollBarView(
Tcl_Interp *interp, Tix_ScrollInfo * siPtr,
int argc, CONST84 char **argv, int compat);
EXTERN void Tix_SetWindowItemSerial(
Tix_LinkList * lPtr, Tix_DItem * iPtr,
int serial);
EXTERN int Tix_SplitConfig(Tcl_Interp * interp,
Tk_Window tkwin, Tk_ConfigSpec ** specsList,
int numLists, int argc, CONST84 char **argv,
Tix_ArgumentList * argListPtr);
EXTERN void Tix_UnmapInvisibleWindowItems(
Tix_LinkList * lPtr, int serial);
EXTERN void Tix_UpdateScrollBar(
Tcl_Interp *interp, Tix_ScrollInfo * siPtr);
EXTERN int Tix_WidgetConfigure2(
Tcl_Interp *interp, Tk_Window tkwin, CONST84 char * entRec,
Tk_ConfigSpec *entConfigSpecs,
Tix_DItem * iPtr, int argc, CONST84 char **argv,
int flags, int forced, int * sizeChanged_ret);
EXTERN void Tix_WindowItemListRemove(
Tix_LinkList * lPtr, Tix_DItem * iPtr);
/*
* Functions that should be used by Tix only. Functions prefixed by "Tix"
* are generic functions that has one implementation for all platforms.
* Functions prefixed with "Tixp" requires one implementation on each
* platform.
*/
extern void TixInitializeDisplayItems(void);
extern void TixpDrawAnchorLines(Display *display,
Drawable drawable, GC gc, int x, int y,
int w, int h);
extern void TixpDrawTmpLine(int x1, int y1,
int x2, int y2, Tk_Window tkwin);
extern void TixpEndSubRegionDraw(Display *display,
Drawable drawable, GC gc,
TixpSubRegion * subRegPtr);
extern int TixpSetWindowParent(Tcl_Interp * interp,
Tk_Window tkwin, Tk_Window newParent,
int parentId);
extern void TixpStartSubRegionDraw(Display *display,
Drawable drawable, GC gc,
TixpSubRegion * subRegPtr, int origX,
int origY, int x, int y, int width, int height,
int needWidth, int needHeight);
extern void TixpSubRegDisplayText(Display *display,
Drawable drawable, GC gc,
TixpSubRegion * subRegPtr,
TixFont font, CONST84 char *string,
int numChars, int x, int y, int length,
Tk_Justify justify, int underline);
extern void TixpSubRegDrawBitmap(Display *display,
Drawable drawable, GC gc,
TixpSubRegion * subRegPtr, Pixmap bitmap,
int src_x, int src_y, int width, int height,
int dest_x, int dest_y, unsigned long plane);
extern void TixpSubRegDrawImage(
TixpSubRegion * subRegPtr, Tk_Image image,
int imageX, int imageY, int width, int height,
Drawable drawable, int drawableX, int drawableY);
extern void TixpSubRegDrawAnchorLines(
Display *display, Drawable drawable,
GC gc, TixpSubRegion * subRegPtr,
int x, int y, int w, int h);
extern void TixpSubRegFillRectangle(Display *display,
Drawable drawable, GC gc,
TixpSubRegion * subRegPtr, int x, int y,
int width, int height);
extern void TixpSubRegSetClip(
Display *display, TixpSubRegion * subRegPtr,
GC gc);
extern void TixpSubRegUnsetClip(
Display *display, TixpSubRegion * subRegPtr,
GC gc);
extern char * tixStrDup( CONST char * s);
extern int TixMwmProtocolHandler(
ClientData clientData, XEvent *eventPtr);
/*
* Image types implemented by Tix.
*/
extern Tk_ImageType tixPixmapImageType;
extern Tk_ImageType tixCompoundImageType;
/*
* Display Items implemented in the Tix core.
*/
extern Tix_DItemInfo tix_ImageTextItemType;
extern Tix_DItemInfo tix_TextItemType;
extern Tix_DItemInfo tix_WindowItemType;
extern Tix_DItemInfo tix_ImageItemType;
#endif /* _TIX_INT_H_ */