Commit a7ce4605007565ae717aa20117278e14b40c9a16
1 parent
f2ab533a
Exists in
master
and in
5 other branches
Removing windows native dialog.
Showing
2 changed files
with
4 additions
and
189 deletions
Show diff stats
src/include/pw3270.h
... | ... | @@ -84,8 +84,6 @@ |
84 | 84 | |
85 | 85 | LIB3270_EXPORT gchar * pw3270_get_datadir(const gchar *first_element, ...); |
86 | 86 | |
87 | - LIB3270_EXPORT gchar * pw3270_file_chooser(GtkFileChooserAction action, const gchar *name, const gchar *title, const gchar *file); | |
88 | - | |
89 | 87 | LIB3270_EXPORT void pw3270_set_host_charset(GtkWidget *widget, const gchar *name); |
90 | 88 | LIB3270_EXPORT void pw3270_remap_from_xml(GtkWidget *widget, const gchar *name); |
91 | 89 | ... | ... |
src/pw3270/dialog.c
... | ... | @@ -275,14 +275,6 @@ |
275 | 275 | } |
276 | 276 | else |
277 | 277 | { |
278 | -#ifdef _WIN32 | |
279 | - gchar *name = pw3270_file_chooser(GTK_FILE_CHOOSER_ACTION_SAVE, "save_contents", gettext(user_title ? user_title : title), filename); | |
280 | - if(name) | |
281 | - { | |
282 | - save_text(toplevel,name,text,NULL,errmsg); | |
283 | - g_free(name); | |
284 | - } | |
285 | -#else | |
286 | 278 | GtkWidget * dialog; |
287 | 279 | gchar * ptr; |
288 | 280 | gchar * encattr = NULL; |
... | ... | @@ -323,7 +315,6 @@ |
323 | 315 | |
324 | 316 | trace("Removing dialog %p",dialog); |
325 | 317 | gtk_widget_destroy(dialog); |
326 | -#endif // _WIN32 | |
327 | 318 | } |
328 | 319 | |
329 | 320 | return 0; |
... | ... | @@ -423,37 +414,14 @@ |
423 | 414 | |
424 | 415 | void paste_file_action(GtkAction *action, GtkWidget *widget) |
425 | 416 | { |
426 | - const gchar * name = g_object_get_data(G_OBJECT(action),"filename"); | |
427 | - const gchar * charset = g_object_get_data(G_OBJECT(action),"charset"); | |
428 | - | |
429 | - trace("Action %s activated on widget %p",gtk_action_get_name(action),widget); | |
430 | - | |
431 | - if(name) { | |
432 | - | |
433 | - // Tem nome pre-definido, colca direto | |
434 | - paste_filename(widget,name,charset); | |
435 | - return; | |
436 | - | |
437 | - } | |
438 | - | |
439 | - | |
440 | - gchar * filename = pw3270_file_chooser( GTK_FILE_CHOOSER_ACTION_OPEN, | |
441 | - "paste", | |
442 | - g_object_get_data(G_OBJECT(action),"title"), | |
443 | - name | |
444 | - ); | |
445 | - | |
446 | - if(filename) { | |
447 | - paste_filename(widget,filename,charset); | |
448 | - g_free(filename); | |
449 | - } | |
450 | - | |
451 | - /* | |
452 | 417 | const gchar * user_title = g_object_get_data(G_OBJECT(action),"title"); |
453 | 418 | const gchar * filename = g_object_get_data(G_OBJECT(action),"filename"); |
454 | - gchar * encattr = NULL;g_get_charset(&encoding) | |
419 | + gchar * encattr = NULL; | |
455 | 420 | GtkWidget * dialog; |
456 | 421 | gchar * ptr; |
422 | + const gchar * encoding = NULL; | |
423 | + | |
424 | + g_get_charset(&encoding); | |
457 | 425 | |
458 | 426 | trace("Action %s activated on widget %p",gtk_action_get_name(action),widget); |
459 | 427 | |
... | ... | @@ -497,7 +465,6 @@ |
497 | 465 | |
498 | 466 | if(encattr) |
499 | 467 | g_free(encattr); |
500 | - */ | |
501 | 468 | } |
502 | 469 | |
503 | 470 | G_GNUC_INTERNAL void about_dialog_action(GtkAction *action, GtkWidget *widget) |
... | ... | @@ -579,153 +546,3 @@ |
579 | 546 | g_free(info); |
580 | 547 | } |
581 | 548 | |
582 | -#ifdef _WIN32 | |
583 | -static gpointer select_file(struct file *fl) { | |
584 | - | |
585 | - | |
586 | - switch(fl->action) { | |
587 | - case GTK_FILE_CHOOSER_ACTION_SAVE: // Receber arquivo | |
588 | - // https://msdn.microsoft.com/en-us/library/windows/desktop/ms646839(v=vs.85).aspx | |
589 | - // https://msdn.microsoft.com/en-us/library/windows/desktop/ms646829(v=vs.85).aspx#open_file | |
590 | - fl->ofn.Flags = OFN_OVERWRITEPROMPT | OFN_CREATEPROMPT | OFN_HIDEREADONLY; | |
591 | - fl->ok = GetSaveFileName(&fl->ofn); | |
592 | - break; | |
593 | - | |
594 | - case GTK_FILE_CHOOSER_ACTION_OPEN: // Enviar arquivo | |
595 | - // https://msdn.microsoft.com/en-us/library/windows/desktop/ms646928(v=vs.85).aspx | |
596 | - fl->ofn.Flags = OFN_PATHMUSTEXIST | OFN_FILEMUSTEXIST | OFN_HIDEREADONLY; | |
597 | - fl->ok = GetOpenFileName(&fl->ofn); | |
598 | - break; | |
599 | - } | |
600 | - | |
601 | - fl->enabled = FALSE; | |
602 | - | |
603 | - return 0; | |
604 | -} | |
605 | -#endif // _WIN32 | |
606 | - | |
607 | - LIB3270_EXPORT gchar * pw3270_file_chooser(GtkFileChooserAction action, const gchar *name, const gchar *title, const gchar *file) | |
608 | - { | |
609 | - gchar * filename = NULL; | |
610 | - | |
611 | -#if defined(_WIN32) | |
612 | - | |
613 | - GThread * thd; | |
614 | - struct file fl; | |
615 | - GtkWidget * dialog = pw3270_get_toplevel(); | |
616 | - GdkWindow * win = gtk_widget_get_window(GTK_WIDGET(dialog)); | |
617 | - | |
618 | - gtk_widget_set_sensitive(GTK_WIDGET(dialog),FALSE); | |
619 | - | |
620 | - memset(&fl,0,sizeof(fl)); | |
621 | - fl.ofn.lStructSize = sizeof(fl.ofn); | |
622 | - fl.action = action; | |
623 | - fl.ofn.hwndOwner = GDK_WINDOW_HWND(win); | |
624 | - fl.ofn.lpstrFile = fl.szName; | |
625 | - fl.ofn.lpstrTitle = title; | |
626 | - | |
627 | - // Set lpstrFile[0] to '\0' so that GetOpenFileName does not | |
628 | - // use the contents of szFile to initialize itself. | |
629 | - fl.ofn.lpstrFile[0] = '\0'; | |
630 | - fl.ofn.nMaxFile = sizeof(fl.szName); | |
631 | - | |
632 | - fl.ofn.lpstrInitialDir = NULL; | |
633 | - fl.ofn.nMaxFileTitle = 0; | |
634 | - | |
635 | - // Guarda o valor atual | |
636 | - if(file && *file) | |
637 | - { | |
638 | - strncpy(fl.szName,file,fl.ofn.nMaxFile); | |
639 | - } | |
640 | - else | |
641 | - { | |
642 | - gchar *ptr = get_string_from_config("files",name,""); | |
643 | - if(*ptr) | |
644 | - strncpy(fl.szName,ptr,fl.ofn.nMaxFile); | |
645 | - else | |
646 | - fl.ofn.lpstrInitialDir = g_get_user_special_dir(G_USER_DIRECTORY_DOCUMENTS); | |
647 | - g_free(ptr); | |
648 | - } | |
649 | - | |
650 | - thd = g_thread_new("GetFileName",(GThreadFunc) select_file, &fl); | |
651 | - | |
652 | - fl.enabled = TRUE; | |
653 | - while(fl.enabled) { | |
654 | - g_main_context_iteration(NULL,TRUE); | |
655 | - } | |
656 | - | |
657 | - g_thread_unref(thd); | |
658 | - | |
659 | - if(fl.ok) { | |
660 | - filename = g_strdup(fl.szName); | |
661 | - } | |
662 | - | |
663 | - gtk_widget_set_sensitive(GTK_WIDGET(dialog),TRUE); | |
664 | - | |
665 | -#else | |
666 | - static const struct _btn | |
667 | - { | |
668 | - const gchar * button; | |
669 | - GtkFileChooserAction action; | |
670 | - } btn[] = | |
671 | - { | |
672 | - { GTK_STOCK_OPEN, GTK_FILE_CHOOSER_ACTION_OPEN }, | |
673 | - { GTK_STOCK_SAVE, GTK_FILE_CHOOSER_ACTION_SAVE }, | |
674 | - { GTK_STOCK_OK, GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER }, | |
675 | - { GTK_STOCK_OK, GTK_FILE_CHOOSER_ACTION_CREATE_FOLDER } | |
676 | - }; | |
677 | - | |
678 | - GtkWidget * dialog; | |
679 | - gchar * ptr; | |
680 | - const gchar * button = GTK_STOCK_OK; | |
681 | - int f; | |
682 | - | |
683 | - for(f=0;f<G_N_ELEMENTS(btn);f++) | |
684 | - { | |
685 | - if(action == btn[f].action) | |
686 | - { | |
687 | - button = btn[f].button; | |
688 | - break; | |
689 | - } | |
690 | - } | |
691 | - | |
692 | - dialog = gtk_file_chooser_dialog_new( title, | |
693 | - GTK_WINDOW(pw3270_get_toplevel()), | |
694 | - action, | |
695 | - GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, | |
696 | - button, GTK_RESPONSE_ACCEPT, | |
697 | - NULL ); | |
698 | - | |
699 | - if(action == GTK_FILE_CHOOSER_ACTION_SAVE) | |
700 | - { | |
701 | - gtk_file_chooser_set_do_overwrite_confirmation(GTK_FILE_CHOOSER(dialog), TRUE); | |
702 | - g_signal_connect(GTK_FILE_CHOOSER(dialog), "confirm-overwrite", G_CALLBACK(confirm_overwrite), G_OBJECT(dialog)); | |
703 | - } | |
704 | - | |
705 | - if(file && *file) | |
706 | - { | |
707 | - gtk_file_chooser_set_filename(GTK_FILE_CHOOSER(dialog),file); | |
708 | - } | |
709 | - else | |
710 | - { | |
711 | - ptr = get_string_from_config("files",name,""); | |
712 | - if(*ptr) | |
713 | - gtk_file_chooser_set_filename(GTK_FILE_CHOOSER(dialog),ptr); | |
714 | - else | |
715 | - gtk_file_chooser_set_current_folder(GTK_FILE_CHOOSER(dialog),g_get_user_special_dir(G_USER_DIRECTORY_DOCUMENTS)); | |
716 | - g_free(ptr); | |
717 | - } | |
718 | - | |
719 | - if(gtk_dialog_run(GTK_DIALOG(dialog)) == GTK_RESPONSE_ACCEPT) | |
720 | - { | |
721 | - filename = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(dialog)); | |
722 | - } | |
723 | - | |
724 | - gtk_widget_destroy(dialog); | |
725 | -#endif // _WIN32 | |
726 | - | |
727 | - if(filename && *filename) | |
728 | - set_string_to_config("files",name,"%s",filename); | |
729 | - | |
730 | - return filename; | |
731 | - } | ... | ... |