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; }
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()); }; }
private void DivideButton_Click(object sender, EventArgs e) { ExecuteOperation("divide", (double)Int32.Parse(mainTextBox.Text)); mainTextBox.Text = CurrVal.ToString(); }
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); }