2025-06-18 00:16:49 +09:00
|
|
|
|
namespace UVC.UI.Toolbar.Model
|
2025-06-13 17:10:58 +09:00
|
|
|
|
{
|
|
|
|
|
|
/// <summary>
|
2025-06-17 20:19:06 +09:00
|
|
|
|
/// 툴바에 추가될 수 있는 모든 항목(예: 버튼, 구분선, 드롭다운 메뉴 등)의
|
|
|
|
|
|
/// 기본 인터페이스입니다.
|
|
|
|
|
|
/// 이 인터페이스를 구현하는 클래스는 툴바 시스템의 일부로 인식되어
|
|
|
|
|
|
/// ToolbarModel에 추가되고 ToolbarView에 의해 렌더링될 수 있습니다.
|
|
|
|
|
|
///
|
|
|
|
|
|
/// 역할:
|
|
|
|
|
|
/// - 툴바 항목의 통일성: 다양한 UI 요소들을 툴바 시스템 내에서 동일한 타입(IToolbarItem)으로 취급할 수 있게 합니다.
|
|
|
|
|
|
/// - 확장성: 새로운 종류의 툴바 항목을 추가할 때, 이 인터페이스를 구현함으로써
|
|
|
|
|
|
/// 기존 툴바 시스템과 쉽게 통합될 수 있도록 합니다.
|
|
|
|
|
|
///
|
|
|
|
|
|
/// 사용 예시:
|
|
|
|
|
|
/// - ToolbarButtonBase: 모든 버튼 타입의 기본 클래스로, IToolbarItem을 구현합니다.
|
|
|
|
|
|
/// - ToolbarSeparator: 툴바 내 항목들을 시각적으로 구분하는 구분선 클래스로, IToolbarItem을 구현합니다.
|
|
|
|
|
|
///
|
|
|
|
|
|
/// 개발자가 새로운 툴바 항목(예: 색상 선택기, 슬라이더 등)을 만들고 싶다면,
|
|
|
|
|
|
/// 해당 클래스가 IToolbarItem 인터페이스를 구현하도록 해야 합니다.
|
2025-06-13 17:10:58 +09:00
|
|
|
|
/// </summary>
|
2025-06-17 20:19:06 +09:00
|
|
|
|
/// <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>
|
2025-06-13 17:10:58 +09:00
|
|
|
|
public interface IToolbarItem { }
|
2025-06-17 20:19:06 +09:00
|
|
|
|
}
|