113 lines
3.2 KiB
XML
113 lines
3.2 KiB
XML
<sect1 id="Public_Header_File">
|
|
<title>Public Header File</title>
|
|
<para>
|
|
The public header file contains declarations that will be required by any
|
|
application module that needs to refer to the widget; whether to create
|
|
an instance of the class, to perform an
|
|
<function>XtSetValues</function>
|
|
operation, or to call a public routine implemented by the widget class.
|
|
</para>
|
|
<para>
|
|
<!-- .LP -->
|
|
The contents of the Template public header file,
|
|
<function>< X11/Xaw/Template.h >, </function>
|
|
are:
|
|
</para>
|
|
<literallayout class="monospaced">
|
|
..
|
|
<!-- .CB -->
|
|
<!-- .\".so ../../lib/Xaw/Template.h -->
|
|
/* Copyright (c) X Consortium 1987, 1988 */
|
|
|
|
#ifndef _Template_h
|
|
#define _Template_h
|
|
|
|
/****************************************************************
|
|
*
|
|
* Template widget
|
|
*
|
|
****************************************************************/
|
|
|
|
/* Resources:
|
|
|
|
Name Class RepType Default Value
|
|
---- ----- ------- -------------
|
|
background Background Pixel XtDefaultBackground
|
|
border BorderColor Pixel XtDefaultForeground
|
|
borderWidth BorderWidth Dimension 1
|
|
destroyCallback Callback Pointer NULL
|
|
height Height Dimension 0
|
|
mappedWhenManaged MappedWhenManaged Boolean True
|
|
sensitive Sensitive Boolean True
|
|
width Width Dimension 0
|
|
x Position Position 0
|
|
y Position Position 0
|
|
|
|
*/
|
|
|
|
/* define any special resource names here that are not in <X11/StringDefs.h> */
|
|
|
|
#define XtNtemplateResource "templateResource"
|
|
|
|
#define XtCTemplateResource "TemplateResource"
|
|
|
|
/* declare specific TemplateWidget class and instance datatypes */
|
|
|
|
typedef struct _TemplateClassRec* TemplateWidgetClass;
|
|
typedef struct _TemplateRec* TemplateWidget;
|
|
|
|
/* declare the class constant */
|
|
|
|
extern WidgetClass templateWidgetClass;
|
|
|
|
#endif /* _Template_h */
|
|
<!-- .CE -->
|
|
</literallayout>
|
|
<para>
|
|
<!-- .LP -->
|
|
<!-- .sp -->
|
|
You will notice that most of this file is documentation. The crucial
|
|
parts are the last 8 lines where macros for any private resource names
|
|
and classes are defined and where the widget class datatypes and class
|
|
record pointer are declared.
|
|
</para>
|
|
<para>
|
|
<!-- .LP -->
|
|
For the "WindowWidget", we want 2 drawing colors, a callback list for
|
|
user input and an
|
|
<function>exposeCallback</function> callback list, and we will declare three
|
|
convenience procedures, so we need to add
|
|
</para>
|
|
<literallayout class="monospaced">
|
|
<!-- .LP -->
|
|
<!-- .sp -->
|
|
<!-- .CB -->
|
|
/* Resources:
|
|
...
|
|
callback Callback Callback NULL
|
|
drawingColor1 Color Pixel XtDefaultForeground
|
|
drawingColor2 Color Pixel XtDefaultForeground
|
|
exposeCallback Callback Callback NULL
|
|
font Font XFontStruct* XtDefaultFont
|
|
...
|
|
*/
|
|
|
|
#define XtNdrawingColor1 "drawingColor1"
|
|
#define XtNdrawingColor2 "drawingColor2"
|
|
#define XtNexposeCallback "exposeCallback"
|
|
|
|
extern Pixel WindowColor1(\|/* Widget */\|);
|
|
extern Pixel WindowColor2(\|/* Widget */\|);
|
|
extern Font\ \ WindowFont(\|/* Widget */\|);
|
|
<!-- .CE -->
|
|
</literallayout>
|
|
<para>
|
|
<!-- .LP -->
|
|
Note that we have chosen to call the input callback list by the generic
|
|
name, <function>callback</function>, rather than a specific name. If widgets that define
|
|
a single user-input action all choose the same resource name then there
|
|
is greater possibility for an application to switch between widgets of
|
|
different types.
|
|
</para>
|
|
</sect1>
|