📄 tasklist.cpp
字号:
item.SetImage( 1 );
break;
case _STATUS_WAITING:
item.SetImage( 2 ); //等待运行的图标暂时用这个
break;
case _STATUS_PAUSE:
item.SetImage( 3 );
break;
case _STATUS_WRONG:
item.SetImage( 4 );
break;
case _STATUS_FINISH:
case _STATUS_FINISH_SOFT:
case _STATUS_FINISH_PACK:
case _STATUS_FINISH_MUSIC:
case _STATUS_FINISH_ISO:
case _STATUS_FINISH_MOVIE:
case _STATUS_FINISH_PUBLISH:
case _STATUS_FINISH_PICTURE:
case _STATUS_FINISH_UNKNOW:
item.SetImage( 5 );
break;
case _STATUS_DELETE:
item.SetImage( 4 );
break;
case _STATUS_ROOT:
default:
break;
}
if ( task.nStatus == _STATUS_RUNNING )
item.SetId( 0 );
else
item.SetId( GetItemCount() );
id = InsertItem( item );
SetItemData( id, task.nID );
wxString wxsName( task.sName.c_str(), wxConvLocal );
SetItem( id, 1, wxsName );
wxString wxs;
wxs.Printf( wxT( "%lld" ), task.nLen );
SetItem( id, 2, wxs );
wxs.Printf( wxT( "%lld" ), task.nFinish );
SetItem( id, 3, wxs );
wxs.Printf( wxT( "%0.2f%%" ), 100 * task.fRatio );
SetItem( id, 4, wxs );
wxs.Printf( wxT( "%dKB/S" ), task.nSpeed / 1024 );
SetItem( id, 5, wxs );
//wxs.Printf( wxT( "%d S" ), task.nTime );
SetItem( id, 6, TimeToString( task.nTime ) );
wxs.Printf( wxT( "%d" ), task.nError );
SetItem( id, 7, wxs );
wxString wxURL( task.sURL.c_str(), wxConvLocal );
SetItem( id, 8, wxURL );
}
wxString CTaskList::TimeToString( int seconds )
{
wxString retstr;
if ( seconds < 0 )
{
retstr = wxGetApp().GetWxStr( _S_UNKNOW );
return retstr;
}
if ( seconds > 86400 )
{
retstr.Printf( wxGetApp().GetWxStr( _S_TASKLIST_DAY ), seconds / 86400 );
}
else
{
wxString temp;
temp.Printf( wxGetApp().GetWxStr( _S_TASKLIST_TIME ),
( seconds % 86400 ) / 3600, ( seconds % 3600 ) / 60, seconds % 60 );
retstr += temp;
}
return retstr;
}
void CTaskList::DynamicLang()
{
wxListItem itemCol;
GetColumn( 1, itemCol ) ;
itemCol.SetText( wxGetApp().GetWxStr( _S_FILENAME ) );
SetColumn( 1, itemCol );
GetColumn( 2, itemCol ) ;
itemCol.SetText( wxGetApp().GetWxStr( _S_SIZE ) );
SetColumn( 2, itemCol );
GetColumn( 3, itemCol ) ;
itemCol.SetText( wxGetApp().GetWxStr( _S_FINISH ) );
SetColumn( 3, itemCol );
GetColumn( 4, itemCol ) ;
itemCol.SetText( wxGetApp().GetWxStr( _S_PROGRESS ) );
SetColumn( 4, itemCol );
GetColumn( 5, itemCol ) ;
itemCol.SetText( wxGetApp().GetWxStr( _S_SPEED ) );
SetColumn( 5, itemCol );
GetColumn( 6, itemCol ) ;
itemCol.SetText( wxGetApp().GetWxStr( _S_LEFTTIME ) );
SetColumn( 6, itemCol );
GetColumn( 7, itemCol ) ;
itemCol.SetText( wxGetApp().GetWxStr( _S_RETRY ) );
SetColumn( 7, itemCol );
GetColumn( 8, itemCol ) ;
itemCol.SetText( wxGetApp().GetWxStr( _S_URL ) );
SetColumn( 8, itemCol );
}
void CTaskList::OnErase( wxEraseEvent& event )
{ //KDE下,白色会变灰色底,在List里不能通过这个方法修改背景颜色
event.Skip();
// wxCoord w,h;
// wxPaintDC pdc(this);
// pdc.GetSize(&w,&h);
// pdc.Clear();
//pdc.DrawIcon(*m_tjicon,(w-90)/2,h-100);
// return;
}
void CTaskList::OnRightClick( wxListEvent& event )
{
//find mainwin
MainFrame * mf = ( MainFrame* ) ( GetParent() ->GetParent() ->GetParent() );
_TaskAttr* pcur = mf->GetCurrentTask();
if ( pcur == NULL )
return ;
//pop a menu,run,stop,delete,prop ...
// 菜单开始
wxMenu *rootPopMenu = new wxMenu; //( wxT( "Options" ) );
wxMenuItem *ti;
ti =
new wxMenuItem( rootPopMenu, mgID_PRUN, _MGSTR( _S_TIP_RUNTASK ), wxT( "help" ) );
ti->SetBitmap( wxBitmap( run_xpm ) );
rootPopMenu->Append( ti );
ti =
new wxMenuItem( rootPopMenu, mgID_PSTOP, _MGSTR( _S_TIP_STOPTASK ), wxT( "help" ) );
ti->SetBitmap( wxBitmap( stop_xpm ) );
rootPopMenu->Append( ti );
ti =
new wxMenuItem( rootPopMenu, mgID_PDELETE, _MGSTR( _S_TIP_DELETETASK ), wxT( "help" ) );
ti->SetBitmap( wxBitmap( delete_xpm ) );
rootPopMenu->Append( ti );
rootPopMenu->AppendSeparator();
ti =
new wxMenuItem( rootPopMenu, mgID_PRELOAD, _MGSTR( _S_TIP_RELOADTASK ), wxT( "help" ) );
ti->SetBitmap( wxBitmap( reload_xpm ) );
rootPopMenu->Append( ti );
rootPopMenu->AppendSeparator();
ti =
new wxMenuItem( rootPopMenu, mgID_PROPERTY, _MGSTR( _S_TIP_PROPERTY ), wxT( "help" ) );
ti->SetBitmap( wxBitmap( property_xpm ) );
rootPopMenu->Append( ti );
/*
//共用工具条提示
rootPopMenu->Append( mgID_PRUN, _MGSTR(_S_TIP_RUNTASK) );
rootPopMenu->Append( mgID_PSTOP, _MGSTR( _S_TIP_STOPTASK ) );
rootPopMenu->Append( mgID_PDELETE, _MGSTR( _S_TIP_DELETETASK ) );
rootPopMenu->Append( mgID_PRELOAD, _MGSTR( _S_TIP_RELOADTASK ) );
rootPopMenu->Append( mgID_PROPERTY, _MGSTR( _S_TIP_PROPERTY ) );
*/
switch ( pcur->nStatus )
{
case _STATUS_RUNNING:
case _STATUS_WAITING:
{
rootPopMenu->Enable( mgID_PRUN, false );
rootPopMenu->Enable( mgID_PDELETE, true );
}
break;
case _STATUS_PAUSE:
{
rootPopMenu->Enable( mgID_PSTOP, false );
}
break;
case _STATUS_WRONG:
{
rootPopMenu->Enable( mgID_PSTOP, false );
}
break;
case _STATUS_FINISH_SOFT:
case _STATUS_FINISH_PACK:
case _STATUS_FINISH_MUSIC:
case _STATUS_FINISH_ISO:
case _STATUS_FINISH_MOVIE:
case _STATUS_FINISH_PUBLISH:
case _STATUS_FINISH_PICTURE:
case _STATUS_FINISH_UNKNOW:
{
rootPopMenu->Enable( mgID_PRUN, false );
rootPopMenu->Enable( mgID_PSTOP, false );
}
break;
case _STATUS_DELETE:
{
rootPopMenu->Enable( mgID_PSTOP, false );
}
break;
default:
break;
}
PopupMenu( rootPopMenu );
delete rootPopMenu;
}
//pop menu
void CTaskList::OnRun( wxCommandEvent& event )
{
MainFrame * mf = ( MainFrame* ) ( GetParent() ->GetParent() ->GetParent() );
mf->OnStartTask( event );
}
void CTaskList::OnStop( wxCommandEvent& event )
{
MainFrame * mf = ( MainFrame* ) ( GetParent() ->GetParent() ->GetParent() );
mf->OnStopTask( event );
}
void CTaskList::OnDelete( wxCommandEvent& event )
{
MainFrame * mf = ( MainFrame* ) ( GetParent() ->GetParent() ->GetParent() );
mf->OnCancelTask( event );
}
void CTaskList::OnProperty( wxCommandEvent& event )
{
MainFrame * mf = ( MainFrame* ) ( GetParent() ->GetParent() ->GetParent() );
mf->OnProperty( event );
}
void CTaskList::OnReload( wxCommandEvent& event )
{
MainFrame * mf = ( MainFrame* ) ( GetParent() ->GetParent() ->GetParent() );
mf->OnReloadFile( event );
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -