mirror of
https://github.com/ultimatepp/ultimatepp.git
synced 2026-05-15 14:16:07 -06:00
148 lines
3.4 KiB
C++
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();
|
|
}
|
|
|