Files
XRLib/Assets/Scripts/UVC/UI/ToolBar/IToolbarItem.cs

40 lines
2.1 KiB
C#
Raw Normal View History

2025-06-16 19:30:01 +09:00
namespace UVC.UI.Toolbar
{
/// <summary>
/// 툴바에 추가될 수 있는 모든 항목(예: 버튼, 구분선, 드롭다운 메뉴 등)의
/// 기본 인터페이스입니다.
/// 이 인터페이스를 구현하는 클래스는 툴바 시스템의 일부로 인식되어
/// ToolbarModel에 추가되고 ToolbarView에 의해 렌더링될 수 있습니다.
///
/// 역할:
/// - 툴바 항목의 통일성: 다양한 UI 요소들을 툴바 시스템 내에서 동일한 타입(IToolbarItem)으로 취급할 수 있게 합니다.
/// - 확장성: 새로운 종류의 툴바 항목을 추가할 때, 이 인터페이스를 구현함으로써
/// 기존 툴바 시스템과 쉽게 통합될 수 있도록 합니다.
///
/// 사용 예시:
/// - ToolbarButtonBase: 모든 버튼 타입의 기본 클래스로, IToolbarItem을 구현합니다.
/// - ToolbarSeparator: 툴바 내 항목들을 시각적으로 구분하는 구분선 클래스로, IToolbarItem을 구현합니다.
///
/// 개발자가 새로운 툴바 항목(예: 색상 선택기, 슬라이더 등)을 만들고 싶다면,
/// 해당 클래스가 IToolbarItem 인터페이스를 구현하도록 해야 합니다.
/// </summary>
/// <example>
/// <code>
/// // 새로운 툴바 항목으로 'MyCustomToolbarItem'을 정의하는 경우
/// public class MyCustomToolbarItem : IToolbarItem
/// {
/// // 이 항목에 필요한 속성 및 메서드 정의
/// public string CustomData { get; set; }
/// public void PerformAction() { /* ... */ }
/// }
///
/// // ToolbarModel에 추가하는 방법
/// ToolbarModel toolbarModel = new ToolbarModel();
/// MyCustomToolbarItem customItem = new MyCustomToolbarItem { CustomData = "Example" };
/// toolbarModel.AddItem(customItem);
/// // ToolbarView는 이 customItem을 렌더링하기 위한 로직이 추가적으로 필요할 수 있습니다.
/// // (예: MyCustomToolbarItem 타입에 맞는 프리팹과 렌더링 로직)
/// </code>
/// </example>
public interface IToolbarItem { }
}