当前位置: 首页>>代码示例>>C#>>正文


C# ScrollPanelWidget.GetWidget方法代码示例

本文整理汇总了C#中OpenRA.Widgets.ScrollPanelWidget.GetWidget方法的典型用法代码示例。如果您正苦于以下问题:C# ScrollPanelWidget.GetWidget方法的具体用法?C# ScrollPanelWidget.GetWidget怎么用?C# ScrollPanelWidget.GetWidget使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在OpenRA.Widgets.ScrollPanelWidget的用法示例。


在下文中一共展示了ScrollPanelWidget.GetWidget方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: MapChooserLogic

        internal MapChooserLogic([ObjectCreator.Param] Widget widget,
			[ObjectCreator.Param] string initialMap,
			[ObjectCreator.Param] Action onExit,
			[ObjectCreator.Param] Action<Map> onSelect)
        {
            map = Game.modData.AvailableMaps[WidgetUtils.ChooseInitialMap(initialMap)];

            widget.GetWidget<ButtonWidget>("BUTTON_OK").OnClick = () => { Widget.CloseWindow(); onSelect(map); };
            widget.GetWidget<ButtonWidget>("BUTTON_CANCEL").OnClick = () => { Widget.CloseWindow(); onExit(); };

            scrollpanel = widget.GetWidget<ScrollPanelWidget>("MAP_LIST");
            itemTemplate = scrollpanel.GetWidget<ScrollItemWidget>("MAP_TEMPLATE");

            var gameModeDropdown = widget.GetWidget<DropDownButtonWidget>("GAMEMODE_FILTER");
            if (gameModeDropdown != null)
            {
                var selectableMaps = Game.modData.AvailableMaps.Where(m => m.Value.Selectable);
                var gameModes = selectableMaps
                    .GroupBy(m => m.Value.Type)
                    .Select(g => Pair.New(g.Key, g.Count())).ToList();

                // 'all game types' extra item
                gameModes.Insert( 0, Pair.New( null as string, selectableMaps.Count() ) );

                Func<Pair<string,int>, string> showItem =
                    x => "{0} ({1})".F( x.First ?? "All Game Types", x.Second );

                Func<Pair<string,int>, ScrollItemWidget, ScrollItemWidget> setupItem = (ii, template) =>
                {
                    var item = ScrollItemWidget.Setup(template,
                        () => gameMode == ii.First,
                        () => { gameMode = ii.First; EnumerateMaps(); });
                    item.GetWidget<LabelWidget>("LABEL").GetText = () => showItem(ii);
                    return item;
                };

                gameModeDropdown.OnClick = () =>
                    gameModeDropdown.ShowDropDown("LABEL_DROPDOWN_TEMPLATE", 210, gameModes, setupItem);

                gameModeDropdown.GetText = () => showItem(gameModes.First(m => m.First == gameMode));
            }

            EnumerateMaps();
        }
开发者ID:hoxworth,项目名称:OpenRA,代码行数:44,代码来源:MapChooserLogic.cs

