Design

네임스페이스 Going.UI.Design — UI 최상위 컨테이너 및 페이지/윈도우 관리

public class GoDesign : IDisposable
UI 렌더링의 최상위 컨테이너. 페이지 관리, 입력 이벤트 디스패치, 이미지·폰트 관리, 테마 적용.
Static Properties
static GoDesign?ActiveDesign get set현재 활성 GoDesign 인스턴스
Properties — 기본
string?Name get set디자인 이름
intDesignWidth get set디자인 너비
intDesignHeight get set디자인 높이
string?ProjectFolder get set프로젝트 폴더 경로
Properties — 레이아웃
intWidth get캔버스 너비 (px)
intHeight get캔버스 높이 (px)
Dictionary<string, GoPage>Pages get등록된 페이지 컬렉션
Dictionary<string, GoWindow>Windows get등록된 윈도우 컬렉션
GoPage?CurrentPage get현재 표시 중인 페이지
IGoControl?SelectedControl get현재 선택된 컨트롤
Properties — 레이아웃 구성
boolUseTitleBar get set타이틀바 사용 여부
boolUseLeftSideBar get set왼쪽 사이드바 사용 여부
boolUseRightSideBar get set오른쪽 사이드바 사용 여부
boolUseFooter get set푸터 사용 여부
boolOverlaySideBar get set사이드바 오버레이 모드. 기본값: false
boolExpandLeftSideBar get set왼쪽 사이드바 펼침 여부
boolExpandRightSideBar get set오른쪽 사이드바 펼침 여부
stringBarColor get set바 색상 이름. 기본값: "Base2"
GoTitleBarTitleBar get타이틀바 컴포넌트
GoSideBarLeftSideBar get왼쪽 사이드바 컴포넌트
GoSideBarRightSideBar get오른쪽 사이드바 컴포넌트
GoFooterFooter get푸터 컴포넌트
Properties — 테마 / 입력
GoThemeTheme get현재 활성 테마 (CustomTheme 우선, 없으면 DarkTheme)
GoTheme?CustomTheme get set사용자 정의 테마 (null이면 DarkTheme 사용)
SKPointMousePosition get현재 마우스 위치
boolIsDrag get드래그 중 여부
boolDesignMode get set디자인 모드 여부 (편집기용)
Methods — 페이지 관리
voidAddPage(GoPage page)페이지 등록
voidSetPage(string pageName)이름으로 페이지 전환
voidSetPage(GoPage page)인스턴스로 페이지 전환
Methods — 윈도우 관리
voidShowWindow(string name)이름으로 윈도우 표시
voidShowWindow(GoWindow wnd)인스턴스로 윈도우 표시
voidHideWindow(GoWindow wnd)윈도우 숨김
voidShowDropDownWindow(GoDropDownWindow wnd)드롭다운 윈도우 표시
voidHideDropDownWindow(GoDropDownWindow wnd)드롭다운 윈도우 숨김
Methods — 렌더링 / 입력
voidSetSize(int width, int height)캔버스 크기 설정
voidInit()초기화 (AddPage 후 최초 1회 호출)
voidInvalidate()다음 프레임 재렌더링 요청
voidDraw(SKCanvas canvas)전체 UI 렌더링
voidUpdate()프레임 업데이트 (매 프레임 호출)
voidMouseDown(float x, float y, GoMouseButton button)마우스 누름 이벤트 전달
voidMouseUp(float x, float y, GoMouseButton button)마우스 뗌 이벤트 전달
voidMouseDoubleClick(float x, float y, GoMouseButton button)더블클릭 이벤트 전달
voidMouseMove(float x, float y)마우스 이동 이벤트 전달
voidMouseWheel(float x, float y, float delta)마우스 휠 이벤트 전달
voidKeyDown(bool Shift, bool Control, bool Alt, GoKeys key)키 누름 이벤트 전달
voidKeyUp(bool Shift, bool Control, bool Alt, GoKeys key)키 뗌 이벤트 전달
Methods — 이미지 / 폰트
voidAddImage(string name, byte[] data)이미지 등록 (PNG 바이트)
voidAddImage(string name, List<SKImage> imgs)다중 프레임 이미지 등록
voidAddImageFolder(string directory)폴더 내 모든 이미지 일괄 등록
boolRemoveImage(string name)이미지 제거
List<SKImage>GetImage(string? name)이름으로 이미지 목록 반환
voidAddFont(string name, byte[] data)커스텀 폰트 등록
voidAddFontFolder(string directory)폴더 내 폰트 일괄 등록
voidRemoveFont(string name)폰트 제거
List<byte[]>GetFont(string? name)이름으로 폰트 데이터 목록 반환
List<(string, List<SKImage>)>GetImages()등록된 모든 이미지 (이름, 이미지 리스트) 목록 반환
List<(string, List<byte[]>)>GetFonts()등록된 모든 폰트 (이름, 데이터 리스트) 목록 반환
Methods — 드래그 / 컨트롤 탐색
voidDrag(object? item)드래그 항목 설정
object?GetDragItem()현재 드래그 중인 항목 반환
voidSelect(IGoControl? control)컨트롤 선택
List<IGoControl>ControlStack(IGoContainer container, float x, float y)좌표에 겹치는 컨트롤 스택 반환
List<IGoControl>ControlStack(IGoContainer container, SKRect rt)영역과 겹치는 컨트롤 스택 반환
(SKRect, SKRect, SKRect, SKRect, SKRect, SKRect)LayoutBounds()레이아웃 영역 계산. 반환: (rtL, rtT, rtR, rtB, rtF, rtFR)
Methods — JSON 직렬화
stringJsonSerialize()GoDesign을 JSON 문자열로 직렬화
static GoDesign?JsonDeserialize(string? json)JSON 문자열로 GoDesign 복원
Events
ActionRequestInvalidate재렌더링 요청 시 발생. 플랫폼 어댑터(Forms/OpenTK)가 구독.

