Example #1
0
        void NFrameBase::SetChildBottommost(NFrameBase* child)
        {
            NAssertError(child != NULL, _T("wrong type"));
            if(child == NULL)
                return;

            size_t zorder;
            FrameList::const_iterator ite = GetChildHelper(child, zorder);
            NAssertError((ite != childs_.end()), _T("child not exists"));
            if(ite == childs_.end())
                return;
            if(zorder >= childs_.size() - bottomMostCount_)
                return;
            if(zorder < topMostCount_)
                -- topMostCount_;
            // move
            childs_.erase(ite);
            ite = childs_.begin();
            size_t offset = childs_.size() - bottomMostCount_;
            for(size_t i=0; i<offset; ++ i)
            {
                ++ ite;
            }
            childs_.insert(ite, child);
            ++ bottomMostCount_;
        }
Example #2
0
 void NWndUi::AttachWnd(HWND hWnd)
 {
     NAssertError(hWnd != NULL && ::IsWindow(hWnd), _T("Not A Good Window"));
     if(hWnd == NULL || !::IsWindow(hWnd))
         return;
     NAssertError(realWindow_ == NULL && ::GetProp(hWnd, _T("NWndUiObj")) == NULL, _T("NWndUi Attached Already"));
     realWindow_ = hWnd;
     ::SetProp(realWindow_, _T("NWndUiObj"), reinterpret_cast<HANDLE>(this));
 }
Example #3
0
        size_t NFrameBase::GetChildZOrder(NFrameBase* child) const
        {
            NAssertError(child != NULL, _T("wrong type"));
            if(child == NULL)
                return static_cast<size_t>(-1);

            size_t zorder;
            FrameList::const_iterator ite = GetChildHelper(child, zorder);
            NAssertError(ite != childs_.end(), _T("child not exists"));
            return zorder;
        }
Example #4
0
        void NFrameBase::SetParentHelper(NFrameBase* child, NFrameBase* newParent)
        {
            if(newParent == child->parentFrame_)
                return;
            NAssertError(child != NULL, _T("wrong type"));

            if(child->parentFrame_ != NULL)
            {
                NFrameBase* parent = child->parentFrame_;
                parent->RemoveChild(child);
                child->parentFrame_ = NULL;
                parent->Invalidate();
            }
            if(newParent == NULL)
            {
                child->Release();
            }
            else
            {
                child->parentFrame_ = newParent;
                child->AddRef();
            }
            child->OnParentChanged();
            if(child->parentFrame_)
                child->parentFrame_->Invalidate();
        }
Example #5
0
 NFrameBase::~NFrameBase()
 {
     NAssertError(Util::Misc::IsFlagChecked(frameFlags_, FlagValid), _T("NFrameBase not valid already"));
     frameFlags_ = 0;
     parentFrame_ = NULL;
     RemoveAllChilds();
 }
Example #6
0
 NBaseObj* NReflect::Create(LPCTSTR szNamespace, LPCTSTR szClassName, LPCSTR filePath, int line)
 {
     NBaseObj* result = NULL;
     ClassData* pClassData;
     if(GetClassData(szNamespace, szClassName, pClassData))
     {
         if(pClassData->flag == None)
         {
             result = pClassData->creator(filePath, line);
         }
         else if(pClassData->flag == Singleton)
         {
             if(pClassData->existObj == NULL)
             {
                 pClassData->existObj = pClassData->creator(filePath, line);
                 if(pClassData->existObj != NULL)
                 {
                     pClassData->existObj->AddRef();
                 }
             }
             result = pClassData->existObj;
         }
     }
     if(result != NULL)
         result->AddRef();
     NAssertError(result != NULL, _T("Invalid data in NReflect::Create"));
     return result;
 }
Example #7
0
        bool NFrameBase::AddChild(NFrameBase* child)
        {
            NAssertError(child != NULL, _T("wrong type"));
            if(child == NULL)
                return FALSE;

            // check if exists
            size_t zorder;
            NAssertError(GetChildHelper(child, zorder) == childs_.end(), _T("child already exists"));
            if(GetChildHelper(child, zorder) != childs_.end())
                return true;

            childs_.push_back(child);
            SetParentHelper(child, this);

            return true;
        }
Example #8
0
        NEdit* NEdit::SetReadOnly(bool readOnly)
        {
            NAssertError(IsWndValid(), _T("call parent->AddChild first"));
            if(!IsWndValid())
                return this;

            ::SendMessage(realWindow_, EM_SETREADONLY, readOnly, 0);
            return this;
        }
Example #9
0
        NEdit* NEdit::SelectAll()
        {
            NAssertError(IsWndValid(), _T("call parent->AddChild first"));
            if(!IsWndValid())
                return this;

            ::SendMessage(realWindow_, EM_SETSEL, 0, -1);
            return this;
        }
