diff options
author | Vadim Dashevskiy <watcherhd@gmail.com> | 2012-07-11 17:09:09 +0000 |
---|---|---|
committer | Vadim Dashevskiy <watcherhd@gmail.com> | 2012-07-11 17:09:09 +0000 |
commit | bb22e7b2a0af67cc65ce5179917b20e5977ed4ef (patch) | |
tree | 120e18f5a61144f3f632263e05cb49109f672615 /plugins/Skins | |
parent | 3b8d44fb4646951be55b3777cbe30d3280867067 (diff) |
MyDetails reverted to older version that doesn't use Skins plugin
git-svn-id: http://svn.miranda-ng.org/main/trunk@905 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c
Diffstat (limited to 'plugins/Skins')
111 files changed, 0 insertions, 13989 deletions
diff --git a/plugins/Skins/Docs/langpack_skins.txt b/plugins/Skins/Docs/langpack_skins.txt deleted file mode 100644 index 1819d74fce..0000000000 --- a/plugins/Skins/Docs/langpack_skins.txt +++ /dev/null @@ -1,2 +0,0 @@ -; Skins
-; Author: Pescuma
diff --git a/plugins/Skins/Docs/skins_changelog.txt b/plugins/Skins/Docs/skins_changelog.txt deleted file mode 100644 index fcaa8da44c..0000000000 --- a/plugins/Skins/Docs/skins_changelog.txt +++ /dev/null @@ -1,25 +0,0 @@ -Skins
-
-Changelog:
-
-. 0.0.0.5
- + Allow changing skins
- * Updated v8
- * Updated updater to use googlecode
-
-. 0.0.0.4
- * Fixed font service iteration
- * Fixed naming of skin options
-
-. 0.0.0.3
- * Better handling of small sizes
-
-. 0.0.0.2
- * Fix for float numbers
- + Added valign (not used yet)
- + Added dialog info (allow clients to set script variables starting with info)
- + The zip will contain also the pdbs (at least until it is more stable)
- * Fix for ASCII strings
-
-. 0.0.0.1
- + Initial version
\ No newline at end of file diff --git a/plugins/Skins/Docs/skins_readme.txt b/plugins/Skins/Docs/skins_readme.txt deleted file mode 100644 index fd06309ad1..0000000000 --- a/plugins/Skins/Docs/skins_readme.txt +++ /dev/null @@ -1,31 +0,0 @@ -Skins plugin
-----------------
-
-CAUTION: THIS IS AN ALPHA STAGE PLUGIN. IT CAN DO VERY BAD THINGS. USE AT YOUR OWN RISK.
-
-This is a service plugin to allow using different skins. It uses javascript as the language the skins are written, thus allowing a lot of flexibility.
-
-Keep in mind that this is an initial version of the plugin. It is intended to grow a loot (its to do list is bigger than its features list :P ). Currently it allows only calculating the position of elements.
-
-It works based in the consept of a skin beeing a group of small skins (one for each client). The skins are inside the dir <Miranda>\Skins\<Skin name> , and inside that folder, each client skin has the name <Client>.msk
-
-Inside the zip there is also a version of MyDetails using this plugin.
-
-Many thanks to the v8 team for the javascript engine implementation.
-
-This needs Miranda 0.8 to work.
-
-To report bugs/make suggestions, go to the forum thread: http://forums.miranda-im.org/showthread.php?p=172392
-
-
-TODO:
- - Allow changing skin without restart
- - Add support for handling skin packs
- - Add support for emoticons in text fields
- - Add code to draw elements on screen
- - Add service to create a new frame only based on the fields
- - Allow setting variables by the users of the plugin
-
-
-KNOWN PROBLEMS:
- - It seems to have a memory leak (last time I debugged it, it was inside v8 - maybe I just don't understant its garbage collector?)
diff --git a/plugins/Skins/Docs/skins_version.txt b/plugins/Skins/Docs/skins_version.txt deleted file mode 100644 index 92fad2b10f..0000000000 --- a/plugins/Skins/Docs/skins_version.txt +++ /dev/null @@ -1 +0,0 @@ -Skins 0.0.0.5
\ No newline at end of file diff --git a/plugins/Skins/MirandaField.h b/plugins/Skins/MirandaField.h deleted file mode 100644 index d89901c77d..0000000000 --- a/plugins/Skins/MirandaField.h +++ /dev/null @@ -1,14 +0,0 @@ -#ifndef __MIRANDA_FIELD_H__
-# define __MIRANDA_FIELD_H__
-
-
-class MirandaField
-{
-public:
- virtual void configure() = 0;
-};
-
-
-
-
-#endif // __MIRANDA_FIELD_H__
diff --git a/plugins/Skins/MirandaFont.cpp b/plugins/Skins/MirandaFont.cpp deleted file mode 100644 index 51b0f34f9b..0000000000 --- a/plugins/Skins/MirandaFont.cpp +++ /dev/null @@ -1,87 +0,0 @@ -#include "MirandaFont.h"
-
-MirandaFont::MirandaFont(Field *aField, const char *description)
- : field(aField), hFont(NULL)
-{
- ZeroMemory(&fid, sizeof(fid));
- lstrcpyn(fid.name, CharToTchar(description), sizeof(fid.name));
-}
-
-MirandaFont::~MirandaFont()
-{
- releaseFont();
-}
-
-void MirandaFont::registerFont(FontState *font)
-{
- if (fid.cbSize != 0)
- return;
-
- MirandaSkinnedDialog * dlg = (MirandaSkinnedDialog *) field->getDialog();
-
- HDC hdc = GetDC(NULL);
-
- fid.cbSize = sizeof(fid);
- lstrcpyn(fid.group, CharToTchar(dlg->getDescription()), sizeof(fid.group));
- strncpy(fid.dbSettingsGroup, dlg->getModule(), sizeof(fid.dbSettingsGroup));
-
- char tmp[sizeof(fid.prefix)];
- mir_snprintf(tmp, sizeof(tmp), "%s%s%sFont", TcharToChar(dlg->getSkinName()), dlg->getName(), field->getName());
- strncpy(fid.prefix, tmp, sizeof(fid.prefix));
-
- fid.deffontsettings.colour = font->getColor();
- fid.deffontsettings.size = -MulDiv(font->getSize(), GetDeviceCaps(hdc, LOGPIXELSY), 72);
- fid.deffontsettings.style = (font->isBold() ? DBFONTF_BOLD : 0)
- | (font->isItalic() ? DBFONTF_ITALIC : 0)
- | (font->isUnderline() ? DBFONTF_UNDERLINE : 0)
- | (font->isStrikeOut() ? DBFONTF_STRIKEOUT : 0);
- fid.deffontsettings.charset = DEFAULT_CHARSET;
- lstrcpyn(fid.deffontsettings.szFace, font->getFace(), sizeof(fid.deffontsettings.szFace));
- fid.order = dlg->getIndexOf(field);
- fid.flags = FIDF_DEFAULTVALID | FIDF_ALLOWEFFECTS;
-
- CallService(MS_FONT_REGISTERT, (WPARAM)&fid, 0);
-
- ReleaseDC(NULL, hdc);
-
- HookEventObj(ME_FONT_RELOAD, staticReloadFont, this);
-
- reloadFont();
-}
-
-void MirandaFont::reloadFont()
-{
- releaseFont();
-
- LOGFONT log_font;
- COLORREF color = (COLORREF) CallService(MS_FONT_GETT, (WPARAM) &fid, (LPARAM) &log_font);
- hFont = CreateFontIndirect(&log_font);
-
- switch(field->getType())
- {
- case SIMPLE_TEXT:
- ((TextField *) field)->setFontColor(color);
- ((TextField *) field)->setFont(hFont);
- break;
- case CONTROL_LABEL:
- case CONTROL_BUTTON:
- case CONTROL_EDIT:
- ((ControlField *) field)->setFont(hFont);
- break;
- }
-}
-
-int MirandaFont::staticReloadFont(void *obj, WPARAM wParam, LPARAM lParam)
-{
- ((MirandaFont *) obj)->reloadFont();
- return 0;
-}
-
-void MirandaFont::releaseFont()
-{
- if (hFont != NULL)
- {
- DeleteObject(hFont);
- hFont = NULL;
- }
-}
\ No newline at end of file diff --git a/plugins/Skins/MirandaFont.h b/plugins/Skins/MirandaFont.h deleted file mode 100644 index da9a40a06e..0000000000 --- a/plugins/Skins/MirandaFont.h +++ /dev/null @@ -1,28 +0,0 @@ -#ifndef __MIRANDA_FONT_H__
-# define __MIRANDA_FONT_H__
-
-#include "commons.h"
-
-
-class MirandaFont
-{
-public:
- MirandaFont(Field *field, const char *description);
- ~MirandaFont();
-
- void registerFont(FontState *font);
- void reloadFont();
-
-private:
- FontIDT fid;
- HFONT hFont;
- Field *field;
-
- void releaseFont();
-
- static int staticReloadFont(void *obj, WPARAM wParam, LPARAM lParam);
-};
-
-
-
-#endif // __MIRANDA_FONT_H__
diff --git a/plugins/Skins/MirandaIconField.cpp b/plugins/Skins/MirandaIconField.cpp deleted file mode 100644 index 7861e11091..0000000000 --- a/plugins/Skins/MirandaIconField.cpp +++ /dev/null @@ -1,19 +0,0 @@ -#include "MirandaIconField.h"
-
-MirandaIconField::MirandaIconField(MirandaSkinnedDialog *dlg, const char *name, const char *description)
- : IconField(dlg, name)
-{
-}
-
-MirandaIconField::~MirandaIconField()
-{
-}
-
-MirandaSkinnedDialog * MirandaIconField::getDialog() const
-{
- return (MirandaSkinnedDialog *) IconField::getDialog();
-}
-
-void MirandaIconField::configure()
-{
-}
\ No newline at end of file diff --git a/plugins/Skins/MirandaIconField.h b/plugins/Skins/MirandaIconField.h deleted file mode 100644 index 0f6f15af9e..0000000000 --- a/plugins/Skins/MirandaIconField.h +++ /dev/null @@ -1,21 +0,0 @@ -#ifndef __MIRANDA_ICON_FIELD_H__
-# define __MIRANDA_ICON_FIELD_H__
-
-#include "commons.h"
-#include "MirandaField.h"
-
-
-class MirandaIconField : public IconField, public MirandaField
-{
-public:
- MirandaIconField(MirandaSkinnedDialog *dlg, const char *name, const char *description);
- virtual ~MirandaIconField();
-
- virtual MirandaSkinnedDialog * getDialog() const;
-
- virtual void configure();
-};
-
-
-
-#endif // __MIRANDA_ICON_FIELD_H__
diff --git a/plugins/Skins/MirandaImageField.cpp b/plugins/Skins/MirandaImageField.cpp deleted file mode 100644 index 2c9efe11f2..0000000000 --- a/plugins/Skins/MirandaImageField.cpp +++ /dev/null @@ -1,19 +0,0 @@ -#include "MirandaImageField.h"
-
-MirandaImageField::MirandaImageField(MirandaSkinnedDialog *dlg, const char *name, const char *description)
- : ImageField(dlg, name)
-{
-}
-
-MirandaImageField::~MirandaImageField()
-{
-}
-
-MirandaSkinnedDialog * MirandaImageField::getDialog() const
-{
- return (MirandaSkinnedDialog *) ImageField::getDialog();
-}
-
-void MirandaImageField::configure()
-{
-}
\ No newline at end of file diff --git a/plugins/Skins/MirandaImageField.h b/plugins/Skins/MirandaImageField.h deleted file mode 100644 index 70cd1ce873..0000000000 --- a/plugins/Skins/MirandaImageField.h +++ /dev/null @@ -1,21 +0,0 @@ -#ifndef __MIRANDA_IMAGE_FIELD_H__
-# define __MIRANDA_IMAGE_FIELD_H__
-
-#include "commons.h"
-#include "MirandaField.h"
-
-
-class MirandaImageField : public ImageField, public MirandaField
-{
-public:
- MirandaImageField(MirandaSkinnedDialog *dlg, const char *name, const char *description);
- virtual ~MirandaImageField();
-
- virtual MirandaSkinnedDialog * getDialog() const;
-
- virtual void configure();
-};
-
-
-#endif // __MIRANDA_IMAGE_FIELD_H__
-
diff --git a/plugins/Skins/MirandaSkinnedDialog.cpp b/plugins/Skins/MirandaSkinnedDialog.cpp deleted file mode 100644 index 97bf236a5a..0000000000 --- a/plugins/Skins/MirandaSkinnedDialog.cpp +++ /dev/null @@ -1,252 +0,0 @@ -#include "commons.h"
-#include "MirandaSkinnedDialog.h"
-
-#define SETTING_NAME_SIZE 256
-
-
-MirandaSkinnedDialog::MirandaSkinnedDialog(const char *name, const char *aDescription, const char *aModule)
- : SkinnedDialog(name), description(aDescription), module(aModule),
- skinChangedCallback(NULL), skinChangedCallbackParam(NULL)
-{
- getSettting("Skin", _T(DEFAULT_SKIN_NAME), skinName, true);
-}
-
-MirandaSkinnedDialog::~MirandaSkinnedDialog()
-{
-}
-
-const char * MirandaSkinnedDialog::getDescription() const
-{
- return description.c_str();
-}
-
-const char * MirandaSkinnedDialog::getModule() const
-{
- return module.c_str();
-}
-
-const TCHAR * MirandaSkinnedDialog::getSkinName() const
-{
- return skinName.c_str();
-}
-
-void MirandaSkinnedDialog::setSkinName(const TCHAR *name)
-{
- if (skinName == name)
- return;
-
- skinName = name;
- setSettting("Skin", skinName.c_str(), true);
- updateFilename();
-}
-
-bool MirandaSkinnedDialog::finishedConfiguring()
-{
- updateFilename();
-
- if (getDefaultState() == NULL || getOpts() == NULL)
- return false;
-
- return true;
-}
-
-void MirandaSkinnedDialog::updateFilename()
-{
- std::tstring filename;
- getSkinnedDialogFilename(filename, getSkinName(), getName());
- setFilename(filename.c_str());
-}
-
-void MirandaSkinnedDialog::loadFromDB(SkinOption *opt)
-{
- switch(opt->getType())
- {
- case CHECKBOX:
- {
- opt->setValueCheckbox(getSettting(opt->getName(), opt->getValueCheckbox()));
- break;
- }
- case NUMBER:
- {
- opt->setValueNumber(getSettting(opt->getName(), opt->getValueNumber()));
- break;
- }
- case TEXT:
- {
- std::tstring tmp;
- getSettting(opt->getName(), opt->getValueText(), tmp);
- opt->setValueText(tmp.c_str());
- break;
- }
- }
-}
-
-void MirandaSkinnedDialog::storeToDB(const SkinOptions *opts)
-{
- for (unsigned int i = 0; i < opts->getNumOptions(); i++)
- storeToDB(opts->getOption(i));
-
- fireOnSkinChanged();
-}
-
-void MirandaSkinnedDialog::storeToDB(const SkinOption *opt)
-{
- switch(opt->getType())
- {
- case CHECKBOX:
- {
- setSettting(opt->getName(), opt->getValueCheckbox());
- break;
- }
- case NUMBER:
- {
- setSettting(opt->getName(), opt->getValueNumber());
- break;
- }
- case TEXT:
- {
- setSettting(opt->getName(), opt->getValueText());
- break;
- }
- }
-}
-
-bool MirandaSkinnedDialog::getSettting(const char *name, bool defVal, bool global)
-{
- char setting[SETTING_NAME_SIZE];
- getSettingName(setting, name, global);
-
- return DBGetContactSettingByte(NULL, getModule(), setting, defVal ? 1 : 0) != 0;
-}
-
-void MirandaSkinnedDialog::setSettting(const char *name, bool val, bool global)
-{
- char setting[SETTING_NAME_SIZE];
- getSettingName(setting, name, global);
-
- DBWriteContactSettingByte(NULL, getModule(), setting, val ? 1 : 0);
-}
-
-int MirandaSkinnedDialog::getSettting(const char *name, int defVal, bool global)
-{
- char setting[SETTING_NAME_SIZE];
- getSettingName(setting, name, global);
-
- return DBGetContactSettingDword(NULL, getModule(), setting, defVal);
-}
-
-void MirandaSkinnedDialog::setSettting(const char *name, int val, bool global)
-{
- char setting[SETTING_NAME_SIZE];
- getSettingName(setting, name, global);
-
- DBWriteContactSettingDword(NULL, getModule(), setting, val);
-}
-
-void MirandaSkinnedDialog::getSettting(const char *name, const WCHAR *defVal, std::wstring &ret, bool global)
-{
- char setting[SETTING_NAME_SIZE];
- getSettingName(setting, name, global);
-
- DBVARIANT dbv = {0};
- if (DBGetContactSettingWString(NULL, getModule(), setting, &dbv))
- {
- ret = defVal;
- return;
- }
-
- ret = dbv.pwszVal;
- DBFreeVariant(&dbv);
-}
-
-void MirandaSkinnedDialog::setSettting(const char *name, const WCHAR *val, bool global)
-{
- char setting[SETTING_NAME_SIZE];
- getSettingName(setting, name, global);
-
- DBWriteContactSettingWString(NULL, getModule(), setting, val);
-}
-
-void MirandaSkinnedDialog::getSettting(const char *name, const char *defVal, std::string &ret, bool global)
-{
- char setting[SETTING_NAME_SIZE];
- getSettingName(setting, name, global);
-
- DBVARIANT dbv = {0};
- if (DBGetContactSettingString(NULL, getModule(), setting, &dbv))
- {
- ret = defVal;
- return;
- }
-
- ret = dbv.pszVal;
- DBFreeVariant(&dbv);
-}
-
-void MirandaSkinnedDialog::setSettting(const char *name, const char *val, bool global)
-{
- char setting[SETTING_NAME_SIZE];
- getSettingName(setting, name, global);
-
- DBWriteContactSettingString(NULL, getModule(), setting, val);
-}
-
-void MirandaSkinnedDialog::getSettingName(char *setting, const char * name, bool global)
-{
- if (global)
- mir_snprintf(setting, SETTING_NAME_SIZE, "%s%s", getName(), name);
- else
- mir_snprintf(setting, SETTING_NAME_SIZE, "%s%s%s", TcharToChar(getSkinName()), getName(), name);
-}
-
-void MirandaSkinnedDialog::setOnSkinChangedCallback(MirandaSkinnedCallback cb, void *param)
-{
- skinChangedCallback = cb;
- skinChangedCallbackParam = param;
-}
-
-void MirandaSkinnedDialog::fireOnSkinChanged()
-{
- if (skinChangedCallback != NULL)
- skinChangedCallback(skinChangedCallbackParam, this);
-}
-
-int MirandaSkinnedDialog::compile()
-{
- int ret = SkinnedDialog::compile();
-
- if (ret == 2)
- {
- SkinOptions * opts = getOpts();
- _ASSERT(opts != NULL);
-
- for(unsigned int i = 0; i < opts->getNumOptions(); ++i)
- {
- SkinOption *opt = opts->getOption(i);
- loadFromDB(opt);
- opt->setOnChangeCallback(&staticOnOptionChange, this);
- }
-
- for(unsigned int i = 0; i < getFieldCount(); ++i)
- {
- MirandaField *field = dynamic_cast<MirandaField *>(getField(i));
- field->configure();
- }
-
- fireOnSkinChanged();
- }
-
- return ret;
-}
-
-void MirandaSkinnedDialog::onOptionChange(const SkinOption *opt)
-{
- storeToDB(opt);
-}
-
-void MirandaSkinnedDialog::staticOnOptionChange(void *param, const SkinOption *opt)
-{
- _ASSERT(param != NULL);
-
- ((MirandaSkinnedDialog *) param)->onOptionChange(opt);
-}
diff --git a/plugins/Skins/MirandaSkinnedDialog.h b/plugins/Skins/MirandaSkinnedDialog.h deleted file mode 100644 index d556b9a495..0000000000 --- a/plugins/Skins/MirandaSkinnedDialog.h +++ /dev/null @@ -1,64 +0,0 @@ -#ifndef __MIRANDA_SKINNED_DIALOG_H__
-# define __MIRANDA_SKINNED_DIALOG_H__
-
-#include "SkinLib\SkinnedDialog.h"
-
-class SkinOption;
-class MirandaSkinnedDialog;
-
-typedef void (*MirandaSkinnedCallback)(void *param, const MirandaSkinnedDialog *dlg);
-
-
-class MirandaSkinnedDialog : public SkinnedDialog
-{
-public:
- MirandaSkinnedDialog(const char *name, const char *description, const char *module);
- virtual ~MirandaSkinnedDialog();
-
- virtual const char * getDescription() const;
- virtual const char * getModule() const;
-
- virtual const TCHAR * getSkinName() const;
- virtual void setSkinName(const TCHAR *name);
-
- virtual bool finishedConfiguring();
-
- virtual void storeToDB(const SkinOptions *opts);
-
- virtual void setOnSkinChangedCallback(MirandaSkinnedCallback cb, void *param);
-
-protected:
- virtual int compile();
-
-private:
- std::string description;
- std::string module;
- std::tstring skinName;
- MirandaSkinnedCallback skinChangedCallback;
- void *skinChangedCallbackParam;
-
- void updateFilename();
-
- void loadFromDB(SkinOption *opt);
- void storeToDB(const SkinOption *opt);
-
- bool getSettting(const char *name, bool defVal, bool global = false);
- void setSettting(const char *name, bool val, bool global = false);
- int getSettting(const char *name, int defVal, bool global = false);
- void setSettting(const char *name, int val, bool global = false);
- void getSettting(const char *name, const WCHAR *defVal, std::wstring &ret, bool global = false);
- void setSettting(const char *name, const WCHAR *val, bool global = false);
- void getSettting(const char *name, const char *defVal, std::string &ret, bool global = false);
- void setSettting(const char *name, const char *val, bool global = false);
-
- inline void getSettingName(char *setting, const char * name, bool global);
-
- void fireOnSkinChanged();
-
- void onOptionChange(const SkinOption *opt);
-
- static void staticOnOptionChange(void *param, const SkinOption *opt);
-};
-
-
-#endif // __MIRANDA_SKINNED_DIALOG_H__
diff --git a/plugins/Skins/MirandaTextField.cpp b/plugins/Skins/MirandaTextField.cpp deleted file mode 100644 index 4a3591a322..0000000000 --- a/plugins/Skins/MirandaTextField.cpp +++ /dev/null @@ -1,27 +0,0 @@ -#include "MirandaTextField.h"
-#include "MirandaFont.h"
-
-
-MirandaTextField::MirandaTextField(MirandaSkinnedDialog *dlg, const char *name, const char *aDescription)
- : TextField(dlg, name)
-{
- font = new MirandaFont(this, aDescription);
-}
-
-MirandaTextField::~MirandaTextField()
-{
- delete font;
-}
-
-MirandaSkinnedDialog * MirandaTextField::getDialog() const
-{
- return (MirandaSkinnedDialog *) TextField::getDialog();
-}
-
-void MirandaTextField::configure()
-{
- TextFieldState *field = (TextFieldState *) getDialog()->getDefaultState()->getField(getName());
- _ASSERT(field != NULL);
-
- font->registerFont(field->getFont());
-}
diff --git a/plugins/Skins/MirandaTextField.h b/plugins/Skins/MirandaTextField.h deleted file mode 100644 index 36b7ea7292..0000000000 --- a/plugins/Skins/MirandaTextField.h +++ /dev/null @@ -1,27 +0,0 @@ -#ifndef __MIRANDA_TEXT_FIELD_H__
-# define __MIRANDA_TEXT_FIELD_H__
-
-#include "commons.h"
-#include "MirandaField.h"
-
-class MirandaFont;
-
-
-class MirandaTextField : public TextField, public MirandaField
-{
-public:
- MirandaTextField(MirandaSkinnedDialog *dlg, const char *name, const char *description);
- virtual ~MirandaTextField();
-
- virtual MirandaSkinnedDialog * getDialog() const;
-
- virtual void configure();
-
-private:
- MirandaFont *font;
-
-};
-
-
-
-#endif // __MIRANDA_TEXT_FIELD_H__
diff --git a/plugins/Skins/SkinLib/BorderState.cpp b/plugins/Skins/SkinLib/BorderState.cpp deleted file mode 100644 index 83dcdbcf11..0000000000 --- a/plugins/Skins/SkinLib/BorderState.cpp +++ /dev/null @@ -1,61 +0,0 @@ -#include "globals.h"
-#include <windows.h>
-#include "BorderState.h"
-
-BorderState::BorderState(int aLeft, int aRight, int aTop, int aBottom)
- : left(aLeft), right(aRight), top(aTop), bottom(aBottom)
-{
-}
-
-BorderState::~BorderState()
-{
-}
-
-int BorderState::getLeft() const
-{
- return left;
-}
-
-void BorderState::setLeft(int left)
-{
- this->left = max(0, left);
-}
-
-int BorderState::getRight() const
-{
- return right;
-}
-
-void BorderState::setRight(int right)
-{
- this->right = max(0, right);
-}
-
-int BorderState::getTop() const
-{
- return top;
-}
-
-void BorderState::setTop(int top)
-{
- this->top = max(0, top);
-}
-
-int BorderState::getBottom() const
-{
- return bottom;
-}
-
-void BorderState::setBottom(int bottom)
-{
- this->bottom = max(0, bottom);
-}
-
-void BorderState::setAll(int border)
-{
- border = max(0, border);
- left = border;
- right = border;
- top = border;
- bottom = border;
-}
diff --git a/plugins/Skins/SkinLib/BorderState.h b/plugins/Skins/SkinLib/BorderState.h deleted file mode 100644 index 2cac3c1aa5..0000000000 --- a/plugins/Skins/SkinLib/BorderState.h +++ /dev/null @@ -1,28 +0,0 @@ -#pragma once
-
-class BorderState
-{
-public:
- BorderState(int left, int right, int top, int bottom);
- ~BorderState();
-
- int getLeft() const;
- void setLeft(int left);
-
- int getRight() const;
- void setRight(int right);
-
- int getTop() const;
- void setTop(int top);
-
- int getBottom() const;
- void setBottom(int bottom);
-
- void setAll(int border);
-
-private:
- int left;
- int right;
- int top;
- int bottom;
-};
diff --git a/plugins/Skins/SkinLib/BorderState_v8_wrapper.cpp b/plugins/Skins/SkinLib/BorderState_v8_wrapper.cpp deleted file mode 100644 index 71cc057419..0000000000 --- a/plugins/Skins/SkinLib/BorderState_v8_wrapper.cpp +++ /dev/null @@ -1,160 +0,0 @@ -#include "globals.h"
-#include "BorderState_v8_wrapper.h"
-#include <v8.h>
-#include "BorderState.h"
-
-using namespace v8;
-
-
-#ifdef UNICODE
-# define V8_TCHAR uint16_t
-#else
-# define V8_TCHAR char
-#endif
-
-
-static Handle<Value> Get_BorderState_left(Local<String> property, const AccessorInfo &info)
-{
- HandleScope scope;
-
- Local<Object> self = info.Holder();
- Local<External> wrap = Local<External>::Cast(self->GetInternalField(0));
- if (wrap.IsEmpty())
- return scope.Close( Undefined() );
-
- BorderState *tmp = (BorderState *) wrap->Value();
- if (tmp == NULL)
- return scope.Close( Undefined() );
-
- return scope.Close( Int32::New(tmp->getLeft()) );
-}
-
-static void Set_BorderState_left(Local<String> property, Local<Value> value, const AccessorInfo& info)
-{
- HandleScope scope;
-
- Local<Object> self = info.Holder();
- Local<External> wrap = Local<External>::Cast(self->GetInternalField(0));
- if (wrap.IsEmpty())
- return;
-
- BorderState *tmp = (BorderState *) wrap->Value();
- if (tmp == NULL)
- return;
-
- if (!value.IsEmpty() && value->IsNumber())
- tmp->setLeft(value->Int32Value());
-}
-
-
-static Handle<Value> Get_BorderState_right(Local<String> property, const AccessorInfo &info)
-{
- HandleScope scope;
-
- Local<Object> self = info.Holder();
- Local<External> wrap = Local<External>::Cast(self->GetInternalField(0));
- if (wrap.IsEmpty())
- return scope.Close( Undefined() );
-
- BorderState *tmp = (BorderState *) wrap->Value();
- if (tmp == NULL)
- return scope.Close( Undefined() );
-
- return scope.Close( Int32::New(tmp->getRight()) );
-}
-
-static void Set_BorderState_right(Local<String> property, Local<Value> value, const AccessorInfo& info)
-{
- HandleScope scope;
-
- Local<Object> self = info.Holder();
- Local<External> wrap = Local<External>::Cast(self->GetInternalField(0));
- if (wrap.IsEmpty())
- return;
-
- BorderState *tmp = (BorderState *) wrap->Value();
- if (tmp == NULL)
- return;
-
- if (!value.IsEmpty() && value->IsNumber())
- tmp->setRight(value->Int32Value());
-}
-
-
-static Handle<Value> Get_BorderState_top(Local<String> property, const AccessorInfo &info)
-{
- HandleScope scope;
-
- Local<Object> self = info.Holder();
- Local<External> wrap = Local<External>::Cast(self->GetInternalField(0));
- if (wrap.IsEmpty())
- return scope.Close( Undefined() );
-
- BorderState *tmp = (BorderState *) wrap->Value();
- if (tmp == NULL)
- return scope.Close( Undefined() );
-
- return scope.Close( Int32::New(tmp->getTop()) );
-}
-
-static void Set_BorderState_top(Local<String> property, Local<Value> value, const AccessorInfo& info)
-{
- HandleScope scope;
-
- Local<Object> self = info.Holder();
- Local<External> wrap = Local<External>::Cast(self->GetInternalField(0));
- if (wrap.IsEmpty())
- return;
-
- BorderState *tmp = (BorderState *) wrap->Value();
- if (tmp == NULL)
- return;
-
- if (!value.IsEmpty() && value->IsNumber())
- tmp->setTop(value->Int32Value());
-}
-
-
-static Handle<Value> Get_BorderState_bottom(Local<String> property, const AccessorInfo &info)
-{
- HandleScope scope;
-
- Local<Object> self = info.Holder();
- Local<External> wrap = Local<External>::Cast(self->GetInternalField(0));
- if (wrap.IsEmpty())
- return scope.Close( Undefined() );
-
- BorderState *tmp = (BorderState *) wrap->Value();
- if (tmp == NULL)
- return scope.Close( Undefined() );
-
- return scope.Close( Int32::New(tmp->getBottom()) );
-}
-
-static void Set_BorderState_bottom(Local<String> property, Local<Value> value, const AccessorInfo& info)
-{
- HandleScope scope;
-
- Local<Object> self = info.Holder();
- Local<External> wrap = Local<External>::Cast(self->GetInternalField(0));
- if (wrap.IsEmpty())
- return;
-
- BorderState *tmp = (BorderState *) wrap->Value();
- if (tmp == NULL)
- return;
-
- if (!value.IsEmpty() && value->IsNumber())
- tmp->setBottom(value->Int32Value());
-}
-
-
-void AddBorderStateAcessors(Handle<ObjectTemplate> &templ)
-{
- HandleScope scope;
-
- templ->SetAccessor(String::New("left"), Get_BorderState_left, Set_BorderState_left);
- templ->SetAccessor(String::New("right"), Get_BorderState_right, Set_BorderState_right);
- templ->SetAccessor(String::New("top"), Get_BorderState_top, Set_BorderState_top);
- templ->SetAccessor(String::New("bottom"), Get_BorderState_bottom, Set_BorderState_bottom);
-}
diff --git a/plugins/Skins/SkinLib/BorderState_v8_wrapper.h b/plugins/Skins/SkinLib/BorderState_v8_wrapper.h deleted file mode 100644 index 70af9e41dc..0000000000 --- a/plugins/Skins/SkinLib/BorderState_v8_wrapper.h +++ /dev/null @@ -1,10 +0,0 @@ -#ifndef __BORDER_STATE_V8_WRAPPER_H__
-# define __BORDER_STATE_V8_WRAPPER_H__
-
-#include <v8.h>
-
-void AddBorderStateAcessors(v8::Handle<v8::ObjectTemplate> &templ);
-
-
-
-#endif // __BORDER_STATE_V8_WRAPPER_H__
diff --git a/plugins/Skins/SkinLib/ButtonField.cpp b/plugins/Skins/SkinLib/ButtonField.cpp deleted file mode 100644 index e6c82ba5e3..0000000000 --- a/plugins/Skins/SkinLib/ButtonField.cpp +++ /dev/null @@ -1,22 +0,0 @@ -#include "globals.h"
-#include "ButtonField.h"
-#include "ButtonFieldState.h"
-
-
-ButtonField::ButtonField(Dialog *dlg, const char *name, HWND hwnd) : ControlField(dlg, name, hwnd)
-{
-}
-
-ButtonField::~ButtonField()
-{
-}
-
-FieldType ButtonField::getType() const
-{
- return CONTROL_BUTTON;
-}
-
-FieldState * ButtonField::createState(DialogState *dialogState)
-{
- return new ButtonFieldState(dialogState, this);
-}
\ No newline at end of file diff --git a/plugins/Skins/SkinLib/ButtonField.h b/plugins/Skins/SkinLib/ButtonField.h deleted file mode 100644 index 0d7a1555ca..0000000000 --- a/plugins/Skins/SkinLib/ButtonField.h +++ /dev/null @@ -1,19 +0,0 @@ -#ifndef __BUTTON_FIELD_H__
-# define __BUTTON_FIELD_H__
-
-#include "ControlField.h"
-
-class ButtonField : public ControlField
-{
-public:
- ButtonField(Dialog *dlg, const char *name, HWND hwnd);
- virtual ~ButtonField();
-
- virtual FieldType getType() const;
-
- virtual FieldState * createState(DialogState *dialogState);
-};
-
-
-
-#endif // __BUTTON_FIELD_H__
diff --git a/plugins/Skins/SkinLib/ButtonFieldState.cpp b/plugins/Skins/SkinLib/ButtonFieldState.cpp deleted file mode 100644 index 986484b20b..0000000000 --- a/plugins/Skins/SkinLib/ButtonFieldState.cpp +++ /dev/null @@ -1,30 +0,0 @@ -#include "globals.h"
-#include "ButtonFieldState.h"
-
-ButtonFieldState::ButtonFieldState(DialogState *dialog, ControlField *field)
- : ControlFieldState(dialog, field)
-{
-}
-
-ButtonFieldState::~ButtonFieldState()
-{
-}
-
-Size ButtonFieldState::getPreferedSize() const
-{
- Size ret = getTextPreferedSize(DT_SINGLELINE);
-
- int border = getField()->getBorderSize();
- ret.x += 2 * border;
- ret.y += 2 * border;
-
- ret.x += 12;
- ret.y += 10;
-
- return ret;
-}
-
-bool ButtonFieldState::isEmpty() const
-{
- return false;
-}
\ No newline at end of file diff --git a/plugins/Skins/SkinLib/ButtonFieldState.h b/plugins/Skins/SkinLib/ButtonFieldState.h deleted file mode 100644 index 12b701035a..0000000000 --- a/plugins/Skins/SkinLib/ButtonFieldState.h +++ /dev/null @@ -1,23 +0,0 @@ -#ifndef __BUTTON_FIELD_STATE_H__
-# define __BUTTON_FIELD_STATE_H__
-
-#include "ControlFieldState.h"
-
-
-class ButtonFieldState : public ControlFieldState
-{
-public:
- virtual ~ButtonFieldState();
-
- virtual Size getPreferedSize() const;
-
- virtual bool isEmpty() const;
-
-private:
- ButtonFieldState(DialogState *dialog, ControlField *field);
-
- friend class ButtonField;
-};
-
-
-#endif // __BUTTON_FIELD_STATE_H__
diff --git a/plugins/Skins/SkinLib/ButtonFieldState_v8_wrapper.cpp b/plugins/Skins/SkinLib/ButtonFieldState_v8_wrapper.cpp deleted file mode 100644 index c5916b284c..0000000000 --- a/plugins/Skins/SkinLib/ButtonFieldState_v8_wrapper.cpp +++ /dev/null @@ -1,20 +0,0 @@ -#include "globals.h"
-#include "ButtonFieldState_v8_wrapper.h"
-#include <v8.h>
-#include "ButtonFieldState.h"
-
-using namespace v8;
-
-
-#ifdef UNICODE
-# define V8_TCHAR uint16_t
-#else
-# define V8_TCHAR char
-#endif
-
-
-void AddButtonFieldStateAcessors(Handle<ObjectTemplate> &templ)
-{
- HandleScope scope;
-
-}
diff --git a/plugins/Skins/SkinLib/ButtonFieldState_v8_wrapper.h b/plugins/Skins/SkinLib/ButtonFieldState_v8_wrapper.h deleted file mode 100644 index c69fdc5c87..0000000000 --- a/plugins/Skins/SkinLib/ButtonFieldState_v8_wrapper.h +++ /dev/null @@ -1,10 +0,0 @@ -#ifndef __BUTTON_FIELD_STATE_V8_WRAPPER_H__
-# define __BUTTON_FIELD_STATE_V8_WRAPPER_H__
-
-#include <v8.h>
-
-void AddButtonFieldStateAcessors(v8::Handle<v8::ObjectTemplate> &templ);
-
-
-
-#endif // __BUTTON_FIELD_STATE_V8_WRAPPER_H__
diff --git a/plugins/Skins/SkinLib/ControlField.cpp b/plugins/Skins/SkinLib/ControlField.cpp deleted file mode 100644 index dd9d7026d9..0000000000 --- a/plugins/Skins/SkinLib/ControlField.cpp +++ /dev/null @@ -1,123 +0,0 @@ -#include "globals.h"
-#include "ControlField.h"
-#include "ControlFieldState.h"
-
-
-ControlField::ControlField(Dialog *dlg, const char *name, HWND aHwnd)
- : Field(dlg, name), hwnd(aHwnd), textSet(false), hFont(NULL)
-{
-}
-
-
-ControlField::~ControlField()
-{
-}
-
-
-HWND ControlField::getHWND()
-{
- return hwnd;
-}
-
-
-
-void ControlField::setText(const TCHAR *text)
-{
- if (text == NULL)
- {
- if (!textSet)
- return;
-
- textSet = false;
- this->text.clear();
- fireOnChange();
- }
- else
- {
- textSet = true;
- if (this->text == text)
- return;
-
- this->text = text;
- // SetWindowText(hwnd, text);
- fireOnChange();
- }
-}
-
-
-const TCHAR * ControlField::getText()
-{
- if (textSet)
- return text.c_str();
-
- // Control text is the default value
- int length = GetWindowTextLength(hwnd);
- if (length <= 0)
- {
- text = _T("");
- }
- else
- {
- TCHAR *tmp = new TCHAR[length+1];
-
- if (GetWindowText(hwnd, tmp, length+1) == 0)
- tmp[0] = 0;
-
- text = tmp;
-
- delete[] tmp;
- }
-
- return text.c_str();
-}
-
-
-void ControlField::setFont(HFONT hFont)
-{
- if (this->hFont == hFont)
- return;
-
- this->hFont = hFont;
-// SendMessage(hwnd, WM_SETFONT, (WPARAM) hFont, FALSE);
- fireOnChange();
-}
-
-
-HFONT ControlField::getFont() const
-{
- if (hFont != NULL)
- return hFont;
-
- // Control font is the default value
- return (HFONT) SendMessage(hwnd, WM_GETFONT, 0, 0);
-}
-
-
-COLORREF ControlField::getFontColor() const
-{
- return GetSysColor(COLOR_WINDOWTEXT);
-}
-
-
-int ControlField::getBorderSize() const
-{
- int exstyle = GetWindowLong(hwnd, GWL_EXSTYLE);
- if (exstyle & WS_EX_CLIENTEDGE)
- return GetSystemMetrics(SM_CXEDGE);
- if (exstyle & WS_EX_STATICEDGE)
- return GetSystemMetrics(SM_CXBORDER);
-
- int style = GetWindowLong(hwnd, GWL_STYLE);
- if (style & WS_BORDER)
- return GetSystemMetrics(SM_CXBORDER);
-
- return 0;
-}
-
-bool ControlField::isScrollVisible(bool horizontal) const
-{
- SCROLLBARINFO sbi = {0};
- sbi.cbSize = sizeof(SCROLLBARINFO);
- GetScrollBarInfo(hwnd, horizontal ? OBJID_HSCROLL : OBJID_VSCROLL, &sbi);
- return (sbi.rgstate[0] & STATE_SYSTEM_INVISIBLE) == 0;
-}
diff --git a/plugins/Skins/SkinLib/ControlField.h b/plugins/Skins/SkinLib/ControlField.h deleted file mode 100644 index 014ee04b9b..0000000000 --- a/plugins/Skins/SkinLib/ControlField.h +++ /dev/null @@ -1,37 +0,0 @@ -#ifndef __LABEL_CONTROL_FIELD_H__
-# define __LABEL_CONTROL_FIELD_H__
-
-#include "Field.h"
-
-class ControlField : public Field
-{
-public:
- ControlField(Dialog *dlg, const char *name, HWND hwnd);
- virtual ~ControlField();
-
- virtual HWND getHWND();
-
- virtual void setText(const TCHAR *text);
- virtual const TCHAR * getText();
-
- virtual void setFont(HFONT hFont);
- virtual HFONT getFont() const;
-
- virtual COLORREF getFontColor() const;
-
- virtual int getBorderSize() const;
-
- virtual bool isScrollVisible(bool horizontal) const;
-
-private:
- HWND hwnd;
-
- bool textSet;
- std::tstring text;
-
- HFONT hFont;
-};
-
-
-
-#endif // __LABEL_CONTROL_FIELD_H__
diff --git a/plugins/Skins/SkinLib/ControlFieldState.cpp b/plugins/Skins/SkinLib/ControlFieldState.cpp deleted file mode 100644 index 37c412058a..0000000000 --- a/plugins/Skins/SkinLib/ControlFieldState.cpp +++ /dev/null @@ -1,86 +0,0 @@ -#include "globals.h"
-#include "ControlFieldState.h"
-
-
-ControlFieldState::ControlFieldState(DialogState *dialog, ControlField *field)
- : FieldState(dialog, field), textSet(false), font(field->getFont(), field->getFontColor())
-{
-}
-
-
-ControlFieldState::~ControlFieldState()
-{
-}
-
-
-ControlField * ControlFieldState::getField() const
-{
- return (ControlField *) FieldState::getField();
-}
-
-
-Size ControlFieldState::getTextPreferedSize(unsigned int format) const
-{
- HDC hdc = CreateCompatibleDC(NULL);
-
- HFONT newFont = getFont()->getHFONT();
- HFONT oldFont = (HFONT) SelectObject(hdc, newFont);
-
- int width = 0;
- int height = 0;
-
- const TCHAR *text = getText();
- int len = lstrlen(text);
- if (len <= 0)
- {
- TEXTMETRIC tm = {0};
- GetTextMetrics(hdc, &tm);
- height = tm.tmHeight;
- }
- else
- {
- RECT rc = {0};
- if ((format & DT_SINGLELINE) == 0 && size.x >= 0)
- {
- format |= DT_WORDBREAK;
- rc.right = size.x;
- }
- DrawText(hdc, text, len, &rc, DT_CALCRECT | format);
- width = rc.right - rc.left;
- height = rc.bottom - rc.top;
- }
-
- SelectObject(hdc, oldFont);
-
- DeleteDC(hdc);
-
- return Size(width, height);
-}
-
-
-const TCHAR * ControlFieldState::getText() const
-{
- if (textSet)
- return text.c_str();
-
- return getField()->getText();
-}
-
-
-void ControlFieldState::setText(const TCHAR *text)
-{
- this->text = text;
- textSet = true;
-}
-
-
-FontState * ControlFieldState::getFont()
-{
- return &font;
-}
-
-
-const FontState * ControlFieldState::getFont() const
-{
- return &font;
-}
\ No newline at end of file diff --git a/plugins/Skins/SkinLib/ControlFieldState.h b/plugins/Skins/SkinLib/ControlFieldState.h deleted file mode 100644 index 85186c304a..0000000000 --- a/plugins/Skins/SkinLib/ControlFieldState.h +++ /dev/null @@ -1,39 +0,0 @@ -#ifndef __LABEL_CONTROL_FIELD_STATE_H__
-# define __LABEL_CONTROL_FIELD_STATE_H__
-
-#include "ControlField.h"
-#include "FieldState.h"
-#include "FontState.h"
-
-
-class ControlFieldState : public FieldState
-{
-public:
- virtual ~ControlFieldState();
-
- virtual ControlField * getField() const;
-
- virtual Size getPreferedSize() const = 0;
-
- virtual const TCHAR * getText() const;
- virtual void setText(const TCHAR *text);
-
- virtual FontState * getFont();
- virtual const FontState * getFont() const;
-
-protected:
- ControlFieldState(DialogState *dialog, ControlField *field);
-
- virtual Size getTextPreferedSize(unsigned int format) const;
-
-private:
- FontState font;
-
- bool textSet;
- std::tstring text;
-
- friend class ControlField;
-};
-
-
-#endif // __LABEL_CONTROL_FIELD_STATE_H__
\ No newline at end of file diff --git a/plugins/Skins/SkinLib/ControlFieldState_v8_wrapper.cpp b/plugins/Skins/SkinLib/ControlFieldState_v8_wrapper.cpp deleted file mode 100644 index 70d3e06a45..0000000000 --- a/plugins/Skins/SkinLib/ControlFieldState_v8_wrapper.cpp +++ /dev/null @@ -1,59 +0,0 @@ -#include "globals.h"
-#include "ControlFieldState_v8_wrapper.h"
-#include <v8.h>
-#include "ControlFieldState.h"
-#include <utf8_helpers.h>
-
-using namespace v8;
-
-
-#ifdef UNICODE
-# define V8_TCHAR uint16_t
-#else
-# define V8_TCHAR char
-#endif
-
-
-static Handle<Value> Get_ControlFieldState_text(Local<String> property, const AccessorInfo &info)
-{
- HandleScope scope;
-
- Local<Object> self = info.Holder();
- Local<External> wrap = Local<External>::Cast(self->GetInternalField(0));
- if (wrap.IsEmpty())
- return scope.Close( Undefined() );
-
- ControlFieldState *tmp = (ControlFieldState *) wrap->Value();
- if (tmp == NULL)
- return scope.Close( Undefined() );
-
- return scope.Close( String::New((const V8_TCHAR *) tmp->getText()) );
-}
-
-static void Set_ControlFieldState_text(Local<String> property, Local<Value> value, const AccessorInfo& info)
-{
- HandleScope scope;
-
- Local<Object> self = info.Holder();
- Local<External> wrap = Local<External>::Cast(self->GetInternalField(0));
- if (wrap.IsEmpty())
- return;
-
- ControlFieldState *tmp = (ControlFieldState *) wrap->Value();
- if (tmp == NULL)
- return;
-
- if (!value.IsEmpty() && value->IsString())
- {
- String::Utf8Value utf8_value(value);
- tmp->setText(Utf8ToTchar(*utf8_value));
- }
-}
-
-
-void AddControlFieldStateAcessors(Handle<ObjectTemplate> &templ)
-{
- HandleScope scope;
-
- templ->SetAccessor(String::New("text"), Get_ControlFieldState_text, Set_ControlFieldState_text);
-}
diff --git a/plugins/Skins/SkinLib/ControlFieldState_v8_wrapper.h b/plugins/Skins/SkinLib/ControlFieldState_v8_wrapper.h deleted file mode 100644 index c86964ce30..0000000000 --- a/plugins/Skins/SkinLib/ControlFieldState_v8_wrapper.h +++ /dev/null @@ -1,10 +0,0 @@ -#ifndef __CONTROL_FIELD_STATE_V8_WRAPPER_H__
-# define __CONTROL_FIELD_STATE_V8_WRAPPER_H__
-
-#include <v8.h>
-
-void AddControlFieldStateAcessors(v8::Handle<v8::ObjectTemplate> &templ);
-
-
-
-#endif // __CONTROL_FIELD_STATE_V8_WRAPPER_H__
diff --git a/plugins/Skins/SkinLib/Dialog.cpp b/plugins/Skins/SkinLib/Dialog.cpp deleted file mode 100644 index edc8437817..0000000000 --- a/plugins/Skins/SkinLib/Dialog.cpp +++ /dev/null @@ -1,100 +0,0 @@ -#include "globals.h"
-#include "Dialog.h"
-#include "DialogState.h"
-
-
-Dialog::Dialog(const char *aName) : name(aName)
-{
-}
-
-
-Dialog::~Dialog()
-{
- for(unsigned int i = 0; i < fields.size(); i++)
- delete fields[i];
-
- fields.clear();
-}
-
-
-const char * Dialog::getName() const
-{
- return name.c_str();
-}
-
-
-bool Dialog::addField(Field *field)
-{
- if (getField(field->getName()) != NULL)
- return false;
-
- fields.push_back(field);
- return true;
-}
-
-
-Field * Dialog::getField(const char *name) const
-{
- if (name == NULL || name[0] == 0)
- return NULL;
-
- for(unsigned int i = 0; i < fields.size(); i++)
- {
- Field *field = fields[i];
- if (strcmp(name, field->getName()) == 0)
- return field;
- }
-
- return NULL;
-}
-
-Field * Dialog::getField(unsigned int pos) const
-{
- if (pos >= fields.size())
- return NULL;
- return fields[pos];
-}
-
-int Dialog::getIndexOf(Field *field) const
-{
- for(unsigned int i = 0; i < fields.size(); i++)
- {
- Field *f = fields[i];
- if (field == f)
- return i;
- }
-
- return -1;
-}
-
-unsigned int Dialog::getFieldCount() const
-{
- return fields.size();
-}
-
-DialogInfo * Dialog::getInfo()
-{
- return &info;
-}
-
-const Size & Dialog::getSize() const
-{
- return size;
-}
-
-
-void Dialog::setSize(const Size &size)
-{
- this->size = size;
-}
-
-
-DialogState * Dialog::createState()
-{
- DialogState *ret = new DialogState(this);
-
- for(unsigned int i = 0; i < fields.size(); i++)
- ret->fields.push_back(fields[i]->createState(ret));
-
- return ret;
-}
diff --git a/plugins/Skins/SkinLib/Dialog.h b/plugins/Skins/SkinLib/Dialog.h deleted file mode 100644 index 0e85b8e340..0000000000 --- a/plugins/Skins/SkinLib/Dialog.h +++ /dev/null @@ -1,41 +0,0 @@ -#ifndef __DIALOG_H__
-# define __DIALOG_H__
-
-#include <vector>
-#include "Field.h"
-#include "DialogInfo.h"
-
-class DialogState;
-
-
-/// It is responsible for freeing the Fields
-class Dialog
-{
-public:
- Dialog(const char *name);
- virtual ~Dialog();
-
- virtual const char * getName() const;
-
- virtual bool addField(Field *field);
- virtual Field * getField(const char *name) const;
- virtual Field * getField(unsigned int pos) const;
- virtual int getIndexOf(Field *field) const;
- virtual unsigned int getFieldCount() const;
-
- virtual DialogInfo * getInfo();
-
- virtual const Size & getSize() const;
- virtual void setSize(const Size &size);
-
- virtual DialogState * createState();
-
-private:
- const std::string name;
- std::vector<Field *> fields;
- DialogInfo info;
- Size size;
-};
-
-
-#endif // __DIALOG_H__
diff --git a/plugins/Skins/SkinLib/DialogInfo.cpp b/plugins/Skins/SkinLib/DialogInfo.cpp deleted file mode 100644 index fd29a37392..0000000000 --- a/plugins/Skins/SkinLib/DialogInfo.cpp +++ /dev/null @@ -1,190 +0,0 @@ -#include "globals.h"
-#include "DialogInfo.h"
-#include "tstring.h"
-
-class DialogInfoValue
-{
-public:
- DialogInfoValue(const char *aName) : name(aName), type(UNKNOWN) {}
-
- const char * getName() { return name.c_str(); }
-
- void set(const TCHAR *value) { valueString = value; type = TYPE_STRING; }
- void set(int value) { valueInt = value; type = TYPE_INT; }
- void set(double value) { valueDouble = value; type = TYPE_DOUBLE; }
- void set(bool value) { valueBool = value; type = TYPE_BOOL; }
-
- DialogInfoType getType() { return type; }
-
- const TCHAR * getAsString() { return valueString.c_str(); }
- int getAsInt() { return valueInt; }
- double getAsDouble() { return valueDouble; }
- bool getAsBool() { return valueBool; }
-
-private:
- std::string name;
-
- DialogInfoType type;
-
- std::tstring valueString;
- int valueInt;
- double valueDouble;
- bool valueBool;
-};
-
-DialogInfo::DialogInfo()
-{
-}
-
-DialogInfo::~DialogInfo()
-{
- for(size_t i = 0; i < values.size(); ++i)
- delete values[i];
-}
-
-
-void DialogInfo::set(const char *name, const TCHAR *value)
-{
- bool isVar;
- DialogInfoValue * val = findValue(name, true, &isVar);
-
- if (isVar)
- return;
-
- val->set(value);
-}
-
-void DialogInfo::set(const char *name, int value)
-{
- bool isVar;
- DialogInfoValue * val = findValue(name, true, &isVar);
-
- if (isVar)
- return;
-
- val->set(value);
-}
-
-void DialogInfo::set(const char *name, double value)
-{
- bool isVar;
- DialogInfoValue * val = findValue(name, true, &isVar);
-
- if (isVar)
- return;
-
- val->set(value);
-}
-
-void DialogInfo::set(const char *name, bool value)
-{
- bool isVar;
- DialogInfoValue * val = findValue(name, true, &isVar);
-
- if (isVar)
- return;
-
- val->set(value);
-}
-
-void DialogInfo::remove(const char *name)
-{
- size_t len = strlen(name);
-
- for(std::vector<DialogInfoValue *>::iterator it = values.begin(); it != values.end(); )
- {
- DialogInfoValue *val = *it;
-
- if (stricmp(name, val->getName()) == 0)
- it = values.erase(it);
-
- else if (strnicmp(name, val->getName(), len) == 0 && val->getName()[len] == '.')
- it = values.erase(it);
-
- else
- it++;
- }
-}
-
-DialogInfoType DialogInfo::getType(const char *name)
-{
- bool isVar;
- DialogInfoValue * val = findValue(name, false, &isVar);
-
- if (isVar)
- return TYPE_VARIABLE;
-
- else if (val == NULL)
- return UNKNOWN;
-
- else
- return val->getType();
-}
-
-
-const TCHAR * DialogInfo::getAsString(const char *name)
-{
- DialogInfoValue * val = findValue(name);
- if (val == NULL)
- return NULL;
-
- return val->getAsString();
-}
-
-int DialogInfo::getAsInt(const char *name)
-{
- DialogInfoValue * val = findValue(name);
- if (val == NULL)
- return 0;
-
- return val->getAsInt();
-}
-
-double DialogInfo::getAsDouble(const char *name)
-{
- DialogInfoValue * val = findValue(name);
- if (val == NULL)
- return 0;
-
- return val->getAsDouble();
-}
-
-bool DialogInfo::getAsBool(const char *name)
-{
- DialogInfoValue * val = findValue(name);
- if (val == NULL)
- return false;
-
- return val->getAsBool();
-}
-
-DialogInfoValue * DialogInfo::findValue(const char *name, bool create, bool *isVar)
-{
- size_t len = strlen(name);
-
- if (isVar != NULL) *isVar = false;
-
- for(size_t i = 0; i < values.size(); ++i)
- {
- DialogInfoValue *val = values[i];
-
- if (stricmp(name, val->getName()) == 0)
- {
- return val;
- }
- else if (strnicmp(name, val->getName(), len) == 0 && val->getName()[len] == '.')
- {
- if (isVar != NULL) *isVar = true;
- return val;
- }
- }
-
- if (create)
- {
- DialogInfoValue *ret = new DialogInfoValue(name);
- values.push_back(ret);
- return ret;
- }
-
- return NULL;
-}
diff --git a/plugins/Skins/SkinLib/DialogInfo.h b/plugins/Skins/SkinLib/DialogInfo.h deleted file mode 100644 index 02f07310d7..0000000000 --- a/plugins/Skins/SkinLib/DialogInfo.h +++ /dev/null @@ -1,50 +0,0 @@ -#ifndef __DIALOG_INFO_H__
-# define __DIALOG_INFO_H__
-
-#include <windows.h>
-#include <vector>
-
-
-enum DialogInfoType
-{
- UNKNOWN = 0,
- TYPE_VARIABLE,
- TYPE_INT,
- TYPE_DOUBLE,
- TYPE_BOOL,
- TYPE_STRING
-};
-
-
-class DialogInfoValue;
-
-class DialogInfo
-{
-public:
- DialogInfo();
- ~DialogInfo();
-
- void set(const char *name, const TCHAR *value);
- void set(const char *name, int value);
- void set(const char *name, double value);
- void set(const char *name, bool value);
-
- void remove(const char *name);
-
- DialogInfoType getType(const char *name);
-
- const TCHAR * getAsString(const char *name);
- int getAsInt(const char *name);
- double getAsDouble(const char *name);
- bool getAsBool(const char *name);
-
-private:
- std::vector<DialogInfoValue *> values;
-
- DialogInfoValue * findValue(const char *name, bool create = false, bool *isVar = NULL);
-
-};
-
-
-
-#endif // __DIALOG_INFO_H__
\ No newline at end of file diff --git a/plugins/Skins/SkinLib/DialogState.cpp b/plugins/Skins/SkinLib/DialogState.cpp deleted file mode 100644 index e1e7654930..0000000000 --- a/plugins/Skins/SkinLib/DialogState.cpp +++ /dev/null @@ -1,132 +0,0 @@ -#include "globals.h"
-#include "DialogState.h"
-
-
-DialogState::DialogState(Dialog *aDialog) : dialog(aDialog), size(-1,-1), borders(0,0,0,0)
-{
-}
-
-DialogState::~DialogState()
-{
- for(unsigned int i = 0; i < fields.size(); i++)
- delete fields[i];
-
- fields.clear();
-}
-
-Dialog * DialogState::getDialog() const
-{
- return dialog;
-}
-
-FieldState * DialogState::getField(const char *name) const
-{
- if (name == NULL || name[0] == 0)
- return NULL;
-
- for(unsigned int i = 0; i < fields.size(); i++)
- {
- FieldState *field = fields[i];
- if (strcmp(name, field->getField()->getName()) == 0)
- return field;
- }
-
- return NULL;
-}
-
-int DialogState::getX() const
-{
- return 0;
-}
-
-int DialogState::getY() const
-{
- return 0;
-}
-
-int DialogState::getLeft() const
-{
- return getX();
-}
-
-int DialogState::getTop() const
-{
- return getY();
-}
-
-int DialogState::getRight() const
-{
- return getX() + getWidth();
-}
-
-int DialogState::getBottom() const
-{
- return getY() + getHeight();
-}
-
-int DialogState::getWidth() const
-{
- if (size.x >= 0)
- return size.x - getHorizontalBorders();
-
- return dialog->getSize().x - getHorizontalBorders();
-}
-
-void DialogState::setWidth(int width)
-{
- size.x = max(0, width) + getHorizontalBorders();
-}
-
-int DialogState::getHeight() const
-{
- if (size.y >= 0)
- return size.y - getVerticalBorders();
-
- return dialog->getSize().y - getVerticalBorders();
-}
-
-void DialogState::setHeight(int height)
-{
- size.y = max(0, height) + getVerticalBorders();
-}
-
-BorderState * DialogState::getBorders()
-{
- return &borders;
-}
-
-const BorderState * DialogState::getBorders() const
-{
- return &borders;
-}
-
-int DialogState::getHorizontalBorders() const
-{
- return borders.getLeft() + borders.getRight();
-}
-
-int DialogState::getVerticalBorders() const
-{
- return borders.getTop() + borders.getBottom();
-}
-
-RECT DialogState::getInsideRect() const
-{
- RECT ret;
- ret.left = borders.getLeft();
- ret.right = ret.left + getWidth();
- ret.top = borders.getTop();
- ret.bottom = ret.top + getHeight();
- return ret;
-}
-
-RECT DialogState::getRect() const
-{
- RECT ret;
- ret.left = 0;
- ret.right = borders.getLeft() + getWidth() + borders.getRight();
- ret.top = 0;
- ret.bottom = borders.getTop() + getHeight() + borders.getBottom();
- return ret;
-}
-
diff --git a/plugins/Skins/SkinLib/DialogState.h b/plugins/Skins/SkinLib/DialogState.h deleted file mode 100644 index e27fc929da..0000000000 --- a/plugins/Skins/SkinLib/DialogState.h +++ /dev/null @@ -1,59 +0,0 @@ -#ifndef __DIALOG_STATE_H__
-# define __DIALOG_STATE_H__
-
-#include "Dialog.h"
-#include "FieldState.h"
-#include "BorderState.h"
-
-
-/// This have to be deleted before the owning dialog
-/// It is responsible for freeing the FieldStates
-class DialogState
-{
-public:
- ~DialogState();
-
- Dialog * getDialog() const;
-
- std::vector<FieldState *> fields;
- FieldState * getField(const char *name) const;
-
- // Used inside script
-
- virtual int getX() const;
- virtual int getY() const;
- virtual int getLeft() const;
- virtual int getTop() const;
- virtual int getRight() const;
- virtual int getBottom() const;
-
- int getWidth() const;
- void setWidth(int width);
-
- int getHeight() const;
- void setHeight(int height);
-
- BorderState * getBorders();
- const BorderState * getBorders() const;
-
- // Results
-
- RECT getInsideRect() const;
- RECT getRect() const;
-
-private:
- DialogState(Dialog *dialog);
-
- Dialog *dialog;
-
- Size size;
- BorderState borders;
-
- int getHorizontalBorders() const;
- int getVerticalBorders() const;
-
- friend class Dialog;
-};
-
-
-#endif // __DIALOG_STATE_H__
\ No newline at end of file diff --git a/plugins/Skins/SkinLib/DialogState_v8_wrapper.cpp b/plugins/Skins/SkinLib/DialogState_v8_wrapper.cpp deleted file mode 100644 index 5739414d69..0000000000 --- a/plugins/Skins/SkinLib/DialogState_v8_wrapper.cpp +++ /dev/null @@ -1,233 +0,0 @@ -#include "globals.h"
-#include "DialogState_v8_wrapper.h"
-#include <v8.h>
-#include "DialogState.h"
-
-using namespace v8;
-
-
-#ifdef UNICODE
-# define V8_TCHAR uint16_t
-#else
-# define V8_TCHAR char
-#endif
-
-
-static Handle<Value> Get_DialogState_width(Local<String> property, const AccessorInfo &info)
-{
- HandleScope scope;
-
- Local<Object> self = info.Holder();
- Local<External> wrap = Local<External>::Cast(self->GetInternalField(0));
- if (wrap.IsEmpty())
- return scope.Close( Undefined() );
-
- DialogState *tmp = (DialogState *) wrap->Value();
- if (tmp == NULL)
- return scope.Close( Undefined() );
-
- return scope.Close( Int32::New(tmp->getWidth()) );
-}
-
-static void Set_DialogState_width(Local<String> property, Local<Value> value, const AccessorInfo& info)
-{
- HandleScope scope;
-
- Local<Object> self = info.Holder();
- Local<External> wrap = Local<External>::Cast(self->GetInternalField(0));
- if (wrap.IsEmpty())
- return;
-
- DialogState *tmp = (DialogState *) wrap->Value();
- if (tmp == NULL)
- return;
-
- if (!value.IsEmpty() && value->IsNumber())
- tmp->setWidth(value->Int32Value());
-}
-
-
-static Handle<Value> Get_DialogState_height(Local<String> property, const AccessorInfo &info)
-{
- HandleScope scope;
-
- Local<Object> self = info.Holder();
- Local<External> wrap = Local<External>::Cast(self->GetInternalField(0));
- if (wrap.IsEmpty())
- return scope.Close( Undefined() );
-
- DialogState *tmp = (DialogState *) wrap->Value();
- if (tmp == NULL)
- return scope.Close( Undefined() );
-
- return scope.Close( Int32::New(tmp->getHeight()) );
-}
-
-static void Set_DialogState_height(Local<String> property, Local<Value> value, const AccessorInfo& info)
-{
- HandleScope scope;
-
- Local<Object> self = info.Holder();
- Local<External> wrap = Local<External>::Cast(self->GetInternalField(0));
- if (wrap.IsEmpty())
- return;
-
- DialogState *tmp = (DialogState *) wrap->Value();
- if (tmp == NULL)
- return;
-
- if (!value.IsEmpty() && value->IsNumber())
- tmp->setHeight(value->Int32Value());
-}
-
-
-static Handle<Value> Get_DialogState_x(Local<String> property, const AccessorInfo &info)
-{
- HandleScope scope;
-
- Local<Object> self = info.Holder();
- Local<External> wrap = Local<External>::Cast(self->GetInternalField(0));
- if (wrap.IsEmpty())
- return scope.Close( Undefined() );
-
- DialogState *tmp = (DialogState *) wrap->Value();
- if (tmp == NULL)
- return scope.Close( Undefined() );
-
- return scope.Close( Int32::New(tmp->getX()) );
-}
-
-
-static Handle<Value> Get_DialogState_y(Local<String> property, const AccessorInfo &info)
-{
- HandleScope scope;
-
- Local<Object> self = info.Holder();
- Local<External> wrap = Local<External>::Cast(self->GetInternalField(0));
- if (wrap.IsEmpty())
- return scope.Close( Undefined() );
-
- DialogState *tmp = (DialogState *) wrap->Value();
- if (tmp == NULL)
- return scope.Close( Undefined() );
-
- return scope.Close( Int32::New(tmp->getY()) );
-}
-
-
-static Handle<Value> Get_DialogState_left(Local<String> property, const AccessorInfo &info)
-{
- HandleScope scope;
-
- Local<Object> self = info.Holder();
- Local<External> wrap = Local<External>::Cast(self->GetInternalField(0));
- if (wrap.IsEmpty())
- return scope.Close( Undefined() );
-
- DialogState *tmp = (DialogState *) wrap->Value();
- if (tmp == NULL)
- return scope.Close( Undefined() );
-
- return scope.Close( Int32::New(tmp->getLeft()) );
-}
-
-
-static Handle<Value> Get_DialogState_top(Local<String> property, const AccessorInfo &info)
-{
- HandleScope scope;
-
- Local<Object> self = info.Holder();
- Local<External> wrap = Local<External>::Cast(self->GetInternalField(0));
- if (wrap.IsEmpty())
- return scope.Close( Undefined() );
-
- DialogState *tmp = (DialogState *) wrap->Value();
- if (tmp == NULL)
- return scope.Close( Undefined() );
-
- return scope.Close( Int32::New(tmp->getTop()) );
-}
-
-
-static Handle<Value> Get_DialogState_right(Local<String> property, const AccessorInfo &info)
-{
- HandleScope scope;
-
- Local<Object> self = info.Holder();
- Local<External> wrap = Local<External>::Cast(self->GetInternalField(0));
- if (wrap.IsEmpty())
- return scope.Close( Undefined() );
-
- DialogState *tmp = (DialogState *) wrap->Value();
- if (tmp == NULL)
- return scope.Close( Undefined() );
-
- return scope.Close( Int32::New(tmp->getRight()) );
-}
-
-
-static Handle<Value> Get_DialogState_bottom(Local<String> property, const AccessorInfo &info)
-{
- HandleScope scope;
-
- Local<Object> self = info.Holder();
- Local<External> wrap = Local<External>::Cast(self->GetInternalField(0));
- if (wrap.IsEmpty())
- return scope.Close( Undefined() );
-
- DialogState *tmp = (DialogState *) wrap->Value();
- if (tmp == NULL)
- return scope.Close( Undefined() );
-
- return scope.Close( Int32::New(tmp->getBottom()) );
-}
-
-
-static Handle<Value> Get_DialogState_borders(Local<String> property, const AccessorInfo &info)
-{
- HandleScope scope;
-
- Local<Object> self = info.Holder();
- Local<External> wrap = Local<External>::Cast(self->GetInternalField(0));
- if (wrap.IsEmpty())
- return scope.Close( Undefined() );
-
- DialogState *tmp = (DialogState *) wrap->Value();
- if (tmp == NULL)
- return scope.Close( Undefined() );
-
- return scope.Close( self->Get(String::New("bordersRaw")) );
-}
-
-static void Set_DialogState_borders(Local<String> property, Local<Value> value, const AccessorInfo& info)
-{
- HandleScope scope;
-
- Local<Object> self = info.Holder();
- Local<External> wrap = Local<External>::Cast(self->GetInternalField(0));
- if (wrap.IsEmpty())
- return;
-
- DialogState *tmp = (DialogState *) wrap->Value();
- if (tmp == NULL)
- return;
-
- if (!value.IsEmpty() && value->IsInt32())
- tmp->getBorders()->setAll(value->Int32Value());
-}
-
-
-void AddDialogStateAcessors(Handle<ObjectTemplate> &templ)
-{
- HandleScope scope;
-
- templ->SetAccessor(String::New("width"), Get_DialogState_width, Set_DialogState_width);
- templ->SetAccessor(String::New("height"), Get_DialogState_height, Set_DialogState_height);
- templ->SetAccessor(String::New("x"), Get_DialogState_x, NULL, Handle<Value>(), DEFAULT, ReadOnly);
- templ->SetAccessor(String::New("y"), Get_DialogState_y, NULL, Handle<Value>(), DEFAULT, ReadOnly);
- templ->SetAccessor(String::New("left"), Get_DialogState_left, NULL, Handle<Value>(), DEFAULT, ReadOnly);
- templ->SetAccessor(String::New("top"), Get_DialogState_top, NULL, Handle<Value>(), DEFAULT, ReadOnly);
- templ->SetAccessor(String::New("right"), Get_DialogState_right, NULL, Handle<Value>(), DEFAULT, ReadOnly);
- templ->SetAccessor(String::New("bottom"), Get_DialogState_bottom, NULL, Handle<Value>(), DEFAULT, ReadOnly);
- templ->SetAccessor(String::New("borders"), Get_DialogState_borders, Set_DialogState_borders);
-}
diff --git a/plugins/Skins/SkinLib/DialogState_v8_wrapper.h b/plugins/Skins/SkinLib/DialogState_v8_wrapper.h deleted file mode 100644 index 709ef2d738..0000000000 --- a/plugins/Skins/SkinLib/DialogState_v8_wrapper.h +++ /dev/null @@ -1,10 +0,0 @@ -#ifndef __DIALOG_STATE_V8_WRAPPER_H__
-# define __DIALOG_STATE_V8_WRAPPER_H__
-
-#include <v8.h>
-
-void AddDialogStateAcessors(v8::Handle<v8::ObjectTemplate> &templ);
-
-
-
-#endif // __DIALOG_STATE_V8_WRAPPER_H__
diff --git a/plugins/Skins/SkinLib/EditField.cpp b/plugins/Skins/SkinLib/EditField.cpp deleted file mode 100644 index 8eb0d5050f..0000000000 --- a/plugins/Skins/SkinLib/EditField.cpp +++ /dev/null @@ -1,23 +0,0 @@ -#include "globals.h"
-#include "EditField.h"
-#include "EditFieldState.h"
-
-
-EditField::EditField(Dialog *dlg, const char *name, HWND hwnd)
- : ControlField(dlg, name, hwnd)
-{
-}
-
-EditField::~EditField()
-{
-}
-
-FieldType EditField::getType() const
-{
- return CONTROL_EDIT;
-}
-
-FieldState * EditField::createState(DialogState *dialogState)
-{
- return new EditFieldState(dialogState, this);
-}
\ No newline at end of file diff --git a/plugins/Skins/SkinLib/EditField.h b/plugins/Skins/SkinLib/EditField.h deleted file mode 100644 index f69f23576c..0000000000 --- a/plugins/Skins/SkinLib/EditField.h +++ /dev/null @@ -1,19 +0,0 @@ -#ifndef __EDIT_FIELD_H__
-# define __EDIT_FIELD_H__
-
-#include "ControlField.h"
-
-
-class EditField : public ControlField
-{
-public:
- EditField(Dialog *dlg, const char *name, HWND hwnd);
- virtual ~EditField();
-
- virtual FieldType getType() const;
-
- virtual FieldState * createState(DialogState *dialogState);
-};
-
-
-#endif // __EDIT_FIELD_H__
diff --git a/plugins/Skins/SkinLib/EditFieldState.cpp b/plugins/Skins/SkinLib/EditFieldState.cpp deleted file mode 100644 index e634be7b55..0000000000 --- a/plugins/Skins/SkinLib/EditFieldState.cpp +++ /dev/null @@ -1,58 +0,0 @@ -#include "globals.h"
-#include "EditFieldState.h"
-
-
-EditFieldState::EditFieldState(DialogState *dialog, EditField *field)
- : ControlFieldState(dialog, field)
-{
-}
-
-EditFieldState::~EditFieldState()
-{
-}
-
-Size EditFieldState::getPreferedSize() const
-{
- ControlField *field = getField();
- HWND hwnd = field->getHWND();
-
- int style = GetWindowLong(hwnd, GWL_STYLE);
- int exstyle = GetWindowLong(hwnd, GWL_EXSTYLE);
-
- int format = DT_NOPREFIX | DT_EDITCONTROL;
- if (!(style & ES_MULTILINE))
- format |= DT_SINGLELINE;
- Size ret = getTextPreferedSize(format);
-
- RECT rc = {0};
- SetRect(&rc, 0, 0, ret.x, ret.y);
- AdjustWindowRectEx(&rc, style, false, exstyle);
-
- bool hasHorScroll = field->isScrollVisible(true);
- if (hasHorScroll)
- rc.bottom += GetSystemMetrics(SM_CYHSCROLL);
- if (field->isScrollVisible(false))
- rc.right += GetSystemMetrics(SM_CXVSCROLL);
-
- int margins = SendMessage(hwnd, EM_GETMARGINS, 0, 0);
- rc.left -= LOWORD(margins);
- rc.right += HIWORD(margins);
- if (hasHorScroll || (style & ES_AUTOHSCROLL))
- rc.right++;
-
- ret.x = rc.right - rc.left;
- ret.y = rc.bottom - rc.top;
-
- if ((exstyle & WS_EX_CLIENTEDGE) || (exstyle & WS_EX_STATICEDGE) || (style & WS_BORDER))
- {
- ret.x += 3;
- ret.y += 3;
- }
-
- return ret;
-}
-
-bool EditFieldState::isEmpty() const
-{
- return false;
-}
\ No newline at end of file diff --git a/plugins/Skins/SkinLib/EditFieldState.h b/plugins/Skins/SkinLib/EditFieldState.h deleted file mode 100644 index c2372d553d..0000000000 --- a/plugins/Skins/SkinLib/EditFieldState.h +++ /dev/null @@ -1,24 +0,0 @@ -#ifndef __EDIT_FIELD_STATE_H__
-# define __EDIT_FIELD_STATE_H__
-
-#include "ControlFieldState.h"
-#include "EditField.h"
-
-
-class EditFieldState : public ControlFieldState
-{
-public:
- virtual ~EditFieldState();
-
- virtual Size getPreferedSize() const;
-
- virtual bool isEmpty() const;
-
-private:
- EditFieldState(DialogState *dialog, EditField *field);
-
- friend class EditField;
-};
-
-
-#endif // __EDIT_FIELD_STATE_H__
diff --git a/plugins/Skins/SkinLib/EditFieldState_v8_wrapper.cpp b/plugins/Skins/SkinLib/EditFieldState_v8_wrapper.cpp deleted file mode 100644 index 86522b87e3..0000000000 --- a/plugins/Skins/SkinLib/EditFieldState_v8_wrapper.cpp +++ /dev/null @@ -1,20 +0,0 @@ -#include "globals.h"
-#include "EditFieldState_v8_wrapper.h"
-#include <v8.h>
-#include "EditFieldState.h"
-
-using namespace v8;
-
-
-#ifdef UNICODE
-# define V8_TCHAR uint16_t
-#else
-# define V8_TCHAR char
-#endif
-
-
-void AddEditFieldStateAcessors(Handle<ObjectTemplate> &templ)
-{
- HandleScope scope;
-
-}
diff --git a/plugins/Skins/SkinLib/EditFieldState_v8_wrapper.h b/plugins/Skins/SkinLib/EditFieldState_v8_wrapper.h deleted file mode 100644 index a58972549f..0000000000 --- a/plugins/Skins/SkinLib/EditFieldState_v8_wrapper.h +++ /dev/null @@ -1,10 +0,0 @@ -#ifndef __EDIT_FIELD_STATE_V8_WRAPPER_H__
-# define __EDIT_FIELD_STATE_V8_WRAPPER_H__
-
-#include <v8.h>
-
-void AddEditFieldStateAcessors(v8::Handle<v8::ObjectTemplate> &templ);
-
-
-
-#endif // __EDIT_FIELD_STATE_V8_WRAPPER_H__
diff --git a/plugins/Skins/SkinLib/Field.cpp b/plugins/Skins/SkinLib/Field.cpp deleted file mode 100644 index 24b823bde6..0000000000 --- a/plugins/Skins/SkinLib/Field.cpp +++ /dev/null @@ -1,56 +0,0 @@ -#include "globals.h"
-#include "Field.h"
-#include "FieldState.h"
-
-
-Field::Field(Dialog *aDlg, const char *aName)
- : dlg(aDlg), name(aName), onChangeCallback(NULL), onChangeCallbackParam(NULL), enabled(true)
-{
-}
-
-Field::~Field()
-{
-}
-
-Dialog * Field::getDialog() const
-{
- return dlg;
-}
-
-const char * Field::getName() const
-{
- return name.c_str();
-}
-
-bool Field::isEnabled() const
-{
- return enabled;
-}
-
-void Field::setEnabled(bool enabled)
-{
- this->enabled = enabled;
- fireOnChange();
-}
-
-const TCHAR * Field::getToolTip() const
-{
- return tooltip.c_str();
-}
-
-void Field::setToolTip(const TCHAR *tooltip)
-{
- this->tooltip = tooltip;
-}
-
-void Field::setOnChangeCallback(FieldCallback cb, void *param /*= NULL*/)
-{
- onChangeCallback = cb;
- onChangeCallbackParam = param;
-}
-
-void Field::fireOnChange() const
-{
- if (onChangeCallback != NULL)
- onChangeCallback(onChangeCallbackParam, this);
-}
diff --git a/plugins/Skins/SkinLib/Field.h b/plugins/Skins/SkinLib/Field.h deleted file mode 100644 index 4cf7faaa51..0000000000 --- a/plugins/Skins/SkinLib/Field.h +++ /dev/null @@ -1,66 +0,0 @@ -#ifndef __FIELD_H__
-# define __FIELD_H__
-
-#include <windows.h>
-#include <tchar.h>
-#include "tstring.h"
-#include "Size.h"
-#include "Position.h"
-
-
-enum FieldType
-{
- SIMPLE_TEXT = 1,
- SIMPLE_IMAGE,
- SIMPLE_ICON,
- CONTROL_LABEL,
- CONTROL_BUTTON,
- CONTROL_EDIT,
- USER_DEFINED = 0x100
-};
-
-class Dialog;
-class DialogState;
-class Field;
-class FieldState;
-
-typedef void (*FieldCallback)(void *param, const Field *field);
-
-
-class Field
-{
-public:
- Field(Dialog *dlg, const char *name);
- virtual ~Field();
-
- virtual Dialog * getDialog() const;
- virtual const char * getName() const;
- virtual FieldType getType() const = 0;
-
- virtual bool isEnabled() const;
- virtual void setEnabled(bool enabled);
-
- virtual const TCHAR * getToolTip() const;
- virtual void setToolTip(const TCHAR *tooltip);
-
- virtual FieldState * createState(DialogState *dialogState) = 0;
-
- virtual void setOnChangeCallback(FieldCallback cb, void *param = NULL);
-
-protected:
- void fireOnChange() const;
-
-private:
- Dialog *dlg;
- const std::string name;
- bool enabled;
- std::tstring tooltip;
-
- FieldCallback onChangeCallback;
- void *onChangeCallbackParam;
-};
-
-
-
-
-#endif // __FIELD_H__
\ No newline at end of file diff --git a/plugins/Skins/SkinLib/FieldState.cpp b/plugins/Skins/SkinLib/FieldState.cpp deleted file mode 100644 index 68510051da..0000000000 --- a/plugins/Skins/SkinLib/FieldState.cpp +++ /dev/null @@ -1,303 +0,0 @@ -#include "globals.h"
-#include "FieldState.h"
-#include "DialogState.h"
-#include "BorderState.h"
-
-#define START 1<<0
-#define LEN 1<<1
-#define END 1<<2
-#define USING_MASK 0xFF
-#define LAST_SHIFT 8
-#define SET(_FIELD_, _ITEM_) _FIELD_ = (((_FIELD_ | _ITEM_) & USING_MASK) | (_ITEM_ << LAST_SHIFT))
-#define LAST_SET(_FIELD_) (_FIELD_ >> LAST_SHIFT)
-
-
-FieldState::FieldState(DialogState *aDialog, Field *aField)
- : field(aField), dialog(aDialog), size(-1, -1), pos(0, 0),
- usingX(0), usingY(0), visible(aField->isEnabled()), borders(0,0,0,0),
- tooltipSet(false), halign(HORIZONTAL_ALIGN_LEFT), valign(VERTICAL_ALIGN_TOP)
-{
-}
-
-FieldState::~FieldState()
-{
-}
-
-Field * FieldState::getField() const
-{
- return field;
-}
-
-DialogState * FieldState::getDialog() const
-{
- return dialog;
-}
-
-int FieldState::getX() const
-{
- return pos.x;
-}
-
-void FieldState::setX(int x)
-{
- if (usingX & END)
- {
- int diff = x - getX();
- size.x = max(0, getWidth() - getHorizontalBorders() - diff);
- }
-
- pos.x = x;
-
- SET(usingX, START);
-}
-
-int FieldState::getY() const
-{
- return pos.y;
-}
-
-void FieldState::setY(int y)
-{
- if (usingY & END)
- {
- int diff = y - getY();
- size.y = max(0, getHeight() - getVerticalBorders() - diff);
- }
-
- pos.y = y;
-
- SET(usingY, START);
-}
-
-int FieldState::getWidth() const
-{
- if (size.x >= 0)
- return size.x + getHorizontalBorders();
-
- return getPreferedSize().x + getHorizontalBorders();
-}
-
-void FieldState::setWidth(int width)
-{
- width = max(0, width - getHorizontalBorders()) + getHorizontalBorders();
-
- if (LAST_SET(usingX) == END)
- {
- int diff = width - getWidth();
- pos.x = getX() - diff;
- }
-
- size.x = width - getHorizontalBorders();
-
- usingX |= LEN;
-}
-
-int FieldState::getHeight() const
-{
- if (size.y >= 0)
- return size.y + getVerticalBorders();
-
- return getPreferedSize().y + getVerticalBorders();
-}
-
-void FieldState::setHeight(int height)
-{
- height = max(0, height - getVerticalBorders()) + getVerticalBorders();
-
- if (LAST_SET(usingY) == END)
- {
- int diff = height - getHeight();
- pos.y = getY() - diff;
- }
-
- size.y = height - getVerticalBorders();
-
- usingY |= LEN;
-}
-
-bool FieldState::isVisible() const
-{
- if (!visible)
- return false;
-
- RECT rc = getRect();
- if (rc.right <= rc.left || rc.bottom <= rc.top)
- return false;
-
- return true;
-}
-
-void FieldState::setVisible(bool visible)
-{
- this->visible = visible;
-}
-
-bool FieldState::isEnabled() const
-{
- return field->isEnabled();
-}
-
-int FieldState::getLeft() const
-{
- return getX();
-}
-
-void FieldState::setLeft(int left)
-{
- setX(left);
-}
-
-int FieldState::getTop() const
-{
- return getY();
-}
-
-void FieldState::setTop(int top)
-{
- setY(top);
-}
-
-int FieldState::getRight() const
-{
- return getX() + getWidth();
-}
-
-void FieldState::setRight(int right)
-{
- if (usingX & START)
- {
- size.x = max(0, right - getX());
- }
- else
- {
- pos.x = right - getWidth();
- }
-
- SET(usingX, END);
-}
-
-int FieldState::getBottom() const
-{
- return getY() + getHeight();
-}
-
-void FieldState::setBottom(int botom)
-{
- if (usingY & START)
- {
- size.y = max(0, botom - getY());
- }
- else
- {
- pos.y = botom - getHeight();
- }
-
- SET(usingY, END);
-}
-
-const TCHAR * FieldState::getToolTip() const
-{
- if (tooltipSet)
- return tooltip.c_str();
- else
- return field->getToolTip();
-}
-
-void FieldState::setToolTip(const TCHAR *tooltip)
-{
- this->tooltip = tooltip;
- tooltipSet = true;
-}
-
-BorderState * FieldState::getBorders()
-{
- return &borders;
-}
-
-const BorderState * FieldState::getBorders() const
-{
- return &borders;
-}
-
-int FieldState::getHorizontalBorders() const
-{
- return borders.getLeft() + borders.getRight();
-}
-
-int FieldState::getVerticalBorders() const
-{
- return borders.getTop() + borders.getBottom();
-}
-
-static inline int beetween(int val, int minVal, int maxVal)
-{
- return max(minVal, min(maxVal, val));
-}
-
-static inline void intersection(RECT &main, const RECT &other)
-{
- main.left = beetween(main.left, other.left, other.right);
- main.right = beetween(main.right, other.left, other.right);
- main.top = beetween(main.top, other.top, other.bottom);
- main.bottom = beetween(main.bottom, other.top, other.bottom);
-}
-
-RECT FieldState::getRect(bool raw) const
-{
- RECT ret = {0};
-
- if (!visible)
- return ret;
-
- RECT inside = dialog->getInsideRect();
-
- ret.left = getLeft() + inside.left;
- ret.right = getRight() + inside.left;
- ret.top = getTop() + inside.top;
- ret.bottom = getBottom() + inside.top;
-
- if (!raw)
- intersection(ret, inside);
-
- return ret;
-}
-
-RECT FieldState::getInsideRect(bool raw) const
-{
- RECT ret = {0};
-
- if (!visible)
- return ret;
-
- RECT inside = dialog->getInsideRect();
-
- ret.left = getLeft() + borders.getLeft() + inside.left;
- ret.right = getRight() - borders.getRight() + inside.left;
- ret.top = getTop() + borders.getTop() + inside.top;
- ret.bottom = getBottom() - borders.getBottom() + inside.top;
-
- if (!raw)
- intersection(ret, inside);
-
- return ret;
-}
-
-HORIZONTAL_ALIGN FieldState::getHAlign() const
-{
- return halign;
-}
-
-void FieldState::setHAlign(HORIZONTAL_ALIGN halign)
-{
- this->halign = halign;
-}
-
-VERTICAL_ALIGN FieldState::getVAlign() const
-{
- return valign;
-}
-
-void FieldState::setVAlign(VERTICAL_ALIGN valign)
-{
- this->valign = valign;
-}
diff --git a/plugins/Skins/SkinLib/FieldState.h b/plugins/Skins/SkinLib/FieldState.h deleted file mode 100644 index d7c552105f..0000000000 --- a/plugins/Skins/SkinLib/FieldState.h +++ /dev/null @@ -1,108 +0,0 @@ -#ifndef __FIELD_STATE_H__
-# define __FIELD_STATE_H__
-
-#include "Field.h"
-#include "BorderState.h"
-
-class DialogState;
-
-enum HORIZONTAL_ALIGN
-{
- HORIZONTAL_ALIGN_LEFT = 1,
- HORIZONTAL_ALIGN_CENTER,
- HORIZONTAL_ALIGN_RIGHT
-};
-
-enum VERTICAL_ALIGN
-{
- VERTICAL_ALIGN_TOP = 1,
- VERTICAL_ALIGN_CENTER,
- VERTICAL_ALIGN_BOTTOM
-};
-
-
-class FieldState
-{
-public:
- virtual ~FieldState();
-
- virtual Field * getField() const;
- virtual DialogState * getDialog() const;
-
- virtual Size getPreferedSize() const = 0;
-
- // Used inside script
-
- virtual int getX() const;
- virtual void setX(int x);
-
- virtual int getY() const;
- virtual void setY(int y);
-
- virtual int getWidth() const;
- virtual void setWidth(int width);
-
- virtual int getHeight() const;
- virtual void setHeight(int height);
-
- virtual int getLeft() const;
- virtual void setLeft(int left);
-
- virtual int getTop() const;
- virtual void setTop(int top);
-
- virtual int getRight() const;
- virtual void setRight(int right);
-
- virtual int getBottom() const;
- virtual void setBottom(int bottom);
-
- virtual bool isVisible() const;
- virtual void setVisible(bool visible);
-
- virtual bool isEnabled() const;
-
- virtual const TCHAR * getToolTip() const;
- virtual void setToolTip(const TCHAR *tooltip);
-
- virtual BorderState * getBorders();
- virtual const BorderState * getBorders() const;
-
- virtual HORIZONTAL_ALIGN getHAlign() const;
- virtual void setHAlign(HORIZONTAL_ALIGN halign);
-
- virtual VERTICAL_ALIGN getVAlign() const;
- virtual void setVAlign(VERTICAL_ALIGN valign);
-
- virtual bool isEmpty() const = 0;
-
- // Results
-
- virtual RECT getInsideRect(bool raw = false) const;
- virtual RECT getRect(bool raw = false) const;
-
-protected:
- FieldState(DialogState *dialog, Field *field);
-
- Field *field;
- DialogState *dialog;
-
- Size size;
- Position pos;
- int usingX;
- int usingY;
- bool visible;
- BorderState borders;
- bool tooltipSet;
- std::tstring tooltip;
- HORIZONTAL_ALIGN halign;
- VERTICAL_ALIGN valign;
-
- int getHorizontalBorders() const;
- int getVerticalBorders() const;
-
- friend class Field;
-};
-
-
-#endif // __FIELD_STATE_H__
diff --git a/plugins/Skins/SkinLib/FieldState.rec b/plugins/Skins/SkinLib/FieldState.rec deleted file mode 100644 index 7b9ffd890d..0000000000 --- a/plugins/Skins/SkinLib/FieldState.rec +++ /dev/null @@ -1,89 +0,0 @@ -struct DialogState
-{
- Int32 width;
- Int32 height;
- const Int32 x;
- const Int32 y;
- const Int32 left;
- const Int32 top;
- const Int32 right;
- const Int32 bottom;
- BorderState borders [setter: if (!value.IsEmpty() && value->IsInt32())\n\ttmp->getBorders()->setAll(value->Int32Value()); ];
-};
-
-struct FieldState
-{
- Int32 x;
- Int32 y;
- Int32 width;
- Int32 height;
- Int32 left;
- Int32 top;
- Int32 right;
- Int32 bottom;
- Boolean visible;
- const Boolean enabled;
- Char toolTip[128];
- Int32 hAlign | HORIZONTAL_ALIGN_LEFT "LEFT" | HORIZONTAL_ALIGN_CENTER "CENTER" | HORIZONTAL_ALIGN_RIGHT "RIGHT";
- Int32 vAlign | VERTICAL_ALIGN_TOP "TOP" | VERTICAL_ALIGN_CENTER "CENTER" | VERTICAL_ALIGN_BOTTOM "BOTTOM";
- BorderState borders [setter: if (!value.IsEmpty() && value->IsInt32())\n\ttmp->getBorders()->setAll(value->Int32Value()); ];
-};
-
-struct ControlFieldState : FieldState
-{
- Char text[1024];
- FontState font;
-};
-
-struct LabelFieldState : ControlFieldState
-{
-};
-
-struct ButtonFieldState : ControlFieldState
-{
-};
-
-struct EditFieldState : ControlFieldState
-{
-};
-
-struct IconFieldState : FieldState
-{
-};
-
-struct ImageFieldState : FieldState
-{
-};
-
-struct TextFieldState : FieldState
-{
- Char text[1024];
- FontState font;
-};
-
-struct FontState
-{
- Char face[32];
- Int32 size;
- Boolean italic;
- Boolean bold;
- Boolean underline;
- Boolean strikeOut;
- Int32 color;
-};
-
-struct BorderState
-{
- Int32 left;
- Int32 right;
- Int32 top;
- Int32 bottom;
-};
-
-struct SkinOption
-{
- Char description[128];
- Int32 min;
- Int32 max;
- Int32 type | CHECKBOX | NUMBER | TEXT;
-};
diff --git a/plugins/Skins/SkinLib/FieldState_v8_wrapper.cpp b/plugins/Skins/SkinLib/FieldState_v8_wrapper.cpp deleted file mode 100644 index 937ad69a58..0000000000 --- a/plugins/Skins/SkinLib/FieldState_v8_wrapper.cpp +++ /dev/null @@ -1,539 +0,0 @@ -#include "globals.h"
-#include "FieldState_v8_wrapper.h"
-#include <v8.h>
-#include "FieldState.h"
-#include <utf8_helpers.h>
-
-using namespace v8;
-
-
-#ifdef UNICODE
-# define V8_TCHAR uint16_t
-#else
-# define V8_TCHAR char
-#endif
-
-
-static Handle<Value> Get_FieldState_x(Local<String> property, const AccessorInfo &info)
-{
- HandleScope scope;
-
- Local<Object> self = info.Holder();
- Local<External> wrap = Local<External>::Cast(self->GetInternalField(0));
- if (wrap.IsEmpty())
- return scope.Close( Undefined() );
-
- FieldState *tmp = (FieldState *) wrap->Value();
- if (tmp == NULL)
- return scope.Close( Undefined() );
-
- return scope.Close( Int32::New(tmp->getX()) );
-}
-
-static void Set_FieldState_x(Local<String> property, Local<Value> value, const AccessorInfo& info)
-{
- HandleScope scope;
-
- Local<Object> self = info.Holder();
- Local<External> wrap = Local<External>::Cast(self->GetInternalField(0));
- if (wrap.IsEmpty())
- return;
-
- FieldState *tmp = (FieldState *) wrap->Value();
- if (tmp == NULL)
- return;
-
- if (!value.IsEmpty() && value->IsNumber())
- tmp->setX(value->Int32Value());
-}
-
-
-static Handle<Value> Get_FieldState_y(Local<String> property, const AccessorInfo &info)
-{
- HandleScope scope;
-
- Local<Object> self = info.Holder();
- Local<External> wrap = Local<External>::Cast(self->GetInternalField(0));
- if (wrap.IsEmpty())
- return scope.Close( Undefined() );
-
- FieldState *tmp = (FieldState *) wrap->Value();
- if (tmp == NULL)
- return scope.Close( Undefined() );
-
- return scope.Close( Int32::New(tmp->getY()) );
-}
-
-static void Set_FieldState_y(Local<String> property, Local<Value> value, const AccessorInfo& info)
-{
- HandleScope scope;
-
- Local<Object> self = info.Holder();
- Local<External> wrap = Local<External>::Cast(self->GetInternalField(0));
- if (wrap.IsEmpty())
- return;
-
- FieldState *tmp = (FieldState *) wrap->Value();
- if (tmp == NULL)
- return;
-
- if (!value.IsEmpty() && value->IsNumber())
- tmp->setY(value->Int32Value());
-}
-
-
-static Handle<Value> Get_FieldState_width(Local<String> property, const AccessorInfo &info)
-{
- HandleScope scope;
-
- Local<Object> self = info.Holder();
- Local<External> wrap = Local<External>::Cast(self->GetInternalField(0));
- if (wrap.IsEmpty())
- return scope.Close( Undefined() );
-
- FieldState *tmp = (FieldState *) wrap->Value();
- if (tmp == NULL)
- return scope.Close( Undefined() );
-
- return scope.Close( Int32::New(tmp->getWidth()) );
-}
-
-static void Set_FieldState_width(Local<String> property, Local<Value> value, const AccessorInfo& info)
-{
- HandleScope scope;
-
- Local<Object> self = info.Holder();
- Local<External> wrap = Local<External>::Cast(self->GetInternalField(0));
- if (wrap.IsEmpty())
- return;
-
- FieldState *tmp = (FieldState *) wrap->Value();
- if (tmp == NULL)
- return;
-
- if (!value.IsEmpty() && value->IsNumber())
- tmp->setWidth(value->Int32Value());
-}
-
-
-static Handle<Value> Get_FieldState_height(Local<String> property, const AccessorInfo &info)
-{
- HandleScope scope;
-
- Local<Object> self = info.Holder();
- Local<External> wrap = Local<External>::Cast(self->GetInternalField(0));
- if (wrap.IsEmpty())
- return scope.Close( Undefined() );
-
- FieldState *tmp = (FieldState *) wrap->Value();
- if (tmp == NULL)
- return scope.Close( Undefined() );
-
- return scope.Close( Int32::New(tmp->getHeight()) );
-}
-
-static void Set_FieldState_height(Local<String> property, Local<Value> value, const AccessorInfo& info)
-{
- HandleScope scope;
-
- Local<Object> self = info.Holder();
- Local<External> wrap = Local<External>::Cast(self->GetInternalField(0));
- if (wrap.IsEmpty())
- return;
-
- FieldState *tmp = (FieldState *) wrap->Value();
- if (tmp == NULL)
- return;
-
- if (!value.IsEmpty() && value->IsNumber())
- tmp->setHeight(value->Int32Value());
-}
-
-
-static Handle<Value> Get_FieldState_left(Local<String> property, const AccessorInfo &info)
-{
- HandleScope scope;
-
- Local<Object> self = info.Holder();
- Local<External> wrap = Local<External>::Cast(self->GetInternalField(0));
- if (wrap.IsEmpty())
- return scope.Close( Undefined() );
-
- FieldState *tmp = (FieldState *) wrap->Value();
- if (tmp == NULL)
- return scope.Close( Undefined() );
-
- return scope.Close( Int32::New(tmp->getLeft()) );
-}
-
-static void Set_FieldState_left(Local<String> property, Local<Value> value, const AccessorInfo& info)
-{
- HandleScope scope;
-
- Local<Object> self = info.Holder();
- Local<External> wrap = Local<External>::Cast(self->GetInternalField(0));
- if (wrap.IsEmpty())
- return;
-
- FieldState *tmp = (FieldState *) wrap->Value();
- if (tmp == NULL)
- return;
-
- if (!value.IsEmpty() && value->IsNumber())
- tmp->setLeft(value->Int32Value());
-}
-
-
-static Handle<Value> Get_FieldState_top(Local<String> property, const AccessorInfo &info)
-{
- HandleScope scope;
-
- Local<Object> self = info.Holder();
- Local<External> wrap = Local<External>::Cast(self->GetInternalField(0));
- if (wrap.IsEmpty())
- return scope.Close( Undefined() );
-
- FieldState *tmp = (FieldState *) wrap->Value();
- if (tmp == NULL)
- return scope.Close( Undefined() );
-
- return scope.Close( Int32::New(tmp->getTop()) );
-}
-
-static void Set_FieldState_top(Local<String> property, Local<Value> value, const AccessorInfo& info)
-{
- HandleScope scope;
-
- Local<Object> self = info.Holder();
- Local<External> wrap = Local<External>::Cast(self->GetInternalField(0));
- if (wrap.IsEmpty())
- return;
-
- FieldState *tmp = (FieldState *) wrap->Value();
- if (tmp == NULL)
- return;
-
- if (!value.IsEmpty() && value->IsNumber())
- tmp->setTop(value->Int32Value());
-}
-
-
-static Handle<Value> Get_FieldState_right(Local<String> property, const AccessorInfo &info)
-{
- HandleScope scope;
-
- Local<Object> self = info.Holder();
- Local<External> wrap = Local<External>::Cast(self->GetInternalField(0));
- if (wrap.IsEmpty())
- return scope.Close( Undefined() );
-
- FieldState *tmp = (FieldState *) wrap->Value();
- if (tmp == NULL)
- return scope.Close( Undefined() );
-
- return scope.Close( Int32::New(tmp->getRight()) );
-}
-
-static void Set_FieldState_right(Local<String> property, Local<Value> value, const AccessorInfo& info)
-{
- HandleScope scope;
-
- Local<Object> self = info.Holder();
- Local<External> wrap = Local<External>::Cast(self->GetInternalField(0));
- if (wrap.IsEmpty())
- return;
-
- FieldState *tmp = (FieldState *) wrap->Value();
- if (tmp == NULL)
- return;
-
- if (!value.IsEmpty() && value->IsNumber())
- tmp->setRight(value->Int32Value());
-}
-
-
-static Handle<Value> Get_FieldState_bottom(Local<String> property, const AccessorInfo &info)
-{
- HandleScope scope;
-
- Local<Object> self = info.Holder();
- Local<External> wrap = Local<External>::Cast(self->GetInternalField(0));
- if (wrap.IsEmpty())
- return scope.Close( Undefined() );
-
- FieldState *tmp = (FieldState *) wrap->Value();
- if (tmp == NULL)
- return scope.Close( Undefined() );
-
- return scope.Close( Int32::New(tmp->getBottom()) );
-}
-
-static void Set_FieldState_bottom(Local<String> property, Local<Value> value, const AccessorInfo& info)
-{
- HandleScope scope;
-
- Local<Object> self = info.Holder();
- Local<External> wrap = Local<External>::Cast(self->GetInternalField(0));
- if (wrap.IsEmpty())
- return;
-
- FieldState *tmp = (FieldState *) wrap->Value();
- if (tmp == NULL)
- return;
-
- if (!value.IsEmpty() && value->IsNumber())
- tmp->setBottom(value->Int32Value());
-}
-
-
-static Handle<Value> Get_FieldState_visible(Local<String> property, const AccessorInfo &info)
-{
- HandleScope scope;
-
- Local<Object> self = info.Holder();
- Local<External> wrap = Local<External>::Cast(self->GetInternalField(0));
- if (wrap.IsEmpty())
- return scope.Close( Undefined() );
-
- FieldState *tmp = (FieldState *) wrap->Value();
- if (tmp == NULL)
- return scope.Close( Undefined() );
-
- return scope.Close( Boolean::New(tmp->isVisible()) );
-}
-
-static void Set_FieldState_visible(Local<String> property, Local<Value> value, const AccessorInfo& info)
-{
- HandleScope scope;
-
- Local<Object> self = info.Holder();
- Local<External> wrap = Local<External>::Cast(self->GetInternalField(0));
- if (wrap.IsEmpty())
- return;
-
- FieldState *tmp = (FieldState *) wrap->Value();
- if (tmp == NULL)
- return;
-
- if (!value.IsEmpty() && value->IsBoolean())
- tmp->setVisible(value->BooleanValue());
-}
-
-
-static Handle<Value> Get_FieldState_enabled(Local<String> property, const AccessorInfo &info)
-{
- HandleScope scope;
-
- Local<Object> self = info.Holder();
- Local<External> wrap = Local<External>::Cast(self->GetInternalField(0));
- if (wrap.IsEmpty())
- return scope.Close( Undefined() );
-
- FieldState *tmp = (FieldState *) wrap->Value();
- if (tmp == NULL)
- return scope.Close( Undefined() );
-
- return scope.Close( Boolean::New(tmp->isEnabled()) );
-}
-
-
-static Handle<Value> Get_FieldState_toolTip(Local<String> property, const AccessorInfo &info)
-{
- HandleScope scope;
-
- Local<Object> self = info.Holder();
- Local<External> wrap = Local<External>::Cast(self->GetInternalField(0));
- if (wrap.IsEmpty())
- return scope.Close( Undefined() );
-
- FieldState *tmp = (FieldState *) wrap->Value();
- if (tmp == NULL)
- return scope.Close( Undefined() );
-
- return scope.Close( String::New((const V8_TCHAR *) tmp->getToolTip()) );
-}
-
-static void Set_FieldState_toolTip(Local<String> property, Local<Value> value, const AccessorInfo& info)
-{
- HandleScope scope;
-
- Local<Object> self = info.Holder();
- Local<External> wrap = Local<External>::Cast(self->GetInternalField(0));
- if (wrap.IsEmpty())
- return;
-
- FieldState *tmp = (FieldState *) wrap->Value();
- if (tmp == NULL)
- return;
-
- if (!value.IsEmpty() && value->IsString())
- {
- String::Utf8Value utf8_value(value);
- tmp->setToolTip(Utf8ToTchar(*utf8_value));
- }
-}
-
-
-static Handle<Value> Get_FieldState_hAlign(Local<String> property, const AccessorInfo &info)
-{
- HandleScope scope;
-
- Local<Object> self = info.Holder();
- Local<External> wrap = Local<External>::Cast(self->GetInternalField(0));
- if (wrap.IsEmpty())
- return scope.Close( Undefined() );
-
- FieldState *tmp = (FieldState *) wrap->Value();
- if (tmp == NULL)
- return scope.Close( Undefined() );
-
- switch(tmp->getHAlign())
- {
- case HORIZONTAL_ALIGN_LEFT: return scope.Close( String::New((const V8_TCHAR *) _T("LEFT")) );
- case HORIZONTAL_ALIGN_CENTER: return scope.Close( String::New((const V8_TCHAR *) _T("CENTER")) );
- case HORIZONTAL_ALIGN_RIGHT: return scope.Close( String::New((const V8_TCHAR *) _T("RIGHT")) );
- }
- return scope.Close( Undefined() );
-}
-
-static void Set_FieldState_hAlign(Local<String> property, Local<Value> value, const AccessorInfo& info)
-{
- HandleScope scope;
-
- Local<Object> self = info.Holder();
- Local<External> wrap = Local<External>::Cast(self->GetInternalField(0));
- if (wrap.IsEmpty())
- return;
-
- FieldState *tmp = (FieldState *) wrap->Value();
- if (tmp == NULL)
- return;
-
- if (!value.IsEmpty() && value->IsString())
- {
- String::Utf8Value utf8_value(value);
- Utf8ToTchar tval(*utf8_value);
- if ( lstrcmpi(_T("HORIZONTAL_ALIGN_LEFT"), tval) == 0 )
- tmp->setHAlign(HORIZONTAL_ALIGN_LEFT);
- else if ( lstrcmpi(_T("LEFT"), tval) == 0 )
- tmp->setHAlign(HORIZONTAL_ALIGN_LEFT);
- else if ( lstrcmpi(_T("HORIZONTAL_ALIGN_CENTER"), tval) == 0 )
- tmp->setHAlign(HORIZONTAL_ALIGN_CENTER);
- else if ( lstrcmpi(_T("CENTER"), tval) == 0 )
- tmp->setHAlign(HORIZONTAL_ALIGN_CENTER);
- else if ( lstrcmpi(_T("HORIZONTAL_ALIGN_RIGHT"), tval) == 0 )
- tmp->setHAlign(HORIZONTAL_ALIGN_RIGHT);
- else if ( lstrcmpi(_T("RIGHT"), tval) == 0 )
- tmp->setHAlign(HORIZONTAL_ALIGN_RIGHT);
- }
-}
-
-
-static Handle<Value> Get_FieldState_vAlign(Local<String> property, const AccessorInfo &info)
-{
- HandleScope scope;
-
- Local<Object> self = info.Holder();
- Local<External> wrap = Local<External>::Cast(self->GetInternalField(0));
- if (wrap.IsEmpty())
- return scope.Close( Undefined() );
-
- FieldState *tmp = (FieldState *) wrap->Value();
- if (tmp == NULL)
- return scope.Close( Undefined() );
-
- switch(tmp->getVAlign())
- {
- case VERTICAL_ALIGN_TOP: return scope.Close( String::New((const V8_TCHAR *) _T("TOP")) );
- case VERTICAL_ALIGN_CENTER: return scope.Close( String::New((const V8_TCHAR *) _T("CENTER")) );
- case VERTICAL_ALIGN_BOTTOM: return scope.Close( String::New((const V8_TCHAR *) _T("BOTTOM")) );
- }
- return scope.Close( Undefined() );
-}
-
-static void Set_FieldState_vAlign(Local<String> property, Local<Value> value, const AccessorInfo& info)
-{
- HandleScope scope;
-
- Local<Object> self = info.Holder();
- Local<External> wrap = Local<External>::Cast(self->GetInternalField(0));
- if (wrap.IsEmpty())
- return;
-
- FieldState *tmp = (FieldState *) wrap->Value();
- if (tmp == NULL)
- return;
-
- if (!value.IsEmpty() && value->IsString())
- {
- String::Utf8Value utf8_value(value);
- Utf8ToTchar tval(*utf8_value);
- if ( lstrcmpi(_T("VERTICAL_ALIGN_TOP"), tval) == 0 )
- tmp->setVAlign(VERTICAL_ALIGN_TOP);
- else if ( lstrcmpi(_T("TOP"), tval) == 0 )
- tmp->setVAlign(VERTICAL_ALIGN_TOP);
- else if ( lstrcmpi(_T("VERTICAL_ALIGN_CENTER"), tval) == 0 )
- tmp->setVAlign(VERTICAL_ALIGN_CENTER);
- else if ( lstrcmpi(_T("CENTER"), tval) == 0 )
- tmp->setVAlign(VERTICAL_ALIGN_CENTER);
- else if ( lstrcmpi(_T("VERTICAL_ALIGN_BOTTOM"), tval) == 0 )
- tmp->setVAlign(VERTICAL_ALIGN_BOTTOM);
- else if ( lstrcmpi(_T("BOTTOM"), tval) == 0 )
- tmp->setVAlign(VERTICAL_ALIGN_BOTTOM);
- }
-}
-
-
-static Handle<Value> Get_FieldState_borders(Local<String> property, const AccessorInfo &info)
-{
- HandleScope scope;
-
- Local<Object> self = info.Holder();
- Local<External> wrap = Local<External>::Cast(self->GetInternalField(0));
- if (wrap.IsEmpty())
- return scope.Close( Undefined() );
-
- FieldState *tmp = (FieldState *) wrap->Value();
- if (tmp == NULL)
- return scope.Close( Undefined() );
-
- return scope.Close( self->Get(String::New("bordersRaw")) );
-}
-
-static void Set_FieldState_borders(Local<String> property, Local<Value> value, const AccessorInfo& info)
-{
- HandleScope scope;
-
- Local<Object> self = info.Holder();
- Local<External> wrap = Local<External>::Cast(self->GetInternalField(0));
- if (wrap.IsEmpty())
- return;
-
- FieldState *tmp = (FieldState *) wrap->Value();
- if (tmp == NULL)
- return;
-
- if (!value.IsEmpty() && value->IsInt32())
- tmp->getBorders()->setAll(value->Int32Value());
-}
-
-
-void AddFieldStateAcessors(Handle<ObjectTemplate> &templ)
-{
- HandleScope scope;
-
- templ->SetAccessor(String::New("x"), Get_FieldState_x, Set_FieldState_x);
- templ->SetAccessor(String::New("y"), Get_FieldState_y, Set_FieldState_y);
- templ->SetAccessor(String::New("width"), Get_FieldState_width, Set_FieldState_width);
- templ->SetAccessor(String::New("height"), Get_FieldState_height, Set_FieldState_height);
- templ->SetAccessor(String::New("left"), Get_FieldState_left, Set_FieldState_left);
- templ->SetAccessor(String::New("top"), Get_FieldState_top, Set_FieldState_top);
- templ->SetAccessor(String::New("right"), Get_FieldState_right, Set_FieldState_right);
- templ->SetAccessor(String::New("bottom"), Get_FieldState_bottom, Set_FieldState_bottom);
- templ->SetAccessor(String::New("visible"), Get_FieldState_visible, Set_FieldState_visible);
- templ->SetAccessor(String::New("enabled"), Get_FieldState_enabled, NULL, Handle<Value>(), DEFAULT, ReadOnly);
- templ->SetAccessor(String::New("toolTip"), Get_FieldState_toolTip, Set_FieldState_toolTip);
- templ->SetAccessor(String::New("hAlign"), Get_FieldState_hAlign, Set_FieldState_hAlign);
- templ->SetAccessor(String::New("vAlign"), Get_FieldState_vAlign, Set_FieldState_vAlign);
- templ->SetAccessor(String::New("borders"), Get_FieldState_borders, Set_FieldState_borders);
-}
diff --git a/plugins/Skins/SkinLib/FieldState_v8_wrapper.h b/plugins/Skins/SkinLib/FieldState_v8_wrapper.h deleted file mode 100644 index 10c2a854b4..0000000000 --- a/plugins/Skins/SkinLib/FieldState_v8_wrapper.h +++ /dev/null @@ -1,10 +0,0 @@ -#ifndef __FIELD_STATE_V8_WRAPPER_H__
-# define __FIELD_STATE_V8_WRAPPER_H__
-
-#include <v8.h>
-
-void AddFieldStateAcessors(v8::Handle<v8::ObjectTemplate> &templ);
-
-
-
-#endif // __FIELD_STATE_V8_WRAPPER_H__
diff --git a/plugins/Skins/SkinLib/FontState.cpp b/plugins/Skins/SkinLib/FontState.cpp deleted file mode 100644 index da9b4153d5..0000000000 --- a/plugins/Skins/SkinLib/FontState.cpp +++ /dev/null @@ -1,186 +0,0 @@ -#include "globals.h"
-#include "FontState.h"
-
-
-FontState::FontState(HFONT hFont, COLORREF aColor) : hFont(NULL), externalFont(false), color(aColor)
-{
- setHFONT(hFont);
-}
-
-FontState::~FontState()
-{
- releaseHFONT();
-}
-
-void FontState::rebuildHFONT()
-{
- releaseHFONT();
- buildHFONT();
-}
-
-void FontState::buildAttribs()
-{
- LOGFONT lf = {0};
- if (hFont == NULL || GetObject(hFont, sizeof(lf), &lf) == 0)
- {
- face = _T("Tahoma");
- size = 9;
- italic = false;
- bold = false;
- underline = false;
- strikeout = false;
-
- rebuildHFONT();
-
- return;
- }
-
- face = lf.lfFaceName;
- italic = (lf.lfItalic != 0);
- bold = (lf.lfWeight > FW_NORMAL);
- underline = (lf.lfUnderline != 0);
- strikeout = (lf.lfStrikeOut != 0);
-
- HDC hdc = GetDC(NULL);
- size = -MulDiv(lf.lfHeight, 72, GetDeviceCaps(hdc, LOGPIXELSY));
- ReleaseDC(NULL, hdc);
-}
-
-void FontState::buildHFONT()
-{
- if (hFont != NULL)
- return;
-
- LOGFONT lf;
-
- _tcscpy(lf.lfFaceName, getFace());
-
- lf.lfWidth = lf.lfEscapement = lf.lfOrientation = 0;
- lf.lfWeight = isBold() ? FW_BOLD : FW_NORMAL;
- lf.lfItalic = isItalic() ? 1 : 0;
- lf.lfUnderline = isUnderline() ? 1 : 0;
- lf.lfStrikeOut = isStrikeOut() ? 1 : 0;
- lf.lfCharSet = DEFAULT_CHARSET;
- lf.lfOutPrecision = OUT_DEFAULT_PRECIS;
- lf.lfClipPrecision = CLIP_DEFAULT_PRECIS;
- lf.lfQuality = DEFAULT_QUALITY;
- lf.lfPitchAndFamily = DEFAULT_PITCH | FF_DONTCARE;
-
- HDC hdc = GetDC(NULL);
- lf.lfHeight = -MulDiv(getSize(), GetDeviceCaps(hdc, LOGPIXELSY), 72);
- ReleaseDC(NULL, hdc);
-
- hFont = CreateFontIndirect(&lf);
- externalFont = false;
-}
-
-void FontState::releaseHFONT()
-{
- if (hFont == NULL)
- return;
-
- if (!externalFont)
- DeleteObject(hFont);
-
- hFont = NULL;
-}
-
-
-HFONT FontState::getHFONT() const
-{
- return hFont;
-}
-
-
-HFONT FontState::createHFONT() const
-{
- LOGFONT lf;
- if (hFont == NULL || GetObject(hFont, sizeof(lf), &lf) == 0)
- return NULL;
- else
- return CreateFontIndirect(&lf);
-}
-
-void FontState::setHFONT(HFONT hFont)
-{
- releaseHFONT();
- this->hFont = hFont;
- externalFont = true;
- buildAttribs();
-}
-
-const TCHAR * FontState::getFace() const
-{
- return face.c_str();
-}
-
-void FontState::setFace(const TCHAR * face)
-{
- this->face = face;
- rebuildHFONT();
-}
-
-int FontState::getSize() const
-{
- return size;
-}
-
-void FontState::setSize(int size)
-{
- this->size = size;
- rebuildHFONT();
-}
-
-COLORREF FontState::getColor() const
-{
- return color;
-}
-
-void FontState::setColor(COLORREF color)
-{
- this->color = color;
-}
-
-bool FontState::isItalic() const
-{
- return italic;
-}
-
-void FontState::setItalic(bool italic)
-{
- this->italic = italic;
- rebuildHFONT();
-}
-
-bool FontState::isBold() const
-{
- return bold;
-}
-
-void FontState::setBold(bool bold)
-{
- this->bold = bold;
- rebuildHFONT();
-}
-
-bool FontState::isUnderline() const
-{
- return underline;
-}
-
-void FontState::setUnderline(bool underline)
-{
- this->underline = underline;
- rebuildHFONT();
-}
-
-bool FontState::isStrikeOut() const
-{
- return strikeout;
-}
-
-void FontState::setStrikeOut(bool strikeout)
-{
- this->strikeout = strikeout;
- rebuildHFONT();
-}
diff --git a/plugins/Skins/SkinLib/FontState.h b/plugins/Skins/SkinLib/FontState.h deleted file mode 100644 index de32bcdfb3..0000000000 --- a/plugins/Skins/SkinLib/FontState.h +++ /dev/null @@ -1,57 +0,0 @@ -#ifndef __FONT_STATE_H__
-# define __FONT_STATE_H__
-
-#include "Field.h"
-
-
-class FontState
-{
-public:
- FontState(HFONT hFont, COLORREF aColor);
- ~FontState();
-
- HFONT getHFONT() const;
- void setHFONT(HFONT hFont);
- HFONT createHFONT() const; /// Return a copy of the internal HFONT. The caller must free it
-
- const TCHAR * getFace() const;
- void setFace(const TCHAR * face);
-
- int getSize() const;
- void setSize(int size);
-
- COLORREF getColor() const;
- void setColor(COLORREF color);
-
- bool isItalic() const;
- void setItalic(bool italic);
-
- bool isBold() const;
- void setBold(bool bold);
-
- bool isUnderline() const;
- void setUnderline(bool underline);
-
- bool isStrikeOut() const;
- void setStrikeOut(bool strikeout);
-
-private:
- COLORREF color;
- HFONT hFont;
- bool externalFont;
- std::tstring face;
- int size;
- bool italic;
- bool bold;
- bool underline;
- bool strikeout;
-
- void rebuildHFONT();
- void buildHFONT();
- void releaseHFONT();
- void buildAttribs();
-};
-
-
-
-#endif // __FONT_STATE_H__
diff --git a/plugins/Skins/SkinLib/FontState_v8_wrapper.cpp b/plugins/Skins/SkinLib/FontState_v8_wrapper.cpp deleted file mode 100644 index 5226736b24..0000000000 --- a/plugins/Skins/SkinLib/FontState_v8_wrapper.cpp +++ /dev/null @@ -1,269 +0,0 @@ -#include "globals.h"
-#include "FontState_v8_wrapper.h"
-#include <v8.h>
-#include "FontState.h"
-#include <utf8_helpers.h>
-
-using namespace v8;
-
-
-#ifdef UNICODE
-# define V8_TCHAR uint16_t
-#else
-# define V8_TCHAR char
-#endif
-
-
-static Handle<Value> Get_FontState_face(Local<String> property, const AccessorInfo &info)
-{
- HandleScope scope;
-
- Local<Object> self = info.Holder();
- Local<External> wrap = Local<External>::Cast(self->GetInternalField(0));
- if (wrap.IsEmpty())
- return scope.Close( Undefined() );
-
- FontState *tmp = (FontState *) wrap->Value();
- if (tmp == NULL)
- return scope.Close( Undefined() );
-
- return scope.Close( String::New((const V8_TCHAR *) tmp->getFace()) );
-}
-
-static void Set_FontState_face(Local<String> property, Local<Value> value, const AccessorInfo& info)
-{
- HandleScope scope;
-
- Local<Object> self = info.Holder();
- Local<External> wrap = Local<External>::Cast(self->GetInternalField(0));
- if (wrap.IsEmpty())
- return;
-
- FontState *tmp = (FontState *) wrap->Value();
- if (tmp == NULL)
- return;
-
- if (!value.IsEmpty() && value->IsString())
- {
- String::Utf8Value utf8_value(value);
- tmp->setFace(Utf8ToTchar(*utf8_value));
- }
-}
-
-
-static Handle<Value> Get_FontState_size(Local<String> property, const AccessorInfo &info)
-{
- HandleScope scope;
-
- Local<Object> self = info.Holder();
- Local<External> wrap = Local<External>::Cast(self->GetInternalField(0));
- if (wrap.IsEmpty())
- return scope.Close( Undefined() );
-
- FontState *tmp = (FontState *) wrap->Value();
- if (tmp == NULL)
- return scope.Close( Undefined() );
-
- return scope.Close( Int32::New(tmp->getSize()) );
-}
-
-static void Set_FontState_size(Local<String> property, Local<Value> value, const AccessorInfo& info)
-{
- HandleScope scope;
-
- Local<Object> self = info.Holder();
- Local<External> wrap = Local<External>::Cast(self->GetInternalField(0));
- if (wrap.IsEmpty())
- return;
-
- FontState *tmp = (FontState *) wrap->Value();
- if (tmp == NULL)
- return;
-
- if (!value.IsEmpty() && value->IsNumber())
- tmp->setSize(value->Int32Value());
-}
-
-
-static Handle<Value> Get_FontState_italic(Local<String> property, const AccessorInfo &info)
-{
- HandleScope scope;
-
- Local<Object> self = info.Holder();
- Local<External> wrap = Local<External>::Cast(self->GetInternalField(0));
- if (wrap.IsEmpty())
- return scope.Close( Undefined() );
-
- FontState *tmp = (FontState *) wrap->Value();
- if (tmp == NULL)
- return scope.Close( Undefined() );
-
- return scope.Close( Boolean::New(tmp->isItalic()) );
-}
-
-static void Set_FontState_italic(Local<String> property, Local<Value> value, const AccessorInfo& info)
-{
- HandleScope scope;
-
- Local<Object> self = info.Holder();
- Local<External> wrap = Local<External>::Cast(self->GetInternalField(0));
- if (wrap.IsEmpty())
- return;
-
- FontState *tmp = (FontState *) wrap->Value();
- if (tmp == NULL)
- return;
-
- if (!value.IsEmpty() && value->IsBoolean())
- tmp->setItalic(value->BooleanValue());
-}
-
-
-static Handle<Value> Get_FontState_bold(Local<String> property, const AccessorInfo &info)
-{
- HandleScope scope;
-
- Local<Object> self = info.Holder();
- Local<External> wrap = Local<External>::Cast(self->GetInternalField(0));
- if (wrap.IsEmpty())
- return scope.Close( Undefined() );
-
- FontState *tmp = (FontState *) wrap->Value();
- if (tmp == NULL)
- return scope.Close( Undefined() );
-
- return scope.Close( Boolean::New(tmp->isBold()) );
-}
-
-static void Set_FontState_bold(Local<String> property, Local<Value> value, const AccessorInfo& info)
-{
- HandleScope scope;
-
- Local<Object> self = info.Holder();
- Local<External> wrap = Local<External>::Cast(self->GetInternalField(0));
- if (wrap.IsEmpty())
- return;
-
- FontState *tmp = (FontState *) wrap->Value();
- if (tmp == NULL)
- return;
-
- if (!value.IsEmpty() && value->IsBoolean())
- tmp->setBold(value->BooleanValue());
-}
-
-
-static Handle<Value> Get_FontState_underline(Local<String> property, const AccessorInfo &info)
-{
- HandleScope scope;
-
- Local<Object> self = info.Holder();
- Local<External> wrap = Local<External>::Cast(self->GetInternalField(0));
- if (wrap.IsEmpty())
- return scope.Close( Undefined() );
-
- FontState *tmp = (FontState *) wrap->Value();
- if (tmp == NULL)
- return scope.Close( Undefined() );
-
- return scope.Close( Boolean::New(tmp->isUnderline()) );
-}
-
-static void Set_FontState_underline(Local<String> property, Local<Value> value, const AccessorInfo& info)
-{
- HandleScope scope;
-
- Local<Object> self = info.Holder();
- Local<External> wrap = Local<External>::Cast(self->GetInternalField(0));
- if (wrap.IsEmpty())
- return;
-
- FontState *tmp = (FontState *) wrap->Value();
- if (tmp == NULL)
- return;
-
- if (!value.IsEmpty() && value->IsBoolean())
- tmp->setUnderline(value->BooleanValue());
-}
-
-
-static Handle<Value> Get_FontState_strikeOut(Local<String> property, const AccessorInfo &info)
-{
- HandleScope scope;
-
- Local<Object> self = info.Holder();
- Local<External> wrap = Local<External>::Cast(self->GetInternalField(0));
- if (wrap.IsEmpty())
- return scope.Close( Undefined() );
-
- FontState *tmp = (FontState *) wrap->Value();
- if (tmp == NULL)
- return scope.Close( Undefined() );
-
- return scope.Close( Boolean::New(tmp->isStrikeOut()) );
-}
-
-static void Set_FontState_strikeOut(Local<String> property, Local<Value> value, const AccessorInfo& info)
-{
- HandleScope scope;
-
- Local<Object> self = info.Holder();
- Local<External> wrap = Local<External>::Cast(self->GetInternalField(0));
- if (wrap.IsEmpty())
- return;
-
- FontState *tmp = (FontState *) wrap->Value();
- if (tmp == NULL)
- return;
-
- if (!value.IsEmpty() && value->IsBoolean())
- tmp->setStrikeOut(value->BooleanValue());
-}
-
-
-static Handle<Value> Get_FontState_color(Local<String> property, const AccessorInfo &info)
-{
- HandleScope scope;
-
- Local<Object> self = info.Holder();
- Local<External> wrap = Local<External>::Cast(self->GetInternalField(0));
- if (wrap.IsEmpty())
- return scope.Close( Undefined() );
-
- FontState *tmp = (FontState *) wrap->Value();
- if (tmp == NULL)
- return scope.Close( Undefined() );
-
- return scope.Close( Int32::New(tmp->getColor()) );
-}
-
-static void Set_FontState_color(Local<String> property, Local<Value> value, const AccessorInfo& info)
-{
- HandleScope scope;
-
- Local<Object> self = info.Holder();
- Local<External> wrap = Local<External>::Cast(self->GetInternalField(0));
- if (wrap.IsEmpty())
- return;
-
- FontState *tmp = (FontState *) wrap->Value();
- if (tmp == NULL)
- return;
-
- if (!value.IsEmpty() && value->IsNumber())
- tmp->setColor(value->Int32Value());
-}
-
-
-void AddFontStateAcessors(Handle<ObjectTemplate> &templ)
-{
- HandleScope scope;
-
- templ->SetAccessor(String::New("face"), Get_FontState_face, Set_FontState_face);
- templ->SetAccessor(String::New("size"), Get_FontState_size, Set_FontState_size);
- templ->SetAccessor(String::New("italic"), Get_FontState_italic, Set_FontState_italic);
- templ->SetAccessor(String::New("bold"), Get_FontState_bold, Set_FontState_bold);
- templ->SetAccessor(String::New("underline"), Get_FontState_underline, Set_FontState_underline);
- templ->SetAccessor(String::New("strikeOut"), Get_FontState_strikeOut, Set_FontState_strikeOut);
- templ->SetAccessor(String::New("color"), Get_FontState_color, Set_FontState_color);
-}
diff --git a/plugins/Skins/SkinLib/FontState_v8_wrapper.h b/plugins/Skins/SkinLib/FontState_v8_wrapper.h deleted file mode 100644 index 4b0483ffd9..0000000000 --- a/plugins/Skins/SkinLib/FontState_v8_wrapper.h +++ /dev/null @@ -1,10 +0,0 @@ -#ifndef __FONT_STATE_V8_WRAPPER_H__
-# define __FONT_STATE_V8_WRAPPER_H__
-
-#include <v8.h>
-
-void AddFontStateAcessors(v8::Handle<v8::ObjectTemplate> &templ);
-
-
-
-#endif // __FONT_STATE_V8_WRAPPER_H__
diff --git a/plugins/Skins/SkinLib/IconField.cpp b/plugins/Skins/SkinLib/IconField.cpp deleted file mode 100644 index 4cf1aaf532..0000000000 --- a/plugins/Skins/SkinLib/IconField.cpp +++ /dev/null @@ -1,38 +0,0 @@ -#include "globals.h"
-#include "IconField.h"
-#include "IconFieldState.h"
-
-
-IconField::IconField(Dialog *dlg, const char *name)
- : Field(dlg, name), hIcon(NULL)
-{
-
-}
-
-IconField::~IconField()
-{
-}
-
-FieldType IconField::getType() const
-{
- return SIMPLE_ICON;
-}
-
-HICON IconField::getIcon() const
-{
- return hIcon;
-}
-
-void IconField::setIcon(HICON hIcon)
-{
- if (this->hIcon == hIcon)
- return;
-
- this->hIcon = hIcon;
- fireOnChange();
-}
-
-FieldState * IconField::createState(DialogState *dialogState)
-{
- return new IconFieldState(dialogState, this);
-}
\ No newline at end of file diff --git a/plugins/Skins/SkinLib/IconField.h b/plugins/Skins/SkinLib/IconField.h deleted file mode 100644 index 984b36b984..0000000000 --- a/plugins/Skins/SkinLib/IconField.h +++ /dev/null @@ -1,27 +0,0 @@ -#ifndef __ICON_FIELD_H__
-# define __ICON_FIELD_H__
-
-#include "Field.h"
-
-
-class IconField : public Field
-{
-public:
- IconField(Dialog *dlg, const char *name);
- virtual ~IconField();
-
- virtual FieldType getType() const;
-
- virtual HICON getIcon() const;
- virtual void setIcon(HICON hIcon);
-
- virtual FieldState * createState(DialogState *dialogState);
-
-private:
- HICON hIcon;
-
-};
-
-
-
-#endif // __ICON_FIELD_H__
\ No newline at end of file diff --git a/plugins/Skins/SkinLib/IconFieldState.cpp b/plugins/Skins/SkinLib/IconFieldState.cpp deleted file mode 100644 index fad1d67084..0000000000 --- a/plugins/Skins/SkinLib/IconFieldState.cpp +++ /dev/null @@ -1,37 +0,0 @@ -#include "globals.h"
-#include "IconFieldState.h"
-
-#define ICON_SIZE 16
-
-
-IconFieldState::IconFieldState(DialogState *dialog, IconField *field)
- : FieldState(dialog, field)
-{
-}
-
-IconFieldState::~IconFieldState()
-{
-}
-
-IconField * IconFieldState::getField() const
-{
- return (IconField *) FieldState::getField();
-}
-
-Size IconFieldState::getPreferedSize() const
-{
- if (getIcon() == NULL)
- return Size(0, 0);
-
- return Size(ICON_SIZE, ICON_SIZE);
-}
-
-HICON IconFieldState::getIcon() const
-{
- return getField()->getIcon();
-}
-
-bool IconFieldState::isEmpty() const
-{
- return getIcon() == NULL;
-}
\ No newline at end of file diff --git a/plugins/Skins/SkinLib/IconFieldState.h b/plugins/Skins/SkinLib/IconFieldState.h deleted file mode 100644 index b69e3fe01f..0000000000 --- a/plugins/Skins/SkinLib/IconFieldState.h +++ /dev/null @@ -1,28 +0,0 @@ -#ifndef __ICON_FIELD_STATE_H__
-# define __ICON_FIELD_STATE_H__
-
-#include "IconField.h"
-#include "FieldState.h"
-
-
-class IconFieldState : public FieldState
-{
-public:
- virtual ~IconFieldState();
-
- virtual IconField * getField() const;
-
- virtual Size getPreferedSize() const;
-
- virtual HICON getIcon() const;
-
- virtual bool isEmpty() const;
-
-private:
- IconFieldState(DialogState *dialog, IconField *field);
-
- friend class IconField;
-};
-
-
-#endif // __ICON_FIELD_STATE_H__
\ No newline at end of file diff --git a/plugins/Skins/SkinLib/IconFieldState_v8_wrapper.cpp b/plugins/Skins/SkinLib/IconFieldState_v8_wrapper.cpp deleted file mode 100644 index a955653652..0000000000 --- a/plugins/Skins/SkinLib/IconFieldState_v8_wrapper.cpp +++ /dev/null @@ -1,20 +0,0 @@ -#include "globals.h"
-#include "IconFieldState_v8_wrapper.h"
-#include <v8.h>
-#include "IconFieldState.h"
-
-using namespace v8;
-
-
-#ifdef UNICODE
-# define V8_TCHAR uint16_t
-#else
-# define V8_TCHAR char
-#endif
-
-
-void AddIconFieldStateAcessors(Handle<ObjectTemplate> &templ)
-{
- HandleScope scope;
-
-}
diff --git a/plugins/Skins/SkinLib/IconFieldState_v8_wrapper.h b/plugins/Skins/SkinLib/IconFieldState_v8_wrapper.h deleted file mode 100644 index 7b63f801bc..0000000000 --- a/plugins/Skins/SkinLib/IconFieldState_v8_wrapper.h +++ /dev/null @@ -1,10 +0,0 @@ -#ifndef __ICON_FIELD_STATE_V8_WRAPPER_H__
-# define __ICON_FIELD_STATE_V8_WRAPPER_H__
-
-#include <v8.h>
-
-void AddIconFieldStateAcessors(v8::Handle<v8::ObjectTemplate> &templ);
-
-
-
-#endif // __ICON_FIELD_STATE_V8_WRAPPER_H__
diff --git a/plugins/Skins/SkinLib/ImageField.cpp b/plugins/Skins/SkinLib/ImageField.cpp deleted file mode 100644 index c65cf99a0f..0000000000 --- a/plugins/Skins/SkinLib/ImageField.cpp +++ /dev/null @@ -1,38 +0,0 @@ -#include "globals.h"
-#include "ImageField.h"
-#include "ImageFieldState.h"
-
-
-ImageField::ImageField(Dialog *dlg, const char *name)
- : Field(dlg, name), hBmp(NULL)
-{
-
-}
-
-ImageField::~ImageField()
-{
-}
-
-FieldType ImageField::getType() const
-{
- return SIMPLE_IMAGE;
-}
-
-HBITMAP ImageField::getImage() const
-{
- return hBmp;
-}
-
-void ImageField::setImage(HBITMAP hBmp)
-{
- if (this->hBmp == hBmp)
- return;
-
- this->hBmp = hBmp;
- fireOnChange();
-}
-
-FieldState * ImageField::createState(DialogState *dialogState)
-{
- return new ImageFieldState(dialogState, this);
-}
\ No newline at end of file diff --git a/plugins/Skins/SkinLib/ImageField.h b/plugins/Skins/SkinLib/ImageField.h deleted file mode 100644 index e2f08665ca..0000000000 --- a/plugins/Skins/SkinLib/ImageField.h +++ /dev/null @@ -1,26 +0,0 @@ -#ifndef __IMAGE_FIELD_H__
-# define __IMAGE_FIELD_H__
-
-#include "Field.h"
-
-class ImageField : public Field
-{
-public:
- ImageField(Dialog *dlg, const char *name);
- virtual ~ImageField();
-
- virtual FieldType getType() const;
-
- virtual HBITMAP getImage() const;
- virtual void setImage(HBITMAP hBmp);
-
- virtual FieldState * createState(DialogState *dialogState);
-
-private:
- HBITMAP hBmp;
-
-};
-
-
-
-#endif // __IMAGE_FIELD_H__
\ No newline at end of file diff --git a/plugins/Skins/SkinLib/ImageFieldState.cpp b/plugins/Skins/SkinLib/ImageFieldState.cpp deleted file mode 100644 index f74d77e0f3..0000000000 --- a/plugins/Skins/SkinLib/ImageFieldState.cpp +++ /dev/null @@ -1,37 +0,0 @@ -#include "globals.h"
-#include "ImageFieldState.h"
-
-
-ImageFieldState::ImageFieldState(DialogState *dialog, ImageField *field)
- : FieldState(dialog, field)
-{
-}
-
-ImageFieldState::~ImageFieldState()
-{
-}
-
-ImageField * ImageFieldState::getField() const
-{
- return (ImageField *) FieldState::getField();
-}
-
-Size ImageFieldState::getPreferedSize() const
-{
- HBITMAP hBmp = getImage();
- BITMAP bmp;
- if (hBmp == NULL || GetObject(hBmp, sizeof(bmp), &bmp) == 0)
- return Size(0, 0);
-
- return Size(bmp.bmWidth, bmp.bmHeight);
-}
-
-HBITMAP ImageFieldState::getImage() const
-{
- return getField()->getImage();
-}
-
-bool ImageFieldState::isEmpty() const
-{
- return getImage() == NULL;
-}
\ No newline at end of file diff --git a/plugins/Skins/SkinLib/ImageFieldState.h b/plugins/Skins/SkinLib/ImageFieldState.h deleted file mode 100644 index 493c4db16d..0000000000 --- a/plugins/Skins/SkinLib/ImageFieldState.h +++ /dev/null @@ -1,28 +0,0 @@ -#ifndef __IMAGE_FIELD_STATE_H__
-# define __IMAGE_FIELD_STATE_H__
-
-#include "ImageField.h"
-#include "FieldState.h"
-
-
-class ImageFieldState : public FieldState
-{
-public:
- virtual ~ImageFieldState();
-
- virtual ImageField * getField() const;
-
- virtual Size getPreferedSize() const;
-
- virtual HBITMAP getImage() const;
-
- virtual bool isEmpty() const;
-
-private:
- ImageFieldState(DialogState *dialog, ImageField *field);
-
- friend class ImageField;
-};
-
-
-#endif // __IMAGE_FIELD_STATE_H__
\ No newline at end of file diff --git a/plugins/Skins/SkinLib/ImageFieldState_v8_wrapper.cpp b/plugins/Skins/SkinLib/ImageFieldState_v8_wrapper.cpp deleted file mode 100644 index 1e4a9b6a54..0000000000 --- a/plugins/Skins/SkinLib/ImageFieldState_v8_wrapper.cpp +++ /dev/null @@ -1,20 +0,0 @@ -#include "globals.h"
-#include "ImageFieldState_v8_wrapper.h"
-#include <v8.h>
-#include "ImageFieldState.h"
-
-using namespace v8;
-
-
-#ifdef UNICODE
-# define V8_TCHAR uint16_t
-#else
-# define V8_TCHAR char
-#endif
-
-
-void AddImageFieldStateAcessors(Handle<ObjectTemplate> &templ)
-{
- HandleScope scope;
-
-}
diff --git a/plugins/Skins/SkinLib/ImageFieldState_v8_wrapper.h b/plugins/Skins/SkinLib/ImageFieldState_v8_wrapper.h deleted file mode 100644 index ea5f343e03..0000000000 --- a/plugins/Skins/SkinLib/ImageFieldState_v8_wrapper.h +++ /dev/null @@ -1,10 +0,0 @@ -#ifndef __IMAGE_FIELD_STATE_V8_WRAPPER_H__
-# define __IMAGE_FIELD_STATE_V8_WRAPPER_H__
-
-#include <v8.h>
-
-void AddImageFieldStateAcessors(v8::Handle<v8::ObjectTemplate> &templ);
-
-
-
-#endif // __IMAGE_FIELD_STATE_V8_WRAPPER_H__
diff --git a/plugins/Skins/SkinLib/LabelField.cpp b/plugins/Skins/SkinLib/LabelField.cpp deleted file mode 100644 index 154ae2fce5..0000000000 --- a/plugins/Skins/SkinLib/LabelField.cpp +++ /dev/null @@ -1,23 +0,0 @@ -#include "globals.h"
-#include "LabelField.h"
-#include "LabelFieldState.h"
-
-
-LabelField::LabelField(Dialog *dlg, const char *name, HWND hwnd)
- : ControlField(dlg, name, hwnd)
-{
-}
-
-LabelField::~LabelField()
-{
-}
-
-FieldType LabelField::getType() const
-{
- return CONTROL_LABEL;
-}
-
-FieldState * LabelField::createState(DialogState *dialogState)
-{
- return new LabelFieldState(dialogState, this);
-}
\ No newline at end of file diff --git a/plugins/Skins/SkinLib/LabelField.h b/plugins/Skins/SkinLib/LabelField.h deleted file mode 100644 index 8c4cb04a03..0000000000 --- a/plugins/Skins/SkinLib/LabelField.h +++ /dev/null @@ -1,20 +0,0 @@ -#ifndef __LABEL_FIELD_H__
-# define __LABEL_FIELD_H__
-
-#include "ControlField.h"
-
-
-class LabelField : public ControlField
-{
-public:
- LabelField(Dialog *dlg, const char *name, HWND hwnd);
- virtual ~LabelField();
-
- virtual FieldType getType() const;
-
- virtual FieldState * createState(DialogState *dialogState);
-};
-
-
-
-#endif // __LABEL_FIELD_H__
diff --git a/plugins/Skins/SkinLib/LabelFieldState.cpp b/plugins/Skins/SkinLib/LabelFieldState.cpp deleted file mode 100644 index 364611fbf7..0000000000 --- a/plugins/Skins/SkinLib/LabelFieldState.cpp +++ /dev/null @@ -1,35 +0,0 @@ -#include "globals.h"
-#include "LabelFieldState.h"
-
-
-LabelFieldState::LabelFieldState(DialogState *dialog, LabelField *field)
- : ControlFieldState(dialog, field)
-{
-}
-
-LabelFieldState::~LabelFieldState()
-{
-}
-
-Size LabelFieldState::getPreferedSize() const
-{
- int style = GetWindowLong(getField()->getHWND(), GWL_STYLE);
-
- int format = DT_EXPANDTABS | DT_EDITCONTROL;
- if ((style & SS_LEFTNOWORDWRAP) || (style & SS_SIMPLE))
- format |= DT_SINGLELINE;
- if (style & SS_NOPREFIX)
- format |= DT_NOPREFIX;
- Size ret = getTextPreferedSize(format);
-
- int border = getField()->getBorderSize();
- ret.x += 2 * border;
- ret.y += 2 * border;
-
- return ret;
-}
-
-bool LabelFieldState::isEmpty() const
-{
- return lstrlen(getText()) <= 0;
-}
\ No newline at end of file diff --git a/plugins/Skins/SkinLib/LabelFieldState.h b/plugins/Skins/SkinLib/LabelFieldState.h deleted file mode 100644 index dbbb3b04d3..0000000000 --- a/plugins/Skins/SkinLib/LabelFieldState.h +++ /dev/null @@ -1,25 +0,0 @@ -#ifndef __LABEL_FIELD_STATE_H__
-# define __LABEL_FIELD_STATE_H__
-
-#include "ControlFieldState.h"
-#include "LabelField.h"
-
-
-class LabelFieldState : public ControlFieldState
-{
-public:
- virtual ~LabelFieldState();
-
- virtual Size getPreferedSize() const;
-
- virtual bool isEmpty() const;
-
-private:
- LabelFieldState(DialogState *dialog, LabelField *field);
-
- friend class LabelField;
-};
-
-
-
-#endif // __LABEL_FIELD_STATE_H__
diff --git a/plugins/Skins/SkinLib/LabelFieldState_v8_wrapper.cpp b/plugins/Skins/SkinLib/LabelFieldState_v8_wrapper.cpp deleted file mode 100644 index 9105a7d878..0000000000 --- a/plugins/Skins/SkinLib/LabelFieldState_v8_wrapper.cpp +++ /dev/null @@ -1,20 +0,0 @@ -#include "globals.h"
-#include "LabelFieldState_v8_wrapper.h"
-#include <v8.h>
-#include "LabelFieldState.h"
-
-using namespace v8;
-
-
-#ifdef UNICODE
-# define V8_TCHAR uint16_t
-#else
-# define V8_TCHAR char
-#endif
-
-
-void AddLabelFieldStateAcessors(Handle<ObjectTemplate> &templ)
-{
- HandleScope scope;
-
-}
diff --git a/plugins/Skins/SkinLib/LabelFieldState_v8_wrapper.h b/plugins/Skins/SkinLib/LabelFieldState_v8_wrapper.h deleted file mode 100644 index 7d40de5bc2..0000000000 --- a/plugins/Skins/SkinLib/LabelFieldState_v8_wrapper.h +++ /dev/null @@ -1,10 +0,0 @@ -#ifndef __LABEL_FIELD_STATE_V8_WRAPPER_H__
-# define __LABEL_FIELD_STATE_V8_WRAPPER_H__
-
-#include <v8.h>
-
-void AddLabelFieldStateAcessors(v8::Handle<v8::ObjectTemplate> &templ);
-
-
-
-#endif // __LABEL_FIELD_STATE_V8_WRAPPER_H__
diff --git a/plugins/Skins/SkinLib/Position.cpp b/plugins/Skins/SkinLib/Position.cpp deleted file mode 100644 index 6c68881fce..0000000000 --- a/plugins/Skins/SkinLib/Position.cpp +++ /dev/null @@ -1,9 +0,0 @@ -#include "Position.h"
-
-Position::Position() : x(0), y(0)
-{
-}
-
-Position::Position(int aX, int aY) : x(aX), y(aY)
-{
-}
\ No newline at end of file diff --git a/plugins/Skins/SkinLib/Position.h b/plugins/Skins/SkinLib/Position.h deleted file mode 100644 index ed43a1ece3..0000000000 --- a/plugins/Skins/SkinLib/Position.h +++ /dev/null @@ -1,16 +0,0 @@ -#ifndef __POSITION_H__
-# define __POSITION_H__
-
-
-struct Position
-{
- int x;
- int y;
-
- Position();
- Position(int x, int y);
-};
-
-
-
-#endif // __POSITION_H__
diff --git a/plugins/Skins/SkinLib/Size.cpp b/plugins/Skins/SkinLib/Size.cpp deleted file mode 100644 index 9c2eef5d5d..0000000000 --- a/plugins/Skins/SkinLib/Size.cpp +++ /dev/null @@ -1,84 +0,0 @@ -#include "globals.h"
-#include "Size.h"
-
-Size::Size() : x(0), y(0)
-{
-}
-
-Size::Size(int aX, int aY) : x(aX), y(aY)
-{
-
-}
-
-int Size::resizeTo(int newX, int newY)
-{
- if (newX < 0 && newY < 0)
- return -1;
-
- if (newY < 0)
- {
- if (x < 0 || y < 0)
- return -2;
-
- y = (int) (y * (newX / (float) x));
- x = newX;
- }
- else if (newX < 0)
- {
- if (x < 0 || y < 0)
- return -2;
-
- x = (int) (x * (newY / (float) y));
- y = newY;
- }
- else
- {
- x = newX;
- y = newY;
- }
- return 0;
-}
-
-int Size::fitInside(int maxSize)
-{
- if (x < 0 || y < 0)
- return -2;
- if (x <= maxSize && y <= maxSize)
- return 0;
-
- if (x >= y)
- {
- y = (int) (y * (maxSize / (float) x));
- x = maxSize;
- }
- else
- {
- x = (int) (x * (maxSize / (float) y));
- y = maxSize;
- }
- return 0;
-}
-
-int Size::scaleTo(int size)
-{
- if (x < 0 || y < 0)
- return -2;
-
- if (x >= y)
- {
- y = (int) (y * (size / (float) x));
- x = size;
- }
- else
- {
- x = (int) (x * (size / (float) y));
- y = size;
- }
-
- return 0;
-}
-
-bool Size::operator==(const Size &other) const
-{
- return x == other.x && y == other.y;
-}
\ No newline at end of file diff --git a/plugins/Skins/SkinLib/Size.h b/plugins/Skins/SkinLib/Size.h deleted file mode 100644 index 8c0a297aee..0000000000 --- a/plugins/Skins/SkinLib/Size.h +++ /dev/null @@ -1,27 +0,0 @@ -#ifndef __SIZE_H__
-# define __SIZE_H__
-
-
-struct Size
-{
- int x;
- int y;
-
- Size();
- Size(int aX, int aY);
-
- /// @return 0 on success
- int resizeTo(int x, int y);
-
- /// @return 0 on success
- int fitInside(int maxSize);
-
- /// @return 0 on success
- int scaleTo(int size);
-
- bool operator==(const Size &other) const;
-};
-
-
-
-#endif // __SIZE_H__
diff --git a/plugins/Skins/SkinLib/SkinOption.h b/plugins/Skins/SkinLib/SkinOption.h deleted file mode 100644 index 7812303327..0000000000 --- a/plugins/Skins/SkinLib/SkinOption.h +++ /dev/null @@ -1 +0,0 @@ -#include "SkinOptions.h"
\ No newline at end of file diff --git a/plugins/Skins/SkinLib/SkinOption_v8_wrapper.cpp b/plugins/Skins/SkinLib/SkinOption_v8_wrapper.cpp deleted file mode 100644 index 11a401ad2e..0000000000 --- a/plugins/Skins/SkinLib/SkinOption_v8_wrapper.cpp +++ /dev/null @@ -1,179 +0,0 @@ -#include "globals.h"
-#include "SkinOption_v8_wrapper.h"
-#include <v8.h>
-#include "SkinOption.h"
-#include <utf8_helpers.h>
-
-using namespace v8;
-
-
-#ifdef UNICODE
-# define V8_TCHAR uint16_t
-#else
-# define V8_TCHAR char
-#endif
-
-
-static Handle<Value> Get_SkinOption_description(Local<String> property, const AccessorInfo &info)
-{
- HandleScope scope;
-
- Local<Object> self = info.Holder();
- Local<External> wrap = Local<External>::Cast(self->GetInternalField(0));
- if (wrap.IsEmpty())
- return scope.Close( Undefined() );
-
- SkinOption *tmp = (SkinOption *) wrap->Value();
- if (tmp == NULL)
- return scope.Close( Undefined() );
-
- return scope.Close( String::New((const V8_TCHAR *) tmp->getDescription()) );
-}
-
-static void Set_SkinOption_description(Local<String> property, Local<Value> value, const AccessorInfo& info)
-{
- HandleScope scope;
-
- Local<Object> self = info.Holder();
- Local<External> wrap = Local<External>::Cast(self->GetInternalField(0));
- if (wrap.IsEmpty())
- return;
-
- SkinOption *tmp = (SkinOption *) wrap->Value();
- if (tmp == NULL)
- return;
-
- if (!value.IsEmpty() && value->IsString())
- {
- String::Utf8Value utf8_value(value);
- tmp->setDescription(Utf8ToTchar(*utf8_value));
- }
-}
-
-
-static Handle<Value> Get_SkinOption_min(Local<String> property, const AccessorInfo &info)
-{
- HandleScope scope;
-
- Local<Object> self = info.Holder();
- Local<External> wrap = Local<External>::Cast(self->GetInternalField(0));
- if (wrap.IsEmpty())
- return scope.Close( Undefined() );
-
- SkinOption *tmp = (SkinOption *) wrap->Value();
- if (tmp == NULL)
- return scope.Close( Undefined() );
-
- return scope.Close( Int32::New(tmp->getMin()) );
-}
-
-static void Set_SkinOption_min(Local<String> property, Local<Value> value, const AccessorInfo& info)
-{
- HandleScope scope;
-
- Local<Object> self = info.Holder();
- Local<External> wrap = Local<External>::Cast(self->GetInternalField(0));
- if (wrap.IsEmpty())
- return;
-
- SkinOption *tmp = (SkinOption *) wrap->Value();
- if (tmp == NULL)
- return;
-
- if (!value.IsEmpty() && value->IsNumber())
- tmp->setMin(value->Int32Value());
-}
-
-
-static Handle<Value> Get_SkinOption_max(Local<String> property, const AccessorInfo &info)
-{
- HandleScope scope;
-
- Local<Object> self = info.Holder();
- Local<External> wrap = Local<External>::Cast(self->GetInternalField(0));
- if (wrap.IsEmpty())
- return scope.Close( Undefined() );
-
- SkinOption *tmp = (SkinOption *) wrap->Value();
- if (tmp == NULL)
- return scope.Close( Undefined() );
-
- return scope.Close( Int32::New(tmp->getMax()) );
-}
-
-static void Set_SkinOption_max(Local<String> property, Local<Value> value, const AccessorInfo& info)
-{
- HandleScope scope;
-
- Local<Object> self = info.Holder();
- Local<External> wrap = Local<External>::Cast(self->GetInternalField(0));
- if (wrap.IsEmpty())
- return;
-
- SkinOption *tmp = (SkinOption *) wrap->Value();
- if (tmp == NULL)
- return;
-
- if (!value.IsEmpty() && value->IsNumber())
- tmp->setMax(value->Int32Value());
-}
-
-
-static Handle<Value> Get_SkinOption_type(Local<String> property, const AccessorInfo &info)
-{
- HandleScope scope;
-
- Local<Object> self = info.Holder();
- Local<External> wrap = Local<External>::Cast(self->GetInternalField(0));
- if (wrap.IsEmpty())
- return scope.Close( Undefined() );
-
- SkinOption *tmp = (SkinOption *) wrap->Value();
- if (tmp == NULL)
- return scope.Close( Undefined() );
-
- switch(tmp->getType())
- {
- case CHECKBOX: return scope.Close( String::New((const V8_TCHAR *) _T("CHECKBOX")) );
- case NUMBER: return scope.Close( String::New((const V8_TCHAR *) _T("NUMBER")) );
- case TEXT: return scope.Close( String::New((const V8_TCHAR *) _T("TEXT")) );
- }
- return scope.Close( Undefined() );
-}
-
-static void Set_SkinOption_type(Local<String> property, Local<Value> value, const AccessorInfo& info)
-{
- HandleScope scope;
-
- Local<Object> self = info.Holder();
- Local<External> wrap = Local<External>::Cast(self->GetInternalField(0));
- if (wrap.IsEmpty())
- return;
-
- SkinOption *tmp = (SkinOption *) wrap->Value();
- if (tmp == NULL)
- return;
-
- if (!value.IsEmpty() && value->IsString())
- {
- String::Utf8Value utf8_value(value);
- Utf8ToTchar tval(*utf8_value);
- if ( lstrcmpi(_T("CHECKBOX"), tval) == 0 )
- tmp->setType(CHECKBOX);
- else if ( lstrcmpi(_T("NUMBER"), tval) == 0 )
- tmp->setType(NUMBER);
- else if ( lstrcmpi(_T("TEXT"), tval) == 0 )
- tmp->setType(TEXT);
- }
-}
-
-
-void AddSkinOptionAcessors(Handle<ObjectTemplate> &templ)
-{
- HandleScope scope;
-
- templ->SetAccessor(String::New("description"), Get_SkinOption_description, Set_SkinOption_description);
- templ->SetAccessor(String::New("min"), Get_SkinOption_min, Set_SkinOption_min);
- templ->SetAccessor(String::New("max"), Get_SkinOption_max, Set_SkinOption_max);
- templ->SetAccessor(String::New("type"), Get_SkinOption_type, Set_SkinOption_type);
-}
diff --git a/plugins/Skins/SkinLib/SkinOption_v8_wrapper.h b/plugins/Skins/SkinLib/SkinOption_v8_wrapper.h deleted file mode 100644 index 6aa05c2122..0000000000 --- a/plugins/Skins/SkinLib/SkinOption_v8_wrapper.h +++ /dev/null @@ -1,10 +0,0 @@ -#ifndef __SKIN_OPTION_V8_WRAPPER_H__
-# define __SKIN_OPTION_V8_WRAPPER_H__
-
-#include <v8.h>
-
-void AddSkinOptionAcessors(v8::Handle<v8::ObjectTemplate> &templ);
-
-
-
-#endif // __SKIN_OPTION_V8_WRAPPER_H__
diff --git a/plugins/Skins/SkinLib/SkinOptions.cpp b/plugins/Skins/SkinLib/SkinOptions.cpp deleted file mode 100644 index 51fb96cbdb..0000000000 --- a/plugins/Skins/SkinLib/SkinOptions.cpp +++ /dev/null @@ -1,216 +0,0 @@ -#include "globals.h"
-#include "SkinOptions.h"
-#include <utf8_helpers.h>
-
-
-SkinOption::SkinOption(const char *aName)
- : name(aName), type(CHECKBOX), valueCheckbox(false), valueNumber(0),
- onChangeCallback(NULL), onChangeCallbackParam(NULL),
- minValue(MININT), maxValue(MAXINT)
-{
- description = Utf8ToTchar(aName);
-}
-
-SkinOption::~SkinOption()
-{
-}
-
-const char * SkinOption::getName() const
-{
- return name.c_str();
-}
-
-SkinOptionType SkinOption::getType() const
-{
- return type;
-}
-
-void SkinOption::setType(SkinOptionType type)
-{
- if (this->type == type)
- return;
-
- this->type = type;
- fireOnChange();
-}
-
-const TCHAR * SkinOption::getDescription() const
-{
- return description.c_str();
-}
-
-void SkinOption::setDescription(const TCHAR * description)
-{
- if (this->description == description)
- return;
-
- this->description = description;
- fireOnChange();
-}
-
-int SkinOption::getMax() const
-{
- return maxValue;
-}
-
-void SkinOption::setMax(int max)
-{
- this->maxValue = max;
- setValueNumber(valueNumber);
-}
-
-int SkinOption::getMin() const
-{
- return minValue;
-}
-
-void SkinOption::setMin(int min)
-{
- this->minValue = min;
- setValueNumber(valueNumber);
-}
-
-bool SkinOption::getValueCheckbox() const
-{
- return valueCheckbox;
-}
-
-void SkinOption::setValueCheckbox(bool value)
-{
- if (valueCheckbox == value)
- return;
-
- valueCheckbox = value;
- fireOnChange();
-}
-
-int SkinOption::getValueNumber() const
-{
- return max(minValue, min(maxValue, valueNumber));
-}
-
-void SkinOption::setValueNumber(int value)
-{
- value = max(minValue, min(maxValue, value));
-
- if (value == valueNumber)
- return;
-
- valueNumber = value;
- fireOnChange();
-}
-
-const TCHAR * SkinOption::getValueText() const
-{
- return valueText.c_str();
-}
-
-void SkinOption::setValueText(const TCHAR * value)
-{
- if (valueText == value)
- return;
-
- valueText = value;
- fireOnChange();
-}
-
-void SkinOption::setOnChangeCallback(SkinOptionCallback cb, void *param /*= NULL*/)
-{
- onChangeCallback = cb;
- onChangeCallbackParam = param;
-}
-
-void SkinOption::fireOnChange()
-{
- if (onChangeCallback != NULL)
- onChangeCallback(onChangeCallbackParam, this);
-}
-
-
-
-SkinOptions::SkinOptions()
- : onAddRemoveCallback(NULL), onAddRemoveCallbackParam(NULL),
- onChangeCallback(NULL), onChangeCallbackParam(NULL)
-{
-}
-
-SkinOptions::~SkinOptions()
-{
- for(unsigned int i = 0; i < options.size(); i++)
- delete options[i];
- options.clear();
-}
-
-bool SkinOptions::addOption(SkinOption *opt)
-{
- _ASSERT(opt != NULL);
- _ASSERT(opt->getName() != NULL);
-
- if (getOption(opt->getName()) != NULL)
- return false;
-
- opt->setOnChangeCallback(onChangeCallback, onChangeCallbackParam);
- options.push_back(opt);
-
- fireOnAddRemove(opt);
- return true;
-}
-
-SkinOption * SkinOptions::getOption(const char *name) const
-{
- _ASSERT(name != NULL);
-
- for(unsigned int i = 0; i < options.size(); i++)
- {
- SkinOption *opt = options[i];
- if (strcmp(opt->getName(), name) == 0)
- return opt;
- }
- return NULL;
-}
-
-SkinOption * SkinOptions::getOption(unsigned int pos) const
-{
- if (pos >= options.size())
- return NULL;
- return options[pos];
-}
-
-unsigned int SkinOptions::getNumOptions() const
-{
- return options.size();
-}
-
-void SkinOptions::clearOptions()
-{
- if (options.size() <= 0)
- return;
-
- for(unsigned int i = 0; i < options.size(); i++)
- {
- fireOnAddRemove(options[i]);
- delete options[i];
- }
- options.clear();
-}
-
-void SkinOptions::setOnOptionAddRemoveCallback(SkinOptionCallback cb, void *param /*= NULL*/)
-{
- onAddRemoveCallback = cb;
- onAddRemoveCallbackParam = param;
-}
-
-void SkinOptions::setOnOptionChangeCallback(SkinOptionCallback cb, void *param /*= NULL*/)
-{
- onChangeCallback = cb;
- onChangeCallbackParam = param;
-
- for(unsigned int i = 0; i < options.size(); i++)
- options[i]->setOnChangeCallback(cb, param);
-}
-
-void SkinOptions::fireOnAddRemove(SkinOption *opt)
-{
- if (onAddRemoveCallback != NULL)
- onAddRemoveCallback(onAddRemoveCallbackParam, opt);
-}
diff --git a/plugins/Skins/SkinLib/SkinOptions.h b/plugins/Skins/SkinLib/SkinOptions.h deleted file mode 100644 index 41d238a5a1..0000000000 --- a/plugins/Skins/SkinLib/SkinOptions.h +++ /dev/null @@ -1,98 +0,0 @@ -#ifndef __SKINNED_DIALOG_OPTIONS_H__
-# define __SKINNED_DIALOG_OPTIONS_H__
-
-#include <windows.h>
-#include "tstring.h"
-#include <vector>
-
-
-enum SkinOptionType
-{
- CHECKBOX,
- NUMBER,
- TEXT
-};
-
-class SkinOption;
-
-typedef void (*SkinOptionCallback)(void *param, const SkinOption *opt);
-
-
-class SkinOption
-{
-public:
- SkinOption(const char *name);
- ~SkinOption();
-
- const char * getName() const;
-
- SkinOptionType getType() const;
- void setType(SkinOptionType type);
-
- const TCHAR * getDescription() const;
- void setDescription(const TCHAR * description);
-
- int getMax() const;
- void setMax(int max);
-
- int getMin() const;
- void setMin(int min);
-
- bool getValueCheckbox() const;
- void setValueCheckbox(bool value);
-
- int getValueNumber() const;
- void setValueNumber(int value);
-
- const TCHAR * getValueText() const;
- void setValueText(const TCHAR * value);
-
- void setOnChangeCallback(SkinOptionCallback cb, void *param = NULL);
-
-private:
- std::string name;
- SkinOptionType type;
- std::tstring description;
- bool valueCheckbox;
- int valueNumber;
- int minValue;
- int maxValue;
- std::tstring valueText;
-
- SkinOptionCallback onChangeCallback;
- void * onChangeCallbackParam;
-
- void fireOnChange();
-};
-
-
-class SkinOptions
-{
-public:
- SkinOptions();
- ~SkinOptions();
-
- bool addOption(SkinOption *opt);
- SkinOption * getOption(const char *name) const;
- SkinOption * getOption(unsigned int pos) const;
- unsigned int getNumOptions() const;
- void clearOptions();
-
- void setOnOptionAddRemoveCallback(SkinOptionCallback cb, void *param = NULL);
- void setOnOptionChangeCallback(SkinOptionCallback cb, void *param = NULL);
-
-private:
- std::vector<SkinOption *> options;
-
- SkinOptionCallback onAddRemoveCallback;
- void * onAddRemoveCallbackParam;
-
- SkinOptionCallback onChangeCallback;
- void * onChangeCallbackParam;
-
- void fireOnAddRemove(SkinOption *opt);
-};
-
-
-
-#endif // __SKINNED_DIALOG_OPTIONS_H__
diff --git a/plugins/Skins/SkinLib/SkinnedDialog.cpp b/plugins/Skins/SkinLib/SkinnedDialog.cpp deleted file mode 100644 index 917193ad94..0000000000 --- a/plugins/Skins/SkinLib/SkinnedDialog.cpp +++ /dev/null @@ -1,235 +0,0 @@ -#include "globals.h"
-#include "SkinnedDialog.h"
-
-#include <sys/stat.h>
-#include "V8Script.h"
-#include <utf8_helpers.h>
-#include "SkinOptions.h"
-
-
-SkinnedDialog::SkinnedDialog(const char *name)
- : Dialog(name), fileChangedTime(0),
- script(NULL), state(NULL), opts(NULL), defaultState(NULL),
- errorCallback(NULL), errorCallbackParam(NULL),
- traceCallback(NULL), traceCallbackParam(NULL)
-{
- V8Script::initializeEngine();
-}
-
-SkinnedDialog::~SkinnedDialog()
-{
- releaseState();
- releaseCompiledScript();
-}
-
-const TCHAR * SkinnedDialog::getFilename() const
-{
- return filename.c_str();
-}
-
-void SkinnedDialog::setFilename(const TCHAR *filename)
-{
- if (this->filename == filename)
- return;
-
- this->filename = filename;
- releaseState();
- releaseCompiledScript();
-}
-
-bool SkinnedDialog::addField(Field *field)
-{
- if (Dialog::addField(field))
- {
- releaseCompiledScript();
- releaseState();
- field->setOnChangeCallback(SkinnedDialog::staticOnFieldChange, this);
- return true;
- }
- else
- return false;
-}
-
-void SkinnedDialog::setSize(const Size &size)
-{
- if (getSize() == size)
- return;
-
- Dialog::setSize(size);
- releaseState();
-}
-
-int SkinnedDialog::compile()
-{
- if (!fileChanged())
- return 1;
-
- releaseCompiledScript();
-
- struct _stat st = {0};
- if (_tstat(filename.c_str(), &st) != 0)
- return 0;
-
- std::tstring text;
- readFile(text);
- if (text.size() <= 0)
- return 0;
-
- script = new V8Script();
- script->setExceptionCallback(errorCallback, errorCallbackParam);
-
- if (!script->compile(text.c_str(), this))
- {
- releaseCompiledScript();
- return 0;
- }
-
- std::pair<SkinOptions *,DialogState *> pair = script->configure(this);
- opts = pair.first;
- defaultState = pair.second;
- if (opts == NULL)
- {
- releaseCompiledScript();
- return 0;
- }
-
- fileChangedTime = st.st_mtime;
-
- return 2;
-}
-
-DialogState * SkinnedDialog::getState()
-{
- if (state != NULL && !fileChanged())
- return state;
-
- releaseState();
-
- if (filename.size() <= 0)
- return NULL;
-
- if (!compile())
- return NULL;
-
- state = Dialog::createState();
- if (!script->run(state, opts, getInfo()))
- {
- releaseState();
- return NULL;
- }
-
- return state;
-}
-
-void SkinnedDialog::releaseCompiledScript()
-{
- delete script;
- script = NULL;
- fileChangedTime = 0;
-
- delete opts;
- opts = NULL;
-
- delete defaultState;
- defaultState = NULL;
-}
-
-void SkinnedDialog::releaseState()
-{
- delete state;
- state = NULL;
-}
-
-bool SkinnedDialog::fileChanged()
-{
- if (filename.size() <= 0)
- return false;
-
- struct _stat st = {0};
- if (_tstat(filename.c_str(), &st) != 0)
- return false;
-
- return st.st_mtime > fileChangedTime;
-}
-
-void SkinnedDialog::readFile(std::tstring &ret)
-{
- FILE* file = _tfopen(filename.c_str(), _T("rb"));
- if (file == NULL)
- return;
-
- fseek(file, 0, SEEK_END);
- int size = ftell(file);
- rewind(file);
-
- char* chars = new char[size + 1];
- chars[size] = '\0';
- for (int i = 0; i < size;)
- {
- int read = fread(&chars[i], 1, size - i, file);
- i += read;
- }
- fclose(file);
-
- ret = Utf8ToTchar(chars);
-
- delete[] chars;
-}
-
-void SkinnedDialog::onFieldChange(const Field *field)
-{
- releaseState();
-}
-
-
-void SkinnedDialog::staticOnFieldChange(void *param, const Field *field)
-{
- _ASSERT(param != NULL);
- _ASSERT(field != NULL);
-
- SkinnedDialog *skdlg = (SkinnedDialog *) param;
- skdlg->onFieldChange(field);
-}
-
-void SkinnedDialog::setErrorCallback(MessageCallback cb, void *param /*= NULL*/)
-{
- errorCallback = cb;
- errorCallbackParam = param;
-}
-
-void SkinnedDialog::setTraceCallback(MessageCallback cb, void *param /*= NULL*/)
-{
- traceCallback = cb;
- traceCallbackParam = param;
-}
-
-void SkinnedDialog::trace(TCHAR *msg, ...)
-{
- if (traceCallback == NULL)
- return;
-
- TCHAR buff[1024];
- memset(buff, 0, sizeof(buff));
-
- va_list args;
- va_start(args, msg);
-
- _vsntprintf(buff, MAX_REGS(buff) - 1, msg, args);
- buff[MAX_REGS(buff) - 1] = 0;
-
- va_end(args);
-
- traceCallback(traceCallbackParam, buff);
-}
-
-SkinOptions * SkinnedDialog::getOpts()
-{
- compile();
- return opts;
-}
-
-DialogState * SkinnedDialog::getDefaultState()
-{
- compile();
- return defaultState;
-}
\ No newline at end of file diff --git a/plugins/Skins/SkinLib/SkinnedDialog.h b/plugins/Skins/SkinLib/SkinnedDialog.h deleted file mode 100644 index 1387082f44..0000000000 --- a/plugins/Skins/SkinLib/SkinnedDialog.h +++ /dev/null @@ -1,89 +0,0 @@ -#ifndef __SKINNED_DIALOG_H__
-# define __SKINNED_DIALOG_H__
-
-#include <windows.h>
-#include <tchar.h>
-#include "tstring.h"
-
-#include "Dialog.h"
-#include "ButtonField.h"
-#include "EditField.h"
-#include "IconField.h"
-#include "ImageField.h"
-#include "LabelField.h"
-#include "TextField.h"
-
-#include "DialogState.h"
-#include "BorderState.h"
-#include "ButtonFieldState.h"
-#include "EditFieldState.h"
-#include "FontState.h"
-#include "IconFieldState.h"
-#include "ImageFieldState.h"
-#include "LabelFieldState.h"
-#include "TextFieldState.h"
-
-#include "SkinOptions.h"
-
-class V8Script;
-
-
-typedef void (*MessageCallback)(void *param, const TCHAR *err);
-
-
-
-class SkinnedDialog : public Dialog
-{
-public:
- SkinnedDialog(const char *name);
- virtual ~SkinnedDialog();
-
- virtual const TCHAR * getFilename() const;
- virtual void setFilename(const TCHAR *filename);
-
- virtual bool addField(Field *field);
-
- 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.
- virtual DialogState * getState();
-
- virtual void setErrorCallback(MessageCallback cb, void *param = NULL);
- virtual void setTraceCallback(MessageCallback cb, void *param = NULL);
-
- virtual SkinOptions * getOpts();
- virtual DialogState * getDefaultState();
-
-protected:
- virtual bool fileChanged();
- virtual int compile(); /// @return 0 error, 1 no change, 2 compiled
-
- virtual void trace(TCHAR *msg, ...);
-
- virtual void onFieldChange(const Field *field);
-
-private:
- std::tstring filename;
- __time64_t fileChangedTime;
- V8Script *script;
- DialogState *state;
- SkinOptions *opts;
- DialogState *defaultState;
-
- MessageCallback errorCallback;
- void *errorCallbackParam;
- MessageCallback traceCallback;
- void *traceCallbackParam;
-
- void releaseCompiledScript();
- void releaseState();
- void readFile(std::tstring &ret);
-
- static void staticOnFieldChange(void *param, const Field *field);
-};
-
-
-
-
-#endif // __SKINNED_DIALOG_H__
diff --git a/plugins/Skins/SkinLib/TextField.cpp b/plugins/Skins/SkinLib/TextField.cpp deleted file mode 100644 index d3841b98fd..0000000000 --- a/plugins/Skins/SkinLib/TextField.cpp +++ /dev/null @@ -1,78 +0,0 @@ -#include "globals.h"
-#include "TextField.h"
-#include "TextFieldState.h"
-
-
-TextField::TextField(Dialog *dlg, const char *name)
- : Field(dlg, name), hFont(NULL), fontColor(RGB(0,0,0))
-{
-}
-
-
-TextField::~TextField()
-{
-}
-
-
-FieldType TextField::getType() const
-{
- return SIMPLE_TEXT;
-}
-
-
-void TextField::setText(const TCHAR *text)
-{
- if (this->text == text)
- return;
-
- this->text = text;
- fireOnChange();
-}
-
-
-const TCHAR * TextField::getText() const
-{
- return text.c_str();
-}
-
-
-void TextField::setFont(HFONT hFont)
-{
- if (this->hFont == hFont)
- return;
-
- this->hFont = hFont;
- fireOnChange();
-}
-
-
-HFONT TextField::getFont() const
-{
- if (hFont != NULL)
- return hFont;
-
- // The default is the GUI font
- return (HFONT) GetStockObject(DEFAULT_GUI_FONT);
-}
-
-
-COLORREF TextField::getFontColor() const
-{
- return fontColor;
-}
-
-
-void TextField::setFontColor(COLORREF color)
-{
- if (fontColor == color)
- return;
-
- fontColor = color;
- fireOnChange();
-}
-
-
-FieldState * TextField::createState(DialogState *dialogState)
-{
- return new TextFieldState(dialogState, this);
-}
diff --git a/plugins/Skins/SkinLib/TextField.h b/plugins/Skins/SkinLib/TextField.h deleted file mode 100644 index 8d2291f876..0000000000 --- a/plugins/Skins/SkinLib/TextField.h +++ /dev/null @@ -1,35 +0,0 @@ -#ifndef __TEXT_FIELD_H__
-# define __TEXT_FIELD_H__
-
-#include "Field.h"
-
-
-class TextField : public Field
-{
-public:
- TextField(Dialog *dlg, const char *name);
- virtual ~TextField();
-
- virtual FieldType getType() const;
-
- virtual const TCHAR * getText() const;
- virtual void setText(const TCHAR *text);
-
- virtual HFONT getFont() const;
- virtual void setFont(HFONT hFont);
-
- virtual COLORREF getFontColor() const;
- virtual void setFontColor(COLORREF color);
-
- virtual FieldState * createState(DialogState *dialogState);
-
-private:
- std::tstring text;
- HFONT hFont;
- COLORREF fontColor;
-
-};
-
-
-
-#endif // __TEXT_FIELD_H__
diff --git a/plugins/Skins/SkinLib/TextFieldState.cpp b/plugins/Skins/SkinLib/TextFieldState.cpp deleted file mode 100644 index 8e295d01ee..0000000000 --- a/plugins/Skins/SkinLib/TextFieldState.cpp +++ /dev/null @@ -1,65 +0,0 @@ -#include "globals.h"
-#include "TextFieldState.h"
-
-
-TextFieldState::TextFieldState(DialogState *dialog, TextField *field)
- : FieldState(dialog, field), font(field->getFont(), field->getFontColor()), textSet(false)
-{
-}
-
-TextFieldState::~TextFieldState()
-{
-}
-
-TextField * TextFieldState::getField() const
-{
- return (TextField *) FieldState::getField();
-}
-
-
-Size TextFieldState::getPreferedSize() const
-{
- HDC hdc = CreateCompatibleDC(NULL);
-
- HFONT newFont = getFont()->getHFONT();
- HFONT oldFont = (HFONT) SelectObject(hdc, newFont);
-
- RECT rc = {0};
- const TCHAR *text = getText();
- DrawText(hdc, text, -1, &rc, DT_CALCRECT | DT_NOPREFIX | DT_EXPANDTABS | DT_SINGLELINE);
-
- SelectObject(hdc, oldFont);
-
- DeleteDC(hdc);
-
- return Size(rc.right - rc.left, rc.bottom - rc.top);
-}
-
-const TCHAR * TextFieldState::getText() const
-{
- if (textSet)
- return text.c_str();
-
- return getField()->getText();
-}
-
-void TextFieldState::setText(const TCHAR *text)
-{
- this->text = text;
- textSet = true;
-}
-
-FontState * TextFieldState::getFont()
-{
- return &font;
-}
-
-const FontState * TextFieldState::getFont() const
-{
- return &font;
-}
-
-bool TextFieldState::isEmpty() const
-{
- return lstrlen(getText()) <= 0;
-}
diff --git a/plugins/Skins/SkinLib/TextFieldState.h b/plugins/Skins/SkinLib/TextFieldState.h deleted file mode 100644 index 9779cfa569..0000000000 --- a/plugins/Skins/SkinLib/TextFieldState.h +++ /dev/null @@ -1,38 +0,0 @@ -#ifndef __TEXT_FIELD_STATE_H__
-# define __TEXT_FIELD_STATE_H__
-
-#include "TextField.h"
-#include "FieldState.h"
-#include "FontState.h"
-
-
-class TextFieldState : public FieldState
-{
-public:
- virtual ~TextFieldState();
-
- virtual TextField * getField() const;
-
- virtual Size getPreferedSize() const;
-
- virtual const TCHAR * getText() const;
- virtual void setText(const TCHAR *text);
-
- virtual FontState * getFont();
- virtual const FontState * getFont() const;
-
- virtual bool isEmpty() const;
-
-private:
- TextFieldState(DialogState *dialog, TextField *field);
-
- FontState font;
- BOOL textSet;
- std::tstring text;
-
-
- friend class TextField;
-};
-
-
-#endif // __TEXT_FIELD_STATE_H__
\ No newline at end of file diff --git a/plugins/Skins/SkinLib/TextFieldState_v8_wrapper.cpp b/plugins/Skins/SkinLib/TextFieldState_v8_wrapper.cpp deleted file mode 100644 index cf11fdb01f..0000000000 --- a/plugins/Skins/SkinLib/TextFieldState_v8_wrapper.cpp +++ /dev/null @@ -1,59 +0,0 @@ -#include "globals.h"
-#include "TextFieldState_v8_wrapper.h"
-#include <v8.h>
-#include "TextFieldState.h"
-#include <utf8_helpers.h>
-
-using namespace v8;
-
-
-#ifdef UNICODE
-# define V8_TCHAR uint16_t
-#else
-# define V8_TCHAR char
-#endif
-
-
-static Handle<Value> Get_TextFieldState_text(Local<String> property, const AccessorInfo &info)
-{
- HandleScope scope;
-
- Local<Object> self = info.Holder();
- Local<External> wrap = Local<External>::Cast(self->GetInternalField(0));
- if (wrap.IsEmpty())
- return scope.Close( Undefined() );
-
- TextFieldState *tmp = (TextFieldState *) wrap->Value();
- if (tmp == NULL)
- return scope.Close( Undefined() );
-
- return scope.Close( String::New((const V8_TCHAR *) tmp->getText()) );
-}
-
-static void Set_TextFieldState_text(Local<String> property, Local<Value> value, const AccessorInfo& info)
-{
- HandleScope scope;
-
- Local<Object> self = info.Holder();
- Local<External> wrap = Local<External>::Cast(self->GetInternalField(0));
- if (wrap.IsEmpty())
- return;
-
- TextFieldState *tmp = (TextFieldState *) wrap->Value();
- if (tmp == NULL)
- return;
-
- if (!value.IsEmpty() && value->IsString())
- {
- String::Utf8Value utf8_value(value);
- tmp->setText(Utf8ToTchar(*utf8_value));
- }
-}
-
-
-void AddTextFieldStateAcessors(Handle<ObjectTemplate> &templ)
-{
- HandleScope scope;
-
- templ->SetAccessor(String::New("text"), Get_TextFieldState_text, Set_TextFieldState_text);
-}
diff --git a/plugins/Skins/SkinLib/TextFieldState_v8_wrapper.h b/plugins/Skins/SkinLib/TextFieldState_v8_wrapper.h deleted file mode 100644 index c5d9e48a80..0000000000 --- a/plugins/Skins/SkinLib/TextFieldState_v8_wrapper.h +++ /dev/null @@ -1,10 +0,0 @@ -#ifndef __TEXT_FIELD_STATE_V8_WRAPPER_H__
-# define __TEXT_FIELD_STATE_V8_WRAPPER_H__
-
-#include <v8.h>
-
-void AddTextFieldStateAcessors(v8::Handle<v8::ObjectTemplate> &templ);
-
-
-
-#endif // __TEXT_FIELD_STATE_V8_WRAPPER_H__
diff --git a/plugins/Skins/SkinLib/V8Script.cpp b/plugins/Skins/SkinLib/V8Script.cpp deleted file mode 100644 index c7619187a5..0000000000 --- a/plugins/Skins/SkinLib/V8Script.cpp +++ /dev/null @@ -1,236 +0,0 @@ -#include "globals.h"
-#include "V8Script.h"
-#include "V8Wrappers.h"
-
-#include <utf8_helpers.h>
-
-using namespace v8;
-
-#ifdef UNICODE
-# define V8_TCHAR uint16_t
-#else
-# define V8_TCHAR char
-#endif
-
-
-V8Wrappers *wrappers = NULL;
-
-
-void V8Script::initializeEngine()
-{
- if (wrappers != NULL)
- return;
-
- wrappers = new V8Wrappers();
-}
-
-
-V8Script::V8Script() : exceptionCallback(NULL), exceptionCallbackParam(NULL)
-{
-}
-
-V8Script::~V8Script()
-{
- dispose();
-}
-
-bool V8Script::compile(const TCHAR *source, Dialog *dlg)
-{
- dispose();
-
- HandleScope handle_scope;
-
- context = Context::New(NULL, wrappers->getGlobalTemplate());
-
- Context::Scope context_scope(context);
-
- context->Global()->Set(String::New("window"), wrappers->newDialogState(), ReadOnly);
- context->Global()->Set(String::New("opts"), wrappers->newOptions(), ReadOnly);
- context->Global()->Set(String::New("info"), wrappers->newDialogInfo(), ReadOnly);
- for(unsigned int i = 0; i < dlg->getFieldCount(); i++)
- {
- Field *field = dlg->getField(i);
- context->Global()->Set(String::New(field->getName()), wrappers->newState(field->getType()), ReadOnly);
- }
-
- TryCatch try_catch;
- Local<Script> script = Script::Compile(String::New((const V8_TCHAR *) source), String::New(dlg->getName()));
- if (script.IsEmpty())
- {
- reportException(&try_catch);
- dispose();
- return false;
- }
-
- // Run once to get the functions
- Handle<Value> result = script->Run();
- if (script.IsEmpty())
- {
- reportException(&try_catch);
- dispose();
- return false;
- }
-
- Handle<Value> configureFunction = context->Global()->Get(String::New("configure"));
- if (!configureFunction.IsEmpty() && !configureFunction->IsFunction())
- configureFunction.Clear();
-
- Handle<Value> drawFunction = context->Global()->Get(String::New("draw"));
- if (drawFunction.IsEmpty() || !drawFunction->IsFunction())
- {
- dispose();
- return false;
- }
-
- this->configureFunction = Persistent<Function>::New(Handle<Function>::Cast(configureFunction));
- this->drawFunction = Persistent<Function>::New(Handle<Function>::Cast(drawFunction));
-
- return true;
-}
-
-void V8Script::dispose()
-{
- context.Dispose();
- configureFunction.Dispose();
- drawFunction.Dispose();
-
- context.Clear();
- configureFunction.Clear();
- drawFunction.Clear();
-}
-
-bool V8Script::isValid()
-{
- return !context.IsEmpty() && !drawFunction.IsEmpty();
-}
-
-static Handle<Object> get(Handle<Object> obj, const char *field)
-{
- HandleScope scope;
-
- Local<Value> v = obj->Get(String::New(field));
- _ASSERT(!v.IsEmpty());
- _ASSERT(!v->IsUndefined());
- _ASSERT(v->IsObject());
-
- return scope.Close( Handle<Object>::Cast(v) );
-}
-
-void V8Script::fillWrappers(DialogState *state, SkinOptions *opts, DialogInfo *info, bool configure)
-{
- Local<Object> global = context->Global();
- wrappers->fillOptions(get(global, "opts"), opts, configure);
- wrappers->fillDialogState(get(global, "window"), state);
- wrappers->fillDialogInfo(get(global, "info"), info);
- for(unsigned int i = 0; i < state->fields.size(); i++)
- {
- FieldState *field = state->fields[i];
- wrappers->fillState(get(global, field->getField()->getName()), field);
- }
-}
-
-std::pair<SkinOptions *,DialogState *> V8Script::configure(Dialog *dlg)
-{
- if (!isValid())
- return std::pair<SkinOptions *,DialogState *>(NULL, NULL);
-
- SkinOptions *opts = new SkinOptions();
- DialogState *state = dlg->createState();
-
- if (!configureFunction.IsEmpty())
- {
- HandleScope handle_scope;
-
- Context::Scope context_scope(context);
-
- fillWrappers(state, opts, dlg->getInfo(), true);
-
- TryCatch try_catch;
- Handle<Value> result = configureFunction->Call(context->Global(), 0, NULL);
- if (result.IsEmpty())
- {
- reportException(&try_catch);
- delete opts;
- delete state;
- return std::pair<SkinOptions *,DialogState *>(NULL, NULL);;
- }
- }
-
- return std::pair<SkinOptions *,DialogState *>(opts, state);
-}
-
-bool V8Script::run(DialogState * state, SkinOptions *opts, DialogInfo *info)
-{
- if (!isValid())
- return false;
-
- HandleScope handle_scope;
-
- Context::Scope context_scope(context);
-
- fillWrappers(state, opts, info, false);
-
- TryCatch try_catch;
- Handle<Value> result = drawFunction->Call(context->Global(), 0, NULL);
- if (result.IsEmpty())
- {
- reportException(&try_catch);
- return false;
- }
-
- return true;
-}
-
-void V8Script::setExceptionCallback(ExceptionCallback cb, void *param)
-{
- exceptionCallback = cb;
- exceptionCallbackParam = param;
-}
-
-void V8Script::reportException(v8::TryCatch *try_catch)
-{
- std::string err;
- char tmp[1024];
-
- HandleScope handle_scope;
- String::Utf8Value exception(try_catch->Exception());
- Handle<Message> message = try_catch->Message();
- if (message.IsEmpty())
- {
- // V8 didn't provide any extra information about this error; just
- // print the exception.
- _snprintf(tmp, 1024, "%s\n", *exception);
- err += tmp;
- }
- else
- {
- // Print (filename):(line number): (message).
- String::Utf8Value filename(message->GetScriptResourceName());
- int linenum = message->GetLineNumber();
- _snprintf(tmp, 1024, "%s:%i: %s\n", *filename, linenum, *exception);
- err += tmp;
-
- // Print line of source code.
- String::Utf8Value sourceline(message->GetSourceLine());
- _snprintf(tmp, 1024, "%s\n", *sourceline);
- err += tmp;
-
- // Print wavy underline (GetUnderline is deprecated).
- int start = message->GetStartColumn();
- for (int i = 0; i < start; i++) {
- err += " ";
- }
- int end = message->GetEndColumn();
- for (int i = start; i < end; i++) {
- err += "^";
- }
- err += "\n";
- }
-
- Utf8ToTchar tcharErr(err.c_str());
-
- OutputDebugString(tcharErr);
-
- if (exceptionCallback != NULL)
- exceptionCallback(exceptionCallbackParam, tcharErr);
-}
diff --git a/plugins/Skins/SkinLib/V8Script.h b/plugins/Skins/SkinLib/V8Script.h deleted file mode 100644 index b7e1f3f2a6..0000000000 --- a/plugins/Skins/SkinLib/V8Script.h +++ /dev/null @@ -1,46 +0,0 @@ -#ifndef __V8_SCRIPT_H__
-# define __V8_SCRIPT_H__
-
-#include <v8.h>
-#include <utility>
-#include "V8Wrappers.h"
-
-
-typedef void (*ExceptionCallback)(void *param, const TCHAR *err);
-
-
-class V8Script
-{
-public:
- static void initializeEngine();
-
-
- V8Script();
- ~V8Script();
-
- bool compile(const TCHAR *source, Dialog *dlg);
- void dispose();
-
- bool isValid();
-
- std::pair<SkinOptions *,DialogState *> configure(Dialog *dlg);
-
- bool run(DialogState * state, SkinOptions *opts, DialogInfo *info);
-
- void setExceptionCallback(ExceptionCallback cb, void *param = NULL);
-
-private:
- v8::Persistent<v8::Context> context;
- v8::Persistent<v8::Function> configureFunction;
- v8::Persistent<v8::Function> drawFunction;
-
- ExceptionCallback exceptionCallback;
- void *exceptionCallbackParam;
-
- void reportException(v8::TryCatch *try_catch);
- void fillWrappers(DialogState *state, SkinOptions *opts, DialogInfo *info, bool configure);
-};
-
-
-
-#endif // __V8_SCRIPT_H__
diff --git a/plugins/Skins/SkinLib/V8Templates.cpp b/plugins/Skins/SkinLib/V8Templates.cpp deleted file mode 100644 index 4900e13772..0000000000 --- a/plugins/Skins/SkinLib/V8Templates.cpp +++ /dev/null @@ -1,475 +0,0 @@ -#include "globals.h"
-#include <v8.h>
-#include "V8Templates.h"
-#include "DialogState_v8_wrapper.h"
-#include "FieldState_v8_wrapper.h"
-#include "ControlFieldState_v8_wrapper.h"
-#include "TextFieldState_v8_wrapper.h"
-#include "FontState_v8_wrapper.h"
-#include "BorderState_v8_wrapper.h"
-#include "SkinOption_v8_wrapper.h"
-
-using namespace v8;
-
-
-V8Templates::V8Templates()
-{
-}
-
-V8Templates::~V8Templates()
-{
- dialogStateTemplate.Dispose();
- fieldStateTemplate.Dispose();
- controlFieldStateTemplate.Dispose();
- textFieldStateTemplate.Dispose();
- fontStateTemplate.Dispose();
- borderStateTemplate.Dispose();
- skinOptionTemplate.Dispose();
-}
-
-
-Handle<ObjectTemplate> V8Templates::getGlobalTemplate()
-{
- HandleScope scope;
-
- if (!globalTemplate.IsEmpty())
- return globalTemplate;
-
- Handle<ObjectTemplate> templ = ObjectTemplate::New();
- templ->Set(String::New("HORIZONTAL_ALIGN_LEFT"), String::New("HORIZONTAL_ALIGN_LEFT"));
- templ->Set(String::New("LEFT"), String::New("HORIZONTAL_ALIGN_LEFT"));
- templ->Set(String::New("HORIZONTAL_ALIGN_CENTER"), String::New("HORIZONTAL_ALIGN_CENTER"));
- templ->Set(String::New("CENTER"), String::New("HORIZONTAL_ALIGN_CENTER"));
- templ->Set(String::New("HORIZONTAL_ALIGN_RIGHT"), String::New("HORIZONTAL_ALIGN_RIGHT"));
- templ->Set(String::New("RIGHT"), String::New("HORIZONTAL_ALIGN_RIGHT"));
- templ->Set(String::New("VERTICAL_ALIGN_TOP"), String::New("VERTICAL_ALIGN_TOP"));
- templ->Set(String::New("TOP"), String::New("VERTICAL_ALIGN_TOP"));
- templ->Set(String::New("VERTICAL_ALIGN_CENTER"), String::New("VERTICAL_ALIGN_CENTER"));
- templ->Set(String::New("CENTER"), String::New("VERTICAL_ALIGN_CENTER"));
- templ->Set(String::New("VERTICAL_ALIGN_BOTTOM"), String::New("VERTICAL_ALIGN_BOTTOM"));
- templ->Set(String::New("BOTTOM"), String::New("VERTICAL_ALIGN_BOTTOM"));
- templ->Set(String::New("CHECKBOX"), String::New("CHECKBOX"));
- templ->Set(String::New("NUMBER"), String::New("NUMBER"));
- templ->Set(String::New("TEXT"), String::New("TEXT"));
- addGlobalTemplateFields(templ);
-
- globalTemplate = Persistent<ObjectTemplate>::New(templ);
-
- return globalTemplate;
-}
-
-
-void V8Templates::addGlobalTemplateFields(Handle<ObjectTemplate> &templ)
-{
-}
-
-
-int V8Templates::numOfDialogStateInternalFields()
-{
- return 1;
-}
-
-Handle<ObjectTemplate> V8Templates::getDialogStateTemplate()
-{
- HandleScope scope;
-
- if (!dialogStateTemplate.IsEmpty())
- return dialogStateTemplate;
-
- Handle<ObjectTemplate> templ = ObjectTemplate::New();
- templ->SetInternalFieldCount(numOfDialogStateInternalFields());
- AddDialogStateAcessors(templ);
- addDialogStateTemplateFields(templ);
-
- dialogStateTemplate = Persistent<ObjectTemplate>::New(templ);
-
- return dialogStateTemplate;
-}
-
-void V8Templates::addDialogStateTemplateFields(Handle<ObjectTemplate> &templ)
-{
-}
-
-Handle<Object> V8Templates::newDialogState()
-{
- HandleScope scope;
-
- Handle<Object> obj = getDialogStateTemplate()->NewInstance();
- obj->Set(String::New("bordersRaw"), newBorderState(), ReadOnly);
-
- return scope.Close(obj);
-}
-
-void V8Templates::fillDialogState(Handle<Object> v8Obj, DialogState *obj)
-{
- HandleScope scope;
-
- _ASSERT(!v8Obj.IsEmpty());
-
- v8Obj->SetInternalField(0, External::New(obj));
- fillBorderState(Handle<Object>::Cast(v8Obj->Get(String::New("bordersRaw"))), obj->getBorders());
-}
-
-
-int V8Templates::numOfFieldStateInternalFields()
-{
- return 1;
-}
-
-Handle<ObjectTemplate> V8Templates::getFieldStateTemplate()
-{
- HandleScope scope;
-
- if (!fieldStateTemplate.IsEmpty())
- return fieldStateTemplate;
-
- Handle<ObjectTemplate> templ = ObjectTemplate::New();
- templ->SetInternalFieldCount(numOfFieldStateInternalFields());
- AddFieldStateAcessors(templ);
- addFieldStateTemplateFields(templ);
-
- fieldStateTemplate = Persistent<ObjectTemplate>::New(templ);
-
- return fieldStateTemplate;
-}
-
-void V8Templates::addFieldStateTemplateFields(Handle<ObjectTemplate> &templ)
-{
-}
-
-Handle<Object> V8Templates::newFieldState()
-{
- HandleScope scope;
-
- Handle<Object> obj = getFieldStateTemplate()->NewInstance();
- obj->Set(String::New("bordersRaw"), newBorderState(), ReadOnly);
-
- return scope.Close(obj);
-}
-
-void V8Templates::fillFieldState(Handle<Object> v8Obj, FieldState *obj)
-{
- HandleScope scope;
-
- _ASSERT(!v8Obj.IsEmpty());
-
- v8Obj->SetInternalField(0, External::New(obj));
- fillBorderState(Handle<Object>::Cast(v8Obj->Get(String::New("bordersRaw"))), obj->getBorders());
-}
-
-
-int V8Templates::numOfControlFieldStateInternalFields()
-{
- return 1;
-}
-
-Handle<ObjectTemplate> V8Templates::getControlFieldStateTemplate()
-{
- HandleScope scope;
-
- if (!controlFieldStateTemplate.IsEmpty())
- return controlFieldStateTemplate;
-
- Handle<ObjectTemplate> templ = ObjectTemplate::New();
- templ->SetInternalFieldCount(numOfControlFieldStateInternalFields());
- AddFieldStateAcessors(templ);
- AddControlFieldStateAcessors(templ);
- addControlFieldStateTemplateFields(templ);
-
- controlFieldStateTemplate = Persistent<ObjectTemplate>::New(templ);
-
- return controlFieldStateTemplate;
-}
-
-void V8Templates::addControlFieldStateTemplateFields(Handle<ObjectTemplate> &templ)
-{
-}
-
-Handle<Object> V8Templates::newControlFieldState()
-{
- HandleScope scope;
-
- Handle<Object> obj = getControlFieldStateTemplate()->NewInstance();
- obj->Set(String::New("bordersRaw"), newBorderState(), ReadOnly);
- obj->Set(String::New("font"), newFontState(), ReadOnly);
-
- return scope.Close(obj);
-}
-
-void V8Templates::fillControlFieldState(Handle<Object> v8Obj, ControlFieldState *obj)
-{
- HandleScope scope;
-
- _ASSERT(!v8Obj.IsEmpty());
-
- v8Obj->SetInternalField(0, External::New(obj));
- fillBorderState(Handle<Object>::Cast(v8Obj->Get(String::New("bordersRaw"))), obj->getBorders());
- fillFontState(Handle<Object>::Cast(v8Obj->Get(String::New("font"))), obj->getFont());
-}
-
-
-Handle<ObjectTemplate> V8Templates::getLabelFieldStateTemplate()
-{
- return getControlFieldStateTemplate();
-}
-
-Handle<Object> V8Templates::newLabelFieldState()
-{
- return newControlFieldState();
-}
-
-void V8Templates::fillLabelFieldState(Handle<Object> v8Obj, LabelFieldState *obj)
-{
- fillControlFieldState(v8Obj, obj);
-}
-
-
-Handle<ObjectTemplate> V8Templates::getButtonFieldStateTemplate()
-{
- return getControlFieldStateTemplate();
-}
-
-Handle<Object> V8Templates::newButtonFieldState()
-{
- return newControlFieldState();
-}
-
-void V8Templates::fillButtonFieldState(Handle<Object> v8Obj, ButtonFieldState *obj)
-{
- fillControlFieldState(v8Obj, obj);
-}
-
-
-Handle<ObjectTemplate> V8Templates::getEditFieldStateTemplate()
-{
- return getControlFieldStateTemplate();
-}
-
-Handle<Object> V8Templates::newEditFieldState()
-{
- return newControlFieldState();
-}
-
-void V8Templates::fillEditFieldState(Handle<Object> v8Obj, EditFieldState *obj)
-{
- fillControlFieldState(v8Obj, obj);
-}
-
-
-Handle<ObjectTemplate> V8Templates::getIconFieldStateTemplate()
-{
- return getFieldStateTemplate();
-}
-
-Handle<Object> V8Templates::newIconFieldState()
-{
- return newFieldState();
-}
-
-void V8Templates::fillIconFieldState(Handle<Object> v8Obj, IconFieldState *obj)
-{
- fillFieldState(v8Obj, obj);
-}
-
-
-Handle<ObjectTemplate> V8Templates::getImageFieldStateTemplate()
-{
- return getFieldStateTemplate();
-}
-
-Handle<Object> V8Templates::newImageFieldState()
-{
- return newFieldState();
-}
-
-void V8Templates::fillImageFieldState(Handle<Object> v8Obj, ImageFieldState *obj)
-{
- fillFieldState(v8Obj, obj);
-}
-
-
-int V8Templates::numOfTextFieldStateInternalFields()
-{
- return 1;
-}
-
-Handle<ObjectTemplate> V8Templates::getTextFieldStateTemplate()
-{
- HandleScope scope;
-
- if (!textFieldStateTemplate.IsEmpty())
- return textFieldStateTemplate;
-
- Handle<ObjectTemplate> templ = ObjectTemplate::New();
- templ->SetInternalFieldCount(numOfTextFieldStateInternalFields());
- AddFieldStateAcessors(templ);
- AddTextFieldStateAcessors(templ);
- addTextFieldStateTemplateFields(templ);
-
- textFieldStateTemplate = Persistent<ObjectTemplate>::New(templ);
-
- return textFieldStateTemplate;
-}
-
-void V8Templates::addTextFieldStateTemplateFields(Handle<ObjectTemplate> &templ)
-{
-}
-
-Handle<Object> V8Templates::newTextFieldState()
-{
- HandleScope scope;
-
- Handle<Object> obj = getTextFieldStateTemplate()->NewInstance();
- obj->Set(String::New("bordersRaw"), newBorderState(), ReadOnly);
- obj->Set(String::New("font"), newFontState(), ReadOnly);
-
- return scope.Close(obj);
-}
-
-void V8Templates::fillTextFieldState(Handle<Object> v8Obj, TextFieldState *obj)
-{
- HandleScope scope;
-
- _ASSERT(!v8Obj.IsEmpty());
-
- v8Obj->SetInternalField(0, External::New(obj));
- fillBorderState(Handle<Object>::Cast(v8Obj->Get(String::New("bordersRaw"))), obj->getBorders());
- fillFontState(Handle<Object>::Cast(v8Obj->Get(String::New("font"))), obj->getFont());
-}
-
-
-int V8Templates::numOfFontStateInternalFields()
-{
- return 1;
-}
-
-Handle<ObjectTemplate> V8Templates::getFontStateTemplate()
-{
- HandleScope scope;
-
- if (!fontStateTemplate.IsEmpty())
- return fontStateTemplate;
-
- Handle<ObjectTemplate> templ = ObjectTemplate::New();
- templ->SetInternalFieldCount(numOfFontStateInternalFields());
- AddFontStateAcessors(templ);
- addFontStateTemplateFields(templ);
-
- fontStateTemplate = Persistent<ObjectTemplate>::New(templ);
-
- return fontStateTemplate;
-}
-
-void V8Templates::addFontStateTemplateFields(Handle<ObjectTemplate> &templ)
-{
-}
-
-Handle<Object> V8Templates::newFontState()
-{
- HandleScope scope;
-
- Handle<Object> obj = getFontStateTemplate()->NewInstance();
-
- return scope.Close(obj);
-}
-
-void V8Templates::fillFontState(Handle<Object> v8Obj, FontState *obj)
-{
- HandleScope scope;
-
- _ASSERT(!v8Obj.IsEmpty());
-
- v8Obj->SetInternalField(0, External::New(obj));
-}
-
-
-int V8Templates::numOfBorderStateInternalFields()
-{
- return 1;
-}
-
-Handle<ObjectTemplate> V8Templates::getBorderStateTemplate()
-{
- HandleScope scope;
-
- if (!borderStateTemplate.IsEmpty())
- return borderStateTemplate;
-
- Handle<ObjectTemplate> templ = ObjectTemplate::New();
- templ->SetInternalFieldCount(numOfBorderStateInternalFields());
- AddBorderStateAcessors(templ);
- addBorderStateTemplateFields(templ);
-
- borderStateTemplate = Persistent<ObjectTemplate>::New(templ);
-
- return borderStateTemplate;
-}
-
-void V8Templates::addBorderStateTemplateFields(Handle<ObjectTemplate> &templ)
-{
-}
-
-Handle<Object> V8Templates::newBorderState()
-{
- HandleScope scope;
-
- Handle<Object> obj = getBorderStateTemplate()->NewInstance();
-
- return scope.Close(obj);
-}
-
-void V8Templates::fillBorderState(Handle<Object> v8Obj, BorderState *obj)
-{
- HandleScope scope;
-
- _ASSERT(!v8Obj.IsEmpty());
-
- v8Obj->SetInternalField(0, External::New(obj));
-}
-
-
-int V8Templates::numOfSkinOptionInternalFields()
-{
- return 1;
-}
-
-Handle<ObjectTemplate> V8Templates::getSkinOptionTemplate()
-{
- HandleScope scope;
-
- if (!skinOptionTemplate.IsEmpty())
- return skinOptionTemplate;
-
- Handle<ObjectTemplate> templ = ObjectTemplate::New();
- templ->SetInternalFieldCount(numOfSkinOptionInternalFields());
- AddSkinOptionAcessors(templ);
- addSkinOptionTemplateFields(templ);
-
- skinOptionTemplate = Persistent<ObjectTemplate>::New(templ);
-
- return skinOptionTemplate;
-}
-
-void V8Templates::addSkinOptionTemplateFields(Handle<ObjectTemplate> &templ)
-{
-}
-
-Handle<Object> V8Templates::newSkinOption()
-{
- HandleScope scope;
-
- Handle<Object> obj = getSkinOptionTemplate()->NewInstance();
-
- return scope.Close(obj);
-}
-
-void V8Templates::fillSkinOption(Handle<Object> v8Obj, SkinOption *obj)
-{
- HandleScope scope;
-
- _ASSERT(!v8Obj.IsEmpty());
-
- v8Obj->SetInternalField(0, External::New(obj));
-}
-
-
diff --git a/plugins/Skins/SkinLib/V8Templates.h b/plugins/Skins/SkinLib/V8Templates.h deleted file mode 100644 index 38590fe844..0000000000 --- a/plugins/Skins/SkinLib/V8Templates.h +++ /dev/null @@ -1,114 +0,0 @@ -#ifndef __V8_TEMPLATES_H__
-# define __V8_TEMPLATES_H__
-
-#include <v8.h>
-#include "DialogState.h"
-#include "FieldState.h"
-#include "ControlFieldState.h"
-#include "LabelFieldState.h"
-#include "ButtonFieldState.h"
-#include "EditFieldState.h"
-#include "IconFieldState.h"
-#include "ImageFieldState.h"
-#include "TextFieldState.h"
-#include "FontState.h"
-#include "BorderState.h"
-#include "SkinOption.h"
-
-
-class V8Templates
-{
-public:
- V8Templates();
- virtual ~V8Templates();
-
- virtual v8::Handle<v8::ObjectTemplate> getGlobalTemplate();
-
- virtual v8::Handle<v8::ObjectTemplate> getDialogStateTemplate();
- virtual v8::Handle<v8::Object> newDialogState();
- virtual void fillDialogState(v8::Handle<v8::Object> v8Obj, DialogState *obj);
-
- virtual v8::Handle<v8::ObjectTemplate> getFieldStateTemplate();
- virtual v8::Handle<v8::Object> newFieldState();
- virtual void fillFieldState(v8::Handle<v8::Object> v8Obj, FieldState *obj);
-
- virtual v8::Handle<v8::ObjectTemplate> getControlFieldStateTemplate();
- virtual v8::Handle<v8::Object> newControlFieldState();
- virtual void fillControlFieldState(v8::Handle<v8::Object> v8Obj, ControlFieldState *obj);
-
- virtual v8::Handle<v8::ObjectTemplate> getLabelFieldStateTemplate();
- virtual v8::Handle<v8::Object> newLabelFieldState();
- virtual void fillLabelFieldState(v8::Handle<v8::Object> v8Obj, LabelFieldState *obj);
-
- virtual v8::Handle<v8::ObjectTemplate> getButtonFieldStateTemplate();
- virtual v8::Handle<v8::Object> newButtonFieldState();
- virtual void fillButtonFieldState(v8::Handle<v8::Object> v8Obj, ButtonFieldState *obj);
-
- virtual v8::Handle<v8::ObjectTemplate> getEditFieldStateTemplate();
- virtual v8::Handle<v8::Object> newEditFieldState();
- virtual void fillEditFieldState(v8::Handle<v8::Object> v8Obj, EditFieldState *obj);
-
- virtual v8::Handle<v8::ObjectTemplate> getIconFieldStateTemplate();
- virtual v8::Handle<v8::Object> newIconFieldState();
- virtual void fillIconFieldState(v8::Handle<v8::Object> v8Obj, IconFieldState *obj);
-
- virtual v8::Handle<v8::ObjectTemplate> getImageFieldStateTemplate();
- virtual v8::Handle<v8::Object> newImageFieldState();
- virtual void fillImageFieldState(v8::Handle<v8::Object> v8Obj, ImageFieldState *obj);
-
- virtual v8::Handle<v8::ObjectTemplate> getTextFieldStateTemplate();
- virtual v8::Handle<v8::Object> newTextFieldState();
- virtual void fillTextFieldState(v8::Handle<v8::Object> v8Obj, TextFieldState *obj);
-
- virtual v8::Handle<v8::ObjectTemplate> getFontStateTemplate();
- virtual v8::Handle<v8::Object> newFontState();
- virtual void fillFontState(v8::Handle<v8::Object> v8Obj, FontState *obj);
-
- virtual v8::Handle<v8::ObjectTemplate> getBorderStateTemplate();
- virtual v8::Handle<v8::Object> newBorderState();
- virtual void fillBorderState(v8::Handle<v8::Object> v8Obj, BorderState *obj);
-
- virtual v8::Handle<v8::ObjectTemplate> getSkinOptionTemplate();
- virtual v8::Handle<v8::Object> newSkinOption();
- virtual void fillSkinOption(v8::Handle<v8::Object> v8Obj, SkinOption *obj);
-
-
-private:
- v8::Persistent<v8::ObjectTemplate> globalTemplate;
- v8::Persistent<v8::ObjectTemplate> dialogStateTemplate;
- v8::Persistent<v8::ObjectTemplate> fieldStateTemplate;
- v8::Persistent<v8::ObjectTemplate> controlFieldStateTemplate;
- v8::Persistent<v8::ObjectTemplate> textFieldStateTemplate;
- v8::Persistent<v8::ObjectTemplate> fontStateTemplate;
- v8::Persistent<v8::ObjectTemplate> borderStateTemplate;
- v8::Persistent<v8::ObjectTemplate> skinOptionTemplate;
-
-protected:
- virtual void addGlobalTemplateFields(v8::Handle<v8::ObjectTemplate> &templ);
-
- virtual int numOfDialogStateInternalFields();
- virtual void addDialogStateTemplateFields(v8::Handle<v8::ObjectTemplate> &templ);
-
- virtual int numOfFieldStateInternalFields();
- virtual void addFieldStateTemplateFields(v8::Handle<v8::ObjectTemplate> &templ);
-
- virtual int numOfControlFieldStateInternalFields();
- virtual void addControlFieldStateTemplateFields(v8::Handle<v8::ObjectTemplate> &templ);
-
- virtual int numOfTextFieldStateInternalFields();
- virtual void addTextFieldStateTemplateFields(v8::Handle<v8::ObjectTemplate> &templ);
-
- virtual int numOfFontStateInternalFields();
- virtual void addFontStateTemplateFields(v8::Handle<v8::ObjectTemplate> &templ);
-
- virtual int numOfBorderStateInternalFields();
- virtual void addBorderStateTemplateFields(v8::Handle<v8::ObjectTemplate> &templ);
-
- virtual int numOfSkinOptionInternalFields();
- virtual void addSkinOptionTemplateFields(v8::Handle<v8::ObjectTemplate> &templ);
-
-};
-
-
-
-#endif // __V8_TEMPLATES_H__
diff --git a/plugins/Skins/SkinLib/V8Wrappers.cpp b/plugins/Skins/SkinLib/V8Wrappers.cpp deleted file mode 100644 index 9384e3c8ad..0000000000 --- a/plugins/Skins/SkinLib/V8Wrappers.cpp +++ /dev/null @@ -1,385 +0,0 @@ -#include "globals.h"
-#include "V8Wrappers.h"
-
-#include <utf8_helpers.h>
-
-
-using namespace v8;
-
-
-#ifdef UNICODE
-# define V8_TCHAR uint16_t
-#else
-# define V8_TCHAR char
-#endif
-
-
-
-static Handle<Value> IsEmptyCallback(const Arguments& args)
-{
- HandleScope scope;
-
- if (args.Length() < 1)
- return scope.Close( Undefined() );
-
- for(int i = 0; i < args.Length(); i++)
- {
- Local<Value> arg = args[0];
-
- if (arg.IsEmpty() || arg->IsNull() || arg->IsUndefined())
- {
- return scope.Close( Boolean::New(true) );
- }
- else if (arg->IsObject())
- {
- Local<Object> self = Local<Object>::Cast(arg);
- if (self->InternalFieldCount() < 1)
- continue;
-
- Local<External> wrap = Local<External>::Cast(self->GetInternalField(0));
- FieldState *field = (FieldState *) wrap->Value();
- if (field == NULL)
- continue;
-
- if (field->isEmpty())
- return scope.Close( Boolean::New(true) );
- }
- else if (arg->IsString())
- {
- Local<String> str = Local<String>::Cast(arg);
- if (str->Length() <= 0)
- return scope.Close( Boolean::New(true) );
- }
- }
-
- return scope.Close( Boolean::New(false) );
-}
-
-static Handle<Value> RGBCallback(const Arguments& args)
-{
- HandleScope scope;
-
- if (args.Length() != 3)
- return scope.Close( Undefined() );
-
- COLORREF color = RGB(args[0]->Int32Value(), args[1]->Int32Value(), args[2]->Int32Value());
- return scope.Close( Int32::New(color) );
-}
-
-static Handle<Value> AlertCallback(const Arguments& args)
-{
- HandleScope scope;
-
- if (args.Length() < 1)
- return scope.Close( Boolean::New(false) );
-
- Local<Value> arg = args[0];
- String::Utf8Value utf8_value(arg->ToDetailString());
-
- char *tmp = *utf8_value;
-// TODO MessageBox(NULL, Utf8ToTchar(*utf8_value), _T("Skin alert"), MB_OK);
-
- return scope.Close( Boolean::New(true) );
-}
-
-void V8Wrappers::addGlobalTemplateFields(Handle<ObjectTemplate> &templ)
-{
- HandleScope scope;
-
- templ->Set(String::New("IsEmpty"), FunctionTemplate::New(&IsEmptyCallback));
- templ->Set(String::New("RGB"), FunctionTemplate::New(&RGBCallback));
- templ->Set(String::New("alert"), FunctionTemplate::New(&AlertCallback));
-}
-
-
-Handle<Object> V8Wrappers::newState(FieldType type)
-{
- switch(type)
- {
- case SIMPLE_TEXT:
- return newTextFieldState();
- case SIMPLE_IMAGE:
- return newImageFieldState();
- case SIMPLE_ICON:
- return newIconFieldState();
- case CONTROL_LABEL:
- return newLabelFieldState();
- case CONTROL_BUTTON:
- return newButtonFieldState();
- case CONTROL_EDIT:
- return newEditFieldState();
- }
- throw "Unknown type";
-}
-
-void V8Wrappers::fillState(Handle<Object> obj, FieldState *state)
-{
- switch(state->getField()->getType())
- {
- case SIMPLE_TEXT:
- fillTextFieldState(obj, (TextFieldState *) state);
- break;
- case SIMPLE_IMAGE:
- fillImageFieldState(obj, (ImageFieldState *) state);
- break;
- case SIMPLE_ICON:
- fillIconFieldState(obj, (IconFieldState *) state);
- break;
- case CONTROL_LABEL:
- fillLabelFieldState(obj, (LabelFieldState *) state);
- break;
- case CONTROL_BUTTON:
- fillButtonFieldState(obj, (ButtonFieldState *) state);
- break;
- case CONTROL_EDIT:
- fillEditFieldState(obj, (EditFieldState *) state);
- break;
- default:
- throw "Unknown type";
- }
-}
-
-static Handle<Value> Get_SkinOption_value(SkinOption *opt)
-{
- HandleScope scope;
-
- if (opt == NULL)
- return scope.Close( Undefined() );
-
- switch (opt->getType())
- {
- case CHECKBOX: return scope.Close( Boolean::New(opt->getValueCheckbox()) );
- case NUMBER: return scope.Close( Int32::New(opt->getValueNumber()) );
- case TEXT: return scope.Close( String::New((const V8_TCHAR *) opt->getValueText()) );
- }
-
- return scope.Close( Undefined() );
-}
-
-static Handle<Value> Get_Options_Fields(Local<String> aName, const AccessorInfo &info)
-{
- HandleScope scope;
-
- Local<Object> self = info.Holder();
- Local<External> wrap = Local<External>::Cast(self->GetInternalField(0));
- if (wrap.IsEmpty())
- return scope.Close( Undefined() );
-
- SkinOptions *opts = (SkinOptions *) wrap->Value();
- if (opts == NULL)
- return scope.Close( Undefined() );
-
- String::AsciiValue name(aName);
- if (name.length() <= 0)
- return scope.Close( Undefined() );
-
- bool configure = self->GetInternalField(1)->BooleanValue();
- if (configure)
- {
- SkinOption * opt = opts->getOption(*name);
-
- if (opt == NULL)
- {
- opt = new SkinOption(*name);
- opts->addOption(opt);
- }
-
- wrap = Local<External>::Cast(info.Data());
- if (wrap.IsEmpty())
- return scope.Close( Undefined() );
-
- V8Wrappers *wrappers = (V8Wrappers *) wrap->Value();
- if (wrappers == NULL)
- return scope.Close( Undefined() );
-
- Handle<Object> ret = wrappers->newSkinOption();
- wrappers->fillSkinOption(ret, opt);
- return scope.Close( ret );
- }
- else
- {
- SkinOption * opt = opts->getOption(*name);
- return scope.Close( Get_SkinOption_value(opt) );
- }
-}
-
-Handle<ObjectTemplate> V8Wrappers::getOptionsTemplate()
-{
- HandleScope scope;
-
- if (!optionsTemplate.IsEmpty())
- return optionsTemplate;
-
- Handle<ObjectTemplate> templ = ObjectTemplate::New();
- templ->SetInternalFieldCount(2);
- templ->SetNamedPropertyHandler(&Get_Options_Fields, 0, 0, 0, 0, External::New(this));
-
- optionsTemplate = Persistent<ObjectTemplate>::New(templ);
-
- return optionsTemplate;
-}
-
-Handle<Object> V8Wrappers::newOptions()
-{
- HandleScope scope;
-
- Handle<Object> obj = getOptionsTemplate()->NewInstance();
-
- return scope.Close(obj);
-}
-
-void V8Wrappers::fillOptions(Handle<Object> v8Obj, SkinOptions *obj, bool configure)
-{
- HandleScope scope;
-
- _ASSERT(!v8Obj.IsEmpty());
-
- v8Obj->SetInternalField(0, External::New(obj));
- v8Obj->SetInternalField(1, Boolean::New(configure));
-}
-
-
-static Handle<Value> Get_SkinOption_value(Local<String> property, const AccessorInfo &info)
-{
- HandleScope scope;
-
- Local<Object> self = info.Holder();
- Local<External> wrap = Local<External>::Cast(self->GetInternalField(0));
- if (wrap.IsEmpty())
- return scope.Close( Undefined() );
-
- return scope.Close( Get_SkinOption_value((SkinOption *) wrap->Value()) );
-}
-
-static void Set_SkinOption_value(Local<String> property, Local<Value> value, const AccessorInfo& info)
-{
- HandleScope scope;
-
- Local<Object> self = info.Holder();
- Local<External> wrap = Local<External>::Cast(self->GetInternalField(0));
- if (wrap.IsEmpty())
- return;
-
- SkinOption *opt = (SkinOption *) wrap->Value();
- if (opt == NULL)
- return;
-
- switch (opt->getType())
- {
- case CHECKBOX:
- if (!value.IsEmpty() && value->IsBoolean())
- opt->setValueCheckbox(value->BooleanValue());
- break;
- case NUMBER:
- if (!value.IsEmpty() && value->IsNumber())
- opt->setValueNumber(value->Int32Value());
- break;
- case TEXT:
- if (!value.IsEmpty() && value->IsString())
- opt->setValueText(Utf8ToTchar(*String::Utf8Value(value)));
- break;
- }
-}
-
-void V8Wrappers::addSkinOptionTemplateFields(Handle<ObjectTemplate> &templ)
-{
- HandleScope scope;
-
- templ->SetAccessor(String::New("value"), Get_SkinOption_value, Set_SkinOption_value);
-}
-
-
-static Handle<Value> Get_DialogInfo_Fields(Local<String> aName, const AccessorInfo &info)
-{
- HandleScope scope;
-
- Local<Object> self = info.Holder();
- Local<External> wrap = Local<External>::Cast(self->GetInternalField(0));
- if (wrap.IsEmpty())
- return scope.Close( Undefined() );
-
- DialogInfo *dialogInfo = (DialogInfo *) wrap->Value();
- if (dialogInfo == NULL)
- return scope.Close( Undefined() );
-
- String::AsciiValue name(aName);
- if (name.length() <= 0)
- return scope.Close( Undefined() );
-
- wrap = Local<External>::Cast(info.Data());
- if (wrap.IsEmpty())
- return scope.Close( Undefined() );
-
- V8Wrappers *wrappers = (V8Wrappers *) wrap->Value();
- if (wrappers == NULL)
- return scope.Close( Undefined() );
-
- Local<String> aPrefix = Local<String>::Cast(self->GetInternalField(1));
- if (aPrefix.IsEmpty())
- return scope.Close( Undefined() );
-
- String::AsciiValue prefix(aPrefix);
-
- std::string var;
- var += *prefix;
- var += *name;
-
- switch(dialogInfo->getType(var.c_str()))
- {
- case TYPE_VARIABLE:
- {
- var += '.';
-
- Handle<Object> ret = wrappers->newDialogInfo();
- wrappers->fillDialogInfo(ret, dialogInfo, var.c_str());
- return scope.Close( ret );
- }
- case TYPE_INT:
- return scope.Close( Int32::New(dialogInfo->getAsInt(var.c_str())) );
- case TYPE_DOUBLE:
- return scope.Close( Number::New(dialogInfo->getAsDouble(var.c_str())) );
- case TYPE_BOOL:
- return scope.Close( Boolean::New(dialogInfo->getAsBool(var.c_str())) );
- case TYPE_STRING:
- return scope.Close( String::New((const V8_TCHAR *) dialogInfo->getAsString(var.c_str())) );
- case UNKNOWN:
- default:
- return scope.Close( Undefined() );
- }
-}
-
-Handle<ObjectTemplate> V8Wrappers::getDialogInfoTemplate()
-{
- HandleScope scope;
-
- if (!dialogInfoTemplate.IsEmpty())
- return dialogInfoTemplate;
-
- Handle<ObjectTemplate> templ = ObjectTemplate::New();
- templ->SetInternalFieldCount(2);
- templ->SetNamedPropertyHandler(&Get_DialogInfo_Fields, 0, 0, 0, 0, External::New(this));
-
- dialogInfoTemplate = Persistent<ObjectTemplate>::New(templ);
-
- return dialogInfoTemplate;
-}
-
-Handle<Object> V8Wrappers::newDialogInfo()
-{
- HandleScope scope;
-
- Handle<Object> obj = getDialogInfoTemplate()->NewInstance();
-
- return scope.Close(obj);
-}
-
-void V8Wrappers::fillDialogInfo(Handle<Object> v8Obj, DialogInfo *obj, const char *prefix)
-{
- HandleScope scope;
-
- _ASSERT(!v8Obj.IsEmpty());
-
- v8Obj->SetInternalField(0, External::New(obj));
-
- v8Obj->SetInternalField(1, String::New(prefix != NULL ? prefix : ""));
-}
diff --git a/plugins/Skins/SkinLib/V8Wrappers.h b/plugins/Skins/SkinLib/V8Wrappers.h deleted file mode 100644 index b2c5eb2b92..0000000000 --- a/plugins/Skins/SkinLib/V8Wrappers.h +++ /dev/null @@ -1,35 +0,0 @@ -#ifndef __V8_WRAPPERS_H__
-# define __V8_WRAPPERS_H__
-
-#include "V8Templates.h"
-#include "SkinOptions.h"
-
-
-class V8Wrappers : public V8Templates
-{
-public:
- virtual v8::Handle<v8::Object> newState(FieldType type);
- virtual void fillState(v8::Handle<v8::Object> obj, FieldState *state);
-
- virtual v8::Handle<v8::ObjectTemplate> getOptionsTemplate();
- virtual v8::Handle<v8::Object> newOptions();
- virtual void fillOptions(v8::Handle<v8::Object> v8Obj, SkinOptions *obj, bool configure);
-
- virtual v8::Handle<v8::ObjectTemplate> getDialogInfoTemplate();
- virtual v8::Handle<v8::Object> newDialogInfo();
- virtual void fillDialogInfo(v8::Handle<v8::Object> v8Obj, DialogInfo *obj, const char *prefix = NULL);
-
-private:
- v8::Persistent<v8::ObjectTemplate> optionsTemplate;
- v8::Persistent<v8::ObjectTemplate> dialogInfoTemplate;
-
-protected:
- virtual void addGlobalTemplateFields(v8::Handle<v8::ObjectTemplate> &templ);
-
- virtual void addSkinOptionTemplateFields(v8::Handle<v8::ObjectTemplate> &templ);
-
-};
-
-
-
-#endif // __V8_WRAPPERS_H__
diff --git a/plugins/Skins/SkinLib/globals.h b/plugins/Skins/SkinLib/globals.h deleted file mode 100644 index 18d6ffdcfc..0000000000 --- a/plugins/Skins/SkinLib/globals.h +++ /dev/null @@ -1,20 +0,0 @@ -#ifndef __GLOBALS_H__
-# define __GLOBALS_H__
-
-#ifdef DEBUG
-#define _CRTDBG_MAP_ALLOC
-#include <stdlib.h>
-#include <crtdbg.h>
-#endif
-
-#include <windows.h>
-#include <newpluginapi.h>
-#include <m_system.h>
-#include <m_utils.h>
-#include <utf8_helpers.h>
-
-
-#define MAX_REGS(_X_) ( sizeof(_X_) / sizeof(_X_[0]) )
-
-
-#endif // __GLOBALS_H__
\ No newline at end of file diff --git a/plugins/Skins/SkinLib/scope.h b/plugins/Skins/SkinLib/scope.h deleted file mode 100644 index 2fad797b88..0000000000 --- a/plugins/Skins/SkinLib/scope.h +++ /dev/null @@ -1,37 +0,0 @@ -#ifndef __PTR_H__
-# define __PTR_H__
-
-
-template<class T>
-class scope
-{
-public:
- scope() : p(NULL) {}
- scope(T t) : p(t) {}
- ~scope() { release(); }
-
- void release()
- {
- if (p != NULL)
- delete p;
- p = NULL;
- }
-
- T operator=(T t) { release(); p = t; return t; }
- T operator->() const { return p; }
- operator T() const { return p; }
-
- T detach()
- {
- T ret = p;
- p = NULL;
- return ret;
- }
-
-private:
- T p;
-};
-
-
-
-#endif // __PTR_H__
diff --git a/plugins/Skins/SkinLib/tstring.h b/plugins/Skins/SkinLib/tstring.h deleted file mode 100644 index e6017176c5..0000000000 --- a/plugins/Skins/SkinLib/tstring.h +++ /dev/null @@ -1,13 +0,0 @@ -#ifndef __TSTRING_H__
-# define __TSTRING_H__
-
-#include <tchar.h>
-#include <string>
-
-
-namespace std {
- typedef basic_string<TCHAR, char_traits<TCHAR>, allocator<TCHAR>> tstring;
-}
-
-
-#endif // __TSTRING_H__
diff --git a/plugins/Skins/commons.h b/plugins/Skins/commons.h deleted file mode 100644 index b31dbbebd2..0000000000 --- a/plugins/Skins/commons.h +++ /dev/null @@ -1,119 +0,0 @@ -/*
-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 __COMMONS_H__
-# define __COMMONS_H__
-
-
-#define OEMRESOURCE
-#define _WIN32_WINNT 0x0400
-#include <windows.h>
-#include <tchar.h>
-#include <stdio.h>
-#include <time.h>
-#include <commctrl.h>
-
-
-// Disable "...truncated to '255' characters in the debug information" warnings
-#pragma warning(disable: 4786)
-
-#include <vector>
-#include <string>
-using namespace std;
-
-
-// Miranda headers
-#define MIRANDA_VER 0x0800
-#include <win2k.h>
-#include <newpluginapi.h>
-#include <m_system.h>
-#include <m_system_cpp.h>
-#include <m_protocols.h>
-#include <m_protosvc.h>
-#include <m_clist.h>
-#include <m_contacts.h>
-#include <m_langpack.h>
-#include <m_database.h>
-#include <m_options.h>
-#include <m_utils.h>
-#include <m_updater.h>
-#include <m_metacontacts.h>
-#include <m_popup.h>
-#include <m_history.h>
-#include <m_message.h>
-#include <m_folders.h>
-#include <m_icolib.h>
-#include <m_imgsrvc.h>
-#include <m_netlib.h>
-#include <m_fontservice.h>
-
-#include <mir_memory.h>
-#include <mir_options.h>
-#include <mir_icons.h>
-#include <mir_buffer.h>
-#include <utf8_helpers.h>
-
-#include "resource.h"
-#include "m_skins.h"
-#include "m_skins_cpp.h"
-#include "options.h"
-#include "MirandaSkinnedDialog.h"
-#include "MirandaField.h"
-#include "MirandaTextField.h"
-#include "MirandaIconField.h"
-#include "MirandaImageField.h"
-
-
-#define MODULE_NAME "Skins"
-
-#define DEFAULT_SKIN_NAME "Default"
-#define SKIN_EXTENSION "msk"
-
-
-// Global Variables
-extern HINSTANCE hInst;
-extern PLUGINLINK *pluginLink;
-extern FI_INTERFACE *fei;
-extern HANDLE hChangedEvent;
-
-#define MAX_REGS(_A_) ( sizeof(_A_) / sizeof(_A_[0]) )
-#define MIR_FREE(_X_) if (_X_ != NULL) { mir_free(_X_); _X_ = NULL; }
-
-
-extern TCHAR skinsFolder[1024];
-
-extern std::vector<MirandaSkinnedDialog *> dlgs;
-
-void getSkinnedDialogFilename(std::tstring &ret, const TCHAR *skin, const char *dialogName);
-void getAvaiableSkins(std::vector<std::tstring> &skins, MirandaSkinnedDialog *dlg = NULL);
-
-
-// See if a protocol service exists
-static __inline int ProtoServiceExists(const char *szModule,const char *szService)
-{
- char str[MAXMODULELABELLENGTH];
- strcpy(str,szModule);
- strcat(str,szService);
- return ServiceExists(str);
-}
-
-
-
-#endif // __COMMONS_H__
diff --git a/plugins/Skins/libs/v8-debug.h b/plugins/Skins/libs/v8-debug.h deleted file mode 100644 index 7da4f98a05..0000000000 --- a/plugins/Skins/libs/v8-debug.h +++ /dev/null @@ -1,384 +0,0 @@ -// Copyright 2008 the V8 project authors. All rights reserved.
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-// * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-// * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided
-// with the distribution.
-// * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived
-// from this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-#ifndef V8_V8_DEBUG_H_
-#define V8_V8_DEBUG_H_
-
-#include "v8.h"
-
-#ifdef _WIN32
-typedef int int32_t;
-typedef unsigned int uint32_t;
-typedef unsigned short uint16_t; // NOLINT
-typedef long long int64_t; // NOLINT
-
-// Setup for Windows DLL export/import. See v8.h in this directory for
-// information on how to build/use V8 as a DLL.
-#if defined(BUILDING_V8_SHARED) && defined(USING_V8_SHARED)
-#error both BUILDING_V8_SHARED and USING_V8_SHARED are set - please check the\
- build configuration to ensure that at most one of these is set
-#endif
-
-#ifdef BUILDING_V8_SHARED
-#define EXPORT __declspec(dllexport)
-#elif USING_V8_SHARED
-#define EXPORT __declspec(dllimport)
-#else
-#define EXPORT
-#endif
-
-#else // _WIN32
-
-// Setup for Linux shared library export. See v8.h in this directory for
-// information on how to build/use V8 as shared library.
-#if defined(__GNUC__) && (__GNUC__ >= 4) && defined(V8_SHARED)
-#define EXPORT __attribute__ ((visibility("default")))
-#else // defined(__GNUC__) && (__GNUC__ >= 4)
-#define EXPORT
-#endif // defined(__GNUC__) && (__GNUC__ >= 4)
-
-#endif // _WIN32
-
-
-/**
- * Debugger support for the V8 JavaScript engine.
- */
-namespace v8 {
-
-// Debug events which can occur in the V8 JavaScript engine.
-enum DebugEvent {
- Break = 1,
- Exception = 2,
- NewFunction = 3,
- BeforeCompile = 4,
- AfterCompile = 5,
- ScriptCollected = 6,
- BreakForCommand = 7
-};
-
-
-class EXPORT Debug {
- public:
- /**
- * A client object passed to the v8 debugger whose ownership will be taken by
- * it. v8 is always responsible for deleting the object.
- */
- class ClientData {
- public:
- virtual ~ClientData() {}
- };
-
-
- /**
- * A message object passed to the debug message handler.
- */
- class Message {
- public:
- /**
- * Check type of message.
- */
- virtual bool IsEvent() const = 0;
- virtual bool IsResponse() const = 0;
- virtual DebugEvent GetEvent() const = 0;
-
- /**
- * Indicate whether this is a response to a continue command which will
- * start the VM running after this is processed.
- */
- virtual bool WillStartRunning() const = 0;
-
- /**
- * Access to execution state and event data. Don't store these cross
- * callbacks as their content becomes invalid. These objects are from the
- * debugger event that started the debug message loop.
- */
- virtual Handle<Object> GetExecutionState() const = 0;
- virtual Handle<Object> GetEventData() const = 0;
-
- /**
- * Get the debugger protocol JSON.
- */
- virtual Handle<String> GetJSON() const = 0;
-
- /**
- * Get the context active when the debug event happened. Note this is not
- * the current active context as the JavaScript part of the debugger is
- * running in it's own context which is entered at this point.
- */
- virtual Handle<Context> GetEventContext() const = 0;
-
- /**
- * Client data passed with the corresponding request if any. This is the
- * client_data data value passed into Debug::SendCommand along with the
- * request that led to the message or NULL if the message is an event. The
- * debugger takes ownership of the data and will delete it even if there is
- * no message handler.
- */
- virtual ClientData* GetClientData() const = 0;
-
- virtual ~Message() {}
- };
-
-
- /**
- * An event details object passed to the debug event listener.
- */
- class EventDetails {
- public:
- /**
- * Event type.
- */
- virtual DebugEvent GetEvent() const = 0;
-
- /**
- * Access to execution state and event data of the debug event. Don't store
- * these cross callbacks as their content becomes invalid.
- */
- virtual Handle<Object> GetExecutionState() const = 0;
- virtual Handle<Object> GetEventData() const = 0;
-
- /**
- * Get the context active when the debug event happened. Note this is not
- * the current active context as the JavaScript part of the debugger is
- * running in it's own context which is entered at this point.
- */
- virtual Handle<Context> GetEventContext() const = 0;
-
- /**
- * Client data passed with the corresponding callbak whet it was registered.
- */
- virtual Handle<Value> GetCallbackData() const = 0;
-
- /**
- * Client data passed to DebugBreakForCommand function. The
- * debugger takes ownership of the data and will delete it even if
- * there is no message handler.
- */
- virtual ClientData* GetClientData() const = 0;
-
- virtual ~EventDetails() {}
- };
-
-
- /**
- * Debug event callback function.
- *
- * \param event the type of the debug event that triggered the callback
- * (enum DebugEvent)
- * \param exec_state execution state (JavaScript object)
- * \param event_data event specific data (JavaScript object)
- * \param data value passed by the user to SetDebugEventListener
- */
- typedef void (*EventCallback)(DebugEvent event,
- Handle<Object> exec_state,
- Handle<Object> event_data,
- Handle<Value> data);
-
- /**
- * Debug event callback function.
- *
- * \param event_details object providing information about the debug event
- *
- * A EventCallback2 does not take possession of the event data,
- * and must not rely on the data persisting after the handler returns.
- */
- typedef void (*EventCallback2)(const EventDetails& event_details);
-
- /**
- * Debug message callback function.
- *
- * \param message the debug message handler message object
- * \param length length of the message
- * \param client_data the data value passed when registering the message handler
-
- * A MessageHandler does not take possession of the message string,
- * and must not rely on the data persisting after the handler returns.
- *
- * This message handler is deprecated. Use MessageHandler2 instead.
- */
- typedef void (*MessageHandler)(const uint16_t* message, int length,
- ClientData* client_data);
-
- /**
- * Debug message callback function.
- *
- * \param message the debug message handler message object
-
- * A MessageHandler does not take possession of the message data,
- * and must not rely on the data persisting after the handler returns.
- */
- typedef void (*MessageHandler2)(const Message& message);
-
- /**
- * Debug host dispatch callback function.
- */
- typedef void (*HostDispatchHandler)();
-
- /**
- * Callback function for the host to ensure debug messages are processed.
- */
- typedef void (*DebugMessageDispatchHandler)();
-
- // Set a C debug event listener.
- static bool SetDebugEventListener(EventCallback that,
- Handle<Value> data = Handle<Value>());
- static bool SetDebugEventListener2(EventCallback2 that,
- Handle<Value> data = Handle<Value>());
-
- // Set a JavaScript debug event listener.
- static bool SetDebugEventListener(v8::Handle<v8::Object> that,
- Handle<Value> data = Handle<Value>());
-
- // Schedule a debugger break to happen when JavaScript code is run.
- static void DebugBreak();
-
- // Remove scheduled debugger break if it has not happened yet.
- static void CancelDebugBreak();
-
- // Break execution of JavaScript (this method can be invoked from a
- // non-VM thread) for further client command execution on a VM
- // thread. Client data is then passed in EventDetails to
- // EventCallback at the moment when the VM actually stops.
- static void DebugBreakForCommand(ClientData* data = NULL);
-
- // Message based interface. The message protocol is JSON. NOTE the message
- // handler thread is not supported any more parameter must be false.
- static void SetMessageHandler(MessageHandler handler,
- bool message_handler_thread = false);
- static void SetMessageHandler2(MessageHandler2 handler);
- static void SendCommand(const uint16_t* command, int length,
- ClientData* client_data = NULL);
-
- // Dispatch interface.
- static void SetHostDispatchHandler(HostDispatchHandler handler,
- int period = 100);
-
- /**
- * Register a callback function to be called when a debug message has been
- * received and is ready to be processed. For the debug messages to be
- * processed V8 needs to be entered, and in certain embedding scenarios this
- * callback can be used to make sure V8 is entered for the debug message to
- * be processed. Note that debug messages will only be processed if there is
- * a V8 break. This can happen automatically by using the option
- * --debugger-auto-break.
- * \param provide_locker requires that V8 acquires v8::Locker for you before
- * calling handler
- */
- static void SetDebugMessageDispatchHandler(
- DebugMessageDispatchHandler handler, bool provide_locker = false);
-
- /**
- * Run a JavaScript function in the debugger.
- * \param fun the function to call
- * \param data passed as second argument to the function
- * With this call the debugger is entered and the function specified is called
- * with the execution state as the first argument. This makes it possible to
- * get access to information otherwise not available during normal JavaScript
- * execution e.g. details on stack frames. Receiver of the function call will
- * be the debugger context global object, however this is a subject to change.
- * The following example show a JavaScript function which when passed to
- * v8::Debug::Call will return the current line of JavaScript execution.
- *
- * \code
- * function frame_source_line(exec_state) {
- * return exec_state.frame(0).sourceLine();
- * }
- * \endcode
- */
- static Local<Value> Call(v8::Handle<v8::Function> fun,
- Handle<Value> data = Handle<Value>());
-
- /**
- * Returns a mirror object for the given object.
- */
- static Local<Value> GetMirror(v8::Handle<v8::Value> obj);
-
- /**
- * Enable the V8 builtin debug agent. The debugger agent will listen on the
- * supplied TCP/IP port for remote debugger connection.
- * \param name the name of the embedding application
- * \param port the TCP/IP port to listen on
- * \param wait_for_connection whether V8 should pause on a first statement
- * allowing remote debugger to connect before anything interesting happened
- */
- static bool EnableAgent(const char* name, int port,
- bool wait_for_connection = false);
-
- /**
- * Makes V8 process all pending debug messages.
- *
- * From V8 point of view all debug messages come asynchronously (e.g. from
- * remote debugger) but they all must be handled synchronously: V8 cannot
- * do 2 things at one time so normal script execution must be interrupted
- * for a while.
- *
- * Generally when message arrives V8 may be in one of 3 states:
- * 1. V8 is running script; V8 will automatically interrupt and process all
- * pending messages (however auto_break flag should be enabled);
- * 2. V8 is suspended on debug breakpoint; in this state V8 is dedicated
- * to reading and processing debug messages;
- * 3. V8 is not running at all or has called some long-working C++ function;
- * by default it means that processing of all debug message will be deferred
- * until V8 gets control again; however, embedding application may improve
- * this by manually calling this method.
- *
- * It makes sense to call this method whenever a new debug message arrived and
- * V8 is not already running. Method v8::Debug::SetDebugMessageDispatchHandler
- * should help with the former condition.
- *
- * Technically this method in many senses is equivalent to executing empty
- * script:
- * 1. It does nothing except for processing all pending debug messages.
- * 2. It should be invoked with the same precautions and from the same context
- * as V8 script would be invoked from, because:
- * a. with "evaluate" command it can do whatever normal script can do,
- * including all native calls;
- * b. no other thread should call V8 while this method is running
- * (v8::Locker may be used here).
- *
- * "Evaluate" debug command behavior currently is not specified in scope
- * of this method.
- */
- static void ProcessDebugMessages();
-
- /**
- * Debugger is running in it's own context which is entered while debugger
- * messages are being dispatched. This is an explicit getter for this
- * debugger context. Note that the content of the debugger context is subject
- * to change.
- */
- static Local<Context> GetDebugContext();
-};
-
-
-} // namespace v8
-
-
-#undef EXPORT
-
-
-#endif // V8_V8_DEBUG_H_
diff --git a/plugins/Skins/libs/v8.h b/plugins/Skins/libs/v8.h deleted file mode 100644 index 9c9edf7292..0000000000 --- a/plugins/Skins/libs/v8.h +++ /dev/null @@ -1,3686 +0,0 @@ -// Copyright 2007-2009 the V8 project authors. All rights reserved.
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-// * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-// * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following
-// disclaimer in the documentation and/or other materials provided
-// with the distribution.
-// * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived
-// from this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-/** \mainpage V8 API Reference Guide
- *
- * V8 is Google's open source JavaScript engine.
- *
- * This set of documents provides reference material generated from the
- * V8 header file, include/v8.h.
- *
- * For other documentation see http://code.google.com/apis/v8/
- */
-
-#ifndef V8_H_
-#define V8_H_
-
-#include <stdio.h>
-
-#ifdef _WIN32
-// When compiling on MinGW stdint.h is available.
-#ifdef __MINGW32__
-#include <stdint.h>
-#else // __MINGW32__
-typedef signed char int8_t;
-typedef unsigned char uint8_t;
-typedef short int16_t; // NOLINT
-typedef unsigned short uint16_t; // NOLINT
-typedef int int32_t;
-typedef unsigned int uint32_t;
-typedef __int64 int64_t;
-typedef unsigned __int64 uint64_t;
-// intptr_t and friends are defined in crtdefs.h through stdio.h.
-#endif // __MINGW32__
-
-// Setup for Windows DLL export/import. When building the V8 DLL the
-// BUILDING_V8_SHARED needs to be defined. When building a program which uses
-// the V8 DLL USING_V8_SHARED needs to be defined. When either building the V8
-// static library or building a program which uses the V8 static library neither
-// BUILDING_V8_SHARED nor USING_V8_SHARED should be defined.
-#if defined(BUILDING_V8_SHARED) && defined(USING_V8_SHARED)
-#error both BUILDING_V8_SHARED and USING_V8_SHARED are set - please check the\
- build configuration to ensure that at most one of these is set
-#endif
-
-#ifdef BUILDING_V8_SHARED
-#define V8EXPORT __declspec(dllexport)
-#elif USING_V8_SHARED
-#define V8EXPORT __declspec(dllimport)
-#else
-#define V8EXPORT
-#endif // BUILDING_V8_SHARED
-
-#else // _WIN32
-
-#include <stdint.h>
-
-// Setup for Linux shared library export. There is no need to distinguish
-// between building or using the V8 shared library, but we should not
-// export symbols when we are building a static library.
-#if defined(__GNUC__) && (__GNUC__ >= 4) && defined(V8_SHARED)
-#define V8EXPORT __attribute__ ((visibility("default")))
-#else // defined(__GNUC__) && (__GNUC__ >= 4)
-#define V8EXPORT
-#endif // defined(__GNUC__) && (__GNUC__ >= 4)
-
-#endif // _WIN32
-
-/**
- * The v8 JavaScript engine.
- */
-namespace v8 {
-
-class Context;
-class String;
-class Value;
-class Utils;
-class Number;
-class Object;
-class Array;
-class Int32;
-class Uint32;
-class External;
-class Primitive;
-class Boolean;
-class Integer;
-class Function;
-class Date;
-class ImplementationUtilities;
-class Signature;
-template <class T> class Handle;
-template <class T> class Local;
-template <class T> class Persistent;
-class FunctionTemplate;
-class ObjectTemplate;
-class Data;
-class AccessorInfo;
-class StackTrace;
-class StackFrame;
-
-namespace internal {
-
-class Arguments;
-class Object;
-class Heap;
-class Top;
-
-}
-
-
-// --- W e a k H a n d l e s
-
-
-/**
- * A weak reference callback function.
- *
- * This callback should either explicitly invoke Dispose on |object| if
- * V8 wrapper is not needed anymore, or 'revive' it by invocation of MakeWeak.
- *
- * \param object the weak global object to be reclaimed by the garbage collector
- * \param parameter the value passed in when making the weak global object
- */
-typedef void (*WeakReferenceCallback)(Persistent<Value> object,
- void* parameter);
-
-
-// --- H a n d l e s ---
-
-#define TYPE_CHECK(T, S) \
- while (false) { \
- *(static_cast<T* volatile*>(0)) = static_cast<S*>(0); \
- }
-
-/**
- * An object reference managed by the v8 garbage collector.
- *
- * All objects returned from v8 have to be tracked by the garbage
- * collector so that it knows that the objects are still alive. Also,
- * because the garbage collector may move objects, it is unsafe to
- * point directly to an object. Instead, all objects are stored in
- * handles which are known by the garbage collector and updated
- * whenever an object moves. Handles should always be passed by value
- * (except in cases like out-parameters) and they should never be
- * allocated on the heap.
- *
- * There are two types of handles: local and persistent handles.
- * Local handles are light-weight and transient and typically used in
- * local operations. They are managed by HandleScopes. Persistent
- * handles can be used when storing objects across several independent
- * operations and have to be explicitly deallocated when they're no
- * longer used.
- *
- * It is safe to extract the object stored in the handle by
- * dereferencing the handle (for instance, to extract the Object* from
- * an Handle<Object>); the value will still be governed by a handle
- * behind the scenes and the same rules apply to these values as to
- * their handles.
- */
-template <class T> class Handle {
- public:
-
- /**
- * Creates an empty handle.
- */
- inline Handle();
-
- /**
- * Creates a new handle for the specified value.
- */
- inline explicit Handle(T* val) : val_(val) { }
-
- /**
- * Creates a handle for the contents of the specified handle. This
- * constructor allows you to pass handles as arguments by value and
- * to assign between handles. However, if you try to assign between
- * incompatible handles, for instance from a Handle<String> to a
- * Handle<Number> it will cause a compiletime error. Assigning
- * between compatible handles, for instance assigning a
- * Handle<String> to a variable declared as Handle<Value>, is legal
- * because String is a subclass of Value.
- */
- template <class S> inline Handle(Handle<S> that)
- : val_(reinterpret_cast<T*>(*that)) {
- /**
- * This check fails when trying to convert between incompatible
- * handles. For example, converting from a Handle<String> to a
- * Handle<Number>.
- */
- TYPE_CHECK(T, S);
- }
-
- /**
- * Returns true if the handle is empty.
- */
- inline bool IsEmpty() const { return val_ == 0; }
-
- inline T* operator->() const { return val_; }
-
- inline T* operator*() const { return val_; }
-
- /**
- * Sets the handle to be empty. IsEmpty() will then return true.
- */
- inline void Clear() { this->val_ = 0; }
-
- /**
- * Checks whether two handles are the same.
- * Returns true if both are empty, or if the objects
- * to which they refer are identical.
- * The handles' references are not checked.
- */
- template <class S> inline bool operator==(Handle<S> that) const {
- internal::Object** a = reinterpret_cast<internal::Object**>(**this);
- internal::Object** b = reinterpret_cast<internal::Object**>(*that);
- if (a == 0) return b == 0;
- if (b == 0) return false;
- return *a == *b;
- }
-
- /**
- * Checks whether two handles are different.
- * Returns true if only one of the handles is empty, or if
- * the objects to which they refer are different.
- * The handles' references are not checked.
- */
- template <class S> inline bool operator!=(Handle<S> that) const {
- return !operator==(that);
- }
-
- template <class S> static inline Handle<T> Cast(Handle<S> that) {
-#ifdef V8_ENABLE_CHECKS
- // If we're going to perform the type check then we have to check
- // that the handle isn't empty before doing the checked cast.
- if (that.IsEmpty()) return Handle<T>();
-#endif
- return Handle<T>(T::Cast(*that));
- }
-
- template <class S> inline Handle<S> As() {
- return Handle<S>::Cast(*this);
- }
-
- private:
- T* val_;
-};
-
-
-/**
- * A light-weight stack-allocated object handle. All operations
- * that return objects from within v8 return them in local handles. They
- * are created within HandleScopes, and all local handles allocated within a
- * handle scope are destroyed when the handle scope is destroyed. Hence it
- * is not necessary to explicitly deallocate local handles.
- */
-template <class T> class Local : public Handle<T> {
- public:
- inline Local();
- template <class S> inline Local(Local<S> that)
- : Handle<T>(reinterpret_cast<T*>(*that)) {
- /**
- * This check fails when trying to convert between incompatible
- * handles. For example, converting from a Handle<String> to a
- * Handle<Number>.
- */
- TYPE_CHECK(T, S);
- }
- template <class S> inline Local(S* that) : Handle<T>(that) { }
- template <class S> static inline Local<T> Cast(Local<S> that) {
-#ifdef V8_ENABLE_CHECKS
- // If we're going to perform the type check then we have to check
- // that the handle isn't empty before doing the checked cast.
- if (that.IsEmpty()) return Local<T>();
-#endif
- return Local<T>(T::Cast(*that));
- }
-
- template <class S> inline Local<S> As() {
- return Local<S>::Cast(*this);
- }
-
- /** Create a local handle for the content of another handle.
- * The referee is kept alive by the local handle even when
- * the original handle is destroyed/disposed.
- */
- inline static Local<T> New(Handle<T> that);
-};
-
-
-/**
- * An object reference that is independent of any handle scope. Where
- * a Local handle only lives as long as the HandleScope in which it was
- * allocated, a Persistent handle remains valid until it is explicitly
- * disposed.
- *
- * A persistent handle contains a reference to a storage cell within
- * the v8 engine which holds an object value and which is updated by
- * the garbage collector whenever the object is moved. A new storage
- * cell can be created using Persistent::New and existing handles can
- * be disposed using Persistent::Dispose. Since persistent handles
- * are passed by value you may have many persistent handle objects
- * that point to the same storage cell. For instance, if you pass a
- * persistent handle as an argument to a function you will not get two
- * different storage cells but rather two references to the same
- * storage cell.
- */
-template <class T> class Persistent : public Handle<T> {
- public:
-
- /**
- * Creates an empty persistent handle that doesn't point to any
- * storage cell.
- */
- inline Persistent();
-
- /**
- * Creates a persistent handle for the same storage cell as the
- * specified handle. This constructor allows you to pass persistent
- * handles as arguments by value and to assign between persistent
- * handles. However, attempting to assign between incompatible
- * persistent handles, for instance from a Persistent<String> to a
- * Persistent<Number> will cause a compiletime error. Assigning
- * between compatible persistent handles, for instance assigning a
- * Persistent<String> to a variable declared as Persistent<Value>,
- * is allowed as String is a subclass of Value.
- */
- template <class S> inline Persistent(Persistent<S> that)
- : Handle<T>(reinterpret_cast<T*>(*that)) {
- /**
- * This check fails when trying to convert between incompatible
- * handles. For example, converting from a Handle<String> to a
- * Handle<Number>.
- */
- TYPE_CHECK(T, S);
- }
-
- template <class S> inline Persistent(S* that) : Handle<T>(that) { }
-
- /**
- * "Casts" a plain handle which is known to be a persistent handle
- * to a persistent handle.
- */
- template <class S> explicit inline Persistent(Handle<S> that)
- : Handle<T>(*that) { }
-
- template <class S> static inline Persistent<T> Cast(Persistent<S> that) {
-#ifdef V8_ENABLE_CHECKS
- // If we're going to perform the type check then we have to check
- // that the handle isn't empty before doing the checked cast.
- if (that.IsEmpty()) return Persistent<T>();
-#endif
- return Persistent<T>(T::Cast(*that));
- }
-
- template <class S> inline Persistent<S> As() {
- return Persistent<S>::Cast(*this);
- }
-
- /**
- * Creates a new persistent handle for an existing local or
- * persistent handle.
- */
- inline static Persistent<T> New(Handle<T> that);
-
- /**
- * Releases the storage cell referenced by this persistent handle.
- * Does not remove the reference to the cell from any handles.
- * This handle's reference, and any any other references to the storage
- * cell remain and IsEmpty will still return false.
- */
- inline void Dispose();
-
- /**
- * Make the reference to this object weak. When only weak handles
- * refer to the object, the garbage collector will perform a
- * callback to the given V8::WeakReferenceCallback function, passing
- * it the object reference and the given parameters.
- */
- inline void MakeWeak(void* parameters, WeakReferenceCallback callback);
-
- /** Clears the weak reference to this object.*/
- inline void ClearWeak();
-
- /**
- *Checks if the handle holds the only reference to an object.
- */
- inline bool IsNearDeath() const;
-
- /**
- * Returns true if the handle's reference is weak.
- */
- inline bool IsWeak() const;
-
- private:
- friend class ImplementationUtilities;
- friend class ObjectTemplate;
-};
-
-
- /**
- * A stack-allocated class that governs a number of local handles.
- * After a handle scope has been created, all local handles will be
- * allocated within that handle scope until either the handle scope is
- * deleted or another handle scope is created. If there is already a
- * handle scope and a new one is created, all allocations will take
- * place in the new handle scope until it is deleted. After that,
- * new handles will again be allocated in the original handle scope.
- *
- * After the handle scope of a local handle has been deleted the
- * garbage collector will no longer track the object stored in the
- * handle and may deallocate it. The behavior of accessing a handle
- * for which the handle scope has been deleted is undefined.
- */
-class V8EXPORT HandleScope {
- public:
- HandleScope();
-
- ~HandleScope();
-
- /**
- * Closes the handle scope and returns the value as a handle in the
- * previous scope, which is the new current scope after the call.
- */
- template <class T> Local<T> Close(Handle<T> value);
-
- /**
- * Counts the number of allocated handles.
- */
- static int NumberOfHandles();
-
- /**
- * Creates a new handle with the given value.
- */
- static internal::Object** CreateHandle(internal::Object* value);
-
- private:
- // Make it impossible to create heap-allocated or illegal handle
- // scopes by disallowing certain operations.
- HandleScope(const HandleScope&);
- void operator=(const HandleScope&);
- void* operator new(size_t size);
- void operator delete(void*, size_t);
-
- // This Data class is accessible internally as HandleScopeData through a
- // typedef in the ImplementationUtilities class.
- class V8EXPORT Data {
- public:
- int extensions;
- internal::Object** next;
- internal::Object** limit;
- inline void Initialize() {
- extensions = -1;
- next = limit = NULL;
- }
- };
-
- Data previous_;
-
- // Allow for the active closing of HandleScopes which allows to pass a handle
- // from the HandleScope being closed to the next top most HandleScope.
- bool is_closed_;
- internal::Object** RawClose(internal::Object** value);
-
- friend class ImplementationUtilities;
-};
-
-
-// --- S p e c i a l o b j e c t s ---
-
-
-/**
- * The superclass of values and API object templates.
- */
-class V8EXPORT Data {
- private:
- Data();
-};
-
-
-/**
- * Pre-compilation data that can be associated with a script. This
- * data can be calculated for a script in advance of actually
- * compiling it, and can be stored between compilations. When script
- * data is given to the compile method compilation will be faster.
- */
-class V8EXPORT ScriptData { // NOLINT
- public:
- virtual ~ScriptData() { }
-
- /**
- * Pre-compiles the specified script (context-independent).
- *
- * \param input Pointer to UTF-8 script source code.
- * \param length Length of UTF-8 script source code.
- */
- static ScriptData* PreCompile(const char* input, int length);
-
- /**
- * Pre-compiles the specified script (context-independent).
- *
- * NOTE: Pre-compilation using this method cannot happen on another thread
- * without using Lockers.
- *
- * \param source Script source code.
- */
- static ScriptData* PreCompile(Handle<String> source);
-
- /**
- * Load previous pre-compilation data.
- *
- * \param data Pointer to data returned by a call to Data() of a previous
- * ScriptData. Ownership is not transferred.
- * \param length Length of data.
- */
- static ScriptData* New(const char* data, int length);
-
- /**
- * Returns the length of Data().
- */
- virtual int Length() = 0;
-
- /**
- * Returns a serialized representation of this ScriptData that can later be
- * passed to New(). NOTE: Serialized data is platform-dependent.
- */
- virtual const char* Data() = 0;
-
- /**
- * Returns true if the source code could not be parsed.
- */
- virtual bool HasError() = 0;
-};
-
-
-/**
- * The origin, within a file, of a script.
- */
-class ScriptOrigin {
- public:
- inline ScriptOrigin(
- Handle<Value> resource_name,
- Handle<Integer> resource_line_offset = Handle<Integer>(),
- Handle<Integer> resource_column_offset = Handle<Integer>())
- : resource_name_(resource_name),
- resource_line_offset_(resource_line_offset),
- resource_column_offset_(resource_column_offset) { }
- inline Handle<Value> ResourceName() const;
- inline Handle<Integer> ResourceLineOffset() const;
- inline Handle<Integer> ResourceColumnOffset() const;
- private:
- Handle<Value> resource_name_;
- Handle<Integer> resource_line_offset_;
- Handle<Integer> resource_column_offset_;
-};
-
-
-/**
- * A compiled JavaScript script.
- */
-class V8EXPORT Script {
- public:
-
- /**
- * Compiles the specified script (context-independent).
- *
- * \param source Script source code.
- * \param origin Script origin, owned by caller, no references are kept
- * when New() returns
- * \param pre_data Pre-parsing data, as obtained by ScriptData::PreCompile()
- * using pre_data speeds compilation if it's done multiple times.
- * Owned by caller, no references are kept when New() returns.
- * \param script_data Arbitrary data associated with script. Using
- * this has same effect as calling SetData(), but allows data to be
- * available to compile event handlers.
- * \return Compiled script object (context independent; when run it
- * will use the currently entered context).
- */
- static Local<Script> New(Handle<String> source,
- ScriptOrigin* origin = NULL,
- ScriptData* pre_data = NULL,
- Handle<String> script_data = Handle<String>());
-
- /**
- * Compiles the specified script using the specified file name
- * object (typically a string) as the script's origin.
- *
- * \param source Script source code.
- * \param file_name file name object (typically a string) to be used
- * as the script's origin.
- * \return Compiled script object (context independent; when run it
- * will use the currently entered context).
- */
- static Local<Script> New(Handle<String> source,
- Handle<Value> file_name);
-
- /**
- * Compiles the specified script (bound to current context).
- *
- * \param source Script source code.
- * \param origin Script origin, owned by caller, no references are kept
- * when Compile() returns
- * \param pre_data Pre-parsing data, as obtained by ScriptData::PreCompile()
- * using pre_data speeds compilation if it's done multiple times.
- * Owned by caller, no references are kept when Compile() returns.
- * \param script_data Arbitrary data associated with script. Using
- * this has same effect as calling SetData(), but makes data available
- * earlier (i.e. to compile event handlers).
- * \return Compiled script object, bound to the context that was active
- * when this function was called. When run it will always use this
- * context.
- */
- static Local<Script> Compile(Handle<String> source,
- ScriptOrigin* origin = NULL,
- ScriptData* pre_data = NULL,
- Handle<String> script_data = Handle<String>());
-
- /**
- * Compiles the specified script using the specified file name
- * object (typically a string) as the script's origin.
- *
- * \param source Script source code.
- * \param file_name File name to use as script's origin
- * \param script_data Arbitrary data associated with script. Using
- * this has same effect as calling SetData(), but makes data available
- * earlier (i.e. to compile event handlers).
- * \return Compiled script object, bound to the context that was active
- * when this function was called. When run it will always use this
- * context.
- */
- static Local<Script> Compile(Handle<String> source,
- Handle<Value> file_name,
- Handle<String> script_data = Handle<String>());
-
- /**
- * Runs the script returning the resulting value. If the script is
- * context independent (created using ::New) it will be run in the
- * currently entered context. If it is context specific (created
- * using ::Compile) it will be run in the context in which it was
- * compiled.
- */
- Local<Value> Run();
-
- /**
- * Returns the script id value.
- */
- Local<Value> Id();
-
- /**
- * Associate an additional data object with the script. This is mainly used
- * with the debugger as this data object is only available through the
- * debugger API.
- */
- void SetData(Handle<String> data);
-};
-
-
-/**
- * An error message.
- */
-class V8EXPORT Message {
- public:
- Local<String> Get() const;
- Local<String> GetSourceLine() const;
-
- /**
- * Returns the resource name for the script from where the function causing
- * the error originates.
- */
- Handle<Value> GetScriptResourceName() const;
-
- /**
- * Returns the resource data for the script from where the function causing
- * the error originates.
- */
- Handle<Value> GetScriptData() const;
-
- /**
- * Exception stack trace. By default stack traces are not captured for
- * uncaught exceptions. SetCaptureStackTraceForUncaughtExceptions allows
- * to change this option.
- */
- Handle<StackTrace> GetStackTrace() const;
-
- /**
- * Returns the number, 1-based, of the line where the error occurred.
- */
- int GetLineNumber() const;
-
- /**
- * Returns the index within the script of the first character where
- * the error occurred.
- */
- int GetStartPosition() const;
-
- /**
- * Returns the index within the script of the last character where
- * the error occurred.
- */
- int GetEndPosition() const;
-
- /**
- * Returns the index within the line of the first character where
- * the error occurred.
- */
- int GetStartColumn() const;
-
- /**
- * Returns the index within the line of the last character where
- * the error occurred.
- */
- int GetEndColumn() const;
-
- // TODO(1245381): Print to a string instead of on a FILE.
- static void PrintCurrentStackTrace(FILE* out);
-
- static const int kNoLineNumberInfo = 0;
- static const int kNoColumnInfo = 0;
-};
-
-
-/**
- * Representation of a JavaScript stack trace. The information collected is a
- * snapshot of the execution stack and the information remains valid after
- * execution continues.
- */
-class V8EXPORT StackTrace {
- public:
- /**
- * Flags that determine what information is placed captured for each
- * StackFrame when grabbing the current stack trace.
- */
- enum StackTraceOptions {
- kLineNumber = 1,
- kColumnOffset = 1 << 1 | kLineNumber,
- kScriptName = 1 << 2,
- kFunctionName = 1 << 3,
- kIsEval = 1 << 4,
- kIsConstructor = 1 << 5,
- kOverview = kLineNumber | kColumnOffset | kScriptName | kFunctionName,
- kDetailed = kOverview | kIsEval | kIsConstructor
- };
-
- /**
- * Returns a StackFrame at a particular index.
- */
- Local<StackFrame> GetFrame(uint32_t index) const;
-
- /**
- * Returns the number of StackFrames.
- */
- int GetFrameCount() const;
-
- /**
- * Returns StackTrace as a v8::Array that contains StackFrame objects.
- */
- Local<Array> AsArray();
-
- /**
- * Grab a snapshot of the the current JavaScript execution stack.
- *
- * \param frame_limit The maximum number of stack frames we want to capture.
- * \param options Enumerates the set of things we will capture for each
- * StackFrame.
- */
- static Local<StackTrace> CurrentStackTrace(
- int frame_limit,
- StackTraceOptions options = kOverview);
-};
-
-
-/**
- * A single JavaScript stack frame.
- */
-class V8EXPORT StackFrame {
- public:
- /**
- * Returns the number, 1-based, of the line for the associate function call.
- * This method will return Message::kNoLineNumberInfo if it is unable to
- * retrieve the line number, or if kLineNumber was not passed as an option
- * when capturing the StackTrace.
- */
- int GetLineNumber() const;
-
- /**
- * Returns the 1-based column offset on the line for the associated function
- * call.
- * This method will return Message::kNoColumnInfo if it is unable to retrieve
- * the column number, or if kColumnOffset was not passed as an option when
- * capturing the StackTrace.
- */
- int GetColumn() const;
-
- /**
- * Returns the name of the resource that contains the script for the
- * function for this StackFrame.
- */
- Local<String> GetScriptName() const;
-
- /**
- * Returns the name of the function associated with this stack frame.
- */
- Local<String> GetFunctionName() const;
-
- /**
- * Returns whether or not the associated function is compiled via a call to
- * eval().
- */
- bool IsEval() const;
-
- /**
- * Returns whther or not the associated function is called as a
- * constructor via "new".
- */
- bool IsConstructor() const;
-};
-
-
-// --- V a l u e ---
-
-
-/**
- * The superclass of all JavaScript values and objects.
- */
-class Value : public Data {
- public:
-
- /**
- * Returns true if this value is the undefined value. See ECMA-262
- * 4.3.10.
- */
- V8EXPORT bool IsUndefined() const;
-
- /**
- * Returns true if this value is the null value. See ECMA-262
- * 4.3.11.
- */
- V8EXPORT bool IsNull() const;
-
- /**
- * Returns true if this value is true.
- */
- V8EXPORT bool IsTrue() const;
-
- /**
- * Returns true if this value is false.
- */
- V8EXPORT bool IsFalse() const;
-
- /**
- * Returns true if this value is an instance of the String type.
- * See ECMA-262 8.4.
- */
- inline bool IsString() const;
-
- /**
- * Returns true if this value is a function.
- */
- V8EXPORT bool IsFunction() const;
-
- /**
- * Returns true if this value is an array.
- */
- V8EXPORT bool IsArray() const;
-
- /**
- * Returns true if this value is an object.
- */
- V8EXPORT bool IsObject() const;
-
- /**
- * Returns true if this value is boolean.
- */
- V8EXPORT bool IsBoolean() const;
-
- /**
- * Returns true if this value is a number.
- */
- V8EXPORT bool IsNumber() const;
-
- /**
- * Returns true if this value is external.
- */
- V8EXPORT bool IsExternal() const;
-
- /**
- * Returns true if this value is a 32-bit signed integer.
- */
- V8EXPORT bool IsInt32() const;
-
- /**
- * Returns true if this value is a 32-bit unsigned integer.
- */
- V8EXPORT bool IsUint32() const;
-
- /**
- * Returns true if this value is a Date.
- */
- V8EXPORT bool IsDate() const;
-
- /**
- * Returns true if this value is a RegExp.
- */
- V8EXPORT bool IsRegExp() const;
-
- V8EXPORT Local<Boolean> ToBoolean() const;
- V8EXPORT Local<Number> ToNumber() const;
- V8EXPORT Local<String> ToString() const;
- V8EXPORT Local<String> ToDetailString() const;
- V8EXPORT Local<Object> ToObject() const;
- V8EXPORT Local<Integer> ToInteger() const;
- V8EXPORT Local<Uint32> ToUint32() const;
- V8EXPORT Local<Int32> ToInt32() const;
-
- /**
- * Attempts to convert a string to an array index.
- * Returns an empty handle if the conversion fails.
- */
- V8EXPORT Local<Uint32> ToArrayIndex() const;
-
- V8EXPORT bool BooleanValue() const;
- V8EXPORT double NumberValue() const;
- V8EXPORT int64_t IntegerValue() const;
- V8EXPORT uint32_t Uint32Value() const;
- V8EXPORT int32_t Int32Value() const;
-
- /** JS == */
- V8EXPORT bool Equals(Handle<Value> that) const;
- V8EXPORT bool StrictEquals(Handle<Value> that) const;
-
- private:
- inline bool QuickIsString() const;
- V8EXPORT bool FullIsString() const;
-};
-
-
-/**
- * The superclass of primitive values. See ECMA-262 4.3.2.
- */
-class Primitive : public Value { };
-
-
-/**
- * A primitive boolean value (ECMA-262, 4.3.14). Either the true
- * or false value.
- */
-class Boolean : public Primitive {
- public:
- V8EXPORT bool Value() const;
- static inline Handle<Boolean> New(bool value);
-};
-
-
-/**
- * A JavaScript string value (ECMA-262, 4.3.17).
- */
-class String : public Primitive {
- public:
-
- /**
- * Returns the number of characters in this string.
- */
- V8EXPORT int Length() const;
-
- /**
- * Returns the number of bytes in the UTF-8 encoded
- * representation of this string.
- */
- V8EXPORT int Utf8Length() const;
-
- /**
- * Write the contents of the string to an external buffer.
- * If no arguments are given, expects the buffer to be large
- * enough to hold the entire string and NULL terminator. Copies
- * the contents of the string and the NULL terminator into the
- * buffer.
- *
- * Copies up to length characters into the output buffer.
- * Only null-terminates if there is enough space in the buffer.
- *
- * \param buffer The buffer into which the string will be copied.
- * \param start The starting position within the string at which
- * copying begins.
- * \param length The number of bytes to copy from the string.
- * \param nchars_ref The number of characters written, can be NULL.
- * \param hints Various hints that might affect performance of this or
- * subsequent operations.
- * \return The number of bytes copied to the buffer
- * excluding the NULL terminator.
- */
- enum WriteHints {
- NO_HINTS = 0,
- HINT_MANY_WRITES_EXPECTED = 1
- };
-
- V8EXPORT int Write(uint16_t* buffer,
- int start = 0,
- int length = -1,
- WriteHints hints = NO_HINTS) const; // UTF-16
- V8EXPORT int WriteAscii(char* buffer,
- int start = 0,
- int length = -1,
- WriteHints hints = NO_HINTS) const; // ASCII
- V8EXPORT int WriteUtf8(char* buffer,
- int length = -1,
- int* nchars_ref = NULL,
- WriteHints hints = NO_HINTS) const; // UTF-8
-
- /**
- * A zero length string.
- */
- V8EXPORT static v8::Local<v8::String> Empty();
-
- /**
- * Returns true if the string is external
- */
- V8EXPORT bool IsExternal() const;
-
- /**
- * Returns true if the string is both external and ascii
- */
- V8EXPORT bool IsExternalAscii() const;
-
- class V8EXPORT ExternalStringResourceBase {
- public:
- virtual ~ExternalStringResourceBase() {}
-
- protected:
- ExternalStringResourceBase() {}
-
- /**
- * Internally V8 will call this Dispose method when the external string
- * resource is no longer needed. The default implementation will use the
- * delete operator. This method can be overridden in subclasses to
- * control how allocated external string resources are disposed.
- */
- virtual void Dispose() { delete this; }
-
- private:
- // Disallow copying and assigning.
- ExternalStringResourceBase(const ExternalStringResourceBase&);
- void operator=(const ExternalStringResourceBase&);
-
- friend class v8::internal::Heap;
- };
-
- /**
- * An ExternalStringResource is a wrapper around a two-byte string
- * buffer that resides outside V8's heap. Implement an
- * ExternalStringResource to manage the life cycle of the underlying
- * buffer. Note that the string data must be immutable.
- */
- class V8EXPORT ExternalStringResource
- : public ExternalStringResourceBase {
- public:
- /**
- * Override the destructor to manage the life cycle of the underlying
- * buffer.
- */
- virtual ~ExternalStringResource() {}
-
- /**
- * The string data from the underlying buffer.
- */
- virtual const uint16_t* data() const = 0;
-
- /**
- * The length of the string. That is, the number of two-byte characters.
- */
- virtual size_t length() const = 0;
-
- protected:
- ExternalStringResource() {}
- };
-
- /**
- * An ExternalAsciiStringResource is a wrapper around an ascii
- * string buffer that resides outside V8's heap. Implement an
- * ExternalAsciiStringResource to manage the life cycle of the
- * underlying buffer. Note that the string data must be immutable
- * and that the data must be strict 7-bit ASCII, not Latin1 or
- * UTF-8, which would require special treatment internally in the
- * engine and, in the case of UTF-8, do not allow efficient indexing.
- * Use String::New or convert to 16 bit data for non-ASCII.
- */
-
- class V8EXPORT ExternalAsciiStringResource
- : public ExternalStringResourceBase {
- public:
- /**
- * Override the destructor to manage the life cycle of the underlying
- * buffer.
- */
- virtual ~ExternalAsciiStringResource() {}
- /** The string data from the underlying buffer.*/
- virtual const char* data() const = 0;
- /** The number of ascii characters in the string.*/
- virtual size_t length() const = 0;
- protected:
- ExternalAsciiStringResource() {}
- };
-
- /**
- * Get the ExternalStringResource for an external string. Returns
- * NULL if IsExternal() doesn't return true.
- */
- inline ExternalStringResource* GetExternalStringResource() const;
-
- /**
- * Get the ExternalAsciiStringResource for an external ascii string.
- * Returns NULL if IsExternalAscii() doesn't return true.
- */
- V8EXPORT ExternalAsciiStringResource* GetExternalAsciiStringResource() const;
-
- static inline String* Cast(v8::Value* obj);
-
- /**
- * Allocates a new string from either utf-8 encoded or ascii data.
- * The second parameter 'length' gives the buffer length.
- * If the data is utf-8 encoded, the caller must
- * be careful to supply the length parameter.
- * If it is not given, the function calls
- * 'strlen' to determine the buffer length, it might be
- * wrong if 'data' contains a null character.
- */
- V8EXPORT static Local<String> New(const char* data, int length = -1);
-
- /** Allocates a new string from utf16 data.*/
- V8EXPORT static Local<String> New(const uint16_t* data, int length = -1);
-
- /** Creates a symbol. Returns one if it exists already.*/
- V8EXPORT static Local<String> NewSymbol(const char* data, int length = -1);
-
- /**
- * Creates a new string by concatenating the left and the right strings
- * passed in as parameters.
- */
- V8EXPORT static Local<String> Concat(Handle<String> left,
- Handle<String>right);
-
- /**
- * Creates a new external string using the data defined in the given
- * resource. When the external string is no longer live on V8's heap the
- * resource will be disposed by calling its Dispose method. The caller of
- * this function should not otherwise delete or modify the resource. Neither
- * should the underlying buffer be deallocated or modified except through the
- * destructor of the external string resource.
- */
- V8EXPORT static Local<String> NewExternal(ExternalStringResource* resource);
-
- /**
- * Associate an external string resource with this string by transforming it
- * in place so that existing references to this string in the JavaScript heap
- * will use the external string resource. The external string resource's
- * character contents needs to be equivalent to this string.
- * Returns true if the string has been changed to be an external string.
- * The string is not modified if the operation fails. See NewExternal for
- * information on the lifetime of the resource.
- */
- V8EXPORT bool MakeExternal(ExternalStringResource* resource);
-
- /**
- * Creates a new external string using the ascii data defined in the given
- * resource. When the external string is no longer live on V8's heap the
- * resource will be disposed by calling its Dispose method. The caller of
- * this function should not otherwise delete or modify the resource. Neither
- * should the underlying buffer be deallocated or modified except through the
- * destructor of the external string resource.
- */
- V8EXPORT static Local<String> NewExternal(
- ExternalAsciiStringResource* resource);
-
- /**
- * Associate an external string resource with this string by transforming it
- * in place so that existing references to this string in the JavaScript heap
- * will use the external string resource. The external string resource's
- * character contents needs to be equivalent to this string.
- * Returns true if the string has been changed to be an external string.
- * The string is not modified if the operation fails. See NewExternal for
- * information on the lifetime of the resource.
- */
- V8EXPORT bool MakeExternal(ExternalAsciiStringResource* resource);
-
- /**
- * Returns true if this string can be made external.
- */
- V8EXPORT bool CanMakeExternal();
-
- /** Creates an undetectable string from the supplied ascii or utf-8 data.*/
- V8EXPORT static Local<String> NewUndetectable(const char* data,
- int length = -1);
-
- /** Creates an undetectable string from the supplied utf-16 data.*/
- V8EXPORT static Local<String> NewUndetectable(const uint16_t* data,
- int length = -1);
-
- /**
- * Converts an object to a utf8-encoded character array. Useful if
- * you want to print the object. If conversion to a string fails
- * (eg. due to an exception in the toString() method of the object)
- * then the length() method returns 0 and the * operator returns
- * NULL.
- */
- class V8EXPORT Utf8Value {
- public:
- explicit Utf8Value(Handle<v8::Value> obj);
- ~Utf8Value();
- char* operator*() { return str_; }
- const char* operator*() const { return str_; }
- int length() const { return length_; }
- private:
- char* str_;
- int length_;
-
- // Disallow copying and assigning.
- Utf8Value(const Utf8Value&);
- void operator=(const Utf8Value&);
- };
-
- /**
- * Converts an object to an ascii string.
- * Useful if you want to print the object.
- * If conversion to a string fails (eg. due to an exception in the toString()
- * method of the object) then the length() method returns 0 and the * operator
- * returns NULL.
- */
- class V8EXPORT AsciiValue {
- public:
- explicit AsciiValue(Handle<v8::Value> obj);
- ~AsciiValue();
- char* operator*() { return str_; }
- const char* operator*() const { return str_; }
- int length() const { return length_; }
- private:
- char* str_;
- int length_;
-
- // Disallow copying and assigning.
- AsciiValue(const AsciiValue&);
- void operator=(const AsciiValue&);
- };
-
- /**
- * Converts an object to a two-byte string.
- * If conversion to a string fails (eg. due to an exception in the toString()
- * method of the object) then the length() method returns 0 and the * operator
- * returns NULL.
- */
- class V8EXPORT Value {
- public:
- explicit Value(Handle<v8::Value> obj);
- ~Value();
- uint16_t* operator*() { return str_; }
- const uint16_t* operator*() const { return str_; }
- int length() const { return length_; }
- private:
- uint16_t* str_;
- int length_;
-
- // Disallow copying and assigning.
- Value(const Value&);
- void operator=(const Value&);
- };
-
- private:
- V8EXPORT void VerifyExternalStringResource(ExternalStringResource* val) const;
- V8EXPORT static void CheckCast(v8::Value* obj);
-};
-
-
-/**
- * A JavaScript number value (ECMA-262, 4.3.20)
- */
-class Number : public Primitive {
- public:
- V8EXPORT double Value() const;
- V8EXPORT static Local<Number> New(double value);
- static inline Number* Cast(v8::Value* obj);
- private:
- V8EXPORT Number();
- static void CheckCast(v8::Value* obj);
-};
-
-
-/**
- * A JavaScript value representing a signed integer.
- */
-class Integer : public Number {
- public:
- V8EXPORT static Local<Integer> New(int32_t value);
- V8EXPORT static Local<Integer> NewFromUnsigned(uint32_t value);
- V8EXPORT int64_t Value() const;
- static inline Integer* Cast(v8::Value* obj);
- private:
- V8EXPORT Integer();
- V8EXPORT static void CheckCast(v8::Value* obj);
-};
-
-
-/**
- * A JavaScript value representing a 32-bit signed integer.
- */
-class Int32 : public Integer {
- public:
- V8EXPORT int32_t Value() const;
- private:
- V8EXPORT Int32();
-};
-
-
-/**
- * A JavaScript value representing a 32-bit unsigned integer.
- */
-class Uint32 : public Integer {
- public:
- V8EXPORT uint32_t Value() const;
- private:
- V8EXPORT Uint32();
-};
-
-
-/**
- * An instance of the built-in Date constructor (ECMA-262, 15.9).
- */
-class Date : public Value {
- public:
- V8EXPORT static Local<Value> New(double time);
-
- /**
- * A specialization of Value::NumberValue that is more efficient
- * because we know the structure of this object.
- */
- V8EXPORT double NumberValue() const;
-
- static inline Date* Cast(v8::Value* obj);
- private:
- V8EXPORT static void CheckCast(v8::Value* obj);
-};
-
-
-enum PropertyAttribute {
- None = 0,
- ReadOnly = 1 << 0,
- DontEnum = 1 << 1,
- DontDelete = 1 << 2
-};
-
-enum ExternalArrayType {
- kExternalByteArray = 1,
- kExternalUnsignedByteArray,
- kExternalShortArray,
- kExternalUnsignedShortArray,
- kExternalIntArray,
- kExternalUnsignedIntArray,
- kExternalFloatArray
-};
-
-/**
- * Accessor[Getter|Setter] are used as callback functions when
- * setting|getting a particular property. See Object and ObjectTemplate's
- * method SetAccessor.
- */
-typedef Handle<Value> (*AccessorGetter)(Local<String> property,
- const AccessorInfo& info);
-
-
-typedef void (*AccessorSetter)(Local<String> property,
- Local<Value> value,
- const AccessorInfo& info);
-
-
-/**
- * Access control specifications.
- *
- * Some accessors should be accessible across contexts. These
- * accessors have an explicit access control parameter which specifies
- * the kind of cross-context access that should be allowed.
- *
- * Additionally, for security, accessors can prohibit overwriting by
- * accessors defined in JavaScript. For objects that have such
- * accessors either locally or in their prototype chain it is not
- * possible to overwrite the accessor by using __defineGetter__ or
- * __defineSetter__ from JavaScript code.
- */
-enum AccessControl {
- DEFAULT = 0,
- ALL_CAN_READ = 1,
- ALL_CAN_WRITE = 1 << 1,
- PROHIBITS_OVERWRITING = 1 << 2
-};
-
-
-/**
- * A JavaScript object (ECMA-262, 4.3.3)
- */
-class Object : public Value {
- public:
- V8EXPORT bool Set(Handle<Value> key,
- Handle<Value> value,
- PropertyAttribute attribs = None);
-
- V8EXPORT bool Set(uint32_t index,
- Handle<Value> value);
-
- // Sets a local property on this object bypassing interceptors and
- // overriding accessors or read-only properties.
- //
- // Note that if the object has an interceptor the property will be set
- // locally, but since the interceptor takes precedence the local property
- // will only be returned if the interceptor doesn't return a value.
- //
- // Note also that this only works for named properties.
- V8EXPORT bool ForceSet(Handle<Value> key,
- Handle<Value> value,
- PropertyAttribute attribs = None);
-
- V8EXPORT Local<Value> Get(Handle<Value> key);
-
- V8EXPORT Local<Value> Get(uint32_t index);
-
- // TODO(1245389): Replace the type-specific versions of these
- // functions with generic ones that accept a Handle<Value> key.
- V8EXPORT bool Has(Handle<String> key);
-
- V8EXPORT bool Delete(Handle<String> key);
-
- // Delete a property on this object bypassing interceptors and
- // ignoring dont-delete attributes.
- V8EXPORT bool ForceDelete(Handle<Value> key);
-
- V8EXPORT bool Has(uint32_t index);
-
- V8EXPORT bool Delete(uint32_t index);
-
- V8EXPORT bool SetAccessor(Handle<String> name,
- AccessorGetter getter,
- AccessorSetter setter = 0,
- Handle<Value> data = Handle<Value>(),
- AccessControl settings = DEFAULT,
- PropertyAttribute attribute = None);
-
- /**
- * Returns an array containing the names of the enumerable properties
- * of this object, including properties from prototype objects. The
- * array returned by this method contains the same values as would
- * be enumerated by a for-in statement over this object.
- */
- V8EXPORT Local<Array> GetPropertyNames();
-
- /**
- * Get the prototype object. This does not skip objects marked to
- * be skipped by __proto__ and it does not consult the security
- * handler.
- */
- V8EXPORT Local<Value> GetPrototype();
-
- /**
- * Set the prototype object. This does not skip objects marked to
- * be skipped by __proto__ and it does not consult the security
- * handler.
- */
- V8EXPORT bool SetPrototype(Handle<Value> prototype);
-
- /**
- * Finds an instance of the given function template in the prototype
- * chain.
- */
- V8EXPORT Local<Object> FindInstanceInPrototypeChain(
- Handle<FunctionTemplate> tmpl);
-
- /**
- * Call builtin Object.prototype.toString on this object.
- * This is different from Value::ToString() that may call
- * user-defined toString function. This one does not.
- */
- V8EXPORT Local<String> ObjectProtoToString();
-
- /** Gets the number of internal fields for this Object. */
- V8EXPORT int InternalFieldCount();
- /** Gets the value in an internal field. */
- inline Local<Value> GetInternalField(int index);
- /** Sets the value in an internal field. */
- V8EXPORT void SetInternalField(int index, Handle<Value> value);
-
- /** Gets a native pointer from an internal field. */
- inline void* GetPointerFromInternalField(int index);
-
- /** Sets a native pointer in an internal field. */
- V8EXPORT void SetPointerInInternalField(int index, void* value);
-
- // Testers for local properties.
- V8EXPORT bool HasRealNamedProperty(Handle<String> key);
- V8EXPORT bool HasRealIndexedProperty(uint32_t index);
- V8EXPORT bool HasRealNamedCallbackProperty(Handle<String> key);
-
- /**
- * If result.IsEmpty() no real property was located in the prototype chain.
- * This means interceptors in the prototype chain are not called.
- */
- V8EXPORT Local<Value> GetRealNamedPropertyInPrototypeChain(
- Handle<String> key);
-
- /**
- * If result.IsEmpty() no real property was located on the object or
- * in the prototype chain.
- * This means interceptors in the prototype chain are not called.
- */
- V8EXPORT Local<Value> GetRealNamedProperty(Handle<String> key);
-
- /** Tests for a named lookup interceptor.*/
- V8EXPORT bool HasNamedLookupInterceptor();
-
- /** Tests for an index lookup interceptor.*/
- V8EXPORT bool HasIndexedLookupInterceptor();
-
- /**
- * Turns on access check on the object if the object is an instance of
- * a template that has access check callbacks. If an object has no
- * access check info, the object cannot be accessed by anyone.
- */
- V8EXPORT void TurnOnAccessCheck();
-
- /**
- * Returns the identity hash for this object. The current implemenation uses
- * a hidden property on the object to store the identity hash.
- *
- * The return value will never be 0. Also, it is not guaranteed to be
- * unique.
- */
- V8EXPORT int GetIdentityHash();
-
- /**
- * Access hidden properties on JavaScript objects. These properties are
- * hidden from the executing JavaScript and only accessible through the V8
- * C++ API. Hidden properties introduced by V8 internally (for example the
- * identity hash) are prefixed with "v8::".
- */
- V8EXPORT bool SetHiddenValue(Handle<String> key, Handle<Value> value);
- V8EXPORT Local<Value> GetHiddenValue(Handle<String> key);
- V8EXPORT bool DeleteHiddenValue(Handle<String> key);
-
- /**
- * Returns true if this is an instance of an api function (one
- * created from a function created from a function template) and has
- * been modified since it was created. Note that this method is
- * conservative and may return true for objects that haven't actually
- * been modified.
- */
- V8EXPORT bool IsDirty();
-
- /**
- * Clone this object with a fast but shallow copy. Values will point
- * to the same values as the original object.
- */
- V8EXPORT Local<Object> Clone();
-
- /**
- * Set the backing store of the indexed properties to be managed by the
- * embedding layer. Access to the indexed properties will follow the rules
- * spelled out in CanvasPixelArray.
- * Note: The embedding program still owns the data and needs to ensure that
- * the backing store is preserved while V8 has a reference.
- */
- V8EXPORT void SetIndexedPropertiesToPixelData(uint8_t* data, int length);
- bool HasIndexedPropertiesInPixelData();
- uint8_t* GetIndexedPropertiesPixelData();
- int GetIndexedPropertiesPixelDataLength();
-
- /**
- * Set the backing store of the indexed properties to be managed by the
- * embedding layer. Access to the indexed properties will follow the rules
- * spelled out for the CanvasArray subtypes in the WebGL specification.
- * Note: The embedding program still owns the data and needs to ensure that
- * the backing store is preserved while V8 has a reference.
- */
- V8EXPORT void SetIndexedPropertiesToExternalArrayData(
- void* data,
- ExternalArrayType array_type,
- int number_of_elements);
- bool HasIndexedPropertiesInExternalArrayData();
- void* GetIndexedPropertiesExternalArrayData();
- ExternalArrayType GetIndexedPropertiesExternalArrayDataType();
- int GetIndexedPropertiesExternalArrayDataLength();
-
- V8EXPORT static Local<Object> New();
- static inline Object* Cast(Value* obj);
- private:
- V8EXPORT Object();
- V8EXPORT static void CheckCast(Value* obj);
- V8EXPORT Local<Value> CheckedGetInternalField(int index);
- V8EXPORT void* SlowGetPointerFromInternalField(int index);
-
- /**
- * If quick access to the internal field is possible this method
- * returns the value. Otherwise an empty handle is returned.
- */
- inline Local<Value> UncheckedGetInternalField(int index);
-};
-
-
-/**
- * An instance of the built-in array constructor (ECMA-262, 15.4.2).
- */
-class Array : public Object {
- public:
- V8EXPORT uint32_t Length() const;
-
- /**
- * Clones an element at index |index|. Returns an empty
- * handle if cloning fails (for any reason).
- */
- V8EXPORT Local<Object> CloneElementAt(uint32_t index);
-
- V8EXPORT static Local<Array> New(int length = 0);
- static inline Array* Cast(Value* obj);
- private:
- V8EXPORT Array();
- static void CheckCast(Value* obj);
-};
-
-
-/**
- * A JavaScript function object (ECMA-262, 15.3).
- */
-class Function : public Object {
- public:
- V8EXPORT Local<Object> NewInstance() const;
- V8EXPORT Local<Object> NewInstance(int argc, Handle<Value> argv[]) const;
- V8EXPORT Local<Value> Call(Handle<Object> recv,
- int argc,
- Handle<Value> argv[]);
- V8EXPORT void SetName(Handle<String> name);
- V8EXPORT Handle<Value> GetName() const;
-
- /**
- * Returns zero based line number of function body and
- * kLineOffsetNotFound if no information available.
- */
- V8EXPORT int GetScriptLineNumber() const;
- V8EXPORT ScriptOrigin GetScriptOrigin() const;
- static inline Function* Cast(Value* obj);
- V8EXPORT static const int kLineOffsetNotFound;
- private:
- V8EXPORT Function();
- V8EXPORT static void CheckCast(Value* obj);
-};
-
-
-/**
- * A JavaScript value that wraps a C++ void*. This type of value is
- * mainly used to associate C++ data structures with JavaScript
- * objects.
- *
- * The Wrap function V8 will return the most optimal Value object wrapping the
- * C++ void*. The type of the value is not guaranteed to be an External object
- * and no assumptions about its type should be made. To access the wrapped
- * value Unwrap should be used, all other operations on that object will lead
- * to unpredictable results.
- */
-class External : public Value {
- public:
- V8EXPORT static Local<Value> Wrap(void* data);
- static inline void* Unwrap(Handle<Value> obj);
-
- V8EXPORT static Local<External> New(void* value);
- static inline External* Cast(Value* obj);
- V8EXPORT void* Value() const;
- private:
- V8EXPORT External();
- V8EXPORT static void CheckCast(v8::Value* obj);
- static inline void* QuickUnwrap(Handle<v8::Value> obj);
- V8EXPORT static void* FullUnwrap(Handle<v8::Value> obj);
-};
-
-
-// --- T e m p l a t e s ---
-
-
-/**
- * The superclass of object and function templates.
- */
-class V8EXPORT Template : public Data {
- public:
- /** Adds a property to each instance created by this template.*/
- void Set(Handle<String> name, Handle<Data> value,
- PropertyAttribute attributes = None);
- inline void Set(const char* name, Handle<Data> value);
- private:
- Template();
-
- friend class ObjectTemplate;
- friend class FunctionTemplate;
-};
-
-
-/**
- * The argument information given to function call callbacks. This
- * class provides access to information about the context of the call,
- * including the receiver, the number and values of arguments, and
- * the holder of the function.
- */
-class Arguments {
- public:
- inline int Length() const;
- inline Local<Value> operator[](int i) const;
- inline Local<Function> Callee() const;
- inline Local<Object> This() const;
- inline Local<Object> Holder() const;
- inline bool IsConstructCall() const;
- inline Local<Value> Data() const;
- private:
- friend class ImplementationUtilities;
- inline Arguments(Local<Value> data,
- Local<Object> holder,
- Local<Function> callee,
- bool is_construct_call,
- void** values, int length);
- Local<Value> data_;
- Local<Object> holder_;
- Local<Function> callee_;
- bool is_construct_call_;
- void** values_;
- int length_;
-};
-
-
-/**
- * The information passed to an accessor callback about the context
- * of the property access.
- */
-class V8EXPORT AccessorInfo {
- public:
- inline AccessorInfo(internal::Object** args)
- : args_(args) { }
- inline Local<Value> Data() const;
- inline Local<Object> This() const;
- inline Local<Object> Holder() const;
- private:
- internal::Object** args_;
-};
-
-
-typedef Handle<Value> (*InvocationCallback)(const Arguments& args);
-
-/**
- * NamedProperty[Getter|Setter] are used as interceptors on object.
- * See ObjectTemplate::SetNamedPropertyHandler.
- */
-typedef Handle<Value> (*NamedPropertyGetter)(Local<String> property,
- const AccessorInfo& info);
-
-
-/**
- * Returns the value if the setter intercepts the request.
- * Otherwise, returns an empty handle.
- */
-typedef Handle<Value> (*NamedPropertySetter)(Local<String> property,
- Local<Value> value,
- const AccessorInfo& info);
-
-/**
- * Returns a non-empty handle if the interceptor intercepts the request.
- * The result is an integer encoding property attributes (like v8::None,
- * v8::DontEnum, etc.)
- */
-typedef Handle<Integer> (*NamedPropertyQuery)(Local<String> property,
- const AccessorInfo& info);
-
-
-/**
- * Returns a non-empty handle if the deleter intercepts the request.
- * The return value is true if the property could be deleted and false
- * otherwise.
- */
-typedef Handle<Boolean> (*NamedPropertyDeleter)(Local<String> property,
- const AccessorInfo& info);
-
-/**
- * Returns an array containing the names of the properties the named
- * property getter intercepts.
- */
-typedef Handle<Array> (*NamedPropertyEnumerator)(const AccessorInfo& info);
-
-
-/**
- * Returns the value of the property if the getter intercepts the
- * request. Otherwise, returns an empty handle.
- */
-typedef Handle<Value> (*IndexedPropertyGetter)(uint32_t index,
- const AccessorInfo& info);
-
-
-/**
- * Returns the value if the setter intercepts the request.
- * Otherwise, returns an empty handle.
- */
-typedef Handle<Value> (*IndexedPropertySetter)(uint32_t index,
- Local<Value> value,
- const AccessorInfo& info);
-
-
-/**
- * Returns a non-empty handle if the interceptor intercepts the request.
- * The result is an integer encoding property attributes.
- */
-typedef Handle<Integer> (*IndexedPropertyQuery)(uint32_t index,
- const AccessorInfo& info);
-
-/**
- * Returns a non-empty handle if the deleter intercepts the request.
- * The return value is true if the property could be deleted and false
- * otherwise.
- */
-typedef Handle<Boolean> (*IndexedPropertyDeleter)(uint32_t index,
- const AccessorInfo& info);
-
-/**
- * Returns an array containing the indices of the properties the
- * indexed property getter intercepts.
- */
-typedef Handle<Array> (*IndexedPropertyEnumerator)(const AccessorInfo& info);
-
-
-/**
- * Access type specification.
- */
-enum AccessType {
- ACCESS_GET,
- ACCESS_SET,
- ACCESS_HAS,
- ACCESS_DELETE,
- ACCESS_KEYS
-};
-
-
-/**
- * Returns true if cross-context access should be allowed to the named
- * property with the given key on the host object.
- */
-typedef bool (*NamedSecurityCallback)(Local<Object> host,
- Local<Value> key,
- AccessType type,
- Local<Value> data);
-
-
-/**
- * Returns true if cross-context access should be allowed to the indexed
- * property with the given index on the host object.
- */
-typedef bool (*IndexedSecurityCallback)(Local<Object> host,
- uint32_t index,
- AccessType type,
- Local<Value> data);
-
-
-/**
- * A FunctionTemplate is used to create functions at runtime. There
- * can only be one function created from a FunctionTemplate in a
- * context. The lifetime of the created function is equal to the
- * lifetime of the context. So in case the embedder needs to create
- * temporary functions that can be collected using Scripts is
- * preferred.
- *
- * A FunctionTemplate can have properties, these properties are added to the
- * function object when it is created.
- *
- * A FunctionTemplate has a corresponding instance template which is
- * used to create object instances when the function is used as a
- * constructor. Properties added to the instance template are added to
- * each object instance.
- *
- * A FunctionTemplate can have a prototype template. The prototype template
- * is used to create the prototype object of the function.
- *
- * The following example shows how to use a FunctionTemplate:
- *
- * \code
- * v8::Local<v8::FunctionTemplate> t = v8::FunctionTemplate::New();
- * t->Set("func_property", v8::Number::New(1));
- *
- * v8::Local<v8::Template> proto_t = t->PrototypeTemplate();
- * proto_t->Set("proto_method", v8::FunctionTemplate::New(InvokeCallback));
- * proto_t->Set("proto_const", v8::Number::New(2));
- *
- * v8::Local<v8::ObjectTemplate> instance_t = t->InstanceTemplate();
- * instance_t->SetAccessor("instance_accessor", InstanceAccessorCallback);
- * instance_t->SetNamedPropertyHandler(PropertyHandlerCallback, ...);
- * instance_t->Set("instance_property", Number::New(3));
- *
- * v8::Local<v8::Function> function = t->GetFunction();
- * v8::Local<v8::Object> instance = function->NewInstance();
- * \endcode
- *
- * Let's use "function" as the JS variable name of the function object
- * and "instance" for the instance object created above. The function
- * and the instance will have the following properties:
- *
- * \code
- * func_property in function == true;
- * function.func_property == 1;
- *
- * function.prototype.proto_method() invokes 'InvokeCallback'
- * function.prototype.proto_const == 2;
- *
- * instance instanceof function == true;
- * instance.instance_accessor calls 'InstanceAccessorCallback'
- * instance.instance_property == 3;
- * \endcode
- *
- * A FunctionTemplate can inherit from another one by calling the
- * FunctionTemplate::Inherit method. The following graph illustrates
- * the semantics of inheritance:
- *
- * \code
- * FunctionTemplate Parent -> Parent() . prototype -> { }
- * ^ ^
- * | Inherit(Parent) | .__proto__
- * | |
- * FunctionTemplate Child -> Child() . prototype -> { }
- * \endcode
- *
- * A FunctionTemplate 'Child' inherits from 'Parent', the prototype
- * object of the Child() function has __proto__ pointing to the
- * Parent() function's prototype object. An instance of the Child
- * function has all properties on Parent's instance templates.
- *
- * Let Parent be the FunctionTemplate initialized in the previous
- * section and create a Child FunctionTemplate by:
- *
- * \code
- * Local<FunctionTemplate> parent = t;
- * Local<FunctionTemplate> child = FunctionTemplate::New();
- * child->Inherit(parent);
- *
- * Local<Function> child_function = child->GetFunction();
- * Local<Object> child_instance = child_function->NewInstance();
- * \endcode
- *
- * The Child function and Child instance will have the following
- * properties:
- *
- * \code
- * child_func.prototype.__proto__ == function.prototype;
- * child_instance.instance_accessor calls 'InstanceAccessorCallback'
- * child_instance.instance_property == 3;
- * \endcode
- */
-class V8EXPORT FunctionTemplate : public Template {
- public:
- /** Creates a function template.*/
- static Local<FunctionTemplate> New(
- InvocationCallback callback = 0,
- Handle<Value> data = Handle<Value>(),
- Handle<Signature> signature = Handle<Signature>());
- /** Returns the unique function instance in the current execution context.*/
- Local<Function> GetFunction();
-
- /**
- * Set the call-handler callback for a FunctionTemplate. This
- * callback is called whenever the function created from this
- * FunctionTemplate is called.
- */
- void SetCallHandler(InvocationCallback callback,
- Handle<Value> data = Handle<Value>());
-
- /** Get the InstanceTemplate. */
- Local<ObjectTemplate> InstanceTemplate();
-
- /** Causes the function template to inherit from a parent function template.*/
- void Inherit(Handle<FunctionTemplate> parent);
-
- /**
- * A PrototypeTemplate is the template used to create the prototype object
- * of the function created by this template.
- */
- Local<ObjectTemplate> PrototypeTemplate();
-
-
- /**
- * Set the class name of the FunctionTemplate. This is used for
- * printing objects created with the function created from the
- * FunctionTemplate as its constructor.
- */
- void SetClassName(Handle<String> name);
-
- /**
- * Determines whether the __proto__ accessor ignores instances of
- * the function template. If instances of the function template are
- * ignored, __proto__ skips all instances and instead returns the
- * next object in the prototype chain.
- *
- * Call with a value of true to make the __proto__ accessor ignore
- * instances of the function template. Call with a value of false
- * to make the __proto__ accessor not ignore instances of the
- * function template. By default, instances of a function template
- * are not ignored.
- */
- void SetHiddenPrototype(bool value);
-
- /**
- * Returns true if the given object is an instance of this function
- * template.
- */
- bool HasInstance(Handle<Value> object);
-
- private:
- FunctionTemplate();
- void AddInstancePropertyAccessor(Handle<String> name,
- AccessorGetter getter,
- AccessorSetter setter,
- Handle<Value> data,
- AccessControl settings,
- PropertyAttribute attributes);
- void SetNamedInstancePropertyHandler(NamedPropertyGetter getter,
- NamedPropertySetter setter,
- NamedPropertyQuery query,
- NamedPropertyDeleter remover,
- NamedPropertyEnumerator enumerator,
- Handle<Value> data);
- void SetIndexedInstancePropertyHandler(IndexedPropertyGetter getter,
- IndexedPropertySetter setter,
- IndexedPropertyQuery query,
- IndexedPropertyDeleter remover,
- IndexedPropertyEnumerator enumerator,
- Handle<Value> data);
- void SetInstanceCallAsFunctionHandler(InvocationCallback callback,
- Handle<Value> data);
-
- friend class Context;
- friend class ObjectTemplate;
-};
-
-
-/**
- * An ObjectTemplate is used to create objects at runtime.
- *
- * Properties added to an ObjectTemplate are added to each object
- * created from the ObjectTemplate.
- */
-class V8EXPORT ObjectTemplate : public Template {
- public:
- /** Creates an ObjectTemplate. */
- static Local<ObjectTemplate> New();
-
- /** Creates a new instance of this template.*/
- Local<Object> NewInstance();
-
- /**
- * Sets an accessor on the object template.
- *
- * Whenever the property with the given name is accessed on objects
- * created from this ObjectTemplate the getter and setter callbacks
- * are called instead of getting and setting the property directly
- * on the JavaScript object.
- *
- * \param name The name of the property for which an accessor is added.
- * \param getter The callback to invoke when getting the property.
- * \param setter The callback to invoke when setting the property.
- * \param data A piece of data that will be passed to the getter and setter
- * callbacks whenever they are invoked.
- * \param settings Access control settings for the accessor. This is a bit
- * field consisting of one of more of
- * DEFAULT = 0, ALL_CAN_READ = 1, or ALL_CAN_WRITE = 2.
- * The default is to not allow cross-context access.
- * ALL_CAN_READ means that all cross-context reads are allowed.
- * ALL_CAN_WRITE means that all cross-context writes are allowed.
- * The combination ALL_CAN_READ | ALL_CAN_WRITE can be used to allow all
- * cross-context access.
- * \param attribute The attributes of the property for which an accessor
- * is added.
- */
- void SetAccessor(Handle<String> name,
- AccessorGetter getter,
- AccessorSetter setter = 0,
- Handle<Value> data = Handle<Value>(),
- AccessControl settings = DEFAULT,
- PropertyAttribute attribute = None);
-
- /**
- * Sets a named property handler on the object template.
- *
- * Whenever a named property is accessed on objects created from
- * this object template, the provided callback is invoked instead of
- * accessing the property directly on the JavaScript object.
- *
- * \param getter The callback to invoke when getting a property.
- * \param setter The callback to invoke when setting a property.
- * \param query The callback to invoke to check if a property is present,
- * and if present, get its attributes.
- * \param deleter The callback to invoke when deleting a property.
- * \param enumerator The callback to invoke to enumerate all the named
- * properties of an object.
- * \param data A piece of data that will be passed to the callbacks
- * whenever they are invoked.
- */
- void SetNamedPropertyHandler(NamedPropertyGetter getter,
- NamedPropertySetter setter = 0,
- NamedPropertyQuery query = 0,
- NamedPropertyDeleter deleter = 0,
- NamedPropertyEnumerator enumerator = 0,
- Handle<Value> data = Handle<Value>());
-
- /**
- * Sets an indexed property handler on the object template.
- *
- * Whenever an indexed property is accessed on objects created from
- * this object template, the provided callback is invoked instead of
- * accessing the property directly on the JavaScript object.
- *
- * \param getter The callback to invoke when getting a property.
- * \param setter The callback to invoke when setting a property.
- * \param query The callback to invoke to check is an object has a property.
- * \param deleter The callback to invoke when deleting a property.
- * \param enumerator The callback to invoke to enumerate all the indexed
- * properties of an object.
- * \param data A piece of data that will be passed to the callbacks
- * whenever they are invoked.
- */
- void SetIndexedPropertyHandler(IndexedPropertyGetter getter,
- IndexedPropertySetter setter = 0,
- IndexedPropertyQuery query = 0,
- IndexedPropertyDeleter deleter = 0,
- IndexedPropertyEnumerator enumerator = 0,
- Handle<Value> data = Handle<Value>());
-
- /**
- * Sets the callback to be used when calling instances created from
- * this template as a function. If no callback is set, instances
- * behave like normal JavaScript objects that cannot be called as a
- * function.
- */
- void SetCallAsFunctionHandler(InvocationCallback callback,
- Handle<Value> data = Handle<Value>());
-
- /**
- * Mark object instances of the template as undetectable.
- *
- * In many ways, undetectable objects behave as though they are not
- * there. They behave like 'undefined' in conditionals and when
- * printed. However, properties can be accessed and called as on
- * normal objects.
- */
- void MarkAsUndetectable();
-
- /**
- * Sets access check callbacks on the object template.
- *
- * When accessing properties on instances of this object template,
- * the access check callback will be called to determine whether or
- * not to allow cross-context access to the properties.
- * The last parameter specifies whether access checks are turned
- * on by default on instances. If access checks are off by default,
- * they can be turned on on individual instances by calling
- * Object::TurnOnAccessCheck().
- */
- void SetAccessCheckCallbacks(NamedSecurityCallback named_handler,
- IndexedSecurityCallback indexed_handler,
- Handle<Value> data = Handle<Value>(),
- bool turned_on_by_default = true);
-
- /**
- * Gets the number of internal fields for objects generated from
- * this template.
- */
- int InternalFieldCount();
-
- /**
- * Sets the number of internal fields for objects generated from
- * this template.
- */
- void SetInternalFieldCount(int value);
-
- private:
- ObjectTemplate();
- static Local<ObjectTemplate> New(Handle<FunctionTemplate> constructor);
- friend class FunctionTemplate;
-};
-
-
-/**
- * A Signature specifies which receivers and arguments a function can
- * legally be called with.
- */
-class V8EXPORT Signature : public Data {
- public:
- static Local<Signature> New(Handle<FunctionTemplate> receiver =
- Handle<FunctionTemplate>(),
- int argc = 0,
- Handle<FunctionTemplate> argv[] = 0);
- private:
- Signature();
-};
-
-
-/**
- * A utility for determining the type of objects based on the template
- * they were constructed from.
- */
-class V8EXPORT TypeSwitch : public Data {
- public:
- static Local<TypeSwitch> New(Handle<FunctionTemplate> type);
- static Local<TypeSwitch> New(int argc, Handle<FunctionTemplate> types[]);
- int match(Handle<Value> value);
- private:
- TypeSwitch();
-};
-
-
-// --- E x t e n s i o n s ---
-
-
-/**
- * Ignore
- */
-class V8EXPORT Extension { // NOLINT
- public:
- Extension(const char* name,
- const char* source = 0,
- int dep_count = 0,
- const char** deps = 0);
- virtual ~Extension() { }
- virtual v8::Handle<v8::FunctionTemplate>
- GetNativeFunction(v8::Handle<v8::String> name) {
- return v8::Handle<v8::FunctionTemplate>();
- }
-
- const char* name() { return name_; }
- const char* source() { return source_; }
- int dependency_count() { return dep_count_; }
- const char** dependencies() { return deps_; }
- void set_auto_enable(bool value) { auto_enable_ = value; }
- bool auto_enable() { return auto_enable_; }
-
- private:
- const char* name_;
- const char* source_;
- int dep_count_;
- const char** deps_;
- bool auto_enable_;
-
- // Disallow copying and assigning.
- Extension(const Extension&);
- void operator=(const Extension&);
-};
-
-
-void V8EXPORT RegisterExtension(Extension* extension);
-
-
-/**
- * Ignore
- */
-class V8EXPORT DeclareExtension {
- public:
- inline DeclareExtension(Extension* extension) {
- RegisterExtension(extension);
- }
-};
-
-
-// --- S t a t i c s ---
-
-
-Handle<Primitive> V8EXPORT Undefined();
-Handle<Primitive> V8EXPORT Null();
-Handle<Boolean> V8EXPORT True();
-Handle<Boolean> V8EXPORT False();
-
-
-/**
- * A set of constraints that specifies the limits of the runtime's memory use.
- * You must set the heap size before initializing the VM - the size cannot be
- * adjusted after the VM is initialized.
- *
- * If you are using threads then you should hold the V8::Locker lock while
- * setting the stack limit and you must set a non-default stack limit separately
- * for each thread.
- */
-class V8EXPORT ResourceConstraints {
- public:
- ResourceConstraints();
- int max_young_space_size() const { return max_young_space_size_; }
- void set_max_young_space_size(int value) { max_young_space_size_ = value; }
- int max_old_space_size() const { return max_old_space_size_; }
- void set_max_old_space_size(int value) { max_old_space_size_ = value; }
- uint32_t* stack_limit() const { return stack_limit_; }
- // Sets an address beyond which the VM's stack may not grow.
- void set_stack_limit(uint32_t* value) { stack_limit_ = value; }
- private:
- int max_young_space_size_;
- int max_old_space_size_;
- uint32_t* stack_limit_;
-};
-
-
-bool V8EXPORT SetResourceConstraints(ResourceConstraints* constraints);
-
-
-// --- E x c e p t i o n s ---
-
-
-typedef void (*FatalErrorCallback)(const char* location, const char* message);
-
-
-typedef void (*MessageCallback)(Handle<Message> message, Handle<Value> data);
-
-
-/**
- * Schedules an exception to be thrown when returning to JavaScript. When an
- * exception has been scheduled it is illegal to invoke any JavaScript
- * operation; the caller must return immediately and only after the exception
- * has been handled does it become legal to invoke JavaScript operations.
- */
-Handle<Value> V8EXPORT ThrowException(Handle<Value> exception);
-
-/**
- * Create new error objects by calling the corresponding error object
- * constructor with the message.
- */
-class V8EXPORT Exception {
- public:
- static Local<Value> RangeError(Handle<String> message);
- static Local<Value> ReferenceError(Handle<String> message);
- static Local<Value> SyntaxError(Handle<String> message);
- static Local<Value> TypeError(Handle<String> message);
- static Local<Value> Error(Handle<String> message);
-};
-
-
-// --- C o u n t e r s C a l l b a c k s ---
-
-typedef int* (*CounterLookupCallback)(const char* name);
-
-typedef void* (*CreateHistogramCallback)(const char* name,
- int min,
- int max,
- size_t buckets);
-
-typedef void (*AddHistogramSampleCallback)(void* histogram, int sample);
-
-// --- M e m o r y A l l o c a t i o n C a l l b a c k ---
- enum ObjectSpace {
- kObjectSpaceNewSpace = 1 << 0,
- kObjectSpaceOldPointerSpace = 1 << 1,
- kObjectSpaceOldDataSpace = 1 << 2,
- kObjectSpaceCodeSpace = 1 << 3,
- kObjectSpaceMapSpace = 1 << 4,
- kObjectSpaceLoSpace = 1 << 5,
-
- kObjectSpaceAll = kObjectSpaceNewSpace | kObjectSpaceOldPointerSpace |
- kObjectSpaceOldDataSpace | kObjectSpaceCodeSpace | kObjectSpaceMapSpace |
- kObjectSpaceLoSpace
- };
-
- enum AllocationAction {
- kAllocationActionAllocate = 1 << 0,
- kAllocationActionFree = 1 << 1,
- kAllocationActionAll = kAllocationActionAllocate | kAllocationActionFree
- };
-
-typedef void (*MemoryAllocationCallback)(ObjectSpace space,
- AllocationAction action,
- int size);
-
-// --- F a i l e d A c c e s s C h e c k C a l l b a c k ---
-typedef void (*FailedAccessCheckCallback)(Local<Object> target,
- AccessType type,
- Local<Value> data);
-
-// --- G a r b a g e C o l l e c t i o n C a l l b a c k s
-
-/**
- * Applications can register callback functions which will be called
- * before and after a garbage collection. Allocations are not
- * allowed in the callback functions, you therefore cannot manipulate
- * objects (set or delete properties for example) since it is possible
- * such operations will result in the allocation of objects.
- */
-enum GCType {
- kGCTypeScavenge = 1 << 0,
- kGCTypeMarkSweepCompact = 1 << 1,
- kGCTypeAll = kGCTypeScavenge | kGCTypeMarkSweepCompact
-};
-
-enum GCCallbackFlags {
- kNoGCCallbackFlags = 0,
- kGCCallbackFlagCompacted = 1 << 0
-};
-
-typedef void (*GCPrologueCallback)(GCType type, GCCallbackFlags flags);
-typedef void (*GCEpilogueCallback)(GCType type, GCCallbackFlags flags);
-
-typedef void (*GCCallback)();
-
-
-/**
- * Profiler modules.
- *
- * In V8, profiler consists of several modules: CPU profiler, and different
- * kinds of heap profiling. Each can be turned on / off independently.
- * When PROFILER_MODULE_HEAP_SNAPSHOT flag is passed to ResumeProfilerEx,
- * modules are enabled only temporarily for making a snapshot of the heap.
- */
-enum ProfilerModules {
- PROFILER_MODULE_NONE = 0,
- PROFILER_MODULE_CPU = 1,
- PROFILER_MODULE_HEAP_STATS = 1 << 1,
- PROFILER_MODULE_JS_CONSTRUCTORS = 1 << 2,
- PROFILER_MODULE_HEAP_SNAPSHOT = 1 << 16
-};
-
-
-/**
- * Collection of V8 heap information.
- *
- * Instances of this class can be passed to v8::V8::HeapStatistics to
- * get heap statistics from V8.
- */
-class V8EXPORT HeapStatistics {
- public:
- HeapStatistics();
- size_t total_heap_size() { return total_heap_size_; }
- size_t used_heap_size() { return used_heap_size_; }
-
- private:
- void set_total_heap_size(size_t size) { total_heap_size_ = size; }
- void set_used_heap_size(size_t size) { used_heap_size_ = size; }
-
- size_t total_heap_size_;
- size_t used_heap_size_;
-
- friend class V8;
-};
-
-
-/**
- * Container class for static utility functions.
- */
-class V8EXPORT V8 {
- public:
- /** Set the callback to invoke in case of fatal errors. */
- static void SetFatalErrorHandler(FatalErrorCallback that);
-
- /**
- * Ignore out-of-memory exceptions.
- *
- * V8 running out of memory is treated as a fatal error by default.
- * This means that the fatal error handler is called and that V8 is
- * terminated.
- *
- * IgnoreOutOfMemoryException can be used to not treat a
- * out-of-memory situation as a fatal error. This way, the contexts
- * that did not cause the out of memory problem might be able to
- * continue execution.
- */
- static void IgnoreOutOfMemoryException();
-
- /**
- * Check if V8 is dead and therefore unusable. This is the case after
- * fatal errors such as out-of-memory situations.
- */
- static bool IsDead();
-
- /**
- * Adds a message listener.
- *
- * The same message listener can be added more than once and it that
- * case it will be called more than once for each message.
- */
- static bool AddMessageListener(MessageCallback that,
- Handle<Value> data = Handle<Value>());
-
- /**
- * Remove all message listeners from the specified callback function.
- */
- static void RemoveMessageListeners(MessageCallback that);
-
- /**
- * Tells V8 to capture current stack trace when uncaught exception occurs
- * and report it to the message listeners. The option is off by default.
- */
- static void SetCaptureStackTraceForUncaughtExceptions(
- bool capture,
- int frame_limit = 10,
- StackTrace::StackTraceOptions options = StackTrace::kOverview);
-
- /**
- * Sets V8 flags from a string.
- */
- static void SetFlagsFromString(const char* str, int length);
-
- /**
- * Sets V8 flags from the command line.
- */
- static void SetFlagsFromCommandLine(int* argc,
- char** argv,
- bool remove_flags);
-
- /** Get the version string. */
- static const char* GetVersion();
-
- /**
- * Enables the host application to provide a mechanism for recording
- * statistics counters.
- */
- static void SetCounterFunction(CounterLookupCallback);
-
- /**
- * Enables the host application to provide a mechanism for recording
- * histograms. The CreateHistogram function returns a
- * histogram which will later be passed to the AddHistogramSample
- * function.
- */
- static void SetCreateHistogramFunction(CreateHistogramCallback);
- static void SetAddHistogramSampleFunction(AddHistogramSampleCallback);
-
- /**
- * Enables the computation of a sliding window of states. The sliding
- * window information is recorded in statistics counters.
- */
- static void EnableSlidingStateWindow();
-
- /** Callback function for reporting failed access checks.*/
- static void SetFailedAccessCheckCallbackFunction(FailedAccessCheckCallback);
-
- /**
- * Enables the host application to receive a notification before a
- * garbage collection. Allocations are not allowed in the
- * callback function, you therefore cannot manipulate objects (set
- * or delete properties for example) since it is possible such
- * operations will result in the allocation of objects. It is possible
- * to specify the GCType filter for your callback. But it is not possible to
- * register the same callback function two times with different
- * GCType filters.
- */
- static void AddGCPrologueCallback(
- GCPrologueCallback callback, GCType gc_type_filter = kGCTypeAll);
-
- /**
- * This function removes callback which was installed by
- * AddGCPrologueCallback function.
- */
- static void RemoveGCPrologueCallback(GCPrologueCallback callback);
-
- /**
- * The function is deprecated. Please use AddGCPrologueCallback instead.
- * Enables the host application to receive a notification before a
- * garbage collection. Allocations are not allowed in the
- * callback function, you therefore cannot manipulate objects (set
- * or delete properties for example) since it is possible such
- * operations will result in the allocation of objects.
- */
- static void SetGlobalGCPrologueCallback(GCCallback);
-
- /**
- * Enables the host application to receive a notification after a
- * garbage collection. Allocations are not allowed in the
- * callback function, you therefore cannot manipulate objects (set
- * or delete properties for example) since it is possible such
- * operations will result in the allocation of objects. It is possible
- * to specify the GCType filter for your callback. But it is not possible to
- * register the same callback function two times with different
- * GCType filters.
- */
- static void AddGCEpilogueCallback(
- GCEpilogueCallback callback, GCType gc_type_filter = kGCTypeAll);
-
- /**
- * This function removes callback which was installed by
- * AddGCEpilogueCallback function.
- */
- static void RemoveGCEpilogueCallback(GCEpilogueCallback callback);
-
- /**
- * The function is deprecated. Please use AddGCEpilogueCallback instead.
- * Enables the host application to receive a notification after a
- * major garbage collection. Allocations are not allowed in the
- * callback function, you therefore cannot manipulate objects (set
- * or delete properties for example) since it is possible such
- * operations will result in the allocation of objects.
- */
- static void SetGlobalGCEpilogueCallback(GCCallback);
-
- /**
- * Enables the host application to provide a mechanism to be notified
- * and perform custom logging when V8 Allocates Executable Memory.
- */
- static void AddMemoryAllocationCallback(MemoryAllocationCallback callback,
- ObjectSpace space,
- AllocationAction action);
-
- /**
- * This function removes callback which was installed by
- * AddMemoryAllocationCallback function.
- */
- static void RemoveMemoryAllocationCallback(MemoryAllocationCallback callback);
-
- /**
- * Allows the host application to group objects together. If one
- * object in the group is alive, all objects in the group are alive.
- * After each garbage collection, object groups are removed. It is
- * intended to be used in the before-garbage-collection callback
- * function, for instance to simulate DOM tree connections among JS
- * wrapper objects.
- */
- static void AddObjectGroup(Persistent<Value>* objects, size_t length);
-
- /**
- * Initializes from snapshot if possible. Otherwise, attempts to
- * initialize from scratch. This function is called implicitly if
- * you use the API without calling it first.
- */
- static bool Initialize();
-
- /**
- * Adjusts the amount of registered external memory. Used to give
- * V8 an indication of the amount of externally allocated memory
- * that is kept alive by JavaScript objects. V8 uses this to decide
- * when to perform global garbage collections. Registering
- * externally allocated memory will trigger global garbage
- * collections more often than otherwise in an attempt to garbage
- * collect the JavaScript objects keeping the externally allocated
- * memory alive.
- *
- * \param change_in_bytes the change in externally allocated memory
- * that is kept alive by JavaScript objects.
- * \returns the adjusted value.
- */
- static int AdjustAmountOfExternalAllocatedMemory(int change_in_bytes);
-
- /**
- * Suspends recording of tick samples in the profiler.
- * When the V8 profiling mode is enabled (usually via command line
- * switches) this function suspends recording of tick samples.
- * Profiling ticks are discarded until ResumeProfiler() is called.
- *
- * See also the --prof and --prof_auto command line switches to
- * enable V8 profiling.
- */
- static void PauseProfiler();
-
- /**
- * Resumes recording of tick samples in the profiler.
- * See also PauseProfiler().
- */
- static void ResumeProfiler();
-
- /**
- * Return whether profiler is currently paused.
- */
- static bool IsProfilerPaused();
-
- /**
- * Resumes specified profiler modules. Can be called several times to
- * mark the opening of a profiler events block with the given tag.
- *
- * "ResumeProfiler" is equivalent to "ResumeProfilerEx(PROFILER_MODULE_CPU)".
- * See ProfilerModules enum.
- *
- * \param flags Flags specifying profiler modules.
- * \param tag Profile tag.
- */
- static void ResumeProfilerEx(int flags, int tag = 0);
-
- /**
- * Pauses specified profiler modules. Each call to "PauseProfilerEx" closes
- * a block of profiler events opened by a call to "ResumeProfilerEx" with the
- * same tag value. There is no need for blocks to be properly nested.
- * The profiler is paused when the last opened block is closed.
- *
- * "PauseProfiler" is equivalent to "PauseProfilerEx(PROFILER_MODULE_CPU)".
- * See ProfilerModules enum.
- *
- * \param flags Flags specifying profiler modules.
- * \param tag Profile tag.
- */
- static void PauseProfilerEx(int flags, int tag = 0);
-
- /**
- * Returns active (resumed) profiler modules.
- * See ProfilerModules enum.
- *
- * \returns active profiler modules.
- */
- static int GetActiveProfilerModules();
-
- /**
- * If logging is performed into a memory buffer (via --logfile=*), allows to
- * retrieve previously written messages. This can be used for retrieving
- * profiler log data in the application. This function is thread-safe.
- *
- * Caller provides a destination buffer that must exist during GetLogLines
- * call. Only whole log lines are copied into the buffer.
- *
- * \param from_pos specified a point in a buffer to read from, 0 is the
- * beginning of a buffer. It is assumed that caller updates its current
- * position using returned size value from the previous call.
- * \param dest_buf destination buffer for log data.
- * \param max_size size of the destination buffer.
- * \returns actual size of log data copied into buffer.
- */
- static int GetLogLines(int from_pos, char* dest_buf, int max_size);
-
- /**
- * The minimum allowed size for a log lines buffer. If the size of
- * the buffer given will not be enough to hold a line of the maximum
- * length, an attempt to find a log line end in GetLogLines will
- * fail, and an empty result will be returned.
- */
- static const int kMinimumSizeForLogLinesBuffer = 2048;
-
- /**
- * Retrieve the V8 thread id of the calling thread.
- *
- * The thread id for a thread should only be retrieved after the V8
- * lock has been acquired with a Locker object with that thread.
- */
- static int GetCurrentThreadId();
-
- /**
- * Forcefully terminate execution of a JavaScript thread. This can
- * be used to terminate long-running scripts.
- *
- * TerminateExecution should only be called when then V8 lock has
- * been acquired with a Locker object. Therefore, in order to be
- * able to terminate long-running threads, preemption must be
- * enabled to allow the user of TerminateExecution to acquire the
- * lock.
- *
- * The termination is achieved by throwing an exception that is
- * uncatchable by JavaScript exception handlers. Termination
- * exceptions act as if they were caught by a C++ TryCatch exception
- * handlers. If forceful termination is used, any C++ TryCatch
- * exception handler that catches an exception should check if that
- * exception is a termination exception and immediately return if
- * that is the case. Returning immediately in that case will
- * continue the propagation of the termination exception if needed.
- *
- * The thread id passed to TerminateExecution must have been
- * obtained by calling GetCurrentThreadId on the thread in question.
- *
- * \param thread_id The thread id of the thread to terminate.
- */
- static void TerminateExecution(int thread_id);
-
- /**
- * Forcefully terminate the current thread of JavaScript execution.
- *
- * This method can be used by any thread even if that thread has not
- * acquired the V8 lock with a Locker object.
- */
- static void TerminateExecution();
-
- /**
- * Is V8 terminating JavaScript execution.
- *
- * Returns true if JavaScript execution is currently terminating
- * because of a call to TerminateExecution. In that case there are
- * still JavaScript frames on the stack and the termination
- * exception is still active.
- */
- static bool IsExecutionTerminating();
-
- /**
- * Releases any resources used by v8 and stops any utility threads
- * that may be running. Note that disposing v8 is permanent, it
- * cannot be reinitialized.
- *
- * It should generally not be necessary to dispose v8 before exiting
- * a process, this should happen automatically. It is only necessary
- * to use if the process needs the resources taken up by v8.
- */
- static bool Dispose();
-
- /**
- * Get statistics about the heap memory usage.
- */
- static void GetHeapStatistics(HeapStatistics* heap_statistics);
-
- /**
- * Optional notification that the embedder is idle.
- * V8 uses the notification to reduce memory footprint.
- * This call can be used repeatedly if the embedder remains idle.
- * Returns true if the embedder should stop calling IdleNotification
- * until real work has been done. This indicates that V8 has done
- * as much cleanup as it will be able to do.
- */
- static bool IdleNotification();
-
- /**
- * Optional notification that the system is running low on memory.
- * V8 uses these notifications to attempt to free memory.
- */
- static void LowMemoryNotification();
-
- /**
- * Optional notification that a context has been disposed. V8 uses
- * these notifications to guide the GC heuristic. Returns the number
- * of context disposals - including this one - since the last time
- * V8 had a chance to clean up.
- */
- static int ContextDisposedNotification();
-
- private:
- V8();
-
- static internal::Object** GlobalizeReference(internal::Object** handle);
- static void DisposeGlobal(internal::Object** global_handle);
- static void MakeWeak(internal::Object** global_handle,
- void* data,
- WeakReferenceCallback);
- static void ClearWeak(internal::Object** global_handle);
- static bool IsGlobalNearDeath(internal::Object** global_handle);
- static bool IsGlobalWeak(internal::Object** global_handle);
-
- template <class T> friend class Handle;
- template <class T> friend class Local;
- template <class T> friend class Persistent;
- friend class Context;
-};
-
-
-/**
- * An external exception handler.
- */
-class V8EXPORT TryCatch {
- public:
-
- /**
- * Creates a new try/catch block and registers it with v8.
- */
- TryCatch();
-
- /**
- * Unregisters and deletes this try/catch block.
- */
- ~TryCatch();
-
- /**
- * Returns true if an exception has been caught by this try/catch block.
- */
- bool HasCaught() const;
-
- /**
- * For certain types of exceptions, it makes no sense to continue
- * execution.
- *
- * Currently, the only type of exception that can be caught by a
- * TryCatch handler and for which it does not make sense to continue
- * is termination exception. Such exceptions are thrown when the
- * TerminateExecution methods are called to terminate a long-running
- * script.
- *
- * If CanContinue returns false, the correct action is to perform
- * any C++ cleanup needed and then return.
- */
- bool CanContinue() const;
-
- /**
- * Throws the exception caught by this TryCatch in a way that avoids
- * it being caught again by this same TryCatch. As with ThrowException
- * it is illegal to execute any JavaScript operations after calling
- * ReThrow; the caller must return immediately to where the exception
- * is caught.
- */
- Handle<Value> ReThrow();
-
- /**
- * Returns the exception caught by this try/catch block. If no exception has
- * been caught an empty handle is returned.
- *
- * The returned handle is valid until this TryCatch block has been destroyed.
- */
- Local<Value> Exception() const;
-
- /**
- * Returns the .stack property of the thrown object. If no .stack
- * property is present an empty handle is returned.
- */
- Local<Value> StackTrace() const;
-
- /**
- * Returns the message associated with this exception. If there is
- * no message associated an empty handle is returned.
- *
- * The returned handle is valid until this TryCatch block has been
- * destroyed.
- */
- Local<v8::Message> Message() const;
-
- /**
- * Clears any exceptions that may have been caught by this try/catch block.
- * After this method has been called, HasCaught() will return false.
- *
- * It is not necessary to clear a try/catch block before using it again; if
- * another exception is thrown the previously caught exception will just be
- * overwritten. However, it is often a good idea since it makes it easier
- * to determine which operation threw a given exception.
- */
- void Reset();
-
- /**
- * Set verbosity of the external exception handler.
- *
- * By default, exceptions that are caught by an external exception
- * handler are not reported. Call SetVerbose with true on an
- * external exception handler to have exceptions caught by the
- * handler reported as if they were not caught.
- */
- void SetVerbose(bool value);
-
- /**
- * Set whether or not this TryCatch should capture a Message object
- * which holds source information about where the exception
- * occurred. True by default.
- */
- void SetCaptureMessage(bool value);
-
- private:
- void* next_;
- void* exception_;
- void* message_;
- bool is_verbose_ : 1;
- bool can_continue_ : 1;
- bool capture_message_ : 1;
- bool rethrow_ : 1;
-
- friend class v8::internal::Top;
-};
-
-
-// --- C o n t e x t ---
-
-
-/**
- * Ignore
- */
-class V8EXPORT ExtensionConfiguration {
- public:
- ExtensionConfiguration(int name_count, const char* names[])
- : name_count_(name_count), names_(names) { }
- private:
- friend class ImplementationUtilities;
- int name_count_;
- const char** names_;
-};
-
-
-/**
- * A sandboxed execution context with its own set of built-in objects
- * and functions.
- */
-class V8EXPORT Context {
- public:
- /** Returns the global object of the context. */
- Local<Object> Global();
-
- /**
- * Detaches the global object from its context before
- * the global object can be reused to create a new context.
- */
- void DetachGlobal();
-
- /**
- * Reattaches a global object to a context. This can be used to
- * restore the connection between a global object and a context
- * after DetachGlobal has been called.
- *
- * \param global_object The global object to reattach to the
- * context. For this to work, the global object must be the global
- * object that was associated with this context before a call to
- * DetachGlobal.
- */
- void ReattachGlobal(Handle<Object> global_object);
-
- /** Creates a new context.
- *
- * Returns a persistent handle to the newly allocated context. This
- * persistent handle has to be disposed when the context is no
- * longer used so the context can be garbage collected.
- */
- static Persistent<Context> New(
- ExtensionConfiguration* extensions = NULL,
- Handle<ObjectTemplate> global_template = Handle<ObjectTemplate>(),
- Handle<Value> global_object = Handle<Value>());
-
- /** Returns the last entered context. */
- static Local<Context> GetEntered();
-
- /** Returns the context that is on the top of the stack. */
- static Local<Context> GetCurrent();
-
- /**
- * Returns the context of the calling JavaScript code. That is the
- * context of the top-most JavaScript frame. If there are no
- * JavaScript frames an empty handle is returned.
- */
- static Local<Context> GetCalling();
-
- /**
- * Sets the security token for the context. To access an object in
- * another context, the security tokens must match.
- */
- void SetSecurityToken(Handle<Value> token);
-
- /** Restores the security token to the default value. */
- void UseDefaultSecurityToken();
-
- /** Returns the security token of this context.*/
- Handle<Value> GetSecurityToken();
-
- /**
- * Enter this context. After entering a context, all code compiled
- * and run is compiled and run in this context. If another context
- * is already entered, this old context is saved so it can be
- * restored when the new context is exited.
- */
- void Enter();
-
- /**
- * Exit this context. Exiting the current context restores the
- * context that was in place when entering the current context.
- */
- void Exit();
-
- /** Returns true if the context has experienced an out of memory situation. */
- bool HasOutOfMemoryException();
-
- /** Returns true if V8 has a current context. */
- static bool InContext();
-
- /**
- * Associate an additional data object with the context. This is mainly used
- * with the debugger to provide additional information on the context through
- * the debugger API.
- */
- void SetData(Handle<String> data);
- Local<Value> GetData();
-
- /**
- * Stack-allocated class which sets the execution context for all
- * operations executed within a local scope.
- */
- class Scope {
- public:
- inline Scope(Handle<Context> context) : context_(context) {
- context_->Enter();
- }
- inline ~Scope() { context_->Exit(); }
- private:
- Handle<Context> context_;
- };
-
- private:
- friend class Value;
- friend class Script;
- friend class Object;
- friend class Function;
-};
-
-
-/**
- * Multiple threads in V8 are allowed, but only one thread at a time
- * is allowed to use V8. The definition of 'using V8' includes
- * accessing handles or holding onto object pointers obtained from V8
- * handles. It is up to the user of V8 to ensure (perhaps with
- * locking) that this constraint is not violated.
- *
- * If you wish to start using V8 in a thread you can do this by constructing
- * a v8::Locker object. After the code using V8 has completed for the
- * current thread you can call the destructor. This can be combined
- * with C++ scope-based construction as follows:
- *
- * \code
- * ...
- * {
- * v8::Locker locker;
- * ...
- * // Code using V8 goes here.
- * ...
- * } // Destructor called here
- * \endcode
- *
- * If you wish to stop using V8 in a thread A you can do this by either
- * by destroying the v8::Locker object as above or by constructing a
- * v8::Unlocker object:
- *
- * \code
- * {
- * v8::Unlocker unlocker;
- * ...
- * // Code not using V8 goes here while V8 can run in another thread.
- * ...
- * } // Destructor called here.
- * \endcode
- *
- * The Unlocker object is intended for use in a long-running callback
- * from V8, where you want to release the V8 lock for other threads to
- * use.
- *
- * The v8::Locker is a recursive lock. That is, you can lock more than
- * once in a given thread. This can be useful if you have code that can
- * be called either from code that holds the lock or from code that does
- * not. The Unlocker is not recursive so you can not have several
- * Unlockers on the stack at once, and you can not use an Unlocker in a
- * thread that is not inside a Locker's scope.
- *
- * An unlocker will unlock several lockers if it has to and reinstate
- * the correct depth of locking on its destruction. eg.:
- *
- * \code
- * // V8 not locked.
- * {
- * v8::Locker locker;
- * // V8 locked.
- * {
- * v8::Locker another_locker;
- * // V8 still locked (2 levels).
- * {
- * v8::Unlocker unlocker;
- * // V8 not locked.
- * }
- * // V8 locked again (2 levels).
- * }
- * // V8 still locked (1 level).
- * }
- * // V8 Now no longer locked.
- * \endcode
- */
-class V8EXPORT Unlocker {
- public:
- Unlocker();
- ~Unlocker();
-};
-
-
-class V8EXPORT Locker {
- public:
- Locker();
- ~Locker();
-
- /**
- * Start preemption.
- *
- * When preemption is started, a timer is fired every n milli seconds
- * that will switch between multiple threads that are in contention
- * for the V8 lock.
- */
- static void StartPreemption(int every_n_ms);
-
- /**
- * Stop preemption.
- */
- static void StopPreemption();
-
- /**
- * Returns whether or not the locker is locked by the current thread.
- */
- static bool IsLocked();
-
- /**
- * Returns whether v8::Locker is being used by this V8 instance.
- */
- static bool IsActive() { return active_; }
-
- private:
- bool has_lock_;
- bool top_level_;
-
- static bool active_;
-
- // Disallow copying and assigning.
- Locker(const Locker&);
- void operator=(const Locker&);
-};
-
-
-/**
- * An interface for exporting data from V8, using "push" model.
- */
-class V8EXPORT OutputStream {
-public:
- enum OutputEncoding {
- kAscii = 0 // 7-bit ASCII.
- };
- enum WriteResult {
- kContinue = 0,
- kAbort = 1
- };
- virtual ~OutputStream() {}
- /** Notify about the end of stream. */
- virtual void EndOfStream() = 0;
- /** Get preferred output chunk size. Called only once. */
- virtual int GetChunkSize() { return 1024; }
- /** Get preferred output encoding. Called only once. */
- virtual OutputEncoding GetOutputEncoding() { return kAscii; }
- /**
- * Writes the next chunk of snapshot data into the stream. Writing
- * can be stopped by returning kAbort as function result. EndOfStream
- * will not be called in case writing was aborted.
- */
- virtual WriteResult WriteAsciiChunk(char* data, int size) = 0;
-};
-
-
-
-// --- I m p l e m e n t a t i o n ---
-
-
-namespace internal {
-
-
-// Tag information for HeapObject.
-const int kHeapObjectTag = 1;
-const int kHeapObjectTagSize = 2;
-const intptr_t kHeapObjectTagMask = (1 << kHeapObjectTagSize) - 1;
-
-// Tag information for Smi.
-const int kSmiTag = 0;
-const int kSmiTagSize = 1;
-const intptr_t kSmiTagMask = (1 << kSmiTagSize) - 1;
-
-template <size_t ptr_size> struct SmiConstants;
-
-// Smi constants for 32-bit systems.
-template <> struct SmiConstants<4> {
- static const int kSmiShiftSize = 0;
- static const int kSmiValueSize = 31;
- static inline int SmiToInt(internal::Object* value) {
- int shift_bits = kSmiTagSize + kSmiShiftSize;
- // Throw away top 32 bits and shift down (requires >> to be sign extending).
- return static_cast<int>(reinterpret_cast<intptr_t>(value)) >> shift_bits;
- }
-};
-
-// Smi constants for 64-bit systems.
-template <> struct SmiConstants<8> {
- static const int kSmiShiftSize = 31;
- static const int kSmiValueSize = 32;
- static inline int SmiToInt(internal::Object* value) {
- int shift_bits = kSmiTagSize + kSmiShiftSize;
- // Shift down and throw away top 32 bits.
- return static_cast<int>(reinterpret_cast<intptr_t>(value) >> shift_bits);
- }
-};
-
-const int kSmiShiftSize = SmiConstants<sizeof(void*)>::kSmiShiftSize;
-const int kSmiValueSize = SmiConstants<sizeof(void*)>::kSmiValueSize;
-
-template <size_t ptr_size> struct InternalConstants;
-
-// Internal constants for 32-bit systems.
-template <> struct InternalConstants<4> {
- static const int kStringResourceOffset = 3 * sizeof(void*);
-};
-
-// Internal constants for 64-bit systems.
-template <> struct InternalConstants<8> {
- static const int kStringResourceOffset = 3 * sizeof(void*);
-};
-
-/**
- * This class exports constants and functionality from within v8 that
- * is necessary to implement inline functions in the v8 api. Don't
- * depend on functions and constants defined here.
- */
-class Internals {
- public:
-
- // These values match non-compiler-dependent values defined within
- // the implementation of v8.
- static const int kHeapObjectMapOffset = 0;
- static const int kMapInstanceTypeOffset = sizeof(void*) + sizeof(int);
- static const int kStringResourceOffset =
- InternalConstants<sizeof(void*)>::kStringResourceOffset;
-
- static const int kProxyProxyOffset = sizeof(void*);
- static const int kJSObjectHeaderSize = 3 * sizeof(void*);
- static const int kFullStringRepresentationMask = 0x07;
- static const int kExternalTwoByteRepresentationTag = 0x02;
-
- static const int kJSObjectType = 0x9f;
- static const int kFirstNonstringType = 0x80;
- static const int kProxyType = 0x85;
-
- static inline bool HasHeapObjectTag(internal::Object* value) {
- return ((reinterpret_cast<intptr_t>(value) & kHeapObjectTagMask) ==
- kHeapObjectTag);
- }
-
- static inline bool HasSmiTag(internal::Object* value) {
- return ((reinterpret_cast<intptr_t>(value) & kSmiTagMask) == kSmiTag);
- }
-
- static inline int SmiValue(internal::Object* value) {
- return SmiConstants<sizeof(void*)>::SmiToInt(value);
- }
-
- static inline int GetInstanceType(internal::Object* obj) {
- typedef internal::Object O;
- O* map = ReadField<O*>(obj, kHeapObjectMapOffset);
- return ReadField<uint8_t>(map, kMapInstanceTypeOffset);
- }
-
- static inline void* GetExternalPointer(internal::Object* obj) {
- if (HasSmiTag(obj)) {
- return obj;
- } else if (GetInstanceType(obj) == kProxyType) {
- return ReadField<void*>(obj, kProxyProxyOffset);
- } else {
- return NULL;
- }
- }
-
- static inline bool IsExternalTwoByteString(int instance_type) {
- int representation = (instance_type & kFullStringRepresentationMask);
- return representation == kExternalTwoByteRepresentationTag;
- }
-
- template <typename T>
- static inline T ReadField(Object* ptr, int offset) {
- uint8_t* addr = reinterpret_cast<uint8_t*>(ptr) + offset - kHeapObjectTag;
- return *reinterpret_cast<T*>(addr);
- }
-
-};
-
-}
-
-
-template <class T>
-Handle<T>::Handle() : val_(0) { }
-
-
-template <class T>
-Local<T>::Local() : Handle<T>() { }
-
-
-template <class T>
-Local<T> Local<T>::New(Handle<T> that) {
- if (that.IsEmpty()) return Local<T>();
- internal::Object** p = reinterpret_cast<internal::Object**>(*that);
- return Local<T>(reinterpret_cast<T*>(HandleScope::CreateHandle(*p)));
-}
-
-
-template <class T>
-Persistent<T> Persistent<T>::New(Handle<T> that) {
- if (that.IsEmpty()) return Persistent<T>();
- internal::Object** p = reinterpret_cast<internal::Object**>(*that);
- return Persistent<T>(reinterpret_cast<T*>(V8::GlobalizeReference(p)));
-}
-
-
-template <class T>
-bool Persistent<T>::IsNearDeath() const {
- if (this->IsEmpty()) return false;
- return V8::IsGlobalNearDeath(reinterpret_cast<internal::Object**>(**this));
-}
-
-
-template <class T>
-bool Persistent<T>::IsWeak() const {
- if (this->IsEmpty()) return false;
- return V8::IsGlobalWeak(reinterpret_cast<internal::Object**>(**this));
-}
-
-
-template <class T>
-void Persistent<T>::Dispose() {
- if (this->IsEmpty()) return;
- V8::DisposeGlobal(reinterpret_cast<internal::Object**>(**this));
-}
-
-
-template <class T>
-Persistent<T>::Persistent() : Handle<T>() { }
-
-template <class T>
-void Persistent<T>::MakeWeak(void* parameters, WeakReferenceCallback callback) {
- V8::MakeWeak(reinterpret_cast<internal::Object**>(**this),
- parameters,
- callback);
-}
-
-template <class T>
-void Persistent<T>::ClearWeak() {
- V8::ClearWeak(reinterpret_cast<internal::Object**>(**this));
-}
-
-
-Arguments::Arguments(v8::Local<v8::Value> data,
- v8::Local<v8::Object> holder,
- v8::Local<v8::Function> callee,
- bool is_construct_call,
- void** values, int length)
- : data_(data), holder_(holder), callee_(callee),
- is_construct_call_(is_construct_call),
- values_(values), length_(length) { }
-
-
-Local<Value> Arguments::operator[](int i) const {
- if (i < 0 || length_ <= i) return Local<Value>(*Undefined());
- return Local<Value>(reinterpret_cast<Value*>(values_ - i));
-}
-
-
-Local<Function> Arguments::Callee() const {
- return callee_;
-}
-
-
-Local<Object> Arguments::This() const {
- return Local<Object>(reinterpret_cast<Object*>(values_ + 1));
-}
-
-
-Local<Object> Arguments::Holder() const {
- return holder_;
-}
-
-
-Local<Value> Arguments::Data() const {
- return data_;
-}
-
-
-bool Arguments::IsConstructCall() const {
- return is_construct_call_;
-}
-
-
-int Arguments::Length() const {
- return length_;
-}
-
-
-template <class T>
-Local<T> HandleScope::Close(Handle<T> value) {
- internal::Object** before = reinterpret_cast<internal::Object**>(*value);
- internal::Object** after = RawClose(before);
- return Local<T>(reinterpret_cast<T*>(after));
-}
-
-Handle<Value> ScriptOrigin::ResourceName() const {
- return resource_name_;
-}
-
-
-Handle<Integer> ScriptOrigin::ResourceLineOffset() const {
- return resource_line_offset_;
-}
-
-
-Handle<Integer> ScriptOrigin::ResourceColumnOffset() const {
- return resource_column_offset_;
-}
-
-
-Handle<Boolean> Boolean::New(bool value) {
- return value ? True() : False();
-}
-
-
-void Template::Set(const char* name, v8::Handle<Data> value) {
- Set(v8::String::New(name), value);
-}
-
-
-Local<Value> Object::GetInternalField(int index) {
-#ifndef V8_ENABLE_CHECKS
- Local<Value> quick_result = UncheckedGetInternalField(index);
- if (!quick_result.IsEmpty()) return quick_result;
-#endif
- return CheckedGetInternalField(index);
-}
-
-
-Local<Value> Object::UncheckedGetInternalField(int index) {
- typedef internal::Object O;
- typedef internal::Internals I;
- O* obj = *reinterpret_cast<O**>(this);
- if (I::GetInstanceType(obj) == I::kJSObjectType) {
- // If the object is a plain JSObject, which is the common case,
- // we know where to find the internal fields and can return the
- // value directly.
- int offset = I::kJSObjectHeaderSize + (sizeof(void*) * index);
- O* value = I::ReadField<O*>(obj, offset);
- O** result = HandleScope::CreateHandle(value);
- return Local<Value>(reinterpret_cast<Value*>(result));
- } else {
- return Local<Value>();
- }
-}
-
-
-void* External::Unwrap(Handle<v8::Value> obj) {
-#ifdef V8_ENABLE_CHECKS
- return FullUnwrap(obj);
-#else
- return QuickUnwrap(obj);
-#endif
-}
-
-
-void* External::QuickUnwrap(Handle<v8::Value> wrapper) {
- typedef internal::Object O;
- O* obj = *reinterpret_cast<O**>(const_cast<v8::Value*>(*wrapper));
- return internal::Internals::GetExternalPointer(obj);
-}
-
-
-void* Object::GetPointerFromInternalField(int index) {
- typedef internal::Object O;
- typedef internal::Internals I;
-
- O* obj = *reinterpret_cast<O**>(this);
-
- if (I::GetInstanceType(obj) == I::kJSObjectType) {
- // If the object is a plain JSObject, which is the common case,
- // we know where to find the internal fields and can return the
- // value directly.
- int offset = I::kJSObjectHeaderSize + (sizeof(void*) * index);
- O* value = I::ReadField<O*>(obj, offset);
- return I::GetExternalPointer(value);
- }
-
- return SlowGetPointerFromInternalField(index);
-}
-
-
-String* String::Cast(v8::Value* value) {
-#ifdef V8_ENABLE_CHECKS
- CheckCast(value);
-#endif
- return static_cast<String*>(value);
-}
-
-
-String::ExternalStringResource* String::GetExternalStringResource() const {
- typedef internal::Object O;
- typedef internal::Internals I;
- O* obj = *reinterpret_cast<O**>(const_cast<String*>(this));
- String::ExternalStringResource* result;
- if (I::IsExternalTwoByteString(I::GetInstanceType(obj))) {
- void* value = I::ReadField<void*>(obj, I::kStringResourceOffset);
- result = reinterpret_cast<String::ExternalStringResource*>(value);
- } else {
- result = NULL;
- }
-#ifdef V8_ENABLE_CHECKS
- VerifyExternalStringResource(result);
-#endif
- return result;
-}
-
-
-bool Value::IsString() const {
-#ifdef V8_ENABLE_CHECKS
- return FullIsString();
-#else
- return QuickIsString();
-#endif
-}
-
-bool Value::QuickIsString() const {
- typedef internal::Object O;
- typedef internal::Internals I;
- O* obj = *reinterpret_cast<O**>(const_cast<Value*>(this));
- if (!I::HasHeapObjectTag(obj)) return false;
- return (I::GetInstanceType(obj) < I::kFirstNonstringType);
-}
-
-
-Number* Number::Cast(v8::Value* value) {
-#ifdef V8_ENABLE_CHECKS
- CheckCast(value);
-#endif
- return static_cast<Number*>(value);
-}
-
-
-Integer* Integer::Cast(v8::Value* value) {
-#ifdef V8_ENABLE_CHECKS
- CheckCast(value);
-#endif
- return static_cast<Integer*>(value);
-}
-
-
-Date* Date::Cast(v8::Value* value) {
-#ifdef V8_ENABLE_CHECKS
- CheckCast(value);
-#endif
- return static_cast<Date*>(value);
-}
-
-
-Object* Object::Cast(v8::Value* value) {
-#ifdef V8_ENABLE_CHECKS
- CheckCast(value);
-#endif
- return static_cast<Object*>(value);
-}
-
-
-Array* Array::Cast(v8::Value* value) {
-#ifdef V8_ENABLE_CHECKS
- CheckCast(value);
-#endif
- return static_cast<Array*>(value);
-}
-
-
-Function* Function::Cast(v8::Value* value) {
-#ifdef V8_ENABLE_CHECKS
- CheckCast(value);
-#endif
- return static_cast<Function*>(value);
-}
-
-
-External* External::Cast(v8::Value* value) {
-#ifdef V8_ENABLE_CHECKS
- CheckCast(value);
-#endif
- return static_cast<External*>(value);
-}
-
-
-Local<Value> AccessorInfo::Data() const {
- return Local<Value>(reinterpret_cast<Value*>(&args_[-2]));
-}
-
-
-Local<Object> AccessorInfo::This() const {
- return Local<Object>(reinterpret_cast<Object*>(&args_[0]));
-}
-
-
-Local<Object> AccessorInfo::Holder() const {
- return Local<Object>(reinterpret_cast<Object*>(&args_[-1]));
-}
-
-
-/**
- * \example shell.cc
- * A simple shell that takes a list of expressions on the
- * command-line and executes them.
- */
-
-
-/**
- * \example process.cc
- */
-
-
-} // namespace v8
-
-
-#undef V8EXPORT
-#undef TYPE_CHECK
-
-
-#endif // V8_H_
diff --git a/plugins/Skins/libs/v8.lib b/plugins/Skins/libs/v8.lib Binary files differdeleted file mode 100644 index b7a6809edc..0000000000 --- a/plugins/Skins/libs/v8.lib +++ /dev/null diff --git a/plugins/Skins/libs/v8_g.lib b/plugins/Skins/libs/v8_g.lib Binary files differdeleted file mode 100644 index 007c42932b..0000000000 --- a/plugins/Skins/libs/v8_g.lib +++ /dev/null diff --git a/plugins/Skins/options.cpp b/plugins/Skins/options.cpp deleted file mode 100644 index 086b7cb9eb..0000000000 --- a/plugins/Skins/options.cpp +++ /dev/null @@ -1,487 +0,0 @@ -/*
-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.
-*/
-
-
-#include "commons.h"
-
-#include "options.h"
-
-
-
-// Prototypes /////////////////////////////////////////////////////////////////////////////////////
-
-HANDLE hOptHook = NULL;
-
-Options opts;
-
-
-static BOOL CALLBACK SkinOptDlgProc(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam);
-
-
-// Functions //////////////////////////////////////////////////////////////////////////////////////
-
-
-int InitOptionsCallback(WPARAM wParam,LPARAM lParam)
-{
- OPTIONSDIALOGPAGE odp;
- ZeroMemory(&odp, sizeof(odp));
- odp.cbSize = sizeof(odp);
- odp.position = 0;
- odp.hInstance = hInst;
- odp.pszGroup = "Skins";
- odp.pszTab = "Skin";
- odp.pfnDlgProc = SkinOptDlgProc;
- odp.pszTemplate = MAKEINTRESOURCEA(IDD_SKIN_OPT);
- odp.flags = ODPF_BOLDGROUPS;
-
- for(unsigned int i = 0; i < dlgs.size(); i++)
- {
- MirandaSkinnedDialog * dlg = dlgs[i];
- odp.pszTitle = (char *) dlg->getDescription(); // Yeah, yeah, I know...
- odp.dwInitParam = (LPARAM) dlg;
- CallService(MS_OPT_ADDPAGE, wParam, (LPARAM)&odp);
- }
-
- return 0;
-}
-
-
-void InitOptions()
-{
- LoadOptions();
-
- hOptHook = HookEvent(ME_OPT_INITIALISE, InitOptionsCallback);
-}
-
-
-void DeInitOptions()
-{
- UnhookEvent(hOptHook);
-}
-
-
-void LoadOptions()
-{
-}
-
-static void GetTextMetric(HFONT hFont, TEXTMETRIC *tm)
-{
- HDC hdc = GetDC(NULL);
- HFONT hOldFont = (HFONT) SelectObject(hdc, hFont);
- GetTextMetrics(hdc, tm);
- SelectObject(hdc, hOldFont);
- ReleaseDC(NULL, hdc);
-}
-
-
-static BOOL ScreenToClient(HWND hWnd, LPRECT lpRect)
-{
- BOOL ret;
-
- POINT pt;
-
- pt.x = lpRect->left;
- pt.y = lpRect->top;
-
- ret = ScreenToClient(hWnd, &pt);
-
- if (!ret) return ret;
-
- lpRect->left = pt.x;
- lpRect->top = pt.y;
-
-
- pt.x = lpRect->right;
- pt.y = lpRect->bottom;
-
- ret = ScreenToClient(hWnd, &pt);
-
- lpRect->right = pt.x;
- lpRect->bottom = pt.y;
-
- return ret;
-}
-
-
-#define V_SPACE 5
-#define H_INITIAL_SPACE 10
-#define MAX_TEXT_SIZE 128
-
-static BOOL CALLBACK SkinOptDlgProc(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam)
-{
- switch (msg)
- {
- case WM_INITDIALOG:
- {
- MirandaSkinnedDialog * dlg = (MirandaSkinnedDialog *) lParam;
- _ASSERT(dlg != NULL);
- SetWindowLong(hwndDlg, GWL_USERDATA, (LONG) NULL);
-
- std::vector<std::tstring> skins;
- getAvaiableSkins(skins, dlg);
- for(unsigned int i = 0; i < skins.size(); i++)
- {
- std::tstring &sk = skins[i];
- SendDlgItemMessage(hwndDlg, IDC_SKIN, CB_ADDSTRING, 0, (LONG) skins[i].c_str());
- }
- SendDlgItemMessage(hwndDlg, IDC_SKIN, CB_SELECTSTRING, (WPARAM)-1, (LPARAM)dlg->getSkinName());
-
- HWND skinOptsLabel = GetDlgItem(hwndDlg, IDC_SKIN_OPTS_L);
-
- SkinOptions *opts = dlg->getOpts();
- if (opts == NULL)
- {
- ShowWindow(skinOptsLabel, SW_HIDE);
- ShowScrollBar(hwndDlg, SB_VERT, FALSE);
- }
- else
- {
- HWND skinLabel = GetDlgItem(hwndDlg, IDC_SKIN_L);
- HWND skinCombo = GetDlgItem(hwndDlg, IDC_SKIN);
-
- RECT labelRc = {0};
- GetWindowRect(skinLabel, &labelRc);
- ScreenToClient(hwndDlg, &labelRc);
- labelRc.left += H_INITIAL_SPACE;
-
- RECT valueRc = {0};
- GetWindowRect(skinCombo, &valueRc);
- ScreenToClient(hwndDlg, &valueRc);
-
- RECT lineRc = {0};
- GetWindowRect(skinOptsLabel, &lineRc);
- ScreenToClient(hwndDlg, &lineRc);
-
- HFONT hFont = (HFONT) SendMessage(hwndDlg, WM_GETFONT, 0, 0);
- TEXTMETRIC font;
- GetTextMetric(hFont, &font);
-
- int lineHeight = max(font.tmHeight, 16) + 4;
- int y = lineRc.bottom + V_SPACE;
- int id = IDC_SKIN_OPTS_L + 1;
-
- for (unsigned int i = 0; i < opts->getNumOptions(); i++)
- {
- SkinOption *opt = opts->getOption(i);
-
- switch(opt->getType())
- {
- case CHECKBOX:
- {
- HWND chk = CreateWindow(_T("BUTTON"), opt->getDescription(),
- WS_CHILD | WS_VISIBLE | WS_TABSTOP | BS_CHECKBOX | BS_AUTOCHECKBOX,
- labelRc.left, y,
- lineRc.right - labelRc.left,
- lineHeight, hwndDlg, (HMENU) id, hInst, NULL);
- SendMessage(chk, BM_SETCHECK, opt->getValueCheckbox() ? BST_CHECKED : BST_UNCHECKED, 0);
- SendMessage(chk, WM_SETFONT, (WPARAM) hFont, FALSE);
-
- break;
- }
- case NUMBER:
- {
- std::tstring tmp = opt->getDescription();
- tmp += _T(":");
- HWND lbl = CreateWindow(_T("STATIC"), tmp.c_str(),
- WS_CHILD | WS_VISIBLE,
- labelRc.left, y + (lineHeight - font.tmHeight) / 2,
- labelRc.right - labelRc.left, font.tmHeight,
- hwndDlg, (HMENU) id + 2, hInst, NULL);
- SendMessage(lbl, WM_SETFONT, (WPARAM) hFont, FALSE);
-
- HWND edit = CreateWindowEx(WS_EX_CLIENTEDGE, _T("EDIT"), _T(""),
- WS_CHILD | WS_VISIBLE | WS_TABSTOP | ES_LEFT | ES_AUTOHSCROLL | ES_NUMBER,
- valueRc.left, y,
- (valueRc.right - valueRc.left) / 2, lineHeight,
- hwndDlg, (HMENU) id, hInst, NULL);
- SendMessage(edit, WM_SETFONT, (WPARAM) hFont, FALSE);
- SendMessage(edit, EM_LIMITTEXT, 10, 0);
-
- HWND spin = CreateWindow(UPDOWN_CLASS, NULL,
- WS_CHILD | WS_VISIBLE | UDS_SETBUDDYINT | UDS_ALIGNRIGHT | UDS_ARROWKEYS | UDS_NOTHOUSANDS | UDS_HOTTRACK,
- valueRc.left, y,
- 1, 1,
- hwndDlg, (HMENU) (id + 1), hInst, NULL);
- SendMessage(spin, WM_SETFONT, (WPARAM) hFont, FALSE);
- SendMessage(spin, UDM_SETBUDDY, (WPARAM) edit, 0);
- SendMessage(spin, UDM_SETRANGE, 0, MAKELONG(min(0x7fff, opt->getMax()), max(-0x7fff, min(0x7fff, opt->getMin()))));
- SendMessage(spin, UDM_SETPOS, 0, MAKELONG(opt->getValueNumber(), 0));
-
- break;
- }
- case TEXT:
- {
- std::tstring tmp = opt->getDescription();
- tmp += _T(":");
- HWND lbl = CreateWindow(_T("STATIC"), tmp.c_str(),
- WS_CHILD | WS_VISIBLE,
- labelRc.left, y + (lineHeight - font.tmHeight) / 2,
- labelRc.right - labelRc.left, font.tmHeight,
- hwndDlg, (HMENU) id + 1, hInst, NULL);
- SendMessage(lbl, WM_SETFONT, (WPARAM) hFont, FALSE);
-
- HWND edit = CreateWindowEx(WS_EX_CLIENTEDGE, _T("EDIT"), _T(""),
- WS_CHILD | WS_VISIBLE | WS_TABSTOP | ES_LEFT | ES_AUTOHSCROLL,
- valueRc.left, y,
- lineRc.right - valueRc.left, lineHeight,
- hwndDlg, (HMENU) id, hInst, NULL);
- SendMessage(edit, WM_SETFONT, (WPARAM) hFont, FALSE);
- SendMessage(edit, EM_LIMITTEXT, MAX_TEXT_SIZE, 0);
-
- SetWindowText(edit, opt->getValueText());
-
- break;
- }
- }
-
- id += 3;
- y += lineHeight + V_SPACE;
- }
-
- RECT rc = {0};
- GetClientRect(hwndDlg, &rc);
- int avaiable = rc.bottom - rc.top;
- int total = y - V_SPACE;
- int current = 0;
-
- SCROLLINFO si;
- si.cbSize = sizeof(si);
- si.fMask = SIF_RANGE | SIF_PAGE | SIF_POS;
- si.nMin = 0;
- si.nMax = total;
- si.nPage = avaiable;
- si.nPos = current;
- SetScrollInfo(hwndDlg, SB_VERT, &si, TRUE);
- }
-
- TranslateDialogDefault(hwndDlg);
-
- SetWindowLong(hwndDlg, GWL_USERDATA, (LONG) dlg);
-
- break;
- }
-
- case WM_VSCROLL:
- {
- if (lParam != 0)
- break;
-
- SCROLLINFO si = {0};
- si.cbSize = sizeof(si);
- si.fMask = SIF_RANGE | SIF_PAGE | SIF_POS;
- GetScrollInfo(hwndDlg, SB_VERT, &si);
-
- int total = si.nMax;
- int avaiable = si.nPage;
- int current = si.nPos;
-
- HFONT hFont = (HFONT) SendMessage(hwndDlg, WM_GETFONT, 0, 0);
- TEXTMETRIC font;
- GetTextMetric(hFont, &font);
- int lineHeight = max(font.tmHeight, 16) + 4;
-
- int yDelta; // yDelta = new_pos - current_pos
- int yNewPos; // new position
-
- switch (LOWORD(wParam))
- {
- case SB_PAGEUP:
- yNewPos = current - avaiable / 2;
- break;
- case SB_PAGEDOWN:
- yNewPos = current + avaiable / 2;
- break;
- case SB_LINEUP:
- yNewPos = current - lineHeight;
- break;
- case SB_LINEDOWN:
- yNewPos = current + lineHeight;
- break;
- case SB_THUMBPOSITION:
- yNewPos = HIWORD(wParam);
- break;
- case SB_THUMBTRACK:
- yNewPos = HIWORD(wParam);
- break;
- default:
- yNewPos = current;
- }
-
- yNewPos = min(total - avaiable, max(0, yNewPos));
-
- if (yNewPos == current)
- break;
-
- yDelta = yNewPos - current;
- current = yNewPos;
-
- // Scroll the window. (The system repaints most of the
- // client area when ScrollWindowEx is called; however, it is
- // necessary to call UpdateWindow in order to repaint the
- // rectangle of pixels that were invalidated.)
-
- ScrollWindowEx(hwndDlg, 0, -yDelta, (CONST RECT *) NULL,
- (CONST RECT *) NULL, (HRGN) NULL, (LPRECT) NULL,
- /* SW_ERASE | SW_INVALIDATE | */ SW_SCROLLCHILDREN);
- UpdateWindow(hwndDlg);
- InvalidateRect(hwndDlg, NULL, TRUE);
-
- // Reset the scroll bar.
-
- si.fMask = SIF_POS;
- si.nPos = current;
- SetScrollInfo(hwndDlg, SB_VERT, &si, TRUE);
-
- break;
- }
-
- case WM_COMMAND:
- {
- MirandaSkinnedDialog * dlg = (MirandaSkinnedDialog *) GetWindowLong(hwndDlg, GWL_USERDATA);
- if (dlg == NULL)
- break;
-
- SkinOptions *opts = dlg->getOpts();
-
- if (LOWORD(wParam) == IDC_SKIN)
- {
- if (HIWORD(wParam) == CBN_SELCHANGE && (HWND)lParam == GetFocus())
- {
- SendMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0);
-
- // Disable all options
- if (opts != NULL)
- {
- int id = IDC_SKIN_OPTS_L + 1;
- for (unsigned int i = 0; i < opts->getNumOptions(); i++)
- {
- EnableWindow(GetDlgItem(hwndDlg, id), FALSE);
- EnableWindow(GetDlgItem(hwndDlg, id+1), FALSE);
- EnableWindow(GetDlgItem(hwndDlg, id+2), FALSE);
- id += 3;
- }
- }
- }
- break;
- }
-
- if (opts == NULL)
- break;
-
- bool changed = false;
- int id = IDC_SKIN_OPTS_L + 1;
- for (unsigned int i = 0; i < opts->getNumOptions() && !changed; i++)
- {
- SkinOption *opt = opts->getOption(i);
-
- if (LOWORD(wParam) == id)
- {
- switch(opt->getType())
- {
- case CHECKBOX:
- {
- changed = true;
- break;
- }
- case NUMBER:
- case TEXT:
- {
- // Don't make apply enabled during buddy set
- if (HIWORD(wParam) == EN_CHANGE && (HWND)lParam == GetFocus())
- changed = true;
- break;
- }
- }
- }
-
- id += 3;
- }
-
- if (changed)
- SendMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0);
-
- break;
- }
- case WM_NOTIFY:
- {
- LPNMHDR lpnmhdr = (LPNMHDR) lParam;
-
- if (lpnmhdr->idFrom == 0 && lpnmhdr->code == PSN_APPLY)
- {
- MirandaSkinnedDialog * dlg = (MirandaSkinnedDialog *) GetWindowLong(hwndDlg, GWL_USERDATA);
- if (dlg == NULL)
- break;
-
- bool changedSkin = false;
-
- // TODO Correctly handle changing skins
- int pos = SendDlgItemMessage(hwndDlg, IDC_SKIN, CB_GETCURSEL, 0, 0);
- if (pos != CB_ERR)
- {
- TCHAR tmp[1024];
- GetWindowText(GetDlgItem(hwndDlg, IDC_SKIN), tmp, MAX_REGS(tmp));
-
- changedSkin = (lstrcmp(dlg->getSkinName(), tmp) != 0);
-
- dlg->setSkinName(tmp);
- }
-
- SkinOptions *opts = dlg->getOpts();
- if (opts != NULL && !changedSkin)
- {
- int id = IDC_SKIN_OPTS_L + 1;
- for (unsigned int i = 0; i < opts->getNumOptions(); i++)
- {
- SkinOption *opt = opts->getOption(i);
-
- switch(opt->getType())
- {
- case CHECKBOX:
- {
- opt->setValueCheckbox(IsDlgButtonChecked(hwndDlg, id) != 0);
- break;
- }
- case NUMBER:
- {
- opt->setValueNumber(SendDlgItemMessage(hwndDlg, id + 1, UDM_GETPOS, 0, 0));
- break;
- }
- case TEXT:
- {
- TCHAR tmp[MAX_TEXT_SIZE];
- GetDlgItemText(hwndDlg, id, tmp, MAX_TEXT_SIZE);
- opt->setValueText(tmp);
- break;
- }
- }
-
- id += 3;
- }
-
- dlg->storeToDB(opts);
- }
-
- return TRUE;
- }
- break;
- }
- }
-
- return 0;
-}
diff --git a/plugins/Skins/options.h b/plugins/Skins/options.h deleted file mode 100644 index 7b2616c521..0000000000 --- a/plugins/Skins/options.h +++ /dev/null @@ -1,47 +0,0 @@ -/*
-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 __OPTIONS_H__
-# define __OPTIONS_H__
-
-
-#include <windows.h>
-
-
-struct Options {
-};
-
-extern Options opts;
-
-
-// Initializations needed by options
-void InitOptions();
-
-// Deinitializations needed by options
-void DeInitOptions();
-
-
-// Loads the options from DB
-// It don't need to be called, except in some rare cases
-void LoadOptions();
-
-
-
-#endif // __OPTIONS_H__
diff --git a/plugins/Skins/resource.h b/plugins/Skins/resource.h deleted file mode 100644 index d275032aeb..0000000000 --- a/plugins/Skins/resource.h +++ /dev/null @@ -1,22 +0,0 @@ -//{{NO_DEPENDENCIES}}
-// Microsoft Visual C++ generated include file.
-// Used by resource.rc
-//
-#define IDD_OPTIONS 119
-#define IDD_SKIN_OPT 119
-#define IDC_SKIN 1087
-#define IDC_SKIN_OPTS_L 1088
-#define IDC_SKIN_L -1
-
-// Next default values for new objects
-//
-#ifdef APSTUDIO_INVOKED
-#ifndef APSTUDIO_READONLY_SYMBOLS
-#define _APS_NO_MFC 1
-#define _APS_3D_CONTROLS 1
-#define _APS_NEXT_RESOURCE_VALUE 128
-#define _APS_NEXT_COMMAND_VALUE 40005
-#define _APS_NEXT_CONTROL_VALUE 1089
-#define _APS_NEXT_SYMED_VALUE 101
-#endif
-#endif
diff --git a/plugins/Skins/resource.rc b/plugins/Skins/resource.rc deleted file mode 100644 index 23698c2c7f..0000000000 --- a/plugins/Skins/resource.rc +++ /dev/null @@ -1,111 +0,0 @@ -// Microsoft Visual C++ generated resource script.
-//
-#include "resource.h"
-
-#define APSTUDIO_READONLY_SYMBOLS
-/////////////////////////////////////////////////////////////////////////////
-//
-// Generated from the TEXTINCLUDE 2 resource.
-//
-#include "resource.h"
-#include "winresrc.h"
-
-/////////////////////////////////////////////////////////////////////////////
-#undef APSTUDIO_READONLY_SYMBOLS
-
-/////////////////////////////////////////////////////////////////////////////
-// Neutral resources
-
-#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_NEU)
-#ifdef _WIN32
-LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL
-#pragma code_page(1252)
-#endif //_WIN32
-
-/////////////////////////////////////////////////////////////////////////////
-//
-// Dialog
-//
-
-IDD_SKIN_OPT DIALOGEX 0, 0, 318, 234
-STYLE DS_SETFONT | DS_FIXEDSYS | DS_CONTROL | WS_CHILD | WS_VISIBLE | WS_VSCROLL
-EXSTYLE WS_EX_CONTROLPARENT
-FONT 8, "MS Shell Dlg", 0, 0, 0x1
-BEGIN
- RTEXT "Skin:",IDC_SKIN_L,14,7,63,11
- COMBOBOX IDC_SKIN,81,5,108,13,CBS_DROPDOWNLIST | CBS_SORT | WS_VSCROLL | WS_TABSTOP
- LTEXT "Skin options:",IDC_SKIN_OPTS_L,14,26,283,11
-END
-
-
-/////////////////////////////////////////////////////////////////////////////
-//
-// DESIGNINFO
-//
-
-#ifdef APSTUDIO_INVOKED
-GUIDELINES DESIGNINFO
-BEGIN
- IDD_SKIN_OPT, DIALOG
- BEGIN
- LEFTMARGIN, 1
- TOPMARGIN, 1
- BOTTOMMARGIN, 228
- END
-END
-#endif // APSTUDIO_INVOKED
-
-#endif // Neutral resources
-/////////////////////////////////////////////////////////////////////////////
-
-
-/////////////////////////////////////////////////////////////////////////////
-// English (Canada) resources
-
-#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENC)
-#ifdef _WIN32
-LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_CAN
-#pragma code_page(1252)
-#endif //_WIN32
-
-#ifdef APSTUDIO_INVOKED
-/////////////////////////////////////////////////////////////////////////////
-//
-// TEXTINCLUDE
-//
-
-1 TEXTINCLUDE
-BEGIN
- "resource.h\0"
-END
-
-2 TEXTINCLUDE
-BEGIN
- "#include ""resource.h""\r\n"
- "#include ""winresrc.h""\r\n"
- "\0"
-END
-
-3 TEXTINCLUDE
-BEGIN
- "\r\n"
- "\0"
-END
-
-#endif // APSTUDIO_INVOKED
-
-#endif // English (Canada) resources
-/////////////////////////////////////////////////////////////////////////////
-
-
-
-#ifndef APSTUDIO_INVOKED
-/////////////////////////////////////////////////////////////////////////////
-//
-// Generated from the TEXTINCLUDE 3 resource.
-//
-
-
-/////////////////////////////////////////////////////////////////////////////
-#endif // not APSTUDIO_INVOKED
-
diff --git a/plugins/Skins/skins.cpp b/plugins/Skins/skins.cpp deleted file mode 100644 index f8142045df..0000000000 --- a/plugins/Skins/skins.cpp +++ /dev/null @@ -1,968 +0,0 @@ -/*
-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.
-*/
-
-#include "commons.h"
-
-
-// Prototypes ///////////////////////////////////////////////////////////////////////////
-
-
-PLUGININFOEX pluginInfo={
- sizeof(PLUGININFOEX),
-#ifdef UNICODE
- "Skins (Unicode)",
-#else
- "Skins",
-#endif
- PLUGIN_MAKE_VERSION(0,0,0,5),
- "Skins",
- "Ricardo Pescuma Domenecci",
- "",
- "© 2008-2010 Ricardo Pescuma Domenecci",
- "http://pescuma.org/miranda/skins",
- UNICODE_AWARE,
- 0, //doesn't replace anything built-in
-#ifdef UNICODE
- { 0xde546127, 0x2cdd, 0x48ca, { 0x8a, 0xe5, 0x36, 0x25, 0xe7, 0x24, 0xf2, 0xda } }
-#else
- { 0x2f630a2a, 0xd8f9, 0x4f81, { 0x8a, 0x4e, 0xce, 0x9a, 0x73, 0x5d, 0xf2, 0xe9 } }
-#endif
-};
-
-
-HINSTANCE hInst;
-PLUGINLINK *pluginLink;
-
-std::vector<HANDLE> hHooks;
-std::vector<HANDLE> hServices;
-HANDLE hNetlibUser = 0;
-
-HANDLE hSkinsFolder = NULL;
-TCHAR skinsFolder[1024];
-
-std::vector<MirandaSkinnedDialog *> dlgs;
-
-LIST_INTERFACE li;
-FI_INTERFACE *fei = NULL;
-struct MM_INTERFACE mmi;
-struct UTF8_INTERFACE utfi;
-
-
-int ModulesLoaded(WPARAM wParam, LPARAM lParam);
-int PreShutdown(WPARAM wParam, LPARAM lParam);
-
-static int Service_GetInterface(WPARAM wParam, LPARAM lParam);
-
-
-// Functions ////////////////////////////////////////////////////////////////////////////
-
-
-extern "C" BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved)
-{
- hInst = hinstDLL;
- return TRUE;
-}
-
-
-extern "C" __declspec(dllexport) PLUGININFO* MirandaPluginInfo(DWORD mirandaVersion)
-{
- pluginInfo.cbSize = sizeof(PLUGININFO);
- return (PLUGININFO*) &pluginInfo;
-}
-
-
-extern "C" __declspec(dllexport) PLUGININFOEX* MirandaPluginInfoEx(DWORD mirandaVersion)
-{
- pluginInfo.cbSize = sizeof(PLUGININFOEX);
- return &pluginInfo;
-}
-
-
-static const MUUID interfaces[] = { MIID_SKINS, MIID_LAST };
-extern "C" __declspec(dllexport) const MUUID* MirandaPluginInterfaces(void)
-{
- return interfaces;
-}
-
-
-extern "C" int __declspec(dllexport) Load(PLUGINLINK *link)
-{
- pluginLink = link;
-
- CHECK_VERSION("Skins");
-
- // TODO Assert results here
- mir_getMMI(&mmi);
- mir_getUTFI(&utfi);
- mir_getLI(&li);
-
- hHooks.push_back( HookEvent(ME_SYSTEM_MODULESLOADED, ModulesLoaded) );
- hHooks.push_back( HookEvent(ME_SYSTEM_PRESHUTDOWN, PreShutdown) );
-
- NETLIBUSER nl_user = {0};
- nl_user.cbSize = sizeof(nl_user);
- nl_user.szSettingsModule = MODULE_NAME;
- nl_user.flags = NUF_NOOPTIONS;
- nl_user.szDescriptiveName = Translate("Skins");
- hNetlibUser = (HANDLE)CallService(MS_NETLIB_REGISTERUSER, 0, (LPARAM)&nl_user);
-
- TCHAR mirandaFolder[1024];
- GetModuleFileName(GetModuleHandle(NULL), mirandaFolder, MAX_REGS(mirandaFolder));
- TCHAR *p = _tcsrchr(mirandaFolder, _T('\\'));
- if (p != NULL)
- *p = _T('\0');
-
- // Folders plugin support
- if (ServiceExists(MS_FOLDERS_REGISTER_PATH))
- {
- hSkinsFolder = FoldersRegisterCustomPathT("Skins", "Skins", _T(MIRANDA_PATH) _T("\\Skins"));
-
- FoldersGetCustomPathT(hSkinsFolder, skinsFolder, MAX_REGS(skinsFolder), _T("."));
- }
- else
- {
- mir_sntprintf(skinsFolder, MAX_REGS(skinsFolder), _T("%s\\Skins"), mirandaFolder);
- }
-
- InitOptions();
-
- hServices.push_back( CreateServiceFunction(MS_SKINS_GETINTERFACE, Service_GetInterface) );
-
- return 0;
-}
-
-
-extern "C" int __declspec(dllexport) Unload(void)
-{
- return 0;
-}
-
-
-// Called when all the modules are loaded
-int ModulesLoaded(WPARAM wParam, LPARAM lParam)
-{
- // add our modules to the KnownModules list
- CallService("DBEditorpp/RegisterSingleModule", (WPARAM) MODULE_NAME, 0);
-
- // updater plugin support
- if(ServiceExists(MS_UPDATE_REGISTER))
- {
- Update upd = {0};
- char szCurrentVersion[30];
-
- upd.cbSize = sizeof(upd);
- upd.szComponentName = pluginInfo.shortName;
-
- upd.szUpdateURL = UPDATER_AUTOREGISTER;
-
- upd.szBetaVersionURL = "http://pescuma.googlecode.com/svn/trunk/Miranda/Plugins/skins/Docs/skins_version.txt";
- upd.szBetaChangelogURL = "http://pescuma.googlecode.com/svn/trunk/Miranda/Plugins/skins/Docs/skins_changelog.txt";
- upd.pbBetaVersionPrefix = (BYTE *)"Skins ";
- upd.cpbBetaVersionPrefix = strlen((char *)upd.pbBetaVersionPrefix);
-#ifdef UNICODE
- upd.szBetaUpdateURL = "http://pescuma.googlecode.com/files/skinsW.%VERSION%.zip";
-#else
- upd.szBetaUpdateURL = "http://pescuma.googlecode.com/files/skins.%VERSION%.zip";
-#endif
-
- upd.pbVersion = (BYTE *)CreateVersionStringPlugin((PLUGININFO*) &pluginInfo, szCurrentVersion);
- upd.cpbVersion = strlen((char *)upd.pbVersion);
-
- CallService(MS_UPDATE_REGISTER, 0, (LPARAM)&upd);
- }
-
- return 0;
-}
-
-
-int PreShutdown(WPARAM wParam, LPARAM lParam)
-{
- unsigned int i;
-
- for(i = 0; i < hServices.size(); i++)
- DestroyServiceFunction(hServices[i]);
- hServices.clear();
-
- for(i = 0; i < hHooks.size(); i++)
- UnhookEvent(hHooks[i]);
- hHooks.clear();
-
- DeInitOptions();
-
- return 0;
-}
-
-
-BOOL FileExists(const char *filename)
-{
- DWORD attrib = GetFileAttributesA(filename);
- if (attrib == 0xFFFFFFFF || (attrib & FILE_ATTRIBUTE_DIRECTORY))
- return FALSE;
- return TRUE;
-}
-
-#ifdef UNICODE
-BOOL FileExists(const WCHAR *filename)
-{
- DWORD attrib = GetFileAttributesW(filename);
- if (attrib == 0xFFFFFFFF || (attrib & FILE_ATTRIBUTE_DIRECTORY))
- return FALSE;
- return TRUE;
-}
-#endif
-
-
-BOOL DirExists(const char *filename)
-{
- DWORD attrib = GetFileAttributesA(filename);
- if (attrib == 0xFFFFFFFF || !(attrib & FILE_ATTRIBUTE_DIRECTORY))
- return FALSE;
- return TRUE;
-}
-
-#ifdef UNICODE
-BOOL DirExists(const WCHAR *filename)
-{
- DWORD attrib = GetFileAttributesW(filename);
- if (attrib == 0xFFFFFFFF || !(attrib & FILE_ATTRIBUTE_DIRECTORY))
- return FALSE;
- return TRUE;
-}
-#endif
-
-
-BOOL CreatePath(const char *path)
-{
- char folder[1024];
- strncpy(folder, path, MAX_REGS(folder));
- folder[MAX_REGS(folder)-1] = '\0';
-
- char *p = folder;
- if (p[0] && p[1] == ':' && p[2] == '\\') p += 3; // skip drive letter
-
- SetLastError(ERROR_SUCCESS);
- while(p = strchr(p, '\\'))
- {
- *p = '\0';
- CreateDirectoryA(folder, 0);
- *p = '\\';
- p++;
- }
- CreateDirectoryA(folder, 0);
-
- DWORD lerr = GetLastError();
- return (lerr == ERROR_SUCCESS || lerr == ERROR_ALREADY_EXISTS);
-}
-
-
-void log(const char *fmt, ...)
-{
- va_list va;
- char text[1024];
-
- va_start(va, fmt);
- mir_vsnprintf(text, sizeof(text), fmt, va);
- va_end(va);
-
- CallService(MS_NETLIB_LOG, (WPARAM) NULL, (LPARAM) text);
-}
-
-
-MirandaSkinnedDialog *GetDialog(const char *name)
-{
- _ASSERT(name != NULL);
-
- for(unsigned int i = 0; i < dlgs.size(); i++)
- {
- MirandaSkinnedDialog *dlg = dlgs[i];
- if (strcmp(name, dlg->getName()) == 0)
- return dlg;
- }
-
- return NULL;
-}
-
-void getSkinnedDialogFilename(std::tstring &ret, const TCHAR *skin, const char *dialogName)
-{
- ret = skinsFolder;
- ret += _T("\\");
- ret += skin;
- ret += _T("\\");
- ret += CharToTchar(dialogName);
- ret += _T(".");
- ret += _T(SKIN_EXTENSION);
-}
-
-void getAvaiableSkins(std::vector<std::tstring> &skins, MirandaSkinnedDialog *dlg)
-{
- TCHAR file[1024];
- mir_sntprintf(file, MAX_REGS(file), _T("%s\\*"), skinsFolder);
-
- WIN32_FIND_DATA ffd = {0};
- HANDLE hFFD = FindFirstFile(file, &ffd);
- if (hFFD == INVALID_HANDLE_VALUE)
- return;
-
- do
- {
- if (lstrcmp(ffd.cFileName, _T(".")) == 0 || lstrcmp(ffd.cFileName, _T("..")) == 0)
- continue;
-
- mir_sntprintf(file, MAX_REGS(file), _T("%s\\%s"), skinsFolder, ffd.cFileName);
- if (!DirExists(file))
- continue;
-
- if (dlg != NULL)
- {
- std::tstring filename;
- getSkinnedDialogFilename(filename, ffd.cFileName, dlg->getName());
- if (!FileExists(filename.c_str()))
- continue;
- }
-
- skins.push_back(std::tstring(ffd.cFileName));
- }
- while(FindNextFile(hFFD, &ffd));
-
- FindClose(hFFD);
-}
-
-void OnError(void *param, const TCHAR *err)
-{
- MirandaSkinnedDialog *dlg = (MirandaSkinnedDialog *) param;
-
- std::tstring title;
- title = CharToTchar(dlg->getName());
- title += _T("- Error executing skin");
-
- MessageBox(NULL, err, title.c_str(), MB_OK | MB_ICONERROR);
-}
-
-SKINNED_DIALOG Interface_RegisterDialog(const char *name, const char *description, const char *module)
-{
- if (name == NULL || name[0] == 0 || module == NULL || module[0] == 0)
- return NULL;
- if (GetDialog(name) != NULL)
- return NULL;
-
- // Check if default skin exists
- std::tstring filename;
- filename = skinsFolder;
- filename += _T("\\");
- filename += _T(DEFAULT_SKIN_NAME);
- filename += _T("\\");
- filename += Utf8ToTchar(name);
- filename += _T(".");
- filename += _T(SKIN_EXTENSION);
-
- if (!FileExists(filename.c_str()))
- return NULL;
-
- MirandaSkinnedDialog *dlg = new MirandaSkinnedDialog(name, description, module);
- dlg->setErrorCallback(OnError, dlg);
- dlgs.push_back(dlg);
- return (SKINNED_DIALOG) dlg;
-}
-
-void Interface_DeleteDialog(SKINNED_DIALOG aDlg)
-{
- if (aDlg == NULL)
- return;
-
- MirandaSkinnedDialog * dlg = (MirandaSkinnedDialog *) aDlg;
- for(std::vector<MirandaSkinnedDialog*>::iterator it = dlgs.begin(); it != dlgs.end(); it++)
- {
- if (*it == dlg)
- {
- dlgs.erase(it);
- break;
- }
- }
-
- delete dlg;
-}
-
-void Interface_SetSkinChangedCallback(SKINNED_DIALOG aDlg, SkinOptionsChangedCallback cb, void *param)
-{
- if (aDlg == NULL)
- return;
-
- MirandaSkinnedDialog * dlg = (MirandaSkinnedDialog *) aDlg;
- dlg->setOnSkinChangedCallback((MirandaSkinnedCallback) cb, param);
-}
-
-void Interface_FinishedConfiguring(SKINNED_DIALOG aDlg)
-{
- if (aDlg == NULL)
- return;
-
- MirandaSkinnedDialog *dlg = (MirandaSkinnedDialog *) aDlg;
- dlg->finishedConfiguring();
-}
-
-SKINNED_FIELD Interface_AddTextField(SKINNED_DIALOG aDlg, const char *name, const char *description)
-{
- if (aDlg == NULL || name == NULL || name[0] == 0)
- return NULL;
-
- MirandaSkinnedDialog *dlg = (MirandaSkinnedDialog *) aDlg;
-
- MirandaTextField *field = new MirandaTextField(dlg, name, description);
- if (!dlg->addField(field))
- {
- delete field;
- return NULL;
- }
-
- return (SKINNED_FIELD) field;
-}
-
-SKINNED_FIELD Interface_AddIconField(SKINNED_DIALOG aDlg, const char *name, const char *description)
-{
- if (aDlg == NULL || name == NULL || name[0] == 0)
- return NULL;
-
- MirandaSkinnedDialog *dlg = (MirandaSkinnedDialog *) aDlg;
-
- MirandaIconField *field = new MirandaIconField(dlg, name, description);
- if (!dlg->addField(field))
- {
- delete field;
- return NULL;
- }
-
- return (SKINNED_FIELD) field;
-}
-
-SKINNED_FIELD Interface_AddImageField(SKINNED_DIALOG aDlg, const char *name, const char *description)
-{
- if (aDlg == NULL || name == NULL || name[0] == 0)
- return NULL;
-
- MirandaSkinnedDialog *dlg = (MirandaSkinnedDialog *) aDlg;
-
- MirandaImageField *field = new MirandaImageField(dlg, name, description);
- if (!dlg->addField(field))
- {
- delete field;
- return NULL;
- }
-
- return (SKINNED_FIELD) field;
-}
-
-SKINNED_FIELD Interface_GetField(SKINNED_DIALOG aDlg, const char *name)
-{
- if (aDlg == NULL || name == NULL || name[0] == 0)
- return NULL;
-
- MirandaSkinnedDialog *dlg = (MirandaSkinnedDialog *) aDlg;
-
- return (SKINNED_FIELD) dlg->getField(name);
-}
-
-void Interface_SetDialogSize(SKINNED_DIALOG aDlg, int width, int height)
-{
- if (aDlg == NULL)
- return;
-
- MirandaSkinnedDialog *dlg = (MirandaSkinnedDialog *) aDlg;
- dlg->setSize(Size(width, height));
-}
-
-void Interface_SetInfoInt(SKINNED_DIALOG aDlg, const char *name, int value)
-{
- if (aDlg == NULL || name == NULL)
- return;
-
- MirandaSkinnedDialog *dlg = (MirandaSkinnedDialog *) aDlg;
- dlg->getInfo()->set(name, value);
-}
-
-void Interface_SetInfoDouble(SKINNED_DIALOG aDlg, const char *name, double value)
-{
- if (aDlg == NULL || name == NULL)
- return;
-
- MirandaSkinnedDialog *dlg = (MirandaSkinnedDialog *) aDlg;
- dlg->getInfo()->set(name, value);
-}
-
-void Interface_SetInfoBool(SKINNED_DIALOG aDlg, const char *name, BOOL value)
-{
- if (aDlg == NULL || name == NULL)
- return;
-
- MirandaSkinnedDialog *dlg = (MirandaSkinnedDialog *) aDlg;
- dlg->getInfo()->set(name, value);
-}
-
-void Interface_SetInfoString(SKINNED_DIALOG aDlg, const char *name, const TCHAR *value)
-{
- if (aDlg == NULL || name == NULL)
- return;
-
- MirandaSkinnedDialog *dlg = (MirandaSkinnedDialog *) aDlg;
- dlg->getInfo()->set(name, value);
-}
-
-void Interface_RemoveInfo(SKINNED_DIALOG aDlg, const char *name)
-{
- if (aDlg == NULL || name == NULL)
- return;
-
- MirandaSkinnedDialog *dlg = (MirandaSkinnedDialog *) aDlg;
- dlg->getInfo()->remove(name);
-}
-
-
-void Interface_SetEnabled(SKINNED_FIELD aField, BOOL enabled)
-{
- if (aField == NULL)
- return;
-
- Field *field = (Field *) aField;
- field->setEnabled(enabled != 0);
-}
-
-void Interface_SetToolTipA(SKINNED_FIELD aField, const char *tooltip)
-{
- if (aField == NULL)
- return;
-
- Field *field = (Field *) aField;
- field->setToolTip(CharToTchar(tooltip));
-}
-
-void Interface_SetToolTipW(SKINNED_FIELD aField, const WCHAR *tooltip)
-{
- if (aField == NULL)
- return;
-
- Field *field = (Field *) aField;
- field->setToolTip(WcharToTchar(tooltip));
-}
-
-void Interface_SetTextA(SKINNED_FIELD aField, const char *text)
-{
- if (aField == NULL)
- return;
-
- Field *field = (Field *) aField;
- switch(field->getType())
- {
- case SIMPLE_TEXT:
- ((TextField *) field)->setText(CharToTchar(text));
- break;
- case CONTROL_LABEL:
- case CONTROL_BUTTON:
- case CONTROL_EDIT:
- ((ControlField *) field)->setText(CharToTchar(text));
- break;
- }
-}
-
-void Interface_SetTextW(SKINNED_FIELD aField, const WCHAR *text)
-{
- if (aField == NULL)
- return;
-
- Field *field = (Field *) aField;
- switch(field->getType())
- {
- case SIMPLE_TEXT:
- ((TextField *) field)->setText(WcharToTchar(text));
- break;
- case CONTROL_LABEL:
- case CONTROL_BUTTON:
- case CONTROL_EDIT:
- ((ControlField *) field)->setText(WcharToTchar(text));
- break;
- }
-}
-
-void Interface_SetIcon(SKINNED_FIELD aField, HICON hIcon)
-{
- if (aField == NULL)
- return;
-
- Field *field = (Field *) aField;
- switch(field->getType())
- {
- case SIMPLE_ICON:
- ((IconField *) field)->setIcon(hIcon);
- break;
- }
-}
-
-void Interface_SetImage(SKINNED_FIELD aField, HBITMAP hBmp)
-{
- if (aField == NULL)
- return;
-
- Field *field = (Field *) aField;
- switch(field->getType())
- {
- case SIMPLE_IMAGE:
- ((ImageField *) field)->setImage(hBmp);
- break;
- }
-}
-
-SKINNED_DIALOG_STATE Interface_Run(SKINNED_DIALOG aDlg)
-{
- if (aDlg == NULL)
- return NULL;
-
- MirandaSkinnedDialog *dlg = (MirandaSkinnedDialog *) aDlg;
- return (SKINNED_DIALOG_STATE) dlg->getState();
-}
-
-/*
-void Interface_DeleteDialogState(SKINNED_DIALOG_STATE aDlg)
-{
- if (aDlg == NULL)
- return;
-
- DialogState * dlg = (DialogState *) aDlg;
-
- delete dlg;
-}
-*/
-
-SKINNED_FIELD_STATE Interface_GetFieldState(SKINNED_DIALOG_STATE aDlg, const char *name)
-{
- if (aDlg == NULL || name == NULL || name[0] == 0)
- return NULL;
-
- DialogState *dlg = (DialogState *) aDlg;
-
- return (SKINNED_FIELD_STATE) dlg->getField(name);
-}
-
-RECT Interface_GetDialogBorders(SKINNED_DIALOG_STATE aDlg)
-{
- RECT ret = {0};
-
- if (aDlg == NULL)
- return ret;
-
- DialogState *state = (DialogState *) aDlg;
- BorderState *borders = state->getBorders();
-
- ret.left = borders->getLeft();
- ret.top = borders->getTop();
- ret.right = borders->getRight();
- ret.bottom = borders->getBottom();
-
- return ret;
-}
-
-RECT Interface_GetRect(SKINNED_FIELD_STATE field)
-{
- if (field == NULL)
- {
- RECT ret = {0};
- return ret;
- }
-
- FieldState *fieldState = (FieldState *) field;
-
- return fieldState->getRect();
-}
-
-RECT Interface_GetInsideRect(SKINNED_FIELD_STATE field)
-{
- if (field == NULL)
- {
- RECT ret = {0};
- return ret;
- }
-
- FieldState *fieldState = (FieldState *) field;
-
- return fieldState->getInsideRect();
-}
-
-RECT Interface_GetRawRect(SKINNED_FIELD_STATE field)
-{
- if (field == NULL)
- {
- RECT ret = {0};
- return ret;
- }
-
- FieldState *fieldState = (FieldState *) field;
-
- return fieldState->getRect(true);
-}
-
-RECT Interface_GetRawInsideRect(SKINNED_FIELD_STATE field)
-{
- if (field == NULL)
- {
- RECT ret = {0};
- return ret;
- }
-
- FieldState *fieldState = (FieldState *) field;
-
- return fieldState->getInsideRect(true);
-}
-
-RECT Interface_GetBorders(SKINNED_FIELD_STATE field)
-{
- RECT ret = {0};
-
- if (field == NULL)
- return ret;
-
- FieldState *fieldState = (FieldState *) field;
- BorderState *borders = fieldState->getBorders();
-
- ret.left = borders->getLeft();
- ret.top = borders->getTop();
- ret.right = borders->getRight();
- ret.bottom = borders->getBottom();
-
- return ret;
-}
-
-BOOL Interface_IsVisible(SKINNED_FIELD_STATE field)
-{
- if (field == NULL)
- return FALSE;
-
- FieldState *fieldState = (FieldState *) field;
-
- return fieldState->isVisible();
-}
-
-char * Interface_GetToolTipA(SKINNED_FIELD_STATE field)
-{
- if (field == NULL)
- return NULL;
-
- FieldState *fieldState = (FieldState *) field;
- return TcharToChar(fieldState->getToolTip()).detach();
-}
-
-WCHAR * Interface_GetToolTipW(SKINNED_FIELD_STATE field)
-{
- if (field == NULL)
- return NULL;
-
- FieldState *fieldState = (FieldState *) field;
- return TcharToWchar(fieldState->getToolTip()).detach();
-}
-
-char * Interface_GetTextA(SKINNED_FIELD_STATE field)
-{
- if (field == NULL)
- return NULL;
-
- FieldState *fieldState = (FieldState *) field;
-
- switch(fieldState->getField()->getType())
- {
- case SIMPLE_TEXT:
- return TcharToChar(((TextFieldState *) fieldState)->getText()).detach();
- case CONTROL_LABEL:
- case CONTROL_BUTTON:
- case CONTROL_EDIT:
- return TcharToChar(((ControlFieldState *) field)->getText()).detach();
- }
-
- return NULL;
-}
-
-WCHAR * Interface_GetTextW(SKINNED_FIELD_STATE field)
-{
- if (field == NULL)
- return NULL;
-
- FieldState *fieldState = (FieldState *) field;
-
- switch(fieldState->getField()->getType())
- {
- case SIMPLE_TEXT:
- return TcharToWchar(((TextFieldState *) fieldState)->getText()).detach();
- case CONTROL_LABEL:
- case CONTROL_BUTTON:
- case CONTROL_EDIT:
- return TcharToWchar(((ControlFieldState *) field)->getText()).detach();
- }
-
- return NULL;
-}
-
-HFONT Interface_GetFont(SKINNED_FIELD_STATE field)
-{
- if (field == NULL)
- return NULL;
-
- FieldState *fieldState = (FieldState *) field;
-
- switch(fieldState->getField()->getType())
- {
- case SIMPLE_TEXT:
- return ((TextFieldState *) fieldState)->getFont()->getHFONT();
- case CONTROL_LABEL:
- case CONTROL_BUTTON:
- case CONTROL_EDIT:
- return ((ControlFieldState *) fieldState)->getFont()->getHFONT();
- }
-
- return NULL;
-}
-
-COLORREF Interface_GetFontColor(SKINNED_FIELD_STATE field)
-{
- if (field == NULL)
- return RGB(0,0,0);
-
- FieldState *fieldState = (FieldState *) field;
-
- switch(fieldState->getField()->getType())
- {
- case SIMPLE_TEXT:
- return ((TextFieldState *) fieldState)->getFont()->getColor();
- case CONTROL_LABEL:
- case CONTROL_BUTTON:
- case CONTROL_EDIT:
- return ((ControlFieldState *) fieldState)->getFont()->getColor();
- }
-
- return RGB(0,0,0);
-}
-
-int Interface_GetHorizontalAlign(SKINNED_FIELD_STATE field)
-{
- if (field == NULL)
- return SKN_HALIGN_LEFT;
-
- FieldState *fieldState = (FieldState *) field;
- return fieldState->getHAlign();
-}
-
-int Interface_GetVerticalAlign(SKINNED_FIELD_STATE field)
-{
- if (field == NULL)
- return SKN_VALIGN_TOP;
-
- FieldState *fieldState = (FieldState *) field;
- return fieldState->getVAlign();
-}
-
-HICON Interface_GetIcon(SKINNED_FIELD_STATE field)
-{
- if (field == NULL)
- return NULL;
-
- FieldState *fieldState = (FieldState *) field;
-
- switch(fieldState->getField()->getType())
- {
- case SIMPLE_ICON:
- return ((IconFieldState *) fieldState)->getIcon();
- }
- return NULL;
-}
-
-HBITMAP Interface_GetImage(SKINNED_FIELD_STATE field)
-{
- if (field == NULL)
- return NULL;
-
- FieldState *fieldState = (FieldState *) field;
-
- switch(fieldState->getField()->getType())
- {
- case SIMPLE_IMAGE:
- return ((ImageFieldState *) fieldState)->getImage();
- }
- return NULL;
-}
-
-
-static int Service_GetInterface(WPARAM wParam, LPARAM lParam)
-{
- SKIN_INTERFACE *mski = (SKIN_INTERFACE *) lParam;
- if (mski == NULL)
- return -1;
-
- if (mski->cbSize < sizeof(SKIN_INTERFACE))
- return -2;
-
- mski->RegisterDialog = &Interface_RegisterDialog;
- mski->DeleteDialog = &Interface_DeleteDialog;
- mski->SetSkinChangedCallback = &Interface_SetSkinChangedCallback;
- mski->FinishedConfiguring = &Interface_FinishedConfiguring;
-
- mski->AddTextField = &Interface_AddTextField;
- mski->AddIconField = &Interface_AddIconField;
- mski->AddImageField = &Interface_AddImageField;
- mski->GetField = &Interface_GetField;
- mski->SetDialogSize = &Interface_SetDialogSize;
-
- mski->SetInfoInt = &Interface_SetInfoInt;
- mski->SetInfoDouble = &Interface_SetInfoDouble;
- mski->SetInfoBool = &Interface_SetInfoBool;
- mski->SetInfoString = &Interface_SetInfoString;
- mski->RemoveInfo = &Interface_RemoveInfo;
-
- mski->SetEnabled = &Interface_SetEnabled;
- mski->SetToolTipA = &Interface_SetToolTipA;
- mski->SetToolTipW = &Interface_SetToolTipW;
-
- mski->SetTextA = &Interface_SetTextA;
- mski->SetTextW = &Interface_SetTextW;
-
- mski->SetIcon = &Interface_SetIcon;
-
- mski->SetImage = &Interface_SetImage;
-
- mski->Run = &Interface_Run;
-
- mski->GetFieldState = &Interface_GetFieldState;
- mski->GetDialogBorders = &Interface_GetDialogBorders;
-
- mski->GetRect = &Interface_GetRect;
- mski->GetInsideRect = &Interface_GetInsideRect;
- mski->GetRawRect = &Interface_GetRawRect;
- mski->GetRawInsideRect = &Interface_GetRawInsideRect;
-
- mski->GetBorders = &Interface_GetBorders;
- mski->IsVisible = &Interface_IsVisible;
- mski->GetToolTipA = &Interface_GetToolTipA;
- mski->GetToolTipW = &Interface_GetToolTipW;
- mski->GetHorizontalAlign = &Interface_GetHorizontalAlign;
- mski->GetVerticalAlign = &Interface_GetVerticalAlign;
-
- mski->GetTextA = &Interface_GetTextA;
- mski->GetTextW = &Interface_GetTextW;
- mski->GetFont = &Interface_GetFont;
- mski->GetFontColor = &Interface_GetFontColor;
-
- mski->GetIcon = &Interface_GetIcon;
-
- mski->GetImage = &Interface_GetImage;
-
- return 0;
-}
diff --git a/plugins/Skins/skins.vcproj b/plugins/Skins/skins.vcproj deleted file mode 100644 index 413faa319e..0000000000 --- a/plugins/Skins/skins.vcproj +++ /dev/null @@ -1,1066 +0,0 @@ -<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioProject
- ProjectType="Visual C++"
- Version="9,00"
- Name="skins"
- ProjectGUID="{F5F5EA6E-F648-4174-8419-D6CA41DF0A11}"
- RootNamespace="skins"
- TargetFrameworkVersion="0"
- >
- <Platforms>
- <Platform
- Name="Win32"
- />
- </Platforms>
- <ToolFiles>
- </ToolFiles>
- <Configurations>
- <Configuration
- Name="Debug|Win32"
- OutputDirectory=".\Debug"
- IntermediateDirectory=".\Debug"
- ConfigurationType="2"
- InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"
- UseOfMFC="0"
- ATLMinimizesCRunTimeLibraryUsage="false"
- CharacterSet="2"
- >
- <Tool
- Name="VCPreBuildEventTool"
- />
- <Tool
- Name="VCCustomBuildTool"
- />
- <Tool
- Name="VCXMLDataGeneratorTool"
- />
- <Tool
- Name="VCWebServiceProxyGeneratorTool"
- />
- <Tool
- Name="VCMIDLTool"
- PreprocessorDefinitions="NDEBUG"
- MkTypLibCompatible="true"
- SuppressStartupBanner="true"
- TargetEnvironment="1"
- TypeLibraryName=".\Debug/skins.tlb"
- HeaderFileName=""
- />
- <Tool
- Name="VCCLCompilerTool"
- Optimization="0"
- AdditionalIncludeDirectories="../../include,sdk,libs,../utils"
- PreprocessorDefinitions="WIN32;W32;_DEBUG;_WINDOWS;_USRDLL;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS"
- RuntimeLibrary="1"
- PrecompiledHeaderFile=".\Debug/skins.pch"
- AssemblerListingLocation=".\Debug/"
- ObjectFile=".\Debug/"
- ProgramDataBaseFileName=".\Debug/"
- BrowseInformation="1"
- WarningLevel="3"
- SuppressStartupBanner="true"
- DebugInformationFormat="4"
- />
- <Tool
- Name="VCManagedResourceCompilerTool"
- />
- <Tool
- Name="VCResourceCompilerTool"
- PreprocessorDefinitions="NDEBUG"
- Culture="1047"
- />
- <Tool
- Name="VCPreLinkEventTool"
- />
- <Tool
- Name="VCLinkerTool"
- AdditionalOptions="/ALIGN:4096 /filealign:0x200 /ignore:4108 "
- AdditionalDependencies="v8_g.lib Ws2_32.lib Winmm.lib"
- OutputFile="..\..\bin\debug\Plugins\skins.dll"
- LinkIncremental="2"
- SuppressStartupBanner="true"
- AdditionalLibraryDirectories="$(ProjectDir)libs\"
- GenerateDebugInformation="true"
- ProgramDatabaseFile=".\Debug/skins.pdb"
- BaseAddress="0x3EC20000"
- RandomizedBaseAddress="1"
- DataExecutionPrevention="0"
- ImportLibrary=".\Debug/skins.lib"
- TargetMachine="1"
- />
- <Tool
- Name="VCALinkTool"
- />
- <Tool
- Name="VCManifestTool"
- />
- <Tool
- Name="VCXDCMakeTool"
- />
- <Tool
- Name="VCBscMakeTool"
- SuppressStartupBanner="true"
- OutputFile=".\Debug/skins.bsc"
- />
- <Tool
- Name="VCFxCopTool"
- />
- <Tool
- Name="VCAppVerifierTool"
- />
- <Tool
- Name="VCPostBuildEventTool"
- />
- </Configuration>
- <Configuration
- Name="Release|Win32"
- OutputDirectory=".\Release"
- IntermediateDirectory=".\Release"
- ConfigurationType="2"
- InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"
- UseOfMFC="0"
- ATLMinimizesCRunTimeLibraryUsage="false"
- CharacterSet="2"
- WholeProgramOptimization="1"
- >
- <Tool
- Name="VCPreBuildEventTool"
- />
- <Tool
- Name="VCCustomBuildTool"
- />
- <Tool
- Name="VCXMLDataGeneratorTool"
- />
- <Tool
- Name="VCWebServiceProxyGeneratorTool"
- />
- <Tool
- Name="VCMIDLTool"
- PreprocessorDefinitions="NDEBUG"
- MkTypLibCompatible="true"
- SuppressStartupBanner="true"
- TargetEnvironment="1"
- TypeLibraryName=".\Release/skins.tlb"
- HeaderFileName=""
- />
- <Tool
- Name="VCCLCompilerTool"
- Optimization="2"
- InlineFunctionExpansion="0"
- WholeProgramOptimization="true"
- AdditionalIncludeDirectories="../../include,sdk,libs,../utils"
- PreprocessorDefinitions="WIN32;W32;NDEBUG;_WINDOWS;_USRDLL;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS"
- StringPooling="true"
- RuntimeLibrary="0"
- EnableFunctionLevelLinking="true"
- PrecompiledHeaderFile=".\Release/skins.pch"
- AssemblerListingLocation=".\Release/"
- ObjectFile=".\Release/"
- ProgramDataBaseFileName=".\Release/"
- BrowseInformation="2"
- BrowseInformationFile=".\Release/"
- WarningLevel="3"
- SuppressStartupBanner="true"
- />
- <Tool
- Name="VCManagedResourceCompilerTool"
- />
- <Tool
- Name="VCResourceCompilerTool"
- PreprocessorDefinitions="NDEBUG"
- Culture="1047"
- />
- <Tool
- Name="VCPreLinkEventTool"
- />
- <Tool
- Name="VCLinkerTool"
- AdditionalOptions="/ALIGN:4096 /filealign:0x200 /ignore:4108 "
- AdditionalDependencies="v8.lib Ws2_32.lib Winmm.lib"
- OutputFile="..\..\bin\release\Plugins\skins.dll"
- LinkIncremental="1"
- SuppressStartupBanner="true"
- AdditionalLibraryDirectories="$(ProjectDir)libs\"
- GenerateDebugInformation="true"
- ProgramDatabaseFile=".\Release/skins.pdb"
- GenerateMapFile="true"
- MapFileName=".\Release/skins.map"
- LinkTimeCodeGeneration="1"
- BaseAddress="0x3EC20000"
- RandomizedBaseAddress="1"
- DataExecutionPrevention="0"
- ImportLibrary=".\Release/skins.lib"
- TargetMachine="1"
- />
- <Tool
- Name="VCALinkTool"
- />
- <Tool
- Name="VCManifestTool"
- />
- <Tool
- Name="VCXDCMakeTool"
- />
- <Tool
- Name="VCBscMakeTool"
- SuppressStartupBanner="true"
- OutputFile=".\Release/skins.bsc"
- />
- <Tool
- Name="VCFxCopTool"
- />
- <Tool
- Name="VCAppVerifierTool"
- />
- <Tool
- Name="VCPostBuildEventTool"
- />
- </Configuration>
- <Configuration
- Name="Unicode Debug|Win32"
- OutputDirectory=".\Unicode_Debug"
- IntermediateDirectory=".\Unicode_Debug"
- ConfigurationType="2"
- UseOfMFC="0"
- ATLMinimizesCRunTimeLibraryUsage="false"
- CharacterSet="1"
- >
- <Tool
- Name="VCPreBuildEventTool"
- />
- <Tool
- Name="VCCustomBuildTool"
- />
- <Tool
- Name="VCXMLDataGeneratorTool"
- />
- <Tool
- Name="VCWebServiceProxyGeneratorTool"
- />
- <Tool
- Name="VCMIDLTool"
- PreprocessorDefinitions="NDEBUG"
- MkTypLibCompatible="true"
- SuppressStartupBanner="true"
- TargetEnvironment="1"
- TypeLibraryName=".\Unicode_Debug/skins.tlb"
- HeaderFileName=""
- />
- <Tool
- Name="VCCLCompilerTool"
- Optimization="0"
- AdditionalIncludeDirectories="../../include,sdk,libs,../utils"
- PreprocessorDefinitions="WIN32;W32;_DEBUG;DEBUG;_WINDOWS;UNICODE;_USRDLL;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS"
- MinimalRebuild="true"
- BasicRuntimeChecks="3"
- RuntimeLibrary="1"
- PrecompiledHeaderFile=".\Unicode_Debug/skins.pch"
- AssemblerListingLocation=""
- BrowseInformation="1"
- WarningLevel="3"
- SuppressStartupBanner="true"
- DebugInformationFormat="4"
- />
- <Tool
- Name="VCManagedResourceCompilerTool"
- />
- <Tool
- Name="VCResourceCompilerTool"
- />
- <Tool
- Name="VCPreLinkEventTool"
- />
- <Tool
- Name="VCLinkerTool"
- AdditionalOptions="/ALIGN:4096 /filealign:0x200 /ignore:4108 "
- AdditionalDependencies="v8_g.lib Ws2_32.lib Winmm.lib"
- OutputFile="..\..\bin\debug unicode\Plugins\skinsW.dll"
- LinkIncremental="2"
- AdditionalLibraryDirectories="$(ProjectDir)libs\"
- GenerateDebugInformation="true"
- ProgramDatabaseFile=".\Unicode_Debug/skinsW.pdb"
- SubSystem="2"
- BaseAddress=""
- ImportLibrary=".\Unicode_Debug/skinsW.lib"
- TargetMachine="1"
- />
- <Tool
- Name="VCALinkTool"
- />
- <Tool
- Name="VCManifestTool"
- />
- <Tool
- Name="VCXDCMakeTool"
- />
- <Tool
- Name="VCBscMakeTool"
- />
- <Tool
- Name="VCFxCopTool"
- />
- <Tool
- Name="VCAppVerifierTool"
- />
- <Tool
- Name="VCPostBuildEventTool"
- />
- </Configuration>
- <Configuration
- Name="Unicode Release|Win32"
- OutputDirectory=".\Unicode_Release"
- IntermediateDirectory=".\Unicode_Release"
- ConfigurationType="2"
- InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"
- UseOfMFC="0"
- ATLMinimizesCRunTimeLibraryUsage="false"
- CharacterSet="1"
- WholeProgramOptimization="1"
- >
- <Tool
- Name="VCPreBuildEventTool"
- />
- <Tool
- Name="VCCustomBuildTool"
- />
- <Tool
- Name="VCXMLDataGeneratorTool"
- />
- <Tool
- Name="VCWebServiceProxyGeneratorTool"
- />
- <Tool
- Name="VCMIDLTool"
- PreprocessorDefinitions="NDEBUG"
- MkTypLibCompatible="true"
- SuppressStartupBanner="true"
- TargetEnvironment="1"
- TypeLibraryName=".\Unicode_Release/skins.tlb"
- HeaderFileName=""
- />
- <Tool
- Name="VCCLCompilerTool"
- Optimization="2"
- InlineFunctionExpansion="0"
- FavorSizeOrSpeed="1"
- WholeProgramOptimization="true"
- AdditionalIncludeDirectories="../../include,sdk,libs,../utils"
- PreprocessorDefinitions="WIN32;W32;NDEBUG;_WINDOWS;UNICODE;_USRDLL;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_WARNINGS"
- StringPooling="true"
- RuntimeLibrary="0"
- EnableFunctionLevelLinking="true"
- PrecompiledHeaderFile=".\Unicode_Release/skins.pch"
- AssemblerListingLocation=".\Unicode_Release/"
- ObjectFile=".\Unicode_Release/"
- ProgramDataBaseFileName=".\Unicode_Release/"
- BrowseInformation="2"
- BrowseInformationFile=".\Unicode_Release/"
- WarningLevel="3"
- SuppressStartupBanner="true"
- />
- <Tool
- Name="VCManagedResourceCompilerTool"
- />
- <Tool
- Name="VCResourceCompilerTool"
- PreprocessorDefinitions="NDEBUG"
- Culture="1047"
- />
- <Tool
- Name="VCPreLinkEventTool"
- />
- <Tool
- Name="VCLinkerTool"
- AdditionalOptions="/ALIGN:4096 /filealign:0x200 /ignore:4108 "
- AdditionalDependencies="v8.lib Ws2_32.lib Winmm.lib"
- OutputFile="..\..\bin\release unicode\Plugins\skinsW.dll"
- LinkIncremental="1"
- SuppressStartupBanner="true"
- AdditionalLibraryDirectories="$(ProjectDir)libs\"
- GenerateDebugInformation="true"
- ProgramDatabaseFile=".\Unicode_Release/skinsW.pdb"
- GenerateMapFile="true"
- MapFileName=".\Unicode_Release/skinsW.map"
- LinkTimeCodeGeneration="1"
- BaseAddress="0x3EC20000"
- RandomizedBaseAddress="1"
- DataExecutionPrevention="0"
- ImportLibrary=".\Unicode_Release/skinsW.lib"
- TargetMachine="1"
- />
- <Tool
- Name="VCALinkTool"
- />
- <Tool
- Name="VCManifestTool"
- />
- <Tool
- Name="VCXDCMakeTool"
- />
- <Tool
- Name="VCBscMakeTool"
- SuppressStartupBanner="true"
- OutputFile=".\Unicode_Release/skins.bsc"
- />
- <Tool
- Name="VCFxCopTool"
- />
- <Tool
- Name="VCAppVerifierTool"
- />
- <Tool
- Name="VCPostBuildEventTool"
- />
- </Configuration>
- </Configurations>
- <References>
- </References>
- <Files>
- <Filter
- Name="Header Files"
- Filter="h;hpp;hxx;hm;inl"
- >
- <File
- RelativePath="commons.h"
- >
- </File>
- <File
- RelativePath="m_skins.h"
- >
- </File>
- <File
- RelativePath=".\m_skins_cpp.h"
- >
- </File>
- <File
- RelativePath="..\utils\mir_icons.h"
- >
- </File>
- <File
- RelativePath="..\utils\mir_memory.h"
- >
- </File>
- <File
- RelativePath="..\utils\mir_options.h"
- >
- </File>
- <File
- RelativePath="options.h"
- >
- </File>
- <File
- RelativePath="resource.h"
- >
- </File>
- <Filter
- Name="SkinLib Header Files"
- >
- <File
- RelativePath=".\SkinLib\globals.h"
- >
- </File>
- <File
- RelativePath=".\SkinLib\Position.h"
- >
- </File>
- <File
- RelativePath=".\SkinLib\scope.h"
- >
- </File>
- <File
- RelativePath=".\SkinLib\Size.h"
- >
- </File>
- <File
- RelativePath=".\SkinLib\SkinnedDialog.h"
- >
- </File>
- <File
- RelativePath=".\SkinLib\SkinOption.h"
- >
- </File>
- <File
- RelativePath=".\SkinLib\SkinOptions.h"
- >
- </File>
- <File
- RelativePath=".\SkinLib\tstring.h"
- >
- </File>
- <Filter
- Name="Fields Header Files"
- >
- <File
- RelativePath=".\SkinLib\ButtonField.h"
- >
- </File>
- <File
- RelativePath=".\SkinLib\ControlField.h"
- >
- </File>
- <File
- RelativePath=".\SkinLib\Dialog.h"
- >
- </File>
- <File
- RelativePath=".\SkinLib\DialogInfo.h"
- >
- </File>
- <File
- RelativePath=".\SkinLib\EditField.h"
- >
- </File>
- <File
- RelativePath=".\SkinLib\Field.h"
- >
- </File>
- <File
- RelativePath=".\SkinLib\IconField.h"
- >
- </File>
- <File
- RelativePath=".\SkinLib\ImageField.h"
- >
- </File>
- <File
- RelativePath=".\SkinLib\LabelField.h"
- >
- </File>
- <File
- RelativePath=".\SkinLib\TextField.h"
- >
- </File>
- </Filter>
- <Filter
- Name="v8 Header Files"
- >
- <File
- RelativePath=".\SkinLib\BorderState_v8_wrapper.h"
- >
- </File>
- <File
- RelativePath=".\SkinLib\ControlFieldState_v8_wrapper.h"
- >
- </File>
- <File
- RelativePath=".\SkinLib\DialogState_v8_wrapper.h"
- >
- </File>
- <File
- RelativePath=".\SkinLib\FieldState_v8_wrapper.h"
- >
- </File>
- <File
- RelativePath=".\SkinLib\FontState_v8_wrapper.h"
- >
- </File>
- <File
- RelativePath=".\SkinLib\SkinOption_v8_wrapper.h"
- >
- </File>
- <File
- RelativePath=".\SkinLib\TextFieldState_v8_wrapper.h"
- >
- </File>
- <File
- RelativePath=".\SkinLib\V8Script.h"
- >
- </File>
- <File
- RelativePath=".\SkinLib\V8Templates.h"
- >
- </File>
- <File
- RelativePath=".\SkinLib\V8Wrappers.h"
- >
- </File>
- </Filter>
- <Filter
- Name="States Header Files"
- >
- <File
- RelativePath=".\SkinLib\BorderState.h"
- >
- </File>
- <File
- RelativePath=".\SkinLib\ButtonFieldState.h"
- >
- </File>
- <File
- RelativePath=".\SkinLib\ControlFieldState.h"
- >
- </File>
- <File
- RelativePath=".\SkinLib\DialogState.h"
- >
- </File>
- <File
- RelativePath=".\SkinLib\EditFieldState.h"
- >
- </File>
- <File
- RelativePath=".\SkinLib\FieldState.h"
- >
- </File>
- <File
- RelativePath=".\SkinLib\FontState.h"
- >
- </File>
- <File
- RelativePath=".\SkinLib\IconFieldState.h"
- >
- </File>
- <File
- RelativePath=".\SkinLib\ImageFieldState.h"
- >
- </File>
- <File
- RelativePath=".\SkinLib\LabelFieldState.h"
- >
- </File>
- <File
- RelativePath=".\SkinLib\TextFieldState.h"
- >
- </File>
- </Filter>
- </Filter>
- <Filter
- Name="Miranda Wrappers Header Files"
- >
- <File
- RelativePath=".\MirandaField.h"
- >
- </File>
- <File
- RelativePath=".\MirandaFont.h"
- >
- </File>
- <File
- RelativePath=".\MirandaIconField.h"
- >
- </File>
- <File
- RelativePath=".\MirandaImageField.h"
- >
- </File>
- <File
- RelativePath=".\MirandaSkinnedDialog.h"
- >
- </File>
- <File
- RelativePath=".\MirandaTextField.h"
- >
- </File>
- </Filter>
- </Filter>
- <Filter
- Name="Resource Files"
- Filter="ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
- >
- <File
- RelativePath="resource.rc"
- >
- <FileConfiguration
- Name="Debug|Win32"
- >
- <Tool
- Name="VCResourceCompilerTool"
- PreprocessorDefinitions=""
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release|Win32"
- >
- <Tool
- Name="VCResourceCompilerTool"
- PreprocessorDefinitions=""
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Unicode Debug|Win32"
- >
- <Tool
- Name="VCResourceCompilerTool"
- PreprocessorDefinitions=""
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Unicode Release|Win32"
- >
- <Tool
- Name="VCResourceCompilerTool"
- PreprocessorDefinitions=""
- />
- </FileConfiguration>
- </File>
- </Filter>
- <Filter
- Name="Source Files"
- Filter="cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
- >
- <File
- RelativePath="..\utils\mir_icons.cpp"
- >
- <FileConfiguration
- Name="Debug|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Unicode Debug|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Unicode Release|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- />
- </FileConfiguration>
- </File>
- <File
- RelativePath="..\utils\mir_options.cpp"
- >
- <FileConfiguration
- Name="Debug|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Unicode Debug|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Unicode Release|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- />
- </FileConfiguration>
- </File>
- <File
- RelativePath="options.cpp"
- >
- <FileConfiguration
- Name="Debug|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Unicode Debug|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Unicode Release|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- />
- </FileConfiguration>
- </File>
- <File
- RelativePath="skins.cpp"
- >
- <FileConfiguration
- Name="Debug|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Unicode Debug|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Unicode Release|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- AdditionalIncludeDirectories=""
- PreprocessorDefinitions=""
- />
- </FileConfiguration>
- </File>
- <Filter
- Name="SkinLib Source Files"
- >
- <File
- RelativePath=".\SkinLib\Position.cpp"
- >
- </File>
- <File
- RelativePath=".\SkinLib\Size.cpp"
- >
- </File>
- <File
- RelativePath=".\SkinLib\SkinnedDialog.cpp"
- >
- </File>
- <File
- RelativePath=".\SkinLib\SkinOptions.cpp"
- >
- </File>
- <Filter
- Name="Fields Source Files"
- >
- <File
- RelativePath=".\SkinLib\ButtonField.cpp"
- >
- </File>
- <File
- RelativePath=".\SkinLib\ControlField.cpp"
- >
- </File>
- <File
- RelativePath=".\SkinLib\Dialog.cpp"
- >
- </File>
- <File
- RelativePath=".\SkinLib\DialogInfo.cpp"
- >
- </File>
- <File
- RelativePath=".\SkinLib\EditField.cpp"
- >
- </File>
- <File
- RelativePath=".\SkinLib\Field.cpp"
- >
- </File>
- <File
- RelativePath=".\SkinLib\IconField.cpp"
- >
- </File>
- <File
- RelativePath=".\SkinLib\ImageField.cpp"
- >
- </File>
- <File
- RelativePath=".\SkinLib\LabelField.cpp"
- >
- </File>
- <File
- RelativePath=".\SkinLib\TextField.cpp"
- >
- </File>
- </Filter>
- <Filter
- Name="v8 Source Files"
- >
- <File
- RelativePath=".\SkinLib\BorderState_v8_wrapper.cpp"
- >
- </File>
- <File
- RelativePath=".\SkinLib\ControlFieldState_v8_wrapper.cpp"
- >
- </File>
- <File
- RelativePath=".\SkinLib\DialogState_v8_wrapper.cpp"
- >
- </File>
- <File
- RelativePath=".\SkinLib\FieldState_v8_wrapper.cpp"
- >
- </File>
- <File
- RelativePath=".\SkinLib\FontState_v8_wrapper.cpp"
- >
- </File>
- <File
- RelativePath=".\SkinLib\SkinOption_v8_wrapper.cpp"
- >
- </File>
- <File
- RelativePath=".\SkinLib\TextFieldState_v8_wrapper.cpp"
- >
- </File>
- <File
- RelativePath=".\SkinLib\V8Script.cpp"
- >
- </File>
- <File
- RelativePath=".\SkinLib\V8Templates.cpp"
- >
- </File>
- <File
- RelativePath=".\SkinLib\V8Wrappers.cpp"
- >
- </File>
- </Filter>
- <Filter
- Name="States Source Files"
- >
- <File
- RelativePath=".\SkinLib\BorderState.cpp"
- >
- </File>
- <File
- RelativePath=".\SkinLib\ButtonFieldState.cpp"
- >
- </File>
- <File
- RelativePath=".\SkinLib\ControlFieldState.cpp"
- >
- </File>
- <File
- RelativePath=".\SkinLib\DialogState.cpp"
- >
- </File>
- <File
- RelativePath=".\SkinLib\EditFieldState.cpp"
- >
- </File>
- <File
- RelativePath=".\SkinLib\FieldState.cpp"
- >
- </File>
- <File
- RelativePath=".\SkinLib\FontState.cpp"
- >
- </File>
- <File
- RelativePath=".\SkinLib\IconFieldState.cpp"
- >
- </File>
- <File
- RelativePath=".\SkinLib\ImageFieldState.cpp"
- >
- </File>
- <File
- RelativePath=".\SkinLib\LabelFieldState.cpp"
- >
- </File>
- <File
- RelativePath=".\SkinLib\TextFieldState.cpp"
- >
- </File>
- </Filter>
- </Filter>
- <Filter
- Name="Miranda Wrappers Source Files"
- >
- <File
- RelativePath=".\MirandaFont.cpp"
- >
- </File>
- <File
- RelativePath=".\MirandaIconField.cpp"
- >
- </File>
- <File
- RelativePath=".\MirandaImageField.cpp"
- >
- </File>
- <File
- RelativePath=".\MirandaSkinnedDialog.cpp"
- >
- </File>
- <File
- RelativePath=".\MirandaTextField.cpp"
- >
- </File>
- </Filter>
- </Filter>
- <Filter
- Name="Docs"
- >
- <File
- RelativePath="Docs\langpack_skins.txt"
- >
- </File>
- <File
- RelativePath="Docs\skins_changelog.txt"
- >
- </File>
- <File
- RelativePath="Docs\skins_readme.txt"
- >
- </File>
- <File
- RelativePath="Docs\skins_version.txt"
- >
- </File>
- </Filter>
- </Files>
- <Globals>
- </Globals>
-</VisualStudioProject>
|