]> www.fi.muni.cz Git - evince.git/blob - cut-n-paste/recent-files/egg-recent-model.h
Initial revision
[evince.git] / cut-n-paste / recent-files / egg-recent-model.h
1 /* vim: set sw=8: -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
2 #ifndef __EGG_RECENT_MODEL_H__
3 #define __EGG_RECENT_MODEL_H__
4
5 #include "egg-recent-item.h"
6
7 G_BEGIN_DECLS
8
9 #define EGG_TYPE_RECENT_MODEL           (egg_recent_model_get_type ())
10 #define EGG_RECENT_MODEL(obj)           G_TYPE_CHECK_INSTANCE_CAST (obj, EGG_TYPE_RECENT_MODEL, EggRecentModel)
11 #define EGG_RECENT_MODEL_CLASS(klass)   G_TYPE_CHECK_CLASS_CAST (klass, EGG_TYPE_RECENT_MODEL, EggRecentModelClass)
12 #define EGG_IS_RECENT_MODEL(obj)        G_TYPE_CHECK_INSTANCE_TYPE (obj, egg_recent_model_get_type ())
13
14 typedef struct _EggRecentModel        EggRecentModel;
15 typedef struct _EggRecentModelPrivate EggRecentModelPrivate;
16 typedef struct _EggRecentModelClass   EggRecentModelClass;
17
18 struct _EggRecentModel {
19         GObject                parent_instance;
20
21         EggRecentModelPrivate *priv;
22 };
23
24 struct _EggRecentModelClass {
25         GObjectClass parent_class;
26                         
27         void (*changed) (EggRecentModel *model, GList *list);
28 };
29
30 typedef enum {
31         EGG_RECENT_MODEL_SORT_MRU,
32         EGG_RECENT_MODEL_SORT_LRU,
33         EGG_RECENT_MODEL_SORT_NONE
34 } EggRecentModelSort;
35
36
37 /* Standard group names */
38 #define EGG_RECENT_GROUP_LAUNCHERS "Launchers"
39
40
41 GType    egg_recent_model_get_type     (void);
42
43 /* constructors */
44 EggRecentModel * egg_recent_model_new (EggRecentModelSort sort);
45
46 /* public methods */
47 void     egg_recent_model_set_filter_mime_types (EggRecentModel *model,
48                                                    ...);
49
50 void     egg_recent_model_set_filter_groups (EggRecentModel *model, ...);
51
52 void     egg_recent_model_set_filter_uri_schemes (EggRecentModel *model,
53                                                    ...);
54
55 void     egg_recent_model_set_sort (EggRecentModel *model,
56                                       EggRecentModelSort sort);
57
58 gboolean egg_recent_model_add_full (EggRecentModel *model,
59                                       EggRecentItem *item);
60
61 gboolean egg_recent_model_add        (EggRecentModel *model,
62                                       const gchar *uri);
63
64 gboolean egg_recent_model_delete   (EggRecentModel *model,
65                                       const gchar *uri);
66
67 void egg_recent_model_clear        (EggRecentModel *model);
68
69 GList * egg_recent_model_get_list  (EggRecentModel *model);
70
71 void egg_recent_model_changed      (EggRecentModel *model);
72
73 void egg_recent_model_set_limit    (EggRecentModel *model, int limit);
74 int  egg_recent_model_get_limit    (EggRecentModel *model);
75
76 void egg_recent_model_remove_expired (EggRecentModel *model);
77
78 G_END_DECLS
79
80 #endif /* __EGG_RECENT_MODEL_H__ */