From bb6784e0e1a385cdd20b41d3254093e89a210332 Mon Sep 17 00:00:00 2001 From: pescuma Date: Wed, 31 Dec 2008 21:12:58 +0000 Subject: skins: Added SkinLib git-svn-id: http://pescuma.googlecode.com/svn/trunk/Miranda@120 c086bb3d-8645-0410-b8da-73a8550f86e7 --- Plugins/skins/SkinLib/DialogState.cpp | 81 +++++++++++++++++++++++++++++++++++ 1 file changed, 81 insertions(+) create mode 100644 Plugins/skins/SkinLib/DialogState.cpp (limited to 'Plugins/skins/SkinLib/DialogState.cpp') diff --git a/Plugins/skins/SkinLib/DialogState.cpp b/Plugins/skins/SkinLib/DialogState.cpp new file mode 100644 index 0000000..8643c06 --- /dev/null +++ b/Plugins/skins/SkinLib/DialogState.cpp @@ -0,0 +1,81 @@ +#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::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(); +} \ No newline at end of file -- cgit v1.2.3