10 #include "swindow.inc"
12 class SWindow : public Thread
25 int update_selection();
28 SWindow(MWindow *mwindow);
33 class SWindowOK : public BC_OKButton
38 int button_press_event();
41 SWindowOK(SWindowGUI *gui, int x, int y);
45 class SWindowCancel : public BC_CancelButton
50 int button_press_event();
52 SWindowCancel(SWindowGUI *gui, int x, int y);
56 class SWindowLoadPath : public BC_TextBox
60 ArrayList<BC_ListBoxItem*> *file_entries;
62 SWindowLoadPath(SWindowGUI *gui, int x, int y, char *path);
68 class SWindowLoadFile : public BC_GenericButton
75 SWindowLoadFile(SWindowGUI *gui, int x, int y);
79 class SWindowSaveFile : public BC_GenericButton
86 SWindowSaveFile(SWindowGUI *gui, int x, int y);
97 void append(char *cp);
98 int size() { return used; }
101 char *get_text_row(int n);
107 class ScriptScroll : public BC_ScrollBar
114 ScriptScroll(SWindowGUI *gui, int x, int y, int w);
118 class ScriptPosition : public BC_TumbleTextBox
125 ScriptPosition(SWindowGUI *gui, int x, int y, int w, int v=0, int mn=0, int mx=0);
129 class ScriptEntry : public BC_ScrollTextBox
135 void set_text(char *text, int isz=-1);
138 ScriptEntry(SWindowGUI *gui, int x, int y, int w, int rows, char *text);
139 ScriptEntry(SWindowGUI *gui, int x, int y, int w, int rows);
143 class ScriptPrev : public BC_GenericButton
149 ScriptPrev(SWindowGUI *gui, int x, int y);
153 class ScriptNext : public BC_GenericButton
159 ScriptNext(SWindowGUI *gui, int x, int y);
163 class ScriptPaste : public BC_GenericButton
169 ScriptPaste(SWindowGUI *gui, int x, int y);
173 class ScriptClear : public BC_GenericButton
179 ScriptClear(SWindowGUI *gui, int x, int y);
183 class SWindowGUI : public BC_Window
185 static int max(int a,int b) { return a>b ? a : b; }
189 BC_CancelButton *cancel;
190 SWindowLoadPath *load_path;
191 SWindowLoadFile *load_file;
192 SWindowSaveFile *save_file;
193 BC_Title *script_filesz;
194 BC_Title *script_lines;
195 BC_Title *script_entries;
196 BC_Title *script_texts;
197 BC_Title *script_title;
198 BC_Title *line_title;
199 ScriptPrev *prev_script;
200 ScriptNext *next_script;
201 ScriptPaste *paste_script;
202 ScriptClear *clear_script;
203 ScriptPosition *script_position;
204 ScriptEntry *script_entry;
205 ScriptEntry *line_entry;
206 ScriptScroll *script_scroll;
210 char script_path[BCTEXTLEN];
211 ArrayList<ScriptLines *> script;
213 void create_objects();
216 int translation_event();
217 int resize_event(int w, int h);
218 void load_defaults();
219 void save_defaults();
221 void load_script(FILE *fp);
222 int load_script_line(FILE *fp);
223 void set_script_pos(int64_t entry_no, int text_no=0);
224 int load_selection();
225 int load_selection(int pos, int row);
226 int load_prev_selection();
227 int load_next_selection();
228 int update_selection();
229 int paste_text(const char *text, double start, double end);
230 int paste_selection();
231 int clear_selection();
232 void save_spumux_data();
234 int ok_x, ok_y, ok_w, ok_h;
235 int cancel_x, cancel_y, cancel_w, cancel_h;
236 int64_t script_entry_no, script_text_no;
237 int64_t script_line_no, script_text_lines;
238 int text_font, text_rowsz;
240 SWindowGUI(SWindow *swindow, int x, int y, int w, int h);
246 class SubttlSWin : public BC_MenuItem
252 SubttlSWin(MWindow *mwindow);