static int sel_skin_button (WButton * button, int action) { int result; WListbox *skin_list; WDialog *skin_dlg; const gchar *skin_name; int lxx, lyy; unsigned int i; unsigned int pos = 1; (void) action; lxx = COLS / 2; lyy = (LINES - 13) / 2; skin_dlg = dlg_create (TRUE, lyy, lxx, 13, 24, dialog_colors, NULL, NULL, "[Appearance]", _("Skins"), DLG_COMPACT); skin_list = listbox_new (1, 1, 11, 22, FALSE, NULL); skin_name = "default"; listbox_add_item (skin_list, LISTBOX_APPEND_AT_END, 0, skin_name_to_label (skin_name), (void *) skin_name); if (strcmp (skin_name, current_skin_name) == 0) listbox_select_entry (skin_list, 0); for (i = 0; i < skin_names->len; i++) { skin_name = g_ptr_array_index (skin_names, i); if (strcmp (skin_name, "default") != 0) { listbox_add_item (skin_list, LISTBOX_APPEND_AT_END, 0, skin_name_to_label (skin_name), (void *) skin_name); if (strcmp (skin_name, current_skin_name) == 0) listbox_select_entry (skin_list, pos); pos++; } } add_widget (skin_dlg, skin_list); result = dlg_run (skin_dlg); if (result == B_ENTER) { Widget *w; gchar *skin_label; listbox_get_current (skin_list, &skin_label, (void **) &skin_name); g_free (current_skin_name); current_skin_name = g_strdup (skin_name); skin_apply (skin_name); w = dlg_find_by_id (WIDGET (button)->owner, skin_name_id); button_set_text (BUTTON (w), str_fit_to_term (skin_label, 20, J_LEFT_FIT)); } dlg_destroy (skin_dlg); return 0; }
static int sel_charset_button (WButton * button, int action) { int new_dcp; (void) action; new_dcp = select_charset (-1, -1, new_display_codepage, TRUE); if (new_dcp != SELECT_CHARSET_CANCEL) { const char *cpname; new_display_codepage = new_dcp; cpname = (new_display_codepage == SELECT_CHARSET_OTHER_8BIT) ? _("Other 8 bit") : ((codepage_desc *) g_ptr_array_index (codepages, new_display_codepage))->name; if (cpname != NULL) mc_global.utf8_display = str_isutf8 (cpname); else cpname = _("7-bit ASCII"); /* FIXME */ button_set_text (button, cpname); dlg_redraw (WIDGET (button)->owner); } return 0; }
void update_scoreboard_labels() { char buf[10]; int course; unsigned int u; if (!scoreboard_open) { return; } for (u = 0; u < SCOREBOARD_SIZE; u++) { const SCORE_ITEM* score = &scoreboard[u]; button_set_text(rank_labels[u], score->rank); button_set_text(name_labels[u], score->name); button_set_text(score_labels[u], score->score); } }
void slider_set_value(widget_t* slider, int value) { char* label=0; int i=0; char* next_delimiter=slider->data2; char* substring_end=0; int substring_length=0; char* format; char tmp[100]; slider->option=value; if (slider->text) { free(slider->text); slider->text=0; } if (slider->data2) { for (i=0; i<value; i++) { next_delimiter=strchr(next_delimiter, SLIDER_DELIMITER); next_delimiter++; //move to the next character after the delimiter if (next_delimiter==0) { button_set_text(slider, "ERROR"); return; } } substring_end=strchr(next_delimiter, SLIDER_DELIMITER); if (substring_end) { substring_length=substring_end-next_delimiter; } else { substring_length=strlen(next_delimiter); } slider->text=(char*)malloc(strlen(slider->data1) + substring_length + 1+4); memcpy(tmp, next_delimiter, substring_length); tmp[substring_length]=0; //null terminate the string sprintf(slider->text, "%s%s", slider->data1, tmp); } else { slider->text=(char*)malloc(strlen(slider->data1)+10); sprintf(slider->text, "%s%d", slider->data1, slider->option); } }
widget_t* create_label(char* text) { widget_t* label=(widget_t*)malloc(sizeof(widget_t)); label->text=0; button_set_text(label, text); label->callback1=label->callback2=0; label->data1=0; label->data2=0; label->font_binding=0; label->type=LABEL; return label; }
void update_text() { if ( g_game.practicing ) { open_course_data_t *data; data = (open_course_data_t*) get_list_elem_data( cur_elem ); textarea_set_text( desc_ta, data->description ); button_set_text(course_title_label, data->name); SDL_Log("update_text practice=%s", data->course); button_set_text(play_button, get_race_text()); refresh_scores_for_course(data->course); } else { race_data_t *data; data = (race_data_t*) get_list_elem_data( cur_elem ); textarea_set_text( desc_ta, data->description ); button_set_text(course_title_label, data->name); SDL_Log("update_text race=%s", data->course); button_set_text(play_button, get_race_text()); refresh_scores_for_course(data->course); } }
static void place_progress_buttons (WDialog * h, gboolean suspended) { const size_t i = suspended ? 2 : 1; Widget *w = WIDGET (h); int buttons_width; buttons_width = 2 + progress_buttons[0].len + progress_buttons[3].len; buttons_width += progress_buttons[i].len; button_set_text (BUTTON (progress_buttons[i].w), progress_buttons[i].text); progress_buttons[0].w->x = w->x + (w->cols - buttons_width) / 2; progress_buttons[i].w->x = progress_buttons[0].w->x + progress_buttons[0].len + 1; progress_buttons[3].w->x = progress_buttons[i].w->x + progress_buttons[i].len + 1; }
int main( int argc, char *argv[] ) { claro_base_init( ); claro_graphics_init( ); log_fd_set_level( CL_DEBUG, stderr ); clog( CL_INFO, "%s running using Claro!", __FILE__ ); w = window_widget_create( 0, new_bounds( 100, 100, 230, 230 ), cWidgetCustomDraw ); window_set_title( w, "Hello, World!" ); /* t = textbox_widget_create( w, new_bounds( 10, 10, 210, -1 ), 0 ); widget_set_notify( WIDGET(t), cNotifyKey ); textbox_set_text( t, "Yeehaw!" ); */ b = button_widget_create( w, new_bounds( 0, 0, 230, -1 ), 0 ); button_set_text( b, "Close me!" ); object_addhandler( b, "pushed", push_my_button ); #ifndef NO_CAIRO c = canvas_widget_create( w, new_bounds( 15, 30, 200, 200 ), 0 ); object_addhandler(OBJECT(c), "redraw", handle_redraw ); /* add our main loop */ object_addhandler( claro, "mainloop", handle_main ); #endif window_show( w ); window_focus( w ); block_heap_loginfo( ); claro_loop( ); return 0; }
static void update_ownership (void) { button_set_text (b_user, get_owner (sf_stat->st_uid)); button_set_text (b_group, get_group (sf_stat->st_gid)); }
void textentry_screen_show(textentry_format_t format, text_handler_t text_handler, void* user_data) { int i; textentry_screen_t* screen = calloc(1, sizeof(textentry_screen_t)); screen->text_handler = text_handler; screen->user_data = user_data; switch (format) { case TXT_FMT_IP: screen->btn_layout = btn_layout_numeric; screen->num_rows = NUM_ROWS_NUMERIC; break; default: case TXT_FMT_ANY: screen->btn_layout = btn_layout_all; screen->num_rows = NUM_ROWS_ALL; break; } screen->widget = widget_create(NULL, &textentry_screen_widget_class, screen, display_rect); rect_t rect = { .x = 7, .y = 5, .width = 48, .height = 48, }; widget_t* back_btn = button_create(screen->widget, rect, img_cancel, WHITE, BLACK, back_button_clicked); button_set_up_bg_color(back_btn, BLACK); button_set_up_icon_color(back_btn, WHITE); button_set_down_bg_color(back_btn, BLACK); button_set_down_icon_color(back_btn, LIGHT_GRAY); button_set_disabled_bg_color(back_btn, BLACK); button_set_disabled_icon_color(back_btn, DARK_GRAY); rect.x = 7; rect.y = 65; for (i = 0; i < NUM_VISIBLE_ROWS; ++i) { int j; for (j = 0; j < NUM_BUTTONS_PER_ROW; ++j) { widget_t* b = button_create(screen->widget, rect, img_circle, WHITE, BLACK, char_button_clicked); button_set_font(b, font_opensans_regular_22); button_set_up_bg_color(b, BLACK); button_set_up_icon_color(b, WHITE); button_set_down_bg_color(b, BLACK); button_set_down_icon_color(b, LIGHT_GRAY); button_set_disabled_bg_color(b, BLACK); button_set_disabled_icon_color(b, DARK_GRAY); screen->buttons[i][j] = b; rect.x += 52; } rect.y += 58; rect.x = 7; } rect.x = 268; rect.y = 5; widget_t* b = button_create(screen->widget, rect, img_check, WHITE, BLACK, ok_button_clicked); button_set_up_bg_color(b, BLACK); button_set_up_icon_color(b, WHITE); button_set_down_bg_color(b, BLACK); button_set_down_icon_color(b, LIGHT_GRAY); button_set_disabled_bg_color(b, BLACK); button_set_disabled_icon_color(b, DARK_GRAY); rect.y = 65; b = button_create(screen->widget, rect, img_backspace, WHITE, BLACK, backspace_button_clicked); button_set_up_bg_color(b, BLACK); button_set_up_icon_color(b, WHITE); button_set_down_bg_color(b, BLACK); button_set_down_icon_color(b, LIGHT_GRAY); button_set_disabled_bg_color(b, BLACK); button_set_disabled_icon_color(b, DARK_GRAY); rect.y += 58; b = button_create(screen->widget, rect, img_up, WHITE, BLACK, up_button_clicked); button_set_up_bg_color(b, BLACK); button_set_up_icon_color(b, WHITE); button_set_down_bg_color(b, BLACK); button_set_down_icon_color(b, LIGHT_GRAY); button_set_disabled_bg_color(b, BLACK); button_set_disabled_icon_color(b, DARK_GRAY); rect.y += 58; b = button_create(screen->widget, rect, img_down, WHITE, BLACK, down_button_clicked); button_set_up_bg_color(b, BLACK); button_set_up_icon_color(b, WHITE); button_set_down_bg_color(b, BLACK); button_set_down_icon_color(b, LIGHT_GRAY); button_set_disabled_bg_color(b, BLACK); button_set_disabled_icon_color(b, DARK_GRAY); update_input_buttons(screen); rect.x = 60; rect.y = 8; rect.width = 200; screen->text_label = label_create(screen->widget, rect, "", font_opensans_regular_22, WHITE, 2); widget_set_background(screen->text_label, LIGHT_GRAY); gui_push_screen(screen->widget); } static void update_input_buttons(textentry_screen_t* screen) { int i; for (i = 0; i < NUM_VISIBLE_ROWS; ++i) { btn_row_t* row = &screen->btn_layout[screen->row_idx + i]; int j; for (j = 0; j < NUM_BUTTONS_PER_ROW; ++j) { widget_t* btn = screen->buttons[i][j]; const char* btn_text = (*row)[j]; if (btn_text == NULL) widget_hide(btn); else { if (*btn_text == ' ') button_set_icon(btn, img_space); else button_set_icon(btn, img_circle); button_set_text(btn, btn_text); widget_show(btn); } } } }
int main( int argc, char *argv[] ) { object_t *w, *sw, *sw2, *cw; layout_t *lt; object_t *btn; bounds_t *b = NULL; claro_base_init( ); claro_graphics_init( ); log_fd_set_level( CL_DEBUG, stderr ); clog( CL_INFO, "%s running using Claro!", __FILE__ ); b = new_bounds(50, 50, 300, 300); w = window_widget_create(NULL, b, 0); window_set_title(w, "Splitter Demo"); object_addhandler(w, "destroy", window_closed); lt = layout_create(w, "[_splitter]", *b, 10, 10 ); assert(lt != NULL && "failed to parse layout"); sw = splitter_widget_create( w, lt_bounds(lt, "splitter"), cSplitterHorizontal ); splitter_set_info( sw, cSplitterFirst, 0, 200 ); splitter_set_info( sw, cSplitterSecond, 1, 0 ); btn = button_widget_create( sw, NO_BOUNDS, 0 ); lb = btn; button_set_text(btn, "Button Left"); sw2 = splitter_widget_create( sw, NO_BOUNDS, cSplitterVertical ); splitter_set_info( sw2, cSplitterFirst, 1, 0 ); splitter_set_info( sw2, cSplitterSecond, 0, 200 ); btn = button_widget_create( sw2, NO_BOUNDS, 0 ); object_addhandler( btn, "pushed", show_button ); button_set_text(btn, "Button Top-Right"); cw = container_widget_create( sw2, NO_BOUNDS, 0 ); lt = layout_create(cw, "[_ul|(10)|ur][{10}][_ll|(10)|lr]", *b, 10, 10 ); btn = button_widget_create( cw, lt_bounds( lt, "ul" ), 0 ); object_addhandler( btn, "pushed", hide_button ); button_set_text(btn, "B-U-L"); btn = button_widget_create( cw, lt_bounds( lt, "ur" ), 0 ); button_set_text(btn, "B-U-R"); btn = button_widget_create( cw, lt_bounds( lt, "ll" ), 0 ); button_set_text(btn, "B-L-L"); btn = button_widget_create( cw, lt_bounds( lt, "lr" ), 0 ); button_set_text(btn, "B-L-R"); window_show( w ); window_focus( w ); block_heap_loginfo( ); claro_loop( ); return 0; }
int main( int argc, char *argv[] ) { object_t *window = NULL; layout_t *lt = NULL, *lt2 = NULL, *lt3 = NULL; object_t *wgt = NULL, *frm = NULL; object_t *btn = NULL; bounds_t *b = NULL; claro_base_init( ); claro_graphics_init( ); log_fd_set_level( CL_DEBUG, stderr ); clog( CL_INFO, "%s running using Claro!", __FILE__ ); b = new_bounds( 100, 100, 800, 300 ); window = window_widget_create(NULL, b, 0); window_set_title(window, "Claro Designer"); object_addhandler(window, "destroy", window_closed); lt = layout_create(window, main_layout, *b, 10, 10); assert(lt != NULL && "Failed to parse the main layout."); b = lt_bounds(lt, "lelex"); wgt = frame_widget_create_with_label(window, b, 0, "Lelex"); lt2 = layout_create(wgt, "[_lelex]", *b, 10, 10); wgt = textarea_widget_create(wgt, lt_bounds(lt2, "lelex"), 0); store_put("lelex", wgt, sizeof(textbox_widget_t), TYPE_TEXTBOX); b = lt_bounds(lt, "options"); frm = frame_widget_create_with_label(window, b, 0, "Options"); lt3 = layout_create(frm, "[chk.toolbar][chk.statusbar][_][{25}run]", *b, 20, 20); wgt = checkbox_widget_create_with_label(frm, lt_bounds(lt3, "chk.toolbar"), 0, "Has Toolbar"); object_addhandler(wgt, "changed", has_toolbar_handle); wgt = checkbox_widget_create_with_label(frm, lt_bounds(lt3, "chk.statusbar"), 0, "Has Statusbar"); object_addhandler(wgt, "changed", has_statusbar_handle); wgt = button_widget_create( frm, lt_bounds(lt3, "run"), 0 ); button_set_text( wgt, "Parse" ); object_addhandler(wgt, "pushed", parse_pushed); list_item_t *item, *sitem; image_t *img = 0; img = image_load( window, "icon.png" ); wgt = menubar_widget_create( window, 0 ); item = menubar_append_item( wgt, 0, 0, "File" ); sitem = menubar_append_item( wgt, item, img, "Test 1" ); menubar_append_item( wgt, sitem, 0, "Sub 1" ); menubar_append_item( wgt, sitem, 0, "Sub 2" ); menubar_append_item( wgt, sitem, img, "Sub 3" ); sitem = menubar_append_item( wgt, item, 0, "Test 2" ); menubar_append_item( wgt, sitem, 0, "Sub 1" ); menubar_append_item( wgt, sitem, img, "Sub 2" ); menubar_append_item( wgt, sitem, 0, "Sub 3" ); menubar_append_separator( wgt, item ); item = menubar_append_item( wgt, item, stock_get_image("system-log-out", cStockMenu), "&Quit" ); menubar_add_key_binding( wgt, item, "Q", cModifierCommand ); object_addhandler( item, "pushed", window_closed ); menubar_append_item( wgt, 0, 0, "Help" ); // and fill in our component toolbar wgt = toolbar_widget_create( window, cToolbarShowBoth ); btn = toolbar_append_icon( OBJECT(wgt), img, "Parse", "Parse the lelex" ); object_addhandler( btn, "pushed", parse_pushed ); toolbar_append_separator( OBJECT(wgt) ); btn = toolbar_append_icon( OBJECT(wgt), img, "Insert", "*shrug*" ); //toolbar_append_popup_item( OBJECT(wgt), btn, img, "I like", "*shrug*" ); //toolbar_append_popup_item( OBJECT(wgt), btn, img, "Candy", "*shrug*" ); /*btn = toolbar_add_button(wgt, "Parse", "Parse the lelex", "examples/designer/icon.png"); object_addhandler(btn, "pushed", parse_pushed); toolbar_add_button(wgt, "BT", "Button", "examples/designer/icon.png"); toolbar_add_button(wgt, "CV", "Canvas", "examples/designer/icon.png"); toolbar_add_button(wgt, "PB", "Progress", "examples/designer/icon.png"); toolbar_add_button(wgt, "LB", "Label", "examples/designer/icon.png"); toolbar_add_button(wgt, "CT", "Container", "examples/designer/icon.png"); toolbar_add_button(wgt, "TX", "Textbox", "examples/designer/icon.png");*/ status = statusbar_widget_create(window, 0); statusbar_set_text(status, "Started up"); // setup some initial last bounds for the first window b = new_bounds( 0, 200, 800, 600 ); store_put_bounds_t("window.bounds", *b); window_show( window ); window_focus( window ); claro_loop( ); return 0; }