static int click_accept_checkbox_label(widget_list *w, int mx, int my, Uint32 flags) { int current_window; for(current_window = 0; current_window < MAX_ACCEPT_BUDDY_WINDOWS; current_window++) if(accept_windows[current_window].window_id == w->window_id) break; if(current_window == MAX_ACCEPT_BUDDY_WINDOWS) return 0; checkbox_set_checked(w->window_id, accept_windows[current_window].checkbox, !checkbox_get_checked(w->window_id, accept_windows[current_window].checkbox)); return 1; }
void create_autoeditwin( list_item_t *item ) { int w, h, btn_w; char *srv_title, *chan_title, *srv_text, *chn_text; int text_w, c; object_t *aew_lbl_server, *aew_lbl_channels; layout_t *lt; bounds_t *b; char lt_str[512]; int enable = 1; aew_edit_item = item; w = 400; h = 150; btn_w = (w-20-(10*(2-1))) / 2; b = new_bounds( -1, -1, w, h ); autoeditwin = window_widget_create( bersirc->mainwin, b, cWindowModalDialog | cWindowCenterParent ); window_set_icon( autoeditwin, b_icon("bersirc") ); window_set_title( autoeditwin, lang_phrase_quick( (item==0?"addserver_t":"editserver_t") ) ); object_addhandler( autoeditwin, "destroy", b_autoeditwin_killed ); // input srv_title = lang_phrase_quick( "serveraddy_inp" ); chan_title = lang_phrase_quick( "channels_inp" ); srv_text = ""; chn_text = ""; if ( item != 0 ) { int *ip = item->data[0]; enable = *ip; srv_text = item->data[1]; chn_text = item->data[2]; } text_w = widget_font_string_width( bersirc->mainwin, srv_title, strlen( srv_title ) ); c = widget_font_string_width( bersirc->mainwin, chan_title, strlen( chan_title ) ); if ( c > text_w ) text_w = c; sprintf( lt_str, "[][{25}<|(%d)lblserver|<|txtserver|<][][{25}<|(%d)lblchannels|<|txtchannels|<]" "[][{25}<|enabled|<][][{25}<|btnsave|<|btncancel|<]", text_w, text_w ); lt = layout_create( autoeditwin, lt_str, *b, 10, 10 ); aew_lbl_server = label_widget_create_with_text( autoeditwin, lt_bounds(lt,"lblserver"), 0, srv_title ); aew_txt_server = textbox_widget_create( autoeditwin, lt_bounds(lt,"txtserver"), 0 ); textbox_set_text( aew_txt_server, srv_text ); aew_lbl_channels = label_widget_create_with_text( autoeditwin, lt_bounds(lt,"lblchannels"), 0, chan_title ); aew_txt_channels = textbox_widget_create( autoeditwin, lt_bounds(lt,"txtchannels"), 0 ); textbox_set_text( aew_txt_channels, chn_text ); object_addhandler( autoeditwin, "dialog_ok", b_autoeditwin_save ); object_addhandler( aew_txt_server, "changed", b_autoeditwin_txtchanged ); widget_focus( aew_txt_server ); aew_cbx_enabled = checkbox_widget_create_with_label( autoeditwin, lt_bounds(lt,"enabled"), 0, lang_phrase_quick( "autoitemenable" ) ); checkbox_set_checked( aew_cbx_enabled, enable ); // buttons aw_btnsave = button_widget_create_with_label( autoeditwin, lt_bounds(lt,"btnsave"), 0, lang_phrase_quick( "save" ) ); aw_btncancel = button_widget_create_with_label( autoeditwin, lt_bounds(lt,"btncancel"), 0, lang_phrase_quick( "cancel" ) ); object_addhandler( aw_btnsave, "pushed", b_autoeditwin_save ); object_addhandler( aw_btncancel, "pushed", b_autoeditwin_close ); if ( item == 0 ) widget_disable( OBJECT( aw_btnsave ) ); window_show( autoeditwin ); }
// checkbox A events void bToggleChecked_pushed(object_t *object, event_t *event, void *data) { object_t *c = (object_t*)data; checkbox_set_checked(c, 1-checkbox_get_checked(c)); }