*** empty log message ***

svn path=/trunk/boinc/; revision=4374
This commit is contained in:
Rom Walton 2004-10-21 14:29:59 +00:00
parent 5abd364e57
commit 32878db98d
8 changed files with 319 additions and 161 deletions

View File

@ -21,6 +21,9 @@
// Revision History:
//
// $Log$
// Revision 1.11 2004/10/21 14:29:58 rwalton
// *** empty log message ***
//
// Revision 1.10 2004/09/25 21:33:22 rwalton
// *** empty log message ***
//
@ -41,8 +44,8 @@
#define ID_STATUSBAR 6000
#define ID_COMMANDSATTACHPROJECT 6001
#define ID_TOOLSOPTIONS 6002
#define ID_TOOLSOPTIONS 6001
#define ID_FRAMENOTEBOOK 6002
#define ID_FRAMETASKRENDERTIMER 6003
#define ID_FRAMELISTRENDERTIMER 6004
#define ID_LIST_PROJECTSVIEW 6005

View File

@ -442,43 +442,98 @@ wxInt32 CMainDocument::ProjectAttach( wxString& strURL, wxString& strAccountKey
}
wxInt32 CMainDocument::ProjectDetach( wxString& strURL )
wxInt32 CMainDocument::ProjectDetach( wxInt32 iIndex )
{
PROJECT p;
p.master_url = strURL;
return rpc.project_op(p, wxT("detach"));
PROJECT* pProject = NULL;
wxInt32 iRetVal = -1;
if ( project_status.projects.size() != 0 )
pProject = project_status.projects.at( iIndex );
if ( NULL != pProject )
iRetVal = rpc.project_op( (*pProject), wxT("detach") );
return iRetVal;
}
wxInt32 CMainDocument::ProjectUpdate( wxString& strURL )
wxInt32 CMainDocument::ProjectUpdate( wxInt32 iIndex )
{
PROJECT p;
p.master_url = strURL;
return rpc.project_op(p, wxT("update"));
PROJECT* pProject = NULL;
wxInt32 iRetVal = -1;
if ( project_status.projects.size() != 0 )
pProject = project_status.projects.at( iIndex );
if ( NULL != pProject )
iRetVal = rpc.project_op( (*pProject), wxT("update") );
return iRetVal;
}
wxInt32 CMainDocument::ProjectReset( wxString& strURL )
wxInt32 CMainDocument::ProjectReset( wxInt32 iIndex )
{
PROJECT p;
p.master_url = strURL;
return rpc.project_op(p, wxT("reset"));
PROJECT* pProject = NULL;
wxInt32 iRetVal = -1;
if ( project_status.projects.size() != 0 )
pProject = project_status.projects.at( iIndex );
if ( NULL != pProject )
iRetVal = rpc.project_op( (*pProject), wxT("reset") );
return iRetVal;
}
wxInt32 CMainDocument::ProjectSuspend( wxString& strURL )
wxInt32 CMainDocument::ProjectSuspend( wxInt32 iIndex )
{
PROJECT p;
p.master_url = strURL;
return rpc.project_op(p, wxT("suspend"));
PROJECT* pProject = NULL;
PROJECT* pStateProject = NULL;
wxInt32 iRetVal = -1;
if ( project_status.projects.size() != 0 )
pProject = project_status.projects.at( iIndex );
if ( NULL != pProject )
{
iRetVal = rpc.project_op( (*pProject), wxT("suspend") );
if ( 0 == iRetVal )
{
pProject->suspended_via_gui = true;
pStateProject = state.lookup_project( pProject->master_url );
if ( NULL != pStateProject )
pStateProject->suspended_via_gui = true;
}
}
return iRetVal;
}
wxInt32 CMainDocument::ProjectResume( wxString& strURL )
wxInt32 CMainDocument::ProjectResume( wxInt32 iIndex )
{
PROJECT p;
p.master_url = strURL;
return rpc.project_op(p, wxT("resume"));
PROJECT* pProject = NULL;
PROJECT* pStateProject = NULL;
wxInt32 iRetVal = -1;
if ( project_status.projects.size() != 0 )
pProject = project_status.projects.at( iIndex );
if ( NULL != pProject )
{
iRetVal = rpc.project_op( (*pProject), wxT("resume") );
if ( 0 == iRetVal )
{
pProject->suspended_via_gui = false;
pStateProject = state.lookup_project( pProject->master_url );
if ( NULL != pStateProject )
pStateProject->suspended_via_gui = false;
}
}
return iRetVal;
}
@ -784,25 +839,57 @@ bool CMainDocument::IsWorkSuspended(wxInt32 iIndex)
}
wxInt32 CMainDocument::WorkSuspend( wxString& strProjectURL, wxString& strResultName )
wxInt32 CMainDocument::WorkSuspend( wxInt32 iIndex )
{
PROJECT p;
RESULT r;
p.master_url = strProjectURL;
r.name = strResultName;
r.project = &p;
return rpc.result_op(r, wxT("suspend"));
RESULT* pResult = NULL;
RESULT* pStateResult = NULL;
wxInt32 iRetVal = 0;
if ( results.results.size() != 0 )
pResult = results.results.at( iIndex );
if ( NULL != pResult )
{
pStateResult = state.lookup_result( pResult->project_url, pResult->name );
if ( NULL != pStateResult )
{
iRetVal = rpc.result_op( (*pStateResult), wxT("suspend") );
if ( 0 == iRetVal )
{
pResult->suspended_via_gui = true;
pStateResult->suspended_via_gui = true;
}
}
}
return iRetVal;
}
wxInt32 CMainDocument::WorkResume( wxString& strProjectURL, wxString& strResultName )
wxInt32 CMainDocument::WorkResume( wxInt32 iIndex )
{
PROJECT p;
RESULT r;
p.master_url = strProjectURL;
r.name = strResultName;
r.project = &p;
return rpc.result_op(r, wxT("resume"));
RESULT* pResult = NULL;
RESULT* pStateResult = NULL;
wxInt32 iRetVal = 0;
if ( results.results.size() != 0 )
pResult = results.results.at( iIndex );
if ( NULL != pResult )
{
pStateResult = state.lookup_result( pResult->project_url, pResult->name );
if ( NULL != pStateResult )
{
iRetVal = rpc.result_op( (*pStateResult), wxT("resume") );
if ( 0 == iRetVal )
{
pResult->suspended_via_gui = false;
pStateResult->suspended_via_gui = false;
}
}
}
return iRetVal;
}

