* 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/>.
*/
/**
#include "gtknotebook.h"
#include "gtkimage.h"
#include "gtklabel.h"
+#include "gtksettings.h"
#include "gtksizegroup.h"
#include "gtksizerequest.h"
#include "gtkstock.h"
static GList* find_page (GtkAssistant *assistant,
GtkWidget *page);
+static void gtk_assistant_do_set_page_header_image (GtkAssistant *assistant,
+ GtkWidget *page,
+ GdkPixbuf *pixbuf);
+static void gtk_assistant_do_set_page_side_image (GtkAssistant *assistant,
+ GtkWidget *page,
+ GdkPixbuf *pixbuf);
GType _gtk_assistant_accessible_get_type (void);
priv->current_page = (GtkAssistantPage *)g_list_nth_data (priv->pages, page_num);
g_signal_emit (assistant, signals [PREPARE], 0, priv->current_page->page);
+ /* do not continue if the prepare signal handler has already changed the
+ * current page */
+ if (priv->current_page != (GtkAssistantPage *)g_list_nth_data (priv->pages, page_num))
+ return;
update_title_state (assistant);
gtk_button_set_image (GTK_BUTTON (priv->forward),
gtk_image_new_from_stock (GTK_STOCK_GO_FORWARD, GTK_ICON_SIZE_BUTTON));
priv->back = gtk_button_new_with_mnemonic (_("Go _Back"));
- gtk_button_set_image (GTK_BUTTON (priv->forward),
+ gtk_button_set_image (GTK_BUTTON (priv->back),
gtk_image_new_from_stock (GTK_STOCK_GO_BACK, GTK_ICON_SIZE_BUTTON));
priv->cancel = gtk_button_new_from_stock (GTK_STOCK_CANCEL);
priv->last = gtk_button_new_with_mnemonic (_("_Finish"));
- gtk_button_set_image (GTK_BUTTON (priv->forward),
+ gtk_button_set_image (GTK_BUTTON (priv->last),
gtk_image_new_from_stock (GTK_STOCK_GOTO_LAST, GTK_ICON_SIZE_BUTTON));
gtk_widget_set_can_default (priv->close, TRUE);
gtk_widget_set_can_default (priv->apply, TRUE);
g_value_get_string (value));
break;
case CHILD_PROP_PAGE_HEADER_IMAGE:
- gtk_assistant_set_page_header_image (GTK_ASSISTANT (container), child,
- g_value_get_object (value));
+ gtk_assistant_do_set_page_header_image (GTK_ASSISTANT (container), child,
+ g_value_get_object (value));
break;
case CHILD_PROP_PAGE_SIDEBAR_IMAGE:
- gtk_assistant_set_page_side_image (GTK_ASSISTANT (container), child,
- g_value_get_object (value));
+ gtk_assistant_do_set_page_side_image (GTK_ASSISTANT (container), child,
+ g_value_get_object (value));
break;
case CHILD_PROP_PAGE_COMPLETE:
gtk_assistant_set_page_complete (GTK_ASSISTANT (container), child,
GValue *value,
GParamSpec *pspec)
{
+ GtkAssistant *assistant = GTK_ASSISTANT (container);
+
switch (property_id)
{
case CHILD_PROP_PAGE_TYPE:
g_value_set_enum (value,
- gtk_assistant_get_page_type (GTK_ASSISTANT (container), child));
+ gtk_assistant_get_page_type (assistant, child));
break;
case CHILD_PROP_PAGE_TITLE:
g_value_set_string (value,
- gtk_assistant_get_page_title (GTK_ASSISTANT (container), child));
+ gtk_assistant_get_page_title (assistant, child));
break;
case CHILD_PROP_PAGE_HEADER_IMAGE:
g_value_set_object (value,
- gtk_assistant_get_page_header_image (GTK_ASSISTANT (container), child));
+ ((GtkAssistantPage*) find_page (assistant, child))->header_image);
break;
case CHILD_PROP_PAGE_SIDEBAR_IMAGE:
g_value_set_object (value,
- gtk_assistant_get_page_side_image (GTK_ASSISTANT (container), child));
+ ((GtkAssistantPage*) find_page (assistant, child))->sidebar_image);
break;
case CHILD_PROP_PAGE_COMPLETE:
g_value_set_boolean (value,
- gtk_assistant_get_page_complete (GTK_ASSISTANT (container), child));
+ gtk_assistant_get_page_complete (assistant, child));
break;
default:
GTK_CONTAINER_WARN_INVALID_CHILD_PROPERTY_ID (container, property_id, pspec);
GtkWidget *page,
GdkPixbuf *pixbuf)
{
- GtkAssistantPage *page_info;
- GList *child;
-
g_return_if_fail (GTK_IS_ASSISTANT (assistant));
g_return_if_fail (GTK_IS_WIDGET (page));
g_return_if_fail (pixbuf == NULL || GDK_IS_PIXBUF (pixbuf));
+ gtk_assistant_do_set_page_header_image (assistant, page, pixbuf);
+}
+
+static void
+gtk_assistant_do_set_page_header_image (GtkAssistant *assistant,
+ GtkWidget *page,
+ GdkPixbuf *pixbuf)
+{
+ GtkAssistantPage *page_info;
+ GList *child;
+
child = find_page (assistant, page);
g_return_if_fail (child != NULL);
GtkWidget *page,
GdkPixbuf *pixbuf)
{
- GtkAssistantPage *page_info;
- GList *child;
-
g_return_if_fail (GTK_IS_ASSISTANT (assistant));
g_return_if_fail (GTK_IS_WIDGET (page));
g_return_if_fail (pixbuf == NULL || GDK_IS_PIXBUF (pixbuf));
+ gtk_assistant_do_set_page_side_image (assistant, page, pixbuf);
+}
+
+static void
+gtk_assistant_do_set_page_side_image (GtkAssistant *assistant,
+ GtkWidget *page,
+ GdkPixbuf *pixbuf)
+{
+ GtkAssistantPage *page_info;
+ GList *child;
+
child = find_page (assistant, page);
g_return_if_fail (child != NULL);