diff options
Diffstat (limited to 'Plugins/skins/m_skins_cpp.h')
-rw-r--r-- | Plugins/skins/m_skins_cpp.h | 73 |
1 files changed, 49 insertions, 24 deletions
diff --git a/Plugins/skins/m_skins_cpp.h b/Plugins/skins/m_skins_cpp.h index 6e4728e..7a28a31 100644 --- a/Plugins/skins/m_skins_cpp.h +++ b/Plugins/skins/m_skins_cpp.h @@ -21,18 +21,20 @@ Boston, MA 02111-1307, USA. #ifndef __M_SKINS_CPP_H__
# define __M_SKINS_CPP_H__
-#include "m_skin.h"
+#include "m_skins.h"
-extern struct SKIN_INTERFACE *mski;
+extern struct SKIN_INTERFACE mski;
class SkinField
{
public:
SkinField(SKINNED_FIELD field) { this->field = field; }
-
- RECT getRect() { return mski->GetRect(field); }
- BOOL isVisible() { return mski->IsVisible(field); }
+
+ BOOL isValid() { return field != NULL; }
+
+ RECT getRect() { return mski.GetRect(field); }
+ BOOL isVisible() { return mski.IsVisible(field); }
protected:
SKINNED_FIELD field;
@@ -41,12 +43,33 @@ protected: class SkinTextField : public SkinField
{
public:
- SkinTextField(SKINNED_FIELD field) : SkinField(field) {}
+ SkinTextField(SKINNED_FIELD field) : SkinField(field), text(NULL) {}
+ ~SkinTextField() { if (text != NULL) mir_free(text); }
+
+ void setText(const TCHAR *text) {
+#ifdef UNICODE
+ mski.SetTextW(field, text);
+#else
+ mski.SetTextA(field, text);
+#endif
+ }
+ const TCHAR * getText() {
+ if (text != NULL)
+ mir_free(text);
+
+#ifdef UNICODE
+ text = mski.GetTextW(field);
+#else
+ text = mski.GetTextA(field);
+#endif
+ return text;
+ }
- void setText(const TCHAR *text) { mski->SetText(field, text); }
- const TCHAR * getText() { return mski->GetText(field); }
- HFONT getFont() { return mski->GetFont(field); }
- COLORREF getFontColor() { return mski->GetFontColor(field); }
+ HFONT getFont() { return mski.GetFont(field); }
+ COLORREF getFontColor() { return mski.GetFontColor(field); }
+
+private:
+ TCHAR *text;
};
class SkinIconField : public SkinField
@@ -54,8 +77,8 @@ class SkinIconField : public SkinField public:
SkinIconField(SKINNED_FIELD field) : SkinField(field) {}
- void setIcon(HICON hIcon) { return mski->SetIcon(field, hIcon); }
- HICON getIcon() { return mski->GetIcon(field); }
+ void setIcon(HICON hIcon) { mski.SetIcon(field, hIcon); }
+ HICON getIcon() { return mski.GetIcon(field); }
};
class SkinImageField : public SkinField
@@ -63,8 +86,8 @@ class SkinImageField : public SkinField public:
SkinImageField(SKINNED_FIELD field) : SkinField(field) {}
- void setImage(HBITMAP hBmp) { return mski->SetImage(field, hBmp); }
- HBITMAP getImage() { return mski->GetImage(field); }
+ void setImage(HBITMAP hBmp) { mski.SetImage(field, hBmp); }
+ HBITMAP getImage() { return mski.GetImage(field); }
};
@@ -73,26 +96,28 @@ class SkinDialog public:
SkinDialog(const char *name, const char *description, const char *module)
{
- dlg = mski->RegisterDialog(name, description, module);
+ dlg = mski.RegisterDialog(name, description, module);
}
~SkinDialog()
{
- mski->DeleteDialog(dlg);
+ mski.DeleteDialog(dlg);
dlg = NULL;
}
- void finishedConfiguring() { mski->FinishedConfiguring(dlg); }
- void setSize(int width, int height) { mski->SetDialogSize(dlg, width, height); }
+ BOOL isValid() { return dlg != NULL; }
+ void finishedConfiguring() { mski.FinishedConfiguring(dlg); }
+ void setSize(int width, int height) { mski.SetDialogSize(dlg, width, height); }
+ RECT getBorders() { return mski.GetBorders(dlg); }
- SkinTextField addTextField(const char *name, const char *description) { return SkinTextField( mski->AddTextField(dlg, name, description) ); }
- SkinIconField addIconField(const char *name, const char *description) { return SkinIconField( mski->AddIconField(dlg, name, description) ); }
- SkinImageField addImageField(const char *name, const char *description) { return SkinImageField( mski->AddImageField(dlg, name, description) ); }
+ SkinTextField addTextField(const char *name, const char *description) { return SkinTextField( mski.AddTextField(dlg, name, description) ); }
+ SkinIconField addIconField(const char *name, const char *description) { return SkinIconField( mski.AddIconField(dlg, name, description) ); }
+ SkinImageField addImageField(const char *name, const char *description) { return SkinImageField( mski.AddImageField(dlg, name, description) ); }
- SkinTextField getTextField(const char *name) { return SkinTextField( mski->GetField(dlg, name) ); }
- SkinIconField getIconField(const char *name) { return SkinIconField( mski->GetField(dlg, name) ); }
- SkinImageField getImageField(const char *name) { return SkinImageField( mski->GetField(dlg, name) ); }
+ SkinTextField getTextField(const char *name) { return SkinTextField( mski.GetField(dlg, name) ); }
+ SkinIconField getIconField(const char *name) { return SkinIconField( mski.GetField(dlg, name) ); }
+ SkinImageField getImageField(const char *name) { return SkinImageField( mski.GetField(dlg, name) ); }
private:
SKINNED_DIALOG dlg;
|