home *** CD-ROM | disk | FTP | other *** search
- /*
- bd2.c 5/29/87
-
- % double lined border routine.
-
- OWL 1.1
- Copyright (c) 1986, 1987, by Oakland Group, Inc.
- ALL RIGHTS RESERVED.
-
- Revision History:
- -----------------
- 11/22/87 jmd Replaced line characters with octal escape sequences
- 7/27/88 jmd Upgraded to new border stuff
- 9/12/88 jmd Added in and out data to objects
- 11/07/88 ted Upgraded to new new border stuff
- 11/20/88 jmd Added ID to obj struct
- 12/20/88 jmd removed SETSIZE msg
-
- 4/21/89 jmd added object data
- 5/28/89 jmd added Shadow support
- */
-
- #include "oakhead.h"
- #include "disppriv.h"
- #include "bordobj.h"
- #include "bordod.h"
-
- #define OUTER_BOX "\311\315\273\272\274\315\310\272"
-
- /* border object data */
-
- typedef struct {
- border_od bdd; /* border object super class */
- } bd2_od;
-
- int bd_2(objdata, msg, indata, outdata)
- VOID *objdata; /* object instance data pointer */
- int msg; /* message */
- VOID *indata; /* message input data */
- VOID *outdata; /* message output data */
- /*
- This is a simple double lined border.
- */
- {
- bd2_od *bd2d;
- ocbox cbox;
- byte attr;
-
- bd2d = (bd2_od *)objdata;
-
- switch(msg) {
- case OBJM_GETDATASIZE:
- ((ogds_struct *) outdata)->odsize = sizeof(bd2_od);
- ((ogds_struct *) outdata)->xdsize = sizeof(border_xd);
- ((ogds_struct *) outdata)->id = ID_BD2;
- break;
-
- case OBJM_OPEN:
- if (!border_DoRaw(&bd2d->bdd, msg, indata, outdata)) {
- return(FALSE);
- }
- bord_SetSides(bd2d->bdd.win, -1, -1, 1, 1);
- break;
-
- case BDM_SHADOW:
- case BDM_DRAW:
- bord_GetBox(bd2d->bdd.win, &cbox);
- attr = (msg == BDM_DRAW) ?
- bord_GetAttr(bd2d->bdd.win) : win_GetShadowAttr(bd2d->bdd.win);
-
- ptd_DrawCharBox((ptd_struct *)indata, OUTER_BOX, &cbox, attr);
-
- /* else no break; pass message up to superclass */
-
- default:
- /* pass messages up to border super class */
- return(border_DoRaw(&bd2d->bdd, msg, indata, outdata));
- }
- return(TRUE);
- }
-
-