Esempio n. 1
0
static struct gui_color
color_picker(struct gui_panel_layout *panel, struct control_window *control,
    const char *name, struct gui_color color)
{
    int i;
    gui_byte *iter;
    gui_bool *active[4];

    active[0] = &control->spinner_r_active;
    active[1] = &control->spinner_g_active;
    active[2] = &control->spinner_b_active;
    active[3] = &control->spinner_a_active;

    gui_panel_row(panel, 30, 2);
    gui_panel_label(panel, name, GUI_TEXT_LEFT);
    gui_panel_button_color(panel, color, GUI_BUTTON_DEFAULT);

    iter = &color.r;
    gui_panel_row(panel, 30, 2);
    for (i = 0; i < 4; ++i, iter++) {
        gui_float t = *iter;
        t = gui_panel_slider(panel, 0, t, 255, 10);
        *iter = (gui_byte)t;
        *iter = (gui_byte)gui_panel_spinner(panel, 0, *iter, 255, 1, active[i]);
    }
    return color;
}
Esempio n. 2
0
File: demo.c Progetto: serge-rgb/gui
static void
color_tab(struct gui_panel_layout *panel, struct state *control, struct gui_config *config)
{
    gui_size i = 0;
    gui_panel_row_dynamic(panel, 30, 2);
    for (i = 0; i < GUI_COLOR_COUNT; ++i) {
        struct gui_color c = config->colors[i];
        gui_panel_label(panel, colors[i], GUI_TEXT_LEFT);
        if (gui_panel_button_color(panel, c, GUI_BUTTON_DEFAULT)) {
            control->picker.active = gui_true;
            control->picker.color = config->colors[i];
            control->picker.index = i;
        }
    }
    if (control->picker.active) {
        color_picker(panel, &control->picker, colors[control->picker.index],
            &config->colors[control->picker.index]);
    }
}
Esempio n. 3
0
File: demo.c Progetto: serge-rgb/gui
static gui_bool
color_picker(struct gui_panel_layout *panel, struct color_picker* control,
    const char *name, struct gui_color *color)
{
    int i;
    gui_byte *iter;
    gui_bool ret = gui_true;
    struct gui_panel_layout popup;
    gui_panel_popup_begin(panel, &popup, GUI_POPUP_STATIC, gui_rect(10, 100, 280, 280), gui_vec2(0,0));
    {
        if (gui_panel_header(&popup, "Color", GUI_CLOSEABLE, GUI_CLOSEABLE, GUI_HEADER_LEFT)) {
            gui_panel_popup_close(&popup);
            return gui_false;
        }
        gui_panel_row_dynamic(&popup, 30, 2);
        gui_panel_label(&popup, name, GUI_TEXT_LEFT);
        gui_panel_button_color(&popup, control->color, GUI_BUTTON_DEFAULT);

        iter = &control->color.r;
        gui_panel_row_dynamic(&popup, 30, 2);
        for (i = 0; i < 4; ++i, iter++) {
            gui_float t = *iter;
            t = gui_panel_slider(&popup, 0, t, 255, 10);
            *iter = (gui_byte)t;
            *iter = (gui_byte)gui_panel_spinner_int(&popup, 0, *iter, 255, 1, NULL);
        }

        gui_panel_row_dynamic(&popup, 30, 3);
        gui_panel_spacing(&popup, 1);
        if (gui_panel_button_text(&popup, "ok", GUI_BUTTON_DEFAULT)) {
            gui_panel_popup_close(&popup);
            *color = control->color;
            ret = gui_false;
        }
        if (gui_panel_button_text(&popup, "cancel", GUI_BUTTON_DEFAULT)) {
            gui_panel_popup_close(&popup);
            ret = gui_false;
        }
    }
    gui_panel_popup_end(panel, &popup);
    control->active = (gui_state)ret;
    return ret;
}
Esempio n. 4
0
static void
color_tab(struct gui_panel_layout *panel, struct control_window *control, struct gui_config *config)
{
    gui_size i = 0;
    static const char *labels[] = {"Text:", "Panel:", "Header:", "Border:", "Button:",
        "Button Border:", "Button Hovering:", "Button Toggle:", "Button Hovering Text:",
        "Check:", "Check BG:", "Check Active:", "Option:", "Option BG:", "Option Active:",
        "Slider:", "Slider bar:", "Slider boder:","Slider cursor:", "Progress:", "Progress Cursor:",
        "Editbox:", "Editbox cursor:", "Editbox Border:", "Editbox Text:",
        "Spinner:", "Spinner Border:", "Spinner Triangle:", "Spinner Text:",
        "Selector:", "Selector Border:", "Selector Triangle:", "Selector Text:",
        "Histo:", "Histo Bars:", "Histo Negative:", "Histo Hovering:", "Plot:", "Plot Lines:",
        "Plot Hightlight:", "Scrollbar:", "Scrollbar Cursor:", "Scrollbar Border:",
        "Table lines:", "Shelf:", "Shelf Text:", "Shelf Active:", "Shelf Active Text:", "Scaler:",
        "Tiled Scaler"
    };

    if (control->picker_active) {
        control->color = color_picker(panel,control,labels[control->current_color], control->color);
        gui_panel_row(panel, 30, 3);
        gui_panel_spacing(panel, 1);
        if (gui_panel_button_text(panel, "ok", GUI_BUTTON_DEFAULT)) {
            config->colors[control->current_color] = control->color;
            control->picker_active = gui_false;
        }
        if (gui_panel_button_text(panel, "cancel", GUI_BUTTON_DEFAULT))
            control->picker_active = gui_false;
    } else {
        gui_panel_row(panel, 30, 2);
        for (i = 0; i < GUI_COLOR_COUNT; ++i) {
            struct gui_color c = config->colors[i];
            gui_panel_label(panel, labels[i], GUI_TEXT_LEFT);
            if (gui_panel_button_color(panel, c, GUI_BUTTON_DEFAULT)) {
                if (!control->picker_active) {
                    control->picker_active = gui_true;
                    control->color = config->colors[i];
                    control->current_color = i;
                } else continue;
            }
        }
    }
}