예제 #1
0
        public void FromItem(AGSSerializationContext context, IObject obj)
        {
            ISlider item = (ISlider)obj;

            Object = new ContractObject();
            Object.FromItem(context, item);

            Graphics        = new ContractObject();
            Graphics.Parent = this;
            Graphics.FromItem(context, item.Graphics);

            HandleGraphics        = new ContractObject();
            HandleGraphics.Parent = this;
            HandleGraphics.FromItem(context, item.HandleGraphics);

            Label = new ContractLabel();
            if (item.Label != null)
            {
                Label.FromItem(context, item.Label);
            }

            MinValue             = item.MinValue;
            MaxValue             = item.MaxValue;
            Value                = item.Value;
            Direction            = item.Direction;
            AllowKeyboardControl = item.AllowKeyboardControl;
        }
예제 #2
0
 Task ValidateNativeThumbColor(ISlider slider, Color color)
 {
     return(InvokeOnMainThreadAsync(() =>
     {
         return GetNativeSlider(CreateHandler(slider)).AssertContainsColor(color);
     }));
 }
예제 #3
0
 public static void UpdateMaximumTrackColor(this UISlider uiSlider, ISlider slider)
 {
     if (slider.MaximumTrackColor != null)
     {
         uiSlider.MaximumTrackTintColor = slider.MaximumTrackColor.ToPlatform();
     }
 }
예제 #4
0
 public static void UpdateThumbColor(this UISlider uiSlider, ISlider slider)
 {
     if (slider.ThumbColor != null)
     {
         uiSlider.ThumbTintColor = slider.ThumbColor.ToPlatform();
     }
 }
예제 #5
0
        static void UpdateIncrement(this Slider nativeSlider, ISlider slider)
        {
            double stepping = Math.Min((slider.Maximum - slider.Minimum) / 1000, 1);

            nativeSlider.StepFrequency = stepping;
            nativeSlider.SmallChange   = stepping;
        }
예제 #6
0
 public static void UpdateValue(this Slider nativeSlider, ISlider slider)
 {
     if (nativeSlider.Value != slider.Value)
     {
         nativeSlider.Value = slider.Value;
     }
 }
예제 #7
0
 public static void UpdateMinimum(this SeekBar seekBar, ISlider slider)
 {
     if (NativeVersion.Supports(NativeApis.SeekBarSetMin))
     {
         seekBar.Min = (int)slider.Minimum;
     }
 }
예제 #8
0
 public static void UpdateValue(this UISlider uiSlider, ISlider slider)
 {
     if ((float)slider.Value != uiSlider.Value)
     {
         uiSlider.Value = (float)slider.Value;
     }
 }
예제 #9
0
 public void Perform(float start, float end, float thickness, LerpHelper.Delegate lerp, ISlider slider)
 {
     Start = start;
     End   = end;
     Thickness.Set(thickness, 0, lerp, 1);
     Slider = slider;
 }
예제 #10
0
 private void OnEnable()
 {
     if (_hSliderGo != null)
     {
         _hSlider       = _hSliderGo.GetComponent <ISlider>();
         _hSlider.Value = H;
         _hSlider.ValueChanged.AddListener(SetH);
     }
     if (_sSliderGo != null)
     {
         _sSlider       = _sSliderGo.GetComponent <ISlider>();
         _sSlider.Value = S;
         _sSlider.ValueChanged.AddListener(SetS);
     }
     if (_vSliderGo != null)
     {
         _vSlider       = _vSliderGo.GetComponent <ISlider>();
         _vSlider.Value = V;
         _vSlider.ValueChanged.AddListener(SetV);
     }
     if (_colorCodeFierd != null)
     {
         _colorCodeFierd.onValidateInput += OnValidateInput;
         _colorCodeFierd.onEndEdit.AddListener(OnColorCodeEndEdit);
     }
 }
