diff --git a/reference/ArrayHideShowColumnMenu/ArrayHideShowColumnMenu.lay b/reference/ArrayHideShowColumnMenu/ArrayHideShowColumnMenu.lay new file mode 100644 index 000000000..b797310f3 --- /dev/null +++ b/reference/ArrayHideShowColumnMenu/ArrayHideShowColumnMenu.lay @@ -0,0 +1,4 @@ +LAYOUT(MainWindowLayout, 448, 292) + ITEM(ArrayCtrl, m_array, AutoHideSb(true).HSizePosZ(8, 8).VSizePosZ(8, 8)) +END_LAYOUT + diff --git a/reference/ArrayHideShowColumnMenu/ArrayHideShowColumnMenu.upp b/reference/ArrayHideShowColumnMenu/ArrayHideShowColumnMenu.upp new file mode 100644 index 000000000..824ea512b --- /dev/null +++ b/reference/ArrayHideShowColumnMenu/ArrayHideShowColumnMenu.upp @@ -0,0 +1,12 @@ +description "Hide/Show Menu for ArrayCtrl Columns\377"; + +uses + CtrlLib; + +file + main.cpp, + ArrayHideShowColumnMenu.lay; + +mainconfig + "" = "GUI"; + diff --git a/reference/ArrayHideShowColumnMenu/main.cpp b/reference/ArrayHideShowColumnMenu/main.cpp new file mode 100644 index 000000000..ae809a361 --- /dev/null +++ b/reference/ArrayHideShowColumnMenu/main.cpp @@ -0,0 +1,92 @@ +#include + +using namespace Upp; + +#define LAYOUTFILE +#include + + +class MainWindow : public WithMainWindowLayout { +public: + typedef MainWindow CLASSNAME; + MainWindow(); + void Serialize(Stream& s); +protected: + void FillTestData(); + void AddName(int i, const char * a_name); + void OnArrayBar(Bar &menu); + void ShowColumn(int index, bool show); +}; + +MainWindow::MainWindow() +{ + CtrlLayout(*this, "Array Hide/Show Column Menu demonstration"); + Sizeable(); + m_array.WhenBar = THISBACK(OnArrayBar); + m_array.AllSorting(); + + + //Showing columns + //m_array.AddColumn("Zero Column"); + + //hidden by default: + int i = m_array.AddColumn("First Column").HeaderTab().GetIndex(); + m_array.HeaderObject().ShowTab(i, false); + + m_array.AddColumn("Second Column"); + m_array.AddColumn("Third Column"); + //m_array.AddColumn("Fourth Column"); + FillTestData(); +} + +void MainWindow::Serialize(Stream& s) +{ + int version = 1; + s / version; + SerializePlacement(s); + m_array.SerializeSettings(s); +} + +void MainWindow::FillTestData() +{ + AddName(0, "Zero"); + AddName(1, "One"); + AddName(2, "Two"); + AddName(3, "Three"); + AddName(4, "Four"); +} + +void MainWindow::AddName(int i, const char * a_name) +{ + Vector vec; + vec.Add(i); + vec.Add(a_name); + vec.Add(i*10); + m_array.Add(vec); +} + +void MainWindow::OnArrayBar(Bar &menu) +{ + HeaderCtrl& header = m_array.HeaderObject(); + for(int i=0; i