Example #1
0
		void LogEvents(ColorPicker control)
		{
			control.ValueChanged += delegate
			{
				Log.Write(control, "SelectedColorChanged, Color: {0}", control.Value);
			};
		}
Example #2
0
		protected override Control CreateOptions()
		{
			var foregroundPicker = new ColorPicker();
			foregroundPicker.ValueChanged += (sender, e) =>
			{
				foreach (var update in foregroundUpdates)
					update(foregroundPicker.Value);
			};

			var backgroundPicker = new ColorPicker();
			backgroundPicker.ValueChanged += (sender, e) =>
			{
				foreach (var update in backgroundUpdates)
					update(backgroundPicker.Value);
			};

			var formColorPicker = new ColorPicker { Value = BackgroundColor };
			formColorPicker.ValueChanged += (sender, e) => BackgroundColor = formColorPicker.Value;

			var fontPicker = new Button { Text = "Pick Font" };
			fontPicker.Click += (sender, e) =>
			{
				var dlg = new FontDialog();
				dlg.FontChanged += (sender2, e2) =>
				{
					var font = dlg.Font;
					foreach (var update in fontUpdates)
						update(font);
				};
				dlg.ShowDialog(this);
			};

			return new StackLayout
			{
				Orientation = Orientation.Horizontal,
				Spacing = 5,
				Items = {
					null,
					new Label { Text = "Text", VerticalAlignment = VerticalAlignment.Center },
					foregroundPicker,
					new Label { Text = "Background", VerticalAlignment = VerticalAlignment.Center },
					backgroundPicker,
					new Label { Text = "Form", VerticalAlignment = VerticalAlignment.Center },
					formColorPicker,
					fontPicker,
					null
				}
			};
		}
		protected override Control CreateOptions()
		{
			var foregroundPicker = new ColorPicker();
			foregroundPicker.ValueChanged += (sender, e) =>
			{
				foreach (var update in foregroundUpdates)
					update(foregroundPicker.Value);
			};

			var backgroundPicker = new ColorPicker();
			backgroundPicker.ValueChanged += (sender, e) =>
			{
				foreach (var update in backgroundUpdates)
					update(backgroundPicker.Value);
			};

			var formColorPicker = new ColorPicker { Value = BackgroundColor };
			formColorPicker.ValueChanged += (sender, e) => BackgroundColor = formColorPicker.Value;

			var fontPicker = new Button { Text = "Pick Font" };
			fontPicker.Click += (sender, e) => {
				var dlg = new FontDialog();
				dlg.FontChanged += (sender2, e2) => {
					var font = dlg.Font;
					foreach (var update in fontUpdates)
						update(font);
				};
				dlg.ShowDialog(this);
			};

			return new TableLayout(
				new TableRow(
					null, 
					new Label { Text = "Text", VerticalAlign = VerticalAlign.Middle },
					foregroundPicker,
					new Label { Text = "Background", VerticalAlign = VerticalAlign.Middle },
					backgroundPicker,
					new Label { Text = "Form", VerticalAlign = VerticalAlign.Middle },
					formColorPicker,
					fontPicker,
					null
				)
			);
		}
Example #4
0
		public DynamicFocusSection()
		{
			var content = new Panel();
			var focusControlCheckBox = new CheckBox { Text = "Focus Control", Checked = true };

			var addContentButton = new Button { Text = "Add Control" };

			var count = 0;
			addContentButton.Click += (sender, e) =>
			{
				Control control;
				switch((count++) % 9)
				{
					case 0: control = new TextBox(); break;
					case 1: control = new TextArea(); break;
					case 2: control = new CheckBox { Text = "A Check Box" }; break;
					case 3: control = new RadioButton { Text = "A Radio Button" }; break;
					case 4: control = new DropDown { Items = { "Item 1", "Item 2", "Item 3" } }; break;
					case 5: control = new DateTimePicker(); break;
					case 6: control = new ColorPicker(); break;
					case 7: control = new PasswordBox(); break;
					case 8: control = new ListBox { Items = { "Item 1", "Item 2", "Item 3" } }; break;
					case 9: control = new PasswordBox(); break;
					default: throw new InvalidOperationException();
				}
				if (focusControlCheckBox.Checked ?? false)
					control.Focus();
				content.Content = new TableLayout(
					null,
					new Label { Text = string.Format("Control: {0}", control.GetType().Name) },
					new TableRow(control),
					null
				);
			};

			Content = new TableLayout(
				new TableLayout(new TableRow(null, addContentButton, focusControlCheckBox, null)),
				content
				);
		}
Example #5
0
			/// <summary>
			/// Raises the color changed event.
			/// </summary>
			public void OnColorChanged(ColorPicker widget, EventArgs e)
			{
				widget.Platform.Invoke(() => widget.OnColorChanged(e));
			}
Example #6
0
		public RichTextAreaSection()
		{
			var richText = new RichTextArea();
			richText.Size = new Size(-1, 300);
			richText.Text = LoremText;

			var range = new Range<int>(6, 10);
			var buffer = richText.Buffer;
			buffer.SetFont(range, Fonts.Cursive(20, FontStyle.Bold, FontDecoration.Underline));
			buffer.SetForeground(range, Colors.Blue);
			buffer.SetBackground(range, Colors.Yellow);

			buffer.SetBold(new Range<int>(11, 16), true);
			buffer.SetItalic(new Range<int>(18, 20), true);
			buffer.SetUnderline(new Range<int>(22, 25), true);
			buffer.SetStrikethrough(new Range<int>(28, 38), true);

			richText.CaretIndex = LoremText.Length - 1;

			richText.SelectionChanged += (sender, e) =>
			{
				UpdateBindings(BindingUpdateMode.Destination);
				Log.Write(sender, "SelectionChanged: {0}", richText.Selection);
			};

			var boldButton = new CheckBox { Text = "Bold" };
			boldButton.CheckedBinding.Bind(richText, r => r.SelectionBold);
			boldButton.CheckedChanged += (sender, e) =>
			{
				richText.Focus();
				UpdateBindings(BindingUpdateMode.Destination);
			};

			var italicButton = new CheckBox { Text = "Italic" };
			italicButton.CheckedBinding.Bind(richText, r => r.SelectionItalic);
			italicButton.CheckedChanged += (sender, e) =>
			{
				richText.Focus();
				UpdateBindings(BindingUpdateMode.Destination);
			};

			var underlineButton = new CheckBox { Text = "Underline" };
			underlineButton.CheckedBinding.Bind(richText, r => r.SelectionUnderline);
			underlineButton.CheckedChanged += (sender, e) => richText.Focus();

			var strikethroughButton = new CheckBox { Text = "Strikethrough" };
			strikethroughButton.CheckedBinding.Bind(richText, r => r.SelectionStrikethrough);
			strikethroughButton.CheckedChanged += (sender, e) => richText.Focus();

			var backgroundButton = new ColorPicker { };
			backgroundButton.ValueBinding.Bind(() => richText.SelectionBackground, val => richText.SelectionBackground = val, h => Binding.AddPropertyEvent(richText, r => r.SelectionBackground, h), h => Binding.RemovePropertyEvent(richText, h));
			backgroundButton.ValueChanged += (sender, e) => richText.Focus();

			var foregroundButton = new ColorPicker { };
			foregroundButton.ValueBinding.Bind(richText, r => r.SelectionForeground);
			foregroundButton.ValueChanged += (sender, e) => richText.Focus();

			var fontButton = new Button();
			fontButton.Bind(c => c.Text, new DelegateBinding<string>(() =>
			{
				var font = richText.SelectionFont;
				if (font == null)
					return "<No Font>";
				return string.Format("{0}, {1}, {2:0.00}pt", font.FamilyName, font.Typeface.Name, font.Size);
			}));
			var fd = new FontDialog();
			fontButton.Click += (sender, e) =>
			{
				fd.Font = richText.SelectionFont;
				fd.FontChanged += (s, ee) =>
				{
					richText.SelectionFont = fd.Font;
					UpdateBindings(BindingUpdateMode.Destination);
				};
				if (fd.ShowDialog(this) == DialogResult.Ok)
					richText.Focus();
			};

			var familyDropDown = new DropDown();
			familyDropDown.DataStore = Fonts.AvailableFontFamilies.OrderBy(r => r.Name);
			familyDropDown.SelectedValueBinding.Bind(richText, r => r.SelectionFamily);
			familyDropDown.SelectedValueChanged += (sender, e) =>
			{
				richText.Focus();
				UpdateBindings(BindingUpdateMode.Destination);
			};

			var formatEnum = new EnumDropDown<RichTextAreaFormat>();
			formatEnum.SelectedValue = RichTextAreaFormat.Rtf;

			var loadButton = new Button { Text = "Load" };
			loadButton.Enabled = buffer.SupportedFormats.Contains(formatEnum.SelectedValue);
			loadButton.Click += (sender, e) => buffer.Load(new MemoryStream(Encoding.UTF8.GetBytes(formatEnum.SelectedValue == RichTextAreaFormat.Rtf ? RtfString : LoremText)), formatEnum.SelectedValue);

			var saveButton = new Button { Text = "Save" };
			saveButton.Enabled = buffer.SupportedFormats.Contains(formatEnum.SelectedValue);
			saveButton.Click += (sender, e) =>
			{
				var stream = new MemoryStream();
				buffer.Save(stream, formatEnum.SelectedValue);
				stream.Position = 0;
				Log.Write(richText, "Saved {0}:\n{1}", formatEnum.SelectedValue, new StreamReader(stream).ReadToEnd());
			};

			formatEnum.SelectedValueChanged += (sender, e) => saveButton.Enabled = loadButton.Enabled = buffer.SupportedFormats.Contains(formatEnum.SelectedValue);

			var clearButton = new Button { Text = "Clear" };
			clearButton.Click += (sender, e) => buffer.Clear();

			var formatting1 = new StackLayout
			{
				Orientation = Orientation.Horizontal,
				Spacing = 5,
				Items =
				{
				    null,
				    boldButton,
				    italicButton,
				    underlineButton,
				    strikethroughButton,
				    null
				}
			};

			var formatting2 = new StackLayout
			{
				Orientation = Orientation.Horizontal,
				Spacing = 5,
				Items =
				{
					null,
					new Label { Text = "Foreground", VerticalAlignment = VerticalAlignment.Center },
					TableLayout.AutoSized(foregroundButton, centered: true),
					new Label { Text = "Background", VerticalAlignment = VerticalAlignment.Center },
					TableLayout.AutoSized(backgroundButton, centered: true),
					null
				}
			};
			var formatting3 = new StackLayout
			{
				Orientation = Orientation.Horizontal,
				Spacing = 5,
				Items =
				{
				    null,
				    fontButton,
				    familyDropDown,
				    null
				}
			};

			var buttons = new StackLayout
			{
				Orientation = Orientation.Horizontal,
				Spacing = 5,
				Items =
				{
				    null,
				    formatEnum,
				    loadButton,
				    saveButton,
				    clearButton,
				    null
				}
			};

			Content = new StackLayout
			{
				Padding = new Padding(10),
				Spacing = 5,
				HorizontalContentAlignment = HorizontalAlignment.Stretch,
				Items =
				{
					buttons,
					TextAreaSection.TextAreaOptions(richText),
					TextAreaSection.TextAreaOptions2(richText),
					TextAreaSection.TextAreaOptions3(richText),
					formatting1,
					formatting2,
					formatting3,
					new StackLayoutItem(richText, expand: true)
				}
			};
		}
Example #7
0
		Control ColorPickerControl()
		{
			var control = new ColorPicker();
			LogEvents(control);
			return TableLayout.AutoSized(control, centered: true);
		}
Example #8
0
		Control InitialValue()
		{
			var control = new ColorPicker { Value = Colors.Blue };
			LogEvents(control);
			return control;
		}
Example #9
0
		Control Default()
		{
			var control = new ColorPicker();
			LogEvents(control);
			return control;
		}