亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? rightdownsplitter.cpp

?? 一款LINUX下的下載軟件
?? CPP
字號:

/*
右下的splitter,單獨做是因為它包含了變化的元素,便于處理
*/

#include "rightdownsplitter.h"
#include "threadinfowindow.h" //顯示線程信息的窗口,右邊
#include "showtablewindow.h"  //顯示圖表的窗口,右邊
#include "taskdetailreport.h" //任務詳細信息窗口,右邊
#include "righttree.h"		  //左邊的選擇控件
#include "mainframe.h"

#include <iostream>

using namespace std;
extern std::vector<_tasklog> gTaskLog;

void CRightDownSplitter::ShowTask( _TaskAttr* task )
{
    if ( task == NULL )
    {
        GetWindow2() ->Show( false );
        ReplaceWindow( GetWindow2(), m_pEmptyWin );
        m_pEmptyWin->Show( true );
    }

    //當它選擇root時,沒有消息返上來,奇怪?
    m_pRightTreeWin->ShowTask( task ); //讓它來決定右邊怎么顯示

    return ;

}


CRightDownSplitter::CRightDownSplitter( wxWindow* parent )
        : wxSplitterWindow(
            parent,
            wxID_ANY,
            wxDefaultPosition,
            wxDefaultSize,
            wxSP_LIVE_UPDATE,
            wxT( "rds" )
        )
{


    m_pThreadInfoWin = new CThreadInfoWindow( this );

    m_pShowTableWin = new CShowTableWindow( this );  //這個構造函數可能導致對話框有問題

    m_pRightTreeWin = new CRightTree( this );

    m_pEmptyWin = new wxListView( this, -1 );
    m_pEmptyWin->SetSingleStyle( wxLC_NO_HEADER );

    m_pEmptyWin->SetBackgroundStyle( wxBG_STYLE_CUSTOM );
    m_pEmptyWin->SetBackgroundColour( wxColour( 255, 255, 255 ) );

    m_pTaskDetailWin = new CTaskDetailReport( this );


    assert( m_pThreadInfoWin != NULL );
    assert( m_pShowTableWin != NULL );
    assert( m_pRightTreeWin != NULL );
    assert( m_pEmptyWin != NULL );
    assert( m_pTaskDetailWin != NULL );

    m_pThreadInfoWin->Show( false );
    m_pShowTableWin->Show( false ); //如果沒有這個對話框顯示就會出問題
    m_pEmptyWin->Show( false );
    m_pTaskDetailWin->Show( false );
    m_pRightTreeWin->Show( false );


    SetSashGravity( 0 );
    SetMinimumPaneSize( 140 );

    SplitVertically( m_pRightTreeWin, m_pEmptyWin, 140 );
    m_pRightTreeWin->Show( true );

}

//ok
CRightDownSplitter::~CRightDownSplitter()
{

    //切換到Splitter中用于顯示的窗口可以不管,但沒顯示的窗口需要刪除
    //將來右邊的窗口種類增加時,這個要變
    ReplaceWindow( GetWindow2(), m_pEmptyWin );
    m_pShowTableWin->Destroy();
    m_pThreadInfoWin->Destroy();
    m_pTaskDetailWin->Destroy();

}

//上層調用這個函數來在右邊顯示任務的詳細信息,如果這時右邊的顯示模式不是
//任務的詳細信息模式,那么報告一個不一致的錯誤
void CRightDownSplitter::ShowTaskDetailReport( _TaskAttr& task )
{
    m_pTaskDetailWin->ShowTaskDetail( task );
}

