]> Pileus Git - ~andy/gtk/blobdiff - gtk/gtkdialog.h
stylecontext: Do invalidation on first resize container
[~andy/gtk] / gtk / gtkdialog.h
index f42371ebc2fc2120fbb2a87f898594c884e4640a..1d941c7ef1dd5936b46947fa2607526f831867f3 100644 (file)
  * Lesser General Public License for more details.
  *
  * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * License along with this library. If not, see <http://www.gnu.org/licenses/>.
  */
 
 /*
  * Modified by the GTK+ Team and others 1997-2000.  See the AUTHORS
  * file for a list of people on the GTK+ Team.  See the ChangeLog
  * files for a list of changes.  These files are distributed with
- * GTK+ at ftp://ftp.gtk.org/pub/gtk/. 
+ * GTK+ at ftp://ftp.gtk.org/pub/gtk/.
  */
 
 #ifndef __GTK_DIALOG_H__
 #define __GTK_DIALOG_H__
 
 
-#include <gdk/gdk.h>
+#if !defined (__GTK_H_INSIDE__) && !defined (GTK_COMPILATION)
+#error "Only <gtk/gtk.h> can be included directly."
+#endif
+
 #include <gtk/gtkwindow.h>
 
 
-#ifdef __cplusplus
-extern "C" {
-#endif /* __cplusplus */
+G_BEGIN_DECLS
 
-/* Parameters for dialog construction */
+/**
+ * GtkDialogFlags:
+ * @GTK_DIALOG_MODAL: Make the constructed dialog modal,
+ *     see gtk_window_set_modal()
+ * @GTK_DIALOG_DESTROY_WITH_PARENT: Destroy the dialog when its
+ *     parent is destroyed, see gtk_window_set_destroy_with_parent()
+ *
+ * Flags used to influence dialog construction.
+ */
 typedef enum
 {
-  GTK_DIALOG_MODAL               = 1 << 0, /* call gtk_window_set_modal (win, TRUE) */
-  GTK_DIALOG_DESTROY_WITH_PARENT = 1 << 1, /* call gtk_window_set_destroy_with_parent () */
-  GTK_DIALOG_NO_SEPARATOR        = 1 << 2  /* no separator bar above buttons */
+  GTK_DIALOG_MODAL               = 1 << 0,
+  GTK_DIALOG_DESTROY_WITH_PARENT = 1 << 1
 } GtkDialogFlags;
 
-/* Convenience enum to use for response_id's.  Positive values are
- * totally user-interpreted. GTK will sometimes return
- * GTK_RESPONSE_NONE if no response_id is available.
+/**
+ * GtkResponseType:
+ * @GTK_RESPONSE_NONE: Returned if an action widget has no response id,
+ *     or if the dialog gets programmatically hidden or destroyed
+ * @GTK_RESPONSE_REJECT: Generic response id, not used by GTK+ dialogs
+ * @GTK_RESPONSE_ACCEPT: Generic response id, not used by GTK+ dialogs
+ * @GTK_RESPONSE_DELETE_EVENT: Returned if the dialog is deleted
+ * @GTK_RESPONSE_OK: Returned by OK buttons in GTK+ dialogs
+ * @GTK_RESPONSE_CANCEL: Returned by Cancel buttons in GTK+ dialogs
+ * @GTK_RESPONSE_CLOSE: Returned by Close buttons in GTK+ dialogs
+ * @GTK_RESPONSE_YES: Returned by Yes buttons in GTK+ dialogs
+ * @GTK_RESPONSE_NO: Returned by No buttons in GTK+ dialogs
+ * @GTK_RESPONSE_APPLY: Returned by Apply buttons in GTK+ dialogs
+ * @GTK_RESPONSE_HELP: Returned by Help buttons in GTK+ dialogs
  *
- *  Typical usage is:
- *     if (gtk_dialog_run(dialog) == GTK_RESPONSE_ACCEPT)
- *       blah();
+ * Predefined values for use as response ids in gtk_dialog_add_button().
+ * All predefined values are negative, GTK+ leaves positive values for
+ * application-defined response ids.
  */
 typedef enum
 {
-  /* GTK returns this if a response widget has no response_id,
-   * or if the dialog gets programmatically hidden or destroyed.
-   */
-  GTK_RESPONSE_NONE = -1,
-
-  /* GTK won't return these unless you pass them in
-   * as the response for an action widget. They are
-   * for your convenience.
-   */
-  GTK_RESPONSE_REJECT = -2,
-  GTK_RESPONSE_ACCEPT = -3,
-
-  /* If the dialog is deleted. */
+  GTK_RESPONSE_NONE         = -1,
+  GTK_RESPONSE_REJECT       = -2,
+  GTK_RESPONSE_ACCEPT       = -3,
   GTK_RESPONSE_DELETE_EVENT = -4,
-
-  /* These are returned from GTK dialogs, and you can also use them
-   * yourself if you like.
-   */
-  GTK_RESPONSE_OK     = -5,
-  GTK_RESPONSE_CANCEL = -6,
-  GTK_RESPONSE_CLOSE  = -7,
-  GTK_RESPONSE_YES    = -8,
-  GTK_RESPONSE_NO     = -9,
-  GTK_RESPONSE_APPLY  = -10,
-  GTK_RESPONSE_HELP   = -11
+  GTK_RESPONSE_OK           = -5,
+  GTK_RESPONSE_CANCEL       = -6,
+  GTK_RESPONSE_CLOSE        = -7,
+  GTK_RESPONSE_YES          = -8,
+  GTK_RESPONSE_NO           = -9,
+  GTK_RESPONSE_APPLY        = -10,
+  GTK_RESPONSE_HELP         = -11
 } GtkResponseType;
 
 
@@ -90,19 +93,22 @@ typedef enum
 #define GTK_DIALOG_GET_CLASS(obj)        (G_TYPE_INSTANCE_GET_CLASS ((obj), GTK_TYPE_DIALOG, GtkDialogClass))
 
 
-typedef struct _GtkDialog        GtkDialog;
-typedef struct _GtkDialogClass   GtkDialogClass;
+typedef struct _GtkDialog              GtkDialog;
+typedef struct _GtkDialogPrivate       GtkDialogPrivate;
+typedef struct _GtkDialogClass         GtkDialogClass;
 
+/**
+ * GtkDialog:
+ *
+ * The GtkDialog struct contains only private fields
+ * and should not be directly accessed.
+ */
 struct _GtkDialog
 {
   GtkWindow window;
 
-  /*< public >*/
-  GtkWidget *vbox;
-  GtkWidget *action_area;
-
   /*< private >*/
-  GtkWidget *separator;
+  GtkDialogPrivate *priv;
 };
 
 struct _GtkDialogClass
@@ -130,7 +136,7 @@ GtkWidget* gtk_dialog_new_with_buttons (const gchar     *title,
                                         GtkWindow       *parent,
                                         GtkDialogFlags   flags,
                                         const gchar     *first_button_text,
-                                        ...);
+                                        ...) G_GNUC_NULL_TERMINATED;
 
 void       gtk_dialog_add_action_widget (GtkDialog   *dialog,
                                          GtkWidget   *child,
@@ -140,22 +146,22 @@ GtkWidget* gtk_dialog_add_button        (GtkDialog   *dialog,
                                          gint         response_id);
 void       gtk_dialog_add_buttons       (GtkDialog   *dialog,
                                          const gchar *first_button_text,
-                                         ...);
+                                         ...) G_GNUC_NULL_TERMINATED;
 
 void gtk_dialog_set_response_sensitive (GtkDialog *dialog,
                                         gint       response_id,
                                         gboolean   setting);
 void gtk_dialog_set_default_response   (GtkDialog *dialog,
                                         gint       response_id);