예제 #11
0
        public async Task LoadAsync(IGame game)
        {
            _game = game;
            IGameFactory factory = game.Factory;

            _panel = await factory.UI.GetPanelAsync(_panelId, "../../Assets/Gui/DialogBox/options.bmp", 160f, 100f);

            _panel.Anchor  = new AGS.API.PointF(0.5f, 0.5f);
            _panel.Visible = false;
            _panel.AddComponent <IModalWindowComponent>();

            AGSLoadImageConfig loadConfig = new AGSLoadImageConfig(new AGS.API.Point(0, 0));

            ISlider volumeSlider = await factory.UI.GetSliderAsync("Volume Slider", _sliderFolder + "slider.bmp", _sliderFolder + "handle.bmp", 0.5f, 0f, 1f,
                                                                   loadConfig : loadConfig);

            volumeSlider.X = 120f;
            volumeSlider.Y = 10f;
            volumeSlider.HandleGraphics.Anchor = new AGS.API.PointF(0.5f, 0.5f);
            volumeSlider.TreeNode.SetParent(_panel.TreeNode);
            volumeSlider.OnValueChanged(onVolumeChanged, _game);

            ILabel volumeLabel = factory.UI.GetLabel("Volume Label", "Volume", 50f, 30f, 120f, 85f, _textConfig);

            volumeLabel.Anchor = new AGS.API.PointF(0.5f, 0f);
            volumeLabel.TreeNode.SetParent(_panel.TreeNode);

            ISlider speedSlider = await factory.UI.GetSliderAsync("Speed Slider", _sliderFolder + "slider.bmp", _sliderFolder + "handle.bmp", 100f, 1f, 200f,
                                                                  loadConfig : loadConfig);

            speedSlider.X = 180f;
            speedSlider.Y = 10f;
            speedSlider.HandleGraphics.Anchor = new AGS.API.PointF(0.5f, 0.5f);
            speedSlider.TreeNode.SetParent(_panel.TreeNode);
            speedSlider.OnValueChanged(onSpeedChanged, _game);

            ILabel speedLabel = factory.UI.GetLabel("Speed Label", "Speed", 50f, 30f, 180f, 85f, _textConfig);

            speedLabel.Anchor = new AGS.API.PointF(0.5f, 0f);
            speedLabel.TreeNode.SetParent(_panel.TreeNode);

            _game.Events.OnSavedGameLoad.Subscribe((sender, args) => findPanel());

#if __IOS__
            const int top  = 85;
            const int step = 25;
#else
            const int top  = 95;
            const int step = 20;
#endif
            await loadButton("Resume", top, Hide);
            await loadButton("Restart", top - step, restart);
            await loadButton("Load", top - step * 2, load);
            await loadButton("Save", top - step * 3, save);

#if !__IOS__ //IOS does not allow for a quit button in its guidelines
            await loadButton("Quit", top - step * 4, quit);
#endif
        }
예제 #12
0
        public async Task LoadAsync(IGame game)
        {
            _game = game;
            IGameFactory factory = game.Factory;

            _panel = await factory.UI.GetPanelAsync(_panelId, "Gui/DialogBox/options.bmp", 160f, 100f);

            _panel.Pivot   = (0.5f, 0.5f);
            _panel.Visible = false;
            _panel.AddComponent <IModalWindowComponent>();

            AGSLoadImageConfig loadConfig = new AGSLoadImageConfig(new AGS.API.Point(0, 0));

            ISlider volumeSlider = await factory.UI.GetSliderAsync("Volume Slider", _sliderFolder + "slider.bmp",
                                                                   _sliderFolder + "handle.bmp", 0.5f, 0f, 1f, _panel, loadConfig : loadConfig);

            volumeSlider.Position             = (120f, 10f);
            volumeSlider.HandleGraphics.Pivot = (0.5f, 0.5f);
            volumeSlider.OnValueChanged(onVolumeChanged, _game);

            ILabel volumeLabel = factory.UI.GetLabel("Volume Label", "Volume", 50f, 30f, 120f, 85f, _panel, _textConfig);

            volumeLabel.Pivot = (0.5f, 0f);

            ISlider speedSlider = await factory.UI.GetSliderAsync("Speed Slider", _sliderFolder + "slider.bmp",
                                                                  _sliderFolder + "handle.bmp", 100f, 1f, 200f, _panel, loadConfig : loadConfig);

            speedSlider.Position             = (180f, 10f);
            speedSlider.HandleGraphics.Pivot = (0.5f, 0.5f);
            speedSlider.OnValueChanged(onSpeedChanged, _game);

            ILabel speedLabel = factory.UI.GetLabel("Speed Label", "Speed", 50f, 30f, 180f, 85f, _panel, _textConfig);

            speedLabel.Pivot = (0.5f, 0f);

            _game.Events.OnSavedGameLoad.Subscribe(findPanel);

#if __IOS__
            const int top  = 85;
            const int step = -25;
#else
            const int top  = 95;
            const int step = -20;
#endif
            _buttonsPanel = factory.UI.GetPanel(_buttonsPanelId, (IImage)null, 15f, top, _panel);
            _buttonsPanel.AddComponent <IBoundingBoxWithChildrenComponent>();
            var layout = _buttonsPanel.AddComponent <IStackLayoutComponent>();
            layout.RelativeSpacing = 0f;
            layout.AbsoluteSpacing = step;
            layout.StartLayout();
            await loadButton("Resume", hide);
            await loadButton("Restart", restart);
            await loadButton("Load", load);
            await loadButton("Save", save);

#if !__IOS__ //IOS does not allow for a quit button in its guidelines
            await loadButton("Quit", quit);
#endif
        }
 public void Wave(float start, float end, LerpHelper.Delegate lerp, ISlider slider)
 {
     VisualAmplitude = () =>
     {
         float slide = MathHelper.Clamp(slider.Slide, 0, 1);
         return((float)lerp(start, end, slide));
     };
 }
