Пример #1
0
        public void CreateStepper(int width, int height, string extraLabel)
        {
            DroidVariable refView = Location?.RefViewX as DroidVariable;
            ViewGroup     layout  = MainActivity.CreateViewLayout(width, height, refView?.ViewLayout);

            TextView label = null;

            Button btn1 = new Button(MainActivity.TheView);

            btn1.Text = "-";
            btn1.Id   = ++m_currentTag;
            Button btn2 = new Button(MainActivity.TheView);

            btn2.Text = "+";
            btn2.Id   = ++m_currentTag;

            layout.AddView(btn1);
            layout.AddView(btn2);

            RelativeLayout.LayoutParams layoutParams1 = new RelativeLayout.LayoutParams(
                ViewGroup.LayoutParams.WrapContent, ViewGroup.LayoutParams.WrapContent
                )
            {
                Width  = height,
                Height = height
            };

            RelativeLayout.LayoutParams layoutParams2 = new RelativeLayout.LayoutParams(
                ViewGroup.LayoutParams.WrapContent, ViewGroup.LayoutParams.WrapContent
                )
            {
                Width  = height,
                Height = height
            };
            layoutParams2.AddRule(LayoutRules.RightOf, btn1.Id);

            if (!string.IsNullOrWhiteSpace(extraLabel))
            {
                label         = new TextView(MainActivity.TheView);
                label.Text    = CurrVal.ToString();
                label.Id      = ++m_currentTag;
                label.Gravity = GravityFlags.Center;

                RelativeLayout.LayoutParams layoutParams3 = new RelativeLayout.LayoutParams(
                    ViewGroup.LayoutParams.WrapContent, ViewGroup.LayoutParams.WrapContent
                    )
                {
                    Width  = height,
                    Height = height
                };
                if (extraLabel == "left")
                {
                    layoutParams1.AddRule(LayoutRules.RightOf, label.Id);
                    //label.Gravity = GravityFlags.Right | GravityFlags.CenterVertical;
                }
                else
                {
                    layoutParams3.AddRule(LayoutRules.RightOf, btn2.Id);
                    //label.Gravity = GravityFlags.Left | GravityFlags.CenterVertical;
                }
                label.LayoutParameters = layoutParams3;
                layout.AddView(label);
            }

            btn1.Touch += (sender, e) =>
            {
                if (e.Event.Action == MotionEventActions.Up)
                {
                    CurrVal     -= Step;
                    CurrVal      = CurrVal < MinVal ? MinVal : CurrVal;
                    CurrVal      = CurrVal > MaxVal ? MaxVal : CurrVal;
                    btn1.Enabled = CurrVal > MinVal;
                    btn2.Enabled = CurrVal < MaxVal;
                    if (label != null)
                    {
                        label.Text = CurrVal.ToString();
                    }
                    ActionDelegate?.Invoke(WidgetName, CurrVal.ToString());
                }
            };
            btn2.Touch += (sender, e) =>
            {
                if (e.Event.Action == MotionEventActions.Up)
                {
                    CurrVal     += Step;
                    CurrVal      = CurrVal < MinVal ? MinVal : CurrVal;
                    CurrVal      = CurrVal > MaxVal ? MaxVal : CurrVal;
                    btn1.Enabled = CurrVal > MinVal;
                    btn2.Enabled = CurrVal < MaxVal;
                    if (label != null)
                    {
                        label.Text = CurrVal.ToString();
                    }
                    ActionDelegate?.Invoke(WidgetName, CurrVal.ToString());
                }
            };

            btn1.LayoutParameters = layoutParams1;
            btn2.LayoutParameters = layoutParams2;

            m_viewX = layout;
        }
