CustomTemplateWindowStyle() :window(0) { Color borderColor(0, 122, 204); Color titleBackgroundColor(45, 45, 48); Color backgroundColor(30, 30, 30); Color titleColor(153, 153, 153); boundsComposition=new GuiTableComposition; boundsComposition->SetMinSizeLimitation(GuiGraphicsComposition::LimitToElementAndChildren); boundsComposition->SetRowsAndColumns(4, 7); boundsComposition->SetRowOption(0, GuiCellOption::AbsoluteOption(5)); boundsComposition->SetRowOption(1, GuiCellOption::MinSizeOption()); boundsComposition->SetRowOption(2, GuiCellOption::PercentageOption(1.0)); boundsComposition->SetRowOption(3, GuiCellOption::AbsoluteOption(5)); boundsComposition->SetColumnOption(0, GuiCellOption::AbsoluteOption(5)); boundsComposition->SetColumnOption(1, GuiCellOption::MinSizeOption()); boundsComposition->SetColumnOption(2, GuiCellOption::PercentageOption(1.0)); boundsComposition->SetColumnOption(3, GuiCellOption::MinSizeOption()); boundsComposition->SetColumnOption(4, GuiCellOption::MinSizeOption()); boundsComposition->SetColumnOption(5, GuiCellOption::MinSizeOption()); boundsComposition->SetColumnOption(6, GuiCellOption::AbsoluteOption(5)); { GuiSolidBackgroundElement* element=GuiSolidBackgroundElement::Create(); element->SetColor(borderColor); boundsComposition->SetOwnedElement(element); } AddBorderCell(0, 0, 1, 1, INativeWindowListener::BorderLeftTop); AddBorderCell(0, 6, 1, 1, INativeWindowListener::BorderRightTop); AddBorderCell(3, 0, 1, 1, INativeWindowListener::BorderLeftBottom); AddBorderCell(3, 6, 1, 1, INativeWindowListener::BorderRightBottom); AddBorderCell(1, 0, 2, 1, INativeWindowListener::BorderLeft); AddBorderCell(1, 6, 2, 1, INativeWindowListener::BorderRight); AddBorderCell(0, 1, 1, 5, INativeWindowListener::BorderTop); AddBorderCell(3, 1, 1, 5, INativeWindowListener::BorderBottom); { { iconComposition=AddTitleCell(1, INativeWindowListener::Icon, titleBackgroundColor); iconComposition->SetAlignmentToParent(Margin(3, 3, 3, 3)); Ptr<INativeImage> icon=GetCurrentController()->ImageService()->CreateImageFromFile(GetApplication()->GetExecutableFolder()+L"..\\Resources\\BigDoc.png"); iconElement=GuiImageFrameElement::Create(); iconElement->SetImage(icon, 0); iconElement->SetStretch(true); iconComposition->SetOwnedElement(iconElement); } { titleComposition=AddTitleCell(2, INativeWindowListener::Title, titleBackgroundColor); titleComposition->SetAlignmentToParent(Margin(0, 3, 3, 3)); titleElement=GuiSolidLabelElement::Create(); titleElement->SetColor(titleColor); titleElement->SetAlignments(Alignment::Left, Alignment::Center); titleComposition->SetOwnedElement(titleElement); } { minimumButton=AddTitleButton(3, titleBackgroundColor, titleColor); minimumButton->GetBoundsComposition()->SetAlignmentToParent(Margin(0, 3, 3, 3)); minimumButton->Clicked.AttachMethod(this, &CustomTemplateWindowStyle::minimumButton_Clicked); } { maximumButton=AddTitleButton(4, titleBackgroundColor, titleColor); maximumButton->GetBoundsComposition()->SetAlignmentToParent(Margin(0, 3, 3, 3)); maximumButton->Clicked.AttachMethod(this, &CustomTemplateWindowStyle::maximumButton_Clicked); } { closeButton=AddTitleButton(5, titleBackgroundColor, titleColor); closeButton->GetBoundsComposition()->SetAlignmentToParent(Margin(0, 3, 3, 3)); closeButton->Clicked.AttachMethod(this, &CustomTemplateWindowStyle::closeButton_Clicked); } } { GuiCellComposition* cell=new GuiCellComposition; boundsComposition->AddChild(cell); cell->SetSite(2, 1, 1, 5); cell->SetAssociatedHitTestResult(INativeWindowListener::Client); containerComposition=new GuiBoundsComposition; containerComposition->SetAlignmentToParent(Margin(0, 0, 0, 0)); cell->AddChild(containerComposition); GuiSolidBackgroundElement* element=GuiSolidBackgroundElement::Create(); element->SetColor(backgroundColor); containerComposition->SetOwnedElement(element); } }