MCPcopy Create free account
hub / github.com/Card-Forge/forge / draw

Method draw

forge-gui-mobile/src/forge/toolbox/FButton.java:261–342  ·  view source on GitHub ↗
(Graphics g)

Source from the content-addressed store, hash-verified

259 }
260
261 @Override
262 public void draw(Graphics g) {
263 float x = 0;
264 float y = 0;
265 float w = getWidth();
266 float h = getHeight();
267
268 float cornerButtonWidth = w / 2;
269 float cornerButtonHeight = h * 1.5f;
270 float cornerTextOffsetX = cornerButtonWidth / 2;
271 float cornerTextOffsetY = (cornerButtonHeight - h) / 2;
272
273 if (imgL.getTextureRegion() == null) {
274 //handle rendering buttons before textures loaded
275 FLabel.drawButtonBackground(g, w, h, imgL == FSkinImage.BTN_DOWN_LEFT);
276 } else {
277 //determine images to draw and text alignment based on which corner button is in (if any)
278 FSkinImage btnOverL = hdbuttonskin() ? FSkinImage.HDBTN_OVER_LEFT : FSkinImage.BTN_OVER_LEFT;
279 FSkinImage btnOverC = hdbuttonskin() ? FSkinImage.HDBTN_OVER_CENTER : FSkinImage.BTN_OVER_CENTER;
280 FSkinImage btnOverR = hdbuttonskin() ? FSkinImage.HDBTN_OVER_RIGHT : FSkinImage.BTN_OVER_RIGHT;
281 if (Forge.isMobileAdventureMode) {
282 btnOverL = FSkinImage.ADV_BTN_OVER_LEFT;
283 btnOverC = FSkinImage.ADV_BTN_OVER_CENTER;
284 btnOverR = FSkinImage.ADV_BTN_OVER_RIGHT;
285 }
286 switch (corner) {
287 case None:
288 if (w > 2 * h) {
289 g.drawImage(isHovered() && !pressed ? btnOverL : imgL, 0, 0, h, h);
290 g.drawImage(isHovered() && !pressed ? btnOverC : imgM, h, 0, w - (2 * h), h);
291 g.drawImage(isHovered() && !pressed ? btnOverR : imgR, w - h, 0, h, h);
292 }
293 else {
294 g.drawImage(isHovered() && !pressed ? btnOverL : imgL, 0, 0, cornerButtonWidth, h);
295 g.drawImage(isHovered() && !pressed ? btnOverR : imgR, cornerButtonWidth, 0, w - cornerButtonWidth, h);
296 }
297 x += PADDING;
298 w -= 2 * PADDING;
299 break;
300 case BottomLeft:
301 g.startClip(x, y, w, h);
302 g.drawImage(isHovered() && !pressed ? btnOverC : imgM, 0, 0, cornerButtonWidth, cornerButtonHeight);
303 g.drawImage(isHovered() && !pressed ? btnOverR : imgR, cornerButtonWidth, 0, cornerButtonWidth, cornerButtonHeight);
304 g.endClip();
305 w -= cornerTextOffsetX;
306 y += cornerTextOffsetY;
307 h -= cornerTextOffsetY;
308 break;
309 case BottomRight:
310 g.startClip(x, y, w, h);
311 g.drawImage(isHovered() && !pressed ? btnOverL : imgL, 0, 0, cornerButtonWidth, cornerButtonHeight);
312 g.drawImage(isHovered() && !pressed ? btnOverC : imgM, cornerButtonWidth, 0, cornerButtonWidth, cornerButtonHeight);
313 g.endClip();
314 x += cornerTextOffsetX;
315 w -= cornerTextOffsetX;
316 y += cornerTextOffsetY;
317 h -= cornerTextOffsetY;
318 break;

Callers

nothing calls this directly

Calls 11

drawButtonBackgroundMethod · 0.95
hdbuttonskinMethod · 0.95
isHoveredMethod · 0.80
endClipMethod · 0.80
getWidthMethod · 0.65
getHeightMethod · 0.65
getTextureRegionMethod · 0.65
isEmptyMethod · 0.65
drawImageMethod · 0.45
startClipMethod · 0.45
drawTextMethod · 0.45

Tested by

no test coverage detected