home *** CD-ROM | disk | FTP | other *** search
- /*
- userwin.c 9/24/88
-
- % user paint window object
- for custimized painting by users via the aux func
-
- OWL 1.2
- Copyright (c) 1990, by Oakland Group, Inc.
- ALL RIGHTS RESERVED.
-
- Revision History:
- -----------------
- */
-
- #include "oakhead.h"
- #include "disppriv.h"
- #include "winod.h"
-
- /* -------------------------------------------------------------------------- */
- /* The user window class */
-
- typedef struct _userwinod {
- win_od wd; /* window super class */
- } userwin_od;
-
- #define userwinod_GetSelf(userwd) (winod_GetSelf(&(userwd)->wd))
-
- /* -------------------------------------------------------------------------- */
-
- int userwin_Class(VOID *objdata, int msg, VOID *indata, VOID *outdata)
- /*
- userwin object dispatch function
- */
- {
- userwin_od *userwd;
- win_type win;
- int rval;
-
- userwd = (userwin_od *) objdata;
-
- switch(msg) {
-
- case OBJM_GETDATASIZE:
- ((ogds_struct *) outdata)->odsize = sizeof(userwin_od);
- ((ogds_struct *) outdata)->xdsize = sizeof(userwin_xd);
- ((ogds_struct *) outdata)->id = ID_USERWIN;
- break;
-
- case OBJM_OPEN:
- /* Send OPEN to win superclass */
- rval = win_Class(&(userwd->wd), msg, indata, outdata);
-
- /* Override default: allow any pix size for userwin's */
- win = userwinod_GetSelf(userwd);
- win_SetCharSize(win, FALSE);
-
- /* automatically enable user paint */
- win_SetUserPaint(win, TRUE);
-
- return(rval);
-
- case OBJM_WHO:
- /* Identify ourselves */
- if (*((int *) indata) == ID_USERWIN) {
- return(TRUE);
- }
- return(win_Class(&(userwd->wd), msg, indata, outdata));
-
- default:
- /* pass all other messages to win superclass */
- return(win_Class(&(userwd->wd), msg, indata, outdata));
- }
- return(TRUE);
- }
- /* -------------------------------------------------------------------------- */
-
-
-