toolbar 개발 중

This commit is contained in:
logonkhi
2025-06-16 19:30:01 +09:00
parent 2ffe7abac6
commit 63b71216cb
92 changed files with 5915 additions and 530 deletions

View File

@@ -16,7 +16,7 @@ namespace UVC.UI.Menu
public string ItemId { get; private set; }
/// <summary>
/// UI에 표시될 메뉴 아이템의 이름에 대한 다국어 처리 키입니다.
/// UI에 표시될 메뉴 아이템의 이름입니다. 다국어 키도 가능합니다.
/// 이 키를 사용하여 실제 표시될 텍스트를 가져옵니다.
/// </summary>
public string DisplayNameKey { get; private set; }
@@ -28,6 +28,12 @@ namespace UVC.UI.Menu
/// </summary>
public ICommand Command { get; private set; }
/// <summary>
/// <see cref="Command"/> 실행 시 전달될 파라미터입니다.
/// 이 파라미터는 <see cref="TopMenuController.HandleMenuItemClicked"/>에서 <see cref="ICommand.Execute"/> 호출 시 사용될 수 있습니다.
/// </summary>
public object CommandParameter { get; set; }
/// <summary>
/// 이 메뉴 아이템에 속한 하위 메뉴 아이템들의 목록입니다.
/// 하위 메뉴가 없는 경우 빈 리스트입니다.
@@ -51,16 +57,18 @@ namespace UVC.UI.Menu
/// `MenuItemData` 클래스의 새 인스턴스를 초기화합니다.
/// </summary>
/// <param name="itemId">메뉴 아이템의 고유 ID.</param>
/// <param name="displayNameKey">표시 이름의 다국어 키.</param>
/// <param name="displayName">표시 이름. 표시 이름의 다국어 키도 가능.</param>
/// <param name="command">실행할 명령 (선택 사항).</param>
/// <param name="commandParameter">커맨드에 전달할 파라미터 (선택 사항).</param>
/// <param name="subMenuItems">하위 메뉴 아이템 목록 (선택 사항).</param>
/// <param name="isSeparator">구분선 여부 (선택 사항, 기본값: false).</param>
/// <param name="isEnabled">활성화 상태 (선택 사항, 기본값: true).</param>
public MenuItemData(string itemId, string displayNameKey, ICommand command = null, List<MenuItemData> subMenuItems = null, bool isSeparator = false, bool isEnabled = true)
public MenuItemData(string itemId, string displayName, ICommand command = null, object commandParameter = null, List<MenuItemData> subMenuItems = null, bool isSeparator = false, bool isEnabled = true)
{
ItemId = itemId;
DisplayNameKey = displayNameKey;
DisplayNameKey = displayName;
Command = command;
CommandParameter = commandParameter; // 파라미터 저장
SubMenuItems = subMenuItems ?? new List<MenuItemData>(); // null인 경우 빈 리스트로 초기화
IsSeparator = isSeparator;
IsEnabled = isEnabled;
@@ -85,7 +93,7 @@ namespace UVC.UI.Menu
public static MenuItemData CreateSeparator(string itemId = null)
{
// 구분선은 특정 동작이나 표시 이름이 필요 없으므로, displayNameKey는 비워두고 command는 null로 설정합니다.
return new MenuItemData(itemId ?? $"separator_{Guid.NewGuid()}", string.Empty, null, null, true);
return new MenuItemData(itemId ?? $"separator_{Guid.NewGuid()}", string.Empty, null, null, null, true);
}
}