예제 #14
0
 public static void UpdateMaximumTrackColor(this SeekBar seekBar, ISlider slider)
 {
     if (slider.MaximumTrackColor != null)
     {
         seekBar.ProgressBackgroundTintList = ColorStateList.ValueOf(slider.MaximumTrackColor.ToPlatform());
         seekBar.ProgressBackgroundTintMode = PorterDuff.Mode.SrcIn;
     }
 }
 public void ReelIn(Vector2 position, LerpHelper.Delegate lerp, ISlider slider)
 {
     VisualTip = () =>
     {
         float slide = MathHelper.Clamp(slider.Slide, 0, 1);
         return(Vector2.Lerp(position, GetBase(), (float)lerp(0, 1, slide)));
     };
 }
예제 #16
0
        public static void UpdateValue(this SeekBar seekBar, ISlider slider)
        {
            var min   = slider.Minimum;
            var max   = slider.Maximum;
            var value = slider.Value;

            seekBar.Progress = (int)((value - min) / (max - min) * PlatformMaxValue);
        }
        public void OrientVisual(float newAngle, LerpHelper.Delegate lerp, ISlider slider)
        {
            var oldAngle = VisualAngle();

            VisualAngle = () =>
            {
                float slide = MathHelper.Clamp(slider.Slide, 0, 1);
                return((float)lerp(oldAngle, newAngle, slide));
            };
        }
예제 #18
0
        public void MoveVisual(Vector2 newPosition, LerpHelper.Delegate lerp, ISlider slider)
        {
            var oldPosition = VisualPosition();

            VisualPosition = () =>
            {
                float slide = MathHelper.Clamp(slider.Slide, 0, 1);
                return(Vector2.Lerp(oldPosition, newPosition, (float)lerp(0, 1, slide)));
            };
        }
예제 #19
0
        public void SetScale(float newScale, LerpHelper.Delegate lerp, ISlider slider)
        {
            var oldScale = VisualScale();

            VisualScale = () =>
            {
                float slide = MathHelper.Clamp(slider.Slide, 0, 1);
                return((float)lerp(oldScale, newScale, slide));
            };
        }
예제 #20
0
 public static void UpdateMaximumTrackColor(this UISlider uiSlider, ISlider slider, UIColor?defaultMaxTrackColor)
 {
     if (slider.MaximumTrackColor == Color.Default)
     {
         uiSlider.MaximumTrackTintColor = defaultMaxTrackColor;
     }
     else
     {
         uiSlider.MaximumTrackTintColor = slider.MaximumTrackColor.ToNative();
     }
 }
 public void ReelTowards(Vector2 position, ISlider slider)
 {
     VisualTip = () =>
     {
         if (slider.Slide >= 1)
         {
             return(GetBase());
         }
         return(position);
     };
 }
예제 #22
0
 public static void UpdateThumbColor(this UISlider uiSlider, ISlider slider, UIColor?defaultThumbColor)
 {
     if (slider.ThumbColor == null)
     {
         uiSlider.ThumbTintColor = defaultThumbColor;
     }
     else
     {
         uiSlider.ThumbTintColor = slider.ThumbColor.ToPlatform();
     }
 }
예제 #23
0
 public static void UpdateMaximumTrackColor(this UISlider uiSlider, ISlider slider, UIColor?defaultMaxTrackColor)
 {
     if (slider.MaximumTrackColor == null)
     {
         uiSlider.MaximumTrackTintColor = defaultMaxTrackColor;
     }
     else
     {
         uiSlider.MaximumTrackTintColor = slider.MaximumTrackColor.ToPlatform();
     }
 }
예제 #24
0
 public static void UpdateMaximumTrackColor(this MauiSlider nativeSlider, ISlider slider, Brush?defaultBackgroundColor)
 {
     if (slider.MaximumTrackColor.IsDefault())
     {
         nativeSlider.BorderBrush = defaultBackgroundColor;
     }
     else
     {
         nativeSlider.BorderBrush = slider.MaximumTrackColor.ToPlatform();
     }
 }
