ggiWmhInit(3)

NAME
ggiWmhInit, ggiWmhExit, ggiWmhAttach, ggiWmhDetach : Initialize and Uninitialize LibGGIWmh

SYNOPSIS
#include <ggi/wmh.h>
int ggiWmhInit(void);
int ggiWmhExit(void);
int ggiWmhAttach(ggi_visual_t vis);
int ggiWmhDetach(ggi_visual_t vis);

DESCRIPTION
These are the standard LibGGI extension management functions for the LibGGIWmh extension. They allow initialization and deinitialization of the extension as a whole and of individual visuals. ggiWmhInit will initialize an instance of the LibGGIWmh extension and prepare it to attach to visuals. ggiWmhAttach, if successful, will allow LibGGIWmh functions to operate on the named visual. ggiWmhDetach, if successful, will clean up all resources involved in providing the named visual with the LibGGIWmh API. ggiWmhExit will free all resources associated with an instance of LibGGIWmh.

RETURN VALUE
ggiWmhInit returns 0 for OK, otherwise an ggi-error(3) code. ggiWmhExit returns:

0   after successfully cleaning up,

>0  the number of 'open' ggiWmhInit calls, if there has been more than one call to ggiWmhInit. As ggiWmhInit and ggiWmhExit must be used in properly nested pairs, e.g. the first ggiWmhExit after two ggiWmhInit's will return 1.

<0  ggi-error(3), especially if more ggiWmhExit calls have been done than ggiWmhInit calls.

ggiWmhAttach returns:

>=0 the number LibGGIWmh has been attached to this visual, whereas 0 means the first time.

<0  indicates an ggi-error(3).

ggiWmhDetach returns:

0   after successfully cleaning up,

>0  the number of 'open' ggiWmhAttach calls, if there has been more than one call to ggiWmhAttach. As ggiWmhAttach and ggiWmhDetach must be used in properly nested pairs, e.g. the first ggiWmhDetach after two ggiWmhInit`s will return `1.

<0  ggi-error(3), especially if more ggiWmhDetach calls have been done than ggiWmhAttach calls.

EXAMPLES
ggi_visual_t vis;
ggiInit();
ggiWmhInit();
vis = ggiOpen(NULL);
ggiWmhAttach(vis);
/* ... */
ggiWmhDetach(vis);
ggiWmhExit();
ggiExit();