rework keyframe hide popup, keyframe auto render, textbox set_selection wide text
[goodguy/history.git] / cinelerra-5.1 / cinelerra / editpopup.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 EDITPOPUP_H
23 #define EDITPOPUP_H
24
25 #include "guicast.h"
26 #include "mwindow.inc"
27 #include "mwindowgui.inc"
28 #include "edit.inc"
29 #include "plugindialog.inc"
30 #include "resizetrackthread.inc"
31
32
33 class EditPopupResize;
34 class EditPopupMatchSize;
35 class EditPopupTitleText;
36 class EditPopupTitleWindow;
37 class EditPopupTitleButton;
38 class EditPopupTitleButtonRes;
39
40 class EditPopup : public BC_PopupMenu
41 {
42 public:
43         EditPopup(MWindow *mwindow, MWindowGUI *gui);
44         ~EditPopup();
45
46         void create_objects();
47         int update(Track *track, Edit *edit);
48
49         MWindow *mwindow;
50         MWindowGUI *gui;
51 // Acquired through the update command as the edit currently being operated on
52         Edit *edit;
53         Track *track;
54         EditPopupResize *resize_option;
55         EditPopupMatchSize *matchsize_option;
56 };
57
58 class EditPopupMatchSize : public BC_MenuItem
59 {
60 public:
61         EditPopupMatchSize(MWindow *mwindow, EditPopup *popup);
62         ~EditPopupMatchSize();
63         int handle_event();
64         MWindow *mwindow;
65         EditPopup *popup;
66 };
67
68 class EditPopupResize : public BC_MenuItem
69 {
70 public:
71         EditPopupResize(MWindow *mwindow, EditPopup *popup);
72         ~EditPopupResize();
73         int handle_event();
74         MWindow *mwindow;
75         EditPopup *popup;
76         ResizeTrackThread *dialog_thread;
77 };
78
79 class EditPopupDeleteTrack : public BC_MenuItem
80 {
81 public:
82         EditPopupDeleteTrack(MWindow *mwindow, EditPopup *popup);
83         int handle_event();
84         MWindow *mwindow;
85         EditPopup *popup;
86 };
87
88 class EditPopupAddTrack : public BC_MenuItem
89 {
90 public:
91         EditPopupAddTrack(MWindow *mwindow, EditPopup *popup);
92         int handle_event();
93         MWindow *mwindow;
94         EditPopup *popup;
95 };
96
97
98 class EditAttachEffect : public BC_MenuItem
99 {
100 public:
101         EditAttachEffect(MWindow *mwindow, EditPopup *popup);
102         ~EditAttachEffect();
103
104         int handle_event();
105
106         MWindow *mwindow;
107         EditPopup *popup;
108         PluginDialogThread *dialog_thread;
109 };
110
111 class EditMoveTrackUp : public BC_MenuItem
112 {
113 public:
114         EditMoveTrackUp(MWindow *mwindow, EditPopup *popup);
115         ~EditMoveTrackUp();
116
117         int handle_event();
118
119         MWindow *mwindow;
120         EditPopup *popup;
121 };
122
123 class EditMoveTrackDown : public BC_MenuItem
124 {
125 public:
126         EditMoveTrackDown(MWindow *mwindow, EditPopup *popup);
127         ~EditMoveTrackDown();
128
129         int handle_event();
130
131         MWindow *mwindow;
132         EditPopup *popup;
133 };
134
135
136 class EditPopupTitle : public BC_MenuItem
137 {
138 public:
139         EditPopupTitle (MWindow *mwindow, EditPopup *popup);
140         ~EditPopupTitle();
141
142         int handle_event();
143
144         MWindow *mwindow;
145         EditPopup *popup;
146         EditPopupTitleWindow *window;
147 };
148
149 class EditPopupTitleText : public BC_TextBox
150 {
151 public:
152         EditPopupTitleText (EditPopupTitleWindow *window,
153                 MWindow *mwindow, int x, int y);
154         ~EditPopupTitleText();
155
156         int handle_event();
157
158         EditPopupTitleWindow *window;
159         MWindow *mwindow;
160 };
161
162
163 class EditPopupTitleWindow : public BC_Window
164 {
165 public:
166         EditPopupTitleWindow (MWindow *mwindow, EditPopup *popup);
167         ~EditPopupTitleWindow ();
168
169         void create_objects();
170         int close_event();
171
172         EditPopupTitleText *title_text;
173         Edit *edt;
174         MWindow *mwindow;
175         EditPopup *popup;
176         char new_text[BCTEXTLEN];
177 };
178
179
180
181 #endif