//當右邊的樹控件選擇了一個條目時,把條目中的數據傳到這里來處理,
//可能需要右邊進行相應的顯示變化
void CRightDownSplitter::OnRightTreeSelectItem( int nodedata )
{

    //0是根,右邊切換空白
    //-1是信息提取器
    //-2是文件管理器
    //-3是圖表,右邊切換成圖表
    //1-19是線程信息
    //20是詳細信息
    //21是日志記錄


    if ( !nodedata )  //root
    {

        GetWindow2() ->Show( false );
        ReplaceWindow( GetWindow2(), m_pEmptyWin );
        m_pEmptyWin->Show();
        //下面兩句作用不明??
        MainFrame* pmainframe = ( MainFrame* ) ( GetParent() ->GetParent() ->GetParent() );
        pmainframe->OnShowModeSwitch( nodedata );
        return ;
    }

    //一個是信息提取,一個是文件管理,都用線程信息顯示
    if ( -1 == nodedata || -2 == nodedata )
    {
        GetWindow2() ->Show( false );
        ReplaceWindow( GetWindow2(), m_pThreadInfoWin );
        m_pThreadInfoWin->DeleteAllItems(); //??
        m_pThreadInfoWin->Show( true );
        //向上層通報
        MainFrame* pmainframe = ( MainFrame* ) ( GetParent() ->GetParent() ->GetParent() );
        pmainframe->OnShowModeSwitch( nodedata );
        return ;
    }

    if ( -3 == nodedata )
    {
        GetWindow2() ->Show( false );
        ReplaceWindow( GetWindow2(), m_pShowTableWin );
        m_pShowTableWin->Show( true );
        MainFrame* pmainframe = ( MainFrame* ) ( GetParent() ->GetParent() ->GetParent() );
        pmainframe->OnShowModeSwitch( nodedata );
        return ;
    }

    if ( nodedata >= 1 && nodedata <= 19 )
    {
        GetWindow2() ->Show( false );
        ReplaceWindow( GetWindow2(), m_pThreadInfoWin );
        m_pThreadInfoWin->DeleteAllItems();  //??
        m_pThreadInfoWin->Show( true );
        MainFrame* pmainframe = ( MainFrame* ) ( GetParent() ->GetParent() ->GetParent() );
        pmainframe->OnShowModeSwitch( nodedata );
        return ;
    }

    if ( nodedata == 20 )
    {
        GetWindow2() ->Show( false );
        ReplaceWindow( GetWindow2(), m_pTaskDetailWin );
        m_pTaskDetailWin->Show( true );

        //找到當前選擇的任務,顯示任務詳細信息
        MainFrame* pmainframe = ( MainFrame* ) ( GetParent() ->GetParent() ->GetParent() );
        _TaskAttr* curtask = pmainframe->GetCurrentTask();

        ShowTaskDetailReport( *curtask );
        pmainframe->OnShowModeSwitch( nodedata );
        return ;
    }

    if ( nodedata == 21 )  //log info
    {
        GetWindow2() ->Show( false );
        ReplaceWindow( GetWindow2(), m_pThreadInfoWin );

        m_pThreadInfoWin->DeleteAllItems(); //??
        m_pThreadInfoWin->Show( true );

        //添加日志數據
        MainFrame* pmainframe = ( MainFrame* ) ( GetParent() ->GetParent() ->GetParent() );
        _TaskAttr* curtask = pmainframe->GetCurrentTask();

        //提取curtask->nID日志并顯示
        std::vector<_tasklog>::const_iterator it;

        for ( it = gTaskLog.begin();it != gTaskLog.end();it++ )
        {
            if ( it->ntaskid == curtask->nID )
            {
                m_pThreadInfoWin->AddInfo( it->ntype, it->info, it->ntime );
            }
        }

        pmainframe->OnShowModeSwitch( nodedata );
        return ;
    }
}



