mirror of
https://github.com/ultimatepp/ultimatepp.git
synced 2026-05-28 06:12:37 -06:00
reorganizing repo
git-svn-id: svn://ultimatepp.org/upp/trunk@9206 f0d560ea-af0d-0410-9eb7-867de7ffcac7
This commit is contained in:
parent
7d17505cfe
commit
e3e8d627f5
3840 changed files with 0 additions and 1161578 deletions
|
|
@ -1,104 +0,0 @@
|
|||
#include <Docking/Docking.h>
|
||||
|
||||
/*
|
||||
** This is very simple example designed to show the basics of setting up a
|
||||
** docking window without many of the compicated features
|
||||
*/
|
||||
|
||||
/*
|
||||
** Class declaration. Notice that we inherit from DockWindow (not TopWindow)
|
||||
*/
|
||||
class DockingExample : public DockWindow {
|
||||
public:
|
||||
typedef DockingExample CLASSNAME;
|
||||
DockingExample();
|
||||
|
||||
private:
|
||||
ArrayCtrl arrayctrl1, arrayctrl2;
|
||||
TreeCtrl treectrl1, treectrl2;
|
||||
Button button;
|
||||
|
||||
// Our initialization function
|
||||
virtual void DockInit();
|
||||
|
||||
// Functions to put data in our ctrls
|
||||
void FillArray(ArrayCtrl &array);
|
||||
void FillTree(TreeCtrl &tree);
|
||||
};
|
||||
|
||||
/*
|
||||
** Source
|
||||
*/
|
||||
DockingExample::DockingExample()
|
||||
{
|
||||
Title("DockingExample1 : Simple Docking");
|
||||
|
||||
// This a button so that we can open the Dock Manager
|
||||
Add(button.SetLabel("Manager").LeftPosZ(4, 100).TopPosZ(4, 23));
|
||||
button <<= THISBACK(DockManager);
|
||||
|
||||
// Now we just put some bogus data in our controls
|
||||
FillArray(arrayctrl1);
|
||||
FillTree(treectrl1);
|
||||
FillArray(arrayctrl2);
|
||||
FillTree(treectrl2);
|
||||
}
|
||||
|
||||
void DockingExample::DockInit()
|
||||
/* This is the docking initialisation function. It gets called after the window is opened,
|
||||
** and it's here you should do your docking/serialization, if you do it in the contructor
|
||||
** you get various problems (incorrect layout, floating windows not opening).
|
||||
*/
|
||||
{
|
||||
// Here we add our dockable controls in the simplest way possible
|
||||
// It's usually best to set a minimum size as Upp ctrls aren't very good
|
||||
// at guessing by themselves
|
||||
DockLeft(Dockable(arrayctrl1, "ArrayCtrl 1").SizeHint(Size(300, 200)));
|
||||
DockLeft(Dockable(treectrl1, "TreeCtrl 1").SizeHint(Size(300, 200)));
|
||||
DockTop(Dockable(arrayctrl2, "ArrayCtrl 2").SizeHint(Size(300, 200)));
|
||||
DockRight(Dockable(treectrl2, "TreeCtrl 2").SizeHint(Size(300, 200)));
|
||||
/*
|
||||
** Not bad for four lines of code.
|
||||
**
|
||||
** Some notes about the above:
|
||||
** Before a control can be dockable it must be added to a DockableCtrl.
|
||||
** Passing a ctrl to Dockable() does this for us and returns the DockableCtrl so
|
||||
** so that we can set size hints etc. If you wanted to use a Upp Layout you
|
||||
** could declare it as WithMyLayout<DockableCtrl> and use that instead.
|
||||
** We then pass this DockableCtrl to DockLeft/DockTop (or right/bottom) to add
|
||||
** it to the window
|
||||
*/
|
||||
|
||||
}
|
||||
|
||||
/*
|
||||
** Everything after here is fluff
|
||||
*/
|
||||
void DockingExample::FillArray(ArrayCtrl &array)
|
||||
{
|
||||
array.AddColumn("Number");
|
||||
array.AddColumn("Roman numbers");
|
||||
array.MultiSelect();
|
||||
for(int i = 0; i < 200; i++)
|
||||
array.Add(i, FormatIntRoman(i, true));
|
||||
}
|
||||
|
||||
void DockingExample::FillTree(TreeCtrl &tree)
|
||||
{
|
||||
Vector<int> parent, parent2;
|
||||
parent.Add(0);
|
||||
tree.SetRoot(Image(), "The Tree");
|
||||
for(int i = 1; i < 10000; i++) {
|
||||
parent.Add(tree.Add(parent[rand() % parent.GetCount()], Image(),
|
||||
FormatIntRoman(i, true)));
|
||||
if((rand() & 3) == 0)
|
||||
tree.Open(parent.Top());
|
||||
}
|
||||
tree.Open(0);
|
||||
}
|
||||
|
||||
GUI_APP_MAIN
|
||||
{
|
||||
DockingExample().Run();
|
||||
}
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue