本文整理汇总了C#中GuiWidget.NewGraphics2D方法的典型用法代码示例。如果您正苦于以下问题:C# GuiWidget.NewGraphics2D方法的具体用法?C# GuiWidget.NewGraphics2D怎么用?C# GuiWidget.NewGraphics2D使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类GuiWidget
的用法示例。
在下文中一共展示了GuiWidget.NewGraphics2D方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: BottomAndTopTextControl
public void BottomAndTopTextControl(double controlPadding, double buttonMargin)
{
GuiWidget containerControl = new GuiWidget(200, 300);
containerControl.DoubleBuffer = true;
containerControl.BackBuffer.NewGraphics2D().Clear(RGBA_Bytes.White);
TextWidget controlButton1 = new TextWidget("text1");
controlButton1.Margin = new BorderDouble(buttonMargin);
controlButton1.OriginRelativeParent = new VectorMath.Vector2(-controlButton1.LocalBounds.Left, -controlButton1.LocalBounds.Bottom + controlPadding + buttonMargin);
controlButton1.LocalBounds = new RectangleDouble(controlButton1.LocalBounds.Left, controlButton1.LocalBounds.Bottom, controlButton1.LocalBounds.Right, controlButton1.LocalBounds.Bottom + containerControl.Height - (controlPadding + buttonMargin) * 2);
containerControl.AddChild(controlButton1);
containerControl.OnDraw(containerControl.NewGraphics2D());
GuiWidget containerTest = new GuiWidget(200, 200);
containerTest.Padding = new BorderDouble(controlPadding);
containerTest.DoubleBuffer = true;
containerTest.BackBuffer.NewGraphics2D().Clear(RGBA_Bytes.White);
TextWidget testButton1 = new TextWidget("text1");
testButton1.Margin = new BorderDouble(buttonMargin);
testButton1.VAnchor = VAnchor.ParentBottom | VAnchor.ParentTop;
containerTest.AddChild(testButton1);
containerTest.OnDraw(containerTest.NewGraphics2D());
OutputImages(containerControl, containerTest);
// now change it's size
containerTest.LocalBounds = containerControl.LocalBounds;
containerTest.BackBuffer.NewGraphics2D().Clear(RGBA_Bytes.White);
containerTest.OnDraw(containerTest.NewGraphics2D());
OutputImages(containerControl, containerTest);
Assert.IsTrue(containerControl.BackBuffer != null, "When we set a guiWidget to DoubleBuffer it needs to create one.");
Assert.IsTrue(containerControl.BackBuffer == containerTest.BackBuffer, "The Anchored widget should be in the correct place.");
}
示例2: LimitScrolToContetsTests
public void LimitScrolToContetsTests()
{
GuiWidget containerControl = new GuiWidget(200, 200);
containerControl.DoubleBuffer = true;
containerControl.BackBuffer.NewGraphics2D().Clear(RGBA_Bytes.White);
containerControl.OnDraw(containerControl.NewGraphics2D());
ScrollableWidget containerTest = new ScrollableWidget(200, 200);
containerTest.DoubleBuffer = true;
containerTest.BackBuffer.NewGraphics2D().Clear(RGBA_Bytes.White);
containerTest.OnDraw(containerTest.NewGraphics2D());
OutputImages(containerControl, containerTest);
Assert.IsTrue(containerControl.BackBuffer != null, "When we set a guiWidget to DoubleBuffer it needs to create one.");
Assert.IsTrue(containerControl.BackBuffer == containerTest.BackBuffer, "The Anchored widget should be in the correct place.");
}
示例3: NestedLayoutTopToBottomWithResizeTest
public void NestedLayoutTopToBottomWithResizeTest(BorderDouble controlPadding, BorderDouble buttonMargin)
{
GuiWidget containerTest = new GuiWidget(300, 200);
containerTest.Padding = controlPadding;
containerTest.DoubleBuffer = true;
containerTest.BackBuffer.NewGraphics2D().Clear(RGBA_Bytes.White);
FlowLayoutWidget allButtons = new FlowLayoutWidget(FlowDirection.TopToBottom);
{
FlowLayoutWidget topButtonBar = new FlowLayoutWidget();
{
Button button1 = new Button("button1");
button1.Margin = buttonMargin;
topButtonBar.AddChild(button1);
}
allButtons.AddChild(topButtonBar);
FlowLayoutWidget bottomButtonBar = new FlowLayoutWidget();
{
Button button2 = new Button("wide button2");
button2.Margin = buttonMargin;
bottomButtonBar.AddChild(button2);
}
allButtons.AddChild(bottomButtonBar);
}
containerTest.AddChild(allButtons);
containerTest.OnDraw(containerTest.NewGraphics2D());
ImageBuffer controlImage = new ImageBuffer(containerTest.BackBuffer, new BlenderBGRA());
OutputImage(controlImage, "image-control.tga");
RectangleDouble oldBounds = containerTest.LocalBounds;
RectangleDouble newBounds = oldBounds;
newBounds.Right += 10;
containerTest.LocalBounds = newBounds;
containerTest.BackBuffer.NewGraphics2D().Clear(RGBA_Bytes.White);
containerTest.OnDraw(containerTest.NewGraphics2D());
OutputImage(containerTest, "image-test.tga");
containerTest.LocalBounds = oldBounds;
containerTest.BackBuffer.NewGraphics2D().Clear(RGBA_Bytes.White);
containerTest.OnDraw(containerTest.NewGraphics2D());
OutputImage(containerTest, "image-test.tga");
Assert.IsTrue(containerTest.BackBuffer != null, "When we set a guiWidget to DoubleBuffer it needs to create one.");
Assert.IsTrue(containerTest.BackBuffer == controlImage, "The control should contain the same image after being scaled away and back to the same size.");
}
示例4: EnsureNestedAreMinimumSize
internal void EnsureNestedAreMinimumSize()
{
{
GuiWidget containerTest = new GuiWidget(640, 480);
containerTest.DoubleBuffer = true;
FlowLayoutWidget leftToRightLayout = new FlowLayoutWidget(FlowDirection.LeftToRight);
containerTest.AddChild(leftToRightLayout);
GuiWidget item1 = new GuiWidget(10, 11);
GuiWidget item2 = new GuiWidget(20, 22);
GuiWidget item3 = new GuiWidget(30, 33);
item3.HAnchor = HAnchor.ParentLeftRight;
leftToRightLayout.AddChild(item1);
leftToRightLayout.AddChild(item2);
leftToRightLayout.AddChild(item3);
containerTest.OnDraw(containerTest.NewGraphics2D());
Assert.IsTrue(leftToRightLayout.Width == 60);
Assert.IsTrue(leftToRightLayout.MinimumSize.x == 0);
Assert.IsTrue(leftToRightLayout.Height == 33);
Assert.IsTrue(leftToRightLayout.MinimumSize.y == 0);
Assert.IsTrue(item3.Width == 30);
containerTest.Width = 650;
containerTest.OnDraw(containerTest.NewGraphics2D());
Assert.IsTrue(leftToRightLayout.Width == 60);
Assert.IsTrue(leftToRightLayout.MinimumSize.x == 0);
Assert.IsTrue(leftToRightLayout.Height == 33);
Assert.IsTrue(leftToRightLayout.MinimumSize.y == 0);
Assert.IsTrue(item3.Width == 30);
}
}
示例5: NestedLayoutTopToBottomTest
public void NestedLayoutTopToBottomTest(BorderDouble controlPadding, BorderDouble buttonMargin)
{
GuiWidget containerControl = new GuiWidget(300, 200);
containerControl.DoubleBuffer = true;
containerControl.BackBuffer.NewGraphics2D().Clear(RGBA_Bytes.White);
{
Button topButtonC = new Button("top button");
Button bottomButtonC = new Button("bottom wide button");
topButtonC.LocalBounds = new RectangleDouble(0, 0, bottomButtonC.LocalBounds.Width, 40);
topButtonC.OriginRelativeParent = new Vector2(bottomButtonC.OriginRelativeParent.x + buttonMargin.Left, containerControl.Height - controlPadding.Top - topButtonC.Height - buttonMargin.Top);
containerControl.AddChild(topButtonC);
bottomButtonC.OriginRelativeParent = new Vector2(bottomButtonC.OriginRelativeParent.x + buttonMargin.Left, topButtonC.OriginRelativeParent.y - buttonMargin.Height - bottomButtonC.Height);
containerControl.AddChild(bottomButtonC);
}
containerControl.OnDraw(containerControl.NewGraphics2D());
GuiWidget containerTest = new GuiWidget(300, 200);
containerTest.DoubleBuffer = true;
containerTest.BackBuffer.NewGraphics2D().Clear(RGBA_Bytes.White);
FlowLayoutWidget allButtons = new FlowLayoutWidget(FlowDirection.TopToBottom);
allButtons.AnchorAll();
Button topButtonT;
Button bottomButtonT;
FlowLayoutWidget topButtonBar;
FlowLayoutWidget bottomButtonBar;
allButtons.Padding = controlPadding;
{
bottomButtonT = new Button("bottom wide button");
topButtonBar = new FlowLayoutWidget();
{
topButtonT = new Button("top button");
topButtonT.LocalBounds = new RectangleDouble(0, 0, bottomButtonT.LocalBounds.Width, 40);
topButtonT.Margin = buttonMargin;
topButtonBar.AddChild(topButtonT);
}
allButtons.AddChild(topButtonBar);
bottomButtonBar = new FlowLayoutWidget();
{
bottomButtonT.Margin = buttonMargin;
bottomButtonBar.AddChild(bottomButtonT);
}
allButtons.AddChild(bottomButtonBar);
}
containerTest.AddChild(allButtons);
containerTest.OnDraw(containerTest.NewGraphics2D());
OutputImages(containerControl, containerTest);
Assert.IsTrue(containerTest.BackBuffer != null, "When we set a guiWidget to DoubleBuffer it needs to create one.");
Assert.IsTrue(containerTest.BackBuffer.Equals(containerControl.BackBuffer, 1), "The test should contain the same image as the control.");
}
示例6: BottomAndTopSetAnchorBeforAddChild
public void BottomAndTopSetAnchorBeforAddChild(double controlPadding, double buttonMargin)
{
GuiWidget containerControl = new GuiWidget(200, 300);
containerControl.Padding = new BorderDouble(controlPadding);
containerControl.DoubleBuffer = true;
Button controlButton1 = new Button("button1");
controlButton1.Margin = new BorderDouble(buttonMargin);
controlButton1.OriginRelativeParent = new VectorMath.Vector2(0, controlPadding + buttonMargin);
controlButton1.LocalBounds = new RectangleDouble(0, 0, controlButton1.LocalBounds.Width, containerControl.LocalBounds.Height - (controlPadding + buttonMargin) * 2);
containerControl.AddChild(controlButton1);
containerControl.OnDraw(containerControl.NewGraphics2D());
GuiWidget containerTest = new GuiWidget(200, 300);
containerTest.Padding = new BorderDouble(controlPadding);
containerTest.DoubleBuffer = true;
Button testButton1 = new Button("button1");
testButton1.Margin = new BorderDouble(buttonMargin);
testButton1.VAnchor = VAnchor.ParentBottom | VAnchor.ParentTop;
containerTest.AddChild(testButton1);
containerTest.OnDraw(containerTest.NewGraphics2D());
OutputImages(containerControl, containerTest);
Assert.IsTrue(containerControl.BackBuffer != null, "When we set a guiWidget to DoubleBuffer it needs to create one.");
Assert.IsTrue(containerControl.BackBuffer == containerTest.BackBuffer, "The Anchored widget should be in the correct place.");
}
示例7: EnsureFlowLayoutMinSizeFitsChildrenMinSize
public void EnsureFlowLayoutMinSizeFitsChildrenMinSize()
{
// This test is to prove that a flow layout widget always has it's min size set
// to the enclosing bounds size of all it's childrens min size.
// The code to be tested will expand the flow layouts min size as it's children's min size change.
GuiWidget containerTest = new GuiWidget(640, 480);
FlowLayoutWidget topToBottomFlowLayoutAll = new FlowLayoutWidget(FlowDirection.TopToBottom);
containerTest.AddChild(topToBottomFlowLayoutAll);
containerTest.DoubleBuffer = true;
FlowLayoutWidget topLeftToRight = new FlowLayoutWidget(FlowDirection.LeftToRight);
topToBottomFlowLayoutAll.AddChild(topLeftToRight);
GuiWidget bottomLeftToRight = new FlowLayoutWidget(FlowDirection.LeftToRight);
topToBottomFlowLayoutAll.AddChild(bottomLeftToRight);
topLeftToRight.AddChild(new Button("top button"));
FlowLayoutWidget bottomContentTopToBottom = new FlowLayoutWidget(FlowDirection.TopToBottom);
bottomLeftToRight.AddChild(bottomContentTopToBottom);
Button button1 = new Button("button1");
Assert.IsTrue(button1.MinimumSize.x > 0, "Buttons should set their min size on construction.");
bottomContentTopToBottom.AddChild(button1);
//Assert.IsTrue(bottomContentTopToBottom.MinimumSize.x >= button1.MinimumSize.x, "There should be space for the button.");
bottomContentTopToBottom.AddChild(new Button("button2"));
Button wideButton = new Button("button3 Wide");
bottomContentTopToBottom.AddChild(wideButton);
//Assert.IsTrue(bottomContentTopToBottom.MinimumSize.x >= wideButton.MinimumSize.x, "These should be space for the button.");
containerTest.BackgroundColor = RGBA_Bytes.White;
containerTest.OnDrawBackground(containerTest.NewGraphics2D());
containerTest.OnDraw(containerTest.NewGraphics2D());
OutputImage(containerTest.BackBuffer, "zFlowLaoutsGetMinSize.tga");
Assert.IsTrue(bottomLeftToRight.Width > 0, "This needs to have been expanded when the bottomContentTopToBottom grew.");
Assert.IsTrue(bottomLeftToRight.MinimumSize.x >= bottomContentTopToBottom.MinimumSize.x, "These should be space for the next flowLayout.");
Assert.IsTrue(containerTest.BackBuffer != null, "When we set a guiWidget to DoubleBuffer it needs to create one.");
}
示例8: NestedFlowWidgetsTopToBottomTest
public void NestedFlowWidgetsTopToBottomTest(BorderDouble controlPadding, BorderDouble buttonMargin)
{
GuiWidget containerControl = new GuiWidget(300, 500);
containerControl.Padding = controlPadding;
containerControl.DoubleBuffer = true;
{
Button buttonTop = new Button("buttonTop");
Button buttonBottom = new Button("buttonBottom");
buttonTop.OriginRelativeParent = new VectorMath.Vector2(buttonTop.OriginRelativeParent.x, containerControl.LocalBounds.Top - buttonMargin.Top - controlPadding.Top - buttonTop.Height);
buttonBottom.OriginRelativeParent = new VectorMath.Vector2(buttonBottom.OriginRelativeParent.x, buttonTop.BoundsRelativeToParent.Bottom - buttonBottom.Height - buttonMargin.Height);
containerControl.AddChild(buttonTop);
containerControl.AddChild(buttonBottom);
containerControl.OnDraw(containerControl.NewGraphics2D());
}
GuiWidget containerTest = new GuiWidget(300, 500);
containerTest.DoubleBuffer = true;
{
FlowLayoutWidget topToBottomFlowLayoutAll = new FlowLayoutWidget(FlowDirection.TopToBottom);
topToBottomFlowLayoutAll.AnchorAll();
topToBottomFlowLayoutAll.Padding = controlPadding;
{
FlowLayoutWidget topToBottomFlowLayoutTop = new FlowLayoutWidget(FlowDirection.TopToBottom);
Button buttonTop = new Button("buttonTop");
buttonTop.Margin = buttonMargin;
topToBottomFlowLayoutTop.AddChild(buttonTop);
topToBottomFlowLayoutTop.SetBoundsToEncloseChildren();
topToBottomFlowLayoutAll.AddChild(topToBottomFlowLayoutTop);
}
{
FlowLayoutWidget topToBottomFlowLayoutBottom = new FlowLayoutWidget(FlowDirection.TopToBottom);
Button buttonBottom = new Button("buttonBottom");
buttonBottom.Margin = buttonMargin;
topToBottomFlowLayoutBottom.AddChild(buttonBottom);
topToBottomFlowLayoutBottom.SetBoundsToEncloseChildren();
topToBottomFlowLayoutAll.AddChild(topToBottomFlowLayoutBottom);
}
containerTest.AddChild(topToBottomFlowLayoutAll);
}
containerTest.OnDraw(containerTest.NewGraphics2D());
OutputImages(containerControl, containerTest);
Assert.IsTrue(containerControl.BackBuffer != null, "When we set a guiWidget to DoubleBuffer it needs to create one.");
Assert.IsTrue(containerControl.BackBuffer == containerTest.BackBuffer, "The Anchored widget should be in the correct place.");
}
示例9: NestedFlowWidgetsLeftToRightTest
public void NestedFlowWidgetsLeftToRightTest(BorderDouble controlPadding, BorderDouble buttonMargin)
{
GuiWidget containerControl = new GuiWidget(500, 300);
containerControl.Padding = controlPadding;
containerControl.DoubleBuffer = true;
{
Button buttonRight = new Button("buttonRight");
Button buttonLeft = new Button("buttonLeft");
buttonLeft.OriginRelativeParent = new VectorMath.Vector2(controlPadding.Left + buttonMargin.Left, buttonLeft.OriginRelativeParent.y);
buttonRight.OriginRelativeParent = new VectorMath.Vector2(buttonLeft.BoundsRelativeToParent.Right + buttonMargin.Width, buttonRight.OriginRelativeParent.y);
containerControl.AddChild(buttonRight);
containerControl.AddChild(buttonLeft);
containerControl.OnDraw(containerControl.NewGraphics2D());
}
GuiWidget containerTest = new GuiWidget(500, 300);
containerTest.DoubleBuffer = true;
{
FlowLayoutWidget leftToRightFlowLayoutAll = new FlowLayoutWidget(FlowDirection.LeftToRight);
leftToRightFlowLayoutAll.AnchorAll();
leftToRightFlowLayoutAll.Padding = controlPadding;
{
FlowLayoutWidget leftToRightFlowLayoutLeft = new FlowLayoutWidget(FlowDirection.LeftToRight);
Button buttonTop = new Button("buttonLeft");
buttonTop.Margin = buttonMargin;
leftToRightFlowLayoutLeft.AddChild(buttonTop);
leftToRightFlowLayoutLeft.SetBoundsToEncloseChildren();
leftToRightFlowLayoutAll.AddChild(leftToRightFlowLayoutLeft);
}
{
FlowLayoutWidget leftToRightFlowLayoutRight = new FlowLayoutWidget(FlowDirection.LeftToRight);
Button buttonBottom = new Button("buttonRight");
buttonBottom.Margin = buttonMargin;
leftToRightFlowLayoutRight.AddChild(buttonBottom);
leftToRightFlowLayoutRight.SetBoundsToEncloseChildren();
leftToRightFlowLayoutAll.AddChild(leftToRightFlowLayoutRight);
}
containerTest.AddChild(leftToRightFlowLayoutAll);
}
containerTest.OnDraw(containerTest.NewGraphics2D());
OutputImages(containerControl, containerTest);
Assert.IsTrue(containerControl.BackBuffer != null, "When we set a guiWidget to DoubleBuffer it needs to create one.");
Assert.IsTrue(containerControl.BackBuffer == containerTest.BackBuffer, "The Anchored widget should be in the correct place.");
}
示例10: NestedFitToChildrenParentWidth
public void NestedFitToChildrenParentWidth()
{
// child of flow layout is ParentLeftRight
{
// _________________________________________
// | containerControl |
// | _____________________________________ |
// | | Max_FitToChildren_ParentWidth | |
// | | ________________________ ________ | |
// | | | | | | | |
// | | | ParentLeftRight | | 10x10 | | |
// | | |______________________| |_______| | |
// | |____________________________________| |
// |________________________________________|
//
GuiWidget containerControl = new GuiWidget(300, 200); // containerControl = 0, 0, 300, 200
containerControl.DoubleBuffer = true;
FlowLayoutWidget flowWidget = new FlowLayoutWidget()
{
HAnchor = HAnchor.Max_FitToChildren_ParentWidth,
};
containerControl.AddChild(flowWidget); // flowWidget = 0, 0, 300, 0
GuiWidget fitToChildrenOrParent = new GuiWidget(20, 20)
{
HAnchor = HAnchor.ParentLeftRight,
};
flowWidget.AddChild(fitToChildrenOrParent); // flowWidget = 0, 0, 300, 20 fitToChildrenOrParent = 0, 0, 300, 20
GuiWidget fixed10x10 = new GuiWidget(10, 10);
flowWidget.AddChild(fixed10x10); // flowWidget = 0, 0, 300, 20 fitToChildrenOrParent = 0, 0, 290, 20
containerControl.OnDraw(containerControl.NewGraphics2D());
//OutputImage(containerControl, "countainer");
Assert.IsTrue(flowWidget.Width == containerControl.Width);
Assert.IsTrue(fitToChildrenOrParent.Width + fixed10x10.Width == containerControl.Width);
containerControl.Width = 350;
Assert.IsTrue(flowWidget.Width == containerControl.Width);
Assert.IsTrue(fitToChildrenOrParent.Width + fixed10x10.Width == containerControl.Width);
containerControl.Width = 310;
Assert.IsTrue(flowWidget.Width == containerControl.Width);
Assert.IsTrue(fitToChildrenOrParent.Width + fixed10x10.Width == containerControl.Width);
}
// child of flow layout is Max_FitToChildren_ParentWidth
{
// ___________________________________________________
// | containerControl |
// | _______________________________________________ |
// | | Max_FitToChildren_ParentWidth | |
// | | _________________________________ _______ | |
// | | | | | | | |
// | | | Max_FitToChildren_ParentWidth | | 10x10 | | |
// | | |________________________________| |_______| | |
// | |______________________________________________| |
// |__________________________________________________|
//
GuiWidget containerControl = new GuiWidget(300, 200); // containerControl = 0, 0, 300, 200
containerControl.DoubleBuffer = true;
FlowLayoutWidget flowWidget = new FlowLayoutWidget()
{
HAnchor = HAnchor.Max_FitToChildren_ParentWidth,
};
containerControl.AddChild(flowWidget);
GuiWidget fitToChildrenOrParent = new GuiWidget(20, 20)
{
Name = "fitToChildrenOrParent",
HAnchor = HAnchor.Max_FitToChildren_ParentWidth,
};
flowWidget.AddChild(fitToChildrenOrParent); // flowWidget = 0, 0, 300, 20 fitToChildrenOrParent = 0, 0, 300, 20
GuiWidget fixed10x10 = new GuiWidget(10, 10);
flowWidget.AddChild(fixed10x10); // flowWidget = 0, 0, 300, 20 fitToChildrenOrParent = 0, 0, 290, 20
containerControl.OnDraw(containerControl.NewGraphics2D());
//OutputImage(containerControl, "countainer");
Assert.IsTrue(flowWidget.Width == containerControl.Width);
Assert.IsTrue(fitToChildrenOrParent.Width + fixed10x10.Width == containerControl.Width);
containerControl.Width = 350;
Assert.IsTrue(flowWidget.Width == containerControl.Width);
Assert.IsTrue(fitToChildrenOrParent.Width + fixed10x10.Width == containerControl.Width);
containerControl.Width = 310;
Assert.IsTrue(flowWidget.Width == containerControl.Width);
Assert.IsTrue(fitToChildrenOrParent.Width + fixed10x10.Width == containerControl.Width);
}
}
示例11: TopToBottomContainerAppliesExpectedMargin
public void TopToBottomContainerAppliesExpectedMargin()
{
int marginSize = 40;
int dimensions = 300;
GuiWidget outerContainer = new GuiWidget(dimensions, dimensions);
FlowLayoutWidget topToBottomContainer = new FlowLayoutWidget(FlowDirection.TopToBottom)
{
HAnchor = HAnchor.ParentLeftRight,
VAnchor = UI.VAnchor.ParentBottomTop,
};
outerContainer.AddChild(topToBottomContainer);
GuiWidget childWidget = new GuiWidget()
{
HAnchor = HAnchor.ParentLeftRight,
VAnchor = VAnchor.ParentBottomTop,
Margin = new BorderDouble(marginSize),
BackgroundColor = RGBA_Bytes.Red,
};
topToBottomContainer.AddChild(childWidget);
topToBottomContainer.AnchorAll();
topToBottomContainer.PerformLayout();
outerContainer.DoubleBuffer = true;
outerContainer.BackBuffer.NewGraphics2D().Clear(RGBA_Bytes.White);
outerContainer.OnDraw(outerContainer.NewGraphics2D());
// For troubleshooting or visual validation
//saveImagesForDebug = true;
//OutputImages(outerContainer, outerContainer);
var bounds = childWidget.BoundsRelativeToParent;
Assert.IsTrue(bounds.Left == marginSize, "Left margin is incorrect");
Assert.IsTrue(bounds.Right == dimensions - marginSize, "Right margin is incorrect");
Assert.IsTrue(bounds.Top == dimensions - marginSize, "Top margin is incorrect");
Assert.IsTrue(bounds.Bottom == marginSize, "Bottom margin is incorrect");
}
示例12: CenterBothOffsetBoundsTest
public void CenterBothOffsetBoundsTest(BorderDouble controlPadding, BorderDouble buttonMargin)
{
GuiWidget containerControl = new GuiWidget(200, 300);
containerControl.Padding = controlPadding;
containerControl.DoubleBuffer = true;
GuiWidget controlRectangle = new GuiWidget(100, 100);
controlRectangle.BackgroundColor = RGBA_Bytes.Red;
controlRectangle.Margin = buttonMargin;
double controlCenterX = controlPadding.Left + (containerControl.Width - controlPadding.Left - controlPadding.Right) / 2;
double buttonX = controlCenterX - (controlRectangle.Width + controlRectangle.Margin.Left + controlRectangle.Margin.Right) / 2 + controlRectangle.Margin.Left;
double controlCenterY = controlPadding.Bottom + (containerControl.Height - controlPadding.Bottom - controlPadding.Top) / 2 + controlRectangle.Margin.Bottom;
double buttonY = controlCenterY - (controlRectangle.Height + controlRectangle.Margin.Bottom + controlRectangle.Margin.Top) / 2;
controlRectangle.OriginRelativeParent = new VectorMath.Vector2(buttonX, buttonY);
containerControl.AddChild(controlRectangle);
containerControl.OnDraw(containerControl.NewGraphics2D());
GuiWidget containerTest = new GuiWidget(200, 300);
containerTest.Padding = controlPadding;
containerTest.DoubleBuffer = true;
GuiWidget testRectangle = new GuiWidget(100, 100);
RectangleDouble offsetBounds = testRectangle.LocalBounds;
offsetBounds.Offset(-10, -10);
testRectangle.LocalBounds = offsetBounds;
testRectangle.BackgroundColor = RGBA_Bytes.Red;
testRectangle.Margin = buttonMargin;
testRectangle.VAnchor = VAnchor.ParentCenter;
testRectangle.HAnchor = HAnchor.ParentCenter;
containerTest.AddChild(testRectangle);
containerTest.OnDraw(containerTest.NewGraphics2D());
OutputImages(containerControl, containerTest);
Assert.IsTrue(containerControl.BackBuffer != null, "When we set a guiWidget to DoubleBuffer it needs to create one.");
Assert.IsTrue(containerControl.BackBuffer == containerTest.BackBuffer, "The Anchored widget should be in the correct place.");
}
示例13: HCenterHRightAndVCenterVTopTest
public void HCenterHRightAndVCenterVTopTest(BorderDouble controlPadding, BorderDouble buttonMargin)
{
GuiWidget containerControl = new GuiWidget(200, 300);
containerControl.Padding = controlPadding;
containerControl.DoubleBuffer = true;
Button controlButton1 = new Button("button1");
controlButton1.OriginRelativeParent = new VectorMath.Vector2(
controlPadding.Left + buttonMargin.Left + (containerControl.Width - (controlPadding.Left + controlPadding.Right)) / 2,
controlPadding.Bottom + buttonMargin.Bottom + (containerControl.Height - (controlPadding.Bottom + controlPadding.Top)) / 2);
controlButton1.LocalBounds = new RectangleDouble(
controlButton1.LocalBounds.Left,
controlButton1.LocalBounds.Bottom,
controlButton1.LocalBounds.Left + containerControl.Width / 2 - (controlPadding.Left + controlPadding.Right) / 2 - (buttonMargin.Left + buttonMargin.Right),
controlButton1.LocalBounds.Bottom + containerControl.Height / 2 - (controlPadding.Bottom + controlPadding.Top) / 2 - (buttonMargin.Bottom + buttonMargin.Top));
containerControl.AddChild(controlButton1);
containerControl.OnDraw(containerControl.NewGraphics2D());
GuiWidget containerTest = new GuiWidget(200, 300);
containerTest.Padding = controlPadding;
containerTest.DoubleBuffer = true;
Button testButton1 = new Button("button1");
testButton1.Margin = buttonMargin;
testButton1.VAnchor = VAnchor.ParentCenter | VAnchor.ParentTop;
testButton1.HAnchor = HAnchor.ParentCenter | HAnchor.ParentRight;
containerTest.AddChild(testButton1);
containerTest.OnDraw(containerTest.NewGraphics2D());
OutputImages(containerControl, containerTest);
Assert.IsTrue(containerControl.BackBuffer != null, "When we set a guiWidget to DoubleBuffer it needs to create one.");
Assert.IsTrue(containerControl.BackBuffer == containerTest.BackBuffer, "The Anchored widget should be in the correct place.");
}
示例14: CenterBothTest
public void CenterBothTest(BorderDouble controlPadding, BorderDouble buttonMargin)
{
GuiWidget containerControl = new GuiWidget(200, 300);
containerControl.Padding = controlPadding;
containerControl.DoubleBuffer = true;
Button controlButton1 = new Button("button1");
controlButton1.Margin = buttonMargin;
double controlCenterX = controlPadding.Left + (containerControl.Width - controlPadding.Left - controlPadding.Right) / 2;
double buttonX = controlCenterX - (controlButton1.Width + controlButton1.Margin.Left + controlButton1.Margin.Right) / 2 + controlButton1.Margin.Left;
double controlCenterY = controlPadding.Bottom + (containerControl.Height - controlPadding.Bottom - controlPadding.Top) / 2 + controlButton1.Margin.Bottom;
double buttonY = controlCenterY - (controlButton1.Height + controlButton1.Margin.Bottom + controlButton1.Margin.Top) / 2;
controlButton1.OriginRelativeParent = new VectorMath.Vector2(buttonX, buttonY);
containerControl.AddChild(controlButton1);
containerControl.OnDraw(containerControl.NewGraphics2D());
GuiWidget containerTest = new GuiWidget(200, 300);
containerTest.Padding = controlPadding;
containerTest.DoubleBuffer = true;
Button testButton1 = new Button("button1");
testButton1.Margin = buttonMargin;
testButton1.VAnchor = VAnchor.ParentCenter;
testButton1.HAnchor = HAnchor.ParentCenter;
containerTest.AddChild(testButton1);
containerTest.OnDraw(containerTest.NewGraphics2D());
OutputImages(containerControl, containerTest);
Assert.IsTrue(containerControl.BackBuffer != null, "When we set a guiWidget to DoubleBuffer it needs to create one.");
OutputImages(containerControl, containerTest);
Assert.IsTrue(containerControl.BackBuffer.Equals(containerTest.BackBuffer, 1), "The Anchored widget should be in the correct place.");
}
示例15: AnchorAllTests
internal void AnchorAllTests()
{
{
GuiWidget containerNoAnchor = new GuiWidget(300, 200);
containerNoAnchor.DoubleBuffer = true;
Button positionedButton = new Button("button");
positionedButton.LocalBounds = containerNoAnchor.LocalBounds;
containerNoAnchor.AddChild(positionedButton);
containerNoAnchor.OnDraw(containerNoAnchor.NewGraphics2D());
GuiWidget containerAnchor = new GuiWidget(300, 200);
containerAnchor.DoubleBuffer = true;
Button anchoredButton = new Button("button");
anchoredButton.Margin = new BorderDouble(); // make sure we have no margin
containerAnchor.AddChild(anchoredButton);
anchoredButton.HAnchor = HAnchor.ParentLeft | HAnchor.ParentRight;
anchoredButton.VAnchor = VAnchor.ParentBottom | VAnchor.ParentTop;
containerAnchor.OnDraw(containerAnchor.NewGraphics2D());
OutputImages(containerNoAnchor, containerAnchor);
Assert.IsTrue(containerNoAnchor.BackBuffer != null, "When we set a guiWidget to DoubleBuffer it needs to create one.");
Assert.IsTrue(containerNoAnchor.BackBuffer == containerAnchor.BackBuffer, "The Anchored widget should be in the correct place.");
}
}