00001 #ifndef ASSETEDIT_H
00002 #define ASSETEDIT_H
00003
00004 #include "asset.inc"
00005 #include "awindow.inc"
00006 #include "guicast.h"
00007 #include "bitspopup.inc"
00008 #include "browsebutton.h"
00009 #include "formatpopup.h"
00010 #include "language.h"
00011 #include "mwindow.h"
00012 #include "thread.h"
00013
00014
00015 class AssetEditTCStartTextBox;
00016 class AssetEditReelNumber;
00017 class AssetEditReelName;
00018 class AssetEditByteOrderHILO;
00019 class AssetEditByteOrderLOHI;
00020 class AssetEditPath;
00021 class AssetEditPathText;
00022 class AssetEditWindow;
00023
00024 class AssetEdit : public Thread
00025 {
00026 public:
00027 AssetEdit(MWindow *mwindow);
00028 ~AssetEdit();
00029
00030 void edit_asset(Asset *asset);
00031 int set_asset(Asset *asset);
00032 void run();
00033
00034 Asset *asset, *new_asset;
00035 MWindow *mwindow;
00036 AssetEditWindow *window;
00037 };
00038
00039
00040
00041
00042
00043
00044 class AssetEditWindow : public BC_Window
00045 {
00046 public:
00047 AssetEditWindow(MWindow *mwindow, AssetEdit *asset_edit);
00048 ~AssetEditWindow();
00049
00050 int create_objects();
00051 Asset *asset;
00052 AssetEditPathText *path_text;
00053 AssetEditPath *path_button;
00054 AssetEditByteOrderHILO *hilo;
00055 AssetEditByteOrderLOHI *lohi;
00056 BitsPopup *bitspopup;
00057 int allow_edits;
00058 MWindow *mwindow;
00059 AssetEdit *asset_edit;
00060 };
00061
00062
00063 class AssetEditPath : public BrowseButton
00064 {
00065 public:
00066 AssetEditPath(MWindow *mwindow,
00067 AssetEditWindow *fwindow,
00068 BC_TextBox *textbox,
00069 int y,
00070 char *text,
00071 char *window_title = _(PROGRAM_NAME " Path"),
00072 char *window_caption = _("Select a file"));
00073 ~AssetEditPath();
00074
00075 AssetEditWindow *fwindow;
00076 };
00077
00078
00079 class AssetEditPathText : public BC_TextBox
00080 {
00081 public:
00082 AssetEditPathText(AssetEditWindow *fwindow, int y);
00083 ~AssetEditPathText();
00084 int handle_event();
00085
00086 AssetEditWindow *fwindow;
00087 };
00088
00089
00090
00091 class AssetEditFormat : public FormatPopup
00092 {
00093 public:
00094 AssetEditFormat(AssetEditWindow *fwindow, char* default_, int y);
00095 ~AssetEditFormat();
00096
00097 int handle_event();
00098 AssetEditWindow *fwindow;
00099 };
00100
00101
00102 class AssetEditChannels : public BC_TumbleTextBox
00103 {
00104 public:
00105 AssetEditChannels(AssetEditWindow *fwindow, char *text, int x, int y);
00106
00107 int handle_event();
00108
00109 AssetEditWindow *fwindow;
00110 };
00111
00112 class AssetEditRate : public BC_TextBox
00113 {
00114 public:
00115 AssetEditRate(AssetEditWindow *fwindow, char *text, int x, int y);
00116
00117 int handle_event();
00118
00119 AssetEditWindow *fwindow;
00120 };
00121
00122 class AssetEditFRate : public BC_TextBox
00123 {
00124 public:
00125 AssetEditFRate(AssetEditWindow *fwindow, char *text, int x, int y);
00126
00127 int handle_event();
00128
00129 AssetEditWindow *fwindow;
00130 };
00131
00132 class Interlaceautofix : public BC_CheckBox
00133 {
00134 public:
00135 Interlaceautofix(MWindow *mwindow,AssetEditWindow *fwindow, int x, int y);
00136 ~Interlaceautofix();
00137 int handle_event();
00138
00139 void showhideotherwidgets();
00140
00141 AssetEditWindow* fwindow;
00142 MWindow *mwindow;
00143
00144 BC_TextBox *ilacemode_textbox;
00145 BC_ListBox *ilacemode_listbox;
00146 BC_TextBox *ilacefixmethod_textbox;
00147 BC_ListBox *ilacefixmethod_listbox;
00148 private:
00149 char string[BCTEXTLEN];
00150 };
00151
00152 class AssetEditILaceautofixoption : public BC_TextBox
00153 {
00154 public:
00155 AssetEditILaceautofixoption(AssetEditWindow *fwindow, char *text, int thedefault, int x, int y, int w);
00156
00157 int handle_event();
00158 int thedefault;
00159 AssetEditWindow *fwindow;
00160 };
00161
00162 class AssetEditILacemode : public BC_TextBox
00163 {
00164 public:
00165 AssetEditILacemode(AssetEditWindow *fwindow, char *text, int thedefault, int x, int y, int w);
00166 int handle_event();
00167 int thedefault;
00168 AssetEditWindow *fwindow;
00169 };
00170
00171 class AssetEditInterlacemodePulldown : public BC_ListBox
00172 {
00173 public:
00174 AssetEditInterlacemodePulldown(MWindow *mwindow,
00175 BC_TextBox *output_text,
00176 int *output_value,
00177 ArrayList<BC_ListBoxItem*> *data,
00178 Interlaceautofix *fixoption_chkbox,
00179 int x,
00180 int y);
00181 int handle_event();
00182 char* interlacemode_to_text();
00183 MWindow *mwindow;
00184 BC_TextBox *output_text;
00185 int *output_value;
00186 Interlaceautofix *fixoption_chkbox;
00187 private:
00188 char string[BCTEXTLEN];
00189 };
00190
00191 class AssetEditILacefixmethod : public BC_TextBox
00192 {
00193 public:
00194 AssetEditILacefixmethod(AssetEditWindow *fwindow, char *text, int thedefault, int x, int y, int w);
00195
00196 int handle_event();
00197 int thedefault;
00198 AssetEditWindow *fwindow;
00199 };
00200
00201 class AssetEditHeader : public BC_TextBox
00202 {
00203 public:
00204 AssetEditHeader(AssetEditWindow *fwindow, char *text, int x, int y);
00205
00206 int handle_event();
00207
00208 AssetEditWindow *fwindow;
00209 };
00210
00211 class AssetEditByteOrderLOHI : public BC_Radial
00212 {
00213 public:
00214 AssetEditByteOrderLOHI(AssetEditWindow *fwindow, int value, int x, int y);
00215
00216 int handle_event();
00217
00218 AssetEditWindow *fwindow;
00219 };
00220
00221 class AssetEditByteOrderHILO : public BC_Radial
00222 {
00223 public:
00224 AssetEditByteOrderHILO(AssetEditWindow *fwindow, int value, int x, int y);
00225
00226 int handle_event();
00227
00228 AssetEditWindow *fwindow;
00229 };
00230
00231 class AssetEditSigned : public BC_CheckBox
00232 {
00233 public:
00234 AssetEditSigned(AssetEditWindow *fwindow, int value, int x, int y);
00235
00236 int handle_event();
00237
00238 AssetEditWindow *fwindow;
00239 };
00240
00241 class AssetEditReelName : public BC_TextBox
00242 {
00243 public:
00244 AssetEditReelName(AssetEditWindow *fwindow, int x, int y);
00245 ~AssetEditReelName();
00246
00247 int handle_event();
00248
00249 AssetEditWindow *fwindow;
00250 };
00251
00252 class AssetEditReelNumber : public BC_TextBox
00253 {
00254 public:
00255 AssetEditReelNumber(AssetEditWindow *fwindow, int x, int y);
00256 ~AssetEditReelNumber();
00257
00258 int handle_event();
00259
00260 AssetEditWindow *fwindow;
00261 };
00262
00263 class AssetEditTCStartTextBox : public BC_TextBox
00264 {
00265 public:
00266 AssetEditTCStartTextBox(AssetEditWindow *fwindow, int value, int x, int y, int multiplier);
00267 ~AssetEditTCStartTextBox();
00268 int handle_event();
00269
00270 AssetEditWindow *fwindow;
00271
00272
00273 int multiplier;
00274 int previous;
00275 };
00276 #endif