Exemple #1
0
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;
}
Exemple #2
0
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");
	}
}
Exemple #3
0
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");
	}
}
Exemple #4
0
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;
}
Exemple #5
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;
	}
}
Exemple #6
0
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;
}
Exemple #7
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;
}