Exemple #1
0
ListBox* CreateListBoxFromXML(ticpp::Element* elem, Dialog* /*dlg*/){
	int tmpInt;
	ListBox* box = new ListBox();

	box->SetName(elem->GetAttribute("NAME").c_str());
	if(elem->GetAttribute("ID", &tmpInt))			box->SetID(tmpInt);
	if(elem->GetAttribute("X", &tmpInt))			box->SetPositionX(tmpInt);
	if(elem->GetAttribute("Y", &tmpInt))			box->SetPositionY(tmpInt);
	if(elem->GetAttribute("WIDTH", &tmpInt))		box->SetSizeX(tmpInt);
	if(elem->GetAttribute("HEIGHT", &tmpInt))		box->SetSizeY(tmpInt);
	if(elem->GetAttribute("CHARWIDTH", &tmpInt))	box->SetCharWidth(tmpInt);
	if(elem->GetAttribute("CHARHEIGHT", &tmpInt))	box->SetCharHeight(tmpInt);
	if(elem->GetAttribute("FONT", &tmpInt))			box->SetFont(tmpInt);
	if(elem->GetAttribute("EXTENT", &tmpInt))		box->SetExtent(tmpInt);
	if(elem->GetAttribute("LINESPACE", &tmpInt))	box->SetLineSpace(tmpInt);
	if(elem->GetAttribute("SELECTABLE", &tmpInt))	box->SetSelectable(tmpInt);
	if(elem->GetAttribute("MAXSIZE", &tmpInt))		box->SetMaxSize(tmpInt);
	if(elem->GetAttribute("OWNERDRAW", &tmpInt))	box->SetOwnerDraw(tmpInt);

	return box;
}
void
FormWindow::CreateDefList(CtrlDef& def)
{
	ListBox* ctrl = CreateListBox(def.GetText(),
	def.GetX(),
	def.GetY(),
	def.GetW(),
	def.GetH(),
	def.GetID(),
	def.GetParentID());

	ctrl->SetAltText(def.GetAltText());
	ctrl->SetEnabled(def.IsEnabled());
	ctrl->SetBackColor(def.GetBackColor());
	ctrl->SetForeColor(def.GetForeColor());
	ctrl->SetStyle(def.GetStyle());
	ctrl->SetTextAlign(def.GetTextAlign());
	ctrl->SetTransparent(def.GetTransparent());
	ctrl->SetHidePartial(def.GetHidePartial());

	ctrl->SetLineHeight(def.GetLineHeight());
	ctrl->SetShowHeadings(def.GetShowHeadings());
	ctrl->SetLeading(def.GetLeading());
	ctrl->SetMultiSelect(def.GetMultiSelect());
	ctrl->SetDragDrop(def.GetDragDrop());
	ctrl->SetScrollBarVisible(def.GetScrollBarVisible());
	ctrl->SetSmoothScroll(def.GetSmoothScroll());
	ctrl->SetItemStyle(def.GetItemStyle());
	ctrl->SetSelectedStyle(def.GetSelectedStyle());

	ctrl->SetMargins(def.GetMargins());
	ctrl->SetTextInsets(def.GetTextInsets());
	ctrl->SetCellInsets(def.GetCellInsets());
	ctrl->SetCells(def.GetCells());
	ctrl->SetFixedWidth(def.GetFixedWidth());
	ctrl->SetFixedHeight(def.GetFixedHeight());

	if (def.GetTexture().length() > 0) {
		Bitmap*     ctrl_tex = 0;
		DataLoader* loader   = DataLoader::GetLoader();
		loader->SetDataPath("Screens/");
		loader->LoadTexture(def.GetTexture(), ctrl_tex);
		loader->SetDataPath("");

		ctrl->SetTexture(ctrl_tex);
	}

	int ncols = def.NumColumns();
	for (int i = 0; i < ncols; i++) {
		ColumnDef* col = def.GetColumn(i);
		ctrl->AddColumn(col->title, col->width, col->align, col->sort);

		if (col->use_color)
		ctrl->SetColumnColor(i, col->color);
	}

	int nitems = def.NumItems();
	for (int i = 0; i < nitems; i++)
	ctrl->AddItem(def.GetItem(i));

	Font* f = FontMgr::Find(def.GetFont());
	if (f) ctrl->SetFont(f);
}