示例#1
0
	void DnD(PasteClip& d)
	{
		if(AcceptText(d)) {
			a.Add(GetString(d), GetString(d));
			a.SetFocus();
		}
	}
示例#2
0
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;
}
示例#3
0
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);
	}
}
示例#4
0
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;
}
示例#5
0
	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());
	}
示例#6
0
	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();
	}
示例#7
0
	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));
	}
示例#8
0
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());
	}
}
示例#9
0
	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();
		}
	}
示例#10
0
// 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);
}
示例#11
0
	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();
		}
	}
示例#12
0
	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();
	}
示例#13
0
	void Drag()
	{
		if(a.DoDragAndDrop(InternalClip(a, "array")) == DND_MOVE)
			a.RemoveSelection();
	}
示例#14
0
	void DragB()
	{
		if(b.DoDragAndDrop(InternalClip(b, "array"), b.GetDragSample()) == DND_MOVE)
			b.RemoveSelection();
	}
示例#15
0
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));
}
示例#16
0
	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)*/;
	}
示例#17
0
	void Log(const String& s)
	{
		log.Add(s);
		log.GoEnd();
	}
示例#18
0
	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");

	}