|
|
#include "MainForm.h"
#include "LeftView.h"
#include "RightTopView.h"
#include "RightBottomView.h"
#include "resource.h"
IMPLEMENT_DYNCREATE( MainForm, CFrameWnd )
BEGIN_MESSAGE_MAP( MainForm, CFrameWnd )
ON_WM_CREATE()
END_MESSAGE_MAP()
MainForm::MainForm() { m_bAutoMenuEnable = FALSE; }
int MainForm::OnCreate( LPCREATESTRUCT lpCreateStruct ) { static const unsigned int indicator = ID_SEPARATOR;
if (CFrameWnd::OnCreate(lpCreateStruct) == -1) return -1;
statusBar.Create( this ); statusBar.SetIndicators( &indicator, 1 );
#if 0
if ( !toolBar.CreateEx(this, TBSTYLE_FLAT, WS_CHILD | WS_VISIBLE | CBRS_TOP | CBRS_GRIPPER | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC) || !toolBar.LoadToolBar(IDR_MAINFRAME) ) return -1; #endif
return 0; }
BOOL MainForm::PreCreateWindow(CREATESTRUCT& cs) { if( !CFrameWnd::PreCreateWindow(cs) ) return FALSE; // The following will prevent the "-" getting added to the window title
cs.style &= ~FWS_ADDTOTITLE; return TRUE; }
BOOL MainForm::OnCreateClient( LPCREATESTRUCT lpcs, CCreateContext* pContext ) { #if 0
// create the splitter window.
// it is really a splitter within a splitter
// ---------------------------------
// | | List |
// | | |
// | | |
// | Tree | |
// | -----------------------|
// | | Edit |
// | | |
// | | |
// ---------------------------------
// left pane is a treeview control
// right pane is another splitter with listview control
// and editview control.
splitterWindow.CreateStatic( this, 1, 2 );
// create left hand tree view.
splitterWindow.CreateView( 0, 0, RUNTIME_CLASS( LeftView ), CSize( 300, 300 ), pContext );
// create nested splitter.
splitterWindow2.CreateStatic( &splitterWindow, 2, 1, WS_CHILD | WS_VISIBLE | WS_BORDER, splitterWindow.IdFromRowCol( 0, 1 ) );
splitterWindow2.CreateView( 0, 0, RUNTIME_CLASS( RightTopView ), CSize( 100, 400 ), pContext );
splitterWindow2.CreateView( 1, 0, RUNTIME_CLASS( RightBottomView ), CSize( 100, 200 ), pContext );
return TRUE;
#else
// create the splitter window.
// it is really a splitter within a splitter
// ---------------------------------
// | | List |
// | | |
// | Tree | |
// | | |
// |-------------------------------|
// | Edit |
// | |
// | |
// ---------------------------------
// left pane is a treeview control
// right pane is another splitter with listview control
// and bottom is editview control.
splitterWindow.CreateStatic( this, 2, 1 );
// create nested splitter.
splitterWindow2.CreateStatic( &splitterWindow, 1, 2, WS_CHILD | WS_VISIBLE | WS_BORDER, splitterWindow.IdFromRowCol( 0, 0 ) );
splitterWindow2.CreateView( 0, 0, RUNTIME_CLASS( LeftView ), CSize( 0, 0 ), pContext );
splitterWindow2.CreateView( 0, 1, RUNTIME_CLASS( RightTopView ), CSize( 0, 0 ), pContext );
// create bottom text view
splitterWindow.CreateView( 1, 0, RUNTIME_CLASS( RightBottomView ), CSize( 0, 0 ), pContext );
// go for 30-70 split column split
// and 60-40 row split.
CRect rect; GetWindowRect( &rect ); splitterWindow2.SetColumnInfo( 0, rect.Width() * 0.3, 10 ); splitterWindow2.SetColumnInfo( 1, rect.Width() * 0.6, 10 ); splitterWindow2.RecalcLayout();
splitterWindow.SetRowInfo( 0, rect.Height() * 0.6, 10 ); splitterWindow.SetRowInfo( 1, rect.Height() * 0.4, 10 ); splitterWindow.RecalcLayout();
return TRUE;
#endif
}
void MainForm::clusterMenuClicked( CCmdUI* pCmdUI ) { return;
// find out what is present selection
// whether cluster, world or host.
// disable all menu items if current selection
// not cluster level, else enable.
//
CTreeView* treeView = (CTreeView * ) splitterWindow2.GetPane( 0, 0 ); // Find the item from TreeCtrl which has been selected.
HTREEITEM hdlSelItem = treeView->GetTreeCtrl().GetSelectedItem();
TVITEM selItem; selItem.hItem = hdlSelItem; selItem.mask = TVIF_IMAGE ; treeView->GetTreeCtrl().GetItem( &selItem );
int level; switch( selItem.iImage ) { case 0: // this is world level.
level = 0; break;
case 1: // this is some cluster
level = 1; break;
default: // this has to be host.
level = 2; break; }
if( level == 1 ) { pCmdUI->m_pMenu->EnableMenuItem( ID_CLUSTER_ADD_HOST, MF_BYCOMMAND | MF_ENABLED );
pCmdUI->m_pMenu->EnableMenuItem( ID_CLUSTER_REMOVE, MF_BYCOMMAND | MF_ENABLED );
pCmdUI->m_pMenu->EnableMenuItem( ID_CLUSTER_PROPERTIES, MF_BYCOMMAND | MF_ENABLED );
pCmdUI->m_pMenu->EnableMenuItem( ID_CLUSTER_UNMANAGE, MF_BYCOMMAND | MF_ENABLED );
} else { pCmdUI->m_pMenu->EnableMenuItem( ID_CLUSTER_ADD_HOST, MF_BYCOMMAND | MF_GRAYED | MF_DISABLED );
pCmdUI->m_pMenu->EnableMenuItem( ID_CLUSTER_REMOVE, MF_BYCOMMAND | MF_GRAYED | MF_DISABLED );
pCmdUI->m_pMenu->EnableMenuItem( ID_CLUSTER_PROPERTIES, MF_BYCOMMAND | MF_GRAYED | MF_DISABLED );
pCmdUI->m_pMenu->EnableMenuItem( ID_CLUSTER_UNMANAGE, MF_BYCOMMAND | MF_GRAYED | MF_DISABLED );
}
this->DrawMenuBar(); }
void MainForm::hostMenuClicked( CCmdUI* pCmdUI ) { return;
// find out what is present selection
// whether cluster, world or host.
// disable all menu items if current selection
// not host level, else enable.
//
CTreeView* treeView = (CTreeView * ) splitterWindow2.GetPane( 0, 0 ); // Find the item from TreeCtrl which has been selected.
HTREEITEM hdlSelItem = treeView->GetTreeCtrl().GetSelectedItem();
TVITEM selItem; selItem.hItem = hdlSelItem; selItem.mask = TVIF_IMAGE ; treeView->GetTreeCtrl().GetItem( &selItem );
int level; switch( selItem.iImage ) { case 0: // this is world level.
level = 0; break;
case 1: // this is some cluster
level = 1; break;
default: // this has to be host.
level = 2; break; }
if( level == 2 ) { pCmdUI->m_pMenu->EnableMenuItem( pCmdUI->m_nID, // ID_HOST_REMOVE,
MF_BYCOMMAND | MF_ENABLED ); } else { pCmdUI->m_pMenu->EnableMenuItem( pCmdUI->m_nID, MF_BYCOMMAND | MF_GRAYED | MF_DISABLED );
}
this->DrawMenuBar(); }
|