#ifndef TNZ_STYLECONTROL_INCLUDED
#define TNZ_STYLECONTROL_INCLUDED
#include "tw/action.h"
#undef DVAPI
#undef DVVAR
#ifdef TWIN_EXPORTS
#define DVAPI DV_EXPORT_API
#define DVVAR DV_EXPORT_VAR
#else
#define DVAPI DV_IMPORT_API
#define DVVAR DV_IMPORT_VAR
#endif
class TColorStyle;
class TPalette;
class TLevel;
class TFilePath;
class DVAPI TStyleControl : public TWidget, public TCommandSource
{
class Data;
Data *m_data;
public:
enum {
COLOR_PAGE = 0x01,
TEXTURE_PAGE = 0x02,
SPECIAL_PAGE = 0x04,
CUSTOM_PAGE = 0x08,
SETTINGS_PAGE = 0x10,
NO_PAGES = 0x00,
ALL_PAGES = 0x1F
};
enum {
ALL_STYLES = 0x01,
VECTOR_SYLES_ONLY = 0x02
};
TStyleControl(
TWidget *parent,
const TFilePath &rootDir,
int styleFilter = ALL_STYLES);
~TStyleControl();
void setActivePages(unsigned long pageMask);
void configureNotify(const TDimension &);
void draw();
void setStyle(TPalette *palette, int styleIndex);
const TColorStyle *getCurrentStyle() const;
int getCurrentStyleIndex() const;
TPalette *getPalette() const;
virtual void onChangeStyleParam(bool dragging) {}
virtual void onChangeStyleNumericParam(int paramIndex, bool dragging)
{
onChangeStyleParam(dragging);
}
void refreshCurrentPage();
void setAutoApply(bool on);
bool getAutoApply() const;
};
#endif