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
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_H
19 #define E_COMP_EDITOR_H
22 #include <libecal/libecal.h>
24 #include <e-util/e-util.h>
25 #include <shell/e-shell.h>
27 #include <calendar/gui/e-comp-editor-page.h>
28 #include <calendar/gui/e-comp-editor-property-part.h>
30 /* Standard GObject macros */
32 #define E_TYPE_COMP_EDITOR \
33 (e_comp_editor_get_type ())
34 #define E_COMP_EDITOR(obj) \
35 (G_TYPE_CHECK_INSTANCE_CAST \
36 ((obj), E_TYPE_COMP_EDITOR, ECompEditor))
37 #define E_COMP_EDITOR_CLASS(cls) \
38 (G_TYPE_CHECK_CLASS_CAST \
39 ((cls), E_TYPE_COMP_EDITOR, ECompEditorClass))
40 #define E_IS_COMP_EDITOR(obj) \
41 (G_TYPE_CHECK_INSTANCE_TYPE \
42 ((obj), E_TYPE_COMP_EDITOR))
43 #define E_IS_COMP_EDITOR_CLASS(cls) \
44 (G_TYPE_CHECK_CLASS_TYPE \
45 ((cls), E_TYPE_COMP_EDITOR))
46 #define E_COMP_EDITOR_GET_CLASS(obj) \
47 (G_TYPE_INSTANCE_GET_CLASS \
48 ((obj), E_TYPE_COMP_EDITOR, ECompEditorClass))
53 E_COMP_EDITOR_FLAG_IS_NEW
= 1 << 0,
54 E_COMP_EDITOR_FLAG_IS_ALL_DAY_EVENT
= 1 << 1,
55 E_COMP_EDITOR_FLAG_WITH_ATTENDEES
= 1 << 2,
56 E_COMP_EDITOR_FLAG_ORGANIZER_IS_USER
= 1 << 3,
57 E_COMP_EDITOR_FLAG_DELEGATE
= 1 << 4
60 typedef struct _ECompEditor ECompEditor
;
61 typedef struct _ECompEditorClass ECompEditorClass
;
62 typedef struct _ECompEditorPrivate ECompEditorPrivate
;
67 ECompEditorPrivate
*priv
;
70 struct _ECompEditorClass
{
71 GtkWindowClass parent_class
;
73 const gchar
*help_section
;
74 const gchar
*title_format_with_attendees
; /* should contain only one '%s', for the component summary */
75 const gchar
*title_format_without_attendees
; /* should contain only one '%s', for the component summary */
76 const gchar
*icon_name
; /* to be set as window icon */
78 /* Virtual functions */
79 void (* sensitize_widgets
) (ECompEditor
*comp_editor
,
80 gboolean force_insensitive
);
81 void (* fill_widgets
) (ECompEditor
*comp_editor
,
82 icalcomponent
*component
);
83 gboolean (* fill_component
) (ECompEditor
*comp_editor
,
84 icalcomponent
*component
);
87 void (* times_changed
) (ECompEditor
*comp_editor
);
88 void (* object_created
) (ECompEditor
*comp_editor
);
89 void (* editor_closed
) (ECompEditor
*comp_editor
,
93 GType
e_comp_editor_get_type (void) G_GNUC_CONST
;
94 void e_comp_editor_sensitize_widgets (ECompEditor
*comp_editor
);
95 void e_comp_editor_fill_widgets (ECompEditor
*comp_editor
,
96 icalcomponent
*component
);
97 gboolean
e_comp_editor_fill_component (ECompEditor
*comp_editor
,
98 icalcomponent
*component
);
99 void e_comp_editor_set_validation_error
100 (ECompEditor
*comp_editor
,
101 ECompEditorPage
*error_page
,
102 GtkWidget
*error_widget
,
103 const gchar
*error_message
);
104 EShell
* e_comp_editor_get_shell (ECompEditor
*comp_editor
);
105 GSettings
* e_comp_editor_get_settings (ECompEditor
*comp_editor
);
106 ESource
* e_comp_editor_get_origin_source (ECompEditor
*comp_editor
);
107 icalcomponent
* e_comp_editor_get_component (ECompEditor
*comp_editor
);
108 guint32
e_comp_editor_get_flags (ECompEditor
*comp_editor
);
109 void e_comp_editor_set_flags (ECompEditor
*comp_editor
,
111 EFocusTracker
* e_comp_editor_get_focus_tracker (ECompEditor
*comp_editor
);
112 GtkUIManager
* e_comp_editor_get_ui_manager (ECompEditor
*comp_editor
);
113 GtkAction
* e_comp_editor_get_action (ECompEditor
*comp_editor
,
114 const gchar
*action_name
);
115 GtkActionGroup
*e_comp_editor_get_action_group (ECompEditor
*comp_editor
,
116 const gchar
*group_name
);
117 GtkWidget
* e_comp_editor_get_managed_widget
118 (ECompEditor
*comp_editor
,
119 const gchar
*widget_path
);
120 const gchar
* e_comp_editor_get_alarm_email_address
121 (ECompEditor
*comp_editor
);
122 void e_comp_editor_set_alarm_email_address
123 (ECompEditor
*comp_editor
,
124 const gchar
*alarm_email_address
);
125 const gchar
* e_comp_editor_get_cal_email_address
126 (ECompEditor
*comp_editor
);
127 void e_comp_editor_set_cal_email_address
128 (ECompEditor
*comp_editor
,
129 const gchar
*cal_email_address
);
130 gboolean
e_comp_editor_get_changed (ECompEditor
*comp_editor
);
131 void e_comp_editor_set_changed (ECompEditor
*comp_editor
,
133 void e_comp_editor_ensure_changed (ECompEditor
*comp_editor
);
134 gboolean
e_comp_editor_get_updating (ECompEditor
*comp_editor
);
135 void e_comp_editor_set_updating (ECompEditor
*comp_editor
,
137 ECalClient
* e_comp_editor_get_source_client (ECompEditor
*comp_editor
);
138 void e_comp_editor_set_source_client (ECompEditor
*comp_editor
,
140 ECalClient
* e_comp_editor_get_target_client (ECompEditor
*comp_editor
);
141 void e_comp_editor_set_target_client (ECompEditor
*comp_editor
,
143 const gchar
* e_comp_editor_get_title_suffix (ECompEditor
*comp_editor
);
144 void e_comp_editor_set_title_suffix (ECompEditor
*comp_editor
,
145 const gchar
*title_suffix
);
146 void e_comp_editor_set_time_parts (ECompEditor
*comp_editor
,
147 ECompEditorPropertyPart
*dtstart_part
,
148 ECompEditorPropertyPart
*dtend_part
);
149 void e_comp_editor_get_time_parts (ECompEditor
*comp_editor
,
150 ECompEditorPropertyPart
**out_dtstart_part
,
151 ECompEditorPropertyPart
**out_dtend_part
);
152 void e_comp_editor_add_page (ECompEditor
*comp_editor
,
154 ECompEditorPage
*page
);
156 e_comp_editor_get_page (ECompEditor
*comp_editor
,
158 GSList
* e_comp_editor_get_pages (ECompEditor
*comp_editor
);
159 void e_comp_editor_select_page (ECompEditor
*comp_editor
,
160 ECompEditorPage
*page
);
161 EAlert
* e_comp_editor_add_information (ECompEditor
*comp_editor
,
162 const gchar
*primary_text
,
163 const gchar
*secondary_text
);
164 EAlert
* e_comp_editor_add_warning (ECompEditor
*comp_editor
,
165 const gchar
*primary_text
,
166 const gchar
*secondary_text
);
167 EAlert
* e_comp_editor_add_error (ECompEditor
*comp_editor
,
168 const gchar
*primary_text
,
169 const gchar
*secondary_text
);
170 void e_comp_editor_ensure_start_before_end
171 (ECompEditor
*comp_editor
,
172 ECompEditorPropertyPart
*start_datetime
,
173 ECompEditorPropertyPart
*end_datetime
,
174 gboolean change_end_datetime
);
175 ECompEditor
* e_comp_editor_open_for_component
178 ESource
*origin_source
,
179 const icalcomponent
*component
,
180 guint32 flags
/* bit-or of ECompEditorFlags */);
181 ECompEditor
* e_comp_editor_find_existing_for (ESource
*origin_source
,
182 const icalcomponent
*component
);
186 #endif /* E_COMP_EDITOR_H */