Browse Source

another intermediate commit

Signed-off-by: Ronald G. Minnich <rminnich@gmail.com>
Ronald G. Minnich 8 years ago
parent
commit
fff663545d

+ 15 - 15
sys/src/libcontrol/control.c

@@ -140,7 +140,7 @@ _newcontrol(Controlset *cs, uint n, char *name, char *type)
 			return nil;
 		}
 	c = ctlmalloc(n);
-	c->screen = cs->screen;
+	c->screen = cs->Control.screen;
 	c->name = ctlstrdup(name);
 	c->type = _ctllookup(type, ctltypenames, Ntypes);
 	if (c->type < 0)
@@ -179,10 +179,10 @@ controlsetthread(void *v)
 	alts[AKey].c = cs->kbdc;
 	alts[AKey].v = &rp;
 	alts[AKey].op = CHANRCV;
-	alts[AMouse].c = cs->mousec;
+	alts[AMouse].c = cs->Control.mousec;
 	alts[AMouse].v = &mouse;
 	alts[AMouse].op = CHANRCV;
-	alts[ACtl].c = cs->ctl;
+	alts[ACtl].c = cs->Control.ctl;
 	alts[ACtl].v = &str;
 	alts[ACtl].op = CHANRCV;
 	alts[AExit].c = cs->csexitc;
@@ -213,7 +213,7 @@ controlsetthread(void *v)
 			/* is this a focus change? */
 			if(prevbut)	/* don't change focus if button was down */
 				goto Send;
-			if(cs->focus!=nil && cs->focus->hidden == 0 && ptinrect(mouse.xy, cs->focus->rect))
+			if(cs->focus!=nil && cs->focus->Control.hidden == 0 && ptinrect(mouse.xy, cs->focus->Control.rect))
 				goto Send;
 			if(cs->clicktotype == 0)
 				goto Change;
@@ -236,9 +236,9 @@ controlsetthread(void *v)
 					break;
 				}
 		Send:
-			if(cs->focus && cs->focus->mouse) {
-				if (debug) fprint(2, "cs->focus->mouse %s\n", cs->focus->name);
-				cs->focus->mouse(cs->focus, &mouse);
+			if(cs->focus && cs->focus->Control.mouse) {
+				if (debug) fprint(2, "cs->focus->Control.mouse %s\n", cs->focus->Control.name);
+				cs->focus->Control.mouse(cs->focus, &mouse);
 			}
 			prevbut=mouse.buttons;
 			break;
@@ -758,7 +758,7 @@ newcontrolset(Image *im, Channel *kbdc, Channel *mousec, Channel *resizec)
 		ctlerror("must specify either or both of mouse and resize channels");
 
 	cs = ctlmalloc(sizeof(Controlset));
-	cs->screen = im;
+	cs->Control.screen = im;
 
 	if(kbdc == nil){
 		cs->keyboardctl = initkeyboard(nil);
@@ -769,15 +769,15 @@ newcontrolset(Image *im, Channel *kbdc, Channel *mousec, Channel *resizec)
 	cs ->kbdc = kbdc;
 
 	if(mousec == nil){
-		cs->mousectl = initmouse(nil, im);
-		if(cs->mousectl == nil)
+		cs->Control.mousectl = initmouse(nil, im);
+		if(cs->Control.mousectl == nil)
 			ctlerror("can't initialize mouse: %r");
-		mousec = cs->mousectl->c;
-		resizec = cs->mousectl->resizec;
+		mousec = cs->Control.mousectl->c;
+		resizec = cs->Control.mousectl->resizec;
 	}
-	cs->mousec = mousec;
+	cs->Control.mousec = mousec;
 	cs->resizec = resizec;
-	cs->ctl = chancreate(sizeof(char*), 64);	/* buffer to prevent deadlock */
+	cs->Control.ctl = chancreate(sizeof(char*), 64);	/* buffer to prevent deadlock */
 	cs->data = chancreate(sizeof(char*), 0);
 	cs->resizeexitc = chancreate(sizeof(int), 0);
 	cs->csexitc = chancreate(sizeof(int), 0);
@@ -799,7 +799,7 @@ closecontrolset(Controlset *cs)
 	chanfree(cs->resizeexitc);
 	sendul(cs->csexitc, 0);
 	chanfree(cs->csexitc);
-	chanfree(cs->ctl);
+	chanfree(cs->Control.ctl);
 	chanfree(cs->data);
 
 	for(i=0; i<ncontrolset; i++)

+ 40 - 40
sys/src/libcontrol/slider.c

@@ -93,12 +93,12 @@ slidershow(Slider *s)
 	Rectangle r, t;
 	int l, h, d;
 
-	if (s->hidden)
+	if (s->Control.hidden)
 		return;
-	r = s->rect;
-	draw(s->screen, r, s->image->image, nil, s->image->image->r.min);
+	r = s->Control.rect;
+	draw(s->Control.screen, r, s->image->image, nil, s->image->image->r.min);
 	if(s->border > 0){
-		border(s->screen, r, s->border, s->bordercolor->image, s->bordercolor->image->r.min);
+		border(s->Control.screen, r, s->border, s->bordercolor->image, s->bordercolor->image->r.min);
 		r = insetrect(r, s->border);
 	}
 	if(s->max <= 0)
@@ -126,7 +126,7 @@ slidershow(Slider *s)
 		r.min.y += l;
 	}
 	if(rectclip(&r, t))
-		draw(s->screen, r, s->indicatorcolor->image, nil, s->indicatorcolor->image->r.min);
+		draw(s->Control.screen, r, s->indicatorcolor->image, nil, s->indicatorcolor->image->r.min);
 	flushimage(display, 1);
 }
 