void CRightDownSplitter::DynamicLang()
{
    m_pRightTreeWin->DynamicLang();
    m_pTaskDetailWin->DynamicLang();
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美日韩一区不卡| 欧美色成人综合| 欧美在线免费视屏| 久久综合九色综合97婷婷女人| 亚洲视频一二三| 国产制服丝袜一区| 69成人精品免费视频| 最新日韩av在线| 国产高清不卡一区| 26uuu精品一区二区三区四区在线| 亚洲欧美另类在线| 波多野结衣中文字幕一区| 日韩欧美久久久| 日韩黄色片在线观看| 欧美亚洲动漫制服丝袜| 一色桃子久久精品亚洲| 国产成人av电影| 久久品道一品道久久精品| 美女性感视频久久| 91精品中文字幕一区二区三区| 亚洲视频在线一区二区| 波多野结衣精品在线| 日本一区二区三区电影| 国产成人小视频| 久久久www成人免费毛片麻豆| 九九在线精品视频| 欧美一卡二卡在线观看| 视频一区视频二区中文| 欧美日韩国产精选| 日日夜夜免费精品| 91精品国产综合久久小美女| 午夜精品福利久久久| 欧美精品在线视频| 污片在线观看一区二区| 欧美一区二区三区小说| 日本不卡在线视频| 精品国产成人系列| 国产成人综合亚洲91猫咪| 国产精品素人视频| av高清久久久| 亚洲综合成人在线视频| 欧美日韩国产精品成人| 美女一区二区在线观看| 国产丝袜在线精品| 色综合天天做天天爱| 亚洲一区二区三区四区五区中文| 欧美色偷偷大香| 日韩高清电影一区| 精品国产乱码久久久久久久 | 亚洲成人动漫av| 欧美一级夜夜爽| 国产一区视频在线看| 亚洲国产精品成人综合色在线婷婷 | 国产精品伊人色| 亚洲欧洲在线观看av| 欧美性大战xxxxx久久久| 天堂久久久久va久久久久| 久久综合九色综合久久久精品综合 | 一区二区三区在线免费播放 | 久久久不卡影院| 91欧美一区二区| 日韩高清在线电影| 国产精品乱码久久久久久| 在线亚洲人成电影网站色www| 日韩高清中文字幕一区| 中文字幕一区在线观看视频| 欧美日韩黄视频| 国产成a人亚洲| 三级在线观看一区二区| 国产精品传媒视频| 欧美精品tushy高清| 国产激情一区二区三区桃花岛亚洲| 一区二区三区鲁丝不卡| 久久久久久久网| 欧美人狂配大交3d怪物一区| 大尺度一区二区| 毛片av中文字幕一区二区| 国产精品久久久久三级| 日韩精品一区二区三区视频在线观看| 成人福利在线看| 久久机这里只有精品| 亚洲一级片在线观看| 国产女主播在线一区二区| 69p69国产精品| 欧美三级中文字幕在线观看| 成人性视频网站| 久久 天天综合| 五月天亚洲婷婷| 亚洲精品视频在线看| 国产色91在线| 欧美成人乱码一区二区三区| 欧美天堂亚洲电影院在线播放| 成人午夜激情视频| 国内精品写真在线观看| 天堂资源在线中文精品| 亚洲精品ww久久久久久p站| 日本一区二区三区在线不卡| 26uuu欧美| 精品捆绑美女sm三区| 91麻豆精品国产| 欧美丝袜丝交足nylons图片| 99精品在线免费| 不卡的av电影在线观看| 国产91露脸合集magnet| 国产精品中文字幕一区二区三区| 麻豆精品一二三| 蜜臀久久久久久久| 日本美女一区二区| 国产精品美女久久久久高潮| 久久久99精品免费观看| 久久久亚洲精品一区二区三区| 日韩精品一区国产麻豆| 日韩欧美专区在线| 日韩欧美综合在线| 久久综合九色综合久久久精品综合| 精品免费视频一区二区| 欧美tickling挠脚心丨vk| 日韩你懂的电影在线观看| 日韩欧美精品三级| 久久久亚洲综合| 国产精品久久精品日日| 17c精品麻豆一区二区免费| 中文字幕一区二区三区蜜月| 日韩一区欧美一区| 亚洲一区二区三区四区在线| 日本在线不卡视频| 蜜桃传媒麻豆第一区在线观看| 久久精品99国产精品| 高清不卡在线观看| 99精品久久久久久| 欧美日韩一区二区三区免费看| 欧美三区在线观看| 久久久影院官网| 亚洲男人的天堂一区二区| 亚洲国产成人tv| 久久精品国产精品亚洲精品| 成人午夜短视频| 欧美色视频在线| 国产亚洲欧美色| 一区二区三区精品视频| 蜜桃久久久久久| 99精品视频中文字幕| 欧美日韩精品福利| 久久精品人人做人人综合 | 国产精品入口麻豆原神| 一区二区三区四区蜜桃| 蜜桃一区二区三区四区| 99视频精品在线| 欧美一区二区在线视频| 日本一区二区动态图| 亚洲成人777| 国产**成人网毛片九色| 欧美日本一区二区| 国产欧美视频一区二区| 亚洲成av人片在线观看无码| 国产成人啪免费观看软件 | 日韩在线播放一区二区| 成人深夜在线观看| 欧美一区二区免费观在线| 国产精品久久久久毛片软件| 手机精品视频在线观看| 91香蕉国产在线观看软件| 精品美女在线播放| 午夜久久福利影院| 99精品久久只有精品| 久久香蕉国产线看观看99| 亚洲国产成人高清精品| 成人国产精品免费观看动漫| 精品欧美一区二区在线观看| 亚洲午夜日本在线观看| 成人av影视在线观看| 欧美大片一区二区| 亚洲va欧美va人人爽| 91网站最新地址| 国产午夜精品久久久久久免费视 | 蜜桃精品视频在线| 欧美日韩亚洲综合一区二区三区| 久久久久久久性| 久久精品99国产精品日本| 6080亚洲精品一区二区| 亚洲激情五月婷婷| 色婷婷精品大在线视频 | 99久久久久久| 亚洲国产精品精华液ab| 国产精品系列在线播放| 欧美精品一区二区三区高清aⅴ| 三级在线观看一区二区| 欧美三级日韩在线| 亚洲综合av网| 91久久久免费一区二区| 亚洲色欲色欲www| 99精品欧美一区| 亚洲免费看黄网站| 99国产精品久久| 亚洲欧美另类图片小说| 91欧美一区二区| 亚洲一区免费视频| 欧美色爱综合网| 日产欧产美韩系列久久99| 911精品产国品一二三产区|