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_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; }
void code_generate_object_frame (s_hashtable_t *htable, s_xml_node_t *node) { w_frame_t *frame; s_xml_node_t *tmp; code_priv_t *priv; w_object_t *pobject; w_object_t *wobject; s_xml_node_t *window = s_xml_node_get_parent(node, "window"); wobject = (w_object_t *) s_hashtable_get_data(htable, s_xml_node_get_attr_value(window, "id")); pobject = (w_object_t *) s_hashtable_get_data(htable, s_xml_node_get_attr_value(node->parent, "id")); w_frame_init(wobject->window, &frame, 0, pobject); s_hashtable_add(htable, s_xml_node_get_attr_value(node, "id"), frame->object); while ((tmp = s_xml_node_get_path(node, "style")) != NULL) { FRAME_SHAPE fshape; FRAME_SHADOW fshadow; code_get_style(htable, tmp, &fshape, &fshadow); w_frame_set_style(frame->object, fshape, fshadow); tmp->dontparse = 1; } while ((tmp = s_xml_node_get_path(node, "image")) != NULL) { char **var; unsigned int count; unsigned int style; unsigned int rotate; code_get_image(htable, tmp, &style, &rotate, &count, &var); if (var != NULL) { w_frame_set_image(frame->object, style, rotate, count, var); while (count--) s_free(var[count]); s_free(var); } tmp->dontparse = 1; } priv = (code_priv_t *) s_malloc(sizeof(code_priv_t)); memset(priv, 0, sizeof(code_priv_t)); if ((tmp = s_xml_node_get_path(node, "effect")) != NULL) { EFFECT effect; code_get_effect(htable, tmp, &effect); frame->object->effect->effect = effect; tmp->dontparse = 1; } if ((tmp = s_xml_node_get_path(node, "draw")) != NULL) { priv->draw = strdup(tmp->value); if (g_engine) frame->object->draw = g_engine->object_draw; tmp->dontparse = 1; } frame->object->priv = priv; }
int w_scrollbuffer_set_style (w_object_t *object, FRAME_SHAPE shape, FRAME_SHADOW shadow) { w_frame_set_style(object, shape, shadow); return 0; }
int w_clistbox_set_style (w_object_t *object, FRAME_SHAPE shape, FRAME_SHADOW shadow) { return w_frame_set_style(object, shape, shadow); }
void w_clistbox_draw (w_object_t *object) { int x; int y; int h; int w; int pos; w_clistbox_t *lb; w_clistbox_item_t *li; lb = object->data[OBJECT_CLISTBOX]; x = object->content->x; w = object->content->w; h = lb->itemheight; lb->height = lb->items->nb_elt * h; lb->yoffset = MAX(lb->yoffset, object->content->h - lb->height); lb->yoffset = MIN(0, lb->yoffset); y = object->content->y + lb->yoffset; if (object->surface->vbuf == NULL) { goto end; } if (lb->scrollbuffer) { if (((lb->active + 1) * h) + lb->yoffset > lb->object->content->h) { w_scrollbuffer_slide(lb->scrollbuffer, (((lb->active + 1) * h) + lb->yoffset) - lb->object->content->h, 0); return; } if ((lb->active * h) + lb->yoffset < 0) { w_scrollbuffer_slide(lb->scrollbuffer, ((lb->active * h) + lb->yoffset), 0); return; } } w_frame_draw(object); for (pos = 0; !s_list_eol(lb->items, pos); pos++, y += h) { li = (w_clistbox_item_t *) s_list_get(lb->items, pos); if (!(pos == lb->active || pos == lb->pactive) && (li->frame->object->surface->buf->x == x && li->frame->object->surface->buf->y == y && li->frame->object->surface->buf->w == w && li->frame->object->surface->buf->h == h)) { #if 0 printf("pos %d, active: %d, pactive: %d\n" "%d %d %d %d, %d %d %d %d\n", pos, lb->active, lb->pactive, x, y, w, h, li->frame->object->surface->buf->x, li->frame->object->surface->buf->y, li->frame->object->surface->buf->w, li->frame->object->surface->buf->h); #endif continue; } if (pos == lb->active) { w_frame_set_style(li->frame->object, lb->activeshape, lb->activeshadow); w_frame_draw(li->frame->object); } else { w_frame_set_style(li->frame->object, lb->inactiveshape, lb->inactiveshadow); w_frame_draw(li->frame->object); } w_object_move_silent(li->frame->object, x, y, w, h); } if (lb->pactive != lb->active) { if (lb->changed != NULL) { lb->changed(object, lb->active); } lb->pactive = lb->active; } w_object_update(lb->object, lb->object->surface->win); end: return; }