int w_clistbox_item_del (w_object_t *object, w_clistbox_item_t *item) { int p; w_clistbox_t *lb; w_clistbox_item_t *active; lb = object->data[OBJECT_CLISTBOX]; active = s_list_get(lb->items, lb->active); p = s_list_get_pos(lb->items, item); s_list_remove(lb->items, p); w_clistbox_item_uninit(item); if (lb->active == p) { active = s_list_get(lb->items, p); if (active == NULL) { active = s_list_get(lb->items, p - 1); } else { lb->pactive = -1; } } if (active == NULL) { lb->active = 0; } else { lb->active = s_list_get_pos(lb->items, active); } if (lb->active < 0) { lb->active = 0; } lb->dirty = 1; w_object_draw(object); return 0; }
int w_scrollbuffer_set_boxstyle (w_object_t *object, FRAME_SHAPE shape, FRAME_SHADOW shadow) { w_scrollbuffer_t *sb; sb = object->data[OBJECT_SCROLLBUFFER]; w_frame_set_style(sb->vertical->box->object, shape, shadow); w_object_draw(sb->vertical->box->object); return 0; }
int w_clistbox_set_item_height (w_object_t *object, int size) { w_clistbox_t *lb; lb = object->data[OBJECT_CLISTBOX]; lb->itemheight = size; w_object_draw(object); return 0; }
int w_clistbox_set_inactive_style (w_object_t *object, unsigned int shape, unsigned int shadow) { w_clistbox_t *lb; lb = object->data[OBJECT_CLISTBOX]; lb->inactiveshape = shape; lb->inactiveshadow = shadow; w_object_draw(object); return 0; }
int w_clistbox_item_active_set (w_object_t *object, w_clistbox_item_t *listbox_item) { int active; w_clistbox_t *lb; lb = object->data[OBJECT_CLISTBOX]; active = s_list_get_pos(lb->items, listbox_item); if (active < 0) { return -1; } lb->active = active; w_object_draw(object); return 0; }
int w_clistbox_set_active_style (w_object_t *object, unsigned int shape, unsigned int shadow) { w_clistbox_t *lb; w_clistbox_item_t *li; lb = object->data[OBJECT_CLISTBOX]; lb->activeshape = shape; lb->activeshadow = shadow; li = w_clistbox_item_active_get(object); if (li) { w_frame_set_style(li->frame->object, lb->activeshape, lb->activeshadow); w_object_draw(li->frame->object); } return 0; }
int w_clistbox_item_add (w_object_t *object, w_clistbox_item_t *item) { w_clistbox_t *lb; w_clistbox_item_t *active; lb = object->data[OBJECT_CLISTBOX]; active = s_list_get(lb->items, lb->active); s_list_add(lb->items, item, -1); if (active == NULL) { lb->active = 0; } else { lb->active = s_list_get_pos(lb->items, active); } lb->dirty = 1; w_object_draw(object); return 0; }
int w_clistbox_clear (w_object_t *object) { w_clistbox_t *lb; w_clistbox_item_t *li; lb = object->data[OBJECT_CLISTBOX]; while (!s_list_eol(lb->items, 0)) { li = s_list_get(lb->items, 0); s_list_remove(lb->items, 0); w_clistbox_item_uninit(li); } lb->dirty = 1; lb->height = 0; lb->yoffset = 0; lb->active = 0; lb->pactive = -1; w_object_draw(object); return 0; }