Example #10
0
        bool NFrameBase::AddChild(NFrameBase* child)
        {
            NAssertError(child != NULL, _T("wrong type"));
            if(child == NULL)
                return FALSE;

            // check if exists
            size_t zorder;
            NAssertError(GetChildHelper(child, zorder) == childs_.end(), _T("child already exists"));

            FrameList::const_iterator ite = GetChildHelper(child, zorder);
            for(int i=topMostCount_; i>0; --i)
            {
                -- ite;
            }
            childs_.insert(ite, child);
            SetParentHelper(child, this);

            return true;
        }
Example #11
0
 NRender* NUiBus::CreateRender()
 {
     NRender* render = NULL;
     switch(renderType_)
     {
     case NRenderType::GdiRender:
         render = dynamic_cast<GdiRender*>(NNew(GdiRender));
         break;
     }
     NAssertError(render != NULL, TEXT("unknown type of RenderType: %d"), renderType_);
     return render;
 }
Example #12
0
        bool NImage::LoadImage(LPCTSTR filePath)
        {
            NResourceLoader* loader = NUiBus::Instance().GetResourceLoader();
            imageDraw_ = loader->LoadImage(filePath);
            NAssertError(imageDraw_ != NULL, _T("Load Image Failed: %s"), filePath);
            if(imageDraw_ == NULL)
                return false;

            AutoSize();

            Start();

            return true;
        }
Example #13
0
        size_t NFrameBase::SetChildZOrder(NFrameBase* child, size_t zorder)
        {
            NAssertError(child != NULL, _T("wrong type"));
            if(child == NULL)
                return static_cast<size_t>(-1);

            size_t tmpZorder;
            FrameList::const_iterator ite = GetChildHelper(child, tmpZorder);
            NAssertError(ite != childs_.end(), _T("child not exists"));
            if(ite == childs_.end())
                return static_cast<size_t>(-1);

            if(tmpZorder < topMostCount_ || tmpZorder >= childs_.size() - bottomMostCount_)
                return tmpZorder;

            childs_.erase(ite);
            zorder = (zorder > childs_.size()) ? childs_.size() : zorder;
            zorder = (zorder < 0) ? 0 : zorder;
            ite = childs_.begin();
            for(size_t i=0; i<zorder; ++ i)
                ++ ite;
            childs_.insert(ite, child);
            return zorder;
        }
Example #14
0
        NEdit* NEdit::ShowTooltip(TooltipIconType iconType, LPCTSTR szTitle, LPCTSTR szText)
        {
            NAssertError(IsWndValid(), _T("call parent->AddChild first"));
            if(!IsWndValid())
                return this;

            nui::Base::NInstPtr<nui::Data::NStringBundle> stringBundle(MemToolParam);
            Base::NString strTitle = stringBundle->GetString(szTitle);
            Base::NString strText = stringBundle->GetString(szText);

            EDITBALLOONTIP tip = {sizeof(EDITBALLOONTIP)};
            tip.pszText = strText.GetData();
            tip.pszTitle = strTitle.GetData();
            tip.ttiIcon = iconType;
            ::SendMessage(realWindow_, EM_SHOWBALLOONTIP, 0, (LPARAM)&tip);
            return this;
        }
Example #15
0
        void NUiBus::Init(NRenderType::Type type)
        {
            Destroy();

            renderType_ = type;

            loader_ = NULL;

            switch(renderType_)
            {
            case NRenderType::GdiRender:
                loader_ = dynamic_cast<NResourceLoader*>(NNew(GdiResourceLoader));
                dynamic_cast<GdiResourceLoader*>(loader_)->Init();
                loader_->AddRef();
                break;
            }
            NAssertError(loader_ != NULL, TEXT("unknown type of LoaderType: %d"), renderType_);
        }
Example #16
0
 void NReflect::ReleaseData(NCore* core)
 {
     UNREFERENCED_PARAMETER(core);
     NamespaceInfoMap::iterator iteNamespace = m_mapNamespaceInfo.begin();
     for(; iteNamespace != m_mapNamespaceInfo.end(); ++ iteNamespace)
     {
         ClassDataMap::iterator iteClass = iteNamespace->second.begin();
         ClassDataMap::iterator iteClassEnd = iteNamespace->second.end();
         for(; iteClass != iteClassEnd; ++ iteClass)
         {
             ClassData& data = iteClass->second;
             if(data.existObj != NULL)
             {
                 int refCount = data.existObj->Release();
                 UNREFERENCED_PARAMETER(refCount);
                 NAssertError(core != data.existObj || refCount == 1, _T("Singleton Object Leak"));
             }
         }
     }
 }
