Hello @HerzogVonWiesel,
Thank you for reaching out to us. This question of yours did deviate too far from the subject of breaks-viewport-rendering-when-script-is-docked. Due to that, your posting has been forked. Note that our Forum Guidelines state:
- A topic must cover a singular subject; the initial posting must be a singular question.
- Users can ask follow-up questions, asking for clarification or alternative approaches, but follow-up questions cannot change the subject.
- When the subject of the topic is "How to create a cube object?", then a follow-up question cannot be "How to add a material to that cube?" as this would change the subject.
- A valid follow-up question would be "Are there other ways to create a cube object, as the proposed solution has the drawback X for my use-case?" or "Could you please clarify the thing Y you did mention in your answer, as this is still unclear to me?".
- There is some leverage-room for this rule, but it is rather small. Small changes in the subject are allowed, large changes are not.
Please try to follow these rules in the future. It is certainly no catastrophe when users violate these from time to time, as it can be tricky to decide when something is on-topic or not. But we must enforce this rule to a reasonable degree, so that the forum remains a searchable knowledge base.
About your Question
I assume you want the dialog window to dynamically change size based on how you reconstruct the layout at runtime. Doing this is not possible, you have no control over the size of a dialog window except for the arguments for the width and height you can pass to GeDialog.Open
. Once the dialog is open, you have no control over its size.
- When you have a dialog where you do not know how large it will be when you open it with
GeDialog.Open
, set defaultw
and defaulth
both to 0
, the dialog will then automatically scale to its minimum size.
- Doing the same at runtime is not possible (for example when the layout is dynamic), as this would result in windows "magically" resizing themselves, which is a big no-no UX-wise.
- You can use the layout flags of your gadgets to place elements in a more aesthetic manner when there is excess space. You could for example do something like this:
DIALOG MYDIALOG
{
NAME IDS_MYDIALOG;
GROUP ID_GROUP_MAIN // The outmost layout group.
{
SCALE_H; SCALE_V; // It will consume all space in the dialog.
GROUP ID_GROUP_ITEMS // An inner group which contains all the options of the dialog.
{
FIT_H; // It will only consume the space it requires horizontally, i.e., the height of two
// text edit gadgets.
EDITTEXT ID_EDIT_A { SCALE_H; SIZE 256, 0; }; // A gadget with a fixed height, no SCALE_V
EDITTEXT ID_EDIT_B { SCALE_H; SIZE 256, 0; }; // A gadget with a fixed height, no SCALE_V
}
//
// ... Cinema will render here whitespace when the dialog is taller then 2 edit fields + a button
//
// The "Run" or "Do Stuff" button of the dialog, it will always stick to the bottom of the
// dialog window.
BUTTON ID_BUTTON { ALIGN_BOTTOM; NAME IDS_BUTTON }
}
}
You do not need to use a dialog resource for that you can do the same with the methods of GeDialog
.
Cheers,
Ferdinand