summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGrant Gayed <ggayed>2004-05-27 21:48:41 +0000
committerGrant Gayed <ggayed>2004-05-27 21:48:41 +0000
commit0f19e4967bd7565d0b817b526213289acd242b74 (patch)
treecbceb5364eaa6df9788944265b0b35521a0f5936
parent06dc38e623afcc69453149a4908e940401d48a28 (diff)
downloadeclipse.platform.swt-0f19e4967bd7565d0b817b526213289acd242b74.tar.gz
eclipse.platform.swt-0f19e4967bd7565d0b817b526213289acd242b74.tar.xz
eclipse.platform.swt-0f19e4967bd7565d0b817b526213289acd242b74.zip
62558
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT PI/gtk/library/os.c31
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT PI/gtk/library/os_custom.h1
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT PI/gtk/library/os_stats.c5
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT PI/gtk/library/os_stats.h499
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT PI/gtk/org/eclipse/swt/internal/gtk/OS.java1
-rw-r--r--bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/FileDialog.java137
6 files changed, 372 insertions, 302 deletions
diff --git a/bundles/org.eclipse.swt/Eclipse SWT PI/gtk/library/os.c b/bundles/org.eclipse.swt/Eclipse SWT PI/gtk/library/os.c
index ca994eceb4..6b29cc4e23 100644
--- a/bundles/org.eclipse.swt/Eclipse SWT PI/gtk/library/os.c
+++ b/bundles/org.eclipse.swt/Eclipse SWT PI/gtk/library/os.c
@@ -7242,6 +7242,37 @@ JNIEXPORT jboolean JNICALL OS_NATIVE(gtk_1tree_1selection_1get_1selected)
}
#endif
+#ifndef NO_gtk_1tree_1selection_1get_1selected_1rows
+JNIEXPORT jint JNICALL OS_NATIVE(gtk_1tree_1selection_1get_1selected_1rows)
+ (JNIEnv *env, jclass that, jint arg0, jintArray arg1)
+{
+ jint *lparg1=NULL;
+ jint rc;
+ OS_NATIVE_ENTER(env, that, gtk_1tree_1selection_1get_1selected_1rows_FUNC);
+ if (arg1) lparg1 = (*env)->GetIntArrayElements(env, arg1, NULL);
+/*
+ rc = (jint)gtk_tree_selection_get_selected_rows((GtkTreeSelection *)arg0, (GtkTreeModel **)lparg1);
+*/
+ {
+ static int initialized = 0;
+ static void *handle = NULL;
+ static jint (*fptr)(GtkTreeSelection *, GtkTreeModel **);
+ rc = 0;
+ if (!initialized) {
+ if (!handle) handle = dlopen(gtk_tree_selection_get_selected_rows_LIB, RTLD_LAZY);
+ if (handle) fptr = dlsym(handle, "gtk_tree_selection_get_selected_rows");
+ initialized = 1;
+ }
+ if (fptr) {
+ rc = (jint)(*fptr)((GtkTreeSelection *)arg0, (GtkTreeModel **)lparg1);
+ }
+ }
+ if (arg1) (*env)->ReleaseIntArrayElements(env, arg1, lparg1, 0);
+ OS_NATIVE_EXIT(env, that, gtk_1tree_1selection_1get_1selected_1rows_FUNC);
+ return rc;
+}
+#endif
+
#ifndef NO_gtk_1tree_1selection_1path_1is_1selected
JNIEXPORT jboolean JNICALL OS_NATIVE(gtk_1tree_1selection_1path_1is_1selected)
(JNIEnv *env, jclass that, jint arg0, jint arg1)
diff --git a/bundles/org.eclipse.swt/Eclipse SWT PI/gtk/library/os_custom.h b/bundles/org.eclipse.swt/Eclipse SWT PI/gtk/library/os_custom.h
index e4f2ae1000..f3881cba01 100644
--- a/bundles/org.eclipse.swt/Eclipse SWT PI/gtk/library/os_custom.h
+++ b/bundles/org.eclipse.swt/Eclipse SWT PI/gtk/library/os_custom.h
@@ -19,6 +19,7 @@
#define PTR_sizeof() sizeof(void *)
/* Libraries for dynamic loaded functions */
+#define gtk_tree_selection_get_selected_rows_LIB "libgtk-x11-2.0.so"
#define gtk_tree_view_column_cell_get_position_LIB "libgtk-x11-2.0.so"
#define gtk_entry_set_alignment_LIB "libgtk-x11-2.0.so"
#define gdk_screen_get_default_LIB "libgdk-x11-2.0.so"
diff --git a/bundles/org.eclipse.swt/Eclipse SWT PI/gtk/library/os_stats.c b/bundles/org.eclipse.swt/Eclipse SWT PI/gtk/library/os_stats.c
index 9e3bcece7d..a3c9f001b7 100644
--- a/bundles/org.eclipse.swt/Eclipse SWT PI/gtk/library/os_stats.c
+++ b/bundles/org.eclipse.swt/Eclipse SWT PI/gtk/library/os_stats.c
@@ -18,8 +18,8 @@
#ifdef NATIVE_STATS
-int OS_nativeFunctionCount = 826;
-int OS_nativeFunctionCallCount[826];
+int OS_nativeFunctionCount = 827;
+int OS_nativeFunctionCallCount[827];
char * OS_nativeFunctionNames[] = {
"GDK_1DISPLAY",
"GDK_1ROOT_1PARENT",
@@ -598,6 +598,7 @@ char * OS_nativeFunctionNames[] = {
"gtk_1tree_1path_1new_1from_1string___3B",
"gtk_1tree_1path_1up",
"gtk_1tree_1selection_1get_1selected",
+ "gtk_1tree_1selection_1get_1selected_1rows",
"gtk_1tree_1selection_1path_1is_1selected",
"gtk_1tree_1selection_1select_1all",
"gtk_1tree_1selection_1select_1iter",
diff --git a/bundles/org.eclipse.swt/Eclipse SWT PI/gtk/library/os_stats.h b/bundles/org.eclipse.swt/Eclipse SWT PI/gtk/library/os_stats.h
index 1bef6d9d55..5c6e546240 100644
--- a/bundles/org.eclipse.swt/Eclipse SWT PI/gtk/library/os_stats.h
+++ b/bundles/org.eclipse.swt/Eclipse SWT PI/gtk/library/os_stats.h
@@ -600,252 +600,253 @@ char* OS_nativeFunctionNames[];
#define gtk_1tree_1path_1new_1from_1string___3B_FUNC 574
#define gtk_1tree_1path_1up_FUNC 575
#define gtk_1tree_1selection_1get_1selected_FUNC 576
-#define gtk_1tree_1selection_1path_1is_1selected_FUNC 577
-#define gtk_1tree_1selection_1select_1all_FUNC 578
-#define gtk_1tree_1selection_1select_1iter_FUNC 579
-#define gtk_1tree_1selection_1selected_1foreach_FUNC 580
-#define gtk_1tree_1selection_1set_1mode_FUNC 581
-#define gtk_1tree_1selection_1unselect_1all_FUNC 582
-#define gtk_1tree_1selection_1unselect_1iter_FUNC 583
-#define gtk_1tree_1store_1append_FUNC 584
-#define gtk_1tree_1store_1clear_FUNC 585
-#define gtk_1tree_1store_1insert_FUNC 586
-#define gtk_1tree_1store_1newv_FUNC 587
-#define gtk_1tree_1store_1remove_FUNC 588
-#define gtk_1tree_1store_1set__IIIII_FUNC 589
-#define gtk_1tree_1store_1set__IIIJI_FUNC 590
-#define gtk_1tree_1store_1set__IIILorg_eclipse_swt_internal_gtk_GdkColor_2I_FUNC 591
-#define gtk_1tree_1store_1set__IIIZI_FUNC 592
-#define gtk_1tree_1store_1set__III_3BI_FUNC 593
-#define gtk_1tree_1view_1collapse_1row_FUNC 594
-#define gtk_1tree_1view_1column_1add_1attribute_FUNC 595
-#define gtk_1tree_1view_1column_1cell_1get_1position_FUNC 596
-#define gtk_1tree_1view_1column_1cell_1get_1size_FUNC 597
-#define gtk_1tree_1view_1column_1cell_1set_1cell_1data_FUNC 598
-#define gtk_1tree_1view_1column_1clear_FUNC 599
-#define gtk_1tree_1view_1column_1get_1cell_1renderers_FUNC 600
-#define gtk_1tree_1view_1column_1get_1resizable_FUNC 601
-#define gtk_1tree_1view_1column_1get_1spacing_FUNC 602
-#define gtk_1tree_1view_1column_1get_1visible_FUNC 603
-#define gtk_1tree_1view_1column_1get_1width_FUNC 604
-#define gtk_1tree_1view_1column_1new_FUNC 605
-#define gtk_1tree_1view_1column_1pack_1end_FUNC 606
-#define gtk_1tree_1view_1column_1pack_1start_FUNC 607
-#define gtk_1tree_1view_1column_1set_1alignment_FUNC 608
-#define gtk_1tree_1view_1column_1set_1cell_1data_1func_FUNC 609
-#define gtk_1tree_1view_1column_1set_1clickable_FUNC 610
-#define gtk_1tree_1view_1column_1set_1fixed_1width_FUNC 611
-#define gtk_1tree_1view_1column_1set_1resizable_FUNC 612
-#define gtk_1tree_1view_1column_1set_1sizing_FUNC 613
-#define gtk_1tree_1view_1column_1set_1title_FUNC 614
-#define gtk_1tree_1view_1column_1set_1visible_FUNC 615
-#define gtk_1tree_1view_1column_1set_1widget_FUNC 616
-#define gtk_1tree_1view_1expand_1row_FUNC 617
-#define gtk_1tree_1view_1get_1bin_1window_FUNC 618
-#define gtk_1tree_1view_1get_1cell_1area_FUNC 619
-#define gtk_1tree_1view_1get_1column_FUNC 620
-#define gtk_1tree_1view_1get_1cursor_FUNC 621
-#define gtk_1tree_1view_1get_1expander_1column_FUNC 622
-#define gtk_1tree_1view_1get_1headers_1visible_FUNC 623
-#define gtk_1tree_1view_1get_1path_1at_1pos_FUNC 624
-#define gtk_1tree_1view_1get_1rules_1hint_FUNC 625
-#define gtk_1tree_1view_1get_1selection_FUNC 626
-#define gtk_1tree_1view_1get_1visible_1rect_FUNC 627
-#define gtk_1tree_1view_1insert_1column_FUNC 628
-#define gtk_1tree_1view_1new_1with_1model_FUNC 629
-#define gtk_1tree_1view_1remove_1column_FUNC 630
-#define gtk_1tree_1view_1row_1expanded_FUNC 631
-#define gtk_1tree_1view_1scroll_1to_1cell_FUNC 632
-#define gtk_1tree_1view_1scroll_1to_1point_FUNC 633
-#define gtk_1tree_1view_1set_1cursor_FUNC 634
-#define gtk_1tree_1view_1set_1drag_1dest_1row_FUNC 635
-#define gtk_1tree_1view_1set_1headers_1visible_FUNC 636
-#define gtk_1tree_1view_1set_1model_FUNC 637
-#define gtk_1tree_1view_1set_1rules_1hint_FUNC 638
-#define gtk_1tree_1view_1tree_1to_1widget_1coords_FUNC 639
-#define gtk_1tree_1view_1unset_1rows_1drag_1dest_FUNC 640
-#define gtk_1tree_1view_1widget_1to_1tree_1coords_FUNC 641
-#define gtk_1vbox_1new_FUNC 642
-#define gtk_1vscale_1new_FUNC 643
-#define gtk_1vscrollbar_1new_FUNC 644
-#define gtk_1vseparator_1new_FUNC 645
-#define gtk_1widget_1add_1accelerator_FUNC 646
-#define gtk_1widget_1add_1events_FUNC 647
-#define gtk_1widget_1child_1focus_FUNC 648
-#define gtk_1widget_1create_1pango_1layout__II_FUNC 649
-#define gtk_1widget_1create_1pango_1layout__I_3B_FUNC 650
-#define gtk_1widget_1destroy_FUNC 651
-#define gtk_1widget_1event_FUNC 652
-#define gtk_1widget_1get_1default_1direction_FUNC 653
-#define gtk_1widget_1get_1default_1style_FUNC 654
-#define gtk_1widget_1get_1direction_FUNC 655
-#define gtk_1widget_1get_1modifier_1style_FUNC 656
-#define gtk_1widget_1get_1pango_1context_FUNC 657
-#define gtk_1widget_1get_1parent_FUNC 658
-#define gtk_1widget_1get_1style_FUNC 659
-#define gtk_1widget_1grab_1focus_FUNC 660
-#define gtk_1widget_1hide_FUNC 661
-#define gtk_1widget_1is_1focus_FUNC 662
-#define gtk_1widget_1mnemonic_1activate_FUNC 663
-#define gtk_1widget_1modify_1base_FUNC 664
-#define gtk_1widget_1modify_1bg_FUNC 665
-#define gtk_1widget_1modify_1fg_FUNC 666
-#define gtk_1widget_1modify_1font_FUNC 667
-#define gtk_1widget_1modify_1style_FUNC 668
-#define gtk_1widget_1modify_1text_FUNC 669
-#define gtk_1widget_1realize_FUNC 670
-#define gtk_1widget_1remove_1accelerator_FUNC 671
-#define gtk_1widget_1reparent_FUNC 672
-#define gtk_1widget_1set_1default_1direction_FUNC 673
-#define gtk_1widget_1set_1direction_FUNC 674
-#define gtk_1widget_1set_1double_1buffered_FUNC 675
-#define gtk_1widget_1set_1name_FUNC 676
-#define gtk_1widget_1set_1redraw_1on_1allocate_FUNC 677
-#define gtk_1widget_1set_1sensitive_FUNC 678
-#define gtk_1widget_1set_1size_1request_FUNC 679
-#define gtk_1widget_1set_1state_FUNC 680
-#define gtk_1widget_1shape_1combine_1mask_FUNC 681
-#define gtk_1widget_1show_FUNC 682
-#define gtk_1widget_1show_1now_FUNC 683
-#define gtk_1widget_1size_1allocate_FUNC 684
-#define gtk_1widget_1size_1request_FUNC 685
-#define gtk_1widget_1style_1get_FUNC 686
-#define gtk_1widget_1unrealize_FUNC 687
-#define gtk_1window_1activate_1default_FUNC 688
-#define gtk_1window_1add_1accel_1group_FUNC 689
-#define gtk_1window_1deiconify_FUNC 690
-#define gtk_1window_1get_1focus_FUNC 691
-#define gtk_1window_1get_1mnemonic_1modifier_FUNC 692
-#define gtk_1window_1get_1position_FUNC 693
-#define gtk_1window_1get_1size_FUNC 694
-#define gtk_1window_1iconify_FUNC 695
-#define gtk_1window_1maximize_FUNC 696
-#define gtk_1window_1move_FUNC 697
-#define gtk_1window_1new_FUNC 698
-#define gtk_1window_1present_FUNC 699
-#define gtk_1window_1remove_1accel_1group_FUNC 700
-#define gtk_1window_1resize_FUNC 701
-#define gtk_1window_1set_1default_FUNC 702
-#define gtk_1window_1set_1destroy_1with_1parent_FUNC 703
-#define gtk_1window_1set_1modal_FUNC 704
-#define gtk_1window_1set_1resizable_FUNC 705
-#define gtk_1window_1set_1title_FUNC 706
-#define gtk_1window_1set_1transient_1for_FUNC 707
-#define gtk_1window_1set_1type_1hint_FUNC 708
-#define gtk_1window_1unmaximize_FUNC 709
-#define memmove__ILorg_eclipse_swt_internal_gtk_GdkEventButton_2I_FUNC 710
-#define memmove__ILorg_eclipse_swt_internal_gtk_GtkAdjustment_2_FUNC 711
-#define memmove__ILorg_eclipse_swt_internal_gtk_GtkFixed_2_FUNC 712
-#define memmove__ILorg_eclipse_swt_internal_gtk_GtkTargetEntry_2I_FUNC 713
-#define memmove__ILorg_eclipse_swt_internal_gtk_PangoAttribute_2I_FUNC 714
-#define memmove__ILorg_eclipse_swt_internal_gtk_XClientMessageEvent_2I_FUNC 715
-#define memmove__I_3BI_FUNC 716
-#define memmove__I_3II_FUNC 717
-#define memmove__Lorg_eclipse_swt_internal_gtk_GdkColor_2II_FUNC 718
-#define memmove__Lorg_eclipse_swt_internal_gtk_GdkDragContext_2II_FUNC 719
-#define memmove__Lorg_eclipse_swt_internal_gtk_GdkEventButton_2II_FUNC 720
-#define memmove__Lorg_eclipse_swt_internal_gtk_GdkEventCrossing_2II_FUNC 721
-#define memmove__Lorg_eclipse_swt_internal_gtk_GdkEventExpose_2II_FUNC 722
-#define memmove__Lorg_eclipse_swt_internal_gtk_GdkEventFocus_2II_FUNC 723
-#define memmove__Lorg_eclipse_swt_internal_gtk_GdkEventKey_2II_FUNC 724
-#define memmove__Lorg_eclipse_swt_internal_gtk_GdkEventWindowState_2II_FUNC 725
-#define memmove__Lorg_eclipse_swt_internal_gtk_GdkEvent_2II_FUNC 726
-#define memmove__Lorg_eclipse_swt_internal_gtk_GdkImage_2I_FUNC 727
-#define memmove__Lorg_eclipse_swt_internal_gtk_GdkRectangle_2II_FUNC 728
-#define memmove__Lorg_eclipse_swt_internal_gtk_GdkVisual_2I_FUNC 729
-#define memmove__Lorg_eclipse_swt_internal_gtk_GtkAdjustment_2I_FUNC 730
-#define memmove__Lorg_eclipse_swt_internal_gtk_GtkColorSelectionDialog_2I_FUNC 731
-#define memmove__Lorg_eclipse_swt_internal_gtk_GtkCombo_2I_FUNC 732
-#define memmove__Lorg_eclipse_swt_internal_gtk_GtkFileSelection_2I_FUNC 733
-#define memmove__Lorg_eclipse_swt_internal_gtk_GtkFixed_2I_FUNC 734
-#define memmove__Lorg_eclipse_swt_internal_gtk_GtkSelectionData_2II_FUNC 735
-#define memmove__Lorg_eclipse_swt_internal_gtk_GtkTargetPair_2II_FUNC 736
-#define memmove__Lorg_eclipse_swt_internal_gtk_PangoAttribute_2II_FUNC 737
-#define memmove__Lorg_eclipse_swt_internal_gtk_PangoItem_2II_FUNC 738
-#define memmove__Lorg_eclipse_swt_internal_gtk_PangoLayoutLine_2II_FUNC 739
-#define memmove__Lorg_eclipse_swt_internal_gtk_PangoLayoutRun_2II_FUNC 740
-#define memmove__Lorg_eclipse_swt_internal_gtk_PangoLogAttr_2II_FUNC 741
-#define memmove__Lorg_eclipse_swt_internal_gtk_XExposeEvent_2II_FUNC 742
-#define memmove___3BII_FUNC 743
-#define memmove___3CII_FUNC 744
-#define memmove___3III_FUNC 745
-#define memmove___3I_3BI_FUNC 746
-#define memmove___3JII_FUNC 747
-#define memset_FUNC 748
-#define pango_1attr_1background_1new_FUNC 749
-#define pango_1attr_1font_1desc_1new_FUNC 750
-#define pango_1attr_1foreground_1new_FUNC 751
-#define pango_1attr_1list_1change_FUNC 752
-#define pango_1attr_1list_1insert_FUNC 753
-#define pango_1attr_1list_1new_FUNC 754
-#define pango_1attr_1list_1unref_FUNC 755
-#define pango_1attr_1shape_1new_FUNC 756
-#define pango_1attr_1strikethrough_1new_FUNC 757
-#define pango_1attr_1underline_1new_FUNC 758
-#define pango_1attr_1weight_1new_FUNC 759
-#define pango_1context_1get_1base_1dir_FUNC 760
-#define pango_1context_1get_1language_FUNC 761
-#define pango_1context_1get_1metrics_FUNC 762
-#define pango_1context_1list_1families_FUNC 763
-#define pango_1context_1set_1base_1dir_FUNC 764
-#define pango_1context_1set_1language_FUNC 765
-#define pango_1font_1description_1copy_FUNC 766
-#define pango_1font_1description_1free_FUNC 767
-#define pango_1font_1description_1from_1string_FUNC 768
-#define pango_1font_1description_1get_1family_FUNC 769
-#define pango_1font_1description_1get_1size_FUNC 770
-#define pango_1font_1description_1get_1style_FUNC 771
-#define pango_1font_1description_1get_1weight_FUNC 772
-#define pango_1font_1description_1new_FUNC 773
-#define pango_1font_1description_1set_1family_FUNC 774
-#define pango_1font_1description_1set_1size_FUNC 775
-#define pango_1font_1description_1set_1stretch_FUNC 776
-#define pango_1font_1description_1set_1style_FUNC 777
-#define pango_1font_1description_1set_1weight_FUNC 778
-#define pango_1font_1description_1to_1string_FUNC 779
-#define pango_1font_1face_1describe_FUNC 780
-#define pango_1font_1family_1list_1faces_FUNC 781
-#define pango_1font_1get_1metrics_FUNC 782
-#define pango_1font_1metrics_1get_1approximate_1char_1width_FUNC 783
-#define pango_1font_1metrics_1get_1ascent_FUNC 784
-#define pango_1font_1metrics_1get_1descent_FUNC 785
-#define pango_1font_1metrics_1unref_FUNC 786
-#define pango_1language_1from_1string_FUNC 787
-#define pango_1layout_1context_1changed_FUNC 788
-#define pango_1layout_1get_1alignment_FUNC 789
-#define pango_1layout_1get_1attributes_FUNC 790
-#define pango_1layout_1get_1iter_FUNC 791
-#define pango_1layout_1get_1line_FUNC 792
-#define pango_1layout_1get_1line_1count_FUNC 793
-#define pango_1layout_1get_1log_1attrs_FUNC 794
-#define pango_1layout_1get_1size_FUNC 795
-#define pango_1layout_1get_1spacing_FUNC 796
-#define pango_1layout_1get_1tabs_FUNC 797
-#define pango_1layout_1get_1text_FUNC 798
-#define pango_1layout_1get_1width_FUNC 799
-#define pango_1layout_1index_1to_1pos_FUNC 800
-#define pango_1layout_1iter_1free_FUNC 801
-#define pango_1layout_1iter_1get_1index_FUNC 802
-#define pango_1layout_1iter_1get_1line_1extents_FUNC 803
-#define pango_1layout_1iter_1get_1run_FUNC 804
-#define pango_1layout_1iter_1next_1line_FUNC 805
-#define pango_1layout_1iter_1next_1run_FUNC 806
-#define pango_1layout_1line_1get_1extents_FUNC 807
-#define pango_1layout_1line_1x_1to_1index_FUNC 808
-#define pango_1layout_1new_FUNC 809
-#define pango_1layout_1set_1alignment_FUNC 810
-#define pango_1layout_1set_1attributes_FUNC 811
-#define pango_1layout_1set_1font_1description_FUNC 812
-#define pango_1layout_1set_1single_1paragraph_1mode_FUNC 813
-#define pango_1layout_1set_1spacing_FUNC 814
-#define pango_1layout_1set_1tabs_FUNC 815
-#define pango_1layout_1set_1text_FUNC 816
-#define pango_1layout_1set_1width_FUNC 817
-#define pango_1layout_1set_1wrap_FUNC 818
-#define pango_1layout_1xy_1to_1index_FUNC 819
-#define pango_1tab_1array_1free_FUNC 820
-#define pango_1tab_1array_1get_1size_FUNC 821
-#define pango_1tab_1array_1get_1tabs_FUNC 822
-#define pango_1tab_1array_1new_FUNC 823
-#define pango_1tab_1array_1set_1tab_FUNC 824
-#define strlen_FUNC 825
+#define gtk_1tree_1selection_1get_1selected_1rows_FUNC 577
+#define gtk_1tree_1selection_1path_1is_1selected_FUNC 578
+#define gtk_1tree_1selection_1select_1all_FUNC 579
+#define gtk_1tree_1selection_1select_1iter_FUNC 580
+#define gtk_1tree_1selection_1selected_1foreach_FUNC 581
+#define gtk_1tree_1selection_1set_1mode_FUNC 582
+#define gtk_1tree_1selection_1unselect_1all_FUNC 583
+#define gtk_1tree_1selection_1unselect_1iter_FUNC 584
+#define gtk_1tree_1store_1append_FUNC 585
+#define gtk_1tree_1store_1clear_FUNC 586
+#define gtk_1tree_1store_1insert_FUNC 587
+#define gtk_1tree_1store_1newv_FUNC 588
+#define gtk_1tree_1store_1remove_FUNC 589
+#define gtk_1tree_1store_1set__IIIII_FUNC 590
+#define gtk_1tree_1store_1set__IIIJI_FUNC 591
+#define gtk_1tree_1store_1set__IIILorg_eclipse_swt_internal_gtk_GdkColor_2I_FUNC 592
+#define gtk_1tree_1store_1set__IIIZI_FUNC 593
+#define gtk_1tree_1store_1set__III_3BI_FUNC 594
+#define gtk_1tree_1view_1collapse_1row_FUNC 595
+#define gtk_1tree_1view_1column_1add_1attribute_FUNC 596
+#define gtk_1tree_1view_1column_1cell_1get_1position_FUNC 597
+#define gtk_1tree_1view_1column_1cell_1get_1size_FUNC 598
+#define gtk_1tree_1view_1column_1cell_1set_1cell_1data_FUNC 599
+#define gtk_1tree_1view_1column_1clear_FUNC 600
+#define gtk_1tree_1view_1column_1get_1cell_1renderers_FUNC 601
+#define gtk_1tree_1view_1column_1get_1resizable_FUNC 602
+#define gtk_1tree_1view_1column_1get_1spacing_FUNC 603
+#define gtk_1tree_1view_1column_1get_1visible_FUNC 604
+#define gtk_1tree_1view_1column_1get_1width_FUNC 605
+#define gtk_1tree_1view_1column_1new_FUNC 606
+#define gtk_1tree_1view_1column_1pack_1end_FUNC 607
+#define gtk_1tree_1view_1column_1pack_1start_FUNC 608
+#define gtk_1tree_1view_1column_1set_1alignment_FUNC 609
+#define gtk_1tree_1view_1column_1set_1cell_1data_1func_FUNC 610
+#define gtk_1tree_1view_1column_1set_1clickable_FUNC 611
+#define gtk_1tree_1view_1column_1set_1fixed_1width_FUNC 612
+#define gtk_1tree_1view_1column_1set_1resizable_FUNC 613
+#define gtk_1tree_1view_1column_1set_1sizing_FUNC 614
+#define gtk_1tree_1view_1column_1set_1title_FUNC 615
+#define gtk_1tree_1view_1column_1set_1visible_FUNC 616
+#define gtk_1tree_1view_1column_1set_1widget_FUNC 617
+#define gtk_1tree_1view_1expand_1row_FUNC 618
+#define gtk_1tree_1view_1get_1bin_1window_FUNC 619
+#define gtk_1tree_1view_1get_1cell_1area_FUNC 620
+#define gtk_1tree_1view_1get_1column_FUNC 621
+#define gtk_1tree_1view_1get_1cursor_FUNC 622
+#define gtk_1tree_1view_1get_1expander_1column_FUNC 623
+#define gtk_1tree_1view_1get_1headers_1visible_FUNC 624
+#define gtk_1tree_1view_1get_1path_1at_1pos_FUNC 625
+#define gtk_1tree_1view_1get_1rules_1hint_FUNC 626
+#define gtk_1tree_1view_1get_1selection_FUNC 627
+#define gtk_1tree_1view_1get_1visible_1rect_FUNC 628
+#define gtk_1tree_1view_1insert_1column_FUNC 629
+#define gtk_1tree_1view_1new_1with_1model_FUNC 630
+#define gtk_1tree_1view_1remove_1column_FUNC 631
+#define gtk_1tree_1view_1row_1expanded_FUNC 632
+#define gtk_1tree_1view_1scroll_1to_1cell_FUNC 633
+#define gtk_1tree_1view_1scroll_1to_1point_FUNC 634
+#define gtk_1tree_1view_1set_1cursor_FUNC 635
+#define gtk_1tree_1view_1set_1drag_1dest_1row_FUNC 636
+#define gtk_1tree_1view_1set_1headers_1visible_FUNC 637
+#define gtk_1tree_1view_1set_1model_FUNC 638
+#define gtk_1tree_1view_1set_1rules_1hint_FUNC 639
+#define gtk_1tree_1view_1tree_1to_1widget_1coords_FUNC 640
+#define gtk_1tree_1view_1unset_1rows_1drag_1dest_FUNC 641
+#define gtk_1tree_1view_1widget_1to_1tree_1coords_FUNC 642
+#define gtk_1vbox_1new_FUNC 643
+#define gtk_1vscale_1new_FUNC 644
+#define gtk_1vscrollbar_1new_FUNC 645
+#define gtk_1vseparator_1new_FUNC 646
+#define gtk_1widget_1add_1accelerator_FUNC 647
+#define gtk_1widget_1add_1events_FUNC 648
+#define gtk_1widget_1child_1focus_FUNC 649
+#define gtk_1widget_1create_1pango_1layout__II_FUNC 650
+#define gtk_1widget_1create_1pango_1layout__I_3B_FUNC 651
+#define gtk_1widget_1destroy_FUNC 652
+#define gtk_1widget_1event_FUNC 653
+#define gtk_1widget_1get_1default_1direction_FUNC 654
+#define gtk_1widget_1get_1default_1style_FUNC 655
+#define gtk_1widget_1get_1direction_FUNC 656
+#define gtk_1widget_1get_1modifier_1style_FUNC 657
+#define gtk_1widget_1get_1pango_1context_FUNC 658
+#define gtk_1widget_1get_1parent_FUNC 659
+#define gtk_1widget_1get_1style_FUNC 660
+#define gtk_1widget_1grab_1focus_FUNC 661
+#define gtk_1widget_1hide_FUNC 662
+#define gtk_1widget_1is_1focus_FUNC 663
+#define gtk_1widget_1mnemonic_1activate_FUNC 664
+#define gtk_1widget_1modify_1base_FUNC 665
+#define gtk_1widget_1modify_1bg_FUNC 666
+#define gtk_1widget_1modify_1fg_FUNC 667
+#define gtk_1widget_1modify_1font_FUNC 668
+#define gtk_1widget_1modify_1style_FUNC 669
+#define gtk_1widget_1modify_1text_FUNC 670
+#define gtk_1widget_1realize_FUNC 671
+#define gtk_1widget_1remove_1accelerator_FUNC 672
+#define gtk_1widget_1reparent_FUNC 673
+#define gtk_1widget_1set_1default_1direction_FUNC 674
+#define gtk_1widget_1set_1direction_FUNC 675
+#define gtk_1widget_1set_1double_1buffered_FUNC 676
+#define gtk_1widget_1set_1name_FUNC 677
+#define gtk_1widget_1set_1redraw_1on_1allocate_FUNC 678
+#define gtk_1widget_1set_1sensitive_FUNC 679
+#define gtk_1widget_1set_1size_1request_FUNC 680
+#define gtk_1widget_1set_1state_FUNC 681
+#define gtk_1widget_1shape_1combine_1mask_FUNC 682
+#define gtk_1widget_1show_FUNC 683
+#define gtk_1widget_1show_1now_FUNC 684
+#define gtk_1widget_1size_1allocate_FUNC 685
+#define gtk_1widget_1size_1request_FUNC 686
+#define gtk_1widget_1style_1get_FUNC 687
+#define gtk_1widget_1unrealize_FUNC 688
+#define gtk_1window_1activate_1default_FUNC 689
+#define gtk_1window_1add_1accel_1group_FUNC 690
+#define gtk_1window_1deiconify_FUNC 691
+#define gtk_1window_1get_1focus_FUNC 692
+#define gtk_1window_1get_1mnemonic_1modifier_FUNC 693
+#define gtk_1window_1get_1position_FUNC 694
+#define gtk_1window_1get_1size_FUNC 695
+#define gtk_1window_1iconify_FUNC 696
+#define gtk_1window_1maximize_FUNC 697
+#define gtk_1window_1move_FUNC 698
+#define gtk_1window_1new_FUNC 699
+#define gtk_1window_1present_FUNC 700
+#define gtk_1window_1remove_1accel_1group_FUNC 701
+#define gtk_1window_1resize_FUNC 702
+#define gtk_1window_1set_1default_FUNC 703
+#define gtk_1window_1set_1destroy_1with_1parent_FUNC 704
+#define gtk_1window_1set_1modal_FUNC 705
+#define gtk_1window_1set_1resizable_FUNC 706
+#define gtk_1window_1set_1title_FUNC 707
+#define gtk_1window_1set_1transient_1for_FUNC 708
+#define gtk_1window_1set_1type_1hint_FUNC 709
+#define gtk_1window_1unmaximize_FUNC 710
+#define memmove__ILorg_eclipse_swt_internal_gtk_GdkEventButton_2I_FUNC 711
+#define memmove__ILorg_eclipse_swt_internal_gtk_GtkAdjustment_2_FUNC 712
+#define memmove__ILorg_eclipse_swt_internal_gtk_GtkFixed_2_FUNC 713
+#define memmove__ILorg_eclipse_swt_internal_gtk_GtkTargetEntry_2I_FUNC 714
+#define memmove__ILorg_eclipse_swt_internal_gtk_PangoAttribute_2I_FUNC 715
+#define memmove__ILorg_eclipse_swt_internal_gtk_XClientMessageEvent_2I_FUNC 716
+#define memmove__I_3BI_FUNC 717
+#define memmove__I_3II_FUNC 718
+#define memmove__Lorg_eclipse_swt_internal_gtk_GdkColor_2II_FUNC 719
+#define memmove__Lorg_eclipse_swt_internal_gtk_GdkDragContext_2II_FUNC 720
+#define memmove__Lorg_eclipse_swt_internal_gtk_GdkEventButton_2II_FUNC 721
+#define memmove__Lorg_eclipse_swt_internal_gtk_GdkEventCrossing_2II_FUNC 722
+#define memmove__Lorg_eclipse_swt_internal_gtk_GdkEventExpose_2II_FUNC 723
+#define memmove__Lorg_eclipse_swt_internal_gtk_GdkEventFocus_2II_FUNC 724
+#define memmove__Lorg_eclipse_swt_internal_gtk_GdkEventKey_2II_FUNC 725
+#define memmove__Lorg_eclipse_swt_internal_gtk_GdkEventWindowState_2II_FUNC 726
+#define memmove__Lorg_eclipse_swt_internal_gtk_GdkEvent_2II_FUNC 727
+#define memmove__Lorg_eclipse_swt_internal_gtk_GdkImage_2I_FUNC 728
+#define memmove__Lorg_eclipse_swt_internal_gtk_GdkRectangle_2II_FUNC 729
+#define memmove__Lorg_eclipse_swt_internal_gtk_GdkVisual_2I_FUNC 730
+#define memmove__Lorg_eclipse_swt_internal_gtk_GtkAdjustment_2I_FUNC 731
+#define memmove__Lorg_eclipse_swt_internal_gtk_GtkColorSelectionDialog_2I_FUNC 732
+#define memmove__Lorg_eclipse_swt_internal_gtk_GtkCombo_2I_FUNC 733
+#define memmove__Lorg_eclipse_swt_internal_gtk_GtkFileSelection_2I_FUNC 734
+#define memmove__Lorg_eclipse_swt_internal_gtk_GtkFixed_2I_FUNC 735
+#define memmove__Lorg_eclipse_swt_internal_gtk_GtkSelectionData_2II_FUNC 736
+#define memmove__Lorg_eclipse_swt_internal_gtk_GtkTargetPair_2II_FUNC 737
+#define memmove__Lorg_eclipse_swt_internal_gtk_PangoAttribute_2II_FUNC 738
+#define memmove__Lorg_eclipse_swt_internal_gtk_PangoItem_2II_FUNC 739
+#define memmove__Lorg_eclipse_swt_internal_gtk_PangoLayoutLine_2II_FUNC 740
+#define memmove__Lorg_eclipse_swt_internal_gtk_PangoLayoutRun_2II_FUNC 741
+#define memmove__Lorg_eclipse_swt_internal_gtk_PangoLogAttr_2II_FUNC 742
+#define memmove__Lorg_eclipse_swt_internal_gtk_XExposeEvent_2II_FUNC 743
+#define memmove___3BII_FUNC 744
+#define memmove___3CII_FUNC 745
+#define memmove___3III_FUNC 746
+#define memmove___3I_3BI_FUNC 747
+#define memmove___3JII_FUNC 748
+#define memset_FUNC 749
+#define pango_1attr_1background_1new_FUNC 750
+#define pango_1attr_1font_1desc_1new_FUNC 751
+#define pango_1attr_1foreground_1new_FUNC 752
+#define pango_1attr_1list_1change_FUNC 753
+#define pango_1attr_1list_1insert_FUNC 754
+#define pango_1attr_1list_1new_FUNC 755
+#define pango_1attr_1list_1unref_FUNC 756
+#define pango_1attr_1shape_1new_FUNC 757
+#define pango_1attr_1strikethrough_1new_FUNC 758
+#define pango_1attr_1underline_1new_FUNC 759
+#define pango_1attr_1weight_1new_FUNC 760
+#define pango_1context_1get_1base_1dir_FUNC 761
+#define pango_1context_1get_1language_FUNC 762
+#define pango_1context_1get_1metrics_FUNC 763
+#define pango_1context_1list_1families_FUNC 764
+#define pango_1context_1set_1base_1dir_FUNC 765
+#define pango_1context_1set_1language_FUNC 766
+#define pango_1font_1description_1copy_FUNC 767
+#define pango_1font_1description_1free_FUNC 768
+#define pango_1font_1description_1from_1string_FUNC 769
+#define pango_1font_1description_1get_1family_FUNC 770
+#define pango_1font_1description_1get_1size_FUNC 771
+#define pango_1font_1description_1get_1style_FUNC 772
+#define pango_1font_1description_1get_1weight_FUNC 773
+#define pango_1font_1description_1new_FUNC 774
+#define pango_1font_1description_1set_1family_FUNC 775
+#define pango_1font_1description_1set_1size_FUNC 776
+#define pango_1font_1description_1set_1stretch_FUNC 777
+#define pango_1font_1description_1set_1style_FUNC 778
+#define pango_1font_1description_1set_1weight_FUNC 779
+#define pango_1font_1description_1to_1string_FUNC 780
+#define pango_1font_1face_1describe_FUNC 781
+#define pango_1font_1family_1list_1faces_FUNC 782
+#define pango_1font_1get_1metrics_FUNC 783
+#define pango_1font_1metrics_1get_1approximate_1char_1width_FUNC 784
+#define pango_1font_1metrics_1get_1ascent_FUNC 785
+#define pango_1font_1metrics_1get_1descent_FUNC 786
+#define pango_1font_1metrics_1unref_FUNC 787
+#define pango_1language_1from_1string_FUNC 788
+#define pango_1layout_1context_1changed_FUNC 789
+#define pango_1layout_1get_1alignment_FUNC 790
+#define pango_1layout_1get_1attributes_FUNC 791
+#define pango_1layout_1get_1iter_FUNC 792
+#define pango_1layout_1get_1line_FUNC 793
+#define pango_1layout_1get_1line_1count_FUNC 794
+#define pango_1layout_1get_1log_1attrs_FUNC 795
+#define pango_1layout_1get_1size_FUNC 796
+#define pango_1layout_1get_1spacing_FUNC 797
+#define pango_1layout_1get_1tabs_FUNC 798
+#define pango_1layout_1get_1text_FUNC 799
+#define pango_1layout_1get_1width_FUNC 800
+#define pango_1layout_1index_1to_1pos_FUNC 801
+#define pango_1layout_1iter_1free_FUNC 802
+#define pango_1layout_1iter_1get_1index_FUNC 803
+#define pango_1layout_1iter_1get_1line_1extents_FUNC 804
+#define pango_1layout_1iter_1get_1run_FUNC 805
+#define pango_1layout_1iter_1next_1line_FUNC 806
+#define pango_1layout_1iter_1next_1run_FUNC 807
+#define pango_1layout_1line_1get_1extents_FUNC 808
+#define pango_1layout_1line_1x_1to_1index_FUNC 809
+#define pango_1layout_1new_FUNC 810
+#define pango_1layout_1set_1alignment_FUNC 811
+#define pango_1layout_1set_1attributes_FUNC 812
+#define pango_1layout_1set_1font_1description_FUNC 813
+#define pango_1layout_1set_1single_1paragraph_1mode_FUNC 814
+#define pango_1layout_1set_1spacing_FUNC 815
+#define pango_1layout_1set_1tabs_FUNC 816
+#define pango_1layout_1set_1text_FUNC 817
+#define pango_1layout_1set_1width_FUNC 818
+#define pango_1layout_1set_1wrap_FUNC 819
+#define pango_1layout_1xy_1to_1index_FUNC 820
+#define pango_1tab_1array_1free_FUNC 821
+#define pango_1tab_1array_1get_1size_FUNC 822
+#define pango_1tab_1array_1get_1tabs_FUNC 823
+#define pango_1tab_1array_1new_FUNC 824
+#define pango_1tab_1array_1set_1tab_FUNC 825
+#define strlen_FUNC 826
diff --git a/bundles/org.eclipse.swt/Eclipse SWT PI/gtk/org/eclipse/swt/internal/gtk/OS.java b/bundles/org.eclipse.swt/Eclipse SWT PI/gtk/org/eclipse/swt/internal/gtk/OS.java
index 90ec86fa46..ac3e259fbd 100644
--- a/bundles/org.eclipse.swt/Eclipse SWT PI/gtk/org/eclipse/swt/internal/gtk/OS.java
+++ b/bundles/org.eclipse.swt/Eclipse SWT PI/gtk/org/eclipse/swt/internal/gtk/OS.java
@@ -956,6 +956,7 @@ public static final synchronized native int /*long*/ gtk_tree_path_new_from_stri
public static final synchronized native int /*long*/ gtk_tree_path_new_from_string(int /*long*/ path);
public static final synchronized native boolean gtk_tree_path_up(int /*long*/ path);
public static final synchronized native boolean gtk_tree_selection_get_selected(int /*long*/ selection, int /*long*/[] model, int /*long*/ iter);
+public static final synchronized native int gtk_tree_selection_get_selected_rows(int /*long*/ selection, int /*long*/[] model);
public static final synchronized native boolean gtk_tree_selection_path_is_selected(int /*long*/ selection, int /*long*/ path);
public static final synchronized native void gtk_tree_selection_select_all(int /*long*/ selection);
public static final synchronized native void gtk_tree_selection_select_iter(int /*long*/ selection, int /*long*/ iter);
diff --git a/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/FileDialog.java b/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/FileDialog.java
index 05075b3a77..75df73e1b0 100644
--- a/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/FileDialog.java
+++ b/bundles/org.eclipse.swt/Eclipse SWT/gtk/org/eclipse/swt/widgets/FileDialog.java
@@ -83,6 +83,91 @@ public FileDialog (Shell parent, int style) {
super (parent, style);
checkSubclass ();
}
+String computeResult() {
+ GtkFileSelection selection = new GtkFileSelection ();
+ OS.memmove (selection, handle);
+ int /*long*/ entry = selection.selection_entry;
+ int /*long*/ entryText = OS.gtk_entry_get_text (entry);
+ int entryLength = OS.strlen (entryText);
+ if (entryLength == 0) {
+ int /*long*/ fileList = selection.file_list;
+ int /*long*/ listSelection = OS.gtk_tree_view_get_selection (fileList);
+ int /*long*/[] model = new int /*long*/[1];
+ int /*long*/ selectedList = OS.gtk_tree_selection_get_selected_rows (listSelection, model);
+ if (selectedList == 0) return null;
+ int listLength = OS.g_list_length (selectedList);
+ if (listLength == 0) {
+ OS.g_list_free (selectedList);
+ return null;
+ }
+ int /*long*/ path = OS.g_list_nth_data (selectedList, 0);
+ int /*long*/ [] ptr = new int /*long*/[1];
+ int /*long*/ iter = OS.g_malloc (OS.GtkTreeIter_sizeof ());
+ if (OS.gtk_tree_model_get_iter (model [0], iter, path)) {
+ OS.gtk_tree_model_get (model [0], iter, 0, ptr, -1);
+ }
+ OS.g_free (iter);
+ for (int i = 0; i < listLength; i++) {
+ OS.gtk_tree_path_free (OS.g_list_nth_data (selectedList, i));
+ }
+ OS.g_list_free (selectedList);
+ if (ptr [0] == 0) return null;
+ int length = OS.strlen (ptr [0]);
+ byte [] buffer = new byte [length];
+ OS.memmove (buffer, ptr [0], length);
+ OS.g_free (ptr [0]);
+ OS.gtk_entry_set_text (entry, buffer);
+ }
+
+ int /*long*/ fileNamePtr = OS.gtk_file_selection_get_filename (handle);
+ int /*long*/ utf8Ptr = OS.g_filename_to_utf8 (fileNamePtr, -1, null, null, null);
+ int /*long*/ [] items_written = new int /*long*/ [1];
+ int /*long*/ utf16Ptr = OS.g_utf8_to_utf16 (utf8Ptr, -1, null, items_written, null);
+ entryLength = (int)/*64*/items_written [0];
+ char [] buffer = new char [entryLength];
+ OS.memmove (buffer, utf16Ptr, entryLength * 2);
+ String osAnswer = new String (buffer);
+ OS.g_free (utf16Ptr);
+ OS.g_free (utf8Ptr);
+
+ if (osAnswer == null) return null;
+ int separatorIndex = osAnswer.lastIndexOf (SEPARATOR);
+ if (separatorIndex+1 == osAnswer.length ()) return null;
+
+ String answer = fullPath = osAnswer;
+ fileName = fullPath.substring (separatorIndex+1);
+ filterPath = fullPath.substring (0, separatorIndex);
+ if ((style & SWT.MULTI) == 0) {
+ fileNames = new String[] {fileName};
+ } else {
+ int /*long*/ namesPtr = OS.gtk_file_selection_get_selections (handle);
+ int /*long*/ namesPtr1 = namesPtr;
+ int /*long*/ [] namePtr = new int /*long*/ [1];
+ OS.memmove (namePtr, namesPtr1, OS.PTR_SIZEOF);
+ int length = 0;
+ while (namePtr[0] != 0) {
+ length++;
+ namesPtr1+=OS.PTR_SIZEOF;
+ OS.memmove(namePtr, namesPtr1, OS.PTR_SIZEOF);
+ }
+ fileNames = new String [length];
+ namePtr = new int /*long*/ [length];
+ OS.memmove (namePtr, namesPtr, length * OS.PTR_SIZEOF);
+ for (int i = 0; i < length; i++) {
+ utf8Ptr = OS.g_filename_to_utf8 (namePtr [i], -1, null, null, null);
+ items_written = new int /*long*/ [1];
+ utf16Ptr = OS.g_utf8_to_utf16 (utf8Ptr, -1, null, items_written, null);
+ buffer = new char [(int)/*64*/items_written [0]];
+ OS.memmove (buffer, utf16Ptr, items_written [0] * 2);
+ String name = new String (buffer);
+ fileNames [i] = name.substring (name.lastIndexOf (SEPARATOR) + 1);
+ OS.g_free (utf16Ptr);
+ OS.g_free (utf8Ptr);
+ }
+ OS.g_strfreev (namesPtr);
+ }
+ return answer;
+}
/**
* Returns the path of the first file that was
* selected in the dialog relative to the filter path
@@ -153,17 +238,7 @@ public String open () {
preset ();
int response = OS.gtk_dialog_run (handle);
if (response == OS.GTK_RESPONSE_OK) {
- int /*long*/ fileNamePtr = OS.gtk_file_selection_get_filename (handle);
- int /*long*/ utf8Ptr = OS.g_filename_to_utf8 (fileNamePtr, -1, null, null, null);
- int /*long*/ [] items_written = new int /*long*/ [1];
- int /*long*/ utf16Ptr = OS.g_utf8_to_utf16 (utf8Ptr, -1, null, items_written, null);
- int length = (int)/*64*/items_written [0];
- char [] buffer = new char [length];
- OS.memmove (buffer, utf16Ptr, length * 2);
- String osAnswer = new String (buffer);
- OS.g_free (utf16Ptr);
- OS.g_free (utf8Ptr);
- answer = interpretOsAnswer (osAnswer);
+ answer = computeResult ();
}
OS.gtk_widget_destroy (handle);
return answer;
@@ -253,44 +328,4 @@ void preset() {
fullPath = null;
fileNames = new String [0];
}
-String interpretOsAnswer(String osAnswer) {
- if (osAnswer==null) return null;
- int separatorIndex = osAnswer.lastIndexOf (SEPARATOR);
- if (separatorIndex+1 == osAnswer.length ()) return null;
-
- String answer = fullPath = osAnswer;
- fileName = fullPath.substring (separatorIndex+1);
- filterPath = fullPath.substring (0, separatorIndex);
- if ((style & SWT.MULTI) == 0) {
- fileNames = new String[] {fileName};
- } else {
- int /*long*/ namesPtr = OS.gtk_file_selection_get_selections (handle);
- int /*long*/ namesPtr1 = namesPtr;
- int /*long*/ [] namePtr = new int /*long*/ [1];
- OS.memmove (namePtr, namesPtr1, OS.PTR_SIZEOF);
- int length = 0;
- while (namePtr[0] != 0) {
- length++;
- namesPtr1+=OS.PTR_SIZEOF;
- OS.memmove(namePtr, namesPtr1, OS.PTR_SIZEOF);
- }
- fileNames = new String [length];
- namePtr = new int /*long*/ [length];
- OS.memmove (namePtr, namesPtr, length * OS.PTR_SIZEOF);
- for (int i = 0; i < length; i++) {
- int /*long*/ utf8Ptr = OS.g_filename_to_utf8 (namePtr [i], -1, null, null, null);
- int /*long*/ [] items_written = new int /*long*/ [1];
- int /*long*/ utf16Ptr = OS.g_utf8_to_utf16 (utf8Ptr, -1, null, items_written, null);
- char[] buffer = new char [(int)/*64*/items_written [0]];
- OS.memmove (buffer, utf16Ptr, items_written [0] * 2);
- String name = new String (buffer);
- fileNames [i] = name.substring (name.lastIndexOf (SEPARATOR) + 1);
- OS.g_free (utf16Ptr);
- OS.g_free (utf8Ptr);
- }
- OS.g_strfreev (namesPtr);
- }
- return answer;
-}
-
}