This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
diff --git a/src/guiFormSpecMenu.cpp b/src/guiFormSpecMenu.cpp | |
index 0aa2c2d..58008b8 100644 | |
--- a/src/guiFormSpecMenu.cpp | |
+++ b/src/guiFormSpecMenu.cpp | |
@@ -61,6 +61,8 @@ | |
} | |
+const double FS = 1.23; | |
+ | |
void drawItemStack(video::IVideoDriver *driver, | |
gui::IGUIFont *font, | |
const ItemStack &item, | |
@@ -284,8 +286,8 @@ void GUIFormSpecMenu::parseSize(parserData* data,std::string element) { | |
if (parts[1].find(';') != std::string::npos) | |
parts[1] = parts[1].substr(0,parts[1].find(';')); | |
- invsize.X = stof(parts[0]); | |
- invsize.Y = stof(parts[1]); | |
+ invsize.X = stof(parts[0]) * FS; | |
+ invsize.Y = stof(parts[1]) * FS; | |
infostream<<"Form size ("<<invsize.X<<","<<invsize.Y<<")"<<std::endl; | |
@@ -363,12 +365,12 @@ void GUIFormSpecMenu::parseList(parserData* data,std::string element) { | |
loc.deSerialize(location); | |
v2s32 pos = padding + AbsoluteRect.UpperLeftCorner; | |
- pos.X += stof(v_pos[0]) * (float)spacing.X; | |
- pos.Y += stof(v_pos[1]) * (float)spacing.Y; | |
+ pos.X += stof(v_pos[0]) * FS * (float)spacing.X; | |
+ pos.Y += stof(v_pos[1]) * FS * (float)spacing.Y; | |
v2s32 geom; | |
- geom.X = stoi(v_geom[0]); | |
- geom.Y = stoi(v_geom[1]); | |
+ geom.X = stoi(v_geom[0]) * FS; | |
+ geom.Y = stoi(v_geom[1]) * FS; | |
infostream<<"list inv="<<location<<", listname="<<listname | |
<<", pos=("<<pos.X<<","<<pos.Y<<")" | |
<<", geom=("<<geom.X<<","<<geom.Y<<")" | |
@@ -400,8 +402,8 @@ void GUIFormSpecMenu::parseCheckbox(parserData* data,std::string element) { | |
MY_CHECKPOS("checkbox",0); | |
v2s32 pos = padding; | |
- pos.X += stof(v_pos[0]) * (float) spacing.X; | |
- pos.Y += stof(v_pos[1]) * (float) spacing.Y; | |
+ pos.X += stof(v_pos[0]) * FS * (float) spacing.X; | |
+ pos.Y += stof(v_pos[1]) * FS * (float) spacing.Y; | |
core::rect<s32> rect = core::rect<s32>(pos.X, pos.Y+((imgsize.Y/2)-15), pos.X+300, pos.Y+((imgsize.Y/2)+15)); | |
@@ -450,12 +452,12 @@ void GUIFormSpecMenu::parseImage(parserData* data,std::string element) { | |
MY_CHECKGEOM("image",1); | |
v2s32 pos = padding + AbsoluteRect.UpperLeftCorner; | |
- pos.X += stof(v_pos[0]) * (float) spacing.X; | |
- pos.Y += stof(v_pos[1]) * (float) spacing.Y; | |
+ pos.X += stof(v_pos[0]) * FS * (float) spacing.X; | |
+ pos.Y += stof(v_pos[1]) * FS * (float) spacing.Y; | |
v2s32 geom; | |
- geom.X = stoi(v_geom[0]) * (float)imgsize.X; | |
- geom.Y = stoi(v_geom[1]) * (float)imgsize.Y; | |
+ geom.X = stoi(v_geom[0]) * FS * (float)imgsize.X; | |
+ geom.Y = stoi(v_geom[1]) * FS * (float)imgsize.Y; | |
infostream<<"image name="<<name | |
<<", pos=("<<pos.X<<","<<pos.Y<<")" | |
@@ -474,8 +476,8 @@ void GUIFormSpecMenu::parseImage(parserData* data,std::string element) { | |
MY_CHECKPOS("image",0); | |
v2s32 pos = padding + AbsoluteRect.UpperLeftCorner; | |
- pos.X += stof(v_pos[0]) * (float) spacing.X; | |
- pos.Y += stof(v_pos[1]) * (float) spacing.Y; | |
+ pos.X += stof(v_pos[0]) * FS * (float) spacing.X; | |
+ pos.Y += stof(v_pos[1]) * FS * (float) spacing.Y; | |
std::cout<<"image name="<<name | |
<<", pos=("<<pos.X<<","<<pos.Y<<")" | |
@@ -500,12 +502,12 @@ void GUIFormSpecMenu::parseItemImage(parserData* data,std::string element) { | |
MY_CHECKGEOM("itemimage",1); | |
v2s32 pos = padding + AbsoluteRect.UpperLeftCorner; | |
- pos.X += stof(v_pos[0]) * (float) spacing.X; | |
- pos.Y += stof(v_pos[1]) * (float) spacing.Y; | |
+ pos.X += stof(v_pos[0]) * FS * (float) spacing.X; | |
+ pos.Y += stof(v_pos[1]) * FS * (float) spacing.Y; | |
v2s32 geom; | |
- geom.X = stoi(v_geom[0]) * (float)imgsize.X; | |
- geom.Y = stoi(v_geom[1]) * (float)imgsize.Y; | |
+ geom.X = stoi(v_geom[0]) * FS * (float)imgsize.X; | |
+ geom.Y = stoi(v_geom[1]) * FS * (float)imgsize.Y; | |
infostream<<"item name="<<name | |
<<", pos=("<<pos.X<<","<<pos.Y<<")" | |
@@ -532,12 +534,12 @@ void GUIFormSpecMenu::parseButton(parserData* data,std::string element,std::stri | |
MY_CHECKGEOM("button",1); | |
v2s32 pos = padding; | |
- pos.X += stof(v_pos[0]) * (float)spacing.X; | |
- pos.Y += stof(v_pos[1]) * (float)spacing.Y; | |
+ pos.X += stof(v_pos[0]) * FS * (float)spacing.X; | |
+ pos.Y += stof(v_pos[1]) * FS * (float)spacing.Y; | |
v2s32 geom; | |
- geom.X = (stof(v_geom[0]) * (float)spacing.X)-(spacing.X-imgsize.X); | |
- pos.Y += (stof(v_geom[1]) * (float)imgsize.Y)/2; | |
+ geom.X = (stof(v_geom[0]) * FS * (float)spacing.X)-(spacing.X-imgsize.X); | |
+ pos.Y += (stof(v_geom[1]) * FS * (float)imgsize.Y)/2; | |
core::rect<s32> rect = core::rect<s32>(pos.X, pos.Y-15, pos.X+geom.X, pos.Y+15); | |
@@ -584,12 +586,12 @@ void GUIFormSpecMenu::parseBackground(parserData* data,std::string element) { | |
MY_CHECKGEOM("background",1); | |
v2s32 pos = padding + AbsoluteRect.UpperLeftCorner; | |
- pos.X += stof(v_pos[0]) * (float)spacing.X - ((float)spacing.X-(float)imgsize.X)/2; | |
- pos.Y += stof(v_pos[1]) * (float)spacing.Y - ((float)spacing.Y-(float)imgsize.Y)/2; | |
+ pos.X += stof(v_pos[0]) * FS * (float)spacing.X - ((float)spacing.X-(float)imgsize.X)/2; | |
+ pos.Y += stof(v_pos[1]) * FS * (float)spacing.Y - ((float)spacing.Y-(float)imgsize.Y)/2; | |
v2s32 geom; | |
- geom.X = stof(v_geom[0]) * (float)spacing.X; | |
- geom.Y = stof(v_geom[1]) * (float)spacing.Y; | |
+ geom.X = stof(v_geom[0]) * FS * (float)spacing.X; | |
+ geom.Y = stof(v_geom[1]) * FS * (float)spacing.Y; | |
infostream<<"image name="<<name | |
<<", pos=("<<pos.X<<","<<pos.Y<<")" | |
@@ -624,12 +626,12 @@ void GUIFormSpecMenu::parseTextList(parserData* data,std::string element) { | |
MY_CHECKGEOM("textlist",1); | |
v2s32 pos = padding; | |
- pos.X += stof(v_pos[0]) * (float)spacing.X; | |
- pos.Y += stof(v_pos[1]) * (float)spacing.Y; | |
+ pos.X += stof(v_pos[0]) * FS * (float)spacing.X; | |
+ pos.Y += stof(v_pos[1]) * FS * (float)spacing.Y; | |
v2s32 geom; | |
- geom.X = stof(v_geom[0]) * (float)spacing.X; | |
- geom.Y = stof(v_geom[1]) * (float)spacing.Y; | |
+ geom.X = stof(v_geom[0]) * FS * (float)spacing.X; | |
+ geom.Y = stof(v_geom[1]) * FS * (float)spacing.Y; | |
core::rect<s32> rect = core::rect<s32>(pos.X, pos.Y, pos.X+geom.X, pos.Y+geom.Y); | |
@@ -708,10 +710,10 @@ void GUIFormSpecMenu::parseDropDown(parserData* data,std::string element) { | |
MY_CHECKPOS("dropdown",0); | |
v2s32 pos = padding; | |
- pos.X += stof(v_pos[0]) * (float)spacing.X; | |
- pos.Y += stof(v_pos[1]) * (float)spacing.Y; | |
+ pos.X += stof(v_pos[0]) * FS * (float)spacing.X; | |
+ pos.Y += stof(v_pos[1]) * FS * (float)spacing.Y; | |
- s32 width = stof(parts[1]) * (float)spacing.Y; | |
+ s32 width = stof(parts[1]) * FS * (float)spacing.Y; | |
core::rect<s32> rect = core::rect<s32>(pos.X, pos.Y, pos.X+width, pos.Y+30); | |
@@ -767,13 +769,13 @@ void GUIFormSpecMenu::parsePwdField(parserData* data,std::string element) { | |
MY_CHECKGEOM("pwdfield",1); | |
v2s32 pos; | |
- pos.X += stof(v_pos[0]) * (float)spacing.X; | |
- pos.Y += stof(v_pos[1]) * (float)spacing.Y; | |
+ pos.X += stof(v_pos[0]) * FS * (float)spacing.X; | |
+ pos.Y += stof(v_pos[1]) * FS * (float)spacing.Y; | |
v2s32 geom; | |
- geom.X = (stof(v_geom[0]) * (float)spacing.X)-(spacing.X-imgsize.X); | |
+ geom.X = (stof(v_geom[0]) * FS * (float)spacing.X)-(spacing.X-imgsize.X); | |
- pos.Y += (stof(v_geom[1]) * (float)imgsize.Y)/2; | |
+ pos.Y += (stof(v_geom[1]) * FS * (float)imgsize.Y)/2; | |
pos.Y -= 15; | |
geom.Y = 30; | |
@@ -805,8 +807,8 @@ void GUIFormSpecMenu::parsePwdField(parserData* data,std::string element) { | |
if (label.length() > 1) | |
{ | |
- rect.UpperLeftCorner.Y -= 15; | |
- rect.LowerRightCorner.Y = rect.UpperLeftCorner.Y + 15; | |
+ rect.UpperLeftCorner.Y -= FS*15; | |
+ rect.LowerRightCorner.Y = rect.UpperLeftCorner.Y + FS*15; | |
Environment->addStaticText(spec.flabel.c_str(), rect, false, true, this, 0); | |
} | |
@@ -898,8 +900,8 @@ void GUIFormSpecMenu::parseSimpleField(parserData* data,std::vector<std::string> | |
if (label.length() > 1) | |
{ | |
- rect.UpperLeftCorner.Y -= 15; | |
- rect.LowerRightCorner.Y = rect.UpperLeftCorner.Y + 15; | |
+ rect.UpperLeftCorner.Y -= FS*15; | |
+ rect.LowerRightCorner.Y = rect.UpperLeftCorner.Y + FS*15; | |
Environment->addStaticText(spec.flabel.c_str(), rect, false, true, this, 0); | |
} | |
} | |
@@ -921,21 +923,21 @@ void GUIFormSpecMenu::parseTextArea(parserData* data,std::vector<std::string>& p | |
MY_CHECKGEOM(type,1); | |
v2s32 pos; | |
- pos.X = stof(v_pos[0]) * (float) spacing.X; | |
- pos.Y = stof(v_pos[1]) * (float) spacing.Y; | |
+ pos.X = stof(v_pos[0]) * FS * (float) spacing.X; | |
+ pos.Y = stof(v_pos[1]) * FS * (float) spacing.Y; | |
v2s32 geom; | |
- geom.X = (stof(v_geom[0]) * (float)spacing.X)-(spacing.X-imgsize.X); | |
+ geom.X = (stof(v_geom[0]) * FS * (float)spacing.X)-(spacing.X-imgsize.X); | |
if (type == "textarea") | |
{ | |
- geom.Y = (stof(v_geom[1]) * (float)imgsize.Y) - (spacing.Y-imgsize.Y); | |
+ geom.Y = (stof(v_geom[1]) * FS * (float)imgsize.Y) - (spacing.Y-imgsize.Y); | |
pos.Y += 15; | |
} | |
else | |
{ | |
- pos.Y += (stof(v_geom[1]) * (float)imgsize.Y)/2; | |
+ pos.Y += (stof(v_geom[1]) * FS * (float)imgsize.Y)/2; | |
pos.Y -= 15; | |
geom.Y = 30; | |
} | |
@@ -998,8 +1000,8 @@ void GUIFormSpecMenu::parseTextArea(parserData* data,std::vector<std::string>& p | |
if (label.length() > 1) | |
{ | |
- rect.UpperLeftCorner.Y -= 15; | |
- rect.LowerRightCorner.Y = rect.UpperLeftCorner.Y + 15; | |
+ rect.UpperLeftCorner.Y -= FS*15; | |
+ rect.LowerRightCorner.Y = rect.UpperLeftCorner.Y + FS*15; | |
Environment->addStaticText(spec.flabel.c_str(), rect, false, true, this, 0); | |
} | |
} | |
@@ -1033,8 +1035,8 @@ void GUIFormSpecMenu::parseLabel(parserData* data,std::string element) { | |
MY_CHECKPOS("label",0); | |
v2s32 pos = padding; | |
- pos.X += stof(v_pos[0]) * (float)spacing.X; | |
- pos.Y += stof(v_pos[1]) * (float)spacing.Y; | |
+ pos.X += stof(v_pos[0]) * FS * (float)spacing.X; | |
+ pos.Y += stof(v_pos[1]) * FS * (float)spacing.Y; | |
core::rect<s32> rect = core::rect<s32>(pos.X, pos.Y+((imgsize.Y/2)-15), pos.X+300, pos.Y+((imgsize.Y/2)+15)); | |
@@ -1075,8 +1077,8 @@ void GUIFormSpecMenu::parseVertLabel(parserData* data,std::string element) { | |
MY_CHECKPOS("vertlabel",1); | |
v2s32 pos = padding; | |
- pos.X += stof(v_pos[0]) * (float)spacing.X; | |
- pos.Y += stof(v_pos[1]) * (float)spacing.Y; | |
+ pos.X += stof(v_pos[0]) * FS * (float)spacing.X; | |
+ pos.Y += stof(v_pos[1]) * FS * (float)spacing.Y; | |
core::rect<s32> rect = core::rect<s32>(pos.X, pos.Y+((imgsize.Y/2)-15), pos.X+15, pos.Y+300); | |
@@ -1126,11 +1128,11 @@ void GUIFormSpecMenu::parseImageButton(parserData* data,std::string element,std: | |
MY_CHECKGEOM("imagebutton",1); | |
v2s32 pos = padding; | |
- pos.X += stof(v_pos[0]) * (float)spacing.X; | |
- pos.Y += stof(v_pos[1]) * (float)spacing.Y; | |
+ pos.X += stof(v_pos[0]) * FS * (float)spacing.X; | |
+ pos.Y += stof(v_pos[1]) * FS * (float)spacing.Y; | |
v2s32 geom; | |
- geom.X = (stof(v_geom[0]) * (float)spacing.X)-(spacing.X-imgsize.X); | |
- geom.Y = (stof(v_geom[1]) * (float)spacing.Y)-(spacing.Y-imgsize.Y); | |
+ geom.X = (stof(v_geom[0]) * FS * (float)spacing.X)-(spacing.X-imgsize.X); | |
+ geom.Y = (stof(v_geom[1]) * FS * (float)spacing.Y)-(spacing.Y-imgsize.Y); | |
bool noclip = false; | |
bool drawborder = true; | |
@@ -1218,8 +1220,8 @@ void GUIFormSpecMenu::parseTabHeader(parserData* data,std::string element) { | |
spec.ftype = f_TabHeader; | |
v2s32 pos = padding; | |
- pos.X += stof(v_pos[0]) * (float)spacing.X; | |
- pos.Y += stof(v_pos[1]) * (float)spacing.Y; | |
+ pos.X += stof(v_pos[0]) * FS * (float)spacing.X; | |
+ pos.Y += stof(v_pos[1]) * FS * (float)spacing.Y; | |
v2s32 geom; | |
geom.X = data->screensize.Y; | |
geom.Y = 30; | |
@@ -1275,11 +1277,11 @@ void GUIFormSpecMenu::parseItemImageButton(parserData* data,std::string element) | |
MY_CHECKGEOM("itemimagebutton",1); | |
v2s32 pos = padding; | |
- pos.X += stof(v_pos[0]) * (float)spacing.X; | |
- pos.Y += stof(v_pos[1]) * (float)spacing.Y; | |
+ pos.X += stof(v_pos[0]) * FS * (float)spacing.X; | |
+ pos.Y += stof(v_pos[1]) * FS * (float)spacing.Y; | |
v2s32 geom; | |
- geom.X = (stof(v_geom[0]) * (float)spacing.X)-(spacing.X-imgsize.X); | |
- geom.Y = (stof(v_geom[1]) * (float)spacing.Y)-(spacing.Y-imgsize.Y); | |
+ geom.X = (stof(v_geom[0]) * FS * (float)spacing.X)-(spacing.X-imgsize.X); | |
+ geom.Y = (stof(v_geom[1]) * FS * (float)spacing.Y)-(spacing.Y-imgsize.Y); | |
core::rect<s32> rect = core::rect<s32>(pos.X, pos.Y, pos.X+geom.X, pos.Y+geom.Y); | |
@@ -1328,12 +1330,12 @@ void GUIFormSpecMenu::parseBox(parserData* data,std::string element) { | |
MY_CHECKGEOM("box",1); | |
v2s32 pos = padding + AbsoluteRect.UpperLeftCorner; | |
- pos.X += stof(v_pos[0]) * (float) spacing.X; | |
- pos.Y += stof(v_pos[1]) * (float) spacing.Y; | |
+ pos.X += stof(v_pos[0]) * FS * (float) spacing.X; | |
+ pos.Y += stof(v_pos[1]) * FS * (float) spacing.Y; | |
v2s32 geom; | |
- geom.X = stof(v_geom[0]) * (float)spacing.X; | |
- geom.Y = stof(v_geom[1]) * (float)spacing.Y; | |
+ geom.X = stof(v_geom[0]) * FS * (float)spacing.X; | |
+ geom.Y = stof(v_geom[1]) * FS * (float)spacing.Y; | |
bool valid_color = false; | |
@@ -1475,7 +1477,7 @@ void GUIFormSpecMenu::regenerateGui(v2u32 screensize) | |
removeChildren(); | |
mydata.size= v2s32(100,100); | |
- mydata.helptext_h = 15; | |
+ mydata.helptext_h = FS*15; | |
mydata.screensize = screensize; | |
// Base position of contents of form | |
@@ -1547,7 +1549,7 @@ void GUIFormSpecMenu::regenerateGui(v2u32 screensize) | |
// Add tooltip | |
{ | |
// Note: parent != this so that the tooltip isn't clipped by the menu rectangle | |
- m_tooltip_element = Environment->addStaticText(L"",core::rect<s32>(0,0,110,18)); | |
+ m_tooltip_element = Environment->addStaticText(L"",core::rect<s32>(0,0,FS*110,FS*18)); | |
m_tooltip_element->enableOverrideColor(true); | |
m_tooltip_element->setBackgroundColor(video::SColor(255,110,130,60)); | |
m_tooltip_element->setDrawBackground(true); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment