1
/* vim: set expandtab ts=8 sw=4: */
3
/* $Id: xfce-panel-item-iface.h 22660 2006-08-04 21:02:22Z jasper $
5
* Copyright © 2005 Jasper Huijsmans <jasper@xfce.org>
7
* This program is free software; you can redistribute it and/or modify
8
* it under the terms of the GNU Library General Public License as published
9
* by the Free Software Foundation; either version 2 of the License, or
10
* (at your option) any later version.
12
* This program is distributed in the hope that it will be useful,
13
* but WITHOUT ANY WARRANTY; without even the implied warranty of
14
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15
* GNU Library General Public License for more details.
17
* You should have received a copy of the GNU Library General Public License
18
* along with this program; if not, write to the Free Software
19
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
22
#ifndef _XFCE_PANEL_ITEM_H
23
#define _XFCE_PANEL_ITEM_H
25
#include <glib-object.h>
26
#include <libxfce4panel/xfce-panel-enums.h>
28
#define XFCE_TYPE_PANEL_ITEM (xfce_panel_item_get_type ())
29
#define XFCE_PANEL_ITEM(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), XFCE_TYPE_PANEL_ITEM, XfcePanelItem))
30
#define XFCE_IS_PANEL_ITEM(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), XFCE_TYPE_PANEL_ITEM))
31
#define XFCE_PANEL_ITEM_GET_INTERFACE(inst) (G_TYPE_INSTANCE_GET_INTERFACE ((inst), XFCE_TYPE_PANEL_ITEM, XfcePanelItemInterface))
36
typedef struct _XfcePanelItem XfcePanelItem; /* dummy object */
37
typedef struct _XfcePanelItemInterface XfcePanelItemInterface;
39
struct _XfcePanelItemInterface
41
GTypeInterface parent;
44
G_CONST_RETURN char *(*get_name) (XfcePanelItem *item);
46
G_CONST_RETURN char *(*get_id) (XfcePanelItem *item);
48
G_CONST_RETURN char *(*get_display_name) (XfcePanelItem *item);
50
gboolean (*get_expand) (XfcePanelItem *item);
52
void (*free_data) (XfcePanelItem *item);
54
void (*save) (XfcePanelItem *item);
56
void (*set_size) (XfcePanelItem *item, int size);
58
void (*set_screen_position) (XfcePanelItem *item,
59
XfceScreenPosition position);
61
void (*set_sensitive) (XfcePanelItem *item,
64
void (*remove) (XfcePanelItem *item);
66
void (*configure) (XfcePanelItem *item);
68
/* reserved for future expansion */
69
void (*_panel_reserved1) (void);
70
void (*_panel_reserved2) (void);
71
void (*_panel_reserved3) (void);
74
GType xfce_panel_item_get_type (void) G_GNUC_CONST;
77
void xfce_panel_item_focus_panel (XfcePanelItem *item);
79
/* emit signals -- to be called from implementors */
81
void xfce_panel_item_expand_changed (XfcePanelItem *item, gboolean expand);
83
void xfce_panel_item_menu_deactivated (XfcePanelItem *item);
85
void xfce_panel_item_menu_opened (XfcePanelItem *item);
87
void xfce_panel_item_customize_panel (XfcePanelItem *item);
89
void xfce_panel_item_customize_items (XfcePanelItem *item);
91
void xfce_panel_item_move (XfcePanelItem *item);
93
void xfce_panel_item_set_panel_hidden (XfcePanelItem *item, gboolean hidden);
98
G_CONST_RETURN char *xfce_panel_item_get_name (XfcePanelItem *item);
100
G_CONST_RETURN char *xfce_panel_item_get_id (XfcePanelItem *item);
102
G_CONST_RETURN char *xfce_panel_item_get_display_name (XfcePanelItem *item);
104
gboolean xfce_panel_item_get_expand (XfcePanelItem *item);
106
void xfce_panel_item_save (XfcePanelItem *item);
108
void xfce_panel_item_free_data (XfcePanelItem *item);
110
void xfce_panel_item_set_size (XfcePanelItem *item,
113
void xfce_panel_item_set_screen_position (XfcePanelItem *item,
114
XfceScreenPosition position);
116
void xfce_panel_item_set_sensitive (XfcePanelItem *item,
119
void xfce_panel_item_remove (XfcePanelItem *item);
121
void xfce_panel_item_configure (XfcePanelItem *item);
126
#endif /* _XFCE_PANEL_ITEM_H */