using System.Collections; using System.Collections.Generic; using UnityEngine; namespace Bitsplash.DatePicker { /// /// base class for date picker elements. They included buttons and texts /// public abstract class DatePickerElement : MonoBehaviour { [SerializeField] [HideInInspector] private bool isOpen; protected virtual void Start() { SetLinkedElements(); } /// /// notifys the date picker element of the DatePickerSettings and DatePickerContent objects that govern it. /// these objects are used to query and modify the date picker /// void SetLinkedElements() { var main = GetComponentInParent(); if (main == null) Debug.LogError("Date Picker elements must have a parent GameObject with the behviour DatePickerSettings"); else { var content = main.Content; if (content != null) { SetMain(main); SetContent(content); content.SettingsChanged -= OnSettingsChanged; content.SettingsChanged += OnSettingsChanged; } } } protected virtual void OnSettingsChanged() { } public virtual void OnValidate() { if(isActiveAndEnabled) SetLinkedElements(); } /// /// sets the main DatePickerSettings object assicuated with this script /// /// protected abstract void SetMain(DatePickerSettings main); /// /// sets the main DatePickerContent object assicuated with this script /// /// protected abstract void SetContent(DatePickerContent content); } }