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