summaryrefslogtreecommitdiff
path: root/Plugins/skins/SkinLib/SkinnedDialog.h
diff options
context:
space:
mode:
authorpescuma <pescuma@c086bb3d-8645-0410-b8da-73a8550f86e7>2009-01-03 05:12:30 +0000
committerpescuma <pescuma@c086bb3d-8645-0410-b8da-73a8550f86e7>2009-01-03 05:12:30 +0000
commit05f6cf3f7788f8bfe5ee589a9f27a89217c67989 (patch)
treea39f988ad4391eb4cb4d62c5643c01cae5af13e3 /Plugins/skins/SkinLib/SkinnedDialog.h
parentbb6784e0e1a385cdd20b41d3254093e89a210332 (diff)
skins: It's ALIVE!
git-svn-id: http://pescuma.googlecode.com/svn/trunk/Miranda@121 c086bb3d-8645-0410-b8da-73a8550f86e7
Diffstat (limited to 'Plugins/skins/SkinLib/SkinnedDialog.h')
-rw-r--r--Plugins/skins/SkinLib/SkinnedDialog.h47
1 files changed, 25 insertions, 22 deletions
diff --git a/Plugins/skins/SkinLib/SkinnedDialog.h b/Plugins/skins/SkinLib/SkinnedDialog.h
index 54c0887..6cbb4a3 100644
--- a/Plugins/skins/SkinLib/SkinnedDialog.h
+++ b/Plugins/skins/SkinLib/SkinnedDialog.h
@@ -23,48 +23,56 @@
#include "LabelFieldState.h"
#include "TextFieldState.h"
+#include "SkinOptions.h"
+
class V8Script;
-class SkinOptions;
+
typedef void (*MessageCallback)(void *param, const TCHAR *err);
-class SkinnedDialog
+class SkinnedDialog : public Dialog
{
public:
SkinnedDialog(const char *name);
- ~SkinnedDialog();
+ virtual ~SkinnedDialog();
- const TCHAR * getFilename() const;
- void setFilename(const char *skin, const TCHAR *filename);
+ virtual const TCHAR * getFilename() const;
+ virtual void setFilename(const TCHAR *filename);
- bool addField(Field *field);
- Field * getField(const char *name) const;
- Field * getField(unsigned int pos) const;
- int getFieldCount() const;
+ virtual bool addField(Field *field);
- const Size & getSize() const;
- void setSize(const Size &size);
+ virtual void setSize(const Size &size);
/// Return the cached state. Do not free the result.
/// Each call to this method can potentially create the state, so don't cache it.
- DialogState * getState();
+ virtual DialogState * getState();
/// Create a state based on the script passed in text. the caller have to free the DialogState *
- DialogState * createState(const TCHAR *text, MessageCallback errorCallback = NULL, void *errorCallbackParam = NULL);
+ virtual DialogState * createState(const TCHAR *text, MessageCallback errorCallback = NULL, void *errorCallbackParam = NULL);
+
+ virtual void setErrorCallback(MessageCallback cb, void *param = NULL);
+ virtual void setTraceCallback(MessageCallback cb, void *param = NULL);
+
+ virtual SkinOptions * getOpts();
+ virtual DialogState * getDefaultState();
- void setErrorCallback(MessageCallback cb, void *param = NULL);
- void setTraceCallback(MessageCallback cb, void *param = NULL);
+protected:
+ virtual bool fileChanged();
+ virtual bool compile();
+
+ virtual void trace(TCHAR *msg, ...);
+
+ virtual void onFieldChange(const Field *field);
private:
- Dialog dlg;
- std::string skin;
std::tstring filename;
__time64_t fileChangedTime;
V8Script *script;
DialogState *state;
SkinOptions *opts;
+ DialogState *defaultState;
MessageCallback errorCallback;
void *errorCallbackParam;
@@ -73,13 +81,8 @@ private:
void releaseCompiledScript();
void releaseState();
- bool fileChanged();
void readFile(std::tstring &ret);
- void trace(TCHAR *msg, ...);
-
- void onFieldChange(const Field *field);
-
static void staticOnFieldChange(void *param, const Field *field);
};