
F.7 The Logo.c Module
In Chapter 25, XView Internals, the methods for writing XView extensions is discussed.
Example F-7 contains all the functions outlined in the chapter. The chapter also contains list-
ings of the header files required by this module.
Example F-7. The Logo.c module
/*
* Logo.c -- a XView object class that paints an X logo in a window.
* This object is subclassed from the window object to take advantage
* of the window it creates. This object has no attributes, so the
* set and get functions are virtually empty. The only internal
* fields used by this object are a GC and a Pixmap. The GC is used
* to paint the Pixmap into the window. The window object has no GC
* associated with it or we would have inherited it. This will
* probably go away in the next version of XView.
*/
#include "logo_impl.h"
#include <xview/notify.h>
#include <xview/cms.h>
#include <X11/bitmaps/xlogo32>
/* declare the "methods" used by the logo class. */
static int logo_init(), logo_destroy();
static Xv_opaque logo_set(), logo_get();
static void logo_repaint();
Xv_pkg logo_pkg = {
"Logo", /* package name */
ATTR_PKG_UNUSED_FIRST, /* package ID */
sizeof(Logo_public), /* size of the public struct */
WINDOW, /* subclassed from the window package */
logo_init,
logo_set,
logo_get,
logo_destroy,
NULL /* disable the use of xv_find() */
};
/* the only thing this object does is paint an X into its own window.
* This is the event