示例2: LobbyLogic

        internal LobbyLogic(Widget widget, World world, OrderManager orderManager,
			Action onExit, Action onStart, bool addBots)
        {
            var lobby = widget;
            this.orderManager = orderManager;
            this.OnGameStart = () => { CloseWindow(); onStart(); };
            this.onExit = onExit;

            Game.LobbyInfoChanged += UpdateCurrentMap;
            Game.LobbyInfoChanged += UpdatePlayerList;
            Game.BeforeGameStart += OnGameStart;
            Game.AddChatLine += AddChatLine;
            Game.ConnectionStateChanged += ConnectionStateChanged;

            UpdateCurrentMap();
            PlayerPalettePreview = world.WorldActor.Trait<ColorPickerPaletteModifier>();
            PlayerPalettePreview.Ramp = Game.Settings.Player.ColorRamp;
            Players = lobby.GetWidget<ScrollPanelWidget>("PLAYERS");
            EditablePlayerTemplate = Players.GetWidget("TEMPLATE_EDITABLE_PLAYER");
            NonEditablePlayerTemplate = Players.GetWidget("TEMPLATE_NONEDITABLE_PLAYER");
            EmptySlotTemplate = Players.GetWidget("TEMPLATE_EMPTY");
            EditableSpectatorTemplate = Players.GetWidget("TEMPLATE_EDITABLE_SPECTATOR");
            NonEditableSpectatorTemplate = Players.GetWidget("TEMPLATE_NONEDITABLE_SPECTATOR");
            NewSpectatorTemplate = Players.GetWidget("TEMPLATE_NEW_SPECTATOR");

            var mapPreview = lobby.GetWidget<MapPreviewWidget>("MAP_PREVIEW");
            mapPreview.IsVisible = () => Map != null;
            mapPreview.Map = () => Map;
            mapPreview.OnMouseDown = mi => LobbyUtils.SelectSpawnPoint( orderManager, mapPreview, Map, mi );
            mapPreview.SpawnColors = () => LobbyUtils.GetSpawnColors( orderManager, Map );

            var mapTitle = lobby.GetWidget<LabelWidget>("MAP_TITLE");
            if (mapTitle != null)
            {
                mapTitle.IsVisible = () => Map != null;
                mapTitle.GetText = () => Map.Title;
            }

            CountryNames = Rules.Info["world"].Traits.WithInterface<CountryInfo>()
                .Where(c => c.Selectable)
                .ToDictionary(a => a.Race, a => a.Name);
            CountryNames.Add("random", "Any");

            var mapButton = lobby.GetWidget<ButtonWidget>("CHANGEMAP_BUTTON");
            mapButton.OnClick = () =>
            {
                var onSelect = new Action<Map>(m =>
                {
                    orderManager.IssueOrder(Order.Command("map " + m.Uid));
                    Game.Settings.Server.Map = m.Uid;
                    Game.Settings.Save();
                });

                Ui.OpenWindow("MAPCHOOSER_PANEL", new WidgetArgs()
                {
                    { "initialMap", Map.Uid },
                    { "onExit", () => {} },
                    { "onSelect", onSelect }
                });
            };
            mapButton.IsVisible = () => mapButton.Visible && Game.IsHost;

            var disconnectButton = lobby.GetWidget<ButtonWidget>("DISCONNECT_BUTTON");
            disconnectButton.OnClick = () => { CloseWindow(); onExit(); };

            var gameStarting = false;

            var allowCheats = lobby.GetWidget<CheckboxWidget>("ALLOWCHEATS_CHECKBOX");
            allowCheats.IsChecked = () => orderManager.LobbyInfo.GlobalSettings.AllowCheats;
            allowCheats.IsDisabled = () => !Game.IsHost || gameStarting || orderManager.LocalClient == null
                || orderManager.LocalClient.IsReady;
            allowCheats.OnClick = () =>	orderManager.IssueOrder(Order.Command(
                        "allowcheats {0}".F(!orderManager.LobbyInfo.GlobalSettings.AllowCheats)));

            var startGameButton = lobby.GetWidget<ButtonWidget>("START_GAME_BUTTON");
            startGameButton.IsVisible = () => Game.IsHost;
            startGameButton.IsDisabled = () => gameStarting;
            startGameButton.OnClick = () =>
            {
                gameStarting = true;
                orderManager.IssueOrder(Order.Command("startgame"));
            };

            bool teamChat = false;
            var chatLabel = lobby.GetWidget<LabelWidget>("LABEL_CHATTYPE");
            var chatTextField = lobby.GetWidget<TextFieldWidget>("CHAT_TEXTFIELD");

            chatTextField.OnEnterKey = () =>
            {
                if (chatTextField.Text.Length == 0)
                    return true;

                orderManager.IssueOrder(Order.Chat(teamChat, chatTextField.Text));
                chatTextField.Text = "";
                return true;
            };

            chatTextField.OnTabKey = () =>
            {
                teamChat ^= true;
//.........这里部分代码省略.........
开发者ID:earthpig,项目名称:OpenRA-ep,代码行数:101,代码来源:LobbyLogic.cs

示例3: LobbyLogic

        internal LobbyLogic([ObjectCreator.Param( "widget" )] Widget lobby,
		                    [ObjectCreator.Param] OrderManager orderManager,
		                    [ObjectCreator.Param] WorldRenderer worldRenderer)
        {
            this.orderManager = orderManager;
            this.worldRenderer = worldRenderer;
            this.lobby = lobby;
            Game.BeforeGameStart += CloseWindow;
            Game.LobbyInfoChanged += UpdateCurrentMap;
            Game.LobbyInfoChanged += UpdatePlayerList;
            UpdateCurrentMap();

            CurrentColorPreview = Game.Settings.Player.ColorRamp;

            Players = lobby.GetWidget<ScrollPanelWidget>("PLAYERS");
            LocalPlayerTemplate = Players.GetWidget("TEMPLATE_LOCAL");
            RemotePlayerTemplate = Players.GetWidget("TEMPLATE_REMOTE");
            EmptySlotTemplate = Players.GetWidget("TEMPLATE_EMPTY");
            EmptySlotTemplateHost = Players.GetWidget("TEMPLATE_EMPTY_HOST");
            LocalSpectatorTemplate = Players.GetWidget("TEMPLATE_LOCAL_SPECTATOR");
            RemoteSpectatorTemplate = Players.GetWidget("TEMPLATE_REMOTE_SPECTATOR");
            NewSpectatorTemplate = Players.GetWidget("TEMPLATE_NEW_SPECTATOR");

            var mapPreview = lobby.GetWidget<MapPreviewWidget>("LOBBY_MAP_PREVIEW");
            mapPreview.Map = () => Map;
            mapPreview.OnMouseDown = mi =>
            {
                var map = mapPreview.Map();
                if (map == null || mi.Button != MouseButton.Left
                    || orderManager.LocalClient.State == Session.ClientState.Ready)
                    return;

                var p = map.SpawnPoints
                    .Select((sp, i) => Pair.New(mapPreview.ConvertToPreview(map, sp), i))
                    .Where(a => (a.First - mi.Location).LengthSquared < 64)
                    .Select(a => a.Second + 1)
                    .FirstOrDefault();

                var owned = orderManager.LobbyInfo.Clients.Any(c => c.SpawnPoint == p);
                if (p == 0 || !owned)
                    orderManager.IssueOrder(Order.Command("spawn {0} {1}".F(orderManager.LocalClient.Index, p)));
            };

            mapPreview.SpawnColors = () =>
            {
                var spawns = Map.SpawnPoints;
                var sc = new Dictionary<int2, Color>();

                for (int i = 1; i <= spawns.Count(); i++)
                {
                    var client = orderManager.LobbyInfo.Clients.FirstOrDefault(c => c.SpawnPoint == i);
                    if (client == null)
                        continue;
                    sc.Add(spawns.ElementAt(i - 1), client.ColorRamp.GetColor(0));
                }
                return sc;
            };

            CountryNames = Rules.Info["world"].Traits.WithInterface<OpenRA.Traits.CountryInfo>()
                .ToDictionary(a => a.Race, a => a.Name);
            CountryNames.Add("random", "Random");

            var mapButton = lobby.GetWidget<ButtonWidget>("CHANGEMAP_BUTTON");
            mapButton.OnClick = () =>
            {
                Widget.OpenWindow("MAP_CHOOSER", new WidgetArgs()
                {
                    { "orderManager", orderManager },
                    { "mapName", MapUid }
                });
            };

            mapButton.IsVisible = () => mapButton.Visible && Game.IsHost;

            var disconnectButton = lobby.GetWidget<ButtonWidget>("DISCONNECT_BUTTON");
            disconnectButton.OnClick = () =>
            {
                CloseWindow();
                Game.Disconnect();
                Game.LoadShellMap();
                Widget.OpenWindow("MAINMENU_BG");
            };

            var allowCheats = lobby.GetWidget<CheckboxWidget>("ALLOWCHEATS_CHECKBOX");
            allowCheats.IsChecked = () => orderManager.LobbyInfo.GlobalSettings.AllowCheats;
            allowCheats.OnClick = () =>
            {
                if (Game.IsHost)
                    orderManager.IssueOrder(Order.Command(
                        "allowcheats {0}".F(!orderManager.LobbyInfo.GlobalSettings.AllowCheats)));
            };

            var startGameButton = lobby.GetWidget<ButtonWidget>("START_GAME_BUTTON");
            startGameButton.OnClick = () =>
            {
                mapButton.Visible = false;
                disconnectButton.Visible = false;
                orderManager.IssueOrder(Order.Command("startgame"));
            };

//.........这里部分代码省略.........
开发者ID:jeff-1amstudios,项目名称:OpenRA,代码行数:101,代码来源:LobbyLogic.cs

示例4: CncLobbyLogic

        internal CncLobbyLogic([ObjectCreator.Param( "widget" )] Widget lobby,
		                       [ObjectCreator.Param] World world, // Shellmap world
		                       [ObjectCreator.Param] OrderManager orderManager,
		                       [ObjectCreator.Param] Action onExit,
		                       [ObjectCreator.Param] Action onStart,
		                       [ObjectCreator.Param] bool addBots)
        {
            this.orderManager = orderManager;
            this.OnGameStart = () => { CloseWindow(); onStart(); };
            this.onExit = onExit;

            Game.LobbyInfoChanged += UpdateCurrentMap;
            Game.LobbyInfoChanged += UpdatePlayerList;
            Game.BeforeGameStart += OnGameStart;
            Game.AddChatLine += AddChatLine;
            Game.ConnectionStateChanged += ConnectionStateChanged;

            UpdateCurrentMap();
            PlayerPalettePreview = world.WorldActor.Trait<CncColorPickerPaletteModifier>();
            PlayerPalettePreview.Ramp = Game.Settings.Player.ColorRamp;
            Players = lobby.GetWidget<ScrollPanelWidget>("PLAYERS");
            EditablePlayerTemplate = Players.GetWidget("TEMPLATE_EDITABLE_PLAYER");
            NonEditablePlayerTemplate = Players.GetWidget("TEMPLATE_NONEDITABLE_PLAYER");
            EmptySlotTemplate = Players.GetWidget("TEMPLATE_EMPTY");
            EditableSpectatorTemplate = Players.GetWidget("TEMPLATE_EDITABLE_SPECTATOR");
            NonEditableSpectatorTemplate = Players.GetWidget("TEMPLATE_NONEDITABLE_SPECTATOR");
            NewSpectatorTemplate = Players.GetWidget("TEMPLATE_NEW_SPECTATOR");

            var mapPreview = lobby.GetWidget<MapPreviewWidget>("MAP_PREVIEW");
            mapPreview.IsVisible = () => Map != null;
            mapPreview.Map = () => Map;
            mapPreview.OnMouseDown = mi =>
            {
                var map = mapPreview.Map();
                if (map == null || mi.Button != MouseButton.Left
                    || orderManager.LocalClient.State == Session.ClientState.Ready)
                    return;

                var p = map.SpawnPoints
                    .Select((sp, i) => Pair.New(mapPreview.ConvertToPreview(map, sp), i))
                    .Where(a => (a.First - mi.Location).LengthSquared < 64)
                    .Select(a => a.Second + 1)
                    .FirstOrDefault();

                var owned = orderManager.LobbyInfo.Clients.Any(c => c.SpawnPoint == p);
                if (p == 0 || !owned)
                    orderManager.IssueOrder(Order.Command("spawn {0} {1}".F(orderManager.LocalClient.Index, p)));
            };

            var mapTitle = lobby.GetWidget<LabelWidget>("MAP_TITLE");
            mapTitle.IsVisible = () => Map != null;
            mapTitle.GetText = () => Map.Title;

            mapPreview.SpawnColors = () =>
            {
                var spawns = Map.SpawnPoints;
                var sc = new Dictionary<int2, Color>();

                for (int i = 1; i <= spawns.Count(); i++)
                {
                    var client = orderManager.LobbyInfo.Clients.FirstOrDefault(c => c.SpawnPoint == i);
                    if (client == null)
                        continue;
                    sc.Add(spawns.ElementAt(i - 1), client.ColorRamp.GetColor(0));
                }
                return sc;
            };

            CountryNames = Rules.Info["world"].Traits.WithInterface<CountryInfo>()
                .ToDictionary(a => a.Race, a => a.Name);
            CountryNames.Add("random", "Any");

            var mapButton = lobby.GetWidget<ButtonWidget>("CHANGEMAP_BUTTON");
            mapButton.OnClick = () =>
            {
                var onSelect = new Action<Map>(m =>
                {
                    orderManager.IssueOrder(Order.Command("map " + m.Uid));
                    Game.Settings.Server.Map = m.Uid;
                    Game.Settings.Save();
                });

                Widget.OpenWindow("MAPCHOOSER_PANEL", new WidgetArgs()
                {
                    { "initialMap", Map.Uid },
                    { "onExit", () => {} },
                    { "onSelect", onSelect }
                });
            };
            mapButton.IsVisible = () => mapButton.Visible && Game.IsHost;

            var disconnectButton = lobby.GetWidget<ButtonWidget>("DISCONNECT_BUTTON");
            disconnectButton.OnClick = () => { CloseWindow(); onExit(); };

            var gameStarting = false;

            var allowCheats = lobby.GetWidget<CheckboxWidget>("ALLOWCHEATS_CHECKBOX");
            allowCheats.IsChecked = () => orderManager.LobbyInfo.GlobalSettings.AllowCheats;
            allowCheats.IsDisabled = () => !Game.IsHost || gameStarting || orderManager.LocalClient == null
                || orderManager.LocalClient.State == Session.ClientState.Ready;
//.........这里部分代码省略.........
开发者ID:hoxworth,项目名称:OpenRA,代码行数:101,代码来源:CncLobbyLogic.cs


注:本文中的OpenRA.Widgets.ScrollPanelWidget.GetWidget方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。