2 * This file is a part of hildon
4 * Copyright (C) 2008 Nokia Corporation, all rights reserved.
6 * This library is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU Lesser General Public License
8 * as published by the Free Software Foundation; version 2.1 of
9 * the License, or (at your option) any later version.
11 * This library is distributed in the hope that it will be useful, but
12 * WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 * Lesser General Public License for more details.
16 * You should have received a copy of the GNU Lesser General Public
17 * License along with this library; if not, write to the Free Software
18 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
23 #ifndef __HILDON_WINDOW_STACK_H__
24 #define __HILDON_WINDOW_STACK_H__
26 #include "hildon-stackable-window.h"
30 #define HILDON_TYPE_WINDOW_STACK \
31 (hildon_window_stack_get_type())
33 #define HILDON_WINDOW_STACK(obj) \
34 (G_TYPE_CHECK_INSTANCE_CAST ((obj), \
35 HILDON_TYPE_WINDOW_STACK, \
38 #define HILDON_WINDOW_STACK_CLASS(klass) \
39 (G_TYPE_CHECK_CLASS_CAST ((klass), \
40 HILDON_TYPE_WINDOW_STACK, \
41 HildonWindowStackClass))
43 #define HILDON_IS_WINDOW_STACK(obj) \
44 (G_TYPE_CHECK_INSTANCE_TYPE ((obj), \
45 HILDON_TYPE_WINDOW_STACK))
47 #define HILDON_IS_WINDOW_STACK_CLASS(klass) \
48 (G_TYPE_CHECK_CLASS_TYPE ((klass), \
49 HILDON_TYPE_WINDOW_STACK))
51 #define HILDON_WINDOW_STACK_GET_CLASS(obj) \
52 (G_TYPE_INSTANCE_GET_CLASS ((obj), \
53 HILDON_TYPE_WINDOW_STACK, \
54 HildonWindowStackClass))
56 typedef struct _HildonWindowStackPrivate HildonWindowStackPrivate;
58 #ifndef _TYPEDEF_HILDON_WINDOW_STACK_
59 #define _TYPEDEF_HILDON_WINDOW_STACK_
60 typedef struct _HildonWindowStack HildonWindowStack;
62 typedef struct _HildonWindowStackClass HildonWindowStackClass;
64 struct _HildonWindowStack
69 HildonWindowStackPrivate *priv;
72 struct _HildonWindowStackClass
74 GObjectClass parent_class;
76 /* Padding for future extension */
77 void (*_hildon_reserved1)(void);
78 void (*_hildon_reserved2)(void);
79 void (*_hildon_reserved3)(void);
80 void (*_hildon_reserved4)(void);
84 hildon_window_stack_get_type (void) G_GNUC_CONST;
87 hildon_window_stack_get_default (void);
90 hildon_window_stack_new (void);
93 hildon_window_stack_size (HildonWindowStack *stack);
96 hildon_window_stack_peek (HildonWindowStack *stack);
99 hildon_window_stack_push (HildonWindowStack *stack,
100 HildonStackableWindow *win1,
104 hildon_window_stack_push_list (HildonWindowStack *stack,
108 hildon_window_stack_push_1 (HildonWindowStack *stack,
109 HildonStackableWindow *win);
112 hildon_window_stack_pop (HildonWindowStack *stack,
114 GList **popped_windows);
117 hildon_window_stack_pop_1 (HildonWindowStack *stack);
120 hildon_window_stack_pop_and_push (HildonWindowStack *stack,
122 GList **popped_windows,
123 HildonStackableWindow *win1,
127 hildon_window_stack_pop_and_push_list (HildonWindowStack *stack,
129 GList **popped_windows,
134 #endif /* __HILDON_WINDOW_STACK_H__ */