diff options
Diffstat (limited to 'src/cgm.c')
-rw-r--r-- | src/cgm.c | 36 |
1 files changed, 22 insertions, 14 deletions
@@ -1,19 +1,29 @@ #include "project.h" + #include "cd/cd.h" -BEGIN_OBJECT(CGMc) - int r,g,b,n; -END_OBJECT(CGMc) -CREATOR(CGMc)=Obj_DefaultCreator; -DESTRUCTOR(CGMc)=Obj_DefaultDestructor; +OBJECT(CGMc, + int r; + int g; + int b; + int n; +); + +CONSTRUCTOR(CGMc)=GObj_DefaultConstructor; +DESTRUCTOR(CGMc)=GObj_DefaultDestructor; -BEGIN_OBJECT(Private) +OBJECT(Private, CGMc_list cgmcs; int maxcol; cdImagePtr im; FILE *file; -END_OBJECT(Private) +); +static void private_constructor(Private); +static void private_destructor(Private); + +CONSTRUCTOR(Private)=private_constructor; +DESTRUCTOR(Private)=private_destructor; int cgm_sortout_color(Private p,int r,int g,int b) { @@ -28,13 +38,13 @@ c=c->next; } -c=CREATE_OBJ(CGMc); +c=NEW(CGMc); c->r=r; c->g=g; c->b=b; c->n=cdImageColorAllocate(p->im,r,g,b); -Obj_Insert(p->cgmcs,c,ObjInsertHead); +GObj_InsertHead(p->cgmcs,c); return(c->n); @@ -44,7 +54,7 @@ static void private_constructor(Private p) { char name[1024]; -p->cgmcs=CREATE_LIST(CGMc); +p->cgmcs=NEW_LIST(CGMc); /* We need a square image otherwise nasty things happen to lines!*/ p->im=cdImageCreate(7100,7100); @@ -57,7 +67,7 @@ int i; printf("JWG: Writing cgm file \n"); -Obj_Delete(p->cgmcs); +GObj_Delete(p->cgmcs); cdImageCgm(p->im,p->file); cdImageDestroy(p->im); @@ -66,15 +76,13 @@ free(p); } -CREATOR(Private)=private_constructor; -DESTRUCTOR(Private)=private_destructor; void cgm_init_private(Handle h) { Private p; -p=CREATE_OBJ(Private); +p=NEW(Private); p->file=h->file; h->private=(void *) p; |