4 * Copyright (C) 2008 Adam Williams <broadcast at earthling dot net>
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.
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.
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
32 #define KEYFRAME_COLUMNS 2
33 // Enable editing of detailed keyframe parameters.
34 class KeyFrameThread : public BC_DialogThread
37 KeyFrameThread(MWindow *mwindow);
42 void start_window(Plugin *plugin, KeyFrame *keyframe);
43 void handle_done_event(int result);
44 void handle_close_event(int result);
46 void save_value(char *value);
48 void update_gui(int update_value_text = 1);
50 ArrayList<BC_ListBoxItem*> *keyframe_data;
54 char window_title[BCTEXTLEN];
55 char plugin_title[BCTEXTLEN];
56 char *column_titles[KEYFRAME_COLUMNS];
57 int column_width[KEYFRAME_COLUMNS];
60 class KeyFrameList : public BC_ListBox
63 KeyFrameList(KeyFrameThread *thread,
64 KeyFrameWindow *window, int x, int y, int w, int h);
65 int selection_changed();
67 int column_resize_event();
68 KeyFrameThread *thread;
69 KeyFrameWindow *window;
72 class KeyFrameParamList : public BC_ListBox
75 KeyFrameParamList(KeyFrameThread *thread,
76 KeyFrameWindow *window, int x, int y, int w, int h);
77 int selection_changed();
79 KeyFrameThread *thread;
80 KeyFrameWindow *window;
83 class KeyFrameValue : public BC_TextBox
86 KeyFrameValue(KeyFrameThread *thread,
87 KeyFrameWindow *window, int x, int y, int w);
89 KeyFrameThread *thread;
90 KeyFrameWindow *window;
93 class KeyFrameAll : public BC_CheckBox
96 KeyFrameAll(KeyFrameThread *thread,
97 KeyFrameWindow *window, int x, int y);
99 KeyFrameThread *thread;
100 KeyFrameWindow *window;
103 class KeyFrameParamsOK : public BC_OKButton
106 KeyFrameParamsOK(KeyFrameThread *thread,
107 KeyFrameWindow *window);
108 int keypress_event();
109 KeyFrameThread *thread;
110 KeyFrameWindow *window;
113 class KeyFrameWindow : public BC_Window
116 KeyFrameWindow(MWindow *mwindow,
117 KeyFrameThread *thread, int x, int y, char *title);
118 void create_objects();
119 int resize_event(int w, int h);
121 // List of parameters, values, & whether the parameter is defined by the current keyframe.
122 KeyFrameList *keyframe_list;
123 // The text area of the plugin
124 // KeyFrameText *keyframe_text;
125 // Value text of the current parameter
126 KeyFrameValue *value_text;
127 KeyFrameAll *all_toggle;
128 BC_Title *title1, *title3;
131 KeyFrameThread *thread;