public void captureDialog(Class<? extends DialogComponentProvider> clazz, final int width,
			final int height) {
		DialogComponentProvider dialogProvider = waitForDialogComponent(clazz);
		final JDialog dialog = (JDialog) getInstanceField("dialog", dialogProvider);
		waitForSwing();
		paintFix(dialog);
		if (width >= 0) {
			runSwing(() -> dialog.setSize(width, height));
		}

		waitForSwing();
		paintFix(dialog);

		runSwing(() -> generateImage(dialog));
	}
Captures the window, including decorations. This will use a {@link Robot} to create a screen
capture, which has the effect of getting all items within the window bounds. This method is
needed if you wish to capture child windows, like popups/hovers.

<P>
Other capture methods will not use the screen capture mechanism, but rather will directly
render the given component. In this case, subordinate windows will not be captured. For
example, see {@link #captureProvider(Class)}.

@param provider the provider's name
@param width the desired width
@param height the desired height
Ghidra/Features/Base/src/main/java/help/screenshot/AbstractScreenShotGenerator.java