@Override public void draw(T value, Canvas canvas, Rect2i subregion) { try (SubRegion ignored = canvas.subRegion(subregion, false)) { draw(value, canvas); } }
String textToDraw = passwordMode ? buildPasswordString() : text.get(); int widthForDraw = (multiline) ? multilineWidth : lastFont.getWidth(textToDraw); try (SubRegion ignored = canvas.subRegion(canvas.getRegion(), true); SubRegion ignored2 = canvas.subRegion(Rect2i.createFromMinAndSize(-offset, 0, widthForDraw + 1, Integer.MAX_VALUE), false)) { if (isShowingHintText && !readOnly) { canvas.drawTextRaw(textToDraw, lastFont, canvas.getCurrentStyle().getHintTextColor(), canvas.getRegion());
private void drawTicker(Canvas canvas, String part, Binding<Float> value, InteractionListener tickerListener, boolean rightTicker) { canvas.setPart(part); String display = String.format("%." + precision + "f", value.get()); int tickerWidth = canvas.getCurrentStyle().getFont().getWidth(formatString); tickerWidth += canvas.getCurrentStyle().getMargin().getTotalWidth(); sliderWidth = canvas.size().x - tickerWidth * 2; int drawLocation = pixelOffsetFor(value.get(), sliderWidth); if (rightTicker) { drawLocation += tickerWidth; } Rect2i tickerRegion = Rect2i.createFromMinAndSize(drawLocation, 0, tickerWidth, canvas.size().y); try (SubRegion ignored = canvas.subRegion(tickerRegion, false)) { canvas.drawBackground(); canvas.drawText(display); if (isEnabled()) { canvas.addInteractionRegion(tickerListener); } } }
/** * Draw the widget with just a horizontal scrollbar. * <p> * If the content doesn't fit in the vertical axis, it will be cropped * * @param canvas The canvas to draw on * @param availableSize The available size for the layout. Does not include scrollbar size * @param contentSize The size of the widget to draw */ private void drawWithJustHorizontal(Canvas canvas, Vector2i availableSize, Vector2i contentSize) { Rect2i contentRegion = Rect2i.createFromMinAndSize(Vector2i.zero(), availableSize); canvas.addInteractionRegion(scrollListener); horizontalBar.setRange(contentSize.x - contentRegion.width()); int scrollbarHeight = canvas.calculateRestrictedSize(verticalBar, availableSize).y; canvas.drawWidget(horizontalBar, Rect2i.createFromMinAndSize( new Vector2i(0, availableSize.y), new Vector2i(availableSize.x, scrollbarHeight))); try (SubRegion ignored = canvas.subRegion(contentRegion, true)) { canvas.drawWidget(content, Rect2i.createFromMinAndSize(-horizontalBar.getValue(), 0, contentSize.x, availableSize.y)); } }
try (SubRegion ignored = canvas.subRegion(scrollableArea, true)) { drawItem(canvas, itemMargin, i, itemRegion);
@Override public void onDraw(Canvas canvas) { canvas.drawBackground(); try (SubRegion ignored = canvas.subRegion(canvas.getCurrentStyle().getMargin().shrink(canvas.getRegion()), false)) { if (selection.get() != null) { optionRenderer.draw(selection.get(), canvas);
@Override public void onDraw(Canvas canvas) { canvas.drawBackground(); try (SubRegion ignored = canvas.subRegion(canvas.getCurrentStyle().getMargin().shrink(canvas.getRegion()), false)) { if (selection.get() != null) { optionRenderer.draw(selection.get(), canvas);
@Override public void onDraw(Canvas canvas) { canvas.setPart(SLIDER); canvas.drawBackground(); canvas.setPart(TICKER); String display = getDisplayText(); int tickerWidth = canvas.getCurrentStyle().getFont().getWidth(display); tickerWidth += canvas.getCurrentStyle().getMargin().getTotalWidth(); sliderWidth = canvas.size().x - tickerWidth; int drawLocation = pixelOffsetFor(getValue(), sliderWidth); Rect2i tickerRegion = Rect2i.createFromMinAndSize(drawLocation, 0, tickerWidth, canvas.size().y); try (SubRegion ignored = canvas.subRegion(tickerRegion, false)) { canvas.drawBackground(); canvas.drawText(display); if (isEnabled()) { canvas.addInteractionRegion(tickerListener); } } }
/** * Draws this widget with just a vertical scrollbar. * If the content doesn't fit in the horizontal axis, it will be cropped. * * @param canvas The canvas to draw on * @param availableSize The available size for the layout. Does not include scrollbar size * @param contentSize The size of the content */ private void drawWithJustVertical(Canvas canvas, Vector2i availableSize, Vector2i contentSize) { boolean atBottom = verticalBar.getRange() == verticalBar.getValue(); Rect2i contentRegion = Rect2i.createFromMinAndSize(Vector2i.zero(), availableSize); verticalBar.setRange(contentSize.y - contentRegion.height()); if ((stickToBottom && atBottom) || moveToBottomPending) { verticalBar.setValue(verticalBar.getRange()); moveToBottomPending = false; } if (moveToTopPending) { verticalBar.setValue(0); moveToTopPending = false; } canvas.addInteractionRegion(scrollListener); int scrollbarWidth = canvas.calculateRestrictedSize(verticalBar, availableSize).x; canvas.drawWidget(verticalBar, Rect2i.createFromMinAndSize( new Vector2i(availableSize.x, 0), new Vector2i(scrollbarWidth, availableSize.y))); try (SubRegion ignored = canvas.subRegion(contentRegion, true)) { canvas.drawWidget(content, Rect2i.createFromMinAndSize(0, -verticalBar.getValue(), availableSize.x, contentSize.y)); } }
canvas.calculateRestrictedSize(horizontalBar, availableSize))); try (SubRegion ignored = canvas.subRegion(contentRegion, true)) { canvas.drawWidget(content, Rect2i.createFromMinAndSize(-horizontalBar.getValue(), -verticalBar.getValue(), contentSize.x, contentSize.y));
try (SubRegion ignored = canvas.subRegion(Rect2i.createFromMinAndSize(left, top, attachmentSize.x, attachmentSize.y), false)) { canvas.drawBackground(); canvas.drawWidget(attachment, style.getBackgroundBorder().shrink(canvas.getRegion()));
super.onDraw(canvas); canvas.addInteractionRegion(mouseInteractionListener); try (SubRegion subRegion = canvas.subRegion(canvas.getRegion(), false)) { canvas.setDrawOnTop(true); for (UIWidget widget : getWidgets()) {