-
-void     gtk_dialog_set_has_separator (GtkDialog *dialog,
-                                       gboolean   setting);
-gboolean gtk_dialog_get_has_separator (GtkDialog *dialog);
+GtkWidget* gtk_dialog_get_widget_for_response (GtkDialog *dialog,
+                                               gint       response_id);
+gint gtk_dialog_get_response_for_widget (GtkDialog *dialog,
+                                         GtkWidget *widget);
 
 gboolean gtk_alternative_dialog_button_order (GdkScreen *screen);
 void     gtk_dialog_set_alternative_button_order (GtkDialog *dialog,
-                                                 gint       first_response_id,
-                                                 ...);
+                                                  gint       first_response_id,
+                                                  ...);
 void     gtk_dialog_set_alternative_button_order_from_array (GtkDialog *dialog,
                                                              gint       n_params,
                                                              gint      *new_order);
@@ -167,16 +173,9 @@ void gtk_dialog_response           (GtkDialog *dialog,
 /* Returns response_id */
 gint gtk_dialog_run                (GtkDialog *dialog);
 
+GtkWidget * gtk_dialog_get_action_area  (GtkDialog *dialog);
+GtkWidget * gtk_dialog_get_content_area (GtkDialog *dialog);
 
-/* For private use only */
-void _gtk_dialog_set_ignore_separator (GtkDialog *dialog,
-                                      gboolean   ignore_separator);
-gint _gtk_dialog_get_response_for_widget (GtkDialog *dialog,
-                                         GtkWidget *widget);
-
-#ifdef __cplusplus
-}
-#endif /* __cplusplus */
-
+G_END_DECLS
 
 #endif /* __GTK_DIALOG_H__ */