0504 겹치는UI에대해서

1. 겹치는 UI는 최대한 만들지 않는다.

// ============================================= // 

밑에 있는 m_popup_list는 끔찍한 생각이다.
    test/0511/(중요) 팝업GUI - 해답 - UILayer의 구현.txt 을 참고하자.

    UILayer에 대한 구현이 필요하다.


    ++ 그리고 애초에 InnerWindow안의
        호버링되고 있는 오브젝트를 케어할 필요가 없던 게
        애초에 InnerWindow는 포커싱을 잡고 있지 않다!!!!!!!!않아야 한다!!!!!!
            -> 밑의 버튼들은 그냥 자식으로만 달려있을 뿐이고,
                InnerWindow가 움직이면 종속적으로 움직인다.

// ============================================ //


2. Inner-Window 처럼 팝업의 경우,
    무조건 겹치는 부분이 생기는데,
    나중에 추가할 때

        "업데이트는 먼저되고, 렌더링은 나중에 된다."
            -> IControl에서 add_child에
                만약 추가하려는 자식이 popup이면 
                m_popup_list에 넣기
                아니면 원래함수호출.
                    (단, IObject에 InnerWindow를 자식으로 추가하는 것은 금지)
                    (무조건 IControl딴에서 걸러져야 함.)

                그리고 m_popup_list 만 따로 
                    먼저업데이트하고
                    나중에렌더링하고

        즉
        1. Inner-Window는 다른 오브젝트들보다 먼저 업데이트된다.
        2. Inner-Window는 다른 오브젝트들이 모두 그려진 후, 위에 그려진다.
        3. Inner-Window에서 hovering되고 있는 UI들을 처리하기 위해서
            IViewport에다가 m_current_hovering_object를 추가하고 
            모든 UI에 대해 그걸 고려하게 한다.
                (Idle -> Hover로 전환할 때 get_current_hovering_object()가 nullptr이라는 제약 추가)

    (Inner-Window가 여러 겹일 수 있는가도 생각해야 함.)

2-1. 또는 뇌절이긴 한데
    -> 팝업을 모두 IApp으로 만들어서
        진짜 새로운 윈도우를 띄우도록...

3. 고도에 프로젝트 설정같은 에디터 팝업 메뉴들 생각하면

    "UI Layer"개념을 도입해도 괜찮을 듯 하다