public void Main() { Button b1 = new Button(DarkTheme.ControlDefaultBackground, 10, 10, 100, 75, "hell0"); Button b2 = new Button(DarkTheme.ControlDefaultBackground, 120, 10, 250, 75, "a btn"); Button b3 = new Button(DarkTheme.ControlDefaultBackground, 10, 95, 360, 100, "another btn xddd"); b1.Clicked += B1_Clicked; b2.Clicked += B1_Clicked; b3.Clicked += B1_Clicked; Listbox lb = new Listbox(DarkTheme.ContainerBackgroundColour, 10, 215, 400, 500); lb.AddItem(new ListboxItem(DarkTheme.ControlDefaultBackground, "listbox1")); lb.AddItem(new ListboxItem(DarkTheme.ControlDefaultBackground, "listbox2")); lb.AddItem(new ListboxItem(DarkTheme.ControlDefaultBackground, "listbox3")); lb.AddItem(new ListboxItem(DarkTheme.ControlDefaultBackground, "listbox4")); listboxes.Add(lb); buttons.Add(b1); buttons.Add(b2); buttons.Add(b3); GameEngine ge = new GameEngine(this); ge.Construct(1280, 720, 1, 1, 60); ge.Start(); }
static Listbox LoadListbox(Stream fs) { var obj = new Listbox(ReadString(fs), ReadFont(fs), ReadInt(fs), ReadInt(fs), ReadInt(fs), ReadInt(fs), ReadBool(fs), ReadBool(fs), ReadSize(fs)) { Enabled = ReadBool(fs), Visible = ReadBool(fs), BackColor = ReadColor(fs), MinimumLineHeight = ReadInt(fs), SelectedBackColor = ReadColor(fs), SelectedTextColor = ReadColor(fs), ZebraStripe = ReadBool(fs), ZebraStripeColor = ReadColor(fs) }; var len = ReadInt(fs); for (var i = 0; i < len; i++) { if (fs.ReadByte() != 7) { throw new Exception("Invalid item type; expected 7"); } obj.AddItem(new ListboxItem(ReadString(fs), ReadFont(fs), ReadColor(fs), ReadImage(fs), ReadBool(fs), ReadBool(fs))); } return(obj); }
public RuleSelectScreen() { BaseGame.ShowMouse = true; RuleLoader.Initial(); string[] ruleLists = RuleLoader.GetRulesList(); rulesList = new Listbox("rulelist", new Vector2(200, 150), new Point(400, 300), Color.WhiteSmoke, Color.Green); foreach (string rulename in ruleLists) { rulesList.AddItem(rulename); } rulesList.OnChangeSelection += new EventHandler(rulesList_OnChangeSelection); btn = new TextButton("OkBtn", new Vector2(700, 500), "Begin", 0, Color.Blue); btn.OnClick += new EventHandler(btn_OnPress); }
private void PopulateAvailableVideoModes() { _lstResolution.ClearItems(); vmList.Clear(); IOrderedEnumerable <VideoMode> modes = from v in SFML.Window.VideoMode.FullscreenModes where (v.Height > 748 && v.Width > 1024) //GOSH I HOPE NOONES USING 16 BIT COLORS. OR RUNNING AT LESS THAN 59 hz orderby v.Height * v.Width ascending select v; if (!modes.Any()) { throw new Exception("No available video modes"); } foreach (VideoMode vm in modes) { if (!vmList.ContainsKey(GetVmString(vm))) { vmList.Add(GetVmString(vm), vm); _lstResolution.AddItem(GetVmString(vm)); } } if ( vmList.Any( x => x.Value.Width == CluwneLib.Screen.Size.X && x.Value.Height == CluwneLib.Screen.Size.Y)) { KeyValuePair <string, VideoMode> curr = vmList.FirstOrDefault( x => x.Value.Width == CluwneLib.Screen.Size.X && x.Value.Height == CluwneLib.Screen.Size.Y); _lstResolution.SelectItem(curr.Key, false); } else { //No match due to different refresh rate in windowed mode. Just pick first resolution based on size only. KeyValuePair <string, VideoMode> curr = vmList.FirstOrDefault( x => x.Value.Width == CluwneLib.Screen.Size.X && x.Value.Height == CluwneLib.Screen.Size.Y); _lstResolution.SelectItem(curr.Key, false); } }
private void PopulateAvailableVideoModes(Listbox resListBox) { resListBox.ClearItems(); _videoModeList.Clear(); var modes = VideoMode.FullscreenModes .Where(v => v.Height > 748 && v.Width > 1024) .OrderBy(v => v.Height * v.Width) .ToList(); if (!modes.Any()) { throw new InvalidOperationException("No available video modes"); } foreach (var vm in modes) { if (!_videoModeList.ContainsKey(GetVmString(vm))) { _videoModeList.Add(GetVmString(vm), vm); resListBox.AddItem(GetVmString(vm)); } } if (_videoModeList.Any(x => x.Value.Width == CluwneLib.Window.Viewport.Size.X && x.Value.Height == CluwneLib.Window.Viewport.Size.Y)) { var currentMode = _videoModeList.FirstOrDefault(x => x.Value.Width == CluwneLib.Window.Viewport.Size.X && x.Value.Height == CluwneLib.Window.Viewport.Size.Y); resListBox.SelectItem(currentMode.Key); } else { //No match due to different refresh rate in windowed mode. Just pick first resolution based on size only. var currentMode = _videoModeList.FirstOrDefault( x => x.Value.Width == CluwneLib.Window.Viewport.Size.X && x.Value.Height == CluwneLib.Window.Viewport.Size.Y); resListBox.SelectItem(currentMode.Key); } }
public Room() { BaseGame.ShowMouse = true; roomList = new Listbox("roomlist", new Vector2(30, 100), new Point(200, 350), Color.WhiteSmoke, Color.Green); rankList = new Listbox("ranklist", new Vector2(300, 100), new Point(450, 350), Color.WhiteSmoke, Color.Green); roomList.AddItem("Room 1"); bgTexture = BaseGame.ContentMgr.Load <Texture2D>(Path.Combine(Directories.BgContent, "login")); bgRect = new Rectangle(0, 0, 800, 600); btnCreate = new TextButton("CreateBtn", new Vector2(130, 460), "Create", 0, Color.Gold); btnEnter = new TextButton("EnterBtn", new Vector2(50, 460), "Enter", 0, Color.Gold); btnRank = new TextButton("RankBtn", new Vector2(650, 460), "Rank List", 0, Color.Gold); btnCreate.OnClick += new EventHandler(btnCreate_OnPress); btnEnter.OnClick += new EventHandler(btnEnter_OnPress); btnRank.OnClick += new EventHandler(btnRank_OnPress); rankList.OnChangeSelection += new EventHandler(rankList_OnChangeSelection); roomList.OnChangeSelection += new EventHandler(roomList_OnChangeSelection); SocketMgr.OnReceivePkg += new SocketMgr.ReceivePkgEventHandler(OnReceivePack); /* * * stPkgHead head = new stPkgHead(); * //head.iSytle = //包头类型还没初始化 * * * MemoryStream Stream = new MemoryStream(); * Stream.Write(new byte[1], 0, 1); * head.dataSize = 1; * head.iSytle = 50; * SocketMgr.SendCommonPackge(head, Stream); * Stream.Close(); */ // 连接到服务器 //SocketMgr.ConnectToServer(); }
void OnReceivePack(stPkgHead head, MemoryStream data) { if (head.iSytle == 50) { RankInfo ri; string str; for (int i = 0; i < head.dataSize; i += 32) { str = ""; data.Read(rankBuffer, 0, 32); ri = (RankInfo)SocketMgr.BytesToStuct(rankBuffer, typeof(RankInfo)); for (int j = 0; ri.name[j] != '\0'; ++j) { str += ri.name[j]; } rankList.AddItem(ri.rank + " " + str + " " + ri.score); } } }
public OptionsMenu(IDictionary <Type, object> managers) : base(managers) { _background = ResourceManager.GetSprite("mainbg"); // _background.Smoothing = Smoothing.Smooth; _lblFullscreen = new Label("Fullscreen", "CALIBRI", ResourceManager); _chkFullscreen = new Checkbox(ResourceManager); _chkFullscreen.Value = ConfigurationManager.GetFullscreen(); _chkFullscreen.ValueChanged += _chkfullscreen_ValueChanged; _lblVsync = new Label("Vsync", "CALIBRI", ResourceManager); _chkVsync = new Checkbox(ResourceManager); _chkVsync.Value = ConfigurationManager.GetVsync(); _chkVsync.ValueChanged += _chkvsync_ValueChanged; _lstResolution = new Listbox(250, 150, ResourceManager); _lstResolution.ItemSelected += _reslistbox_ItemSelected; IOrderedEnumerable <VideoMode> modes = from v in SFML.Window.VideoMode.FullscreenModes where (v.Height > 748 && v.Width > 1024) //GOSH I HOPE NOONES USING 16 BIT COLORS. OR RUNNING AT LESS THAN 59 hz orderby v.Height * v.Width ascending select v; if (!modes.Any()) { //No compatible videomodes at all. It is likely the game is being run on a calculator. TODO handle this. Application.Exit(); } foreach (VideoMode vm in modes) { if (!vmList.ContainsKey(GetVmString(vm))) { vmList.Add(GetVmString(vm), vm); _lstResolution.AddItem(GetVmString(vm)); } } if ( vmList.Any( x => x.Value.Width == CluwneLib.Screen.Size.X && x.Value.Height == CluwneLib.Screen.Size.Y)) { KeyValuePair <string, VideoMode> curr = vmList.FirstOrDefault( x => x.Value.Width == CluwneLib.Screen.Size.X && x.Value.Height == CluwneLib.Screen.Size.Y); _lstResolution.SelectItem(curr.Key, false); } else { //No match due to different refresh rate in windowed mode. Just pick first resolution based on size only. KeyValuePair <string, VideoMode> curr = vmList.FirstOrDefault( x => x.Value.Width == CluwneLib.Screen.Size.X && x.Value.Height == CluwneLib.Screen.Size.Y); _lstResolution.SelectItem(curr.Key, false); } _ticketBg = ResourceManager.GetSprite("ticketoverlay"); _btnMainMenu = new Label("Main Menu", "CALIBRI", ResourceManager); _btnMainMenu.DrawBorder = true; _btnMainMenu.Clicked += _mainmenubtt_Clicked; _btnApply = new Label("Apply", "CALIBRI", ResourceManager); _btnApply.DrawBorder = true; _btnApply.Clicked += _applybtt_Clicked; _lstResolution.Position = new Point(45, (int)(CluwneLib.Screen.Size.Y / 2.5f)); _lstResolution.Update(0); _chkFullscreen.Position = new Point(_lstResolution.Position.X, _lstResolution.Position.Y + _lstResolution.ClientArea.Height + 10); _chkFullscreen.Update(0); _chkVsync.Position = new Point(_chkFullscreen.Position.X, _chkFullscreen.Position.Y + _chkFullscreen.ClientArea.Height + 10); _chkVsync.Update(0); _lblFullscreen.Position = new Point(_chkFullscreen.Position.X + _chkFullscreen.ClientArea.Width + 3, _chkFullscreen.Position.Y + (int)(_chkFullscreen.ClientArea.Height / 2f) - (int)(_lblFullscreen.ClientArea.Height / 2f)); _lblFullscreen.Update(0); _lblVsync.Position = new Point(_chkVsync.Position.X + _chkVsync.ClientArea.Width + 3, _chkVsync.Position.Y + (int)(_chkVsync.ClientArea.Height / 2f) - (int)(_chkVsync.ClientArea.Height / 2f)); _lblVsync.Update(0); _btnMainMenu.Position = new Point(_lstResolution.Position.X + 650, _lstResolution.Position.Y); _btnMainMenu.Update(0); _btnApply.Position = new Point(_btnMainMenu.Position.X, _btnMainMenu.Position.Y + _btnMainMenu.ClientArea.Height + 5); _btnApply.Update(0); }
void OnReceivePack(stPkgHead head, byte[] data) { if (head.iSytle == 40) { head.iSytle = 40; } if (head.iSytle == 33) { //刷房间列表成功 string str; RoomInfo room; byte[] tmpData; roomList.Clear(); tmpData = new byte[head.dataSize]; for (int i = 0; i < head.dataSize; i += 36) { str = ""; //data.Read(roomBuffer, 0, 32); for (int k = 0; k < 36; ++k) { tmpData[k] = data[i + k]; } room = (RoomInfo)SocketMgr.BytesToStuct(tmpData, typeof(RoomInfo)); for (int j = 0; room.name[j] != '\0'; ++j) { str += room.name[j]; } roomList.AddItem(" " + str + " ( " + room.players + " / 2 )", room.id); } } else if (head.iSytle == 35) { //创建房间成功 bWaitEnter = false; headSend = new stPkgHead(); Stream = new MemoryStream(); headSend.dataSize = 0; headSend.iSytle = 33; SocketMgr.SendCommonPackge(headSend, Stream); Stream.Close(); bInRoom = true; headSend = new stPkgHead(); Stream = new MemoryStream(); headSend.dataSize = 0; headSend.iSytle = 34; SocketMgr.SendCommonPackge(headSend, Stream); Stream.Close(); } else if (head.iSytle == 36) { //创建房间失败 bWaitEnter = false; bInRoom = false; bIsHost = false; } else if (head.iSytle == 37) { //加入房间成功 bWaitEnter = false; headSend = new stPkgHead(); Stream = new MemoryStream(); headSend.dataSize = 0; headSend.iSytle = 33; SocketMgr.SendCommonPackge(headSend, Stream); Stream.Close(); bInRoom = true; headSend = new stPkgHead(); Stream = new MemoryStream(); headSend.dataSize = 0; headSend.iSytle = 34; SocketMgr.SendCommonPackge(headSend, Stream); Stream.Close(); } else if (head.iSytle == 38) { //加入房间失败 bWaitEnter = false; bInRoom = false; bIsHost = false; } else if (head.iSytle == 34) { //列举用户信息 string str; UserInfo player; byte[] tmpData; Monitor.Enter(heads); Monitor.Enter(ranks); Monitor.Enter(scores); heads.Clear(); ranks.Clear(); scores.Clear(); tmpData = new byte[head.dataSize]; bIsHost = false; string[] tmpNames = new string[6]; int playerNum = 0; for (int i = 0; i < head.dataSize; i += 56) { str = ""; //data.Read(roomBuffer, 0, 32); for (int k = 0; k < 56; ++k) { tmpData[k] = data[i + k]; } player = (UserInfo)SocketMgr.BytesToStuct(tmpData, typeof(UserInfo)); for (int j = 0; player.name[j] != '\0'; ++j) { str += player.name[j]; } if (str == myName && player.state == 1) { bIsHost = true; } tmpNames[playerNum] = str;//, Font font) ranks.Add(player.rank); scores.Add(player.score); Texture2D tex; if (devHeads.Contains(str)) { tex = BaseGame.ContentMgr.Load <Texture2D>(Path.Combine(Directories.UIContent, str)); } else { tex = BaseGame.ContentMgr.Load <Texture2D>(Path.Combine(Directories.UIContent, "head")); } if (tex == null) { throw new Exception(""); } heads.Add(tex); playerNum++; //roomList.AddItem("room 1" + " ( " + room.players + " / 6 )", room.id); } playerCount = playerNum; userNames = new string[playerNum]; for (int i = 0; i < playerNum; i++) { userNames[i] = tmpNames[i]; } Monitor.Exit(scores); Monitor.Exit(ranks); Monitor.Exit(heads); headSend = new stPkgHead(); Stream = new MemoryStream(); headSend.dataSize = 0; headSend.iSytle = 33; SocketMgr.SendCommonPackge(headSend, Stream); Stream.Close(); } else if (head.iSytle == 70) { //开始游戏 bWaitEnter = false; if (bIsHost) { GameManager.AddGameScreen(new StarwarLogic(0, userNames)); } else { for (int i = 0; i < playerCount; i++) { if (userNames[i] == myName) { GameManager.AddGameScreen(new StarwarLogic(i, userNames)); } } } } else if (head.iSytle == 71) { bWaitEnter = false; } }
public OptionsMenu(IDictionary <Type, object> managers) : base(managers) { _background = ResourceManager.GetSprite("mainbg"); _background.Smoothing = Smoothing.Smooth; _lblfullscreen = new Label("Fullscreen", "CALIBRI", ResourceManager); _chkfullscreen = new Checkbox(ResourceManager); _chkfullscreen.Value = ConfigurationManager.GetFullscreen(); _chkfullscreen.ValueChanged += _chkfullscreen_ValueChanged; _lblvsync = new Label("Vsync", "CALIBRI", ResourceManager); _chkvsync = new Checkbox(ResourceManager); _chkvsync.Value = ConfigurationManager.GetVsync(); _chkvsync.ValueChanged += _chkvsync_ValueChanged; _reslistbox = new Listbox(250, 150, ResourceManager); _reslistbox.ItemSelected += _reslistbox_ItemSelected; IOrderedEnumerable <VideoMode> modes = from v in Gorgon.CurrentDriver.VideoModes where (v.Height > 748 && v.Width > 1024) && v.Format == BackBufferFormats.BufferRGB888 && v.RefreshRate >= 59 //GOSH I HOPE NOONES USING 16 BIT COLORS. OR RUNNING AT LESS THAN 59 hz orderby v.Height * v.Width ascending select v; if (!modes.Any()) { //No compatible videomodes at all. It is likely the game is being run on a calculator. TODO handle this. Application.Exit(); } foreach (VideoMode vm in modes) { if (!vmList.ContainsKey(GetVmString(vm))) { vmList.Add(GetVmString(vm), vm); _reslistbox.AddItem(GetVmString(vm)); } } if ( vmList.Any( x => x.Value.Width == Gorgon.CurrentVideoMode.Width && x.Value.Height == Gorgon.CurrentVideoMode.Height && x.Value.RefreshRate == (Gorgon.Screen.Windowed ? Gorgon.DesktopVideoMode.RefreshRate : Gorgon.CurrentVideoMode.RefreshRate))) { KeyValuePair <string, VideoMode> curr = vmList.FirstOrDefault( x => x.Value.Width == Gorgon.CurrentVideoMode.Width && x.Value.Height == Gorgon.CurrentVideoMode.Height && x.Value.RefreshRate == (Gorgon.Screen.Windowed ? Gorgon.DesktopVideoMode.RefreshRate : Gorgon.CurrentVideoMode.RefreshRate)); _reslistbox.SelectItem(curr.Key, false); } else { //No match due to different refresh rate in windowed mode. Just pick first resolution based on size only. KeyValuePair <string, VideoMode> curr = vmList.FirstOrDefault( x => x.Value.Width == Gorgon.CurrentVideoMode.Width && x.Value.Height == Gorgon.CurrentVideoMode.Height); _reslistbox.SelectItem(curr.Key, false); } _ticketbg = ResourceManager.GetSprite("ticketoverlay"); _mainmenubtt = new Label("Main Menu", "CALIBRI", ResourceManager); _mainmenubtt.DrawBorder = true; _mainmenubtt.Clicked += _mainmenubtt_Clicked; _applybtt = new Label("Apply", "CALIBRI", ResourceManager); _applybtt.DrawBorder = true; _applybtt.Clicked += _applybtt_Clicked; }
private void TestEvents(object sender, point point) { _panel = GetNewRootPanel(); _panel.Suspended = true; _panel.BackColor = 0; var lst = new Listbox("lst", Fonts.Droid9, 5, 35, _panel.Width - 10, _panel.Height - 40); var btn = new Button("btn", "Tab me ... tap me hard", Fonts.Droid11, 5, 5); btn.Tap += (o, point1) => lst.AddItem(new ListboxItem("Tap")); btn.TapHold += (o, point1) => lst.AddItem(new ListboxItem("TapHold")); btn.DoubleTap += (o, point1) => lst.AddItem(new ListboxItem("DoubleTap")); btn.TouchDown += (o, point1) => lst.AddItem(new ListboxItem("TouchDown")); btn.TouchMove += (o, point1) => lst.AddItem(new ListboxItem("TouchMove")); btn.TouchUp += (o, point1) => lst.AddItem(new ListboxItem("TouchUp")); btn.TouchGesture += (o, type, force) => lst.AddItem(new ListboxItem("TouchGesture")); btn.GotFocus += (o) => lst.AddItem(new ListboxItem("GotFocus")); btn.LostFocus += (o) => lst.AddItem(new ListboxItem("LostFocus")); btn.ButtonPressed += (o, id) => lst.AddItem(new ListboxItem("ButtonPressed")); btn.ButtonReleased += (o, id) => lst.AddItem(new ListboxItem("ButtonReleased")); btn.KeyboardAltKey += (o, key, pressed) => lst.AddItem(new ListboxItem("KeyboardAltKey")); btn.KeyboardKey += (o, key, pressed) => lst.AddItem(new ListboxItem("KeyboardKey")); _panel.AddChild(btn); btn = new Button("btn2", "Other button", Fonts.Droid11, 200, 5); _panel.AddChild(btn); _panel.AddChild(lst); _panel.Suspended = false; }
private void ZombieTwitForm() { var tweets = new[]{ @"@zombieHunter Zombies are coming!" , @"@zombieHunter Zombies are getting closer!" , @"@zombieHunter THEY'RE HERE!!!" , @"@zombieHunter Send the Gadgets!!!" , @"@zombieHunter Tell my wife and kids..." , @"@zombieHunter ...I'll eat them later!" }; var frm = new Form("zombie twit"); // Add panel var pnl = new Skewworks.Tinkr.Controls.Panel("pnl1", 0, 0, 800, 480); pnl.BackgroundImage = Resources.GetBitmap(Resources.BitmapResources.Zombies); frm.AddControl(pnl); // Add the app bar. pnl.AddControl(BuildAppBar(frm.Name)); // Add a title. var title = new Label("lblTitle", "Zombie Twit", _fntHuge, frm.Width / 2 - 100, 50) { Color = Gadgeteer.Color.Yellow }; pnl.AddControl(title); // Add a listbox var lb = new Listbox("lb1", _fntArialBold11, frm.Width / 2 - 200, frm.Height / 2 - 100, 400, 200, null); pnl.AddControl(lb); TinkrCore.ActiveContainer = frm; byte lastTweet = 0; var timer = new GT.Timer(2000); timer.Tick += timer1 => { if(lastTweet >= tweets.Length) { timer.Stop(); return; } //lb.InsertAt(tweets[lastTweet++], 1); lb.AddItem(tweets[lastTweet++]); }; timer.Start(); }