38 #include <glib/gi18n.h> 78 g_signal_new (
"response",
79 G_OBJECT_CLASS_TYPE (
class),
81 G_STRUCT_OFFSET (RemminaMessagePanelClass, response),
92 RemminaMessagePanel* mp;
93 mp = (RemminaMessagePanel*)g_object_new(REMMINA_TYPE_MESSAGE_PANEL,
94 "orientation", GTK_ORIENTATION_VERTICAL,
98 priv = remmina_message_panel_get_instance_private(mp);
105 gtk_style_context_add_class(gtk_widget_get_style_context(GTK_WIDGET(mp)),
"message_panel");
106 gtk_style_context_add_class(gtk_widget_get_style_context(GTK_WIDGET(mp)),
"background");
112 GtkButton *button, gpointer user_data)
114 TRACE_CALL(__func__);
115 RemminaMessagePanel *mp = (RemminaMessagePanel*)user_data;
120 btn_data = (gint)((gint64)g_object_get_data(G_OBJECT(button),
btn_response_key));
136 TRACE_CALL(__func__);
142 printf(
"WARNING: %s called in a subthread. This should not happen.\n", __func__);
146 hbox = GTK_BOX(gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0));
149 w = gtk_spinner_new();
150 gtk_box_pack_start(hbox, w, FALSE, FALSE, 0);
151 gtk_spinner_start(GTK_SPINNER(w));
154 w = gtk_label_new(message);
155 gtk_box_pack_start(hbox, w, TRUE, TRUE, 0);
162 if (response_callback) {
163 w = gtk_button_new_with_label(_(
"Cancel"));
164 gtk_box_pack_end(hbox, w, FALSE, FALSE, 0);
165 g_object_set_data(G_OBJECT(w),
btn_response_key, (
void *)GTK_RESPONSE_CANCEL);
169 gtk_box_pack_start(GTK_BOX(mp), GTK_WIDGET(hbox), TRUE, TRUE, 0);
171 gtk_widget_show_all(GTK_WIDGET(mp));
183 TRACE_CALL(__func__);
189 printf(
"WARNING: %s called in a subthread. This should not happen.\n", __func__);
192 hbox = GTK_BOX(gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0));
195 w = gtk_label_new(message);
196 gtk_box_pack_start(hbox, w, TRUE, TRUE, 0);
199 w = gtk_button_new_with_label(_(
"Close"));
200 gtk_box_pack_end(hbox, w, FALSE, FALSE, 0);
208 gtk_box_pack_start(GTK_BOX(mp), GTK_WIDGET(hbox), TRUE, TRUE, 0);
210 gtk_widget_show_all(GTK_WIDGET(mp));
224 TRACE_CALL(__func__);
231 printf(
"WARNING: %s called in a subthread. This should not happen. Raising SIGINT for debugging.\n", __func__);
236 grid = gtk_grid_new();
237 gtk_widget_set_halign(GTK_WIDGET(grid), GTK_ALIGN_CENTER);
238 gtk_widget_set_valign(GTK_WIDGET(grid), GTK_ALIGN_CENTER);
239 gtk_widget_show(grid);
240 gtk_grid_set_row_spacing(GTK_GRID(grid), 6);
241 gtk_grid_set_column_spacing(GTK_GRID(grid), 6);
244 w = gtk_label_new(NULL);
245 gtk_label_set_markup(GTK_LABEL(w), message);
247 gtk_widget_set_halign(GTK_WIDGET(w), GTK_ALIGN_START);
248 gtk_widget_set_valign(GTK_WIDGET(w), GTK_ALIGN_FILL);
249 gtk_widget_set_margin_top (GTK_WIDGET(w), 18);
250 gtk_widget_set_margin_bottom (GTK_WIDGET(w), 9);
251 gtk_widget_set_margin_start (GTK_WIDGET(w), 18);
252 gtk_widget_set_margin_end (GTK_WIDGET(w), 18);
254 gtk_grid_attach(GTK_GRID(grid), w, 0, 0, 2, 1);
257 bbox = gtk_button_box_new (GTK_ORIENTATION_HORIZONTAL);
258 gtk_button_box_set_layout(GTK_BUTTON_BOX(bbox), GTK_BUTTONBOX_START);
259 gtk_grid_attach(GTK_GRID(grid), bbox, 0, 1, 1, 1);
260 w = gtk_button_new_with_label(_(
"Yes"));
261 gtk_widget_set_valign(GTK_WIDGET(w), GTK_ALIGN_CENTER);
265 gtk_container_add(GTK_CONTAINER(bbox), w);
267 w = gtk_button_new_with_label(_(
"No"));
268 gtk_widget_set_valign(GTK_WIDGET(w), GTK_ALIGN_CENTER);
275 gtk_container_add(GTK_CONTAINER(bbox), w);
277 gtk_box_pack_start(GTK_BOX(mp), GTK_WIDGET(grid), TRUE, TRUE, 0);
279 gtk_widget_show_all(GTK_WIDGET(mp));
285 TRACE_CALL(__func__);
287 GtkWidget *password_entry;
288 GtkWidget *username_entry;
289 GtkWidget *domain_entry;
290 GtkWidget *save_password_switch;
293 GtkWidget *button_ok;
294 GtkWidget *button_cancel;
300 printf(
"WARNING: %s called in a subthread. This should not happen. Raising SIGINT to debug.\n", __func__);
305 grid = gtk_grid_new();
306 gtk_widget_set_halign(GTK_WIDGET(grid), GTK_ALIGN_CENTER);
307 gtk_widget_set_valign(GTK_WIDGET(grid), GTK_ALIGN_CENTER);
308 gtk_widget_show(grid);
309 gtk_grid_set_row_spacing(GTK_GRID(grid), 6);
310 gtk_grid_set_column_spacing(GTK_GRID(grid), 6);
316 widget = gtk_label_new(title);
317 gtk_style_context_add_class(gtk_widget_get_style_context(widget),
"title_label");
318 gtk_widget_set_halign(GTK_WIDGET(widget), GTK_ALIGN_START);
319 gtk_widget_set_valign(GTK_WIDGET(widget), GTK_ALIGN_FILL);
320 gtk_widget_set_margin_top (GTK_WIDGET(widget), 18);
321 gtk_widget_set_margin_bottom (GTK_WIDGET(widget), 9);
322 gtk_widget_set_margin_start (GTK_WIDGET(widget), 18);
323 gtk_widget_set_margin_end (GTK_WIDGET(widget), 18);
324 gtk_widget_show(widget);
325 gtk_grid_attach(GTK_GRID(grid), widget, 0, grid_row, 3, 1);
330 widget = gtk_label_new(_(
"Username"));
331 gtk_widget_set_halign(GTK_WIDGET(widget), GTK_ALIGN_START);
332 gtk_widget_set_valign(GTK_WIDGET(widget), GTK_ALIGN_CENTER);
333 gtk_widget_set_margin_top (GTK_WIDGET(widget), 9);
334 gtk_widget_set_margin_bottom (GTK_WIDGET(widget), 3);
335 gtk_widget_set_margin_start (GTK_WIDGET(widget), 18);
336 gtk_widget_set_margin_end (GTK_WIDGET(widget), 6);
337 gtk_widget_show(widget);
338 gtk_grid_attach(GTK_GRID(grid), widget, 0, grid_row, 1, 1);
340 username_entry = gtk_entry_new();
342 gtk_widget_set_halign(GTK_WIDGET(username_entry), GTK_ALIGN_FILL);
343 gtk_widget_set_valign(GTK_WIDGET(username_entry), GTK_ALIGN_FILL);
344 gtk_widget_set_margin_top (GTK_WIDGET(username_entry), 9);
345 gtk_widget_set_margin_bottom (GTK_WIDGET(username_entry), 3);
346 gtk_widget_set_margin_start (GTK_WIDGET(username_entry), 6);
347 gtk_widget_set_margin_end (GTK_WIDGET(username_entry), 18);
349 gtk_grid_attach(GTK_GRID(grid), username_entry, 1, grid_row, 2, 1);
350 gtk_entry_set_max_length(GTK_ENTRY(username_entry), 100);
353 g_object_set(username_entry,
"editable", FALSE, NULL);
363 username_entry = NULL;
367 widget = gtk_label_new(password_prompt);
368 gtk_widget_set_halign(GTK_WIDGET(widget), GTK_ALIGN_START);
369 gtk_widget_set_margin_top (GTK_WIDGET(widget), 3);
370 gtk_widget_set_margin_bottom (GTK_WIDGET(widget), 3);
371 gtk_widget_set_margin_start (GTK_WIDGET(widget), 18);
372 gtk_widget_set_margin_end (GTK_WIDGET(widget), 6);
373 gtk_widget_show(widget);
374 gtk_grid_attach(GTK_GRID(grid), widget, 0, grid_row, 1, 1);
376 password_entry = gtk_entry_new();
377 gtk_widget_set_halign(GTK_WIDGET(password_entry), GTK_ALIGN_FILL);
378 gtk_widget_set_valign(GTK_WIDGET(password_entry), GTK_ALIGN_FILL);
379 gtk_widget_set_margin_top (GTK_WIDGET(password_entry), 3);
380 gtk_widget_set_margin_bottom (GTK_WIDGET(password_entry), 3);
381 gtk_widget_set_margin_start (GTK_WIDGET(password_entry), 6);
382 gtk_widget_set_margin_end (GTK_WIDGET(password_entry), 18);
383 gtk_entry_set_activates_default (GTK_ENTRY(password_entry), TRUE);
384 gtk_grid_attach(GTK_GRID(grid), password_entry, 1, grid_row, 2, 1);
385 gtk_entry_set_max_length(GTK_ENTRY(password_entry), 100);
386 gtk_entry_set_visibility(GTK_ENTRY(password_entry), FALSE);
391 widget = gtk_label_new(_(
"Domain"));
392 gtk_widget_set_halign(GTK_WIDGET(widget), GTK_ALIGN_START);
393 gtk_widget_set_margin_top (GTK_WIDGET(widget), 3);
394 gtk_widget_set_margin_bottom (GTK_WIDGET(widget), 3);
395 gtk_widget_set_margin_start (GTK_WIDGET(widget), 18);
396 gtk_widget_set_margin_end (GTK_WIDGET(widget), 6);
397 gtk_widget_show(widget);
398 gtk_grid_attach(GTK_GRID(grid), widget, 0, grid_row, 1, 1);
400 domain_entry = gtk_entry_new();
401 gtk_widget_set_halign(GTK_WIDGET(domain_entry), GTK_ALIGN_FILL);
402 gtk_widget_set_valign(GTK_WIDGET(domain_entry), GTK_ALIGN_FILL);
403 gtk_widget_set_margin_top (GTK_WIDGET(domain_entry), 3);
404 gtk_widget_set_margin_bottom (GTK_WIDGET(domain_entry), 3);
405 gtk_widget_set_margin_start (GTK_WIDGET(domain_entry), 6);
406 gtk_widget_set_margin_end (GTK_WIDGET(domain_entry), 18);
407 gtk_entry_set_activates_default (GTK_ENTRY(domain_entry), TRUE);
408 gtk_widget_show(domain_entry);
409 gtk_grid_attach(GTK_GRID(grid), domain_entry, 1, grid_row, 2, 1);
410 gtk_entry_set_max_length(GTK_ENTRY(domain_entry), 100);
420 widget = gtk_label_new(_(
"Save password"));
421 gtk_widget_set_halign(GTK_WIDGET(widget), GTK_ALIGN_START);
422 gtk_widget_set_margin_top (GTK_WIDGET(widget), 9);
423 gtk_widget_set_margin_bottom (GTK_WIDGET(widget), 9);
424 gtk_widget_set_margin_start (GTK_WIDGET(widget), 18);
425 gtk_widget_set_margin_end (GTK_WIDGET(widget), 6);
426 gtk_widget_show(widget);
427 gtk_grid_attach(GTK_GRID(grid), widget, 0, grid_row, 1, 1);
428 save_password_switch = gtk_switch_new();
429 gtk_widget_set_halign(GTK_WIDGET(save_password_switch), GTK_ALIGN_START);
430 gtk_widget_set_valign(GTK_WIDGET(save_password_switch), GTK_ALIGN_FILL);
431 gtk_widget_set_margin_top (GTK_WIDGET(save_password_switch), 9);
432 gtk_widget_set_margin_bottom (GTK_WIDGET(save_password_switch), 9);
433 gtk_widget_set_margin_start (GTK_WIDGET(save_password_switch), 6);
434 gtk_widget_set_margin_end (GTK_WIDGET(save_password_switch), 18);
435 gtk_grid_attach(GTK_GRID(grid), save_password_switch, 1, grid_row, 2, 1);
437 gtk_switch_set_active(GTK_SWITCH(save_password_switch), TRUE);
439 gtk_switch_set_active(GTK_SWITCH(save_password_switch), FALSE);
440 gtk_widget_set_sensitive(GTK_WIDGET(save_password_switch), FALSE);
445 bbox = gtk_button_box_new(GTK_ORIENTATION_HORIZONTAL);
446 gtk_button_box_set_layout (GTK_BUTTON_BOX (bbox), GTK_BUTTONBOX_EDGE);
447 gtk_box_set_spacing (GTK_BOX (bbox), 40);
448 gtk_widget_set_margin_top (GTK_WIDGET(bbox), 9);
449 gtk_widget_set_margin_bottom (GTK_WIDGET(bbox), 18);
450 gtk_widget_set_margin_start (GTK_WIDGET(bbox), 18);
451 gtk_widget_set_margin_end (GTK_WIDGET(bbox), 18);
452 button_ok = gtk_button_new_with_label(_(
"_OK"));
453 gtk_button_set_use_underline(GTK_BUTTON(button_ok), TRUE);
454 gtk_widget_set_can_default(button_ok, TRUE);
455 gtk_container_add (GTK_CONTAINER (bbox), button_ok);
457 button_cancel = gtk_button_new_with_label(_(
"_Cancel"));
458 gtk_button_set_use_underline(GTK_BUTTON(button_cancel), TRUE);
459 gtk_container_add (GTK_CONTAINER (bbox), button_cancel);
460 gtk_grid_attach(GTK_GRID(grid), bbox, 0, grid_row, 3, 1);
462 gtk_box_pack_start(GTK_BOX(mp), grid, TRUE, TRUE, 4);
473 if (username_entry) g_signal_connect_swapped (username_entry,
"activate", (GCallback)gtk_widget_grab_focus, password_entry);
474 g_signal_connect_swapped (password_entry,
"activate", (GCallback)gtk_widget_grab_focus, button_ok);
475 g_object_set_data(G_OBJECT(button_cancel),
btn_response_key, (
void *)GTK_RESPONSE_CANCEL);
477 g_object_set_data(G_OBJECT(button_ok),
btn_response_key, (
void *)GTK_RESPONSE_OK);
483 TRACE_CALL(__func__);
488 GtkWidget *button_ok;
489 GtkWidget *button_cancel;
490 GtkWidget *cacert_file;
491 GtkWidget *cacrl_file;
492 GtkWidget *clientcert_file;
493 GtkWidget *clientkey_file;
499 printf(
"WARNING: %s called in a subthread. This should not happen. Raising SIGINT to debug.\n", __func__);
504 grid = gtk_grid_new();
505 gtk_widget_set_halign(GTK_WIDGET(grid), GTK_ALIGN_CENTER);
506 gtk_widget_set_valign(GTK_WIDGET(grid), GTK_ALIGN_CENTER);
507 gtk_widget_show(grid);
508 gtk_grid_set_row_spacing(GTK_GRID(grid), 6);
509 gtk_grid_set_column_spacing(GTK_GRID(grid), 6);
513 widget = gtk_label_new(_(
"Enter certificate authentication files"));
514 gtk_style_context_add_class(gtk_widget_get_style_context(widget),
"title_label");
515 gtk_widget_set_halign(GTK_WIDGET(widget), GTK_ALIGN_START);
516 gtk_widget_set_valign(GTK_WIDGET(widget), GTK_ALIGN_FILL);
517 gtk_widget_set_margin_top (GTK_WIDGET(widget), 18);
518 gtk_widget_set_margin_bottom (GTK_WIDGET(widget), 9);
519 gtk_widget_set_margin_start (GTK_WIDGET(widget), 18);
520 gtk_widget_set_margin_end (GTK_WIDGET(widget), 18);
521 gtk_widget_show(widget);
522 gtk_grid_attach(GTK_GRID(grid), widget, 0, grid_row, 3, 1);
525 const gchar *lbl_cacert = _(
"CA Certificate File");
526 widget = gtk_label_new(lbl_cacert);
527 gtk_widget_set_halign(GTK_WIDGET(widget), GTK_ALIGN_START);
528 gtk_widget_set_valign(GTK_WIDGET(widget), GTK_ALIGN_CENTER);
529 gtk_widget_set_margin_top (GTK_WIDGET(widget), 9);
530 gtk_widget_set_margin_bottom (GTK_WIDGET(widget), 3);
531 gtk_widget_set_margin_start (GTK_WIDGET(widget), 18);
532 gtk_widget_set_margin_end (GTK_WIDGET(widget), 6);
533 gtk_widget_show(widget);
534 gtk_grid_attach(GTK_GRID(grid), widget, 0, grid_row, 1, 1);
535 cacert_file = gtk_file_chooser_button_new(lbl_cacert, GTK_FILE_CHOOSER_ACTION_OPEN);
537 gtk_widget_show(cacert_file);
538 gtk_widget_set_halign(GTK_WIDGET(cacert_file), GTK_ALIGN_FILL);
539 gtk_widget_set_valign(GTK_WIDGET(cacert_file), GTK_ALIGN_FILL);
540 gtk_widget_set_margin_top (GTK_WIDGET(cacert_file), 9);
541 gtk_widget_set_margin_bottom (GTK_WIDGET(cacert_file), 3);
542 gtk_widget_set_margin_start (GTK_WIDGET(cacert_file), 6);
543 gtk_widget_set_margin_end (GTK_WIDGET(cacert_file), 18);
544 gtk_grid_attach(GTK_GRID(grid), cacert_file, 1, grid_row, 2, 1);
547 const gchar *lbl_cacrl = _(
"CA CRL File");
548 widget = gtk_label_new(lbl_cacrl);
549 gtk_widget_set_halign(GTK_WIDGET(widget), GTK_ALIGN_START);
550 gtk_widget_set_valign(GTK_WIDGET(widget), GTK_ALIGN_CENTER);
551 gtk_widget_set_margin_top (GTK_WIDGET(widget), 9);
552 gtk_widget_set_margin_bottom (GTK_WIDGET(widget), 3);
553 gtk_widget_set_margin_start (GTK_WIDGET(widget), 18);
554 gtk_widget_set_margin_end (GTK_WIDGET(widget), 6);
555 gtk_widget_show(widget);
556 gtk_grid_attach(GTK_GRID(grid), widget, 0, grid_row, 1, 1);
557 cacrl_file = gtk_file_chooser_button_new(lbl_cacrl, GTK_FILE_CHOOSER_ACTION_OPEN);
559 gtk_widget_show(cacrl_file);
560 gtk_widget_set_halign(GTK_WIDGET(cacrl_file), GTK_ALIGN_FILL);
561 gtk_widget_set_valign(GTK_WIDGET(cacrl_file), GTK_ALIGN_FILL);
562 gtk_widget_set_margin_top (GTK_WIDGET(cacrl_file), 9);
563 gtk_widget_set_margin_bottom (GTK_WIDGET(cacrl_file), 3);
564 gtk_widget_set_margin_start (GTK_WIDGET(cacrl_file), 6);
565 gtk_widget_set_margin_end (GTK_WIDGET(cacrl_file), 18);
566 gtk_grid_attach(GTK_GRID(grid), cacrl_file, 1, grid_row, 2, 1);
569 const gchar *lbl_clicert = _(
"Client Certificate File");
570 widget = gtk_label_new(lbl_clicert);
571 gtk_widget_set_halign(GTK_WIDGET(widget), GTK_ALIGN_START);
572 gtk_widget_set_valign(GTK_WIDGET(widget), GTK_ALIGN_CENTER);
573 gtk_widget_set_margin_top (GTK_WIDGET(widget), 9);
574 gtk_widget_set_margin_bottom (GTK_WIDGET(widget), 3);
575 gtk_widget_set_margin_start (GTK_WIDGET(widget), 18);
576 gtk_widget_set_margin_end (GTK_WIDGET(widget), 6);
577 gtk_widget_show(widget);
578 gtk_grid_attach(GTK_GRID(grid), widget, 0, grid_row, 1, 1);
579 clientcert_file = gtk_file_chooser_button_new(lbl_clicert, GTK_FILE_CHOOSER_ACTION_OPEN);
581 gtk_widget_show(clientcert_file);
582 gtk_widget_set_halign(GTK_WIDGET(clientcert_file), GTK_ALIGN_FILL);
583 gtk_widget_set_valign(GTK_WIDGET(clientcert_file), GTK_ALIGN_FILL);
584 gtk_widget_set_margin_top (GTK_WIDGET(clientcert_file), 9);
585 gtk_widget_set_margin_bottom (GTK_WIDGET(clientcert_file), 3);
586 gtk_widget_set_margin_start (GTK_WIDGET(clientcert_file), 6);
587 gtk_widget_set_margin_end (GTK_WIDGET(clientcert_file), 18);
588 gtk_grid_attach(GTK_GRID(grid), clientcert_file, 1, grid_row, 2, 1);
591 const gchar *lbl_clikey = _(
"Client Certificate Key");
592 widget = gtk_label_new(lbl_clikey);
593 gtk_widget_set_halign(GTK_WIDGET(widget), GTK_ALIGN_START);
594 gtk_widget_set_valign(GTK_WIDGET(widget), GTK_ALIGN_CENTER);
595 gtk_widget_set_margin_top (GTK_WIDGET(widget), 9);
596 gtk_widget_set_margin_bottom (GTK_WIDGET(widget), 3);
597 gtk_widget_set_margin_start (GTK_WIDGET(widget), 18);
598 gtk_widget_set_margin_end (GTK_WIDGET(widget), 6);
599 gtk_widget_show(widget);
600 gtk_grid_attach(GTK_GRID(grid), widget, 0, grid_row, 1, 1);
601 clientkey_file = gtk_file_chooser_button_new(lbl_clikey, GTK_FILE_CHOOSER_ACTION_OPEN);
603 gtk_widget_show(clientkey_file);
604 gtk_widget_set_halign(GTK_WIDGET(clientkey_file), GTK_ALIGN_FILL);
605 gtk_widget_set_valign(GTK_WIDGET(clientkey_file), GTK_ALIGN_FILL);
606 gtk_widget_set_margin_top (GTK_WIDGET(clientkey_file), 9);
607 gtk_widget_set_margin_bottom (GTK_WIDGET(clientkey_file), 3);
608 gtk_widget_set_margin_start (GTK_WIDGET(clientkey_file), 6);
609 gtk_widget_set_margin_end (GTK_WIDGET(clientkey_file), 18);
610 gtk_grid_attach(GTK_GRID(grid), clientkey_file, 1, grid_row, 2, 1);
614 bbox = gtk_button_box_new(GTK_ORIENTATION_HORIZONTAL);
615 gtk_button_box_set_layout (GTK_BUTTON_BOX (bbox), GTK_BUTTONBOX_EDGE);
616 gtk_box_set_spacing (GTK_BOX (bbox), 40);
617 gtk_widget_set_margin_top (GTK_WIDGET(bbox), 9);
618 gtk_widget_set_margin_bottom (GTK_WIDGET(bbox), 18);
619 gtk_widget_set_margin_start (GTK_WIDGET(bbox), 18);
620 gtk_widget_set_margin_end (GTK_WIDGET(bbox), 18);
621 button_ok = gtk_button_new_with_label(_(
"_OK"));
622 gtk_widget_set_can_default (button_ok, TRUE);
624 gtk_button_set_use_underline(GTK_BUTTON(button_ok), TRUE);
626 gtk_container_add (GTK_CONTAINER (bbox), button_ok);
629 button_cancel = gtk_button_new_with_label(_(
"_Cancel"));
630 gtk_button_set_use_underline(GTK_BUTTON(button_cancel), TRUE);
632 gtk_container_add (GTK_CONTAINER (bbox), button_cancel);
633 gtk_grid_attach(GTK_GRID(grid), bbox, 0, grid_row, 3, 1);
635 gtk_box_pack_start(GTK_BOX(mp), grid, TRUE, TRUE, 4);
646 g_object_set_data(G_OBJECT(button_cancel),
btn_response_key, (
void *)GTK_RESPONSE_CANCEL);
648 g_object_set_data(G_OBJECT(button_ok),
btn_response_key, (
void *)GTK_RESPONSE_OK);
655 TRACE_CALL(__func__);
659 const gchar *username;
663 priv = remmina_message_panel_get_instance_private(mp);
667 if (w && G_TYPE_CHECK_INSTANCE_TYPE(w, gtk_button_get_type()))
668 gtk_widget_grab_default(w);
675 username = gtk_entry_get_text(GTK_ENTRY(w));
676 if (username[0] != 0)
682 if (!G_TYPE_CHECK_INSTANCE_TYPE(w, gtk_entry_get_type()))
685 gtk_widget_grab_focus(w);
694 priv = remmina_message_panel_get_instance_private(mp);
696 if (priv->
w[entryid] == NULL)
698 if (!G_TYPE_CHECK_INSTANCE_TYPE(priv->
w[entryid], gtk_entry_get_type()))
701 gtk_entry_set_text(GTK_ENTRY(priv->
w[entryid]), text != NULL ? text :
"");
706 TRACE_CALL(__func__);
712 priv = remmina_message_panel_get_instance_private(mp);
714 if (priv->
w[entryid] == NULL)
716 if (!G_TYPE_CHECK_INSTANCE_TYPE(priv->
w[entryid], gtk_entry_get_type()))
719 return g_strdup(gtk_entry_get_text(GTK_ENTRY(priv->
w[entryid])));
724 TRACE_CALL(__func__);
730 priv = remmina_message_panel_get_instance_private(mp);
732 if (priv->
w[entryid] == NULL)
734 if (!G_TYPE_CHECK_INSTANCE_TYPE(priv->
w[entryid], gtk_switch_get_type()))
737 gtk_switch_set_state(GTK_SWITCH(priv->
w[entryid]), state);
742 TRACE_CALL(__func__);
748 priv = remmina_message_panel_get_instance_private(mp);
750 if (priv->
w[entryid] == NULL)
752 if (!G_TYPE_CHECK_INSTANCE_TYPE(priv->
w[entryid], gtk_switch_get_type()))
755 return gtk_switch_get_state(GTK_SWITCH(priv->
w[entryid]));
761 TRACE_CALL(__func__);
767 priv = remmina_message_panel_get_instance_private(mp);
768 if (priv->
w[entryid] == NULL)
770 if (!G_TYPE_CHECK_INSTANCE_TYPE(priv->
w[entryid], gtk_file_chooser_button_get_type()))
773 gtk_file_chooser_set_filename(GTK_FILE_CHOOSER(priv->
w[entryid]), filename);
778 TRACE_CALL(__func__);
784 priv = remmina_message_panel_get_instance_private(mp);
786 if (priv->
w[entryid] == NULL)
788 if (!G_TYPE_CHECK_INSTANCE_TYPE(priv->
w[entryid], gtk_file_chooser_button_get_type()))
791 return gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(priv->
w[entryid]));
static void remmina_message_panel_init(RemminaMessagePanel *mp)
static guint messagepanel_signals[LAST_SIGNAL]
void remmina_message_panel_setup_auth(RemminaMessagePanel *mp, RemminaMessagePanelCallback response_callback, gpointer response_callback_data, const gchar *title, const gchar *password_prompt, unsigned flags)
void remmina_message_panel_setup_question(RemminaMessagePanel *mp, const gchar *message, RemminaMessagePanelCallback response_callback, gpointer response_callback_data)
gchar * remmina_message_panel_field_get_filename(RemminaMessagePanel *mp, int entryid)
void * response_callback_data
void remmina_message_panel_setup_auth_x509(RemminaMessagePanel *mp, RemminaMessagePanelCallback response_callback, gpointer response_callback_data)
static void remmina_message_panel_class_init(RemminaMessagePanelClass *class)
void remmina_message_panel_focus_auth_entry(RemminaMessagePanel *mp)
void remmina_message_panel_field_set_string(RemminaMessagePanel *mp, int entryid, const gchar *text)
void remmina_message_panel_field_set_filename(RemminaMessagePanel *mp, int entryid, const gchar *filename)
gboolean remmina_masterthread_exec_is_main_thread()
void remmina_message_panel_field_set_switch(RemminaMessagePanel *mp, int entryid, gboolean state)
void(* RemminaMessagePanelCallback)(void *user_data, int button)
G_DEFINE_TYPE_WITH_PRIVATE(RemminaMessagePanel, remmina_message_panel, GTK_TYPE_BOX)
gchar * remmina_message_panel_field_get_string(RemminaMessagePanel *mp, int entryid)
void remmina_message_panel_setup_progress(RemminaMessagePanel *mp, const gchar *message, RemminaMessagePanelCallback response_callback, gpointer response_callback_data)
void remmina_message_panel_setup_message(RemminaMessagePanel *mp, const gchar *message, RemminaMessagePanelCallback response_callback, gpointer response_callback_data)
gboolean remmina_message_panel_field_get_switch_state(RemminaMessagePanel *mp, int entryid)
static const gchar btn_response_key[]
void remmina_message_panel_response(RemminaMessagePanel *mp, gint response_id)
RemminaMessagePanelCallback response_callback
GtkWidget * w[REMMINA_MESSAGE_PANEL_MAXWIDGETID]
RemminaMessagePanel * remmina_message_panel_new()
static void remmina_message_panel_button_clicked_callback(GtkButton *button, gpointer user_data)