Home » U++ Library support » U++ Widgets - General questions or Mixed problems » SplitterFrame: How to build this? (SplitterFrame and how it works)
SplitterFrame: How to build this? [message #50863] |
Fri, 11 January 2019 00:49  |
imos
Messages: 17 Registered: July 2017
|
Promising Member |
|
|
Hi!
I would like to build a GUI app with the following macro details:
Tree | Layout/controls
|
|
|
________________
ArrayCtrl
However I can not get this using 2 SplitterFrame2:
SplitterFrame sfHor;
ArrayCtrl list;
SplitterFrame sfVert;
TreeCtrl tree;
typedef App CLASSNAME;
TopWindow app;
App()
{
CtrlLayoutOKCancel(*this, "Test SplitterFrame");
tree.SetRoot(CtrlImg::Dir(), "Data Channels");
AddFrame(sfVert.Bottom(list,200));
sfHor.Left(tree, 200);
//sfVert.Top(sfHor,200); //Error!
sfVert.SizeMin(100).MinSize(100);
Sizeable();
}
This code shows a listview on the bottom and the layout on the top. But I did not set any content for the top. Why is layout set automatically to the top?
In fact I need to create controls during runtime and not design them during development time. So the layout is not the right option, right? A kind of empty containner would be better, right?
But I can not find any container to use (such as panel in Java). Is it possible to add new controls to an empty layout during runtime?
Thanks a lot
|
|
|
Re: SplitterFrame: How to build this? [message #50865 is a reply to message #50863] |
Fri, 11 January 2019 09:28   |
Oblivion
Messages: 1204 Registered: August 2007
|
Senior Contributor |
|
|
Hello, imos
Layouts are not objects, they are simply visual representations (in theIDE) of your predefined widgets (It is c++ code) and they are added dynamicially, as in your code:
CtrlLayoutOKCancel(*this, "Test SplitterFrame");
Above code (and other variants of CtrlLayout() function) simply adds and intializes a set of predefined widgets (visually represented as a "layout") to the given Ctrl. (In your case it is referenced by *this, which is a TopWindow. You can also assign layouts to other Ctrls.).
You can modify (add, remove, move position, change their properties etc) the widgets in your layout in runtime, as you like.
You can even define multiple layouts and use them interchangebly in runtime.
I can not find any container to use (such as panel in Java). Is it possible to add new controls to an empty layout during runtime?
Yes, see the above answer. 
And you can use ParentCtrl. It is meant to be a container, for grouping widgets.
Best regards,
Oblivion
Github page: https://github.com/ismail-yilmaz
upp-components: https://github.com/ismail-yilmaz/upp-components
Bobcat the terminal emulator: https://github.com/ismail-yilmaz/Bobcat
[Updated on: Fri, 11 January 2019 09:41] Report message to a moderator
|
|
|
Re: SplitterFrame: How to build this? [message #50878 is a reply to message #50863] |
Fri, 11 January 2019 15:25   |
imos
Messages: 17 Registered: July 2017
|
Promising Member |
|
|
Thanks for the explanations, but How to get this GUI skeleton:
Tree | Layout/controls
|
|
|
________________
ArrayCtrl at bottom
using 2 SplitterFrames?
Why does "CtrlLayout" stays in the top of the first SplitterFrame if I did nothing to achieve that (according to the privided source code)?
Why can not I add first horizontal SplitterFrame to the top of vertical split frame?
Thanks
[Updated on: Fri, 11 January 2019 15:26] Report message to a moderator
|
|
|
|
|
Goto Forum:
Current Time: Tue Apr 29 19:50:30 CEST 2025
Total time taken to generate the page: 0.01207 seconds
|