@@ -141,114 +141,114 @@ sliderctl(Control *c, CParse *cp)
 	cmd = _ctllookup(cp->args[0], cmds, nelem(cmds));
 	switch(cmd){
 	default:
-		ctlerror("%q: unrecognized message '%s'", s->name, cp->str);
+		ctlerror("%q: unrecognized message '%s'", s->Control.name, cp->str);
 		break;
 	case EAbsolute:
-		_ctlargcount(s, cp, 2);
+		_ctlargcount(&s->Control, cp, 2);
 		s->absolute = cp->iargs[1];
 		break;
 	case EBorder:
-		_ctlargcount(s, cp, 2);
+		_ctlargcount(&s->Control, cp, 2);
 		if(cp->iargs[1] < 0)
-			ctlerror("%q: bad border: %c", s->name, cp->str);
+			ctlerror("%q: bad border: %c", s->Control.name, cp->str);
 		s->border = cp->iargs[1];
 		break;
 	case EBordercolor:
-		_ctlargcount(s, cp, 2);
+		_ctlargcount(&s->Control, cp, 2);
 		_setctlimage(s, &s->bordercolor, cp->args[1]);
 		break;
 	case EClamp:
-		_ctlargcount(s, cp, 3);
+		_ctlargcount(&s->Control, cp, 3);
 		if(strcmp(cp->args[1], "high") == 0)
 			s->clamphigh = cp->iargs[2];
 		else if(strcmp(cp->args[1], "low") == 0)
 			s->clamplow = cp->iargs[2];
 		else
-			ctlerror("%q: unrecognized clamp: %s", s->name, cp->str);
+			ctlerror("%q: unrecognized clamp: %s", s->Control.name, cp->str);
 		break;
 	case EFocus:
 		/* ignore focus change */
 		break;
 	case EFormat:
-		_ctlargcount(s, cp, 2);
-		s->format = ctlstrdup(cp->args[1]);
+		_ctlargcount(&s->Control, cp, 2);
+		s->Control.format = ctlstrdup(cp->args[1]);
 		break;
 	case EHide:
-		_ctlargcount(s, cp, 1);
-		s->hidden = 1;
+		_ctlargcount(&s->Control, cp, 1);
+		s->Control.hidden = 1;
 		break;
 	case EImage:
-		_ctlargcount(s, cp, 2);
+		_ctlargcount(&s->Control, cp, 2);
 		_setctlimage(s, &s->image, cp->args[1]);
 		break;
 	case EIndicatorcolor:
-		_ctlargcount(s, cp, 2);
+		_ctlargcount(&s->Control, cp, 2);
 		_setctlimage(s, &s->indicatorcolor, cp->args[1]);
 		break;
 	case EMax:
-		_ctlargcount(s, cp, 2);
+		_ctlargcount(&s->Control, cp, 2);
 		if(cp->iargs[1] < 0)
-			ctlerror("%q: negative max value: %s", s->name, cp->str);
+			ctlerror("%q: negative max value: %s", s->Control.name, cp->str);
 		if(s->max != cp->iargs[1]){
 			s->max = cp->iargs[1];
 			slidershow(s);
 		}
 		break;
 	case EOrient:
-		_ctlargcount(s, cp, 2);
+		_ctlargcount(&s->Control, cp, 2);
 		prev = s->horizontal;
 		if(strncmp(cp->args[1], "hor", 3) == 0)
 			s->horizontal = 1;
 		else if(strncmp(cp->args[1], "ver", 3) == 0)
 			s->horizontal = 0;
 		else
-			ctlerror("%q: unrecognized orientation: %s", s->name, cp->str);
+			ctlerror("%q: unrecognized orientation: %s", s->Control.name, cp->str);
 		if(s->horizontal != prev)
 			slidershow(s);
 		break;
 	case ERect:
-		_ctlargcount(s, cp, 5);
+		_ctlargcount(&s->Control, cp, 5);
 		r.min.x = cp->iargs[1];
 		r.min.y = cp->iargs[2];
 		r.max.x = cp->iargs[3];
 		r.max.y = cp->iargs[4];
 		if(Dx(r)<=0 || Dy(r)<=0)
-			ctlerror("%q: bad rectangle: %s", s->name, cp->str);
-		s->rect = r;
+			ctlerror("%q: bad rectangle: %s", s->Control.name, cp->str);
+		s->Control.rect = r;
 		break;
 	case EReveal:
-		_ctlargcount(s, cp, 1);
-		s->hidden = 0;
+		_ctlargcount(&s->Control, cp, 1);
+		s->Control.hidden = 0;
 		slidershow(s);
 		break;
 	case EShow:
-		_ctlargcount(s, cp, 1);
+		_ctlargcount(&s->Control, cp, 1);
 		slidershow(s);
 		break;
 	case ESize:
 		if (cp->nargs == 3)
 			r.max = Pt(0x7fffffff, 0x7fffffff);
 		else{
-			_ctlargcount(s, cp, 5);
+			_ctlargcount(&s->Control, cp, 5);
 			r.max.x = cp->iargs[3];
 			r.max.y = cp->iargs[4];
 		}
 		r.min.x = cp->iargs[1];
 		r.min.y = cp->iargs[2];
 		if(r.min.x<=0 || r.min.y<=0 || r.max.x<=0 || r.max.y<=0 || r.max.x < r.min.x || r.max.y < r.min.y)
-			ctlerror("%q: bad sizes: %s", s->name, cp->str);
-		s->size.min = r.min;
-		s->size.max = r.max;
+			ctlerror("%q: bad sizes: %s", s->Control.name, cp->str);
+		s->Control.size.min = r.min;
+		s->Control.size.max = r.max;
 		break;
 	case EValue:
-		_ctlargcount(s, cp, 2);
+		_ctlargcount(&s->Control, cp, 2);
 		if(s->value != cp->iargs[1]){
 			s->value = cp->iargs[1];
 			slidershow(s);
 		}
 		break;
 	case EVis:
-		_ctlargcount(s, cp, 2);
+		_ctlargcount(&s->Control, cp, 2);
 		if(s->vis != cp->iargs[1]){
 			s->vis = cp->iargs[1];
 			slidershow(s);
@@ -280,7 +280,7 @@ slidermouse(Control *c, Mouse *m)
 	}
 	s->lastbut = m->buttons;
 
-	r = insetrect(s->rect, s->border);
+	r = insetrect(s->Control.rect, s->border);
 	if(s->horizontal){
 		v = m->xy.x - r.min.x;
 		d = Dx(r);
@@ -311,7 +311,7 @@ slidermouse(Control *c, Mouse *m)
 		l = s->max;
 	if(l != s->value){
 		s->value = l;
-		chanprint(s->event, s->format, s->name, s->value);
+		chanprint(s->Control.event, s->Control.format, s->Control.name, s->value);
 		slidershow(s);
 	}
 }
@@ -326,10 +326,10 @@ createslider(Controlset *cs, char *name)
 	s->textcolor = _getctlimage("black");
 	s->bordercolor = _getctlimage("black");
 	s->indicatorcolor = _getctlimage("black");
-	s->format = ctlstrdup("%q: value %d");
+	s->Control.format = ctlstrdup("%q: value %d");
 	s->border = 0;
-	s->mouse = slidermouse;
-	s->ctl = sliderctl;
-	s->exit = sliderfree;
+	s->Control.mouse = slidermouse;
+	s->Control.ctl = sliderctl;
+	s->Control.exit = sliderfree;
 	return (Control*)s;
 }

