Modal 개발 완료. Toolbar 개발 중

This commit is contained in:
logonkhi
2025-06-13 17:10:58 +09:00
parent e8d52b3e90
commit 2ffe7abac6
37 changed files with 3278 additions and 466 deletions

View File

@@ -0,0 +1,82 @@
using System;
using UnityEngine;
namespace UVC.UI.ToolBar
{
/// <summary>
/// 모든 버튼의 기본 추상 클래스입니다.
/// 공통적인 속성 (예: 텍스트, 아이콘, 활성화 상태) 및 동작을 정의합니다.
/// </summary>
public abstract class ToolbarButtonBase : IToolbarItem
{
public event Action OnStateChanged; // 상태 변경 알림 이벤트
private string _text;
public string Text
{
get => _text;
set
{
if (_text != value)
{
_text = value;
OnStateChanged?.Invoke();
}
}
}
private Sprite _icon;
public Sprite Icon
{
get => _icon;
set
{
if (_icon != value)
{
_icon = value;
OnStateChanged?.Invoke();
}
}
}
private bool _isEnabled = true;
public bool IsEnabled
{
get => _isEnabled;
set
{
if (_isEnabled != value)
{
_isEnabled = value;
OnStateChanged?.Invoke();
}
}
}
private string _tooltipKey; // 툴팁 다국어 키
public string TooltipKey
{
get => _tooltipKey;
set
{
if (_tooltipKey != value)
{
_tooltipKey = value;
// TooltipKey 변경 시 OnStateChanged를 호출할 필요는 일반적으로 없으나,
// 만약 UI가 TooltipKey 자체를 표시하는 등의 로직이 있다면 필요할 수 있습니다.
// 여기서는 툴팁 내용이 동적으로 변경되는 경우가 적다고 가정하고 생략합니다.
}
}
}
public Action OnClick { get; set; }
public abstract void ExecuteClick();
// OnStateChanged 이벤트를 외부에서 강제로 발생시켜야 할 때 사용 (예: 복합적인 상태 변경 후)
public void NotifyStateChanged()
{
OnStateChanged?.Invoke();
}
}
}