View File

@ -113,11 +113,11 @@ public:
bool IsProjectRPCPending(wxInt32 iIndex);
wxInt32 ProjectAttach( wxString& strURL, wxString& strAccountKey );
wxInt32 ProjectDetach( wxString& strURL );
wxInt32 ProjectUpdate( wxString& strURL );
wxInt32 ProjectReset( wxString& strURL );
wxInt32 ProjectSuspend( wxString& strURL );
wxInt32 ProjectResume( wxString& strURL );
wxInt32 ProjectDetach( wxInt32 iIndex );
wxInt32 ProjectUpdate( wxInt32 iIndex );
wxInt32 ProjectReset( wxInt32 iIndex );
wxInt32 ProjectSuspend( wxInt32 iIndex );
wxInt32 ProjectResume( wxInt32 iIndex );
//
@ -148,8 +148,8 @@ public:
bool IsWorkReadyToReport(wxInt32 iIndex);
bool IsWorkSuspended(wxInt32 iIndex);
wxInt32 WorkSuspend( wxString& strProjectURL, wxString& strResultName );
wxInt32 WorkResume( wxString& strProjectURL, wxString& strResultName );
wxInt32 WorkSuspend( wxInt32 iIndex );
wxInt32 WorkResume( wxInt32 iIndex );
wxInt32 WorkShowGraphics( wxString& strProjectURL, wxString& strResultName, bool bFullScreen );
wxInt32 WorkAbort( wxString& strProjectURL, wxString& strResultName );

View File

