Bug 793125 - Crash due to popup menus left attached too long
[evolution.git] / src / calendar / gui / e-comp-editor-page-general.h
blobfa0f0d4ab3c888fc70edde8557cbea0ff14092cb
1 /*
2 * Copyright (C) 2015 Red Hat, Inc. (www.redhat.com)
4 * This program is free software: you can redistribute it and/or modify it
5 * under the terms of the GNU General Public License as published by
6 * the Free Software Foundation.
8 * This program is distributed in the hope that it will be useful, but
9 * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
10 * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
11 * for more details.
13 * You should have received a copy of the GNU General Public License
14 * along with this program. If not, see <http://www.gnu.org/licenses/>.
18 #ifndef E_COMP_EDITOR_PAGE_GENERAL_H
19 #define E_COMP_EDITOR_PAGE_GENERAL_H
21 #include <libedataserver/libedataserver.h>
22 #include <calendar/gui/e-meeting-store.h>
23 #include <calendar/gui/e-comp-editor.h>
24 #include <calendar/gui/e-comp-editor-page.h>
26 /* Standard GObject macros */
28 #define E_TYPE_COMP_EDITOR_PAGE_GENERAL \
29 (e_comp_editor_page_general_get_type ())
30 #define E_COMP_EDITOR_PAGE_GENERAL(obj) \
31 (G_TYPE_CHECK_INSTANCE_CAST \
32 ((obj), E_TYPE_COMP_EDITOR_PAGE_GENERAL, ECompEditorPageGeneral))
33 #define E_COMP_EDITOR_PAGE_GENERAL_CLASS(cls) \
34 (G_TYPE_CHECK_CLASS_CAST \
35 ((cls), E_TYPE_COMP_EDITOR_PAGE_GENERAL, ECompEditorPageGeneralClass))
36 #define E_IS_COMP_EDITOR_PAGE_GENERAL(obj) \
37 (G_TYPE_CHECK_INSTANCE_TYPE \
38 ((obj), E_TYPE_COMP_EDITOR_PAGE_GENERAL))
39 #define E_IS_COMP_EDITOR_PAGE_GENERAL_CLASS(cls) \
40 (G_TYPE_CHECK_CLASS_TYPE \
41 ((cls), E_TYPE_COMP_EDITOR_PAGE_GENERAL))
42 #define E_COMP_EDITOR_PAGE_GENERAL_GET_CLASS(obj) \
43 (G_TYPE_INSTANCE_GET_CLASS \
44 ((obj), E_TYPE_COMP_EDITOR_PAGE_GENERAL, ECompEditorPageGeneralClass))
46 typedef struct _ECompEditorPageGeneral ECompEditorPageGeneral;
47 typedef struct _ECompEditorPageGeneralClass ECompEditorPageGeneralClass;
48 typedef struct _ECompEditorPageGeneralPrivate ECompEditorPageGeneralPrivate;
50 struct _ECompEditorPageGeneral {
51 ECompEditorPage parent;
53 ECompEditorPageGeneralPrivate *priv;
56 struct _ECompEditorPageGeneralClass {
57 ECompEditorPageClass parent_class;
60 /* ECompEditorPageGeneral uses the first two lines of the grid, counting from zero:
62 Organizer: [ | v ] Source: [ | v ]
63 [ Attendees... ] +---------------------------------------------------+ [ Add ]
64 | | [ Edit ]
65 | | [ Remove ]
66 | |
67 | |
68 +---------------------------------------------------+
70 and when show-attendees is set to FALSE, the second line and the organizer part are
71 hidden, making shown only the first line as:
73 Source: [ | v ]
76 GType e_comp_editor_page_general_get_type (void) G_GNUC_CONST;
77 ECompEditorPage *
78 e_comp_editor_page_general_new (ECompEditor *editor,
79 const gchar *source_label,
80 const gchar *source_extension_name,
81 ESource *select_source,
82 gboolean show_attendees,
83 gint data_column_width);
84 const gchar * e_comp_editor_page_general_get_source_label
85 (ECompEditorPageGeneral *page_general);
86 void e_comp_editor_page_general_set_source_label
87 (ECompEditorPageGeneral *page_general,
88 const gchar *source_label);
89 const gchar * e_comp_editor_page_general_get_source_extension_name
90 (ECompEditorPageGeneral *page_general);
91 void e_comp_editor_page_general_set_source_extension_name
92 (ECompEditorPageGeneral *page_general,
93 const gchar *source_extension_name);
94 ESource * e_comp_editor_page_general_ref_selected_source
95 (ECompEditorPageGeneral *page_general);
96 void e_comp_editor_page_general_set_selected_source
97 (ECompEditorPageGeneral *page_general,
98 ESource *source);
99 gboolean e_comp_editor_page_general_get_show_attendees
100 (ECompEditorPageGeneral *page_general);
101 void e_comp_editor_page_general_set_show_attendees
102 (ECompEditorPageGeneral *page_general,
103 gboolean show_attendees);
104 gint e_comp_editor_page_general_get_data_column_width
105 (ECompEditorPageGeneral *page_general);
106 void e_comp_editor_page_general_set_data_column_width
107 (ECompEditorPageGeneral *page_general,
108 gint data_column_width);
109 void e_comp_editor_page_general_update_view (ECompEditorPageGeneral *page_general);
110 EMeetingStore * e_comp_editor_page_general_get_meeting_store
111 (ECompEditorPageGeneral *page_general);
112 GSList * e_comp_editor_page_general_get_added_attendees
113 (ECompEditorPageGeneral *page_general);
114 GSList * e_comp_editor_page_general_get_removed_attendees
115 (ECompEditorPageGeneral *page_general);
117 G_END_DECLS
119 #endif /* E_COMP_EDITOR_PAGE_GENERAL_H */