예제 #25
0
 public static void UpdateThumbColor(this UISlider uiSlider, ISlider slider, UIColor?defaultThumbColor)
 {
     if (slider.ThumbColor == Color.Default)
     {
         uiSlider.ThumbTintColor = defaultThumbColor;
     }
     else
     {
         uiSlider.ThumbTintColor = slider.ThumbColor.ToNative();
     }
 }
예제 #26
0
 public static void UpdateMinimumTrackColor(this MauiSlider nativeSlider, ISlider slider, Brush?defaultForegroundColor)
 {
     if (slider.MinimumTrackColor.IsDefault())
     {
         nativeSlider.Foreground = defaultForegroundColor;
     }
     else
     {
         nativeSlider.Foreground = slider.MinimumTrackColor.ToNative();
     }
 }
예제 #27
0
 public static void UpdateMaximumTrackColor(this Slider nativeSlider, ISlider slider, Brush?defaultBackgroundColor)
 {
     if (slider.MaximumTrackColor.IsDefault())
     {
         nativeSlider.Background = defaultBackgroundColor;
     }
     else
     {
         nativeSlider.Background = slider.MaximumTrackColor.ToNative();
     }
 }
예제 #28
0
 public void TurnTo(float angle, LerpHelper.Delegate lerp, ISlider slider)
 {
     SetAngle(angle);
     if (slider == null)
     {
         SetAngleVisual(angle);
     }
     else
     {
         TurnVisual(angle, lerp, slider);
     }
 }
예제 #29
0
        public MyDialog_ColorQuery(Decal.Adapter.Wrappers.PluginHost H, string[] pbuttons, string ptitle, string plabel, int picon, Color pdefaultinput, string dialogkey, IView pOrigin)
            : base(dialogkey, pOrigin)
        {
            iButtons      = pbuttons;
            iTitle        = ptitle;
            iLabel        = plabel;
            iIcon         = picon;
            iDefaultInput = pdefaultinput;

            if (!base.ShowView(H))
            {
                return;
            }

            ResultButtons = new IButton[iButtons.Length];
            for (int i = 0; i < iButtons.Length; ++i)
            {
                ResultButtons[i]      = (IButton)View["btn" + i.ToString()];
                ResultButtons[i].Hit += new EventHandler(MyDialog_ColorQuery_Hit);
            }
            Label      = (IStaticText)View["Label1"];
            Label.Text = iLabel;

            //Set up input boxes
            slA = (ISlider)View["slA"];
            slR = (ISlider)View["slR"];
            slG = (ISlider)View["slG"];
            slB = (ISlider)View["slB"];

            slA.Position = iDefaultInput.A;
            slR.Position = iDefaultInput.R;
            slG.Position = iDefaultInput.G;
            slB.Position = iDefaultInput.B;

            slA.Change += new EventHandler <MVIndexChangeEventArgs>(ChangedSlider);
            slR.Change += new EventHandler <MVIndexChangeEventArgs>(ChangedSlider);
            slG.Change += new EventHandler <MVIndexChangeEventArgs>(ChangedSlider);
            slB.Change += new EventHandler <MVIndexChangeEventArgs>(ChangedSlider);

#if VVS_REFERENCED
            if (VVSColorBox)
            {
                //Create the VVS colorbox
                Curtain_CreateVVSColorBox();
            }
#endif
            if (!VVSColorBox)
            {
                dColorBox           = (Decal.Adapter.Wrappers.PushButtonWrapper)(((MyClasses.MetaViewWrappers.DecalControls.View)View).Underlying.Controls["ColorBox"]);
                dColorBox.FaceColor = iDefaultInput;
            }
        }
예제 #30
0
        public static void UpdateThumbColor(this MauiSlider nativeSlider, ISlider slider, Brush?defaultThumbColor)
        {
            var thumb = nativeSlider?.Thumb;

            if (thumb == null || slider?.ThumbColor == null || nativeSlider == null)
            {
                return;
            }

            nativeSlider.ThumbColorOver = slider.ThumbColor.ToNative();
            BrushHelpers.UpdateColor(slider.ThumbColor, ref defaultThumbColor,
                                     () => thumb.Background, brush => thumb.Background = brush);
        }
예제 #31
0
		private static void subscribeSlider(ISlider slider, Action<float> action)
		{
			slider.OnValueChanged.Subscribe((sender, args) => action(args.Value));
		}
예제 #32
0
파일: Slider.cs 프로젝트: majorsilence/Eto
		protected Slider (Generator generator, Type type, bool initialize = true)
			: base (generator, type, initialize)
		{
			handler = (ISlider)Handler;
		}
예제 #33
0
파일: Slider.cs 프로젝트: M1C/Eto
 public Slider(Generator generator)
     : base(generator, typeof(ISlider), true)
 {
     inner = (ISlider)Handler;
 }