129 | function ThreePartBitmapElement:draw(clipX1, clipY1, clipX2, clipY2) |
130 | local xOffset, yOffset = self:getOffset() |
131 | |
132 | local x = self.absPosition[1] + xOffset |
133 | local y = self.absPosition[2] + yOffset |
134 | |
135 | local state = self:getOverlayState() |
136 | if self.isHorizontal then |
137 | GuiOverlay.renderOverlay(self.startOverlay, x, y, self.startSize[1], self.absSize[2], state, clipX1, clipY1, clipX2, clipY2) |
138 | GuiOverlay.renderOverlay(self.overlay, x + self.startSize[1], y, alignSizeToScreenPixels(self.absSize[1] - self.startSize[1] - self.endSize[1]), self.absSize[2], state, clipX1, clipY1, clipX2, clipY2) |
139 | GuiOverlay.renderOverlay(self.endOverlay, alignHorizontalToScreenPixels(x + self.absSize[1] - self.endSize[1]), y, self.endSize[1], self.absSize[2], state, clipX1, clipY1, clipX2, clipY2) |
140 | else |
141 | GuiOverlay.renderOverlay(self.startOverlay, x, y + self.absSize[2] - self.startSize[2], self.absSize[1], self.startSize[2], state, clipX1, clipY1, clipX2, clipY2) |
142 | GuiOverlay.renderOverlay(self.overlay, x, y + self.endSize[2], self.absSize[1], self.absSize[2] - self.startSize[2] - self.endSize[2], state, clipX1, clipY1, clipX2, clipY2) |
143 | GuiOverlay.renderOverlay(self.endOverlay, x, y, self.absSize[1], self.endSize[2], state, clipX1, clipY1, clipX2, clipY2) |
144 | end |
145 | |
146 | -- Skip bitmap itself |
147 | BitmapElement:superClass().draw(self, clipX1, clipY1, clipX2, clipY2) |
148 | end |
42 | function ThreePartBitmapElement:loadFromXML(xmlFile, key) |
43 | ThreePartBitmapElement:superClass().loadFromXML(self, xmlFile, key) |
44 | |
45 | GuiOverlay.loadOverlay(self, self.startOverlay, "startImage", self.imageSize, nil, xmlFile, key) |
46 | GuiOverlay.loadOverlay(self, self.endOverlay, "endImage", self.imageSize, nil, xmlFile, key) |
47 | |
48 | self.startSize = GuiUtils.getNormalizedValues(getXMLString(xmlFile, key.."#startImageSize"), self.outputSize, self.startSize) |
49 | self.midSize = GuiUtils.getNormalizedValues(getXMLString(xmlFile, key.."#midImageSize"), self.outputSize, self.midSize) |
50 | self.endSize = GuiUtils.getNormalizedValues(getXMLString(xmlFile, key.."#endImageSize"), self.outputSize, self.endSize) |
51 | self.isHorizontal = Utils.getNoNil(getXMLBool(xmlFile, key .. "#isHorizontal"), self.isHorizontal) |
52 | |
53 | GuiOverlay.createOverlay(self.startOverlay) |
54 | GuiOverlay.createOverlay(self.endOverlay) |
55 | end |
59 | function ThreePartBitmapElement:loadProfile(profile, applyProfile) |
60 | ThreePartBitmapElement:superClass().loadProfile(self, profile, applyProfile) |
61 | |
62 | local startOld = self.startOverlay.filename |
63 | local endOld = self.endOverlay.filename |
64 | GuiOverlay.loadOverlay(self, self.startOverlay, "startImage", self.imageSize, profile, nil, nil) |
65 | GuiOverlay.loadOverlay(self, self.endOverlay, "endImage", self.imageSize, profile, nil, nil) |
66 | |
67 | self.startSize = GuiUtils.getNormalizedValues(profile:getValue("startImageSize"), self.outputSize, self.startSize) |
68 | self.midSize = GuiUtils.getNormalizedValues(profile:getValue("midImageSize"), self.outputSize, self.midSize) |
69 | self.endSize = GuiUtils.getNormalizedValues(profile:getValue("endImageSize"), self.outputSize, self.endSize) |
70 | self.isHorizontal = profile:getBool("isHorizontal", self.isHorizontal) |
71 | |
72 | if startOld ~= self.startOverlay.filename then |
73 | GuiOverlay.createOverlay(self.startOverlay) |
74 | end |
75 | if endOld ~= self.endOverlay.filename then |
76 | GuiOverlay.createOverlay(self.endOverlay) |
77 | end |
78 | end |