summaryrefslogtreecommitdiff
path: root/mate-panel/panel-toplevel.h
blob: 206397da6d11d3c7c05e0af8fb2be364b03aa708 (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
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
/*
 * panel-toplevel.h: The panel's toplevel window object.
 *
 * Copyright (C) 2003 Sun Microsystems, Inc.
 *
 * This program is free software; you can redistribute it and/or
 * modify it under the terms of the GNU General Public License as
 * published by the Free Software Foundation; either version 2 of the
 * License, or (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful, but
 * WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
 * 02110-1301, USA.

 * Authors:
 *	Mark McLoughlin <mark@skynet.ie>
 */

#ifndef __PANEL_TOPLEVEL_H__
#define __PANEL_TOPLEVEL_H__

#include <gtk/gtk.h>

#include "panel-background.h"
#include "panel-enums.h"

#ifdef __cplusplus
extern "C" {
#endif

/* We need PanelWidget type but don't want to include
   the panel-widget.h */
#ifndef TYPEDEF_PANEL_WIDGET
typedef struct _PanelWidget		PanelWidget;
#define TYPEDEF_PANEL_WIDGET
#endif /* TYPEDEF_PANEL_WIDGET */

#define PANEL_TYPE_TOPLEVEL         (panel_toplevel_get_type ())
#define PANEL_TOPLEVEL(o)           (G_TYPE_CHECK_INSTANCE_CAST ((o), PANEL_TYPE_TOPLEVEL, PanelToplevel))
#define PANEL_TOPLEVEL_CLASS(k)     (G_TYPE_CHECK_CLASS_CAST((k), PANEL_TYPE_TOPLEVEL, PanelToplevelClass))
#define PANEL_IS_TOPLEVEL(o)        (G_TYPE_CHECK_INSTANCE_TYPE ((o), PANEL_TYPE_TOPLEVEL))
#define PANEL_IS_TOPLEVEL_CLASS(k)  (G_TYPE_CHECK_CLASS_TYPE ((k), PANEL_TYPE_TOPLEVEL))
#define PANEL_TOPLEVEL_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), PANEL_TYPE_TOPLEVEL, PanelToplevelClass))

typedef struct _PanelToplevel        PanelToplevel;
typedef struct _PanelToplevelClass   PanelToplevelClass;
typedef struct _PanelToplevelPrivate PanelToplevelPrivate;

struct _PanelToplevel {
	GtkWindow              window_instance;
	GSettings             *settings;
	GSettings             *queued_settings;
	GSettings             *background_settings;
	PanelBackground        background;
	PanelToplevelPrivate  *priv;
};

struct _PanelToplevelClass {
	GtkWindowClass         window_class;

	/* key bindings */
	gboolean  (*popup_panel_menu) (PanelToplevel *toplevel);
	gboolean  (*toggle_expand)    (PanelToplevel *toplevel);
	gboolean  (*expand)           (PanelToplevel *toplevel);
	gboolean  (*unexpand)         (PanelToplevel *toplevel);
	gboolean  (*toggle_hidden)    (PanelToplevel *toplevel);
	gboolean  (*begin_move)       (PanelToplevel *toplevel);
	gboolean  (*begin_resize)     (PanelToplevel *toplevel);

	/* signals */
	void      (*hiding)           (PanelToplevel *toplevel);
	void      (*unhiding)         (PanelToplevel *toplevel);
};

GType                panel_toplevel_get_type               (void) G_GNUC_CONST;

PanelWidget         *panel_toplevel_get_panel_widget       (PanelToplevel       *toplevel);

void                 panel_toplevel_set_name               (PanelToplevel       *toplevel,
							    const char          *name);
const char* panel_toplevel_get_name(PanelToplevel* toplevel);
void                 panel_toplevel_set_settings_path      (PanelToplevel       *toplevel,
							    const char          *settings_path);
const char* panel_toplevel_get_description(PanelToplevel* toplevel);
void                 panel_toplevel_set_expand             (PanelToplevel       *toplevel,
							    gboolean             expand);
gboolean             panel_toplevel_get_expand             (PanelToplevel       *toplevel);
void                 panel_toplevel_set_orientation        (PanelToplevel       *toplevel,
							    PanelOrientation     orientation);
PanelOrientation     panel_toplevel_get_orientation        (PanelToplevel       *toplevel);
void                 panel_toplevel_set_size               (PanelToplevel       *toplevel,
							    int                  size);
int                  panel_toplevel_get_size               (PanelToplevel       *toplevel);
void                 panel_toplevel_set_monitor            (PanelToplevel       *toplevel,
							    int                  monitor);
int                  panel_toplevel_get_monitor            (PanelToplevel       *toplevel);
void                 panel_toplevel_set_auto_hide_size     (PanelToplevel       *toplevel,
							    int                  autohide_size);
int                  panel_toplevel_get_auto_hide_size     (PanelToplevel       *toplevel);
void                 panel_toplevel_set_x                  (PanelToplevel       *toplevel,
							    int                  x,
							    int                  x_right,
							    gboolean             x_centered);
void                 panel_toplevel_set_y                  (PanelToplevel       *toplevel,
							    int                  y,
							    int                  y_bottom,
							    gboolean             y_centered);
void                 panel_toplevel_get_position           (PanelToplevel       *toplevel,
							    int                 *x,
							    int                 *x_right,
							    int                 *y,
							    int                 *y_bottom);
gboolean             panel_toplevel_get_x_centered         (PanelToplevel       *toplevel);
gboolean             panel_toplevel_get_y_centered         (PanelToplevel       *toplevel);

void                 panel_toplevel_rotate                 (PanelToplevel       *toplevel,
							    gboolean             clockwise);

void                 panel_toplevel_attach_to_widget       (PanelToplevel       *toplevel,
							    PanelToplevel       *attach_toplevel,
							    GtkWidget           *attach_widget);
void                 panel_toplevel_detach                 (PanelToplevel       *toplevel);
gboolean             panel_toplevel_get_is_attached        (PanelToplevel       *toplevel);
PanelToplevel       *panel_toplevel_get_attach_toplevel    (PanelToplevel       *toplevel);
GtkWidget           *panel_toplevel_get_attach_widget      (PanelToplevel       *toplevel);

gboolean             panel_toplevel_get_is_floating	   (PanelToplevel       *toplevel);

gboolean             panel_toplevel_get_is_hidden          (PanelToplevel       *toplevel);
PanelState           panel_toplevel_get_state              (PanelToplevel       *toplevel);

void                 panel_toplevel_hide                   (PanelToplevel       *toplevel,
							    gboolean             auto_hide,
							    GtkDirectionType     direction);
void                 panel_toplevel_unhide                 (PanelToplevel       *toplevel);
void                 panel_toplevel_queue_auto_hide        (PanelToplevel       *toplevel);
void                 panel_toplevel_queue_auto_unhide      (PanelToplevel       *toplevel);
void                 panel_toplevel_queue_initial_unhide   (PanelToplevel       *toplevel);
void                 panel_toplevel_push_autohide_disabler (PanelToplevel       *toplevel);
void                 panel_toplevel_pop_autohide_disabler  (PanelToplevel       *toplevel);

void                 panel_toplevel_set_auto_hide          (PanelToplevel       *toplevel,
							    gboolean             autohide);
gboolean             panel_toplevel_get_auto_hide          (PanelToplevel       *toplevel);
void                 panel_toplevel_set_hide_delay         (PanelToplevel       *toplevel,
							    int                  hide_delay);
int                  panel_toplevel_get_hide_delay         (PanelToplevel       *toplevel);
void                 panel_toplevel_set_unhide_delay       (PanelToplevel       *toplevel,
							    int                  unhide_delay);
int                  panel_toplevel_get_unhide_delay       (PanelToplevel       *toplevel);

void                 panel_toplevel_set_animate            (PanelToplevel       *toplevel,
							    gboolean             animate);
gboolean             panel_toplevel_get_animate            (PanelToplevel       *toplevel);
void                 panel_toplevel_set_animation_speed    (PanelToplevel       *toplevel,
							    PanelAnimationSpeed  animation_speed);
PanelAnimationSpeed  panel_toplevel_get_animation_speed    (PanelToplevel       *toplevel);

void                 panel_toplevel_set_enable_buttons     (PanelToplevel       *toplevel,
							    gboolean             enable_buttons);
gboolean             panel_toplevel_get_enable_buttons     (PanelToplevel       *toplevel);
void                 panel_toplevel_set_enable_arrows      (PanelToplevel       *toplevel,
							    gboolean             enable_arrows);
gboolean             panel_toplevel_get_enable_arrows      (PanelToplevel       *toplevel);
void                 panel_toplevel_update_edges           (PanelToplevel       *toplevel);

gboolean             panel_toplevel_is_last_unattached     (PanelToplevel       *toplevel);
int                  panel_toplevel_get_minimum_size       (PanelToplevel *toplevel);
int                  panel_toplevel_get_maximum_size       (PanelToplevel *toplevel);
GSList              *panel_toplevel_list_toplevels         (void);

#ifdef __cplusplus
}
#endif

#endif /* __PANEL_TOPLEVEL_H__ */