ultimatepp/bazaar/TabBarCtrlTest/main.cpp
kohait e19d2d32b3 TabBar: forgotten files, TabBarCtrl: structuring code, FileTabsExample: ordering of Tabs
git-svn-id: svn://ultimatepp.org/upp/trunk@2547 f0d560ea-af0d-0410-9eb7-867de7ffcac7
2010-07-19 10:11:58 +00:00

148 lines
3.4 KiB
C++

#include "TabBarCtrlTest.h"
TabBarTest::TabBarTest()
{
CtrlLayout(*this, "TabBarCtrl Test");
CtrlLayout(layout1);
CtrlLayout(layout2);
CtrlLayout(layout3);
Sizeable().Zoomable();
tabs <<= THISBACK(OnTabCursor);
layout2.add <<= THISBACK(OnAdd);
layout3.grouping <<= THISBACK(OnGrouping);
layout3.groupsort <<= THISBACK(OnGroupSort);
layout3.stacking <<= THISBACK(OnStacking);
layout3.stacksort <<= THISBACK(OnStackSort);
layout3.sortonce <<= THISBACK(OnTabsSortOnce);
layout3.sortorder <<= THISBACK(OnTabsSortOnce);
layout3.keepsorted <<= THISBACK(OnTabSort);
layout3.sb_thickness <<= THISBACK(OnSBThickness);
layout3.groupseps <<= THISBACK(OnGroupSeps);
layout3.variantcrosses <<= THISBACK(OnChooseCrosses);
layout3.emptyseps <<= THISBACK(OnEmptySeps);
layout2.newvalue <<= "New Item";
layout2.newkey <<= "A Key";
layout2.newgroup <<= "Group 4";
layout3.stacksort <<= true;
layout3.grouping <<= true;
for(int i = 1; i < 11; i++)
layout3.sb_thickness.Add(i, i);
layout3.sb_thickness <<= 2;
layout3.sortorder.Add("Forwards");
layout3.sortorder.Add("Backwards");
layout3.sortorder.SetIndex(0);
for(int i = 6; i < 9; i++)
tabs.AddKey(i, "Item " + FormatInt(i), Null, "Group 2");
for(int i = 9; i < 11; i++)
tabs.AddKey(i, "Item " + FormatInt(i), Null, "Group 3");
Add(tabs.SizePos());
tabs.AddCtrl(layout1, 1, "Layout 1", Null, "Group 1");
tabs.AddCtrl(layout2, 2, "Layout 2", Null, "Group 1");
tabs.AddCtrl(layout3, 3, "Layout 3", Null, "Group 2");
tabs.AllowReorder(false);
}
void TabBarTest::OnGroupSeps()
{
tabs.GroupSeparators(layout3.groupseps);
}
void TabBarTest::OnChooseCrosses()
{
if (layout3.variantcrosses)
TabBar::StyleDefault().Write().Variant1Crosses();
else
TabBar::StyleDefault().Write().DefaultCrosses();
tabs.Refresh();
}
void TabBarTest::OnEmptySeps()
{
if (layout3.emptyseps)
TabBar::StyleDefault().Write().NoGroupSeparators();
else
TabBar::StyleDefault().Write().DefaultGroupSeparators();
tabs.Refresh();
}
void TabBarTest::OnSBThickness()
{
tabs.SetScrollThickness(~layout3.sb_thickness);
}
void TabBarTest::OnTabsSortOnce()
{
tabs.SortTabValuesOnce(GetSortOrder());
}
void TabBarTest::OnTabSort()
{
if (layout3.keepsorted)
tabs.SortTabValues(GetSortOrder());
else
tabs.SortTabs(false);
}
void TabBarTest::OnGrouping()
{
tabs.Grouping(layout3.grouping);
}
void TabBarTest::OnGroupSort()
{
tabs.SortGroups(layout3.groupsort);
}
void TabBarTest::OnStacking()
{
tabs.Stacking(layout3.stacking);
}
void TabBarTest::OnStackSort()
{
tabs.SortStacks(layout3.stacksort);
}
void TabBarTest::OnTabCursor()
{
Value v = tabs.GetData();
if (!IsNull(v)) {
layout1.selected_key = (String)StdConvert().Format(tabs.GetData());
layout1.selected_value = (String)StdConvert().Format(tabs.GetValue(tabs.GetCursor()));
}
else {
layout1.selected_key = "";
layout1.selected_value = "";
}
layout1.selected_index.SetLabel(AsString(tabs.GetCursor()));
}
void TabBarTest::OnAdd()
{
if (layout2.newvalue.GetLength() == 0)
PromptOK("You must supply a value");
tabs.AddKey(Nvl(~layout2.newkey, ~layout2.newvalue), ~layout2.newvalue, Null, ~layout2.newgroup);
}
ValueOrder & TabBarTest::GetSortOrder()
{
switch (layout3.sortorder.GetIndex()) {
case 1:
return backward;
}
return forward;
}
GUI_APP_MAIN
{
TabBarTest tabBarTest;
tabBarTest.Run();
}