public class GoWindow : GoContainer
타이틀 바와 닫기 버튼이 있는 오버레이 윈도우. GoMessageBox, GoInputBox의 기반 클래스.
Properties
string?IconString get set타이틀 바 아이콘 (Font Awesome 코드)
floatIconSize get set아이콘 크기. 기본값: 12
floatIconGap get set아이콘 간격. 기본값: 5
stringText get set윈도우 제목. 기본값: "Window"
stringFontName get set제목 폰트 이름
GoFontStyleFontStyle get set폰트 스타일
floatFontSize get set폰트 크기. 기본값: 12
stringTextColor get set제목 색상. 기본값: "Fore"
stringWindowColor get set윈도우 배경 색상. 기본값: "Back"
stringBorderColor get set테두리 색상. 기본값: "Base2"
GoRoundTypeRound get set모서리 둥글기. 기본값: All
floatTitleHeight get set타이틀 바 높이 (px). 기본값: 40
List<IGoControl>Childrens get자식 컨트롤 목록
Methods
voidShow()윈도우 표시
voidShow(float width, float height)크기 지정 후 표시
voidClose()윈도우 닫기

public class GoPage : GoContainer
하나의 화면/페이지. GoDesign.SetPage()로 전환. Childrens에 컨트롤/컨테이너를 추가.
Properties
List<IGoControl>Childrens get페이지 자식 컨트롤 목록
string?BackgroundImage get set배경 이미지 이름

public class GoTitleBar : GoContainer
상단 타이틀 바. 좌우 사이드바 접기/펼치기 버튼 내장.
Properties
floatBarSize get set바 높이 (px). 기본값: 50
stringTitle get set타이틀 텍스트
string?TitleImage get set타이틀 이미지 이름
stringLeftExpandIconString get set좌측 사이드바 펼침 아이콘. 기본값: "fa-bars"
stringLeftCollapseIconString get set좌측 사이드바 접기 아이콘. 기본값: "fa-chevron-left"
stringRightExpandIconString get set우측 사이드바 펼침 아이콘. 기본값: "fa-ellipsis-vertical"
stringRightCollapseIconString get set우측 사이드바 접기 아이콘. 기본값: "fa-chevron-right"
floatIconSize get set사이드바 토글 아이콘 크기. 기본값: 16
stringTextColor get set텍스트 색상. 기본값: "Fore"
stringFontName get set폰트 이름. 기본값: "나눔고딕"
GoFontStyleFontStyle get set폰트 스타일. 기본값: Normal
floatFontSize get set타이틀 폰트 크기. 기본값: 16
List<IGoControl>Childrens get바 내부 자식 컨트롤

public class GoSideBar : GoContainer
좌우 사이드 패널. 애니메이션으로 슬라이드 열기/닫기. Fixed 모드에서는 콘텐츠 영역을 밀어냄.
Properties
floatBarSize get set사이드바 너비 (px). 기본값: 150
boolFixed get set고정 모드 (콘텐츠 영역 밀기). 기본값: false
boolExpand get set펼침 여부
floatRealBarSize internal get애니메이션 적용된 실제 너비 (internal)
boolOpening get열리는 중 여부
boolClosing get닫히는 중 여부
List<IGoControl>Childrens get사이드바 내부 컨트롤

public class GoFooter : GoContainer
하단 푸터 바
Properties
floatBarSize get set푸터 높이 (px). 기본값: 40
List<IGoControl>Childrens get내부 컨트롤

public class GoDropDownWindow : GoContainer
드롭다운 팝업 윈도우 기반 클래스. GoComboBox, GoColorSelector 등의 드롭다운에 사용.
Properties
stringWindowColor get set팝업 배경 색상. 기본값: "Window"
stringBorderColor get set팝업 테두리 색상. 기본값: "WindowBorder"
GoRoundTypeRound get set모서리 둥글기
List<IGoControl>Childrens get내부 컨트롤
Methods (virtual)
virtual voidShow()드롭다운 표시
virtual voidHide()드롭다운 숨김
검색 결과가 없습니다.