ui/gtk/window.c

changeset 659
d6baaa93f7be
parent 627
3f0c9fe60c68
child 675
b612026b060b
equal deleted inserted replaced
658:b25f54b51d76 659:d6baaa93f7be
310 UiEvent evt; 310 UiEvent evt;
311 evt.obj = data->obj; 311 evt.obj = data->obj;
312 evt.document = evt.obj->ctx->document; 312 evt.document = evt.obj->ctx->document;
313 evt.window = evt.obj->window; 313 evt.window = evt.obj->window;
314 evt.eventdata = NULL; 314 evt.eventdata = NULL;
315 evt.eventdatatype = 0;
316 evt.eventdatatype = 0;
315 evt.intval = 0; 317 evt.intval = 0;
316 318
317 if(!strcmp(response, "btn1")) { 319 if(!strcmp(response, "btn1")) {
318 evt.intval = 1; 320 evt.intval = 1;
319 } else if(!strcmp(response, "btn2")) { 321 } else if(!strcmp(response, "btn2")) {
321 } 323 }
322 324
323 if(data->customdata) { 325 if(data->customdata) {
324 GtkWidget *entry = data->customdata; 326 GtkWidget *entry = data->customdata;
325 evt.eventdata = (void*)ENTRY_GET_TEXT(GTK_ENTRY(entry)); 327 evt.eventdata = (void*)ENTRY_GET_TEXT(GTK_ENTRY(entry));
328 evt.eventdatatype = UI_EVENT_DATA_STRING;
326 } 329 }
327 330
328 if(data->callback) { 331 if(data->callback) {
329 data->callback(&evt, data->userdata); 332 data->callback(&evt, data->userdata);
330 } 333 }
334 AdwDialog *dialog = adw_alert_dialog_new(args.title, args.content); 337 AdwDialog *dialog = adw_alert_dialog_new(args.title, args.content);
335 UiEventData *event = malloc(sizeof(UiEventData)); 338 UiEventData *event = malloc(sizeof(UiEventData));
336 event->callback = args.result; 339 event->callback = args.result;
337 event->userdata = args.resultdata; 340 event->userdata = args.resultdata;
338 event->customdata = NULL; 341 event->customdata = NULL;
342 event->customint = 0;
339 event->value = 0; 343 event->value = 0;
340 event->obj = parent; 344 event->obj = parent;
341 345
342 if(args.button1_label) { 346 if(args.button1_label) {
343 adw_alert_dialog_add_response(ADW_ALERT_DIALOG(dialog), "btn1", args.button1_label); 347 adw_alert_dialog_add_response(ADW_ALERT_DIALOG(dialog), "btn1", args.button1_label);
359 if(args.input_value) { 363 if(args.input_value) {
360 ENTRY_SET_TEXT(entry, args.input_value); 364 ENTRY_SET_TEXT(entry, args.input_value);
361 } 365 }
362 adw_alert_dialog_set_extra_child(ADW_ALERT_DIALOG(dialog), entry); 366 adw_alert_dialog_set_extra_child(ADW_ALERT_DIALOG(dialog), entry);
363 event->customdata = entry; 367 event->customdata = entry;
368 event->customint = 0;
364 } 369 }
365 370
366 g_signal_connect( 371 g_signal_connect(
367 dialog, 372 dialog,
368 "destroy", 373 "destroy",
515 520
516 UiFileList flist; 521 UiFileList flist;
517 flist.files = NULL; 522 flist.files = NULL;
518 flist.nfiles = 0; 523 flist.nfiles = 0;
519 evt.eventdata = &flist; 524 evt.eventdata = &flist;
525 evt.eventdatatype = UI_EVENT_DATA_FILE_LIST;
520 526
521 if(selection) { 527 if(selection) {
522 flist = listmodel2filelist(selection); 528 flist = listmodel2filelist(selection);
523 g_object_unref(selection); 529 g_object_unref(selection);
524 } else if(file) { 530 } else if(file) {
549 555
550 UiEventData *event = malloc(sizeof(UiEventData)); 556 UiEventData *event = malloc(sizeof(UiEventData));
551 event->callback = file_selected_callback; 557 event->callback = file_selected_callback;
552 event->userdata = cbdata; 558 event->userdata = cbdata;
553 event->customdata = NULL; 559 event->customdata = NULL;
560 event->customint = 0;
554 event->value = mode; 561 event->value = mode;
555 event->obj = obj; 562 event->obj = obj;
556 563
557 GtkWindow *parent = GTK_WINDOW(gtk_widget_get_root(obj->widget)); 564 GtkWindow *parent = GTK_WINDOW(gtk_widget_get_root(obj->widget));
558 GtkFileDialog *dialog = gtk_file_dialog_new(); 565 GtkFileDialog *dialog = gtk_file_dialog_new();

mercurial