Все посты %s в %S - AMK Team
Перейти к контенту

Вопросы без ответов (полуслужебная)


AndrewMor

Рекомендуемые сообщения

Кто знает, возможно в КПК на вкладке "Журнал" раздела "Личные заметки" прочтенные сообщения выделять белым цветом, так же, как это сделано в энциклопедии? И если да - что нужно сделать?

В исходниках правится, fix by lvg_brest.

1) UIDiaryWnd2.cpp

void CUIDiaryWnd::LoadJournalTab            (ARTICLE_DATA::EArticleType _type)
{
    delete_data                    (m_ArticlesDB);

    m_UILeftWnd->AttachChild    (m_SrcListWnd);
    m_SrcListWnd->Show            (true);

    m_UIRightWnd->AttachChild    (m_DescrView);
    m_DescrView->Show            (true);

    if(Actor()->encyclopedia_registry->registry().objects_ptr())
    {
        ARTICLE_VECTOR::const_iterator it = Actor()->encyclopedia_registry->registry().objects_ptr()->begin();
        for(; it != Actor()->encyclopedia_registry->registry().objects_ptr()->end(); it++)
        {
            if (_type == it->article_type)
                
            {
                // Исправление отображения зеленым цветом прочитанных записей в дневнике КПК
                AddDiaryArticle(it->article_id, it->readed);
            
            }
        }
    }
    g_pda_info_state    &=    !pda_section::journal;

}

void CUIDiaryWnd::OnSrcListItemClicked    (CUIWindow* w,void* p)
{
    CUITreeViewItem*    pSelItem    = (CUITreeViewItem*)p;
    m_DescrView->Clear    ();
    if (!pSelItem->IsRoot())
    {
        CUIEncyclopediaArticleWnd*    article_info = xr_new<CUIEncyclopediaArticleWnd>();
        article_info->Init            ("encyclopedia_item.xml","encyclopedia_wnd:objective_item");
        article_info->SetArticle    (m_ArticlesDB[pSelItem->GetValue()]);
        m_DescrView->AddWindow        (article_info, true);

        // Исправление отображения зеленым цветом прочитанных записей в дневнике КПК
        if (!pSelItem->IsArticleReaded())
        {
            if(Actor()->encyclopedia_registry->registry().objects_ptr())
            {
                for(ARTICLE_VECTOR::iterator it = Actor()->encyclopedia_registry->registry().objects().begin();
                    it != Actor()->encyclopedia_registry->registry().objects().end(); it++)
                {
                    if (ARTICLE_DATA::eJournalArticle == it->article_type &&
                        m_ArticlesDB[pSelItem->GetValue()]->Id() == it->article_id)
                    {
                        it->readed = true;
                        break;
                    }
                }
            }
        }
    }
}

В конце UIDiaryWnd2.cpp дописать:

// Исправление отображения зеленым цветом прочитанных записей в дневнике КПК
void CUIDiaryWnd::AddDiaryArticle(shared_str article_id, bool bReaded)
{
    m_ArticlesDB.resize(m_ArticlesDB.size() + 1);
    CEncyclopediaArticle*& a = m_ArticlesDB.back();
    a = xr_new<CEncyclopediaArticle>();
    a->Load(article_id);

    CreateTreeBranch(a->data()->group, a->data()->name, m_SrcListWnd, m_ArticlesDB.size()-1, 
        m_pTreeRootFont, m_uTreeRootColor, m_pTreeItemFont, m_uTreeItemColor, bReaded);
}

2) UIDiaryWnd.h

            void        UnloadNewsTab            ();
            void        LoadNewsTab                ();
            void        Reload                    (EDiaryFilter new_filter);
            // Исправление отображения зеленым цветом прочитанных записей в дневнике КПК
            void        AddDiaryArticle            (shared_str, bool bReaded);

 

 

Изменено пользователем HellRatz
  • Спасибо 1
  • Полезно 1

Поделиться этим сообщением


Ссылка на сообщение
  • Недавно просматривали   0 пользователей

    • Ни один зарегистрированный пользователь не просматривает эту страницу.
×
×
  • Создать...