summaryrefslogtreecommitdiff
path: root/Plugins
diff options
context:
space:
mode:
authorpescuma <pescuma@c086bb3d-8645-0410-b8da-73a8550f86e7>2009-01-24 05:38:13 +0000
committerpescuma <pescuma@c086bb3d-8645-0410-b8da-73a8550f86e7>2009-01-24 05:38:13 +0000
commitde4ef8a65afd0c38f8bbdfcb3b90ff82a98d1483 (patch)
treefeefeaeb3734eaebdb5872609606edc84d6f8fa3 /Plugins
parentbe94a568ef65120465b49f5c6db90cd4ec3c3eb2 (diff)
skins: fix for floats and added valign (not used yet)
git-svn-id: http://pescuma.googlecode.com/svn/trunk/Miranda@133 c086bb3d-8645-0410-b8da-73a8550f86e7
Diffstat (limited to 'Plugins')
-rw-r--r--Plugins/skins/Docs/skins_changelog.txt4
-rw-r--r--Plugins/skins/MirandaSkinnedDialog.cpp10
-rw-r--r--Plugins/skins/MirandaSkinnedDialog.h4
-rw-r--r--Plugins/skins/SkinLib/BorderState_v8_wrapper.cpp8
-rw-r--r--Plugins/skins/SkinLib/DialogState_v8_wrapper.cpp4
-rw-r--r--Plugins/skins/SkinLib/FieldState.cpp22
-rw-r--r--Plugins/skins/SkinLib/FieldState.h21
-rw-r--r--Plugins/skins/SkinLib/FieldState.rec3
-rw-r--r--Plugins/skins/SkinLib/FieldState_v8_wrapper.cpp128
-rw-r--r--Plugins/skins/SkinLib/FontState_v8_wrapper.cpp4
-rw-r--r--Plugins/skins/SkinLib/SkinOption_v8_wrapper.cpp10
-rw-r--r--Plugins/skins/SkinLib/TextFieldState.cpp12
-rw-r--r--Plugins/skins/SkinLib/TextFieldState.h4
-rw-r--r--Plugins/skins/SkinLib/TextFieldState_v8_wrapper.cpp50
-rw-r--r--Plugins/skins/SkinLib/V8Templates.cpp15
-rw-r--r--Plugins/skins/SkinLib/V8Wrappers.cpp15
-rw-r--r--Plugins/skins/m_skins.h7
-rw-r--r--Plugins/skins/m_skins_cpp.h3
-rw-r--r--Plugins/skins/options.cpp2
-rw-r--r--Plugins/skins/skins.cpp19
-rw-r--r--Plugins/skins/skins.vcproj6
21 files changed, 229 insertions, 122 deletions
diff --git a/Plugins/skins/Docs/skins_changelog.txt b/Plugins/skins/Docs/skins_changelog.txt
index 14e9344..e982db6 100644
--- a/Plugins/skins/Docs/skins_changelog.txt
+++ b/Plugins/skins/Docs/skins_changelog.txt
@@ -2,5 +2,9 @@ Skins
Changelog:
+. 0.0.0.2
+ * Fix for float numbers
+ + Added valign (not used yet)
+
. 0.0.0.1
+ Initial version \ No newline at end of file
diff --git a/Plugins/skins/MirandaSkinnedDialog.cpp b/Plugins/skins/MirandaSkinnedDialog.cpp
index ebc224c..26c3cb5 100644
--- a/Plugins/skins/MirandaSkinnedDialog.cpp
+++ b/Plugins/skins/MirandaSkinnedDialog.cpp
@@ -4,8 +4,9 @@
#define SETTING_NAME_SIZE 256
-MirandaSkinnedDialog::MirandaSkinnedDialog(const char *name, const char *aModule)
- : SkinnedDialog(name), module(aModule), skinChangedCallback(NULL), skinChangedCallbackParam(NULL)
+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);
}
@@ -14,6 +15,11 @@ MirandaSkinnedDialog::~MirandaSkinnedDialog()
{
}
+const char * MirandaSkinnedDialog::getDescription() const
+{
+ return description.c_str();
+}
+
const char * MirandaSkinnedDialog::getModule() const
{
return module.c_str();
diff --git a/Plugins/skins/MirandaSkinnedDialog.h b/Plugins/skins/MirandaSkinnedDialog.h
index 4615126..3cb65b3 100644
--- a/Plugins/skins/MirandaSkinnedDialog.h
+++ b/Plugins/skins/MirandaSkinnedDialog.h
@@ -12,9 +12,10 @@ typedef void (*MirandaSkinnedCallback)(void *param, const MirandaSkinnedDialog *
class MirandaSkinnedDialog : public SkinnedDialog
{
public:
- MirandaSkinnedDialog(const char *name, const char *module);
+ 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;
@@ -30,6 +31,7 @@ protected:
virtual int compile();
private:
+ std::string description;
std::string module;
std::tstring skinName;
MirandaSkinnedCallback skinChangedCallback;
diff --git a/Plugins/skins/SkinLib/BorderState_v8_wrapper.cpp b/Plugins/skins/SkinLib/BorderState_v8_wrapper.cpp
index 732ca29..71cc057 100644
--- a/Plugins/skins/SkinLib/BorderState_v8_wrapper.cpp
+++ b/Plugins/skins/SkinLib/BorderState_v8_wrapper.cpp
@@ -42,7 +42,7 @@ static void Set_BorderState_left(Local<String> property, Local<Value> value, con
if (tmp == NULL)
return;
- if (!value.IsEmpty() && value->IsInt32())
+ if (!value.IsEmpty() && value->IsNumber())
tmp->setLeft(value->Int32Value());
}
@@ -76,7 +76,7 @@ static void Set_BorderState_right(Local<String> property, Local<Value> value, co
if (tmp == NULL)
return;
- if (!value.IsEmpty() && value->IsInt32())
+ if (!value.IsEmpty() && value->IsNumber())
tmp->setRight(value->Int32Value());
}
@@ -110,7 +110,7 @@ static void Set_BorderState_top(Local<String> property, Local<Value> value, cons
if (tmp == NULL)
return;
- if (!value.IsEmpty() && value->IsInt32())
+ if (!value.IsEmpty() && value->IsNumber())
tmp->setTop(value->Int32Value());
}
@@ -144,7 +144,7 @@ static void Set_BorderState_bottom(Local<String> property, Local<Value> value, c
if (tmp == NULL)
return;
- if (!value.IsEmpty() && value->IsInt32())
+ if (!value.IsEmpty() && value->IsNumber())
tmp->setBottom(value->Int32Value());
}
diff --git a/Plugins/skins/SkinLib/DialogState_v8_wrapper.cpp b/Plugins/skins/SkinLib/DialogState_v8_wrapper.cpp
index 4ab4951..5739414 100644
--- a/Plugins/skins/SkinLib/DialogState_v8_wrapper.cpp
+++ b/Plugins/skins/SkinLib/DialogState_v8_wrapper.cpp
@@ -42,7 +42,7 @@ static void Set_DialogState_width(Local<String> property, Local<Value> value, co
if (tmp == NULL)
return;
- if (!value.IsEmpty() && value->IsInt32())
+ if (!value.IsEmpty() && value->IsNumber())
tmp->setWidth(value->Int32Value());
}
@@ -76,7 +76,7 @@ static void Set_DialogState_height(Local<String> property, Local<Value> value, c
if (tmp == NULL)
return;
- if (!value.IsEmpty() && value->IsInt32())
+ if (!value.IsEmpty() && value->IsNumber())
tmp->setHeight(value->Int32Value());
}
diff --git a/Plugins/skins/SkinLib/FieldState.cpp b/Plugins/skins/SkinLib/FieldState.cpp
index 5a8b493..1d112cc 100644
--- a/Plugins/skins/SkinLib/FieldState.cpp
+++ b/Plugins/skins/SkinLib/FieldState.cpp
@@ -15,7 +15,7 @@
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)
+ tooltipSet(false), halign(HORIZONTAL_ALIGN_LEFT), valign(VERTICAL_ALIGN_TOP)
{
}
@@ -251,6 +251,26 @@ RECT FieldState::getRect() const
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;
+}
+
RECT FieldState::getInsideRect() const
{
RECT ret = {0};
diff --git a/Plugins/skins/SkinLib/FieldState.h b/Plugins/skins/SkinLib/FieldState.h
index 201e12c..98c1f86 100644
--- a/Plugins/skins/SkinLib/FieldState.h
+++ b/Plugins/skins/SkinLib/FieldState.h
@@ -8,9 +8,16 @@ class DialogState;
enum HORIZONTAL_ALIGN
{
- LEFT = 1,
- CENTER,
- RIGHT
+ HORIZONTAL_ALIGN_LEFT = 1,
+ HORIZONTAL_ALIGN_CENTER,
+ HORIZONTAL_ALIGN_RIGHT
+};
+
+enum VERTICAL_ALIGN
+{
+ VERTICAL_ALIGN_TOP = 1,
+ VERTICAL_ALIGN_CENTER,
+ VERTICAL_ALIGN_BOTTOM
};
@@ -61,6 +68,12 @@ public:
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
@@ -82,6 +95,8 @@ protected:
BorderState borders;
bool tooltipSet;
std::tstring tooltip;
+ HORIZONTAL_ALIGN halign;
+ VERTICAL_ALIGN valign;
int getHorizontalBorders() const;
int getVerticalBorders() const;
diff --git a/Plugins/skins/SkinLib/FieldState.rec b/Plugins/skins/SkinLib/FieldState.rec
index a8bf2a9..7b9ffd8 100644
--- a/Plugins/skins/SkinLib/FieldState.rec
+++ b/Plugins/skins/SkinLib/FieldState.rec
@@ -24,6 +24,8 @@ struct FieldState
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()); ];
};
@@ -56,7 +58,6 @@ struct ImageFieldState : FieldState
struct TextFieldState : FieldState
{
Char text[1024];
- Int32 hAlign | LEFT | CENTER | RIGHT;
FontState font;
};
diff --git a/Plugins/skins/SkinLib/FieldState_v8_wrapper.cpp b/Plugins/skins/SkinLib/FieldState_v8_wrapper.cpp
index 31e0e7d..937ad69 100644
--- a/Plugins/skins/SkinLib/FieldState_v8_wrapper.cpp
+++ b/Plugins/skins/SkinLib/FieldState_v8_wrapper.cpp
@@ -43,7 +43,7 @@ static void Set_FieldState_x(Local<String> property, Local<Value> value, const A
if (tmp == NULL)
return;
- if (!value.IsEmpty() && value->IsInt32())
+ if (!value.IsEmpty() && value->IsNumber())
tmp->setX(value->Int32Value());
}
@@ -77,7 +77,7 @@ static void Set_FieldState_y(Local<String> property, Local<Value> value, const A
if (tmp == NULL)
return;
- if (!value.IsEmpty() && value->IsInt32())
+ if (!value.IsEmpty() && value->IsNumber())
tmp->setY(value->Int32Value());
}
@@ -111,7 +111,7 @@ static void Set_FieldState_width(Local<String> property, Local<Value> value, con
if (tmp == NULL)
return;
- if (!value.IsEmpty() && value->IsInt32())
+ if (!value.IsEmpty() && value->IsNumber())
tmp->setWidth(value->Int32Value());
}
@@ -145,7 +145,7 @@ static void Set_FieldState_height(Local<String> property, Local<Value> value, co
if (tmp == NULL)
return;
- if (!value.IsEmpty() && value->IsInt32())
+ if (!value.IsEmpty() && value->IsNumber())
tmp->setHeight(value->Int32Value());
}
@@ -179,7 +179,7 @@ static void Set_FieldState_left(Local<String> property, Local<Value> value, cons
if (tmp == NULL)
return;
- if (!value.IsEmpty() && value->IsInt32())
+ if (!value.IsEmpty() && value->IsNumber())
tmp->setLeft(value->Int32Value());
}
@@ -213,7 +213,7 @@ static void Set_FieldState_top(Local<String> property, Local<Value> value, const
if (tmp == NULL)
return;
- if (!value.IsEmpty() && value->IsInt32())
+ if (!value.IsEmpty() && value->IsNumber())
tmp->setTop(value->Int32Value());
}
@@ -247,7 +247,7 @@ static void Set_FieldState_right(Local<String> property, Local<Value> value, con
if (tmp == NULL)
return;
- if (!value.IsEmpty() && value->IsInt32())
+ if (!value.IsEmpty() && value->IsNumber())
tmp->setRight(value->Int32Value());
}
@@ -281,7 +281,7 @@ static void Set_FieldState_bottom(Local<String> property, Local<Value> value, co
if (tmp == NULL)
return;
- if (!value.IsEmpty() && value->IsInt32())
+ if (!value.IsEmpty() && value->IsNumber())
tmp->setBottom(value->Int32Value());
}
@@ -374,6 +374,116 @@ static void Set_FieldState_toolTip(Local<String> property, Local<Value> value, c
}
+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;
@@ -423,5 +533,7 @@ void AddFieldStateAcessors(Handle<ObjectTemplate> &templ)
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/FontState_v8_wrapper.cpp b/Plugins/skins/SkinLib/FontState_v8_wrapper.cpp
index 4a81dd0..5226736 100644
--- a/Plugins/skins/SkinLib/FontState_v8_wrapper.cpp
+++ b/Plugins/skins/SkinLib/FontState_v8_wrapper.cpp
@@ -80,7 +80,7 @@ static void Set_FontState_size(Local<String> property, Local<Value> value, const
if (tmp == NULL)
return;
- if (!value.IsEmpty() && value->IsInt32())
+ if (!value.IsEmpty() && value->IsNumber())
tmp->setSize(value->Int32Value());
}
@@ -250,7 +250,7 @@ static void Set_FontState_color(Local<String> property, Local<Value> value, cons
if (tmp == NULL)
return;
- if (!value.IsEmpty() && value->IsInt32())
+ if (!value.IsEmpty() && value->IsNumber())
tmp->setColor(value->Int32Value());
}
diff --git a/Plugins/skins/SkinLib/SkinOption_v8_wrapper.cpp b/Plugins/skins/SkinLib/SkinOption_v8_wrapper.cpp
index 944bb6e..11a401a 100644
--- a/Plugins/skins/SkinLib/SkinOption_v8_wrapper.cpp
+++ b/Plugins/skins/SkinLib/SkinOption_v8_wrapper.cpp
@@ -80,7 +80,7 @@ static void Set_SkinOption_min(Local<String> property, Local<Value> value, const
if (tmp == NULL)
return;
- if (!value.IsEmpty() && value->IsInt32())
+ if (!value.IsEmpty() && value->IsNumber())
tmp->setMin(value->Int32Value());
}
@@ -114,7 +114,7 @@ static void Set_SkinOption_max(Local<String> property, Local<Value> value, const
if (tmp == NULL)
return;
- if (!value.IsEmpty() && value->IsInt32())
+ if (!value.IsEmpty() && value->IsNumber())
tmp->setMax(value->Int32Value());
}
@@ -158,11 +158,11 @@ static void Set_SkinOption_type(Local<String> property, Local<Value> value, cons
{
String::Utf8Value utf8_value(value);
Utf8ToTchar tval(*utf8_value);
- if ( lstrcmpi(_T("CHECKBOX"), tval) == 0)
+ if ( lstrcmpi(_T("CHECKBOX"), tval) == 0 )
tmp->setType(CHECKBOX);
- else if ( lstrcmpi(_T("NUMBER"), tval) == 0)
+ else if ( lstrcmpi(_T("NUMBER"), tval) == 0 )
tmp->setType(NUMBER);
- else if ( lstrcmpi(_T("TEXT"), tval) == 0)
+ else if ( lstrcmpi(_T("TEXT"), tval) == 0 )
tmp->setType(TEXT);
}
}
diff --git a/Plugins/skins/SkinLib/TextFieldState.cpp b/Plugins/skins/SkinLib/TextFieldState.cpp
index 56e2723..8e295d0 100644
--- a/Plugins/skins/SkinLib/TextFieldState.cpp
+++ b/Plugins/skins/SkinLib/TextFieldState.cpp
@@ -3,7 +3,7 @@
TextFieldState::TextFieldState(DialogState *dialog, TextField *field)
- : FieldState(dialog, field), font(field->getFont(), field->getFontColor()), textSet(false), halign(LEFT)
+ : FieldState(dialog, field), font(field->getFont(), field->getFontColor()), textSet(false)
{
}
@@ -59,16 +59,6 @@ const FontState * TextFieldState::getFont() const
return &font;
}
-HORIZONTAL_ALIGN TextFieldState::getHAlign() const
-{
- return halign;
-}
-
-void TextFieldState::setHAlign(HORIZONTAL_ALIGN halign)
-{
- this->halign = halign;
-}
-
bool TextFieldState::isEmpty() const
{
return lstrlen(getText()) <= 0;
diff --git a/Plugins/skins/SkinLib/TextFieldState.h b/Plugins/skins/SkinLib/TextFieldState.h
index c15284b..9779cfa 100644
--- a/Plugins/skins/SkinLib/TextFieldState.h
+++ b/Plugins/skins/SkinLib/TextFieldState.h
@@ -21,9 +21,6 @@ public:
virtual FontState * getFont();
virtual const FontState * getFont() const;
- virtual HORIZONTAL_ALIGN getHAlign() const;
- virtual void setHAlign(HORIZONTAL_ALIGN halign);
-
virtual bool isEmpty() const;
private:
@@ -32,7 +29,6 @@ private:
FontState font;
BOOL textSet;
std::tstring text;
- HORIZONTAL_ALIGN halign;
friend class TextField;
diff --git a/Plugins/skins/SkinLib/TextFieldState_v8_wrapper.cpp b/Plugins/skins/SkinLib/TextFieldState_v8_wrapper.cpp
index 6eb4a39..cf11fdb 100644
--- a/Plugins/skins/SkinLib/TextFieldState_v8_wrapper.cpp
+++ b/Plugins/skins/SkinLib/TextFieldState_v8_wrapper.cpp
@@ -51,59 +51,9 @@ static void Set_TextFieldState_text(Local<String> property, Local<Value> value,
}
-static Handle<Value> Get_TextFieldState_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() );
-
- TextFieldState *tmp = (TextFieldState *) wrap->Value();
- if (tmp == NULL)
- return scope.Close( Undefined() );
-
- switch(tmp->getHAlign())
- {
- case LEFT: return scope.Close( String::New((const V8_TCHAR *) _T("LEFT")) );
- case CENTER: return scope.Close( String::New((const V8_TCHAR *) _T("CENTER")) );
- case RIGHT: return scope.Close( String::New((const V8_TCHAR *) _T("RIGHT")) );
- }
- return scope.Close( Undefined() );
-}
-
-static void Set_TextFieldState_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;
-
- TextFieldState *tmp = (TextFieldState *) wrap->Value();
- if (tmp == NULL)
- return;
-
- if (!value.IsEmpty() && value->IsString())
- {
- String::Utf8Value utf8_value(value);
- Utf8ToTchar tval(*utf8_value);
- if ( lstrcmpi(_T("LEFT"), tval) == 0)
- tmp->setHAlign(LEFT);
- else if ( lstrcmpi(_T("CENTER"), tval) == 0)
- tmp->setHAlign(CENTER);
- else if ( lstrcmpi(_T("RIGHT"), tval) == 0)
- tmp->setHAlign(RIGHT);
- }
-}
-
-
void AddTextFieldStateAcessors(Handle<ObjectTemplate> &templ)
{
HandleScope scope;
templ->SetAccessor(String::New("text"), Get_TextFieldState_text, Set_TextFieldState_text);
- templ->SetAccessor(String::New("hAlign"), Get_TextFieldState_hAlign, Set_TextFieldState_hAlign);
}
diff --git a/Plugins/skins/SkinLib/V8Templates.cpp b/Plugins/skins/SkinLib/V8Templates.cpp
index dba4a14..4900e13 100644
--- a/Plugins/skins/SkinLib/V8Templates.cpp
+++ b/Plugins/skins/SkinLib/V8Templates.cpp
@@ -36,9 +36,18 @@ Handle<ObjectTemplate> V8Templates::getGlobalTemplate()
return globalTemplate;
Handle<ObjectTemplate> templ = ObjectTemplate::New();
- templ->Set(String::New("LEFT"), String::New("LEFT"));
- templ->Set(String::New("CENTER"), String::New("CENTER"));
- templ->Set(String::New("RIGHT"), String::New("RIGHT"));
+ 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"));
diff --git a/Plugins/skins/SkinLib/V8Wrappers.cpp b/Plugins/skins/SkinLib/V8Wrappers.cpp
index f782d7c..1a9e0b6 100644
--- a/Plugins/skins/SkinLib/V8Wrappers.cpp
+++ b/Plugins/skins/SkinLib/V8Wrappers.cpp
@@ -70,21 +70,14 @@ static Handle<Value> AlertCallback(const Arguments& args)
{
HandleScope scope;
- Local<External> wrap = Local<External>::Cast(args.Data());
- if (wrap.IsEmpty())
- return scope.Close( Boolean::New(false) );
-
if (args.Length() < 1)
return scope.Close( Boolean::New(false) );
Local<Value> arg = args[0];
- if (!arg->IsString())
- return scope.Close( Boolean::New(false) );
-
- Local<String> str = Local<String>::Cast(arg);
- String::Utf8Value utf8_value(str);
+ String::Utf8Value utf8_value(arg->ToDetailString());
- MessageBox(NULL, Utf8ToTchar(*utf8_value), _T("Skin alert"), MB_OK);
+ char *tmp = *utf8_value;
+// TODO MessageBox(NULL, Utf8ToTchar(*utf8_value), _T("Skin alert"), MB_OK);
return scope.Close( Boolean::New(true) );
}
@@ -277,7 +270,7 @@ static void Set_SkinOption_value(Local<String> property, Local<Value> value, con
opt->setValueCheckbox(value->BooleanValue());
break;
case NUMBER:
- if (!value.IsEmpty() && value->IsInt32())
+ if (!value.IsEmpty() && value->IsNumber())
opt->setValueNumber(value->Int32Value());
break;
case TEXT:
diff --git a/Plugins/skins/m_skins.h b/Plugins/skins/m_skins.h
index 31bdd6c..081f834 100644
--- a/Plugins/skins/m_skins.h
+++ b/Plugins/skins/m_skins.h
@@ -38,6 +38,10 @@ typedef void (*SkinOptionsChangedCallback)(void *param, SKINNED_DIALOG dlg);
#define SKN_HALIGN_CENTER 2
#define SKN_HALIGN_RIGHT 3
+#define SKN_VALIGN_TOP 1
+#define SKN_VALIGN_CENTER 2
+#define SKN_VALIGN_BOTTOM 3
+
/// Some common parameters:
/// - name : internal name and name used inside skin file
@@ -90,13 +94,14 @@ struct SKIN_INTERFACE
BOOL (*IsVisible)(SKINNED_FIELD_STATE field);
char * (*GetToolTipA)(SKINNED_FIELD field); // You have to free the result
WCHAR * (*GetToolTipW)(SKINNED_FIELD field); // You have to free the result
+ int (*GetHorizontalAlign)(SKINNED_FIELD_STATE field); // one of SKN_HALIGN_*
+ int (*GetVerticalAlign)(SKINNED_FIELD_STATE field); // one of SKN_VALIGN_*
// TextField State methods
char * (*GetTextA)(SKINNED_FIELD_STATE field); // You have to free the result
WCHAR * (*GetTextW)(SKINNED_FIELD_STATE field); // You have to free the result
HFONT (*GetFont)(SKINNED_FIELD_STATE field);
COLORREF (*GetFontColor)(SKINNED_FIELD_STATE field);
- int (*GetHorizontalAlign)(SKINNED_FIELD_STATE field); // one of SKN_HALIGN_*
// IconField State methods
HICON (*GetIcon)(SKINNED_FIELD_STATE field);
diff --git a/Plugins/skins/m_skins_cpp.h b/Plugins/skins/m_skins_cpp.h
index 1434dc1..4f3be3b 100644
--- a/Plugins/skins/m_skins_cpp.h
+++ b/Plugins/skins/m_skins_cpp.h
@@ -38,6 +38,8 @@ public:
RECT getInsideRect() { return mski.GetInsideRect(field); }
RECT getBorders() { return mski.GetBorders(field); }
BOOL isVisible() { return mski.IsVisible(field); }
+ int getHorizontalAlign() { return mski.GetHorizontalAlign(field); } // one of SKN_HALIGN_*
+ int getVerticalAlign() { return mski.GetVerticalAlign(field); } // one of SKN_VALIGN_*
const TCHAR * getToolTip() {
if (tooltip != NULL)
@@ -76,7 +78,6 @@ public:
HFONT getFont() { return mski.GetFont(field); }
COLORREF getFontColor() { return mski.GetFontColor(field); }
- int getHorizontalAlign() { return mski.GetHorizontalAlign(field); } // one of SKN_HALIGN_*
private:
TCHAR *text;
diff --git a/Plugins/skins/options.cpp b/Plugins/skins/options.cpp
index 730df6d..15c8631 100644
--- a/Plugins/skins/options.cpp
+++ b/Plugins/skins/options.cpp
@@ -53,7 +53,7 @@ int InitOptionsCallback(WPARAM wParam,LPARAM lParam)
for(unsigned int i = 0; i < dlgs.size(); i++)
{
MirandaSkinnedDialog * dlg = dlgs[i];
- odp.pszTitle = (char *) dlg->getName(); // Yeah, yeah, I know...
+ odp.pszTitle = (char *) dlg->getDescription(); // Yeah, yeah, I know...
odp.dwInitParam = (LPARAM) dlg;
CallService(MS_OPT_ADDPAGE, wParam, (LPARAM)&odp);
}
diff --git a/Plugins/skins/skins.cpp b/Plugins/skins/skins.cpp
index da45f6d..46ef919 100644
--- a/Plugins/skins/skins.cpp
+++ b/Plugins/skins/skins.cpp
@@ -383,7 +383,7 @@ SKINNED_DIALOG Interface_RegisterDialog(const char *name, const char *descriptio
if (!FileExists(filename.c_str()))
return NULL;
- MirandaSkinnedDialog *dlg = new MirandaSkinnedDialog(name, module);
+ MirandaSkinnedDialog *dlg = new MirandaSkinnedDialog(name, description, module);
dlg->setErrorCallback(OnError, dlg);
dlgs.push_back(dlg);
return (SKINNED_DIALOG) dlg;
@@ -795,14 +795,16 @@ int Interface_GetHorizontalAlign(SKINNED_FIELD_STATE field)
return SKN_HALIGN_LEFT;
FieldState *fieldState = (FieldState *) field;
+ return fieldState->getHAlign();
+}
- switch(fieldState->getField()->getType())
- {
- case SIMPLE_TEXT:
- return ((TextFieldState *) fieldState)->getHAlign();
- }
+int Interface_GetVerticalAlign(SKINNED_FIELD_STATE field)
+{
+ if (field == NULL)
+ return SKN_VALIGN_TOP;
- return SKN_HALIGN_LEFT;
+ FieldState *fieldState = (FieldState *) field;
+ return fieldState->getVAlign();
}
HICON Interface_GetIcon(SKINNED_FIELD_STATE field)
@@ -878,12 +880,13 @@ static int Service_GetInterface(WPARAM wParam, LPARAM lParam)
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->GetHorizontalAlign = &Interface_GetHorizontalAlign;
mski->GetIcon = &Interface_GetIcon;
diff --git a/Plugins/skins/skins.vcproj b/Plugins/skins/skins.vcproj
index 50a7001..23afa14 100644
--- a/Plugins/skins/skins.vcproj
+++ b/Plugins/skins/skins.vcproj
@@ -75,7 +75,7 @@
<Tool
Name="VCLinkerTool"
AdditionalOptions="/ALIGN:4096 /filealign:0x200 /ignore:4108 "
- AdditionalDependencies="msimg32.lib comctl32.lib $(ProjectDir)libs\v8_g.lib"
+ AdditionalDependencies="$(ProjectDir)libs\v8_g.lib"
OutputFile="..\..\bin\debug\Plugins\skins.dll"
LinkIncremental="2"
SuppressStartupBanner="true"
@@ -176,7 +176,7 @@
<Tool
Name="VCLinkerTool"
AdditionalOptions="/ALIGN:4096 /filealign:0x200 /ignore:4108 "
- AdditionalDependencies="msimg32.lib comctl32.lib $(ProjectDir)libs\v8.lib"
+ AdditionalDependencies="$(ProjectDir)libs\v8.lib"
OutputFile="..\..\bin\release\Plugins\skins.dll"
LinkIncremental="1"
SuppressStartupBanner="true"
@@ -370,7 +370,7 @@
<Tool
Name="VCLinkerTool"
AdditionalOptions="/ALIGN:4096 /filealign:0x200 /ignore:4108 "
- AdditionalDependencies="msimg32.lib comctl32.lib $(ProjectDir)libs\v8.lib"
+ AdditionalDependencies="$(ProjectDir)libs\v8.lib"
OutputFile="..\..\bin\release unicode\Plugins\skinsW.dll"
LinkIncremental="1"
SuppressStartupBanner="true"