From 05f6cf3f7788f8bfe5ee589a9f27a89217c67989 Mon Sep 17 00:00:00 2001 From: pescuma Date: Sat, 3 Jan 2009 05:12:30 +0000 Subject: skins: It's ALIVE! git-svn-id: http://pescuma.googlecode.com/svn/trunk/Miranda@121 c086bb3d-8645-0410-b8da-73a8550f86e7 --- Plugins/skins/m_skins_cpp.h | 102 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 102 insertions(+) create mode 100644 Plugins/skins/m_skins_cpp.h (limited to 'Plugins/skins/m_skins_cpp.h') diff --git a/Plugins/skins/m_skins_cpp.h b/Plugins/skins/m_skins_cpp.h new file mode 100644 index 0000000..6e4728e --- /dev/null +++ b/Plugins/skins/m_skins_cpp.h @@ -0,0 +1,102 @@ +/* +Copyright (C) 2008 Ricardo Pescuma Domenecci + +This is free software; you can redistribute it and/or +modify it under the terms of the GNU Library General Public +License as published by the Free Software Foundation; either +version 2 of the License, or (at your option) any later version. + +This is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +Library General Public License for more details. + +You should have received a copy of the GNU Library General Public +License along with this file; see the file license.txt. If +not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, +Boston, MA 02111-1307, USA. +*/ + + +#ifndef __M_SKINS_CPP_H__ +# define __M_SKINS_CPP_H__ + +#include "m_skin.h" + +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); } + +protected: + SKINNED_FIELD field; +}; + +class SkinTextField : public SkinField +{ +public: + SkinTextField(SKINNED_FIELD field) : SkinField(field) {} + + 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); } +}; + +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); } +}; + +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); } +}; + + +class SkinDialog +{ +public: + SkinDialog(const char *name, const char *description, const char *module) + { + dlg = mski->RegisterDialog(name, description, module); + } + + ~SkinDialog() + { + mski->DeleteDialog(dlg); + dlg = NULL; + } + + void finishedConfiguring() { mski->FinishedConfiguring(dlg); } + void setSize(int width, int height) { mski->SetDialogSize(dlg, width, height); } + + + 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) ); } + +private: + SKINNED_DIALOG dlg; +}; + + +#endif // __M_SKINS_CPP_H__ \ No newline at end of file -- cgit v1.2.3