summaryrefslogtreecommitdiff
path: root/docs/reference/gtk/tmpl/gtkfilechooserdialog.sgml
blob: 706490b13d3e1dc8a834084f7d44cd632d5630d4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
<!-- ##### SECTION Title ##### -->
GtkFileChooserDialog

<!-- ##### SECTION Short_Description ##### -->
A file chooser dialog, suitable for "File/Open" or "File/Save" commands

<!-- ##### SECTION Long_Description ##### -->
    <para>
      #GtkFileChooserDialog is a dialog box suitable for use with
      "File/Open" or "File/Save as" commands.  This widget works by
      putting a #GtkFileChooserWidget inside a #GtkDialog.  It exposes
      the #GtkFileChooserIface interface, so you can use all of the
      #GtkFileChooser functions on the file chooser dialog as well as
      those for #GtkDialog.
    </para>

    <para>
      Note that #GtkFileChooserDialog does not have any methods of its
      own.  Instead, you should use the functions that work on a
      #GtkFileChooser.
    </para>

    <example id="gtkfilechooser-typical-usage">
      <title>Typical usage</title>

      <para>
	In the simplest of cases, you can use #GtkFileChooserDialog
	as in the following code:
      </para>

      <programlisting>
GtkWidget *dialog;

dialog = gtk_file_chooser_dialog_new ("Open File",
				      parent_window,
				      GTK_FILE_CHOOSER_ACTION_OPEN,
				      GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
				      GTK_STOCK_OPEN, GTK_RESPONSE_ACCEPT,
				      NULL);

if (gtk_dialog_run (GTK_DIALOG (dialog)) == GTK_RESPONSE_ACCEPT)
  {
    char *filename;

    filename = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (dialog));
    open_file (filename);
    g_free (filename);
  }

gtk_widget_destroy (dialog);
      </programlisting>
    </example>

  <section id="gtkfilechooserdialog-response-codes">
    <title>Response Codes</title>

    <para>
      #GtkFileChooserDialog inherits from #GtkDialog, so buttons that
      go in its action area have response codes such as
      #GTK_RESPONSE_ACCEPT and #GTK_RESPONSE_CANCEL.  For example, you
      could call gtk_file_chooser_dialog_new() as follows:
    </para>

    <programlisting>
GtkWidget *dialog;

dialog = gtk_file_chooser_dialog_new ("Open File",
				      parent_window,
				      GTK_FILE_CHOOSER_ACTION_OPEN,
				      GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
				      GTK_STOCK_OPEN, GTK_RESPONSE_ACCEPT,
				      NULL);
    </programlisting>

    <para>
      This will create buttons for "Cancel" and "Open" that use stock
      response identifiers from #GtkResponseType.  For most dialog
      boxes you can use your own custom response codes rather than the
      ones in #GtkResponseType, but #GtkFileChooserDialog assumes that
      its "accept"-type action, e.g. an "Open" or "Save" button,
      <emphasis>will</emphasis> have one of the following response
      codes:
      <simplelist id="gtkfilechooserdialog-responses">
	<member>#GTK_RESPONSE_ACCEPT</member>
	<member>#GTK_RESPONSE_OK</member>
	<member>#GTK_RESPONSE_YES</member>
	<member>#GTK_RESPONSE_APPLY</member>
      </simplelist>
    </para>

    <para>
      This is because #GtkFileChooserDialog must intercept responses
      and switch to folders if appropriate, rather than letting the
      dialog terminate &mdash; the implementation uses these known
      response codes to know which responses can be blocked if
      appropriate.
    </para>

    <note>
      <para>
	To summarize, make sure you use a <link
	linkend="gtkfilechooserdialog-responses">stock response
	code</link> when you use #GtkFileChooserDialog to ensure
	proper operation.
      </para>
    </note>
  </section>

<!-- ##### SECTION See_Also ##### -->
    <para>
      #GtkFileChooser, #GtkDialog
    </para>

<!-- ##### STRUCT GtkFileChooserDialog ##### -->
<para>

</para>


<!-- ##### FUNCTION gtk_file_chooser_dialog_new ##### -->
<para>

</para>

@title: 
@parent: 
@action: 
@first_button_text: 
@Varargs: 
@Returns: 


<!-- ##### FUNCTION gtk_file_chooser_dialog_new_with_backend ##### -->
<para>

</para>

@title: 
@parent: 
@action: 
@backend: 
@first_button_text: 
@Varargs: 
@Returns: 


<!--
Local variables:
mode: sgml
sgml-parent-document: ("../gtk-docs.sgml" "book" "refsect1")
End:
-->