public static int AddMob(ControlBase b) { b.g = gc; MobList.Add(b); return MobList.IndexOf(b); }
public virtual ControlBase clone() { ControlBase b=new ControlBase(); b.g=g;b.redraw=redraw;b.id=-1;return b; }
public static void MouseUp() { if (SelectItem != null) { if (!SelectBlock) { SelectItem.checkup(); SelectItem.draw(); Sgp.DrawImage(DrawMap, 0, 0); } SelectItem = null; } }
public static void Init(Graphics g,TextBox t,ShowOK CallBack) { NameInput = t; CallShowOK = CallBack; DrawMap = new Bitmap(Screen.PrimaryScreen.Bounds.Width, Screen.PrimaryScreen.Bounds.Height); gp = Graphics.FromImage(DrawMap); Sgp = g; rect = new Rectangle(Screen.PrimaryScreen.Bounds.Width/2-300, 0, 600, 400); startpoint = new Point(rect.X, rect.Y); DrawDelay.Interval = 10; DrawDelay.Tick += (new EventHandler((object sender, EventArgs e) => { DrawUI(); ((Timer)sender).Stop(); })); NameInput.Visible = false; NameInput.Location = new Point(startpoint.X + 130, 329); //NameInput.Parent.Focus(); //NameInput.KeyDown += new KeyEventHandler((object sender, KeyEventArgs e) => { // if (isEditName) // { // if (e.KeyCode == Keys.Enter) // { // ((Control.Button)SaveItem).SetName(NameInput.Text); // NameInput.Parent.Focus(); // NameInput.Visible = false; // isEditName = false; // DrawDelay.Start(); // } // } // else // { // ((TextBox)sender).Visible = false; // } //}); //--------按钮属性 ButtonInfo.Add(new Control.Button(startpoint.X + 10, 310, 100, 80, "", 4, new Control.Button.ButtonCallBack((Control.Button b) => { isEditKey = true; SelectButtonIndex = 0; if (ButtonUI.ScreenKeyboard) ButtonUI.ShowScreenKeyboard(); }))); ButtonInfo.Add(new Control.Button(startpoint.X + 120, 310, 100, 80, "", 4, new Control.Button.ButtonCallBack((Control.Button b) => { isEditName = true; NameInput.Visible = true; NameInput.Focus(); if (ButtonUI.ScreenKeyboard) ButtonUI.ShowScreenKeyboard(); }))); ButtonInfo.Add(new Control.Button(startpoint.X + 380, 310, 100, 80, "X方向缩放", 4, new Control.Button.ButtonCallBack((Control.Button b) => { if ((((Control.Button)SaveItem).mode & Control.Button.Button_IsRect) == 0) { if (ButtonXSize) { ButtonXSize = ButtonYSize = false; ButtonInfo[0].mode &= ~Control.Button.Button_IsUse; ButtonInfo[1].mode &= ~Control.Button.Button_IsUse; } else { ButtonXSize = ButtonYSize = true; ButtonInfo[0].mode |= Control.Button.Button_IsUse; ButtonInfo[1].mode |= Control.Button.Button_IsUse; } } else { if (ButtonXSize) { ButtonXSize = false; b.mode &= ~Control.Button.Button_IsUse; } else { ButtonXSize = true; b.mode |= Control.Button.Button_IsUse; } } DrawUI(); }))); ButtonInfo.Add(new Control.Button(startpoint.X + 490, 310, 100, 80, "Y方向缩放", 4, new Control.Button.ButtonCallBack((Control.Button b) => { if ((((Control.Button)SaveItem).mode & Control.Button.Button_IsRect)==0) { if (ButtonYSize) { ButtonXSize = ButtonYSize = false; ButtonInfo[0].mode &= ~Control.Button.Button_IsUse; ButtonInfo[1].mode &= ~Control.Button.Button_IsUse; } else { ButtonXSize = ButtonYSize = true; ButtonInfo[0].mode |= Control.Button.Button_IsUse; ButtonInfo[1].mode |= Control.Button.Button_IsUse; } } else { if (ButtonYSize) { ButtonYSize = false; b.mode &= ~Control.Button.Button_IsUse; } else { ButtonYSize = true; b.mode |= Control.Button.Button_IsUse; } } DrawUI(); }))); //--------- //------摇杆属性 StickInfo.Add(new Control.Button(startpoint.X + 10, 310, 100, 80, "", 4, new Control.Button.ButtonCallBack((Control.Button b) => { SelectButtonIndex = 0; isEditKey = true; if (ButtonUI.ScreenKeyboard) ButtonUI.ShowScreenKeyboard(); }))); StickInfo.Add(new Control.Button(startpoint.X + 160, 310, 100, 80, "", 4, new Control.Button.ButtonCallBack((Control.Button b) => { SelectButtonIndex = 1; isEditKey = true; if (ButtonUI.ScreenKeyboard) ButtonUI.ShowScreenKeyboard(); }))); StickInfo.Add(new Control.Button(startpoint.X + 310, 310, 100, 80, "", 4, new Control.Button.ButtonCallBack((Control.Button b) => { SelectButtonIndex = 2; isEditKey = true; if (ButtonUI.ScreenKeyboard) ButtonUI.ShowScreenKeyboard(); }))); StickInfo.Add(new Control.Button(startpoint.X + 490, 310, 100, 80, "", 4, new Control.Button.ButtonCallBack((Control.Button b) => { SelectButtonIndex = 3; isEditKey = true; if (ButtonUI.ScreenKeyboard) ButtonUI.ShowScreenKeyboard(); }))); //------- NewList.Add(new Control.Button(startpoint.X + 100 - 50, 200 - 50, 100, 100, "圆形按钮", 0, null, new Control.Button.ButtonCallBack((Control.Button b) => { Point p = new Point(Screen.PrimaryScreen.Bounds.Width / 2 - 50, 160); ControlBase item = new Control.Button(p.X,p.Y,100,100, "圆形按钮",(short)'A',0); item.g = gp; Touch.MobList.Add(item); SaveItem = item; DrawUI(); }))); NewList.Add(new Control.Button(startpoint.X + 300 - 50, 200 - 40, 100, 80, "方形按钮", 4, null, new Control.Button.ButtonCallBack((Control.Button b) => { Point p = new Point(Screen.PrimaryScreen.Bounds.Width / 2 - 50, 160); ControlBase item = new Control.Button(p.X, p.Y, 100, 80, "方形按钮", (short)'A', 4); item.g = gp; Touch.MobList.Add(item); SaveItem = item; DrawUI(); }))); NewList.Add(new Control.Stick(startpoint.X + 500 - 50, 200 - 50, 50, DefKeyList, 0, 110, 0.3F, 0.5F, new Stick.StickCallBack((Stick s) => { Point p = new Point(Screen.PrimaryScreen.Bounds.Width / 2 - 50, 160); ControlBase item = new Stick(p.X, p.Y, 50, DefKeyList); item.g = gp; Touch.MobList.Add(item); SaveItem = item; DrawUI(); }))); ContList.Add(new Control.Button(startpoint.X + 10, 0, 80, 50, "添加", 4, new Control.Button.ButtonCallBack((Control.Button b) => { isNewList = true; DrawNewList(); }))); ContList.Add(new Control.Button(startpoint.X + 110, 0, 80, 50, "删除", 4, new Control.Button.ButtonCallBack((Control.Button b) => { if (SaveItem != null) { Touch.MobList.Remove(SaveItem); SaveItem = null; DrawUI(); GC.Collect(); } }))); ContList.Add(new Control.Button(startpoint.X + 210, 0, 80, 50, "复制", 4, new Control.Button.ButtonCallBack((Control.Button b) => { if (SaveItem != null) { Point p = new Point(Screen.PrimaryScreen.Bounds.Width / 2-SaveItem.rect.Width/2,200-SaveItem.rect.Height/2); ControlBase item = SaveItem.clone(); item.setpos(p); Touch.MobList.Add(item); DrawUI(); } }))); ContList.Add(new Control.Button(startpoint.X + 310, 0, 80, 50, "放大", 4, new Control.Button.ButtonCallBack((Control.Button b) => { if (SaveItem != null) { if (SaveItem is Control.Button) { SaveItem.setsize(new Size((ButtonXSize) ? SaveItem.rect.Width + 10 : SaveItem.rect.Width, (ButtonYSize) ? SaveItem.rect.Height + 10 : SaveItem.rect.Height)); } else { SaveItem.setsize(new Size(SaveItem.rect.Width + 10, SaveItem.rect.Height + 10)); } SaveItem.setpos(SaveItem.rect.Location); DrawUI(); } }))); ContList.Add(new Control.Button(startpoint.X + 410, 0, 80, 50, "缩小", 4, new Control.Button.ButtonCallBack((Control.Button b) => { if (SaveItem != null) { if (SaveItem.rect.Width > 10 && SaveItem.rect.Height > 10) { if(SaveItem is Control.Button) SaveItem.setsize(new Size((ButtonXSize) ? SaveItem.rect.Width - 10 : SaveItem.rect.Width, (ButtonYSize) ? SaveItem.rect.Height - 10 : SaveItem.rect.Height)); else SaveItem.setsize(new Size(SaveItem.rect.Width - 10, SaveItem.rect.Height - 10)); SaveItem.setpos(SaveItem.rect.Location); DrawUI(); } } }))); ContList.Add(new Control.Button(startpoint.X + 510, 0, 80, 50, "关闭", 4,null, new Control.Button.ButtonCallBack((Control.Button b) => { Hide(); if (CallShowOK != null)CallShowOK(); }))); foreach (Control.Button b in ContList) b.g = gp; foreach (Control.ControlBase b in NewList) b.g = gp; foreach (Control.ControlBase b in ButtonInfo) b.g = gp; foreach (Control.ControlBase b in StickInfo) b.g = gp; }
public static void MouseDown(Point p) { if (isEditName) { NameInput.Visible = false; isEditName = false; DrawDelay.Start(); } if (isEditKey) { ButtonInfo[0].mode &= ~Control.Button.Button_IsUse; isEditKey = false; } //isEditName = isEditKey = false; foreach (Control.Button b in ContList) { if (b.check(p)) { SelectItem = b; SelectBlock = false; b.draw(); Sgp.DrawImage(DrawMap, 0, 0); return; } } if (isNewList) { foreach (Control.ControlBase b in NewList) { if (b.check(p)) { b.checkup(); isNewList = false; return; } } } foreach (ControlBase s in Touch.MobList) { if (s.checkRect(p)) { ButtonXSize = true; ButtonYSize = true; xoffset = p.X - s.rect.X; yoffset = p.Y - s.rect.Y; SaveItem = SelectItem = s; SelectBlock = true; DrawUI(); return; } } if (SaveItem != null) { if (SaveItem is Stick) { foreach (Control.ControlBase b in StickInfo) { if (b.check(p)) { DrawUI(); return; } } } else if (SaveItem is Control.Button) { foreach (Control.ControlBase b in ButtonInfo) { if (b.check(p)) { DrawUI(); return; } } } } SaveItem = SelectItem = null; DrawUI(); }