File: photos-item-manager.h

package info (click to toggle)
gnome-photos 3.30.1-2
  • links: PTS, VCS
  • area: main
  • in suites: buster
  • size: 9,616 kB
  • sloc: ansic: 48,959; sh: 4,785; makefile: 1,002; xml: 941; python: 68; sed: 16
file content (149 lines) | stat: -rw-r--r-- 7,389 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
/*
 * Photos - access, organize and share your photos on GNOME
 * Copyright © 2012 – 2017 Red Hat, Inc.
 *
 * This program is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */

/* Based on code from:
 *   + Documents
 */

#ifndef PHOTOS_ITEM_MANAGER_H
#define PHOTOS_ITEM_MANAGER_H

#include <gegl.h>
#include <gtk/gtk.h>
#include <tracker-sparql.h>

#include "photos-base-item.h"
#include "photos-base-manager.h"

G_BEGIN_DECLS

#define PHOTOS_TYPE_ITEM_MANAGER (photos_item_manager_get_type ())
G_DECLARE_FINAL_TYPE (PhotosItemManager, photos_item_manager, PHOTOS, ITEM_MANAGER, PhotosBaseManager);

#define PHOTOS_TYPE_MODE_CONTROLLER (photos_item_manager_get_type ())

#define PHOTOS_MODE_CONTROLLER(obj) \
  (G_TYPE_CHECK_INSTANCE_CAST ((obj), \
   PHOTOS_TYPE_MODE_CONTROLLER, PhotosModeController))

#define PHOTOS_IS_MODE_CONTROLLER(obj) \
  (G_TYPE_CHECK_INSTANCE_TYPE ((obj), \
   PHOTOS_TYPE_MODE_CONTROLLER))

typedef enum
{
  PHOTOS_LOAD_STATE_NONE,
  PHOTOS_LOAD_STATE_ERROR,
  PHOTOS_LOAD_STATE_FINISHED,
  PHOTOS_LOAD_STATE_STARTED
} PhotosLoadState;

typedef enum
{
  PHOTOS_WINDOW_MODE_NONE,
  PHOTOS_WINDOW_MODE_COLLECTION_VIEW,
  PHOTOS_WINDOW_MODE_COLLECTIONS,
  PHOTOS_WINDOW_MODE_EDIT,
  PHOTOS_WINDOW_MODE_FAVORITES,
  PHOTOS_WINDOW_MODE_IMPORT,
  PHOTOS_WINDOW_MODE_OVERVIEW,
  PHOTOS_WINDOW_MODE_PREVIEW,
  PHOTOS_WINDOW_MODE_SEARCH
} PhotosWindowMode;

typedef struct _PhotosItemManager      PhotosModeController;
typedef struct _PhotosItemManagerClass PhotosModeControllerClass;

PhotosBaseManager        *photos_item_manager_new                          (void);

void                      photos_item_manager_add_item                     (PhotosItemManager *self,
                                                                            GType base_item_type,
                                                                            TrackerSparqlCursor *cursor,
                                                                            gboolean force);

void                      photos_item_manager_add_item_for_mode            (PhotosItemManager *self,
                                                                            GType base_item_type,
                                                                            PhotosWindowMode mode,
                                                                            TrackerSparqlCursor *cursor);

void                      photos_item_manager_clear                        (PhotosItemManager *self,
                                                                            PhotosWindowMode mode);

PhotosBaseItem           *photos_item_manager_create_item                  (PhotosItemManager *self,
                                                                            GType base_item_type,
                                                                            TrackerSparqlCursor *cursor,
                                                                            gboolean create_thumbnails);

PhotosBaseItem           *photos_item_manager_get_active_collection        (PhotosItemManager *self);

GHashTable               *photos_item_manager_get_collections              (PhotosItemManager *self);

PhotosBaseManager        *photos_item_manager_get_for_mode                 (PhotosItemManager *self,
                                                                            PhotosWindowMode mode);

PhotosLoadState           photos_item_manager_get_load_state               (PhotosItemManager *self);

void                      photos_item_manager_hide_item                    (PhotosItemManager *self,
                                                                            PhotosBaseItem *item);

void                      photos_item_manager_set_constraints_for_mode     (PhotosItemManager *self,
                                                                            gboolean constrain,
                                                                            PhotosWindowMode mode);

void                      photos_item_manager_wait_for_file_async          (PhotosItemManager *self,
                                                                            GFile *file,
                                                                            GCancellable *cancellable,
                                                                            GAsyncReadyCallback callback,
                                                                            gpointer user_data);

gchar                    *photos_item_manager_wait_for_file_finish         (PhotosItemManager *self,
                                                                            GAsyncResult *res,
                                                                            GError **error);

void                      photos_item_manager_wait_for_changes_async       (PhotosItemManager *self,
                                                                            PhotosBaseItem *item,
                                                                            GCancellable *cancellable,
                                                                            GAsyncReadyCallback callback,
                                                                            gpointer user_data);

gchar                    *photos_item_manager_wait_for_changes_finish      (PhotosItemManager *self,
                                                                            GAsyncResult *res,
                                                                            GError **error);

void                      photos_item_manager_unhide_item                  (PhotosItemManager *self,
                                                                            PhotosBaseItem *item);

gboolean                  photos_mode_controller_get_can_fullscreen        (PhotosModeController *self);

gboolean                  photos_mode_controller_get_fullscreen            (PhotosModeController *self);

PhotosWindowMode          photos_mode_controller_get_window_mode           (PhotosModeController *self);

void                      photos_mode_controller_go_back                   (PhotosModeController *self);

void                      photos_mode_controller_toggle_fullscreen         (PhotosModeController *self);

void                      photos_mode_controller_set_fullscreen            (PhotosModeController *self,
                                                                            gboolean              fullscreen);

void                      photos_mode_controller_set_window_mode           (PhotosModeController *self,
                                                                            PhotosWindowMode      mode);

G_END_DECLS

#endif /* PHOTOS_ITEM_MANAGER_H */