+ 1 - 1
sys/src/libcontrol/tabs.c

@@ -260,6 +260,6 @@ createtab(Controlset *cs, char *name)
 	t->bordercolor = _getctlimage("black");
 	t->image = _getctlimage("white");
 	t->Control.setsize = tabsize;
-	t->activate = activatetab;
+	&t->Control.activate = activatetab;
 	return (Control*)t;
 }

+ 1 - 1
sys/src/libcontrol/text.c

@@ -303,7 +303,7 @@ textctl(Control *c, CParse *cp)
 		break;
 	case EFont:
 		_ctlargcount(&t->Control, cp, 2);
-		_setctlfont(t, &t->font, cp->args[1]);
+		_setctlfont(&t->Control, &t->font, cp->args[1]);
 		break;
 	case EHide:
 		_ctlargcount(&t->Control, cp, 1);

+ 1 - 1
sys/src/libcontrol/textbutton.c

@@ -226,7 +226,7 @@ textbuttonctl(Control *c, CParse *cp)
 		break;
 	case EFont:
 		_ctlargcount(&t->Control, cp, 2);
-		_setctlfont(t, &t->font, cp->args[1]);
+		_setctlfont(&t->Control, &t->font, cp->args[1]);
 		t->lastshow = -1;	/* force redraw */
 		break;
 	case EFormat: