123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153 |
- using System;
- using System.Threading.Tasks;
- using System.Windows.Input;
- using Xamarin.Forms;
- namespace InABox.Mobile
- {
-
- public interface IMobileToolItem
- {
- string Text { get; set; }
- ImageSource Image { get; set; }
- string Alert { get; set; }
- bool IsEnabled { get; set; }
- bool IsVisible { get; set; }
- int ID { get; set; }
- event EventHandler Clicked;
- void DoTap();
- int Row { get; set; }
- int Column { get; set; }
- }
-
- public class MobileToolItem : BindableObject, IMobileToolItem
- {
-
- public static readonly BindableProperty TextProperty = BindableProperty.Create(nameof(Text), typeof(string), typeof(MobileToolItem), "");
- public string Text
- {
- get => (string)GetValue(TextProperty);
- set => SetValue(TextProperty, value);
- }
- public static readonly BindableProperty ImageProperty = BindableProperty.Create(nameof(Image), typeof(ImageSource), typeof(MobileToolItem), null);
- public ImageSource Image
- {
- get => (ImageSource)GetValue(ImageProperty);
- set =>SetValue(ImageProperty, value);
-
- }
-
- public static readonly BindableProperty AlertProperty = BindableProperty.Create(
- nameof(Alert),
- typeof(string),
- typeof(MobileToolItem),
- null);
- public string Alert
- {
- get => (string)GetValue(AlertProperty);
- set
- {
- SetValue(AlertProperty, value);
- OnPropertyChanged(nameof(AlertVisible));
- }
- }
- public bool AlertVisible => !String.IsNullOrWhiteSpace(Alert);
- public static readonly BindableProperty BackgroundColorProperty = BindableProperty.Create(
- nameof(BackgroundColor),
- typeof(Color),
- typeof(MobileToolItem),
- Color.White);
- public Color BackgroundColor
- {
- get => (Color)GetValue(BackgroundColorProperty);
- set => SetValue(BackgroundColorProperty, value);
- }
- public static readonly BindableProperty TextColorProperty = BindableProperty.Create(
- nameof(TextColor),
- typeof(Color),
- typeof(MobileToolItem),
- Color.Black);
- public Color TextColor
- {
- get => (Color)GetValue(TextColorProperty);
- set => SetValue(TextColorProperty, value);
- }
-
- public static readonly BindableProperty IsEnabledProperty = BindableProperty.Create(nameof(IsEnabled), typeof(bool), typeof(MobileToolItem), true);
- public bool IsEnabled
- {
- get { return (bool)GetValue(IsEnabledProperty); }
- set
- {
- var old = (bool)GetValue(IsEnabledProperty);
- SetValue(IsEnabledProperty, value);
- if (old != value)
- DoEnabledChanged();
- }
- }
-
-
- public static readonly BindableProperty IsVisibleProperty = BindableProperty.Create(nameof(IsVisible), typeof(bool), typeof(MobileToolItem), true);
- public bool IsVisible
- {
- get { return (bool)GetValue(IsVisibleProperty); }
- set
- {
- var old = (bool)GetValue(IsVisibleProperty);
- SetValue(IsVisibleProperty, value);
- if (old != value)
- DoVisibleChanged();
- }
- }
-
-
- public static readonly BindableProperty RowProperty = BindableProperty.Create(nameof(Row), typeof(Int32), typeof(MobileToolItem));
- public Int32 Row
- {
- get => (Int32)GetValue(RowProperty);
- set => SetValue(RowProperty, value);
- }
-
- public static readonly BindableProperty ColumnProperty = BindableProperty.Create(nameof(Column), typeof(Int32), typeof(MobileToolItem));
- public Int32 Column
- {
- get => (Int32)GetValue(ColumnProperty);
- set => SetValue(ColumnProperty, value);
- }
- public int ID { get; set; }
-
- public event EventHandler Clicked;
-
- public void DoTap()
- {
- Clicked?.Invoke(this, EventArgs.Empty);
- }
-
-
- public event EventHandler VisibleChanged;
- public void DoVisibleChanged()
- {
- VisibleChanged?.Invoke(this, EventArgs.Empty);
- }
-
- public event EventHandler EnabledChanged;
- public void DoEnabledChanged()
- {
- EnabledChanged?.Invoke(this, EventArgs.Empty);
- }
- }
- }
|