public PlayerListTab(string uniqueName, Vector2i size, IResourceCache resourceCache) : base(uniqueName, size, resourceCache) { DrawBorder = false; _scPlayerList = new ScrollableContainer("scplayerlist", new Vector2i(784, 346), resourceCache); _scPlayerList.Position = new Vector2i(5, 10); components.Add(_scPlayerList); }
public PlayerListTab(Vector2i size) : base(size) { //PlayerList = new ScrollableContainer(new Vector2i(784, 346)); //PlayerList.Position = new Vector2i(5, 10); //Components.Add(PlayerList); PlayerList = new ListPanel(); Container.AddControl(PlayerList); }
/// <summary> /// Handles MouseMove event. Sent to all visible Components. /// </summary> public virtual void MouseMove(MouseMoveEventArgs e) { MousePos = new Vector2i(e.X, e.Y); if (_console.Visible) { _console.MouseMove(e); } foreach (var current in _components) { current.MouseMove(e); } }
public PropEditWindow(Vector2i size, IResourceCache resourceCache, Object obj) : base("Object Properties : " + obj, size) { Position = new Vector2i((int)(CluwneLib.CurrentRenderTarget.Size.X / 2f) - (int)(ClientArea.Width / 2f), (int)(CluwneLib.CurrentRenderTarget.Size.Y / 2f) - (int)(ClientArea.Height / 2f)); search = new Textbox(150); search.Position = new Vector2i(5, 5); search.OnSubmit += search_OnSubmit; search.ClearOnSubmit = true; search.ClearFocusOnSubmit = false; Components.Add(search); assigned = obj; BuildPropList(); Update(0); }
public TileSpawnPanel(Vector2i size, IResourceCache resourceCache, IPlacementManager placementManager) : base("Tile Spawn Panel", size, resourceCache) { _placementManager = placementManager; _tileList = new ScrollableContainer("tilespawnlist", new Vector2i(200, 400), _resourceCache) { Position = new Vector2i(5, 5) }; components.Add(_tileList); var searchLabel = new Label("Tile Search:", "CALIBRI", _resourceCache) { Position = new Vector2i(210, 0) }; components.Add(searchLabel); _tileSearchTextbox = new Textbox(125, _resourceCache) { Position = new Vector2i(210, 20) }; _tileSearchTextbox.OnSubmit += tileSearchTextbox_OnSubmit; components.Add(_tileSearchTextbox); _clearLabel = new Label("[Clear Filter]", "CALIBRI", _resourceCache) { DrawBackground = true, DrawBorder = true, Position = new Vector2i(210, 55) }; _clearLabel.Clicked += ClearLabelClicked; _clearLabel.BackgroundColor = Color4.Gray; components.Add(_clearLabel); BuildTileList(); Position = new Vector2i((int)(CluwneLib.CurrentRenderTarget.Size.X / 2f) - (int)(ClientArea.Width / 2f), (int)(CluwneLib.CurrentRenderTarget.Size.Y / 2f) - (int)(ClientArea.Height / 2f)); _placementManager.PlacementCanceled += PlacementManagerPlacementCanceled; }
//The game states have to feed the UI Input!!! This is to allow more flexibility. //Maybe this should be handled in the main methods for input. But then the state wouldnt have power over //this and things like the chat might get difficult. //Other Notes: When a component returns true to an input event the loop stops and so only that control recieves the input. // That way we don't have all Components reacting to one event. /// <summary> /// Handles MouseDown event. Returns true if a component accepted and handled the event. /// </summary> public virtual bool MouseDown(MouseButtonEventArgs e) { if (_console.Visible && _console.MouseDown(e)) { return(true); } if (moveMode) { foreach (var comp in _components) { if (comp.ClientArea.Translated(comp.Position).Contains(e.X, e.Y)) { movingComp = comp; dragOffset = new Vector2i(e.X, e.Y) - new Vector2i(comp.ClientArea.Left, comp.ClientArea.Top); break; } } return(true); } return(_components.Any(current => current.MouseDown(e))); }
public virtual bool Update(Vector2i mouseScreen, IMapManager currentMap) //Return valid position? { return(false); }
public EntitySpawnPanel(Vector2i size, IResourceCache resourceCache, IPlacementManager placementManager) : base("Entity Spawn Panel", size, resourceCache) { _placementManager = placementManager; _entityList = new ScrollableContainer("entspawnlist", new Vector2i(200, 400), _resourceCache) { Position = new Vector2i(5, 5) }; components.Add(_entityList); var searchLabel = new Label("Entity Search:", "CALIBRI", _resourceCache) { Position = new Vector2i(210, 0) }; components.Add(searchLabel); _entSearchTextbox = new Textbox(125, _resourceCache) { Position = new Vector2i(210, 20) }; _entSearchTextbox.OnSubmit += entSearchTextbox_OnSubmit; components.Add(_entSearchTextbox); _clearLabel = new Label("[Clear Filter]", "CALIBRI", _resourceCache) { DrawBackground = true, DrawBorder = true, Position = new Vector2i(210, 55) }; _overLabel = new Label("Override Placement:", "CALIBRI", _resourceCache) { Position = _clearLabel.Position + new Vector2i(0, _clearLabel.ClientArea.Height + 15) }; components.Add(_overLabel); var initOpts = new List <string>(); initOpts.AddRange(new[] { "PlaceFree", "PlaceNearby", "SnapgridCenter", "SnapgridBorder", "AlignSimilar", "AlignTileAny", "AlignTileEmpty", "AlignTileNonSolid", "AlignTileSolid", "AlignWall", }); _lstOverride = new Listbox(140, 125, resourceCache, initOpts); _lstOverride.SelectItem("PlaceFree"); _lstOverride.ItemSelected += _lstOverride_ItemSelected; _lstOverride.Position = _overLabel.Position + new Vector2i(0, _overLabel.ClientArea.Height); components.Add(_lstOverride); _clearLabel.Clicked += ClearLabelClicked; _clearLabel.BackgroundColor = Color4.Gray; components.Add(_clearLabel); _eraserButton = new ImageButton { ImageNormal = "erasericon", Position = new Vector2i(_clearLabel.Position.X + _clearLabel.ClientArea.Width + 5, _clearLabel.Position.Y) }; //eraserButton.Position = new Vector2i(clearLabel.ClientArea.Right + 5, clearLabel.ClientArea.Top); Clientarea not updating properly. FIX THIS _eraserButton.Clicked += EraserButtonClicked; components.Add(_eraserButton); BuildEntityList(); Position = new Vector2i((int)(CluwneLib.CurrentRenderTarget.Size.X / 2f) - (int)(ClientArea.Width / 2f), (int)(CluwneLib.CurrentRenderTarget.Size.Y / 2f) - (int)(ClientArea.Height / 2f)); _placementManager.PlacementCanceled += PlacementManagerPlacementCanceled; }
public TabContainer(string uniqueName, Vector2i size, IResourceCache resourceCache) : base(uniqueName, size, resourceCache) { DrawBorder = false; }