#ifndef CASMCONFIGPANEL_H #define CASMCONFIGPANEL_H #include "tfilepath.h" #include "tw/tw.h" // forward declarations class TLabel; class TNumField; class TOptionMenu; class TTextField; class TButton; class TFilePath; class TCheckBox; //============================================================================== #define DDR_OUTPUTSCRIPT_FILENAME "D@D@R" class CasmTask { public: CasmTask(); CasmTask(const string &s, const string &setupFilePath); string getCommandLine() const; void setCommandLine(const string &cmdLine); void setdefaultValue(); enum moveType { M_NONE = 0, M_BG_FRACMOVE, M_INTMOVE, M_FRACMOVE }; enum resType { RES_TYPE_NONE = 0, RES_TYPE_STANDARD, RES_TYPE_IMPROVED, RES_TYPE_HIGH }; int m_taskChunksize; int m_start; int m_end; int m_step; string m_casmFile; string m_outname; int m_firstFrame; int m_lastFrame; int m_reduction; moveType m_moveType; int m_prec; double m_renderTile; double m_memChunk; bool m_multimedia; bool m_logfile; bool m_cf; resType m_restype; bool m_noOverwrite; bool m_clap; bool m_mprocess; int m_numColumn; int m_lineart; int m_edgeAliasing; double m_gamma; string m_bcScript; string m_acScript; string m_outputScript; string m_outputScriptArgument; string m_setupFile; int xsize, ysize; }; //============================================================================== class CasmConfigPanel : public TWidget { public: CasmConfigPanel(TWidget *parent); void configureNotify(const TDimension &d); void setTask(CasmTask *task); CasmTask *getTask() const; void loadSetup(const TFilePath &fp); void onNumField(double v, int type); void onColumnField(std::wstring value); private: CasmTask *m_task; TLabel *m_setupLabel; TTextField *m_setupTextField; TButton *m_setupBrowseBtn; TLabel *m_chunkSizeLabel; TNumField *m_chunkSize; TLabel *m_fromLabel; TLabel *m_toLabel; TLabel *m_stepLabel; TNumField *m_from; TNumField *m_to; TNumField *m_step; TLabel *m_shrinkLabel; TLabel *m_renderTileLabel; TLabel *m_memChunkLabel; TNumField *m_shrink; TNumField *m_renderTile; TNumField *m_memChunk; TLabel *m_subPixelMoveLabel; TOptionMenu *m_subPixelMove; TLabel *m_processingLabel; TOptionMenu *m_processing; TLabel *m_resampleQualityLabel; TOptionMenu *m_resampleQuality; TCheckBox *m_focus; TCheckBox *m_noOverwrite; TCheckBox *m_multimedia; TTextField *m_column; TCheckBox *m_lineart; TCheckBox *m_edgeAliasing; TNumField *m_thickness; TCheckBox *m_gamma; TNumField *m_gammaValue; TCheckBox *m_clap; TLabel *m_outputScriptLabel; TOptionMenu *m_outputScript; TLabel *m_entryPointLabel; TTextField *m_entryPoint; void browseSetupFiles(); void onMultimedia(TCheckBox *box, bool on); void onLineart(TCheckBox *box, bool on); void onEdgeAliasing(TCheckBox *box, bool on); void onConstantFocus(TCheckBox *box, bool on); void onOverwrite(TCheckBox *box, bool on); void onGamma(TCheckBox *box, bool on); void onSubPixelMove(string move); void onProcessing(string bits); void onResampleQuality(string quality); }; #endif