mirror of
https://gitlab.gnome.org/GNOME/gtk.git
synced 2024-12-25 21:21:21 +00:00
Patch from Murray Cumming to add "message_type" and "buttons" CONSTRUCT
Thu Nov 15 11:59:35 2001 Owen Taylor <otaylor@redhat.com> * gtk/gtkmessagedialog.c: Patch from Murray Cumming to add "message_type" and "buttons" CONSTRUCT properties. (#64069) * tests/testsocket.c: Expand tests to add a "local passive child" (Test case for #64428)
This commit is contained in:
parent
d5ff32d7e0
commit
701df64d98
@ -1,3 +1,11 @@
|
|||||||
|
Thu Nov 15 11:59:35 2001 Owen Taylor <otaylor@redhat.com>
|
||||||
|
|
||||||
|
* gtk/gtkmessagedialog.c: Patch from Murray Cumming to add
|
||||||
|
"message_type" and "buttons" CONSTRUCT properties. (#64069)
|
||||||
|
|
||||||
|
* tests/testsocket.c: Expand tests to add a "local passive
|
||||||
|
child" (Test case for #64428)
|
||||||
|
|
||||||
2001-11-14 jacob berkman <jacob@ximian.com>
|
2001-11-14 jacob berkman <jacob@ximian.com>
|
||||||
|
|
||||||
* gtk/gtkgamma.c (button_clicked_callback): create the label with
|
* gtk/gtkgamma.c (button_clicked_callback): create the label with
|
||||||
|
@ -1,3 +1,11 @@
|
|||||||
|
Thu Nov 15 11:59:35 2001 Owen Taylor <otaylor@redhat.com>
|
||||||
|
|
||||||
|
* gtk/gtkmessagedialog.c: Patch from Murray Cumming to add
|
||||||
|
"message_type" and "buttons" CONSTRUCT properties. (#64069)
|
||||||
|
|
||||||
|
* tests/testsocket.c: Expand tests to add a "local passive
|
||||||
|
child" (Test case for #64428)
|
||||||
|
|
||||||
2001-11-14 jacob berkman <jacob@ximian.com>
|
2001-11-14 jacob berkman <jacob@ximian.com>
|
||||||
|
|
||||||
* gtk/gtkgamma.c (button_clicked_callback): create the label with
|
* gtk/gtkgamma.c (button_clicked_callback): create the label with
|
||||||
|
@ -1,3 +1,11 @@
|
|||||||
|
Thu Nov 15 11:59:35 2001 Owen Taylor <otaylor@redhat.com>
|
||||||
|
|
||||||
|
* gtk/gtkmessagedialog.c: Patch from Murray Cumming to add
|
||||||
|
"message_type" and "buttons" CONSTRUCT properties. (#64069)
|
||||||
|
|
||||||
|
* tests/testsocket.c: Expand tests to add a "local passive
|
||||||
|
child" (Test case for #64428)
|
||||||
|
|
||||||
2001-11-14 jacob berkman <jacob@ximian.com>
|
2001-11-14 jacob berkman <jacob@ximian.com>
|
||||||
|
|
||||||
* gtk/gtkgamma.c (button_clicked_callback): create the label with
|
* gtk/gtkgamma.c (button_clicked_callback): create the label with
|
||||||
|
@ -1,3 +1,11 @@
|
|||||||
|
Thu Nov 15 11:59:35 2001 Owen Taylor <otaylor@redhat.com>
|
||||||
|
|
||||||
|
* gtk/gtkmessagedialog.c: Patch from Murray Cumming to add
|
||||||
|
"message_type" and "buttons" CONSTRUCT properties. (#64069)
|
||||||
|
|
||||||
|
* tests/testsocket.c: Expand tests to add a "local passive
|
||||||
|
child" (Test case for #64428)
|
||||||
|
|
||||||
2001-11-14 jacob berkman <jacob@ximian.com>
|
2001-11-14 jacob berkman <jacob@ximian.com>
|
||||||
|
|
||||||
* gtk/gtkgamma.c (button_clicked_callback): create the label with
|
* gtk/gtkgamma.c (button_clicked_callback): create the label with
|
||||||
|
@ -1,3 +1,11 @@
|
|||||||
|
Thu Nov 15 11:59:35 2001 Owen Taylor <otaylor@redhat.com>
|
||||||
|
|
||||||
|
* gtk/gtkmessagedialog.c: Patch from Murray Cumming to add
|
||||||
|
"message_type" and "buttons" CONSTRUCT properties. (#64069)
|
||||||
|
|
||||||
|
* tests/testsocket.c: Expand tests to add a "local passive
|
||||||
|
child" (Test case for #64428)
|
||||||
|
|
||||||
2001-11-14 jacob berkman <jacob@ximian.com>
|
2001-11-14 jacob berkman <jacob@ximian.com>
|
||||||
|
|
||||||
* gtk/gtkgamma.c (button_clicked_callback): create the label with
|
* gtk/gtkgamma.c (button_clicked_callback): create the label with
|
||||||
|
@ -1,3 +1,11 @@
|
|||||||
|
Thu Nov 15 11:59:35 2001 Owen Taylor <otaylor@redhat.com>
|
||||||
|
|
||||||
|
* gtk/gtkmessagedialog.c: Patch from Murray Cumming to add
|
||||||
|
"message_type" and "buttons" CONSTRUCT properties. (#64069)
|
||||||
|
|
||||||
|
* tests/testsocket.c: Expand tests to add a "local passive
|
||||||
|
child" (Test case for #64428)
|
||||||
|
|
||||||
2001-11-14 jacob berkman <jacob@ximian.com>
|
2001-11-14 jacob berkman <jacob@ximian.com>
|
||||||
|
|
||||||
* gtk/gtkgamma.c (button_clicked_callback): create the label with
|
* gtk/gtkgamma.c (button_clicked_callback): create the label with
|
||||||
|
@ -1,3 +1,11 @@
|
|||||||
|
Thu Nov 15 11:59:35 2001 Owen Taylor <otaylor@redhat.com>
|
||||||
|
|
||||||
|
* gtk/gtkmessagedialog.c: Patch from Murray Cumming to add
|
||||||
|
"message_type" and "buttons" CONSTRUCT properties. (#64069)
|
||||||
|
|
||||||
|
* tests/testsocket.c: Expand tests to add a "local passive
|
||||||
|
child" (Test case for #64428)
|
||||||
|
|
||||||
2001-11-14 jacob berkman <jacob@ximian.com>
|
2001-11-14 jacob berkman <jacob@ximian.com>
|
||||||
|
|
||||||
* gtk/gtkgamma.c (button_clicked_callback): create the label with
|
* gtk/gtkgamma.c (button_clicked_callback): create the label with
|
||||||
|
@ -31,12 +31,31 @@
|
|||||||
#include "gtkstock.h"
|
#include "gtkstock.h"
|
||||||
#include "gtkiconfactory.h"
|
#include "gtkiconfactory.h"
|
||||||
#include "gtkintl.h"
|
#include "gtkintl.h"
|
||||||
|
#include <string.h>
|
||||||
|
|
||||||
static void gtk_message_dialog_class_init (GtkMessageDialogClass *klass);
|
static void gtk_message_dialog_class_init (GtkMessageDialogClass *klass);
|
||||||
static void gtk_message_dialog_init (GtkMessageDialog *dialog);
|
static void gtk_message_dialog_init (GtkMessageDialog *dialog);
|
||||||
static void gtk_message_dialog_style_set (GtkWidget *widget,
|
static void gtk_message_dialog_style_set (GtkWidget *widget,
|
||||||
GtkStyle *prev_style);
|
GtkStyle *prev_style);
|
||||||
|
|
||||||
|
static void gtk_message_dialog_set_property (GObject *object,
|
||||||
|
guint prop_id,
|
||||||
|
const GValue *value,
|
||||||
|
GParamSpec *pspec);
|
||||||
|
static void gtk_message_dialog_get_property (GObject *object,
|
||||||
|
guint prop_id,
|
||||||
|
GValue *value,
|
||||||
|
GParamSpec *pspec);
|
||||||
|
static void gtk_message_dialog_add_buttons (GtkMessageDialog *message_dialog,
|
||||||
|
GtkButtonsType buttons);
|
||||||
|
|
||||||
|
|
||||||
|
enum {
|
||||||
|
PROP_0,
|
||||||
|
PROP_MESSAGE_TYPE,
|
||||||
|
PROP_BUTTONS
|
||||||
|
};
|
||||||
|
|
||||||
static gpointer parent_class;
|
static gpointer parent_class;
|
||||||
|
|
||||||
GtkType
|
GtkType
|
||||||
@ -68,13 +87,18 @@ static void
|
|||||||
gtk_message_dialog_class_init (GtkMessageDialogClass *class)
|
gtk_message_dialog_class_init (GtkMessageDialogClass *class)
|
||||||
{
|
{
|
||||||
GtkWidgetClass *widget_class;
|
GtkWidgetClass *widget_class;
|
||||||
|
GObjectClass *gobject_class;
|
||||||
|
|
||||||
widget_class = GTK_WIDGET_CLASS (class);
|
widget_class = GTK_WIDGET_CLASS (class);
|
||||||
|
gobject_class = G_OBJECT_CLASS (class);
|
||||||
|
|
||||||
parent_class = g_type_class_peek_parent (class);
|
parent_class = g_type_class_peek_parent (class);
|
||||||
|
|
||||||
widget_class->style_set = gtk_message_dialog_style_set;
|
widget_class->style_set = gtk_message_dialog_style_set;
|
||||||
|
|
||||||
|
gobject_class->set_property = gtk_message_dialog_set_property;
|
||||||
|
gobject_class->get_property = gtk_message_dialog_get_property;
|
||||||
|
|
||||||
gtk_widget_class_install_style_property (widget_class,
|
gtk_widget_class_install_style_property (widget_class,
|
||||||
g_param_spec_int ("message_border",
|
g_param_spec_int ("message_border",
|
||||||
_("Image/label border"),
|
_("Image/label border"),
|
||||||
@ -83,6 +107,23 @@ gtk_message_dialog_class_init (GtkMessageDialogClass *class)
|
|||||||
G_MAXINT,
|
G_MAXINT,
|
||||||
8,
|
8,
|
||||||
G_PARAM_READABLE));
|
G_PARAM_READABLE));
|
||||||
|
g_object_class_install_property (gobject_class,
|
||||||
|
PROP_MESSAGE_TYPE,
|
||||||
|
g_param_spec_enum ("message_type",
|
||||||
|
_("Message Type"),
|
||||||
|
_("The type of message"),
|
||||||
|
GTK_TYPE_MESSAGE_TYPE,
|
||||||
|
GTK_MESSAGE_INFO,
|
||||||
|
G_PARAM_READABLE | G_PARAM_WRITABLE | G_PARAM_CONSTRUCT));
|
||||||
|
g_object_class_install_property (gobject_class,
|
||||||
|
PROP_BUTTONS,
|
||||||
|
g_param_spec_enum ("buttons",
|
||||||
|
_("Message Buttons"),
|
||||||
|
_("The buttons shown in the message dialog"),
|
||||||
|
GTK_TYPE_BUTTONS_TYPE,
|
||||||
|
GTK_BUTTONS_NONE,
|
||||||
|
G_PARAM_WRITABLE | G_PARAM_CONSTRUCT_ONLY));
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
@ -111,13 +152,39 @@ gtk_message_dialog_init (GtkMessageDialog *dialog)
|
|||||||
gtk_widget_show_all (hbox);
|
gtk_widget_show_all (hbox);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static GtkMessageType
|
||||||
setup_type(GtkMessageDialog *dialog, GtkMessageType type)
|
gtk_message_dialog_get_message_type (GtkMessageDialog *dialog)
|
||||||
{
|
{
|
||||||
/* Note: this function can be called more than once,
|
const gchar* stock_id = NULL;
|
||||||
* and after showing the dialog, due to object args
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
g_return_val_if_fail (GTK_IS_MESSAGE_DIALOG (dialog), GTK_MESSAGE_INFO);
|
||||||
|
g_return_val_if_fail (GTK_IS_IMAGE(dialog->image), GTK_MESSAGE_INFO);
|
||||||
|
|
||||||
|
stock_id = GTK_IMAGE(dialog->image)->data.stock.stock_id;
|
||||||
|
|
||||||
|
/* Look at the stock id of the image to guess the
|
||||||
|
* GtkMessageType value that was used to choose it
|
||||||
|
* in setup_type()
|
||||||
|
*/
|
||||||
|
if (strcmp (stock_id, GTK_STOCK_DIALOG_INFO) == 0)
|
||||||
|
return GTK_MESSAGE_INFO;
|
||||||
|
else if (strcmp (stock_id, GTK_STOCK_DIALOG_QUESTION) == 0)
|
||||||
|
return GTK_MESSAGE_QUESTION;
|
||||||
|
else if (strcmp (stock_id, GTK_STOCK_DIALOG_WARNING) == 0)
|
||||||
|
return GTK_MESSAGE_WARNING;
|
||||||
|
else if (strcmp (stock_id, GTK_STOCK_DIALOG_ERROR) == 0)
|
||||||
|
return GTK_MESSAGE_ERROR;
|
||||||
|
else
|
||||||
|
{
|
||||||
|
g_assert_not_reached ();
|
||||||
|
return GTK_MESSAGE_INFO;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
setup_type (GtkMessageDialog *dialog,
|
||||||
|
GtkMessageType type)
|
||||||
|
{
|
||||||
const gchar *stock_id = NULL;
|
const gchar *stock_id = NULL;
|
||||||
GtkStockItem item;
|
GtkStockItem item;
|
||||||
|
|
||||||
@ -158,6 +225,51 @@ setup_type(GtkMessageDialog *dialog, GtkMessageType type)
|
|||||||
g_warning ("Stock dialog ID doesn't exist?");
|
g_warning ("Stock dialog ID doesn't exist?");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
gtk_message_dialog_set_property (GObject *object,
|
||||||
|
guint prop_id,
|
||||||
|
const GValue *value,
|
||||||
|
GParamSpec *pspec)
|
||||||
|
{
|
||||||
|
GtkMessageDialog *dialog;
|
||||||
|
|
||||||
|
dialog = GTK_MESSAGE_DIALOG (object);
|
||||||
|
|
||||||
|
switch (prop_id)
|
||||||
|
{
|
||||||
|
case PROP_MESSAGE_TYPE:
|
||||||
|
setup_type (dialog, g_value_get_enum (value));
|
||||||
|
break;
|
||||||
|
case PROP_BUTTONS:
|
||||||
|
gtk_message_dialog_add_buttons (dialog, g_value_get_enum (value));
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
gtk_message_dialog_get_property (GObject *object,
|
||||||
|
guint prop_id,
|
||||||
|
GValue *value,
|
||||||
|
GParamSpec *pspec)
|
||||||
|
{
|
||||||
|
GtkMessageDialog *dialog;
|
||||||
|
|
||||||
|
dialog = GTK_MESSAGE_DIALOG (object);
|
||||||
|
|
||||||
|
switch (prop_id)
|
||||||
|
{
|
||||||
|
case PROP_MESSAGE_TYPE:
|
||||||
|
g_value_set_enum (value, gtk_message_dialog_get_message_type (dialog));
|
||||||
|
default:
|
||||||
|
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* gtk_message_dialog_new:
|
* gtk_message_dialog_new:
|
||||||
* @parent: transient parent, or NULL for none
|
* @parent: transient parent, or NULL for none
|
||||||
@ -185,10 +297,12 @@ gtk_message_dialog_new (GtkWindow *parent,
|
|||||||
{
|
{
|
||||||
GtkWidget *widget;
|
GtkWidget *widget;
|
||||||
GtkDialog *dialog;
|
GtkDialog *dialog;
|
||||||
gchar* msg;
|
gchar* msg = 0;
|
||||||
va_list args;
|
va_list args;
|
||||||
|
|
||||||
widget = GTK_WIDGET (gtk_type_new (GTK_TYPE_MESSAGE_DIALOG));
|
widget = GTK_WIDGET (g_object_new (GTK_TYPE_MESSAGE_DIALOG,
|
||||||
|
"message_type", type,
|
||||||
|
"buttons", buttons, 0));
|
||||||
dialog = GTK_DIALOG (widget);
|
dialog = GTK_DIALOG (widget);
|
||||||
|
|
||||||
if (flags & GTK_DIALOG_NO_SEPARATOR)
|
if (flags & GTK_DIALOG_NO_SEPARATOR)
|
||||||
@ -214,7 +328,6 @@ gtk_message_dialog_new (GtkWindow *parent,
|
|||||||
gtk_window_set_transient_for (GTK_WINDOW (widget),
|
gtk_window_set_transient_for (GTK_WINDOW (widget),
|
||||||
GTK_WINDOW (parent));
|
GTK_WINDOW (parent));
|
||||||
|
|
||||||
|
|
||||||
if (flags & GTK_DIALOG_MODAL)
|
if (flags & GTK_DIALOG_MODAL)
|
||||||
gtk_window_set_modal (GTK_WINDOW (dialog), TRUE);
|
gtk_window_set_modal (GTK_WINDOW (dialog), TRUE);
|
||||||
|
|
||||||
@ -224,7 +337,14 @@ gtk_message_dialog_new (GtkWindow *parent,
|
|||||||
if (flags & GTK_DIALOG_NO_SEPARATOR)
|
if (flags & GTK_DIALOG_NO_SEPARATOR)
|
||||||
gtk_dialog_set_has_separator (dialog, FALSE);
|
gtk_dialog_set_has_separator (dialog, FALSE);
|
||||||
|
|
||||||
setup_type (GTK_MESSAGE_DIALOG (dialog), type);
|
return widget;
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
gtk_message_dialog_add_buttons (GtkMessageDialog* message_dialog,
|
||||||
|
GtkButtonsType buttons)
|
||||||
|
{
|
||||||
|
GtkDialog* dialog = GTK_DIALOG (message_dialog);
|
||||||
|
|
||||||
switch (buttons)
|
switch (buttons)
|
||||||
{
|
{
|
||||||
@ -272,8 +392,6 @@ gtk_message_dialog_new (GtkWindow *parent,
|
|||||||
g_warning ("Unknown GtkButtonsType");
|
g_warning ("Unknown GtkButtonsType");
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
return widget;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
@ -240,7 +240,7 @@ add_passive_child (GtkWidget *window)
|
|||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
add_local_child (GtkWidget *window)
|
add_local_active_child (GtkWidget *window)
|
||||||
{
|
{
|
||||||
Socket *socket;
|
Socket *socket;
|
||||||
|
|
||||||
@ -251,6 +251,20 @@ add_local_child (GtkWidget *window)
|
|||||||
create_child_plug (gtk_socket_get_id (GTK_SOCKET (socket->socket)), TRUE);
|
create_child_plug (gtk_socket_get_id (GTK_SOCKET (socket->socket)), TRUE);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
add_local_passive_child (GtkWidget *window)
|
||||||
|
{
|
||||||
|
Socket *socket;
|
||||||
|
GdkNativeWindow xid;
|
||||||
|
|
||||||
|
socket = create_socket ();
|
||||||
|
gtk_box_pack_start (GTK_BOX (vbox), socket->box, TRUE, TRUE, 0);
|
||||||
|
gtk_widget_show (socket->box);
|
||||||
|
|
||||||
|
xid = create_child_plug (0, TRUE);
|
||||||
|
gtk_socket_add_id (GTK_SOCKET (socket->socket), xid);
|
||||||
|
}
|
||||||
|
|
||||||
int
|
int
|
||||||
main (int argc, char *argv[])
|
main (int argc, char *argv[])
|
||||||
{
|
{
|
||||||
@ -299,11 +313,18 @@ main (int argc, char *argv[])
|
|||||||
GTK_SIGNAL_FUNC(add_passive_child),
|
GTK_SIGNAL_FUNC(add_passive_child),
|
||||||
GTK_OBJECT(vbox));
|
GTK_OBJECT(vbox));
|
||||||
|
|
||||||
button = gtk_button_new_with_label ("Add Local Child");
|
button = gtk_button_new_with_label ("Add Local Active Child");
|
||||||
gtk_box_pack_start (GTK_BOX(vbox), button, FALSE, FALSE, 0);
|
gtk_box_pack_start (GTK_BOX(vbox), button, FALSE, FALSE, 0);
|
||||||
|
|
||||||
gtk_signal_connect_object (GTK_OBJECT(button), "clicked",
|
gtk_signal_connect_object (GTK_OBJECT(button), "clicked",
|
||||||
GTK_SIGNAL_FUNC(add_local_child),
|
GTK_SIGNAL_FUNC(add_local_active_child),
|
||||||
|
GTK_OBJECT(vbox));
|
||||||
|
|
||||||
|
button = gtk_button_new_with_label ("Add Local Passive Child");
|
||||||
|
gtk_box_pack_start (GTK_BOX(vbox), button, FALSE, FALSE, 0);
|
||||||
|
|
||||||
|
gtk_signal_connect_object (GTK_OBJECT(button), "clicked",
|
||||||
|
GTK_SIGNAL_FUNC(add_local_passive_child),
|
||||||
GTK_OBJECT(vbox));
|
GTK_OBJECT(vbox));
|
||||||
|
|
||||||
button = gtk_button_new_with_label ("Remove Last Child");
|
button = gtk_button_new_with_label ("Remove Last Child");
|
||||||
|
Loading…
Reference in New Issue
Block a user