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(); } }
// 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 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"); }