2006-10-06 Michael Dominic Kostrzewa <michael.kostrzewa@nokia.com>
[hildon] / hildon-widgets / hildon-time-editor.h
1 /*
2  * This file is part of hildon-libs
3  *
4  * Copyright (C) 2005, 2006 Nokia Corporation, all rights reserved.
5  *
6  * Contact: Michael Dominic Kostrzewa <michael.kostrzewa@nokia.com>
7  *
8  * This library is free software; you can redistribute it and/or
9  * modify it under the terms of the GNU Lesser General Public License
10  * as published by the Free Software Foundation; version 2.1 of
11  * the License.
12  *
13  * This library is distributed in the hope that it will be useful, but
14  * WITHOUT ANY WARRANTY; without even the implied warranty of
15  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16  * Lesser General Public License for more details.
17  *
18  * You should have received a copy of the GNU Lesser General Public
19  * License along with this library; if not, write to the Free Software
20  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
21  * 02110-1301 USA
22  *
23  */
24
25 #ifndef __HILDON_TIME_EDITOR_H__
26 #define __HILDON_TIME_EDITOR_H__
27
28 #include <gtk/gtkcontainer.h>
29
30 G_BEGIN_DECLS
31
32 #define HILDON_TYPE_TIME_EDITOR            (hildon_time_editor_get_type())
33
34 #define HILDON_TIME_EDITOR(obj)            (GTK_CHECK_CAST (obj,           HILDON_TYPE_TIME_EDITOR, HildonTimeEditor))
35 #define HILDON_TIME_EDITOR_CLASS(klass)    (GTK_CHECK_CLASS_CAST ((klass), HILDON_TYPE_TIME_EDITOR, HildonTimeEditorClass))
36
37 #define HILDON_IS_TIME_EDITOR(obj)         (GTK_CHECK_TYPE       (obj,     HILDON_TYPE_TIME_EDITOR))
38 #define HILDON_IS_TIME_EDITOR_CLASS(klass) (GTK_CHECK_CLASS_TYPE ((klass), HILDON_TYPE_TIME_EDITOR))
39
40
41 typedef enum
42 {
43   NO_TIME_ERROR = -1,
44   MAX_HOURS,
45   MAX_MINS,
46   MAX_SECS,
47   MIN_HOURS,
48   MIN_MINS,
49   MIN_SECS,
50   EMPTY_HOURS,
51   EMPTY_MINS,
52   EMPTY_SECS,
53   MIN_DUR,
54   MAX_DUR,
55   INVALID_TIME
56 } HildonTimeEditorErrorType;
57
58 typedef struct _HildonTimeEditor      HildonTimeEditor;
59 typedef struct _HildonTimeEditorClass HildonTimeEditorClass;
60
61 struct _HildonTimeEditor {
62     GtkContainer parent;
63 };
64
65 struct _HildonTimeEditorClass {
66     GtkContainerClass parent_class;
67
68     gboolean (*time_error) (HildonTimeEditor          *editor,
69                             HildonTimeEditorErrorType  type);
70 };
71
72 GType      hildon_time_editor_get_type(void) G_GNUC_CONST;
73 GtkWidget *hildon_time_editor_new(void);
74
75
76 void       hildon_time_editor_set_time           (HildonTimeEditor * editor,
77                                                   guint              hours,
78                                                   guint              minutes,
79                                                   guint              seconds);
80
81 void       hildon_time_editor_get_time           (HildonTimeEditor * editor,
82                                                   guint            * hours,
83                                                   guint            * minutes,
84                                                   guint            * seconds);
85
86 #ifndef HILDON_DISABLE_DEPRECATED
87 void       hildon_time_editor_show_seconds         (HildonTimeEditor * editor, gboolean enable);
88 void       hildon_time_editor_enable_duration_mode (HildonTimeEditor * editor, gboolean enable);
89 #endif /* HILDON_DISABLE_DEPRECATED */
90
91
92 void       hildon_time_editor_set_duration_range (HildonTimeEditor * editor,
93                                                   guint              min_seconds,
94                                                   guint              max_seconds);
95
96 void       hildon_time_editor_get_duration_range (HildonTimeEditor * editor,
97                                                   guint            * min_seconds,
98                                                   guint            * max_seconds);
99
100 void       hildon_time_editor_set_ticks          (HildonTimeEditor * editor, guint    ticks);
101 guint      hildon_time_editor_get_ticks          (HildonTimeEditor * editor);
102
103 void       hildon_time_editor_set_show_seconds   (HildonTimeEditor * editor, gboolean show_seconds);
104 gboolean   hildon_time_editor_get_show_seconds   (HildonTimeEditor * editor);
105
106 void       hildon_time_editor_set_show_hours     (HildonTimeEditor * editor, gboolean show_hours);
107 gboolean   hildon_time_editor_get_show_hours     (HildonTimeEditor * editor);
108
109 void       hildon_time_editor_set_duration_mode  (HildonTimeEditor * editor, gboolean duration_mode);
110 gboolean   hildon_time_editor_get_duration_mode  (HildonTimeEditor * editor);
111
112 void       hildon_time_editor_set_duration_min   (HildonTimeEditor * editor, guint    duration_min);
113 guint      hildon_time_editor_get_duration_min   (HildonTimeEditor * editor);
114
115 void       hildon_time_editor_set_duration_max   (HildonTimeEditor * editor, guint    duration_max);
116 guint      hildon_time_editor_get_duration_max   (HildonTimeEditor * editor);
117
118
119 G_END_DECLS
120 #endif /* __HILDON_TIME_EDITOR_H__ */