@ -49,6 +49,7 @@ BEGIN_EVENT_TABLE (CMainFrame, wxFrame)
EVT_MENU(ID_TOOLSOPTIONS, CMainFrame::OnToolsOptions)
EVT_MENU(wxID_ABOUT, CMainFrame::OnAbout)
EVT_IDLE(CMainFrame::OnIdle)
EVT_NOTEBOOK_PAGE_CHANGED(ID_FRAMENOTEBOOK, CMainFrame::OnNotebookSelectionChanged)
EVT_LIST_CACHE_HINT(wxID_ANY, CMainFrame::OnListCacheHint)
EVT_LIST_ITEM_SELECTED(wxID_ANY, CMainFrame::OnListSelected)
EVT_LIST_ITEM_DESELECTED(wxID_ANY, CMainFrame::OnListDeselected)
@ -91,7 +92,7 @@ CMainFrame::CMainFrame(wxString strTitle) :
RestoreState();
m_PostCreateInitializationCompleted = false;
m_bPostCreateInitializationCompleted = false;
}
@ -181,7 +182,7 @@ bool CMainFrame::CreateNotebook()
wxTAB_TRAVERSAL|wxCLIP_CHILDREN|wxNO_BORDER);
// initialize notebook
m_pNotebook = new wxNotebook(pPanel, -1, wxDefaultPosition, wxDefaultSize,
m_pNotebook = new wxNotebook(pPanel, ID_FRAMENOTEBOOK, wxDefaultPosition, wxDefaultSize,
wxNB_FIXEDWIDTH|wxCLIP_CHILDREN);
wxNotebookSizer *pNotebookSizer = new wxNotebookSizer(m_pNotebook);
@ -497,9 +498,9 @@ void CMainFrame::OnIdle(wxIdleEvent& event)
if ( NULL != pDoc )
{
wxASSERT(wxDynamicCast(pDoc, CMainDocument));
if ( false == m_PostCreateInitializationCompleted )
if ( false == m_bPostCreateInitializationCompleted )
{
m_PostCreateInitializationCompleted = true;
m_bPostCreateInitializationCompleted = true;
pDoc->OnInit();
}
@ -510,138 +511,202 @@ void CMainFrame::OnIdle(wxIdleEvent& event)
}
void CMainFrame::OnNotebookSelectionChanged( wxNotebookEvent& event )
{
if ( (-1 != event.GetSelection()) && IsShown() )
{
wxWindow* pwndNotebookPage;
wxTimerEvent timerEvent;
wxASSERT(NULL != m_pNotebook);
pwndNotebookPage = m_pNotebook->GetPage( event.GetSelection() );
wxASSERT(NULL != pwndNotebookPage);
wxASSERT(wxDynamicCast(pwndNotebookPage, CBOINCBaseView));
if (wxDynamicCast(pwndNotebookPage, CViewProjects)) {
FireTaskPanelRenderEvent(wxDynamicCast(pwndNotebookPage, CViewProjects), timerEvent);
FireListPanelRenderEvent(wxDynamicCast(pwndNotebookPage, CViewProjects), timerEvent);
} else if (wxDynamicCast(pwndNotebookPage, CViewWork)) {
FireTaskPanelRenderEvent(wxDynamicCast(pwndNotebookPage, CViewWork), timerEvent);
FireListPanelRenderEvent(wxDynamicCast(pwndNotebookPage, CViewWork), timerEvent);
} else if (wxDynamicCast(pwndNotebookPage, CViewTransfers)) {
FireTaskPanelRenderEvent(wxDynamicCast(pwndNotebookPage, CViewTransfers), timerEvent);
FireListPanelRenderEvent(wxDynamicCast(pwndNotebookPage, CViewTransfers), timerEvent);
} else if (wxDynamicCast(pwndNotebookPage, CViewMessages)) {
FireTaskPanelRenderEvent(wxDynamicCast(pwndNotebookPage, CViewMessages), timerEvent);
FireListPanelRenderEvent(wxDynamicCast(pwndNotebookPage, CViewMessages), timerEvent);
} else if (wxDynamicCast(pwndNotebookPage, CViewResources)) {
FireTaskPanelRenderEvent(wxDynamicCast(pwndNotebookPage, CViewResources), timerEvent);
FireListPanelRenderEvent(wxDynamicCast(pwndNotebookPage, CViewResources), timerEvent);
} else if (wxDynamicCast(pwndNotebookPage, CBOINCBaseView)) {
FireTaskPanelRenderEvent(wxDynamicCast(pwndNotebookPage, CBOINCBaseView), timerEvent);
FireListPanelRenderEvent(wxDynamicCast(pwndNotebookPage, CBOINCBaseView), timerEvent);
}
}
event.Skip();
}
void CMainFrame::OnListCacheHint( wxListEvent& event )
{
wxWindow* pwndNotebookPage;
if ( IsShown() )
{
wxWindow* pwndNotebookPage;
wxASSERT(NULL != m_pNotebook);
wxASSERT(NULL != m_pNotebook);
pwndNotebookPage = m_pNotebook->GetPage(m_pNotebook->GetSelection());
wxASSERT(NULL != pwndNotebookPage);
wxASSERT(wxDynamicCast(pwndNotebookPage, CBOINCBaseView));
pwndNotebookPage = m_pNotebook->GetPage(m_pNotebook->GetSelection());
wxASSERT(NULL != pwndNotebookPage);
wxASSERT(wxDynamicCast(pwndNotebookPage, CBOINCBaseView));
if (wxDynamicCast(pwndNotebookPage, CViewProjects)) {
FireListOnCacheHintEvent(wxDynamicCast(pwndNotebookPage, CViewProjects), event);
} else if (wxDynamicCast(pwndNotebookPage, CViewWork)) {
FireListOnCacheHintEvent(wxDynamicCast(pwndNotebookPage, CViewWork), event);
} else if (wxDynamicCast(pwndNotebookPage, CViewTransfers)) {
FireListOnCacheHintEvent(wxDynamicCast(pwndNotebookPage, CViewTransfers), event);
} else if (wxDynamicCast(pwndNotebookPage, CViewMessages)) {
FireListOnCacheHintEvent(wxDynamicCast(pwndNotebookPage, CViewMessages), event);
} else if (wxDynamicCast(pwndNotebookPage, CViewResources)) {
FireListOnCacheHintEvent(wxDynamicCast(pwndNotebookPage, CViewResources), event);
} else if (wxDynamicCast(pwndNotebookPage, CBOINCBaseView)) {
FireListOnCacheHintEvent(wxDynamicCast(pwndNotebookPage, CBOINCBaseView), event);
if (wxDynamicCast(pwndNotebookPage, CViewProjects)) {
FireListOnCacheHintEvent(wxDynamicCast(pwndNotebookPage, CViewProjects), event);
} else if (wxDynamicCast(pwndNotebookPage, CViewWork)) {
FireListOnCacheHintEvent(wxDynamicCast(pwndNotebookPage, CViewWork), event);
} else if (wxDynamicCast(pwndNotebookPage, CViewTransfers)) {
FireListOnCacheHintEvent(wxDynamicCast(pwndNotebookPage, CViewTransfers), event);
} else if (wxDynamicCast(pwndNotebookPage, CViewMessages)) {
FireListOnCacheHintEvent(wxDynamicCast(pwndNotebookPage, CViewMessages), event);
} else if (wxDynamicCast(pwndNotebookPage, CViewResources)) {
FireListOnCacheHintEvent(wxDynamicCast(pwndNotebookPage, CViewResources), event);
} else if (wxDynamicCast(pwndNotebookPage, CBOINCBaseView)) {
FireListOnCacheHintEvent(wxDynamicCast(pwndNotebookPage, CBOINCBaseView), event);
}
}
event.Skip();
}
void CMainFrame::OnListSelected( wxListEvent& event )
{
wxWindow* pwndNotebookPage;
if ( IsShown() )
{
wxWindow* pwndNotebookPage;
wxASSERT(NULL != m_pNotebook);
wxASSERT(NULL != m_pNotebook);
pwndNotebookPage = m_pNotebook->GetPage(m_pNotebook->GetSelection());
wxASSERT(NULL != pwndNotebookPage);
wxASSERT(wxDynamicCast(pwndNotebookPage, CBOINCBaseView));
pwndNotebookPage = m_pNotebook->GetPage(m_pNotebook->GetSelection());
wxASSERT(NULL != pwndNotebookPage);
wxASSERT(wxDynamicCast(pwndNotebookPage, CBOINCBaseView));
if (wxDynamicCast(pwndNotebookPage, CViewProjects)) {
FireListOnSelectedEvent(wxDynamicCast(pwndNotebookPage, CViewProjects), event);
} else if (wxDynamicCast(pwndNotebookPage, CViewWork)) {
FireListOnSelectedEvent(wxDynamicCast(pwndNotebookPage, CViewWork), event);
} else if (wxDynamicCast(pwndNotebookPage, CViewTransfers)) {
FireListOnSelectedEvent(wxDynamicCast(pwndNotebookPage, CViewTransfers), event);
} else if (wxDynamicCast(pwndNotebookPage, CViewMessages)) {
FireListOnSelectedEvent(wxDynamicCast(pwndNotebookPage, CViewMessages), event);
} else if (wxDynamicCast(pwndNotebookPage, CViewResources)) {
FireListOnSelectedEvent(wxDynamicCast(pwndNotebookPage, CViewResources), event);
} else if (wxDynamicCast(pwndNotebookPage, CBOINCBaseView)) {
FireListOnSelectedEvent(wxDynamicCast(pwndNotebookPage, CBOINCBaseView), event);
if (wxDynamicCast(pwndNotebookPage, CViewProjects)) {
FireListOnSelectedEvent(wxDynamicCast(pwndNotebookPage, CViewProjects), event);
} else if (wxDynamicCast(pwndNotebookPage, CViewWork)) {
FireListOnSelectedEvent(wxDynamicCast(pwndNotebookPage, CViewWork), event);
} else if (wxDynamicCast(pwndNotebookPage, CViewTransfers)) {
FireListOnSelectedEvent(wxDynamicCast(pwndNotebookPage, CViewTransfers), event);
} else if (wxDynamicCast(pwndNotebookPage, CViewMessages)) {
FireListOnSelectedEvent(wxDynamicCast(pwndNotebookPage, CViewMessages), event);
} else if (wxDynamicCast(pwndNotebookPage, CViewResources)) {
FireListOnSelectedEvent(wxDynamicCast(pwndNotebookPage, CViewResources), event);
} else if (wxDynamicCast(pwndNotebookPage, CBOINCBaseView)) {
FireListOnSelectedEvent(wxDynamicCast(pwndNotebookPage, CBOINCBaseView), event);
}
}
event.Skip();
}
void CMainFrame::OnListDeselected( wxListEvent& event )
{
wxWindow* pwndNotebookPage;
if ( IsShown() )
{
wxWindow* pwndNotebookPage;
wxASSERT(NULL != m_pNotebook);
wxASSERT(NULL != m_pNotebook);
pwndNotebookPage = m_pNotebook->GetPage(m_pNotebook->GetSelection());
wxASSERT(NULL != pwndNotebookPage);
wxASSERT(wxDynamicCast(pwndNotebookPage, CBOINCBaseView));
pwndNotebookPage = m_pNotebook->GetPage(m_pNotebook->GetSelection());
wxASSERT(NULL != pwndNotebookPage);
wxASSERT(wxDynamicCast(pwndNotebookPage, CBOINCBaseView));
if (wxDynamicCast(pwndNotebookPage, CViewProjects)) {
FireListOnDeselectedEvent(wxDynamicCast(pwndNotebookPage, CViewProjects), event);
} else if (wxDynamicCast(pwndNotebookPage, CViewWork)) {
FireListOnDeselectedEvent(wxDynamicCast(pwndNotebookPage, CViewWork), event);
} else if (wxDynamicCast(pwndNotebookPage, CViewTransfers)) {
FireListOnDeselectedEvent(wxDynamicCast(pwndNotebookPage, CViewTransfers), event);
} else if (wxDynamicCast(pwndNotebookPage, CViewMessages)) {
FireListOnDeselectedEvent(wxDynamicCast(pwndNotebookPage, CViewMessages), event);
} else if (wxDynamicCast(pwndNotebookPage, CViewResources)) {
FireListOnDeselectedEvent(wxDynamicCast(pwndNotebookPage, CViewResources), event);
} else if (wxDynamicCast(pwndNotebookPage, CBOINCBaseView)) {
FireListOnDeselectedEvent(wxDynamicCast(pwndNotebookPage, CBOINCBaseView), event);
if (wxDynamicCast(pwndNotebookPage, CViewProjects)) {
FireListOnDeselectedEvent(wxDynamicCast(pwndNotebookPage, CViewProjects), event);
} else if (wxDynamicCast(pwndNotebookPage, CViewWork)) {
FireListOnDeselectedEvent(wxDynamicCast(pwndNotebookPage, CViewWork), event);
} else if (wxDynamicCast(pwndNotebookPage, CViewTransfers)) {
FireListOnDeselectedEvent(wxDynamicCast(pwndNotebookPage, CViewTransfers), event);
} else if (wxDynamicCast(pwndNotebookPage, CViewMessages)) {
FireListOnDeselectedEvent(wxDynamicCast(pwndNotebookPage, CViewMessages), event);
} else if (wxDynamicCast(pwndNotebookPage, CViewResources)) {
FireListOnDeselectedEvent(wxDynamicCast(pwndNotebookPage, CViewResources), event);
} else if (wxDynamicCast(pwndNotebookPage, CBOINCBaseView)) {
FireListOnDeselectedEvent(wxDynamicCast(pwndNotebookPage, CBOINCBaseView), event);
}
}
event.Skip();
}
void CMainFrame::OnListPanelRender ( wxTimerEvent &event )
{
wxWindow* pwndNotebookPage;
if ( IsShown() )
{
wxWindow* pwndNotebookPage;
wxASSERT(NULL != m_pNotebook);
wxASSERT(NULL != m_pNotebook);
pwndNotebookPage = m_pNotebook->GetPage(m_pNotebook->GetSelection());
wxASSERT(NULL != pwndNotebookPage);
wxASSERT(wxDynamicCast(pwndNotebookPage, CBOINCBaseView));
pwndNotebookPage = m_pNotebook->GetPage(m_pNotebook->GetSelection());
wxASSERT(NULL != pwndNotebookPage);
wxASSERT(wxDynamicCast(pwndNotebookPage, CBOINCBaseView));
if (wxDynamicCast(pwndNotebookPage, CViewProjects)) {
FireListPanelRenderEvent(wxDynamicCast(pwndNotebookPage, CViewProjects), event);
} else if (wxDynamicCast(pwndNotebookPage, CViewWork)) {
FireListPanelRenderEvent(wxDynamicCast(pwndNotebookPage, CViewWork), event);
} else if (wxDynamicCast(pwndNotebookPage, CViewTransfers)) {
FireListPanelRenderEvent(wxDynamicCast(pwndNotebookPage, CViewTransfers), event);
} else if (wxDynamicCast(pwndNotebookPage, CViewMessages)) {
FireListPanelRenderEvent(wxDynamicCast(pwndNotebookPage, CViewMessages), event);
} else if (wxDynamicCast(pwndNotebookPage, CViewResources)) {
FireListPanelRenderEvent(wxDynamicCast(pwndNotebookPage, CViewResources), event);
} else if (wxDynamicCast(pwndNotebookPage, CBOINCBaseView)) {
FireListPanelRenderEvent(wxDynamicCast(pwndNotebookPage, CBOINCBaseView), event);
if (wxDynamicCast(pwndNotebookPage, CViewProjects)) {
FireListPanelRenderEvent(wxDynamicCast(pwndNotebookPage, CViewProjects), event);
} else if (wxDynamicCast(pwndNotebookPage, CViewWork)) {
FireListPanelRenderEvent(wxDynamicCast(pwndNotebookPage, CViewWork), event);
} else if (wxDynamicCast(pwndNotebookPage, CViewTransfers)) {
FireListPanelRenderEvent(wxDynamicCast(pwndNotebookPage, CViewTransfers), event);
} else if (wxDynamicCast(pwndNotebookPage, CViewMessages)) {
FireListPanelRenderEvent(wxDynamicCast(pwndNotebookPage, CViewMessages), event);
} else if (wxDynamicCast(pwndNotebookPage, CViewResources)) {
FireListPanelRenderEvent(wxDynamicCast(pwndNotebookPage, CViewResources), event);
} else if (wxDynamicCast(pwndNotebookPage, CBOINCBaseView)) {
FireListPanelRenderEvent(wxDynamicCast(pwndNotebookPage, CBOINCBaseView), event);
}
}
event.Skip();
}
void CMainFrame::OnTaskPanelRender ( wxTimerEvent &event )
{
wxWindow* pwndNotebookPage;
if ( IsShown() )
{
wxWindow* pwndNotebookPage;
wxASSERT(NULL != m_pNotebook);
wxASSERT(NULL != m_pNotebook);
pwndNotebookPage = m_pNotebook->GetPage(m_pNotebook->GetSelection());
wxASSERT(NULL != pwndNotebookPage);
wxASSERT(wxDynamicCast(pwndNotebookPage, CBOINCBaseView));
pwndNotebookPage = m_pNotebook->GetPage(m_pNotebook->GetSelection());
wxASSERT(NULL != pwndNotebookPage);
wxASSERT(wxDynamicCast(pwndNotebookPage, CBOINCBaseView));
if (wxDynamicCast(pwndNotebookPage, CViewProjects)) {
FireTaskPanelRenderEvent(wxDynamicCast(pwndNotebookPage, CViewProjects), event);
} else if (wxDynamicCast(pwndNotebookPage, CViewWork)) {
FireTaskPanelRenderEvent(wxDynamicCast(pwndNotebookPage, CViewWork), event);
} else if (wxDynamicCast(pwndNotebookPage, CViewTransfers)) {
FireTaskPanelRenderEvent(wxDynamicCast(pwndNotebookPage, CViewTransfers), event);
} else if (wxDynamicCast(pwndNotebookPage, CViewMessages)) {
FireTaskPanelRenderEvent(wxDynamicCast(pwndNotebookPage, CViewMessages), event);
} else if (wxDynamicCast(pwndNotebookPage, CViewResources)) {
FireTaskPanelRenderEvent(wxDynamicCast(pwndNotebookPage, CViewResources), event);
} else if (wxDynamicCast(pwndNotebookPage, CBOINCBaseView)) {
FireTaskPanelRenderEvent(wxDynamicCast(pwndNotebookPage, CBOINCBaseView), event);
if (wxDynamicCast(pwndNotebookPage, CViewProjects)) {
FireTaskPanelRenderEvent(wxDynamicCast(pwndNotebookPage, CViewProjects), event);
} else if (wxDynamicCast(pwndNotebookPage, CViewWork)) {
FireTaskPanelRenderEvent(wxDynamicCast(pwndNotebookPage, CViewWork), event);
} else if (wxDynamicCast(pwndNotebookPage, CViewTransfers)) {
FireTaskPanelRenderEvent(wxDynamicCast(pwndNotebookPage, CViewTransfers), event);
} else if (wxDynamicCast(pwndNotebookPage, CViewMessages)) {
FireTaskPanelRenderEvent(wxDynamicCast(pwndNotebookPage, CViewMessages), event);
} else if (wxDynamicCast(pwndNotebookPage, CViewResources)) {
FireTaskPanelRenderEvent(wxDynamicCast(pwndNotebookPage, CViewResources), event);
} else if (wxDynamicCast(pwndNotebookPage, CBOINCBaseView)) {
FireTaskPanelRenderEvent(wxDynamicCast(pwndNotebookPage, CBOINCBaseView), event);
}
}
event.Skip();
}
@ -669,13 +734,13 @@ void CMainFrame::FireListOnDeselectedEvent( T pPage, wxListEvent& event )
template < class T >
void CMainFrame::FireListPanelRenderEvent( T pPage, wxTimerEvent& event )
{
pPage->OnListRender(event);
pPage->OnListRender( event );
}
template < class T >
void CMainFrame::FireTaskPanelRenderEvent( T pPage, wxTimerEvent& event )
{
pPage->OnTaskRender(event);
pPage->OnTaskRender( event );
}

View File

@ -42,20 +42,22 @@ public:
bool UpdateStatusbar( const wxString& strStatusbarText );
void OnExit(wxCommandEvent& event);
void OnClose(wxCloseEvent& event);
void OnExit( wxCommandEvent& event );
void OnClose( wxCloseEvent& event );
void OnToolsOptions(wxCommandEvent& event);
void OnAbout(wxCommandEvent& event);
void OnToolsOptions( wxCommandEvent& event );
void OnAbout( wxCommandEvent& event );
void OnIdle (wxIdleEvent& event);
void OnIdle ( wxIdleEvent& event );
void OnNotebookSelectionChanged( wxNotebookEvent& event );
void OnListCacheHint( wxListEvent& event );
void OnListSelected( wxListEvent& event );
void OnListDeselected( wxListEvent& event );
void OnListPanelRender(wxTimerEvent& event);
void OnTaskPanelRender(wxTimerEvent& event);
void OnListPanelRender( wxTimerEvent& event );
void OnTaskPanelRender( wxTimerEvent& event );
private:
@ -65,7 +67,7 @@ private:
wxTimer* m_pFrameTaskPanelRenderTimer;
wxTimer* m_pFrameListPanelRenderTimer;
bool m_PostCreateInitializationCompleted;
bool m_bPostCreateInitializationCompleted;
bool CreateMenu();

View File

@ -83,6 +83,7 @@ CViewMessages::CViewMessages(wxNotebook* pNotebook) :
{
m_bProcessingTaskRenderEvent = false;
m_bProcessingListRenderEvent = false;
m_bItemSelected = false;
wxASSERT(NULL != m_pTaskPane);
wxASSERT(NULL != m_pListPane);

View File

@ -131,6 +131,7 @@ CViewProjects::CViewProjects(wxNotebook* pNotebook) :
{
m_bProcessingTaskRenderEvent = false;
m_bProcessingListRenderEvent = false;
m_bItemSelected = false;
wxASSERT(NULL != m_pTaskPane);
wxASSERT(NULL != m_pListPane);
@ -401,7 +402,6 @@ void CViewProjects::OnTaskLinkClicked( const wxHtmlLinkInfo& link )
{
iProjectIndex = m_pListPane->GetFirstSelected();
pDoc->GetProjectProjectName(iProjectIndex, strProjectName);
pDoc->GetProjectProjectURL(iProjectIndex, strURL);
strMessage.Printf(
_("Are you sure you wish to detach from project '%s'?"),
@ -417,7 +417,7 @@ void CViewProjects::OnTaskLinkClicked( const wxHtmlLinkInfo& link )
if ( wxYES == iAnswer )
{
pDoc->ProjectDetach(
strURL
iProjectIndex
);
}
}
@ -425,7 +425,6 @@ void CViewProjects::OnTaskLinkClicked( const wxHtmlLinkInfo& link )
{
iProjectIndex = m_pListPane->GetFirstSelected();
pDoc->GetProjectProjectName(iProjectIndex, strProjectName);
pDoc->GetProjectProjectURL(iProjectIndex, strURL);
strMessage.Printf(
_("Are you sure you wish to reset project '%s'?"),
@ -441,35 +440,32 @@ void CViewProjects::OnTaskLinkClicked( const wxHtmlLinkInfo& link )
if ( wxYES == iAnswer )
{
pDoc->ProjectReset(
strURL
iProjectIndex
);
}
}
else if ( link.GetHref() == LINK_TASKUPDATE )
{
iProjectIndex = m_pListPane->GetFirstSelected();
pDoc->GetProjectProjectURL(iProjectIndex, strURL);
pDoc->ProjectUpdate(
strURL
iProjectIndex
);
}
else if ( link.GetHref() == LINK_TASKSUSPEND )
{
iProjectIndex = m_pListPane->GetFirstSelected();
pDoc->GetProjectProjectURL(iProjectIndex, strURL);
pDoc->ProjectSuspend(
strURL
iProjectIndex
);
}
else if ( link.GetHref() == LINK_TASKRESUME )
{
iProjectIndex = m_pListPane->GetFirstSelected();
pDoc->GetProjectProjectURL(iProjectIndex, strURL);
pDoc->ProjectResume(
strURL
iProjectIndex
);
}
else if ( link.GetHref() == SECTION_WEB )
@ -496,6 +492,7 @@ void CViewProjects::OnTaskLinkClicked( const wxHtmlLinkInfo& link )
m_bTipsHeaderHidden ? m_bTipsHeaderHidden = false : m_bTipsHeaderHidden = true;
UpdateSelection();
m_pListPane->Refresh();
}

View File

@ -97,6 +97,7 @@ CViewWork::CViewWork(wxNotebook* pNotebook) :
{
m_bProcessingTaskRenderEvent = false;
m_bProcessingListRenderEvent = false;
m_bItemSelected = false;
wxASSERT(NULL != m_pTaskPane);
wxASSERT(NULL != m_pListPane);
@ -348,23 +349,17 @@ void CViewWork::OnTaskLinkClicked( const wxHtmlLinkInfo& link )
else if ( link.GetHref() == LINK_TASKSUSPEND )
{
iProjectIndex = m_pListPane->GetFirstSelected();
pDoc->GetWorkProjectURL(iProjectIndex, strProjectURL);
pDoc->GetWorkName(iProjectIndex, strResultName);
pDoc->WorkSuspend(
strProjectURL,
strResultName
iProjectIndex
);
}
else if ( link.GetHref() == LINK_TASKRESUME )
{
iProjectIndex = m_pListPane->GetFirstSelected();
pDoc->GetWorkProjectURL(iProjectIndex, strProjectURL);
pDoc->GetWorkName(iProjectIndex, strResultName);
pDoc->WorkResume(
strProjectURL,
strResultName
iProjectIndex
);
}
else if ( link.GetHref() == LINK_TASKSHOWGRAPHICS )
@ -408,6 +403,7 @@ void CViewWork::OnTaskLinkClicked( const wxHtmlLinkInfo& link )
m_bTipsHeaderHidden ? m_bTipsHeaderHidden = false : m_bTipsHeaderHidden = true;
UpdateSelection();
m_pListPane->Refresh();
}
@ -727,7 +723,14 @@ wxInt32 CViewWork::FormatStatus( wxInt32 item, wxString& strBuffer ) const
}
else if ( CMainDocument::CPU_SCHED_PREEMPTED == iSchedulerState )
{
strBuffer = _("Paused");
if ( pDoc->IsWorkSuspended(item) )
{
strBuffer = _("Suspended");
}
else
{
strBuffer = _("Paused");
}
}
else if ( CMainDocument::CPU_SCHED_UNINITIALIZED == iSchedulerState )
{