Пример #2
0
        public void CreateStepper(CGRect rect, string extraLabel)
        {
            UIView parent = GetParentView();

            WidgetType = UIVariable.UIType.STEPPER;
            UILabel label = null;

            int stepperX  = (int)(10 * UtilsiOS.WidthMultiplier());
            int stepperY  = (int)(4 * UtilsiOS.WidthMultiplier());
            int labelSize = (int)rect.Height;

            CGRect    stepRect = new CGRect(stepperX, stepperY, rect.Width, rect.Height);
            UIStepper stepper  = new UIStepper(stepRect);

            m_viewX = new UIView(rect);

            if (!string.IsNullOrWhiteSpace(extraLabel))
            {
                extraLabel = extraLabel.ToLower();
                nfloat labelWidth  = rect.Width - stepper.Bounds.Width;
                nfloat labelHeight = stepper.Bounds.Height;
                if (extraLabel.EndsWith("left"))
                {
                    stepperX = 0;
                    CGRect labelRect = new CGRect(stepperX, stepperY, labelWidth, labelHeight);
                    label = new UILabel(labelRect);
                    label.TextAlignment = UITextAlignment.Left;
                    stepRect            = new CGRect(stepperX + labelWidth, stepperY, stepper.Bounds.Width, stepper.Bounds.Height);
                    stepper             = new UIStepper(stepRect);
                }
                else
                {
                    CGRect labelRect = new CGRect(stepperX + stepper.Bounds.Width, stepperY, labelWidth, labelHeight);
                    label = new UILabel(labelRect);
                    label.TextAlignment = UITextAlignment.Right;
                }
                label.Text          = CurrVal.ToString();
                label.TextAlignment = UITextAlignment.Center;
                //label.SizeToFit();
                m_viewX.AddSubview(label);
            }
            // "5:3:50:1"
            double curr = 0, min = 0, max = 0, step = 0;

            Utils.Extract(extraLabel, ref curr, ref min, ref max, ref step);
            CurrVal = curr;
            MinVal  = min;
            MaxVal  = max;
            Step    = step;

            stepper.MinimumValue = (float)MinVal;
            stepper.MaximumValue = (float)MaxVal;
            stepper.Value        = (float)CurrVal;
            stepper.StepValue    = (float)Step;

            m_viewX.AddSubview(stepper);
            //m_viewY = stepper;

            stepper.ValueChanged += (sender, e) => {
                CurrVal = stepper.Value;
                if (label != null)
                {
                    label.Text = CurrVal.ToString();
                }
                ActionDelegate?.Invoke(WidgetName, CurrVal.ToString());
            };
        }
Пример #3
0
 private void DivideButton_Click(object sender, EventArgs e)
 {
     ExecuteOperation("divide", (double)Int32.Parse(mainTextBox.Text));
     mainTextBox.Text = CurrVal.ToString();
 }
Пример #4
0
        public virtual bool SetValue(string arg1, string arg2 = "")
        {
            double val = Utils.ConvertToDouble(arg1);

            CurrVal = val;
            if (m_viewY is UIStepper)
            {
                UIStepper stepper = m_viewY as UIStepper;
                stepper.Value = val;
                UIView[] subviews = m_viewX.Subviews;
                foreach (UIView view in subviews)
                {
                    if (view is UILabel)
                    {
                        UILabel label = view as UILabel;
                        label.Text = CurrVal.ToString();
                    }
                }
            }
            else if (WidgetType == UIType.COMBOBOX)
            {
                switch (arg1)
                {
                case "alignment":
                    Tuple <UIControlContentHorizontalAlignment, UITextAlignment> al =
                        UtilsiOS.GetAlignment(arg2);
                    m_button.HorizontalAlignment = al.Item1;
                    break;

                case "backgroundcolorpicker":
                    m_picker.BackgroundColor = UtilsiOS.String2Color(arg2);
                    break;

                case "backgroundcolorbutton2":
                    m_button2.BackgroundColor = UtilsiOS.String2Color(arg2);
                    break;

                case "fontcolor2":
                    m_button2.SetTitleColor(UtilsiOS.String2Color(arg2), UIControlState.Normal);
                    break;

                case "text2":
                    m_button2.SetTitle(arg2 + "\t", UIControlState.Normal);
                    break;
                }
                if (string.IsNullOrEmpty(arg1) || arg1 == "value")
                {
                    SetComboboxText("", (int)val);
                }
            }
            else if (m_viewX is UISwitch)
            {
                ((UISwitch)m_viewX).On = (int)val == 1;
            }
            else if (m_viewX is UISlider)
            {
                ((UISlider)m_viewX).Value = (float)val;
            }
            else if (m_viewX is UIStepper)
            {
                ((UIStepper)m_viewX).Value = (float)val;
            }
            else if (m_viewX is UIPickerView)
            {
                UIPickerView picker = m_viewX as UIPickerView;
                picker.Select((int)val, 0, true);
                TypePickerViewModel model = picker.Model as TypePickerViewModel;
                model?.Selected(picker, (int)val, 0);
            }
            else if (m_viewX is UISegmentedControl)
            {
                ((UISegmentedControl)m_viewX).SelectedSegment = (nint)val;
            }
            else
            {
                return(false);
            }
            return(true);
        }