0510 섹션선택
Container가 current_focused_object가 될 수 있는 것처럼,
뭉탱이로 만들어놓은 섹션이 current_focused_object가 될 수도 있다.
-> 문제는, 그 뭉탱이 안에 있는
버튼이 "자신을 포함하고 있는 섹션인데도 불구하고"
current_focused_object가 이미 taken되어서 state update하지 않는다.
-> 따라서 그냥 섹션은 만들지 않는 게 편하다.
섹션 만들꺼면, 그 섹션이 자체적으로
자신(this)을 "current_focused_object"로 만들지 않는다는 가정을 해야 한다.
예를 들면 ColorPicker안에
마우스로 색 선택하는 "커스텀 영역"의 감지와
슬라이더나 버튼이 움직이게 하기 위해서
(물론 이런 경우에는 커스텀 영역은 드래그하고 있을때만 focused됨)
적절히 this를 focused에 등록 / 제거 해야한다.
++ 추가
-> 위에서는 오브젝트 컴포지션 쓰는 것처럼 말하는데,
최대한 안쓰는게 맞다.
(예를 들면 HSlider안에다가 Grabber를 Button으로 구현한다거나.)
코드가 줄어들긴 하겠지만,
섹션 안 오브젝트 < - > 섹션 그 자체
이 둘 사이의 focus를 추적하면 그게 더 더럽다.
그냥 텍스트 에디터를 만들고 싶으면
처음부터 고정된 뭉탱이 디자인으로 만들고
Theme으로 형태를 받자.
(유저가 커스텀하고 싶어한다면 알아서 상속받아서 만들라고 하기)
+++ 추가22222
-> 지금 Godot에서는 Button도 한번 눌렀다면 하얀색 테두리로
current_focus_object가 그 버튼으로 남아 있는데,
나의 경우 focus_object는 버튼이 눌려있는 동안에만 유효하다.
그러나, 위의 "텍스트 에디터"의 경우
뭉탱이로 구현된 텍스트 에디터 영역을 선택했다면
그 텍스트에디터를 current_focus_object로 만든 후에,
"다른 곳을 클릭하거나" 뭐 그런 이벤트가 나기 전까지는
current_focus_object를 텍스트 에디터로 유지해야 한다.
왜냐면 들어온 text input이벤트를 감지해야 하기 때문이다.