Example #17
0
        bool NFrameBase::RemoveChild(NFrameBase* child)
        {
            NAssertError(child != NULL, _T("wrong type"));
            if(child == NULL)
                return FALSE;

            size_t zorder;
            FrameList::const_iterator ite = GetChildHelper(child, zorder);
            if(ite == childs_.end())
                return false;

            if(zorder < topMostCount_)
                -- topMostCount_;
            if(zorder >= childs_.size() - bottomMostCount_)
                -- bottomMostCount_;

            childs_.erase(ite);
            SetParentHelper(child, NULL);
            return true;
        }
Example #18
0
        bool NReflect::RemoveReflect(LPCTSTR szNamespace, LPCTSTR szClassName)
        {
            NamespaceInfoMap::iterator iteInfo = m_mapNamespaceInfo.find(szNamespace);
            if(iteInfo == m_mapNamespaceInfo.end())
                return false;

            ClassDataMap::iterator iteCreator = iteInfo->second.find(szClassName);
            if(iteCreator == iteInfo->second.end())
                return false;

            ClassData& data = iteCreator->second;
            if(data.existObj != NULL)
            {
                int refCount = data.existObj->Release();
                UNREFERENCED_PARAMETER(refCount);
                NAssertError(refCount == 0, _T("Singleton Object Leak"));
            }
            iteInfo->second.erase(iteCreator);
            return true;
        }
Example #19
0
 bool NReflect::RemoveAllReflect(LPCTSTR szNamespace)
 {
     NamespaceInfoMap::iterator iteNamespace = m_mapNamespaceInfo.find(szNamespace);
     if(iteNamespace == m_mapNamespaceInfo.end())
         return false;
     ClassDataMap::iterator iteClass = iteNamespace->second.begin();
     ClassDataMap::iterator iteClassEnd = iteNamespace->second.end();
     for(; iteClass != iteClassEnd; ++ iteClass)
     {
         ClassData& data = iteClass->second;
         if(data.existObj != NULL)
         {
             int refCount = data.existObj->Release();
             UNREFERENCED_PARAMETER(refCount);
             NAssertError(refCount == 0, _T("Singleton Object Leak"));
         }
     }
     m_mapNamespaceInfo.erase(iteNamespace);
     return true;
 }
Example #20
0
        bool NReflect::AddReflect(LPCTSTR szNamespace, LPCTSTR szClassName, ObjectCreator objCreator, ReflectFlag flag)
        {
#ifdef _DEBUG
            NAssertError(!IsClassExists(szNamespace, szClassName), TEXT("Class has been added already"));
#endif

            NamespaceInfoMap::iterator iteInfo = m_mapNamespaceInfo.find(szNamespace);
            ClassData classData;
            classData.creator = objCreator;
            classData.flag = flag;
            classData.existObj = NULL;
            if(iteInfo == m_mapNamespaceInfo.end())
            {
                ClassDataMap classDataMap;
                classDataMap.insert(std::make_pair(szClassName, classData));
                m_mapNamespaceInfo.insert(std::make_pair(szNamespace, classDataMap));
            }
            else
            {
                iteInfo->second.insert(std::make_pair(szClassName, classData));
            }
            return true;
        }
Example #21
0
        bool NMsgLoop::Loop(HWND window, bool useWindow)
        {
            looping_ = true;
            NAssertError(!useWindow || window != NULL, _T("Wrong parameter in NMsgLoop::Loop"));
            MSG msg = {0};
            BOOL bResult = FALSE;
            for(;looping_;)
            {
                // Idle Handle
                if(!::PeekMessage(&msg, NULL, 0, 0, PM_NOREMOVE))
                {
                    DoIdleHandler(0);
                }

                bResult = ::GetMessage(&msg, NULL, 0, 0);
                if(bResult <= 0)
                    break;

                if(msg.message >= WM_MOUSEFIRST && msg.message <= WM_MOUSELAST
                    || msg.message >= WM_KEYFIRST && msg.message <= WM_KEYLAST)
                {
                    if(::IsDialogMessage(::GetAncestor(msg.hwnd, GA_ROOT), &msg))
                        continue;
                }

                ::TranslateMessage(&msg);
                ::DispatchMessage(&msg);

                if(useWindow && !::IsWindow(window))
                    break;
            }
            if(msg.message == WM_QUIT)
            {
                ::PostQuitMessage(msg.wParam);
            }
            return bResult >= 0;
        }
Example #22
0
 NResourceLoader* NUiBus::GetResourceLoader()
 {
     NAssertError(loader_ != NULL, _T("loader_ is NULL in NUiBus::GetLoader"));
     return loader_;
 }
Example #23
0
 bool WindowMap::AddWindow(HWND window, NWindowBase* windowObj)
 {
     NAssertError(windowObjMap_.find(window) == windowObjMap_.end(), _T("Window already exists in WindowMap"));
     std::pair<WindowObjectMap::iterator, bool> result = windowObjMap_.insert(std::make_pair(window, windowObj));
     return result.second;
 }
Example #24
0
 WindowMap::~WindowMap()
 {
     NAssertError(windowObjMap_.empty(), _T("There is window not removed"));
 }