Credit Andrew R for finding the direct copy mods for exr and ppm sequences
[goodguy/cinelerra.git] / cinelerra-5.1 / cinelerra / savefile.h
1
2 /*
3  * CINELERRA
4  * Copyright (C) 2008 Adam Williams <broadcast at earthling dot net>
5  *
6  * This program is free software; you can redistribute it and/or modify
7  * it under the terms of the GNU General Public License as published by
8  * the Free Software Foundation; either version 2 of the License, or
9  * (at your option) any later version.
10  *
11  * This program is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14  * GNU General Public License for more details.
15  *
16  * You should have received a copy of the GNU General Public License
17  * along with this program; if not, write to the Free Software
18  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
19  *
20  */
21
22 #ifndef SAVEFILE_H
23 #define SAVEFILE_H
24
25 #include "guicast.h"
26 #include "mainmenu.inc"
27 #include "mwindow.inc"
28 #include "savefile.inc"
29
30 class SaveBackup : public BC_MenuItem
31 {
32 public:
33         SaveBackup(MWindow *mwindow);
34         int handle_event();
35         MWindow *mwindow;
36 };
37
38 class Save : public BC_MenuItem
39 {
40 public:
41         Save(MWindow *mwindow);
42         int handle_event();
43         void create_objects(SaveAs *saveas);
44         int save_before_quit();
45
46         int quit_now;
47         MWindow *mwindow;
48         SaveAs *saveas;
49 };
50
51 class SaveAs : public BC_MenuItem, public Thread
52 {
53 public:
54         SaveAs(MWindow *mwindow);
55         int set_mainmenu(MainMenu *mmenu);
56         int handle_event();
57         void run();
58
59         int quit_now;
60         MWindow *mwindow;
61         MainMenu *mmenu;
62 };
63
64 class SaveProjectModeItem : public BC_MenuItem
65 {
66 public:
67         SaveProjectModeItem(const char *txt, int id)
68          : BC_MenuItem(txt) { this->id = id; }
69
70         int handle_event();
71         int id;
72 };
73
74 class SaveProjectMode : public BC_PopupMenu
75 {
76         const char *save_modes[SAVE_PROJECT_MODES];
77         int mode;
78 public:
79         SaveProjectMode(SaveProjectWindow *gui, int x, int y);
80         ~SaveProjectMode();
81
82         void create_objects();
83         void update(int mode);
84
85         SaveProjectWindow *gui;
86 };
87
88 class SaveProjectTextBox : public BC_TextBox
89 {
90 public:
91         SaveProjectTextBox(SaveProjectWindow *gui, int x, int y, int w);
92         ~SaveProjectTextBox();
93         int handle_event();
94
95
96         SaveProjectWindow *gui;
97 };
98
99 class SaveProjectWindow : public BC_Window
100 {
101 public:
102         SaveProjectWindow(MWindow *mwindow, const char *dir_path,
103                         int save_mode, int overwrite, int reload);
104         ~SaveProjectWindow();
105         void create_objects();
106
107         MWindow *mwindow;
108         SaveProjectTextBox *textbox;
109         BC_RecentList *recent_project;
110         BrowseButton *browse_button;
111         SaveProjectMode *mode_popup;
112
113         char dir_path[BCTEXTLEN];
114         int overwrite;
115         int save_mode;
116         int reload;
117
118         int get_overwrite() { return overwrite; }
119         int get_save_mode() { return save_mode; }
120         int get_reload() { return reload; }
121 };
122
123 class SaveProject : public BC_MenuItem, public Thread
124 {
125 public:
126         SaveProject(MWindow *mwindow);
127         int handle_event();
128         void run();
129         MWindow *mwindow;
130 };
131
132 class SaveSession : public BC_MenuItem
133 {
134 public:
135         SaveSession(MWindow *mwindow);
136         int handle_event();
137         MWindow *mwindow;
138 };
139
140 #endif