示例#1
0
文件: clistbox.c 项目: d33tah/whitix
void w_clistbox_event (w_object_t *object, s_event_t *event)
{
	w_clistbox_t *lb;
	lb = object->data[OBJECT_CLISTBOX];
	if (event->type & KEYBD_EVENT) {
		if (event->type & KEYBD_RELEASED) {
			if (event->keybd->keycode == S_KEYCODE_UP) {
				lb->active = MAX(lb->active - 1, 0);
				w_clistbox_draw(object);
			} else if (event->keybd->keycode == S_KEYCODE_DOWN) {
				lb->active = MIN(lb->items->nb_elt - 1, lb->active + 1);
				lb->active = MAX(lb->active, 0);
				w_clistbox_draw(object);
			}
		}
	}
}
示例#2
0
文件: clistbox.c 项目: jetlive/xynth
void w_clistbox_slide (w_object_t *object, int vertical, int horizontal, int *ytotal, int *yoffset)
{
	w_clistbox_t *lb;
	lb = object->data[OBJECT_CLISTBOX];
	lb->yoffset -= vertical;
	if (vertical > 0) {
		if (lb->active * lb->itemheight + lb->yoffset < 0) {
			lb->active += 1;
		}
	} else {
		if ((lb->active + 1) * lb->itemheight + lb->yoffset > lb->object->content->h) {
			lb->active -= 1;
		}
	}
	w_clistbox_draw(object);
	(*ytotal) = lb->height;
	(*yoffset) = lb->yoffset;
}
示例#3
0
文件: clistbox.c 项目: d33tah/whitix
void w_clistbox_geometry (w_object_t *object)
{
	w_frame_geometry(object);
	w_clistbox_draw(object);
}