void SetupPlayerColor(Player player, ScrollItemWidget template, ColorBlockWidget colorBlockWidget, GradientColorBlockWidget gradientColorBlockWidget) { var color = Color.FromArgb(128, player.Color.R, player.Color.G, player.Color.B); var hoverColor = Color.FromArgb(192, player.Color.R, player.Color.G, player.Color.B); var isMouseOver = new CachedTransform <Widget, bool>(w => w == template || template.Children.Contains(w)); colorBlockWidget.GetColor = () => isMouseOver.Update(Ui.MouseOverWidget) ? hoverColor : color; gradientColorBlockWidget.GetTopLeftColor = () => isMouseOver.Update(Ui.MouseOverWidget) ? hoverColor : color; gradientColorBlockWidget.GetBottomLeftColor = () => isMouseOver.Update(Ui.MouseOverWidget) ? hoverColor : color; gradientColorBlockWidget.GetTopRightColor = () => isMouseOver.Update(Ui.MouseOverWidget) ? hoverColor : Color.Transparent; gradientColorBlockWidget.GetBottomRightColor = () => isMouseOver.Update(Ui.MouseOverWidget) ? hoverColor : Color.Transparent; }
public void ColorActivated(object o, EventArgs ev) { if (!(o is ImageMenuItem)) { return; } ImageMenuItem item = o as ImageMenuItem; if (!(item.Image is ColorBlockWidget)) { return; } ColorBlockWidget block = item.Image as ColorBlockWidget; ColorSelectedEventArgs args = new ColorSelectedEventArgs( block.Color, item); OnColorSelected(args); }
protected ColorBlockWidget(ColorBlockWidget widget) : base(widget) { GetColor = widget.GetColor; }
public VxlBrowserLogic(Widget widget, Action onExit, ModData modData, World world, Dictionary <string, MiniYaml> logicArgs) { this.world = world; this.modData = modData; panel = widget; var voxelWidget = panel.GetOrNull <VoxelWidget>("VOXEL"); if (voxelWidget != null) { voxelWidget.GetVoxel = () => currentVoxel != null ? currentVoxel : null; currentPalette = voxelWidget.Palette; voxelWidget.GetPalette = () => currentPalette; voxelWidget.GetPlayerPalette = () => currentPlayerPalette; voxelWidget.GetNormalsPalette = () => currentNormalsPalette; voxelWidget.GetShadowPalette = () => currentShadowPalette; voxelWidget.GetLightAmbientColor = () => lightAmbientColor; voxelWidget.GetLightDiffuseColor = () => lightDiffuseColor; voxelWidget.GetLightPitch = () => lightPitch; voxelWidget.GetLightYaw = () => lightYaw; voxelWidget.IsVisible = () => !isVideoLoaded && !isLoadError; } var playerWidget = panel.GetOrNull <VqaPlayerWidget>("PLAYER"); if (playerWidget != null) { playerWidget.IsVisible = () => isVideoLoaded && !isLoadError; } var paletteDropDown = panel.GetOrNull <DropDownButtonWidget>("PALETTE_SELECTOR"); if (paletteDropDown != null) { paletteDropDown.OnMouseDown = _ => ShowPaletteDropdown(paletteDropDown, world); paletteDropDown.GetText = () => currentPalette; } var lightAmbientColorPreview = panel.GetOrNull <ColorPreviewManagerWidget>("LIGHT_AMBIENT_COLOR_MANAGER"); if (lightAmbientColorPreview != null) { lightAmbientColorPreview.Color = Color.FromArgb( Convert.ToInt32(lightAmbientColor[0] * 255), Convert.ToInt32(lightAmbientColor[1] * 255), Convert.ToInt32(lightAmbientColor[2] * 255) ); } var lightDiffuseColorPreview = panel.GetOrNull <ColorPreviewManagerWidget>("LIGHT_DIFFUSE_COLOR_MANAGER"); if (lightDiffuseColorPreview != null) { lightDiffuseColorPreview.Color = Color.FromArgb( Convert.ToInt32(lightDiffuseColor[0] * 255), Convert.ToInt32(lightDiffuseColor[1] * 255), Convert.ToInt32(lightDiffuseColor[2] * 255) ); } var playerPaletteDropDown = panel.GetOrNull <DropDownButtonWidget>("PLAYER_PALETTE_SELECTOR"); if (playerPaletteDropDown != null) { playerPaletteDropDown.OnMouseDown = _ => ShowPlayerPaletteDropdown(playerPaletteDropDown, world); playerPaletteDropDown.GetText = () => currentPlayerPalette; } var normalsPlaletteDropDown = panel.GetOrNull <DropDownButtonWidget>("NORMALS_PALETTE_SELECTOR"); if (normalsPlaletteDropDown != null) { normalsPlaletteDropDown.OnMouseDown = _ => ShowNormalsPaletteDropdown(normalsPlaletteDropDown, world); normalsPlaletteDropDown.GetText = () => currentNormalsPalette; } var shadowPlaletteDropDown = panel.GetOrNull <DropDownButtonWidget>("SHADOW_PALETTE_SELECTOR"); if (shadowPlaletteDropDown != null) { shadowPlaletteDropDown.OnMouseDown = _ => ShowShadowPaletteDropdown(normalsPlaletteDropDown, world); shadowPlaletteDropDown.GetText = () => currentShadowPalette; } scaleInput = panel.GetOrNull <TextFieldWidget>("SCALE_TEXT"); scaleInput.OnTextEdited = () => OnScaleEdit(); scaleInput.OnEscKey = scaleInput.YieldKeyboardFocus; lightPitchInput = panel.GetOrNull <TextFieldWidget>("LIGHTPITCH_TEXT"); lightPitchInput.OnTextEdited = () => OnLightPitchEdit(); lightPitchInput.OnEscKey = lightPitchInput.YieldKeyboardFocus; lightYawInput = panel.GetOrNull <TextFieldWidget>("LIGHTYAW_TEXT"); lightYawInput.OnTextEdited = () => OnLightYawEdit(); lightYawInput.OnEscKey = lightYawInput.YieldKeyboardFocus; var lightAmbientColorDropDown = panel.GetOrNull <DropDownButtonWidget>("LIGHT_AMBIENT_COLOR"); if (lightAmbientColorDropDown != null) { lightAmbientColorDropDown.OnMouseDown = _ => ShowLightAmbientColorDropDown(lightAmbientColorDropDown, lightAmbientColorPreview, world); lightAmbientColorBlock = panel.Get <ColorBlockWidget>("AMBIENT_COLORBLOCK"); lightAmbientColorBlock.GetColor = () => OpenRA.Primitives.Color.FromArgb( Convert.ToInt32(lightAmbientColor[0] * 255), Convert.ToInt32(lightAmbientColor[1] * 255), Convert.ToInt32(lightAmbientColor[2] * 255) ); } lightAmbientColorValue = panel.GetOrNull <LabelWidget>("LIGHTAMBIENTCOLOR_VALUE"); lightDiffuseColorValue = panel.GetOrNull <LabelWidget>("LIGHTDIFFUSECOLOR_VALUE"); var lightDiffuseColorDropDown = panel.GetOrNull <DropDownButtonWidget>("LIGHT_DIFFUSE_COLOR"); if (lightDiffuseColorDropDown != null) { lightDiffuseColorDropDown.OnMouseDown = _ => ShowLightDiffuseColorDropDown(lightDiffuseColorDropDown, lightDiffuseColorPreview, world); lightDiffuseColorBlock = panel.Get <ColorBlockWidget>("DIFFUSE_COLORBLOCK"); lightDiffuseColorBlock.GetColor = () => Color.FromArgb( Convert.ToInt32(lightDiffuseColor[0] * 255), Convert.ToInt32(lightDiffuseColor[1] * 255), Convert.ToInt32(lightDiffuseColor[2] * 255) ); } unitnameInput = panel.Get <TextFieldWidget>("FILENAME_INPUT"); unitnameInput.OnTextEdited = () => ApplyFilter(); unitnameInput.OnEscKey = unitnameInput.YieldKeyboardFocus; if (logicArgs.ContainsKey("SupportedFormats")) { allowedExtensions = FieldLoader.GetValue <string[]>("SupportedFormats", logicArgs["SupportedFormats"].Value); } else { allowedExtensions = new string[0]; } acceptablePackages = modData.ModFiles.MountedPackages.Where(p => p.Contents.Any(c => allowedExtensions.Contains(Path.GetExtension(c).ToLowerInvariant()))); unitList = panel.Get <ScrollPanelWidget>("ASSET_LIST"); template = panel.Get <ScrollItemWidget>("ASSET_TEMPLATE"); PopulateAssetList(); var closeButton = panel.GetOrNull <ButtonWidget>("CLOSE_BUTTON"); if (closeButton != null) { closeButton.OnClick = () => { if (isVideoLoaded) { player.Stop(); } Ui.CloseWindow(); onExit(); } } ; }
public void SetMainColor(Color color, string name) { IconWidget = new ColorBlockWidget(color); Label = name; }
public D2IngameActorLogic(Widget widget, World world, WorldRenderer worldRenderer) { this.world = world; this.worldRenderer = worldRenderer; var textColor = Color.FromArgb(71, 71, 55); panel = widget.GetOrNull <D2PanelWidget>("PANEL"); label = widget.GetOrNull <LabelWidget>("NAME"); if (label != null) { label.Align = TextAlign.Center; label.TextColor = textColor; label.Font = "MediumBold"; } preview = widget.GetOrNull <D2SpriteWidget>("ICON"); health = widget.GetOrNull <D2ProgressBarWidget>("HEALTH"); dmgLabel = widget.GetOrNull <LabelWidget>("DMG"); if (dmgLabel != null) { dmgLabel.Text = "DMG"; dmgLabel.Align = TextAlign.Center; dmgLabel.TextColor = textColor; dmgLabel.Font = "MediumBold"; } title = widget.GetOrNull <LabelWidget>("TITLE"); if (title != null) { title.Align = TextAlign.Center; title.TextColor = textColor; title.Font = "MediumBold"; } separator = widget.GetOrNull <D2LineWidget>("SEPARATOR"); line1a = widget.GetOrNull <LabelWidget>("LINE1A"); if (line1a != null) { line1a.TextColor = textColor; line1a.Font = "MediumBold"; } line1b = widget.GetOrNull <LabelWidget>("LINE1B"); if (line1b != null) { line1b.Align = TextAlign.Right; line1b.TextColor = textColor; line1b.Font = "MediumBold"; } line2a = widget.GetOrNull <LabelWidget>("LINE2A"); if (line2a != null) { line2a.TextColor = textColor; line2a.Font = "MediumBold"; } line2b = widget.GetOrNull <LabelWidget>("LINE2B"); if (line2b != null) { line2b.Align = TextAlign.Right; line2b.TextColor = textColor; line2b.Font = "MediumBold"; } buttonsBackground = widget.GetOrNull <ColorBlockWidget>("BUTTONS_BACKGROUND"); if (buttonsBackground != null) { buttonsBackground.Visible = false; } attackButton = widget.GetOrNull <D2ButtonWidget>("ATTACK"); if (attackButton != null) { attackButton.Visible = false; attackButton.IsHighlighted = () => IsForceModifiersActive(Modifiers.Ctrl) && !(world.OrderGenerator is AttackMoveOrderGenerator); Action <bool> toggle = allowCancel => { if (attackButton.IsHighlighted()) { world.CancelInputMode(); } else { world.OrderGenerator = new ForceModifiersOrderGenerator(Modifiers.Ctrl, true); } }; attackButton.OnClick = () => toggle(true); attackButton.OnKeyPress = _ => toggle(false); } moveButton = widget.GetOrNull <D2ButtonWidget>("MOVE"); if (moveButton != null) { moveButton.Visible = false; moveButton.IsHighlighted = () => !moveButton.IsDisabled() && IsForceModifiersActive(Modifiers.Alt); Action <bool> toggle = allowCancel => { if (moveButton.IsHighlighted()) { world.CancelInputMode(); } else { world.OrderGenerator = new ForceModifiersOrderGenerator(Modifiers.Alt, true); } }; moveButton.OnClick = () => toggle(true); moveButton.OnKeyPress = _ => toggle(false); } retreatButton = widget.GetOrNull <D2ButtonWidget>("RETREAT"); if (retreatButton != null) { retreatButton.Visible = false; retreatButton.OnClick = () => { PerformKeyboardOrderOnSelection(a => new Order("Stop", a, false)); }; retreatButton.OnKeyPress = ki => { retreatButton.OnClick(); }; } guardButton = widget.GetOrNull <D2ButtonWidget>("GUARD"); if (guardButton != null) { guardButton.Visible = false; guardButton.IsHighlighted = () => world.OrderGenerator is GuardOrderGenerator; Action <bool> toggle = allowCancel => { if (guardButton.IsHighlighted()) { if (allowCancel) { world.CancelInputMode(); } } else { world.OrderGenerator = new GuardOrderGenerator(selectedActors, "Guard", "guard", Game.Settings.Game.MouseButtonPreference.Action); } }; guardButton.OnClick = () => toggle(true); guardButton.OnKeyPress = _ => toggle(false); } }