next up previous contents index
Next: 2. The Implementation Up: 5. How to Build Previous: 5. How to Build   Contents   Index

1. The Header Files

There really isn't much to say about the header files. They are pretty much standard headers for a widget implementation (same procedure as every widget...). Here's the public header (from the file Trivial.h):

#ifndef TRIVIAL_H
#define TRIVIAL_H

#include <Xm/Xm.h>
#include <Xm/BulletinB.h>

extern WidgetClass xmTrivialWidgetClass;

typedef struct _XmTrivialRec *XmTrivialWidget;
typedef struct _XmTrivialConstraintRec *XmTrivialConstraint;

#ifndef XmIsTrivial
#define XmIsTrivial(a) (XtIsSubclass(a, xmTrivialWidgetClass))

Widget XmCreateCreateTrivial(Widget _p, char *_n, ArgList _a,
                             Cardinal _narg);


Now, the private header (TrivialP.h):

#ifndef TRIVIAL_P_H
#define TRIVIAL_P_H

#include <Xm/XmP.h>
#include <Xm/BulletinBP.h>
#include "Trivial.h"

typedef struct _XmTrivialClassPart {
        int duh;
} XmTrivialClassPart;

typedef struct _XmSmartMessageBoxClassRec {
        CoreClassPart            core_class;
        CompositeClassPart       composite_class;
        ConstraintClassPart      constraint_class;
        XmManagerClassPart       manager_class;
        XmBulletinBoardClassPart bulletin_board_class;
        XmTrivialClassPart       trivial_class;
} XmTrivialClassRec, *XmTrivialWidgetClass;

typedef struct _XmTrivialPart {
        int gaah;
} XmTrivialPart;

typedef struct _XmTrivialRec {
        CorePart            core;
        CompositePart       composite;
        ConstraintPart      constraint;
        XmManagerPart       manager;
        XmBulletinBoardPart bulletin_board;
        XmTrivialPart       trivial;
} XmTrivialRec, *XmTrivialPtr;


Danny Backx