protected override void OnStart(AppHost host) { var box1 = new LayoutFarm.CustomWidgets.Box(50, 50); box1.BackColor = Color.Red; box1.SetLocation(10, 10); //box1.dbugTag = 1; SetupActiveBoxProperties(box1); host.AddChild(box1); var box2 = new LayoutFarm.CustomWidgets.Box(30, 30); box2.SetLocation(50, 50); //box2.dbugTag = 2; SetupActiveBoxProperties(box2); host.AddChild(box2); _controllerBox1 = new UIControllerBox(40, 40); Color c = KnownColors.FromKnownColor(KnownColor.Yellow); _controllerBox1.BackColor = new Color(100, c.R, c.G, c.B); _controllerBox1.SetLocation(200, 200); //controllerBox1.dbugTag = 3; _controllerBox1.Visible = false; SetupControllerBoxProperties(_controllerBox1); host.AddChild(_controllerBox1); }
protected override void OnStart(AppHost host) { var box1 = new LayoutFarm.CustomWidgets.Box(50, 50); box1.BackColor = Color.Red; box1.SetLocation(10, 10); //box1.dbugTag = 1; SetupActiveBoxProperties(box1); host.AddChild(box1); var box2 = new LayoutFarm.CustomWidgets.Box(30, 30); box2.SetLocation(50, 50); //box2.dbugTag = 2; SetupActiveBoxProperties(box2); host.AddChild(box2); _rectBoxController.Init(); //------------ host.AddChild(_rectBoxController); //foreach (var ui in rectBoxController.GetControllerIter()) //{ // viewport.AddContent(ui); //} }
protected override void OnStart(AppHost host) { int x_pos = 0; //create behaviour for specific host, => LayoutFarm.CustomWidgets.Box var beh = new UIMouseBehaviour <LayoutFarm.CustomWidgets.Box, object>(); beh.MouseEnter += (s, e) => { LayoutFarm.CustomWidgets.Box box = s.Source; box.BackColor = _mouseEnterState; #if DEBUG System.Diagnostics.Debug.WriteLine("mouse_enter:" + box.dbugId); #endif }; beh.MouseLeave += (s, e) => { LayoutFarm.CustomWidgets.Box box = s.Source; box.BackColor = _normalState; #if DEBUG System.Diagnostics.Debug.WriteLine("mouse_leave:" + box.dbugId); #endif }; beh.MouseHover += (s, e) => { LayoutFarm.CustomWidgets.Box box = s.Source; box.BackColor = _hoverState; #if DEBUG System.Diagnostics.Debug.WriteLine("mouse_hover:" + box.dbugId); #endif }; beh.MousePress += (s, e) => { LayoutFarm.CustomWidgets.Box box = s.Source; Color back_color = box.BackColor; box.BackColor = new Color((byte)System.Math.Min(back_color.A + 10, 255), back_color.R, back_color.G, back_color.B); #if DEBUG System.Diagnostics.Debug.WriteLine("mouse_press:" + box.dbugId); #endif }; for (int i = 0; i < 10; ++i) { var sampleButton = new LayoutFarm.CustomWidgets.Box(30, 30); sampleButton.BackColor = _normalState; sampleButton.SetLocation(x_pos, 10); beh.AttachSharedBehaviorTo(sampleButton); host.AddChild(sampleButton); x_pos += 30 + 5; } }
void AddScrollView1(AppHost host, int x, int y) { var panel = new LayoutFarm.CustomWidgets.Box(200, 175); panel.NeedClipArea = true; panel.SetLocation(x + 30, y + 30); panel.BackColor = Color.LightGray; host.AddChild(panel); //------------------------- { //vertical scrollbar var vscbar = new LayoutFarm.CustomWidgets.ScrollBar(15, 200); vscbar.SetLocation(x + 10, y + 10); vscbar.MinValue = 0; vscbar.MaxValue = 170; //just init vscbar.SmallChange = 20; host.AddChild(vscbar); //add relation between viewpanel and scroll bar var scRelation = new LayoutFarm.CustomWidgets.ScrollingRelation(vscbar.SliderBox, panel); } //------------------------- { //horizontal scrollbar var hscbar = new LayoutFarm.CustomWidgets.ScrollBar(200, 15); hscbar.ScrollBarType = CustomWidgets.ScrollBarType.Horizontal; hscbar.SetLocation(x + 30, y + 10); hscbar.MinValue = 0; hscbar.MaxValue = 170;//just init hscbar.SmallChange = 20; host.AddChild(hscbar); //add relation between viewpanel and scroll bar var scRelation = new LayoutFarm.CustomWidgets.ScrollingRelation(hscbar.SliderBox, panel); } //add content to panel for (int i = 0; i < 10; ++i) { var box1 = new LayoutFarm.CustomWidgets.Box(400, 30); box1.HasSpecificWidth = true; box1.HasSpecificHeight = true; box1.BackColor = Color.OrangeRed; box1.SetLocation(i * 20, i * 40); panel.AddChild(box1); } //-------------------------- //panel.PerformContentLayout(); }
protected override void OnStart(AppHost host) { { var box1 = new LayoutFarm.CustomWidgets.Box(50, 50); box1.BackColor = Color.Red; box1.SetLocation(10, 10); //box1.dbugTag = 1; SetupActiveBoxProperties(box1); host.AddChild(box1); } //-------------------------------- { var box2 = new LayoutFarm.CustomWidgets.Box(30, 30); box2.SetLocation(50, 50); //box2.dbugTag = 2; SetupActiveBoxProperties(box2); host.AddChild(box2); } }
static void SetupActiveBoxProperties(LayoutFarm.CustomWidgets.Box box) { //1. mouse down box.MouseDown += (s, e) => { box.BackColor = KnownColors.FromKnownColor(KnownColor.DeepSkyBlue); e.MouseCursorStyle = MouseCursorStyle.Pointer; }; //2. mouse up box.MouseUp += (s, e) => { e.MouseCursorStyle = MouseCursorStyle.Default; box.BackColor = Color.LightGray; }; box.MouseDrag += (s, e) => { box.BackColor = KnownColors.FromKnownColor(KnownColor.GreenYellow); Point pos = box.Position; box.SetLocation(pos.X + e.XDiff, pos.Y + e.YDiff); e.MouseCursorStyle = MouseCursorStyle.Pointer; e.CancelBubbling = true; }; }
protected override void OnStart(AppHost host) { int x_pos = 0; GeneralEventListener evListener = new GeneralEventListener(); evListener.MouseEnter += (s, e) => { IUIEventListener ctx = e.CurrentContextElement; LayoutFarm.CustomWidgets.Box box = (LayoutFarm.CustomWidgets.Box)ctx; box.BackColor = Color.Red; #if DEBUG System.Diagnostics.Debug.WriteLine("mouse_enter:" + box.dbugId); #endif }; evListener.MouseLeave += (s, e) => { IUIEventListener ctx = e.CurrentContextElement; LayoutFarm.CustomWidgets.Box box = (LayoutFarm.CustomWidgets.Box)ctx; box.BackColor = Color.Blue; #if DEBUG System.Diagnostics.Debug.WriteLine("mouse_leave:" + box.dbugId); #endif }; for (int i = 0; i < 10; ++i) { var sampleButton = new LayoutFarm.CustomWidgets.Box(30, 30); sampleButton.BackColor = Color.Blue; sampleButton.SetLocation(x_pos, 10); sampleButton.AttachExternalEventListener(evListener); host.AddChild(sampleButton); x_pos += 30 + 5; } }
protected override void OnStart(AppHost host) { var box1 = new LayoutFarm.CustomWidgets.Box(50, 50); box1.BackColor = Color.Red; box1.SetLocation(10, 10); host.AddChild(box1); //-------------------------------- var box2 = new LayoutFarm.CustomWidgets.Box(30, 30); box2.SetLocation(50, 50); host.AddChild(box2); //1. mouse down box1.MouseDown += (s, e) => { box1.BackColor = KnownColors.FromKnownColor(KnownColor.DeepSkyBlue); box2.Visible = false; }; box1.MouseUp += (s, e) => { box1.BackColor = Color.Red; box2.Visible = true; }; }
void AddScrollView2(AppHost host, int x, int y) { var panel = new LayoutFarm.CustomWidgets.Box(800, 600); panel.HasSpecificWidthAndHeight = true; panel.NeedClipArea = true; panel.SetLocation(x + 10, y + 30); panel.BackColor = Color.LightGray; panel.ContentLayoutKind = CustomWidgets.BoxContentLayoutKind.VerticalStack; host.AddChild(panel); //------------------------- //load images... //check folder before load string[] fileNames = new string[0]; if (System.IO.Directory.Exists("../Data/imgs")) { fileNames = System.IO.Directory.GetFiles("../Data/imgs", "0*.jpg"); } //select only int lastY = 0; int imgNo = 0; for (int i = 0; i < fileNames.Length * 4; ++i) //5 imgs { var imgbox = new LayoutFarm.CustomWidgets.ImageBox(36, 36); imgbox.BackColor = Color.OrangeRed; imgbox.SetLocation(0, lastY); imgbox.MouseUp += (s, e) => { if (e.Button == UIMouseButtons.Right) { //test remove this imgbox on right mouse click panel.RemoveChild(imgbox); } }; ImageBinder imgBinder = host.CreateImageBinder(fileNames[imgNo]); imgbox.SetSize(imgBinder.Width, imgBinder.Height); imgbox.ImageBinder = imgBinder; lastY += imgbox.Height; panel.AddChild(imgbox); imgNo++; if (imgNo == fileNames.Length) //last img { imgNo = 0; //reset } } //-------------------------- //panel may need more panel.SetViewport(0, 0); //------------------------- { //vertical scrollbar var vscbar = new LayoutFarm.CustomWidgets.ScrollBar(15, 200); vscbar.SetLocation(x + 10, y + 10); vscbar.MinValue = 0; vscbar.MaxValue = lastY; vscbar.SmallChange = 20; host.AddChild(vscbar); //add relation between viewpanel and scroll bar var scRelation = new LayoutFarm.CustomWidgets.ScrollingRelation(vscbar.SliderBox, panel); } //------------------------- { //horizontal scrollbar var hscbar = new LayoutFarm.CustomWidgets.ScrollBar(150, 15); hscbar.ScrollBarType = CustomWidgets.ScrollBarType.Horizontal; hscbar.SetLocation(x + 30, y + 10); hscbar.MinValue = 0; hscbar.MaxValue = panel.Width;//just init hscbar.SmallChange = 20; host.AddChild(hscbar); //add relation between viewpanel and scroll bar var scRelation = new LayoutFarm.CustomWidgets.ScrollingRelation(hscbar.SliderBox, panel); } }
protected override void OnStart(AppHost host) { _vgVisualDocHost = new VgVisualDocHost(); _vgVisualDocHost.SetInvalidateDelegate(vgElem => { //invalidate graphic here }); _backBoard = new BackDrawBoardUI(800, 600); _backBoard.BackColor = Color.White; host.AddChild(_backBoard); //load lion svg string svgfile = "../Test8_HtmlRenderer.Demo/Samples/Svg/others/tiger.svg"; //string svgfile = "1f30b.svg"; //string svgfile = "../Data/Svg/twemoji/1f30b.svg"; //string svgfile = "../Data/1f30b.svg"; //string svgfile = "../Data/Svg/twemoji/1f370.svg"; VgVisualDoc vgDocRoot = ReadSvgFile(svgfile); VgVisualElement vgVisElem = vgDocRoot.VgRootElem; var uiSprite = new UISprite(10, 10); uiSprite.LoadVg(vgVisElem); _backBoard.AddChild(uiSprite); // _redBox = new LayoutFarm.CustomWidgets.Box(50, 50); //visual rect box _redBox.BackColor = Color.Red; _redBox.SetLocation(10, 10); //box1.dbugTag = 1; SetupActiveBoxProperties(_redBox); _backBoard.AddChild(_redBox); //---------------------- //-------- _rectBoxController = new CustomWidgets.RectBoxController(); _rectBoxController.Init(); _backBoard.AddChild(_rectBoxController); //foreach (var ui in rectBoxController.GetControllerIter()) //{ // viewport.AddContent(ui); //} //-------- var svgEvListener = new GeneralEventListener(); //uiSprite.AttachExternalEventListener(svgEvListener); svgEvListener.MouseDown += (e) => { //e.MouseCursorStyle = MouseCursorStyle.Pointer; ////-------------------------------------------- //e.SetMouseCapture(rectBoxController.ControllerBoxMain); _rectBoxController.UpdateControllerBoxes(_redBox); _rectBoxController.Focus(); //System.Console.WriteLine("click :" + (count++)); }; _rectBoxController.ControllerBoxMain.KeyDown += (s1, e1) => { if (e1.KeyCode == UIKeys.C && e1.Ctrl) { //test copy back image buffer from current rect area #if DEBUG //int left = rectBoxController.ControllerBoxMain.Left; //int top = rectBoxController.ControllerBoxMain.Top; //int width = rectBoxController.ControllerBoxMain.Width; //int height = rectBoxController.ControllerBoxMain.Height; //using (DrawBoard drawBoard = DrawBoardCreator.CreateNewDrawBoard(1, width, height)) //{ // //create new draw board // drawBoard.OffsetCanvasOrigin(left, top); // _backBoard.CurrentPrimaryRenderElement.CustomDrawToThisCanvas(drawBoard, new Rectangle(0, 0, width, height)); // using (var img2 = new PixelFarm.CpuBlit.ActualBitmap(width, height)) // { // //copy content from drawboard to target image and save // drawBoard.RenderTo(img2, 0, 0, width, height); // PixelFarm.CpuBlit.Imaging.PngImageWriter.SaveImgBufferToPngFile( // PixelFarm.CpuBlit.ActualBitmap.GetBufferPtr(img2), // img2.Stride, // img2.Width, // img2.Height, // "d:\\WImageTest\\tiger.png"); // } // //copy content from drawboard to target image and save //} #endif } }; }
static void SetupActiveBoxProperties(LayoutFarm.CustomWidgets.Box box) { //1. mouse down bool mouseUpFromDragging = false; System.DateTime mouseDownTime = System.DateTime.MinValue; System.DateTime mouseUpTime = System.DateTime.MinValue; int mdown_x = 0, mdown_y = 0; double velo_x = 0; double velo_y = 0; int x_dir = 0; int y_dir = 0; UI.UITimerTask animateTimer = new UITimerTask(tim => { box.SetLocation(box.Left + (int)(velo_x * 10 * x_dir), box.Top + (int)(velo_y * 10 * y_dir)); velo_x -= 0.1; velo_y -= 0.1; if (velo_x <= 0) { velo_x = 0; } if (velo_y <= 0) { velo_y = 0; } if (velo_x == 0 && velo_y == 0) { tim.Enabled = false; } }); animateTimer.Interval = 10; UIPlatform.RegisterTimerTask(animateTimer); box.MouseDown += (s, e) => { mdown_x = box.Left; mdown_y = box.Top; animateTimer.Enabled = false; mouseDownTime = System.DateTime.Now; mouseUpFromDragging = false; // box.BackColor = KnownColors.FromKnownColor(KnownColor.DeepSkyBlue); e.MouseCursorStyle = MouseCursorStyle.Pointer; }; //2. mouse up box.MouseUp += (s, e) => { mouseUpTime = System.DateTime.Now; e.MouseCursorStyle = MouseCursorStyle.Default; box.BackColor = KnownColors.LightGray; if (mouseUpFromDragging) { int mup_x = box.Left; int mup_y = box.Top; System.TimeSpan drag_timespan = mouseUpTime - mouseDownTime; double ms = drag_timespan.Milliseconds; double displacement_x = mup_x - mdown_x; double displacement_y = mup_y - mdown_y; velo_x = System.Math.Abs(displacement_x / ms); velo_y = System.Math.Abs(displacement_y / ms); x_dir = (mup_x >= mdown_x) ? 1 : -1; y_dir = (mup_y >= mdown_y) ? 1 : -1; animateTimer.Enabled = true; } }; box.MouseDrag += (s, e) => { mouseUpFromDragging = true; box.BackColor = KnownColors.FromKnownColor(KnownColor.GreenYellow); Point pos = box.Position; box.SetLocation(pos.X + e.XDiff, pos.Y + e.YDiff); e.MouseCursorStyle = MouseCursorStyle.Pointer; e.CancelBubbling = true; }; }
protected override void OnStart(AppHost host) { //SetupImageList(host); for (int i = 1; i < 5; ++i) { var textbox = new LayoutFarm.CustomWidgets.Box(30, 30); textbox.SetLocation(i * 40, i * 40); host.AddChild(textbox); } //-------------------- //image box //load bitmap with gdi+ ImageBinder imgBinder = host.LoadImageAndBind("../Data/imgs/favorites32.png"); var imgBox = new CustomWidgets.ImageBox(imgBinder.Width, imgBinder.Height); imgBox.ImageBinder = imgBinder; host.AddChild(imgBox); //-------------------- //checked box int boxHeight = 20; int boxY = 50; //multiple select for (int i = 0; i < 4; ++i) { var statedBox = new LayoutFarm.CustomWidgets.CheckBox(20, boxHeight); statedBox.SetLocation(10, boxY); boxY += boxHeight + 5; host.AddChild(statedBox); } //------------------------------------------------------------------------- //single select boxY += 50; for (int i = 0; i < 4; ++i) { var statedBox = new LayoutFarm.CustomWidgets.CheckBox(20, boxHeight); statedBox.SetLocation(10, boxY); boxY += boxHeight + 5; host.AddChild(statedBox); statedBox.CheckChanged += (s, e) => { var selectedBox = (LayoutFarm.CustomWidgets.CheckBox)s; if (selectedBox != _currentSingleCheckedBox) { if (_currentSingleCheckedBox != null) { _currentSingleCheckedBox.Checked = false; } _currentSingleCheckedBox = selectedBox; } }; } //------------------------------------------------------------------- //test canvas var canvasBox = new MyDrawingCanvas(300, 300); canvasBox.SetLocation(400, 150); host.AddChild(canvasBox); //------------------------------------------------------------------- }
protected override void OnStart(AppHost host) { int x_pos = 0; //mouse behavior for LayoutFarm.CustomWidgets.Box, //with special attachment state => MyButtonState var mouseBeh = new UIMouseBehaviour <LayoutFarm.CustomWidgets.Box, MyButtonState>(); mouseBeh.MouseEnter += (s, e) => { //s is a behaviour object that raise the event //not the the current context element LayoutFarm.CustomWidgets.Box box = s.Source; box.BackColor = _mouseEnterState; #if DEBUG System.Diagnostics.Debug.WriteLine("mouse_enter:" + box.dbugId); #endif }; mouseBeh.MouseLeave += (s, e) => { //s is a behaviour object that raise the event //not the the current context element LayoutFarm.CustomWidgets.Box box = s.Source; box.BackColor = _normalState; #if DEBUG System.Diagnostics.Debug.WriteLine("mouse_leave:" + box.dbugId); #endif }; mouseBeh.MouseHover += (s, e) => { //b is a behaviour object that raise the event //not the the current context element LayoutFarm.CustomWidgets.Box box = s.Source; box.BackColor = _hoverState; #if DEBUG System.Diagnostics.Debug.WriteLine("mouse_hover:" + box.dbugId); #endif }; mouseBeh.MousePress += (s, e) => { //s is a behaviour object that raise the event //not the the current context element LayoutFarm.CustomWidgets.Box box = s.Source; Color back_color = box.BackColor; box.BackColor = new Color((byte)System.Math.Min(back_color.A + 10, 255), back_color.R, back_color.G, back_color.B); #if DEBUG System.Diagnostics.Debug.WriteLine("mouse_press:" + box.dbugId); #endif }; mouseBeh.MouseDown += (s, e) => { MyButtonState buttonState = s.State; if (buttonState != null) { if (buttonState.ClickCount > 3) { s.Source.BackColor = Color.Magenta; } buttonState.ClickCount++; } }; for (int i = 0; i < 10; ++i) { var sampleButton = new LayoutFarm.CustomWidgets.Box(30, 30); sampleButton.BackColor = _normalState; sampleButton.SetLocation(x_pos, 10); MyButtonState state = new MyButtonState(); mouseBeh.AttachUniqueBehaviorTo(sampleButton, state); host.AddChild(sampleButton); x_pos += 30 + 5; } }