DragonNest/Third/XTToolkitPro/Samples/UserInterface/GUI_Eclipse/EclipseHostTasks.cpp
2024-12-19 09:48:26 +08:00

137 lines
3.2 KiB
C++

// EclipseHostTasks.cpp : implementation file
//
// This file is a part of the XTREME TOOLKIT PRO MFC class library.
// (c)1998-2008 Codejock Software, All Rights Reserved.
//
// THIS SOURCE FILE IS THE PROPERTY OF CODEJOCK SOFTWARE AND IS NOT TO BE
// RE-DISTRIBUTED BY ANY MEANS WHATSOEVER WITHOUT THE EXPRESSED WRITTEN
// CONSENT OF CODEJOCK SOFTWARE.
//
// THIS SOURCE CODE CAN ONLY BE USED UNDER THE TERMS AND CONDITIONS OUTLINED
// IN THE XTREME TOOLKIT PRO LICENSE AGREEMENT. CODEJOCK SOFTWARE GRANTS TO
// YOU (ONE SOFTWARE DEVELOPER) THE LIMITED RIGHT TO USE THIS SOFTWARE ON A
// SINGLE COMPUTER.
//
// CONTACT INFORMATION:
// support@codejock.com
// http://www.codejock.com
//
/////////////////////////////////////////////////////////////////////////////
#include "stdafx.h"
#include "gui_eclipse.h"
#include "EclipseHostTasks.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CEclipseHostTasks
CEclipseHostTasks::CEclipseHostTasks()
{
}
CEclipseHostTasks::~CEclipseHostTasks()
{
}
BEGIN_MESSAGE_MAP(CEclipseHostTasks, CEclipseHost)
//{{AFX_MSG_MAP(CEclipseHostTasks)
ON_WM_CREATE()
//}}AFX_MSG_MAP
ON_COMMAND(ID_TASKS_NEW, OnEmptyCommand)
ON_COMMAND(ID_TASKS_DELETE, OnEmptyCommand)
ON_UPDATE_COMMAND_UI(ID_TASKS_DELETE, OnUpdateTasksDelete)
ON_COMMAND(ID_TASKS_FILTERS, OnEmptyCommand)
END_MESSAGE_MAP()
static int arColWidths[] = {
16,
16,
24,
120,
120,
120
};
static CString arColLabels[] = {
_T("!"),
_T(" "),
_T(" "),
_T("Description"),
_T("File"),
_T("Line")
};
/////////////////////////////////////////////////////////////////////////////
// CEclipseHostTasks message handlers
int CEclipseHostTasks::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (CEclipseHost::OnCreate(lpCreateStruct) == -1)
return -1;
// Define the default style for the output list controls.
DWORD dwStyle = LVS_REPORT | LVS_NOSORTHEADER | LVS_SHOWSELALWAYS |
WS_CHILD | WS_VSCROLL | WS_TABSTOP|WS_VISIBLE;
// Create the list control.
if (!m_listCtrl.Create( dwStyle, CRect(0,0,0,0), this, 0xff ))
{
TRACE0( "Failed to create list control.\n" );
return FALSE;
}
// initialize the list control.
InitListControl();
return 0;
}
void CEclipseHostTasks::InitListControl()
{
// Insert the columns.
m_listCtrl.BuildColumns(_countof(arColWidths), arColWidths, arColLabels);
// Subclass the flat header control.
m_listCtrl.SubclassHeader();
// lock the first two colums from sizing operations.
CXTFlatHeaderCtrl* pHeaderCtrl = m_listCtrl.GetFlatHeaderCtrl( );
if ( pHeaderCtrl != NULL )
{
pHeaderCtrl->FreezeColumn(0);
pHeaderCtrl->FreezeColumn(1);
pHeaderCtrl->FreezeColumn(2);
// enable autosizing for columns.
pHeaderCtrl->EnableAutoSize();
pHeaderCtrl->SetBitmap(2, IDB_HEADER, HDF_STRING);
}
ListView_SetExtendedListViewStyle(
m_listCtrl.m_hWnd, LVS_EX_GRIDLINES|LVS_EX_FULLROWSELECT);
m_listCtrl.InsertItem(0, NULL, 0);
m_listCtrl.SetItemText(0, 3, _T("Click here to add a new task"));
}
void CEclipseHostTasks::OnEmptyCommand()
{
}
void CEclipseHostTasks::OnUpdateTasksDelete(CCmdUI* pCmdUI)
{
pCmdUI->Enable(m_listCtrl.GetSelectedCount() > 0);
}