void DnD(PasteClip& d) { if(AcceptText(d)) { a.Add(GetString(d), GetString(d)); a.SetFocus(); } }
VectorMap<String, Value> Pdb::DataMap(const ArrayCtrl& a) { VectorMap<String, Value> r; for(int i = 0; i < a.GetCount(); i++) r.Add(a.Get(i, 0), a.Get(i, 1)); return r; }
void Ide::ReadHlStyles(ArrayCtrl& hlstyle) { hlstyle.Clear(); for(int i = 0; i < CodeEditor::HL_COUNT; i++) { const HlStyle& s = editor.GetHlStyle(i); hlstyle.Add(editor.GetHlName(i), s.color, s.bold, s.italic, s.underline); } }
VectorMap<String, String> DataMap(const ArrayCtrl& data) { GuiLock __; VectorMap<String, String> m; for(int i = 0; i < data.GetCount(); i++) m.Add(data.Get(i, 0), data.Get(i, 1)); return m; }
App() { Sizeable().Zoomable(); h.AddColumn("Icon no."); h.AddColumn("Small icon").SetDisplay(CenteredImageDisplay()); h.AddColumn("Large icon").SetDisplay(CenteredImageDisplay()); h.SetLineCy(32); for(int i = 0; i < 200; i++) h.Add(i, GetShellIcon(i, false), GetShellIcon(i, true)); Add(h.SizePos()); }
App() { a.AddColumn("Option"); for(int i = 0; i < 300; i++) { a.Add(bool(i & 4)); a.SetCtrl(i, 0, option.Add().SetLabel("Option " + AsString(i))); option.Top() << [=] { Do(i); }; } a.SetLineCy(Draw::GetStdFontCy() + 8); Add(a.SizePos()); Sizeable(); }
App() { SetFrame(InsetFrame()); AddFrame(InsetFrame()); AddFrame(InsetFrame()); AddFrame(InsetFrame()); log.AddColumn(""); log.NoHeader(); Add(log.HSizePos().BottomPos(0, 200)); Add(es.LeftPos(100, 100).TopPos(100, 50)); Add(edit.LeftPos(300, 100).TopPos(100, 50)); }
void MarkChanged(const VectorMap<String, String>& m, ArrayCtrl& data) { GuiLock __; for(int i = 0; i < data.GetCount(); i++) { int q = m.Find(data.Get(i, 0)); if(q >= 0 && m[q] != data.Get(i, 1)) data.SetDisplay(i, 1, Single<RedDisplay>()); else data.SetDisplay(i, 1, StdDisplay()); } }
void DnDInsertB(int line, PasteClip& d) { if(AcceptInternal<ArrayCtrl>(d, "array")) { const ArrayCtrl& src = GetInternal<ArrayCtrl>(d); bool self = &src == &b; Vector< Vector<Value> > data; for(int i = 0; i < src.GetCount(); i++) if(src.IsSel(i)) { Value v = src.Get(i, 0); data.Add().Add(IsNumber(v) ? FormatIntRoman((int)src.Get(i, 0)) : String(v)); } b.InsertDrop(line, data, d, self); b.SetFocus(); } }
// fill a pane with data from a couple of arrays without erasing it first // (avoid re-painting and resetting scroll if not needed) void Gdb_MI2::FillPane(ArrayCtrl &pane, Index<String> const &nam, Vector<String> const &val) { GuiLock __; int oldCount = pane.GetCount(); int newCount = nam.GetCount(); if(newCount < oldCount) for(int i = oldCount - 1; i >= newCount; i--) pane.Remove(i); for(int i = 0; i < min(oldCount, newCount); i++) { pane.Set(i, 0, nam[i]); pane.Set(i, 1, val[i]); } for(int i = oldCount; i < newCount; i++) pane.Add(nam[i], val[i]); SyncWidth(pane); }
void DnDInsert(int line, PasteClip& d) { if(AcceptInternal<ArrayCtrl>(d, "array")) { a.InsertDrop(line, d); a.SetFocus(); } if(AcceptText(d)) { a.Insert(line); a.Set(line, 0, GetString(d)); a.SetCursor(line); a.SetFocus(); } }
App() { a.AddColumn("You can paste the text here too"); a.MultiSelect(); a.WhenDropInsert = THISBACK(DnDInsert); a.WhenDrop = THISBACK(DnD); a.WhenDrag = THISBACK(Drag); b.AddColumn("Roman numbers"); b.MultiSelect(); b.WhenDropInsert = THISBACK(DnDInsertB); b.WhenDrag = THISBACK(DragB); Add(s.Horz(a, b)); for(int i = 0; i < 200; i++) { a.Add(i); b.Add(FormatIntRoman(i, true)); } Sizeable(); }
void Drag() { if(a.DoDragAndDrop(InternalClip(a, "array")) == DND_MOVE) a.RemoveSelection(); }
void DragB() { if(b.DoDragAndDrop(InternalClip(b, "array"), b.GetDragSample()) == DND_MOVE) b.RemoveSelection(); }
void Pdb::Vis(ArrayCtrl& a, const String& key, const VectorMap<String, Value>& prev, Visual rval_ vis) { bool ch; a.Add(key, Vis(key, prev, vis, ch)); }
App() { CtrlLayout(*this, "Grid Test Panel"); CtrlLayout(editopt); CtrlLayout(lookopt); CtrlLayout(colsopt); CtrlLayout(numsopt); colsopt.odd_color.NoRampWheel(); colsopt.even_color.NoRampWheel(); colsopt.grid_color.NoRampWheel().NotNull(); colsopt.focus_color.NoRampWheel(); colsopt.live_color.NoRampWheel(); opts.Add(lookopt, "Look"); opts.Add(editopt, "Edit"); opts.Add(colsopt, "Colors"); opts.Add(numsopt, "Numbers"); tab.Add(grid.SizePos(), "GridCtrl"); tab.Add(arr.SizePos(), "ArrayCtrl"); tab.Add(spl.Horz(grid1, grid2), "Splitter"); lookopt.resize_paint_mode.Add("Line"); lookopt.resize_paint_mode.Add("Line + Fixed"); lookopt.resize_paint_mode.Add("Fixed + NonFixed"); lookopt.resize_col_mode.Add("Absolute"); lookopt.resize_col_mode.Add("Proportional"); lookopt.resize_row_mode.Add("Absolute"); lookopt.resize_row_mode.Add("Proportional"); colsopt.odd_even_mode = 2; numsopt.total_cols <<= 8; numsopt.total_rows <<= 105; numsopt.fixed_cols <<= 0; numsopt.fixed_rows <<= 1; lookopt.indicator <<= false; lookopt.hgrid <<= true; lookopt.vgrid <<= true; lookopt.resizing_cols <<= true; lookopt.resizing_rows <<= true; lookopt.moving_cols <<= true; lookopt.moving_rows <<= true; lookopt.full_col_resizing <<= true; lookopt.full_row_resizing <<= false; lookopt.chameleon <<= false; editopt.multiline <<= true; editopt.select_row <<= false; editopt.sorting <<= true; editopt.multisort <<= true; editopt.tab_changes_row <<= true; editopt.tab_adds_row <<= true; editopt.edit_mode = 1; editopt.one_click_edit <<= false; lookopt.resize_paint_mode.SetIndex(2); lookopt.resize_col_mode.SetIndex(0); lookopt.resize_row_mode.SetIndex(0); lookopt.indicator <<= THISBACK1(LookOptions, 0); lookopt.hgrid <<= THISBACK1(LookOptions, 1); lookopt.vgrid <<= THISBACK1(LookOptions, 2); lookopt.resizing_cols <<= THISBACK1(LookOptions, 3); lookopt.resizing_rows <<= THISBACK1(LookOptions, 4); lookopt.live_cursor <<= THISBACK1(LookOptions, 5); lookopt.resize_paint_mode <<= THISBACK1(LookOptions, 6); lookopt.resize_col_mode <<= THISBACK1(LookOptions, 7); lookopt.resize_row_mode <<= THISBACK1(LookOptions, 8); lookopt.moving_cols <<= THISBACK1(LookOptions, 9); lookopt.moving_rows <<= THISBACK1(LookOptions, 10); lookopt.full_col_resizing <<= THISBACK1(LookOptions, 11); lookopt.full_row_resizing <<= THISBACK1(LookOptions, 12); lookopt.repaint <<= THISBACK1(LookOptions, 13); lookopt.disable <<= THISBACK1(LookOptions, 14); lookopt.chameleon <<= THISBACK1(LookOptions, 15); editopt.multiline <<= THISBACK1(EditOptions, 0); editopt.select_row <<= THISBACK1(EditOptions, 1); editopt.sorting <<= THISBACK1(EditOptions, 2); editopt.multisort <<= THISBACK1(EditOptions, 3); editopt.tab_changes_row <<= THISBACK1(EditOptions, 4); editopt.tab_adds_row <<= THISBACK1(EditOptions, 5); editopt.edit_mode <<= THISBACK1(EditOptions, 6); editopt.one_click_edit <<= THISBACK1(EditOptions, 7); for(int i = 0; i < grid.GetDisplay().GetThemeCount(); i++) colsopt.theme.Add(i, Format("Theme %d", i + 1)); colsopt.theme <<= 5; colsopt.theme <<= THISBACK1(ColorsOptions, 0); colsopt.odd_color <<= THISBACK1(ColorsOptions, 1); colsopt.even_color <<= THISBACK1(ColorsOptions, 2); colsopt.odd_even_mode <<= THISBACK1(ColorsOptions, 3); colsopt.grid_color <<= THISBACK1(ColorsOptions, 4); colsopt.focus_color <<= THISBACK1(ColorsOptions, 5); colsopt.live_color <<= THISBACK1(ColorsOptions, 6); numsopt.total_cols <<= THISBACK1(Actions, 0); numsopt.total_rows <<= THISBACK1(Actions, 1); numsopt.fixed_cols <<= THISBACK1(Actions, 2); numsopt.fixed_rows <<= THISBACK1(Actions, 3); clear_grid <<= THISBACK1(Actions, 4); reset_grid <<= THISBACK1(Actions, 5); exit <<= THISBACK1(Actions, 666); clear <<= THISBACK1(Actions, 400); #ifndef flagDEBUG debug.Hide(); #else debug <<= THISBACK1(Actions, 401); #endif InitGrid(); colsopt.odd_color <<= grid.bg_odd; colsopt.even_color <<= grid.bg_even; colsopt.grid_color <<= grid.fg_grid; colsopt.focus_color <<= grid.bg_focus; colsopt.live_color <<= grid.bg_live; Sizeable().Zoomable()/*.BackPaint(false)*/; }
void Log(const String& s) { log.Add(s); log.GoEnd(); }
void InitGrid() { const int names_cnt = 6; const int colors_cnt = 4; const int numbers_cnt = 10; const char * s_names[] = { "Jack", "Martin", "Smith", "Billy", "Eve", "Pamela" }; const char * s_colors[] = { "Red", "Blue", "White", "Black" }; #ifdef LOG_PANEL dlog = &log0; #endif grid.Inserting(); grid.Appending(); grid.Moving(); grid.Removing(); grid.Navigating(); grid.Searching(); grid.Editing(); grid.WhenLeftDouble = THISBACK(Double); for(int i = 0; i < numsopt.total_cols; i++) { String name = Format("Column %d", i+1); int size = rand()%40 + 50; grid.AddColumn(name, size).Min(5); arr.AddColumn(name, size).HeaderTab().Min(5); } for(int i = 0; i < names_cnt; i++) names.Add(i, s_names[i]); for(int i = 0; i < colors_cnt; i++) colors.Add(i, s_colors[i]); for(int i = 0; i < numbers_cnt; i++) numbers.Add(i, Format("Number %d", i)); grid.GetColumn(1).Edit(names).SetConvert(names); grid.GetColumn(2).Edit(numbers).SetConvert(numbers); grid.GetColumn(3).Edit(colors).SetConvert(colors); grid.GetColumn(4).Edit(edit0); grid.GetColumn(5).Edit(edit1); numbers.DropFocus(); names.DropFocus(); colors.DropFocus(); // grid.Add(numsopt.total_rows); for(int i = 0; i < numsopt.total_rows; i++) for(int j = 0; j < numsopt.total_cols; j++) { switch(j) { case 0: grid.Set(i, j, Value(i + 1)); break; case 1: grid.Set(i, j, rand() % (names_cnt - 1)); break; case 2: grid.Set(i, j, rand() % (numbers_cnt - 1)); break; case 3: grid.Set(i, j, rand() % (colors_cnt - 1)); break; default: grid.Set(i, j, Value(rand()%500)); } arr.Set(i, j, Value(rand()%500)); } grid.ResizePaintMode(2); grid.ResizeColMode(0); grid.ResizeRowMode(0); grid.HorzGrid(lookopt.hgrid).VertGrid(lookopt.vgrid); grid.EvenColor(); grid.ColoringMode(2); grid.EditCell(); grid.MultiSelect(editopt.multiline); grid.SelectRow(editopt.select_row); grid.Sorting(editopt.sorting); grid.MovingCols(1).MovingRows(1); grid.SetToolBar(); grid.Dragging(); grid.SetCursor(0); //grid.AutoHideSb(); arr.HeaderTab(0).SetRatio(10); arr.HeaderObject().Absolute();//ReduceNext(); arr.MultiSelect(); arr.Inserting(); arr.SetLineCy(20); //arr.ColumnAt(1).Ctrls(MakeDropList); //arr.ColumnAt(2).Ctrls(MakeButton); arr.ColumnAt(1).Edit(e0); arr.ColumnAt(2).Edit(e1); grid1.AddColumn("c0"); grid1.AddColumn("c1"); grid2.AddColumn("c0"); grid2.AddColumn("c1"); }