void frame_three_button_hide_pressed (w_object_t *object, int button) { if (frame_three_listbox_scrollbuffer_hided == 0) { w_textbox_set_str(frame_three_button_hide_textbox->object, "Show Listbox"); w_object_hide(frame_three_listbox_scrollbuffer->object); } else { w_textbox_set_str(frame_three_button_hide_textbox->object, "Hide Listbox"); w_object_show(frame_three_listbox_scrollbuffer->object); } frame_three_listbox_scrollbuffer_hided = (frame_three_listbox_scrollbuffer_hided + 1) % 2; }
void frame_two_button_hide_draw (w_object_t *object) { w_button_draw(object); if (frame_two_button_hide_textbox == NULL) { return; } if (frame_two_area_hide) { w_textbox_set_str(frame_two_button_hide_textbox->object, "show area"); } else { w_textbox_set_str(frame_two_button_hide_textbox->object, "hide area"); } }
static void button0_draw (w_object_t *object) { w_object_t *obj; w_button_draw(object); obj = (w_object_t *) s_list_get(object->childs, 0); if (obj == NULL) { return; } if (area_hide) { w_textbox_set_str(obj, "show area"); } else { w_textbox_set_str(obj, "hide area"); } }
int w_pushbutton_set_text (w_object_t *object, char *text) { w_pushbutton_t *pb; pb = (w_pushbutton_t *) object->data[OBJECT_PUSHBUTTON]; w_textbox_set_str(pb->textbox->object, text); return 0; }
void code_generate_object_textbox (s_hashtable_t *htable, s_xml_node_t *node) { s_xml_node_t *tmp; w_textbox_t *textbox; 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_textbox_init(wobject->window, &textbox, pobject); s_hashtable_add(htable, s_xml_node_get_attr_value(node, "id"), textbox->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_textbox_set_style(textbox->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_textbox_set_image(textbox->object, style, rotate, count, var); while (count--) s_free(var[count]); s_free(var); } tmp->dontparse = 1; } while ((tmp = s_xml_node_get_path(node, "properties")) != NULL) { TEXTBOX_PROPERTIES prop; code_get_enum(htable, tmp->value, &prop); w_textbox_set_properties(textbox->object, prop); tmp->dontparse = 1; } while ((tmp = s_xml_node_get_path(node, "size")) != NULL) { int size = atoi(tmp->value); w_textbox_set_size(textbox->object, size); tmp->dontparse = 1; } if ((tmp = s_xml_node_get_path(node, "color")) != NULL) { int cr = atoi(s_xml_node_get_path_value(tmp, "red")); int cg = atoi(s_xml_node_get_path_value(tmp, "green")); int cb = atoi(s_xml_node_get_path_value(tmp, "blue")); w_textbox_set_rgb(textbox->object, cr, cg, cb); if ((tmp = s_xml_node_get_path(node, "color/red")) != NULL) { tmp->dontparse = 1; } if ((tmp = s_xml_node_get_path(node, "color/green")) != NULL) { tmp->dontparse = 1; } if ((tmp = s_xml_node_get_path(node, "color/blue")) != NULL) { tmp->dontparse = 1; } tmp->dontparse = 1; } if ((tmp = s_xml_node_get_path(node, "string")) != NULL) { w_textbox_set_str(textbox->object, code_trim_quota(tmp->value)); tmp->dontparse = 1; } }
int main (int argc, char *argv[]) { int i; int x = 60; int y = 60; int w = 500; int h = 400; w_window_t *window; w_frame_t *frame; w_frame_t *square; w_button_t *button; w_textbox_t *textbox; w_checkbox_t *checkbox; srand(time(NULL)); w_window_init(&window, WINDOW_TYPE_MAIN, NULL); w = MIN(window->window->surface->width, w); h = MIN(window->window->surface->height, h); s_window_set_title(window->window, "Demo - %s", argv[0]); w_window_set_coor(window, x, y, w, h); w_frame_init(window, &frame, FRAME_PANEL | FRAME_RAISED, window->object); w_object_move(frame->object, 0, 0, w, h); w_object_show(frame->object); w_button_init(window, &button, frame->object); button->pressed = button0_pressed; button->object->draw = button0_draw; button->object->destroy = button0_destroy; w_object_move(button->object, 5, 5, 70, 20); w_object_show(button->object); w_textbox_init(window, &textbox, button->object); textbox->frame->style = FRAME_NOFRAME; w_textbox_set_str(textbox->object, "hide area"); w_object_move(textbox->object, 0, 0, 70, 20); w_object_show(textbox->object); w_button_init(window, &button, frame->object); button->object->effect->effect = EFFECT_POPIN | EFFECT_POPOUT; button->pressed = button1_pressed; button->object->destroy = button1_destroy; w_object_move(button->object, 80, 5, 55, 20); w_object_show(button->object); w_textbox_init(window, &textbox, button->object); textbox->frame->style = FRAME_NOFRAME; w_textbox_set_str(textbox->object, "blender"); w_object_move(textbox->object, 0, 0, 55, 20); w_object_show(textbox->object); w_button_init(window, &button, frame->object); button->object->effect->effect = EFFECT_FADEIN | EFFECT_FADEOUT; button->pressed = button2_pressed; button->object->destroy = button2_destroy; w_object_move(button->object, 140, 5, 85, 20); w_object_show(button->object); w_textbox_init(window, &textbox, button->object); textbox->frame->style = FRAME_NOFRAME; w_textbox_set_str(textbox->object, "random focus"); w_object_move(textbox->object, 0, 0, 85, 20); w_object_show(textbox->object); w_checkbox_init(window, &checkbox, frame->object); w_textbox_set_str(checkbox->text->object, "checkbox"); w_object_move(checkbox->object, 300, 5, 85, 20); w_object_show(checkbox->object); w_frame_init(window, &area, FRAME_PANEL | FRAME_SUNKEN, frame->object); area->object->effect->effect = EFFECT_FADEIN; w_object_move(area->object, 5, 60, w - 10, h - 130); w_object_show(area->object); for (i = 0; i < 4; i++) { w_frame_init(window, &square, FRAME_NOFRAME | FRAME_PLAIN, area->object); square->object->draw = object_draw_p[i]; w_object_move(square->object, (rand() + 1) % (w - 10), ((rand() + 1) % (h - 70)) + 1, (rand() + 1) % (w - 10), ((rand() + 1) % (h - 70)) + 1); w_object_show(square->object); } w_textbox_init(window, &textbox, frame->object); textbox->frame->style = FRAME_PANEL | FRAME_PLAIN; w_textbox_set_str(textbox->object, "this is a text box !"); w_object_move(textbox->object, 5, 30 + (h - 100) + 5, w - 10, 100 - 30 - 5 - 30); w_object_show(textbox->object); { w_editbox_t *editbox; w_editbox_init(window, &editbox, frame->object); w_object_move(editbox->object, 5, 30 + (h - 60) + 5, w - 10, 20); w_textbox_set_str(editbox->object, "this is an editable box !"); w_object_show(editbox->object); } w_frame_init(window, &frame, FRAME_NOFRAME, frame->object); w_object_move(frame->object, 5, 30, w - 10, 25); w_object_show(frame->object); w_button_init(window, &button, frame->object); w_object_move(button->object, 5, 2, 70, 20); w_object_show(button->object); w_textbox_init(window, &textbox, button->object); textbox->frame->style = FRAME_NOFRAME; w_textbox_set_str(textbox->object, "test 0"); w_object_move(textbox->object, 0, 0, 70, 20); w_object_show(textbox->object); w_button_init(window, &button, frame->object); w_object_move(button->object, 80, 2, 55, 20); w_object_show(button->object); w_textbox_init(window, &textbox, button->object); textbox->frame->style = FRAME_NOFRAME; w_textbox_set_str(textbox->object, "test 1"); w_object_move(textbox->object, 0, 0, 55, 20); w_object_show(textbox->object); w_button_init(window, &button, frame->object); w_object_move(button->object, 140, 2, 85, 20); w_object_show(button->object); w_textbox_init(window, &textbox, button->object); textbox->frame->style = FRAME_NOFRAME; w_textbox_set_str(textbox->object, "test 2"); w_object_move(textbox->object, 0, 0, 85, 20); w_object_show(textbox->object); w_checkbox_init(window, &checkbox, frame->object); w_textbox_set_str(checkbox->text->object, "test 3"); w_object_move(checkbox->object, 300, 2, 85, 20); w_object_show(checkbox->object); w_object_show(window->object); s_window_show(window->window); s_window_main(window->window); return 0; }
void w_listbox_draw (w_object_t *object) { int x; int y; int h; int w; int pos; w_listbox_t *lb; w_listbox_item_t *li; lb = object->data[OBJECT_LISTBOX]; 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_listbox_item_t *) s_list_get(lb->items, pos); if (!(pos == lb->active || pos == lb->pactive) && (li->textbox->object->surface->buf->x == x && li->textbox->object->surface->buf->y == y && li->textbox->object->surface->buf->w == w && li->textbox->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->textbox->object->surface->buf->x, li->textbox->object->surface->buf->y, li->textbox->object->surface->buf->w, li->textbox->object->surface->buf->h); #endif continue; } if (pos == lb->active) { w_textbox_set_rgb(li->textbox->object, 0, 0, 0); w_textbox_set_style(li->textbox->object, lb->activeshape, lb->activeshadow); } else { w_textbox_set_rgb(li->textbox->object, 255, 255, 255); w_textbox_set_style(li->textbox->object, lb->inactiveshape, lb->inactiveshadow); } w_textbox_set_str(li->textbox->object, li->name); w_object_move_silent(li->textbox->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; }