summaryrefslogtreecommitdiff
path: root/Bus/IvyProbe
diff options
context:
space:
mode:
Diffstat (limited to 'Bus/IvyProbe')
-rw-r--r--Bus/IvyProbe/ETSLayout.cpp3057
-rw-r--r--Bus/IvyProbe/ETSLayout.h963
-rw-r--r--Bus/IvyProbe/HistoryEdit.cpp82
-rw-r--r--Bus/IvyProbe/HistoryEdit.h65
-rw-r--r--Bus/IvyProbe/InstIvyProbe/InstIvy.vdproj945
-rw-r--r--Bus/IvyProbe/InstIvyProbe/InstIvy.vdproj.vspscc10
-rw-r--r--Bus/IvyProbe/IvyProbe.cpp81
-rw-r--r--Bus/IvyProbe/IvyProbe.h50
-rw-r--r--Bus/IvyProbe/IvyProbe.rc243
-rw-r--r--Bus/IvyProbe/IvyProbe.sln42
-rw-r--r--Bus/IvyProbe/IvyProbe.vcproj535
-rw-r--r--Bus/IvyProbe/IvyProbe.vcproj.vspscc10
-rw-r--r--Bus/IvyProbe/IvyProbe.vssscc10
-rw-r--r--Bus/IvyProbe/IvyProbeDlg.cpp394
-rw-r--r--Bus/IvyProbe/IvyProbeDlg.h110
-rw-r--r--Bus/IvyProbe/ReadMe.txt81
16 files changed, 0 insertions, 6678 deletions
diff --git a/Bus/IvyProbe/ETSLayout.cpp b/Bus/IvyProbe/ETSLayout.cpp
deleted file mode 100644
index 994c5ce..0000000
--- a/Bus/IvyProbe/ETSLayout.cpp
+++ /dev/null
@@ -1,3057 +0,0 @@
-////////////////////////////////////////////
-// ___ ____ _________________ //
-// / _/_ _// _______________/ //
-// / _/ / / / / ___ ___ ____ //
-// /__/ /_/ / / / // _/_ _/ //
-// _________/ / / / // _/ / / //
-// (c) 1998-2000_/ /___//_/ /_/ //
-// //
-////////////////////////////////////////////
-// all rights reserved //
-////////////////////////////////////////////
-
-/////////////////////////////////////////////////////////////////////////////
-// ETSLayoutDialog
-//
-// A class for smart layouting of Dialogs and such
-//
-// USAGE: See LayoutMgr.html
-//
-// AUTHOR: Erwin Tratar <tr@et-soft.de>
-//
-// DISCLAIMER:
-//
-// This Sourcecode and all accompaning material is ©1998-1999 Erwin Tratar.
-// All rights reserved.
-//
-// The source code may be used in compiled form in any way you desire
-// (including usage in commercial applications), providing that your
-// application adds essential code (i.e. it is not only a wrapper) to the
-// functionality found here
-//
-// Redistribution of the sourcecode itself, publication in any media or
-// inclusion in a library requires the authors expressed written consent.
-// You may not sale this code for profit.
-//
-// THIS SOFTWARE IS PROVIDED "AS IS" WITHOUT EXPRESS OR IMPLIED WARRANTY. USE IT
-// AT YOUR OWN RISK! THE AUTHOR ACCEPTS NO LIABILITY FOR ANY DAMAGE/LOSS OF
-// BUSINESS THAT THIS PRODUCT MAY CAUSE.
-//
-//
-// HISTORY:
-// 1998/05/1 Initial Release
-// 1998/05/13 Added ability to have a Pane with a control
-// 1998/05/13 Added better support for TabControls
-// 1998/05/14 automatically set Icon to IDR_MAINFRAME
-// 1998/05/19 no flicker on restoring position in OnInitialUpdate
-// Changed procedure for load/save, see constructor
-// 1998/10/02 Added support for Maximum (tracking) size
-// 1998/10/02 Much improved handling regarding RELATIVE/GREEDY
-// /w critical minimum size
-// 1998/10/02 turn on/off gripper at lower right corner
-// 1998/10/05 Support for user defined minimum size for items
-// (was hardcoded 5 before)
-// 1998/10/07 Fix for FormViews
-// 1998/10/31 Support for SECDialogBar/CDialogBar
-// 1998/10/31 simplified interface
-// 1998/10/31 Advanced positioning options
-// 1998/10/31 Added paneNull for empty Pane (former: NULL)
-// 1998/11/20 Swapped ETSLayoutDialog constructor parameters
-// 1998/11/20 Added Pane::addItemSpaceBetween
-// [Leo Zelevinsky]
-// 1998/11/24 Added fixup for greedy panes
-// 1998/11/24 addItemSpaceBetween now subtracts 2*nDefaultBorder
-// 1998/11/24 addGrowing() added as a shortcut for a paneNull
-// 1998/11/24 simplified interface: no more PaneBase:: / Pane::
-// needed
-// 1998/11/24 added FILL_* Modes
-// 1998/11/24 improved maximum size handling for greedy panes
-// 1998/11/25 Fixup of greedy panes caused infinite loop in some
-// cases
-// 1999/01/07 addItemSpaceLike() added
-// 1999/04/03 Fixed ETSLayoutFormView memory leak
-// 1999/04/07 Fixed ALIGN_xCENTER
-// 1999/04/08 New simple stream-interface added
-// 1999/04/09 Added support for an empty Status-Bar for resizing
-// instead of a gripper in the lower right corner
-// [Andreas Kapust]
-// 1999/04/11 New code for much less flickering, OnEraseBkgnd()
-// overidden for this task
-// 1999/05/12 Split Layout code into understandable pieces and adding
-// a lot of comments
-// 1999/06/20 ABSOLUTE_X + ALIGN_FILL_X expands item if there is any
-// left space (after all Abs/Rel/Greedy processing is done)
-// 1999/10/06 Changed Load() and Save() to use WINDOWPLACEMENT
-// [Keith Bussell]
-// 1999/11/18 Added possibility to add panes of the same orientation
-// to another pane. This merges both panes in one big
-// pane with the same orientation
-// 1999/11/18 Added support for BCGDialogBar (only with BCG > 4.52!)
-// 1999/11/25 Addes support for PropertyPages/Sheets. Uses some code
-// of a code submission from Anreas Kapust
-// 1999/11/25 Renamed classes to ETSLayoutXXX
-// 1999/11/25 Use CreateRoot() and Root() instead of m_pRootPane in
-// derived class.
-// 1999/11/26 Added autopointer support. No need to use normal pointers
-// when defining layout anymore. Changed m_pRootPane to
-// m_RootPane
-// 1999/11/26 Bug in Fixup Greedy II with multiple GREEDY panes and one
-// of them min/max limited
-// 1999/11/28 Fixed PaneTab::getConstrainVert() for ABSOLUTE_VERT
-// 1999/11/28 Fixed itemFixed()
-// 1999/11/28 Changed DWORD modeResize Arguments to layModeResize for
-// better type safety. Added typesafe operator|
-// 1999/12/04 Don't reposition window in UpdateLayout if it's a child
-// (as a child Dialog or PropertyPage)
-// 1999/12/04 Erase Backgroung with GCL_HBRBACKGROUND (if available)
-// 1999/12/04 itemSpaceXXX() adds a NORESIZE item instead of ABSOLUTE_XXX
-// this will fix unwanted growing in secondary direction
-//
-// Version: 1.0 [1999/12/04] Initial Article on CodeProject
-//
-// 1999/12/10 Erase Backgroung within TabCtrl was 'fixed' badly. Reverted to
-// old working code
-// 2000/02/02 When the Dialog is child of a View the class works correctly
-// now [Didier BULTIAUW]
-// 2000/02/15 Combo-Boxes were not working correctly (in all modes!)
-// 2000/02/17 aligned SpinButton Controls (with buddy) now handled
-// automatically
-// !! do not add such a control to the layout !! it is always
-// reattached to its buddy.
-// 2000/02/17 changed some cotrol class names to the defined constants
-//
-// Version: 1.1 [2000/02/17]
-//
-// 2000/02/25 Fixed auto alignment of SpinButton Controls to only affect
-// visible ones
-// 2000/02/27 Put all the classes into the namespace 'ETSLayout'
-// 2000/03/07 Fixed growing Dialog after minimizing and restoring
-// 2000/05/22 Whole Statusbar (Gripper) is not excluded anymore in EraseBkgnd()
-// instead only the triangular Gripper is excluded
-// 2000/05/31 Fix for PropertySheets with PSH_WIZARDHASFINISH [Thömmi]
-// 2000/05/31 Fix for UpDown-Controls with EditCtrl Buddy in PropertyPages.
-// These were not repositioned every time the page is being show
-// until the first resize
-// 2000/07/28 Problems with resizing ActiveX Controls fixed [Micheal Chapman]
-// 2000/07/28 Some strings were not properly wrapped with _T()
-// 2000/08/03 Check for BS_GROUPBOX was not correct as BS_GROUPBOX is more than one Bit
-// 2000/08/03 New override AddMainArea added to ETSLayoutPropertySheet in order to
-// have a hook for additional controls in a PropertySheet (besides the Tab)
-// 2000/08/03 New override AddButtons added to ETSLayoutPropertySheet in order to
-// have a hook for additional controls in the bottem pane of a PropertySheet
-// 2000/08/03 Removed the need for DECLARE_LAYOUT
-//
-// Version: 1.2 [2000/08/05]
-
-#define OEMRESOURCE
-#include <windows.h>
-
-#include "stdafx.h"
-#include "ETSLayout.h"
-
-using namespace ETSLayout;
-#pragma warning(disable: 4097 4610 4510 4100)
-
-
-#ifndef OBM_SIZE
-#define OBM_SIZE 32766
-// taken from WinresRc.h
-// if not used for any reason
-#endif
-
-#ifdef _DEBUG
-#define new DEBUG_NEW
-#undef THIS_FILE
-static char THIS_FILE[] = __FILE__;
-#endif
-
-static UINT auIDStatusBar[] =
-{
- ID_SEPARATOR
-};
-
-const int ERASE_GROUP_BORDER = 10;
-const int FIXUP_CUTOFF = 5;
-const int TAB_SPACE = 5;
-
-// the _NULL-Pane
-CWnd* ETSLayoutMgr::paneNull = 0;
-
-void ETSLayoutMgr::Layout(CRect& rcClient)
-{
- if(rcClient.Height() && rcClient.Width() && m_RootPane.IsValid()) \
- m_RootPane->resizeTo(rcClient); \
-}
-
-
-ETSLayoutMgr::CPane ETSLayoutMgr::pane( layOrientation orientation, ETSLayoutMgr::layResizeMode modeResize /*=GREEDY*/,
- int sizeBorder /*=nDefaultBorder*/, int sizeExtraBorder /*=0*/,
- int sizeSecondary /*=0*/)
-{
- Pane* pPane = new Pane ( this, orientation, sizeBorder, sizeExtraBorder );
- pPane->m_sizeSecondary = sizeSecondary;
- pPane->m_modeResize = modeResize;
-
- return CPane(pPane);
-}
-
-ETSLayoutMgr::CPane ETSLayoutMgr::paneTab( CTabCtrl* pTab, layOrientation orientation,
- ETSLayoutMgr::layResizeMode modeResize /*=GREEDY*/, int sizeBorder /*=nDefaultBorder*/,
- int sizeExtraBorder /*=0*/, int sizeSecondary /*=0*/)
-{
- Pane* pPane = new PaneTab ( pTab, this, orientation, sizeBorder, sizeExtraBorder );
- pPane->m_sizeSecondary = sizeSecondary;
- pPane->m_modeResize = modeResize;
-
- return CPane(pPane);
-}
-
-
-ETSLayoutMgr::CPane ETSLayoutMgr::paneCtrl( CWnd* pCtrl, layOrientation orientation,
- ETSLayoutMgr::layResizeMode modeResize /*=GREEDY*/, int sizeBorder /*=nDefaultBorder*/,
- int sizeExtraBorder /*=0*/, int sizeTopExtra /*=0*/,
- int sizeSecondary /*=0*/)
-{
- Pane* pPane = new PaneCtrl ( pCtrl, this, orientation, sizeBorder, sizeExtraBorder, sizeTopExtra );
- pPane->m_sizeSecondary = sizeSecondary;
- pPane->m_modeResize = modeResize;
-
- return CPane(pPane);
-}
-
-ETSLayoutMgr::CPane ETSLayoutMgr::paneCtrl( UINT nID, layOrientation orientation, ETSLayoutMgr::layResizeMode modeResize /*=GREEDY*/,
- int sizeBorder /*=nDefaultBorder*/, int sizeExtraBorder /*=0*/,
- int sizeTopExtra /*=0*/, int sizeSecondary /*=0*/)
-{
- Pane* pPane = new PaneCtrl ( nID, this, orientation, sizeBorder, sizeExtraBorder, sizeTopExtra );
- pPane->m_sizeSecondary = sizeSecondary;
- pPane->m_modeResize = modeResize;
-
- return CPane(pPane);
-}
-
-
-ETSLayoutMgr::CPaneBase ETSLayoutMgr::item(UINT nID, ETSLayoutMgr::layResizeMode modeResize /*=GREEDY*/, int sizeX /*=0*/, int sizeY /*=0*/,
- int sizeXMin /*=-1*/, int sizeYMin /*=-1*/)
-{
- return new PaneItem( nID, this, modeResize, sizeX, sizeY, sizeXMin, sizeYMin);
-}
-
-ETSLayoutMgr::CPaneBase ETSLayoutMgr::item(CWnd* pWnd, ETSLayoutMgr::layResizeMode modeResize /*=GREEDY*/,
- int sizeX /*=0*/, int sizeY /*=0*/, int sizeXMin /*=-1*/,
- int sizeYMin /*=-1*/)
-{
- return new PaneItem( pWnd, this, modeResize, sizeX, sizeY, sizeXMin, sizeYMin);
-}
-
-ETSLayoutMgr::CPaneBase ETSLayoutMgr::itemFixed(layOrientation orientation, int sizePrimary)
-{
- CPaneBase p = new PaneItem(paneNull, this, NORESIZE, (orientation==HORIZONTAL)?sizePrimary:0, (orientation==VERTICAL)?sizePrimary:0);
- return p;
-}
-
-ETSLayoutMgr::CPaneBase ETSLayoutMgr::itemGrowing(layOrientation orientation)
-{
- return new PaneItem(paneNull, this, (orientation==HORIZONTAL)?ABSOLUTE_VERT:ABSOLUTE_HORZ, 0, 0, -nDefaultBorder, -nDefaultBorder);
-}
-
-ETSLayoutMgr::CPaneBase ETSLayoutMgr::itemSpaceBetween( layOrientation orientation, CWnd* pWndFirst, CWnd* pWndSecond )
-{
- if( orientation == HORIZONTAL ) {
- // I'm interested in horizontal spacing
-
- CRect rLeft, rRight;
- pWndFirst->GetWindowRect(&rLeft);
- pWndSecond->GetWindowRect(&rRight);
-
- int sizeX = rRight.left - rLeft.right;
-
- if( sizeX < 0 ) {
- // compare top to top
- sizeX = rRight.left - rLeft.left;
- }
- else {
- sizeX -= 2*nDefaultBorder;
- }
-
- return new PaneItem(paneNull, this, NORESIZE, sizeX, 0);
- }
- else {
- // I'm interested in vertical spacing
- CRect rTop, rBot;
- pWndFirst->GetWindowRect(&rTop);
- pWndSecond->GetWindowRect(&rBot);
-
- int sizeY = rBot.top - rTop.bottom;
-
- if( sizeY < 0 ) {
- // compare top to top
- sizeY = sizeY = rBot.top - rTop.top;
- }
- else {
- sizeY -= 2*nDefaultBorder;
- }
-
- return new PaneItem(paneNull, this, NORESIZE, 0, sizeY);
- }
-}
-
-
-ETSLayoutMgr::CPaneBase ETSLayoutMgr::itemSpaceBetween( layOrientation orientation, UINT nIDFirst, UINT nIDSecond )
-{
- CWnd *pFirst = GetWnd()->GetDlgItem(nIDFirst);
- CWnd *pSecond = GetWnd()->GetDlgItem(nIDSecond);
-
- ASSERT( pFirst && pSecond );
-
- return itemSpaceBetween( orientation, pFirst, pSecond );
-}
-
-
-ETSLayoutMgr::CPaneBase ETSLayoutMgr::itemSpaceLike( layOrientation orientation, CWnd* pWnd )
-{
- CRect rRect;
- pWnd->GetWindowRect(&rRect);
-
- if( orientation == HORIZONTAL ) {
- // I'm interested in horizontal spacing
- return new PaneItem(paneNull, this, NORESIZE, rRect.Width(), 0);
- }
- else {
- // I'm interested in vertical spacing
- return new PaneItem(paneNull, this, NORESIZE, 0, rRect.Height() );
- }
-
-}
-
-
-ETSLayoutMgr::CPaneBase ETSLayoutMgr::itemSpaceLike( layOrientation orientation, UINT nID )
-{
- CWnd *pWnd = GetWnd()->GetDlgItem(nID);
- ASSERT( pWnd );
-
- return itemSpaceLike( orientation, pWnd );
-}
-
-
-
-ETSLayoutMgr::~ETSLayoutMgr()
-{
-}
-
-void ETSLayoutMgr::UpdateLayout()
-{
- if(!m_RootPane)
- return;
-
- // Check constraints
- CRect rcClient = GetRect();
-
- if( m_pWnd->IsKindOf( RUNTIME_CLASS( CDialog ) ) && !(m_pWnd->GetStyle()&WS_CHILD) ) {
- CRect rcWindow;
- m_pWnd->GetWindowRect(rcWindow);
-
- // Added by Didier BULTIAUW
- CWnd* parentWnd = m_pWnd->GetParent();
- if( (parentWnd != 0) && parentWnd->IsKindOf(RUNTIME_CLASS(CView)) )
- {
- CRect rcParent;
- parentWnd->GetWindowRect(rcParent);
- rcWindow.OffsetRect(-rcParent.left,-rcParent.top);
- }
- // end add
-
- CRect rcBorder = rcWindow;
- rcBorder -= rcClient;
-
- // Min and Max info
- int minWidth = m_RootPane->getMinConstrainHorz() + rcBorder.Width() + 2*m_sizeRootBorders.cx;
- int minHeight = m_RootPane->getMinConstrainVert() + rcBorder.Height() + 2*m_sizeRootBorders.cy;
- int maxWidth = m_RootPane->getMaxConstrainHorz();
- if(maxWidth != -1) {
- maxWidth += rcBorder.Width() + 2*m_sizeRootBorders.cx;
- maxWidth = max(maxWidth, minWidth);
- }
- int maxHeight = m_RootPane->getMaxConstrainVert();
- if(maxHeight != -1) {
- maxHeight += rcBorder.Height() + 2*m_sizeRootBorders.cy;
- maxHeight = max(maxHeight, minHeight);
- }
-
- if(rcWindow.Width() < minWidth)
- rcWindow.right = rcWindow.left + minWidth;
- if(rcWindow.Height() < minHeight)
- rcWindow.bottom = rcWindow.top + minHeight;
-
- if(maxWidth != -1 && rcWindow.Width() > maxWidth)
- rcWindow.right = rcWindow.left + maxWidth;
- if(maxHeight != -1 && rcWindow.Height() > maxHeight)
- rcWindow.bottom = rcWindow.top + maxHeight;
-
- m_pWnd->MoveWindow(rcWindow);
- }
- // Do the Layout
- rcClient = GetRect();
-
- // Add a Border around the rootPane
- rcClient.top += m_sizeRootBorders.cy;
- rcClient.bottom -= m_sizeRootBorders.cy;
- rcClient.left += m_sizeRootBorders.cx;
- rcClient.right -= m_sizeRootBorders.cx;
-
- if(GetWnd()->IsWindowVisible()) {
- // Avoid ugly artifacts
- //GetWnd()->SetRedraw(FALSE);
- Layout(rcClient);
- //GetWnd()->SetRedraw(TRUE);
- }
- else
- Layout(rcClient);
-
- // Take special care of SpinButtons (Up-Down Controls) with Buddy set, enumerate
- // all childs:
- CWnd* pWndChild = GetWnd()->GetWindow(GW_CHILD);
- TCHAR szClassName[ MAX_PATH ];
- while(pWndChild)
- {
- ::GetClassName( pWndChild->GetSafeHwnd(), szClassName, MAX_PATH );
- DWORD dwStyle = pWndChild->GetStyle();
-
- // is it a SpinButton?
- if( _tcscmp(szClassName, UPDOWN_CLASS)==0 && ::IsWindowVisible(pWndChild->GetSafeHwnd()) ) {
- HWND hwndBuddy = (HWND)::SendMessage( pWndChild->GetSafeHwnd(), UDM_GETBUDDY, 0, 0);
- if( hwndBuddy != 0 && (dwStyle&(UDS_ALIGNRIGHT|UDS_ALIGNLEFT)) != 0 )
- {
- // reset Buddy
- ::SendMessage( pWndChild->GetSafeHwnd(), UDM_SETBUDDY, (WPARAM)hwndBuddy, 0);
- }
- }
-
-
- pWndChild = pWndChild->GetWindow(GW_HWNDNEXT);
- }
-
-
- GetWnd()->Invalidate();
-}
-
-
-bool ETSLayoutMgr::Save(LPCTSTR lpstrRegKey)
-{
- CRect rcWnd;
-
- if(IsWindow(GetWnd()->m_hWnd))
- {
- WINDOWPLACEMENT wp;
- if(GetWnd()->GetWindowPlacement(&wp))
- {
- // Make sure we don't pop up
- // minimized the next time
- if(wp.showCmd != SW_SHOWMAXIMIZED)
- wp.showCmd = SW_SHOWNORMAL;
-
- AfxGetApp()->WriteProfileBinary(lpstrRegKey,
- _T("WindowPlacement"),
- reinterpret_cast<LPBYTE>(&wp), sizeof(wp));
- }
- }
- return true;
-}
-
-bool ETSLayoutMgr::Load(LPCTSTR lpstrRegKey)
-{
- LPBYTE pbtData = 0;
- UINT nSize = 0;
- if(AfxGetApp()->GetProfileBinary(lpstrRegKey,
- _T("WindowPlacement"), &pbtData, &nSize))
- {
- WINDOWPLACEMENT* pwp =
- reinterpret_cast<WINDOWPLACEMENT*>(pbtData);
-
- ASSERT(nSize == sizeof(WINDOWPLACEMENT));
- if(nSize == sizeof(WINDOWPLACEMENT))
- GetWnd()->SetWindowPlacement(reinterpret_cast<WINDOWPLACEMENT*>(pbtData));
-
- delete [] pbtData;
- }
- return true;
-}
-
-
-void ETSLayoutMgr::EraseBkgnd(CDC* pDC)
-{
- CRect rcClient;
- GetWnd()->GetClientRect( rcClient );
-
- CRgn rgn;
- rgn.CreateRectRgnIndirect(rcClient);
- //TRACE("CreateRgn (%d,%d,%d,%d)\n", rcClient.left, rcClient.top, rcClient.right, rcClient.bottom );
-
- CRgn rgnRect;
- rgnRect.CreateRectRgn(0,0,0,0);
-
- CRect rcChild;
- CWnd* pWndChild = GetWnd()->GetWindow( GW_CHILD );
-
- TCHAR szClassName[ MAX_PATH ];
-
- pDC->SelectClipRgn(NULL);
-
- while( pWndChild ) {
-
- pWndChild->GetWindowRect(rcChild);
- GetWnd()->ScreenToClient( rcChild );
-
- rgnRect.SetRectRgn( rcChild );
-
- ::GetClassName( pWndChild->GetSafeHwnd(), szClassName, MAX_PATH );
- DWORD dwStyle = pWndChild->GetStyle();
-
- // doesn't make sense for hidden children
- if( dwStyle & WS_VISIBLE ) {
-
- // Fix: BS_GROUPBOX is more than one Bit, extend check to (dwStyle & BS_GROUPBOX)==BS_GROUPBOX [ET]
- if( _tcscmp(szClassName,_T("Button"))==0 && (dwStyle & BS_GROUPBOX)==BS_GROUPBOX ) {
- // it is a group-box, ignore completely
- }
- else if( _tcscmp(szClassName,WC_TABCONTROL )==0 ) {
- // ignore Tab-Control's inside rect
- static_cast<CTabCtrl*>(pWndChild)->AdjustRect(FALSE,rcChild);
-
- CRgn rgnContent;
- rgnContent.CreateRectRgnIndirect(rcChild);
-
- rgnRect.CombineRgn( &rgnRect, &rgnContent, RGN_DIFF );
- rgn.CombineRgn( &rgn, &rgnRect, RGN_DIFF );
- }
- else if( _tcscmp(szClassName,STATUSCLASSNAME)==0 ) {
-
- CPoint ptTriangleGrip[3];
- ptTriangleGrip[0] = CPoint(rcChild.right,rcChild.top);
- ptTriangleGrip[1] = CPoint(rcChild.right,rcChild.bottom);
- ptTriangleGrip[2] = CPoint(rcChild.right-rcChild.Height(),rcChild.bottom);
-
- CRgn rgnGripper;
- rgnGripper.CreatePolygonRgn(ptTriangleGrip,3, WINDING);
-
- rgn.CombineRgn( &rgn, &rgnGripper, RGN_DIFF );
-
- }
- else {
- rgn.CombineRgn( &rgn, &rgnRect, RGN_DIFF );
- }
- }
-
- pWndChild = pWndChild->GetNextWindow();
- }
-
- HBRUSH hBrBack = 0;
-#ifdef GCL_HBRBACKGROUND
- hBrBack = (HBRUSH) ::GetClassLong(GetWnd()->GetSafeHwnd(), GCL_HBRBACKGROUND) ;
-#endif
- if( hBrBack == 0 )
- hBrBack = ::GetSysColorBrush(COLOR_BTNFACE);
-
- pDC->FillRgn( &rgn,
- CBrush::FromHandle( hBrBack )
- );
-
-}
-
-/////////////////////////////////////////////////////////////////////////////
-// ETSLayoutMgr::PaneItem implementation
-
-
-ETSLayoutMgr::PaneItem::PaneItem(CWnd* pWnd, ETSLayoutMgr* pMgr, ETSLayoutMgr::layResizeMode modeResize/*=GREEDY*/
- , int sizeX/*=0*/, int sizeY/*=0*/
- , int sizeXMin/*=-1*/, int sizeYMin/*=-1*/ ) : PaneBase( pMgr )
-{
- m_modeResize = modeResize;
- m_hwndCtrl = pWnd->GetSafeHwnd();
-
- m_sizeX = 0;
- m_sizeY = 0;
-
- m_bComboSpecial = false;
-
- m_sizeXMin = sizeXMin;
- m_sizeYMin = sizeYMin;
-
- if(!m_hwndCtrl) { // only Dummy!
- m_sizeX = sizeX;
- m_sizeY = sizeY;
- }
- else {
- CRect rcControl;
- ::GetWindowRect(m_hwndCtrl, &rcControl);
-
- if(sizeX == 0) {
- m_sizeX = rcControl.Width();
- }
- else {
- m_sizeX = sizeX;
- }
- if( m_sizeXMin == -1 ) {
- // do not make smaller than current size
- m_sizeXMin = rcControl.Width();
- }
-
- if(sizeY == 0) {
- m_sizeY = rcControl.Height();
- }
- else {
- m_sizeY = sizeY;
- }
- if( m_sizeYMin == -1 ) {
- // do not make smaller than current size
- m_sizeYMin = rcControl.Height();
- }
-
- TCHAR szClassName[ MAX_PATH ];
- ::GetClassName( m_hwndCtrl, szClassName, MAX_PATH );
-
- // special treatment for combo-boxes
- if( _tcscmp(szClassName,_T("ComboBox"))==0 || _tcscmp(szClassName,WC_COMBOBOXEX)==0) {
- m_bComboSpecial = true;
- }
- }
-}
-
-ETSLayoutMgr::PaneItem::PaneItem( UINT nID, ETSLayoutMgr* pMgr, ETSLayoutMgr::layResizeMode modeResize/*=GREEDY*/
- , int sizeX/*=0*/, int sizeY/*=0*/
- , int sizeXMin/*=-1*/, int sizeYMin/*=-1*/ ) : PaneBase( pMgr )
-{
- CWnd* pWnd = pMgr->GetWnd()->GetDlgItem(nID);
- m_hwndCtrl = pWnd->GetSafeHwnd();
-
- m_sizeX = 0;
- m_sizeY = 0;
-
- m_bComboSpecial = false;
-
- m_modeResize = modeResize;
-
- m_sizeXMin = sizeXMin;
- m_sizeYMin = sizeYMin;
-
- if(!m_hwndCtrl) { // only Dummy!
- m_sizeX = sizeX;
- m_sizeY = sizeY;
- }
- else {
- CRect rcControl;
- ::GetWindowRect(m_hwndCtrl, &rcControl);
-
- if(sizeX == 0) {
- m_sizeX = rcControl.Width();
- }
- else {
- m_sizeX = sizeX;
- }
- if( m_sizeXMin == -1 ) {
- // do not make smaller than current size
- m_sizeXMin = rcControl.Width();
- }
-
- if(sizeY == 0) {
- m_sizeY = rcControl.Height();
- }
- else {
- m_sizeY = sizeY;
- }
- if( m_sizeYMin == -1 ) {
- // do not make smaller than current size
- m_sizeYMin = rcControl.Height();
- }
-
- TCHAR szClassName[ MAX_PATH ];
- ::GetClassName( m_hwndCtrl, szClassName, MAX_PATH );
-
- // special treatment for combo-boxes
- if( _tcscmp(szClassName,_T("ComboBox"))==0 || _tcscmp(szClassName,WC_COMBOBOXEX)==0) {
- m_bComboSpecial = true;
- }
- }
-}
-
-int ETSLayoutMgr::PaneItem::getConstrainHorz(int sizeParent)
-{
- if( m_modeResize & ABSOLUTE_HORZ) {
- return m_sizeX;
- }
- if(m_modeResize & RELATIVE_HORZ) {
- return (sizeParent * m_sizeX) / 100;
- }
- return -1;
-}
-
-int ETSLayoutMgr::PaneItem::getConstrainVert(int sizeParent)
-{
- if(m_modeResize & ABSOLUTE_VERT) {
- return m_sizeY;
- }
- if(m_modeResize & RELATIVE_VERT) {
- return (sizeParent * m_sizeY) / 100;
- }
- return -1;
-}
-
-int ETSLayoutMgr::PaneItem::getMinConstrainHorz()
-{
- if(m_modeResize & ABSOLUTE_HORZ) {
- return m_sizeX;
- }
- return max(nMinConstrain,m_sizeXMin);
-}
-
-int ETSLayoutMgr::PaneItem::getMinConstrainVert()
-{
- if(m_modeResize & ABSOLUTE_VERT) {
- return m_sizeY;
- }
- return max(nMinConstrain,m_sizeYMin);
-}
-
-int ETSLayoutMgr::PaneItem::getMaxConstrainHorz()
-{
- if(m_modeResize & ABSOLUTE_HORZ) {
- return m_sizeX;
- }
- return -1;
-}
-
-int ETSLayoutMgr::PaneItem::getMaxConstrainVert()
-{
- if(m_modeResize & ABSOLUTE_VERT) {
- return m_sizeY;
- }
- return -1;
-}
-
-bool ETSLayoutMgr::PaneItem::resizeTo(CRect& rcNewArea)
-{
- if(m_hwndCtrl) {
-
- CRect rcWnd;
- ::GetWindowRect( m_hwndCtrl, rcWnd );
-
- if( !(m_modeResize & ALIGN_FILL_HORZ) && m_modeResize & ABSOLUTE_HORZ ) {
-
-
- if( (m_modeResize & ALIGN_HCENTER) == ALIGN_HCENTER ) {
- rcNewArea.OffsetRect( (rcNewArea.Width() - rcWnd.Width())/2, 0 );
- }
- else if( m_modeResize & ALIGN_RIGHT ) {
- rcNewArea.OffsetRect( rcNewArea.Width() - rcWnd.Width(), 0 );
- }
-
- rcNewArea.right = rcNewArea.left + rcWnd.Width();
- }
- if( !(m_modeResize & ALIGN_FILL_VERT) && m_modeResize & ABSOLUTE_VERT ) {
-
-
- if( (m_modeResize & ALIGN_VCENTER) == ALIGN_VCENTER ) {
- rcNewArea.OffsetRect( 0, (rcNewArea.Height()-rcWnd.Height())/2 );
- }
- else if( m_modeResize & ALIGN_BOTTOM ) {
- rcNewArea.OffsetRect( 0, rcNewArea.Height() - rcWnd.Height());
- }
-
- rcNewArea.bottom = rcNewArea.top + rcWnd.Height();
-
- }
-
- DWORD dwStyle = ::GetWindowLong( m_hwndCtrl, GWL_STYLE );
-
- // special treatment for combo-boxes
- if( m_bComboSpecial && (dwStyle & CBS_DROPDOWN) ) {
- // keep height (though only fully visible when dropped down)
- rcNewArea.bottom = rcNewArea.top + rcWnd.Height();
- }
-
- // FIX: ::MoveWindow would case problems with some ActiveX Controls [Micheal Chapman]
- CWnd* pTempWnd = CWnd::FromHandle( m_hwndCtrl );
- pTempWnd->MoveWindow( rcNewArea.left, rcNewArea.top, rcNewArea.Width(), rcNewArea.Height() );
-
- if( m_bComboSpecial && !(dwStyle & CBS_DROPDOWN) && !(dwStyle & CBS_NOINTEGRALHEIGHT) ) {
-
- // Keep CB Size = Edit + LB ( if not CBS_NOINTEGRALHEIGHT)
-
- ::GetWindowRect( m_hwndCtrl, rcWnd );
-
- CRect rcListBox;
- HWND hwndListBox = ::GetDlgItem(m_hwndCtrl, 1000); // ListBox of CB
- if( hwndListBox != 0 )
- {
- ::GetWindowRect( hwndListBox, rcListBox );
- rcWnd.bottom = rcListBox.bottom;
-
- rcNewArea.bottom = rcNewArea.top + rcWnd.Height();
-
- // FIX: ::MoveWindow would case problems with some ActiveX Controls [Micheal Chapman]
- CWnd* pTempWnd = CWnd::FromHandle( m_hwndCtrl );
- pTempWnd->MoveWindow( rcNewArea.left, rcNewArea.top, rcNewArea.Width(), rcNewArea.Height(), true );
- }
- }
-
- ::RedrawWindow(m_hwndCtrl,0,0, RDW_INVALIDATE | RDW_UPDATENOW );
-
- }
- return true;
-}
-
-
-/////////////////////////////////////////////////////////////////////////////
-// ETSLayoutMgr::PaneTab implementation
-
-
-ETSLayoutMgr::PaneTab::PaneTab( CTabCtrl* pTab, ETSLayoutMgr* pMgr, layOrientation orientation, int sizeBorder /*= nDefaultBorder*/, int sizeExtraBorder /*= 0*/ )
-: ETSLayoutMgr::Pane(pMgr, orientation, sizeBorder, sizeExtraBorder)
-{
- ASSERT(pTab);
- m_pTab = pTab;
-}
-
-int ETSLayoutMgr::PaneTab::getConstrainHorz(int sizeParent)
-{
- CRect rcTab;
- m_pTab->AdjustRect(TRUE, &rcTab);
-
- if(rcTab.Width() > sizeParent)
- return rcTab.Width();
-
- return Pane::getConstrainHorz(sizeParent /*- rcTab.Width()*/);
-}
-
-int ETSLayoutMgr::PaneTab::getConstrainVert(int sizeParent)
-{
- CRect rcTab;
- m_pTab->AdjustRect(TRUE, &rcTab);
-
- if( m_modeResize & ABSOLUTE_VERT ) {
- return m_sizeSecondary + rcTab.Height();
- }
-
- if(rcTab.Height() > sizeParent)
- return rcTab.Height();
-
- return Pane::getConstrainVert(sizeParent /*- rcTab.Height()*/);
-}
-
-int ETSLayoutMgr::PaneTab::getMinConstrainHorz()
-{
- CRect rcTab(0,0,0,0);
- m_pTab->AdjustRect(TRUE, &rcTab);
-
- return Pane::getMinConstrainHorz() + rcTab.Width() ;
-}
-
-int ETSLayoutMgr::PaneTab::getMinConstrainVert()
-{
- CRect rcTab(0,0,0,0);
- m_pTab->AdjustRect(TRUE, &rcTab);
-
- return Pane::getMinConstrainVert() + rcTab.Height();
-}
-
-int ETSLayoutMgr::PaneTab::getMaxConstrainHorz()
-{
- CRect rcTab(0,0,0,0);
- m_pTab->AdjustRect(TRUE, &rcTab);
-
- int paneMax = Pane::getMaxConstrainHorz();
- return (paneMax != -1) ? paneMax + rcTab.Width() : -1;
-}
-
-int ETSLayoutMgr::PaneTab::getMaxConstrainVert()
-{
- CRect rcTab(0,0,0,0);
- m_pTab->AdjustRect(TRUE, &rcTab);
-
- int paneMax = Pane::getMaxConstrainVert();
- return (paneMax != -1) ? paneMax + rcTab.Height() : -1;
-}
-
-bool ETSLayoutMgr::PaneTab::resizeTo(CRect& rcNewArea)
-{
- m_pTab->MoveWindow(rcNewArea);
- m_pTab->AdjustRect(FALSE,rcNewArea);
-
- return Pane::resizeTo(rcNewArea);
-}
-
-/////////////////////////////////////////////////////////////////////////////
-// ETSLayoutMgr::PaneCtrl implementation
-
-
-ETSLayoutMgr::PaneCtrl::PaneCtrl( CWnd* pCtrl, ETSLayoutMgr* pMgr, layOrientation orientation, int sizeBorder /*= nDefaultBorder*/, int sizeExtraBorder /*= 0*/, int sizeTopExtra /*= 0*/ )
-: ETSLayoutMgr::Pane(pMgr, orientation, sizeBorder, sizeExtraBorder)
-{
- m_sizeTopExtra = sizeTopExtra;
-
- ASSERT(pCtrl);
- m_hwndCtrl = pCtrl->GetSafeHwnd();
-}
-
-ETSLayoutMgr::PaneCtrl::PaneCtrl( UINT nID, ETSLayoutMgr* pMgr, layOrientation orientation, int sizeBorder /*= nDefaultBorder*/, int sizeExtraBorder /*= 0*/, int sizeTopExtra /*= 0*/ )
-: ETSLayoutMgr::Pane(pMgr, orientation, sizeBorder, sizeExtraBorder)
-{
- m_sizeTopExtra = sizeTopExtra;
-
- m_hwndCtrl = ::GetDlgItem(pMgr->GetWnd()->GetSafeHwnd(), nID);
- ASSERT(m_hwndCtrl);
-}
-
-int ETSLayoutMgr::PaneCtrl::getConstrainHorz(int sizeParent)
-{
- return Pane::getConstrainHorz(sizeParent) ;
-}
-
-int ETSLayoutMgr::PaneCtrl::getConstrainVert(int sizeParent)
-{
- return Pane::getConstrainVert(sizeParent);
-}
-
-int ETSLayoutMgr::PaneCtrl::getMinConstrainHorz()
-{
- return Pane::getMinConstrainHorz();
-}
-
-int ETSLayoutMgr::PaneCtrl::getMinConstrainVert()
-{
- return Pane::getMinConstrainVert() + m_sizeTopExtra;
-}
-
-int ETSLayoutMgr::PaneCtrl::getMaxConstrainHorz()
-{
- int paneMax = Pane::getMaxConstrainHorz();
- return ( paneMax == -1) ? -1 : paneMax ;
-}
-
-int ETSLayoutMgr::PaneCtrl::getMaxConstrainVert()
-{
- int paneMax = Pane::getMaxConstrainVert();
- return ( paneMax == -1) ? -1 : paneMax + m_sizeTopExtra;
-}
-
-bool ETSLayoutMgr::PaneCtrl::resizeTo(CRect& rcNewArea)
-{
- // FIX: ::MoveWindow would case problems with some ActiveX Controls [Micheal Chapman]
- CWnd* pTempWnd = CWnd::FromHandle( m_hwndCtrl );
- pTempWnd->MoveWindow( rcNewArea.left, rcNewArea.top, rcNewArea.Width(), rcNewArea.Height(), true );
-
- ::RedrawWindow(m_hwndCtrl,0,0, RDW_INVALIDATE | RDW_UPDATENOW |RDW_ERASE);
- rcNewArea.top += m_sizeTopExtra;
- return Pane::resizeTo(rcNewArea);
-}
-
-/////////////////////////////////////////////////////////////////////////////
-// ETSLayoutMgr::Pane implementation
-
-ETSLayoutMgr::Pane::Pane( ETSLayoutMgr* pMgr, layOrientation orientation, int sizeBorder /* = nDefaultBorder */, int sizeExtraBorder /*= 0*/)
-: PaneBase(pMgr)
-{
- m_Orientation = orientation;
- m_sizeBorder = sizeBorder;
- m_sizeSecondary = 0;
- m_modeResize = 0;
- m_sizeExtraBorder= sizeExtraBorder;
-}
-
-
-ETSLayoutMgr::Pane::~Pane()
-{
-}
-
-
-bool ETSLayoutMgr::Pane::addItem( CWnd* pWnd, ETSLayoutMgr::layResizeMode modeResize /*=GREEDY*/, int sizeX /*=0*/, int sizeY /*=0*/, int sizeXMin /*=0*/, int sizeYMin /*=0*/)
-{
- CPaneBase pItem = new PaneItem( pWnd, m_pMgr, modeResize, sizeX, sizeY, sizeXMin, sizeYMin);
- return addPane( pItem );
-}
-
-bool ETSLayoutMgr::Pane::addItem( UINT nID, ETSLayoutMgr::layResizeMode modeResize /*=GREEDY*/, int sizeX /*=0*/, int sizeY /*=0*/, int sizeXMin /*=0*/, int sizeYMin /*=0*/)
-{
- CPaneBase pItem = new PaneItem( nID, m_pMgr, modeResize, sizeX, sizeY, sizeXMin, sizeYMin);
- return addPane( pItem );
-}
-
-bool ETSLayoutMgr::Pane::addItemFixed(int size)
-{
- CPaneBase pNewItem = m_pMgr->itemFixed(m_Orientation, size);
- return addPane( pNewItem );
-}
-
-bool ETSLayoutMgr::Pane::addItemGrowing()
-{
- CPaneBase pNewItem = m_pMgr->itemGrowing(m_Orientation);
- return addPane( pNewItem );
-}
-
-bool ETSLayoutMgr::Pane::addItemSpaceBetween( CWnd* pWndFirst, CWnd* pWndSecond )
-{
- CPaneBase pNewItem = m_pMgr->itemSpaceBetween(m_Orientation, pWndFirst, pWndSecond);
- return addPane( pNewItem );
-}
-
-bool ETSLayoutMgr::Pane::addItemSpaceBetween( UINT nIDFirst, UINT nIDSecond )
-{
- CPaneBase pNewItem = m_pMgr->itemSpaceBetween(m_Orientation, nIDFirst, nIDSecond);
- return addPane( pNewItem );
-}
-
-bool ETSLayoutMgr::Pane::addItemSpaceLike( CWnd* pWnd )
-{
- CPaneBase pNewItem = m_pMgr->itemSpaceLike(m_Orientation, pWnd);
- return addPane( pNewItem );
-}
-
-bool ETSLayoutMgr::Pane::addItemSpaceLike( UINT nID )
-{
- CPaneBase pNewItem = m_pMgr->itemSpaceLike(m_Orientation, nID);
- return addPane( pNewItem );
-}
-
-bool ETSLayoutMgr::Pane::addPane( CPane pSubpane, ETSLayoutMgr::layResizeMode modeResize, int sizeSecondary /* = 0 */)
-{
- if( pSubpane->getOrientation() == m_Orientation)
- {
- // wrap in subpane of opposite orientation
- CPane pPaneWrap = new Pane(m_pMgr, m_Orientation==HORIZONTAL?VERTICAL:HORIZONTAL,0,0);
- pPaneWrap->addPane( pSubpane );
-
- addPane( pPaneWrap, modeResize, sizeSecondary );
- }
- else
- {
- pSubpane->m_modeResize = modeResize;
-
- if(m_Orientation==HORIZONTAL && (modeResize & ABSOLUTE_HORZ) ) {
- if(sizeSecondary == 0) {
- pSubpane->m_sizeSecondary = pSubpane->getMinConstrainHorz();
- }
- }
- else if(m_Orientation==HORIZONTAL && (modeResize & RELATIVE_HORZ) ) {
- pSubpane->m_sizeSecondary = sizeSecondary;
- }
- else if(m_Orientation==VERTICAL && (modeResize & ABSOLUTE_VERT) ) {
- if(sizeSecondary == 0) {
- pSubpane->m_sizeSecondary = pSubpane->getMinConstrainVert();
- }
- }
- else if(m_Orientation==VERTICAL && (modeResize & RELATIVE_VERT) ) {
- pSubpane->m_sizeSecondary = sizeSecondary;
- }
-
- m_paneItems.Add(pSubpane);
- }
-
- return true;
-}
-
-bool ETSLayoutMgr::Pane::addPane( CPaneBase pItem )
-{
- m_paneItems.Add(pItem);
- return true;
-}
-
-int ETSLayoutMgr::Pane::getConstrainHorz(int sizeParent)
-{
- ASSERT( m_Orientation == VERTICAL);
-
- if( m_modeResize & RELATIVE_HORZ ) {
- return (sizeParent * m_sizeSecondary) / 100;
- }
- else if( m_modeResize & ABSOLUTE_HORZ ){
- return m_sizeSecondary;
- }
- else
- return 0;
-}
-
-
-int ETSLayoutMgr::Pane::getConstrainVert(int sizeParent)
-{
- ASSERT( m_Orientation == HORIZONTAL);
-
- if( m_modeResize & RELATIVE_VERT ) {
- return (sizeParent * m_sizeSecondary) / 100;
- }
- else if( m_modeResize & ABSOLUTE_VERT ) {
- return m_sizeSecondary;
- }
- else {
- return 0;
- }
-}
-
-int ETSLayoutMgr::Pane::getMaxConstrainHorz()
-{
- if(m_Orientation == HORIZONTAL) {
- int nMaxConstr = -1;
- for(int i=0; i<m_paneItems.GetSize(); ++i) {
- CPaneBase pItem = m_paneItems[i];
-
- int nConstrain = pItem->getMaxConstrainHorz();
- if(nConstrain == -1)
- return -1;
-
- nMaxConstr += nConstrain;
- }
- return (nMaxConstr == -1) ? -1 : nMaxConstr + (m_paneItems.GetUpperBound()*m_sizeBorder) + 2*m_sizeExtraBorder;
- }
- else if( m_modeResize & ABSOLUTE_HORZ && m_sizeSecondary!=0) {
- return m_sizeSecondary; // + 2*m_sizeExtraBorder;
- }
- else {
- int nMaxConstr = -1;
- for(int i=0; i<m_paneItems.GetSize(); ++i) {
- CPaneBase pItem = m_paneItems[i];
-
- int nConstrain = pItem->getMaxConstrainHorz();
-
- if( nConstrain == -1)
- return -1;
- else
- nMaxConstr = max(nMaxConstr, nConstrain);
-
- }
- return (nMaxConstr == -1) ? -1 : nMaxConstr + 2*m_sizeExtraBorder;
- }
-}
-
-int ETSLayoutMgr::Pane::getMaxConstrainVert()
-{
- if(m_Orientation == VERTICAL) {
- int nMaxConstr = -1;
- for(int i=0; i<m_paneItems.GetSize(); ++i) {
- CPaneBase pItem = m_paneItems[i];
-
- int nConstrain = pItem->getMaxConstrainVert();
- if(nConstrain == -1)
- return -1;
-
- nMaxConstr += nConstrain;
- }
- return (nMaxConstr == -1) ? -1 : nMaxConstr + (m_paneItems.GetUpperBound()*m_sizeBorder) + 2*m_sizeExtraBorder;
- }
- else if( m_modeResize & ABSOLUTE_VERT && m_sizeSecondary!=0) {
- return m_sizeSecondary; // + 2*m_sizeExtraBorder;
- }
- else {
- int nMaxConstr = -1;
- for(int i=0; i<m_paneItems.GetSize(); ++i) {
- CPaneBase pItem = m_paneItems[i];
-
- int nConstrain = pItem->getMaxConstrainVert();
-
- if( nConstrain == -1)
- return -1;
- else
- nMaxConstr = max(nMaxConstr, nConstrain);
-
- }
- return (nMaxConstr == -1) ? -1 : nMaxConstr + 2*m_sizeExtraBorder;
- }
-}
-
-int ETSLayoutMgr::Pane::getMinConstrainHorz()
-{
- if(m_Orientation == HORIZONTAL) {
- int nMaxConstr = 0;
- for(int i=0; i<m_paneItems.GetSize(); ++i) {
- CPaneBase pItem = m_paneItems[i];
- nMaxConstr += max(nMinConstrain, pItem->getMinConstrainHorz());
- }
- return nMaxConstr + (m_paneItems.GetUpperBound()*m_sizeBorder) + 2*m_sizeExtraBorder;
- }
- else if( m_modeResize & ABSOLUTE_HORZ && m_sizeSecondary!=0) {
- return m_sizeSecondary; // + 2*m_sizeExtraBorder;
- }
- else {
- int nMaxConstr = 0;
- for(int i=0; i<m_paneItems.GetSize(); ++i) {
- CPaneBase pItem = m_paneItems[i];
- int nConstrain = pItem->getMinConstrainHorz();
- nMaxConstr = max(nMaxConstr, nConstrain);
- }
- return nMaxConstr + 2*m_sizeExtraBorder;
- }
-}
-
-int ETSLayoutMgr::Pane::getMinConstrainVert()
-{
- if(m_Orientation == VERTICAL) {
- int nMaxConstr = 0;
- for(int i=0; i<m_paneItems.GetSize(); ++i) {
- CPaneBase pItem = m_paneItems[i];
- nMaxConstr += max(nMinConstrain, pItem->getMinConstrainVert());
- }
- return nMaxConstr + (m_paneItems.GetUpperBound()*m_sizeBorder) + 2*m_sizeExtraBorder;
- }
- else if( m_modeResize & ABSOLUTE_VERT && m_sizeSecondary!=0) {
- return m_sizeSecondary; // + 2*m_sizeExtraBorder;
- }
- else {
- int nMaxConstr = 0;
- for(int i=0; i<m_paneItems.GetSize(); ++i) {
- CPaneBase pItem = m_paneItems[i];
- int nConstrain = pItem->getMinConstrainVert();
- nMaxConstr = max(nMaxConstr, nConstrain);
- }
- return nMaxConstr + 2*m_sizeExtraBorder;
- }
-}
-
-
-int ETSLayoutMgr::Pane::resizeToAbsolute(int& availSpace, CArray<int,int>& sizePrimary,
- CArray<int,int>& sizeMin, CArray<int,int>& sizeMax)
-{
- // count all greedy items as returnvalue
- int nGreedy = 0;
-
- // first, subtract all absoulute items from available space
- for(int i=0; i<m_paneItems.GetSize(); ++i) {
- CPaneBase pItem = m_paneItems[i];
-
- if( m_Orientation == HORIZONTAL ) {
-
- // for absolute items subtract their size from available space
- if(pItem->modeResize() & ABSOLUTE_HORZ) {
- availSpace -= (sizePrimary[i] = pItem->getConstrainHorz(0));
- }
-
- // count Greedy items for later
- if(!(pItem->modeResize() & ABSOLUTE_HORZ) && !(pItem->modeResize() & RELATIVE_HORZ)) {
- nGreedy++;
- }
-
- sizeMin[i] = pItem->getMinConstrainHorz();
- sizeMax[i] = pItem->getMaxConstrainHorz();
- }
- else {
-
- // for absolute items subtract their size from available space
- if(pItem->modeResize() & ABSOLUTE_VERT) {
- availSpace -= (sizePrimary[i] = pItem->getConstrainVert(0));
- }
-
- // count Greedy items for later
- if(!(pItem->modeResize() & ABSOLUTE_VERT) && !(pItem->modeResize() & RELATIVE_VERT)) {
- nGreedy++;
- }
-
- sizeMin[i] = pItem->getMinConstrainVert();
- sizeMax[i] = pItem->getMaxConstrainVert();
- }
-
- }
-
- // Must not be negative !!
- availSpace = max(availSpace, 0);
-
- return nGreedy;
-}
-
-bool ETSLayoutMgr::Pane::resizeToRelative(int& availSpace, CArray<int,int>& sizePrimary,
- CArray<int,int>& sizeMin, CArray<int,int>& sizeMax)
-{
- // Then all relative items as percentage of left space (as of now after
- // all absolute items are subtracted
-
- int availRel = availSpace; // At the beginning all of remaining space is available. We want all
- // operation to be relative to the left space at this moment, so we
- // save this amount here. Then we safly can lower availSpace
-
- int relDiff = 0; // The cumulated difference between first proposed size and
- // eventual maximum/minimum size. This amount has to be
- // saved in some other place (i.e. where relativ items/subpane
- // are not limited by min/max
-
- int relLeft = 0; // The cumulated amout of space that can be saved by
- // shrinking the items/panes up to the minimum
-
- int relCount = 0; // Actually allocated item/subpane's cumulated primary sizes
- // of non-limited items/subpanes (these can be modified in fixup)
- // needed for equally distribution of differences amoung non-limited
- // relative items/subpanes
-
- for(int i=0; i<m_paneItems.GetSize(); ++i) {
- CPaneBase pItem = m_paneItems[i];
-
- // For all relative items in primary direction
- if( (m_Orientation==HORIZONTAL && pItem->modeResize() & RELATIVE_HORZ)
- ||
- (m_Orientation==VERTICAL && pItem->modeResize() & RELATIVE_VERT) )
- {
- // minimum item/subpane size in primary direction (pixels)
- int nSizeRelMin = sizeMin[i];
-
- // maximum item/subpane size in primary direction (pixels)
- int nSizeRelMax = sizeMax[i];
-
- // Relative size in primary direction (pixels)
- int nSizeRel = (m_Orientation==HORIZONTAL)
- ?
- (pItem->getConstrainHorz(availRel))
- :
- (pItem->getConstrainVert(availRel));
-
- if( nSizeRel < nSizeRelMin) {
- // The item/pane is shrinked too small!
- // We will grow it to it's minimum-size. In order not to modify
- // this item later when fixing up set the size to the negative
- // minimum size
- sizePrimary[i] = -nSizeRelMin;
-
- // As we grew one item/subpane we have to shrink another one.
- // We keep count on how much space we needed to grow the item
- // to it's minimum size
- relDiff += ( nSizeRelMin - nSizeRel );
- }
- else if( nSizeRelMax != -1 && nSizeRel > nSizeRelMax) {
- // if there's a maximum size (nSizeRelMax != -1) and our item/subpane
- // is to be resized over that amount correct it. In order not to modify
- // this item later when fixing up set the size to the negative
- // maximum size
- sizePrimary[i] = -nSizeRelMax;
-
- // As we shrinked one item/subpane we have to grow another one.
- // We keep count on how much space we needed to grow the item
- // to it's maximum size.
- relDiff += ( nSizeRelMax - nSizeRel );
- }
- else {
- // this is the normal case: neither are we minimum limited nor maximum
- // limited
-
- // As this item/subpane is larger that it's minimum we could later (if
- // necessary for fixup) shrink it for the difference amount of pixels
- relLeft += ( nSizeRel - nSizeRelMin );
-
- // Set the primary size of this item/pane. Can later be modified by fixup
- sizePrimary[i] = nSizeRel;
-
- // Add this item/subpane's primary size to the count of already allocated
- // cumulated size of non-limited items/subpanes (these can be modified in fixup)
- relCount += nSizeRel;
- }
-
- // decrease available space by used space in this step
- availSpace -= nSizeRel;
- }
- }
-
- // We now have the situation that some items/subpanes had to be adjusted for cumulated
- // relDiff pixels (positive value means more space taken than indicated by percentage of
- // left space). On the other hand we have some items/subpanes which were not limited (in
- // their current dimensions) but could be if necessary up to relLeft pixels.
- if(relLeft < relDiff && availSpace >= (relDiff-relLeft) ){
-
- // If it's not possible to shrink other (relative) panes in order to distribute the
- // difference because the left for shrinking (relLeft) is too small we need to aquire
- // more space from the globally left space (if available at all)
- availSpace -= (relDiff-relLeft);
- relDiff = relLeft;
- }
-
- // At this point we should have some space left (at least not be negative with the leftover
- // space) and on the other hand there's enough space for the limit-difference to be distributed
-// ASSERT( availSpace >= 0 && relLeft >= relDiff);
-
- // Fixup Relative:
- // Distribute (if anecessary) relDiff on other (not limited) relative items/subpanes
- // (if available - if not later just grow the limited panes)
- while( relDiff != 0 && relCount >= 0 ) {
-
- // in every iteration there must be some space distributed (of the difference) or it could
- // come to endless looping. Save the amount of space actually distributed in this iteration
- int relDist = 0;
-
- for(int i=0; i<m_paneItems.GetSize(); ++i) {
-
- CPaneBase pItem = m_paneItems[i];
-
-
- // For all relative items in primary direction which were NOT limited
- if( (m_Orientation==HORIZONTAL && (pItem->modeResize() & RELATIVE_HORZ) && sizePrimary[i] > 0)
- ||
- (m_Orientation==VERTICAL && (pItem->modeResize() & RELATIVE_VERT) && sizePrimary[i] > 0) )
- {
- // keep a flag for termination of this iteration
- bool bLast = false;
-
- // the difference should be distributed amoung all non-limited items/subpanes equally.
- // nDiff is the amount for the current item/subpane
- int nDiff = (relDiff * sizePrimary[i]) / relCount;
-
- // if it's a too small value just add it to the current pane and break iteration
- if( abs(relDiff) <= FIXUP_CUTOFF ) {
- // take it all in this step
- nDiff = relDiff;
-
- // set break flag
- bLast = true;
- }
-
- // calculate the new size for the current item/subpane
- int nNewSize = sizePrimary[i] - nDiff;
-
- if( nNewSize < sizeMin[i] ) {
- // oh, we are limited here. Revise our plan:
-
- // Not all of the space could be saved, add the actually possible space
- // to the sum
- relDist += ( sizePrimary[i] - sizeMin[i] );
-
- // set it to the minimum possible size
- sizePrimary[i] = -sizeMin[i];
-
- // as this item/subpane is now limited it's occupied space doesn't count
- // for relCount anymore
- relCount-= ( sizePrimary[i] );
- }
- else {
- // account the difference of the sizes in relDist and set new size
- relDist += ( sizePrimary[i] - nNewSize );
- sizePrimary[i] = nNewSize;
-
- // if it's the last one break now
- if(bLast)
- break;
- }
- }
- }
- // Distributed some relDiff-space in every iteration
-// ASSERT(relDist != 0);
- relDiff -= relDist;
-
- if( relDist == 0 )
- break;
- }
-
- // Fixup Relative: invert all negative (limited) sized to correct value
- for(int i=0; i<m_paneItems.GetSize(); ++i) {
- CPaneBase pItem = m_paneItems[i];
- if( (m_Orientation==HORIZONTAL && (pItem->modeResize() & RELATIVE_HORZ) && sizePrimary[i] < 0)
- ||
- (m_Orientation==VERTICAL && (pItem->modeResize() & RELATIVE_VERT) && sizePrimary[i] < 0) )
- {
- sizePrimary[i] *= -1;
- }
- }
-
- return true;
-}
-
-bool ETSLayoutMgr::Pane::resizeToGreedy(int& availSpace, int nGreedy, CArray<int,int>& sizePrimary,
- CArray<int,int>& sizeMin, CArray<int,int>& sizeMax)
-{
- // Now resize all Greedy items/subpanes equally among the remaining space
- int greedyDiff = 0; // The cumulated difference between first proposed size and
- // eventual maximum/minimum size. This amount has to be
- // saved in some other place (i.e. where items/subpane
- // are not limited by min/max
-
- int greedyLeft = 0; // The cumulated amount of space that can be saved by
- // shrinking the items/panes up to the minimum
-
- int greedyCount = 0; // Actually allocated item/subpane's cumulated primary sizes
- // of non-limited items/subpanes (these can be modified in fixup)
- // needed for equally distribution of differences amoung non-limited
- // items/subpanes
-
- for(int i=0; i<m_paneItems.GetSize(); ++i) {
- CPaneBase pItem = m_paneItems[i];
-
-
- if( (m_Orientation==HORIZONTAL
- && !(pItem->modeResize()&ABSOLUTE_HORZ)
- && !(pItem->modeResize()&RELATIVE_HORZ)
- )
- ||
- (m_Orientation==VERTICAL
- && !(pItem->modeResize()&ABSOLUTE_VERT)
- && !(pItem->modeResize()&RELATIVE_VERT)
- )
- )
- {
-
- // All greedy items get an equal portion of the left space
- int nSize = availSpace / nGreedy;
-
- // minimum item/subpane size in primary direction (pixels)
- int nSizeMin = sizeMin[i];
-
- // maximum item/subpane size in primary direction (pixels)
- int nSizeMax = sizeMax[i];
-
-
- // the last gets the all of the remaining space
- if( nGreedy == 1 )
- nSize = availSpace;
-
- if( nSize < nSizeMin) {
- // The item/pane is shrinked too small!
- // We will grow it to it's minimum-size. In order not to modify
- // this item later when fixing up set the size to the negative
- // minimum size
- sizePrimary[i] = -nSizeMin;
-
- // As we grew one item/subpane we have to shrink another one.
- // We keep count on how much space we needed to grow the item
- // to it's minimum size
- greedyDiff += ( nSizeMin - nSize );
- }
- else if( nSizeMax != -1 && nSize > nSizeMax) {
- // if there's a maximum size (nSizeRelMax != -1) and our item/subpane
- // is to be resized over that amount correct it. In order not to modify
- // this item later when fixing up set the size to the negative
- // maximum size
- sizePrimary[i] = -nSizeMax;
-
- // As we shrinked one item/subpane we have to grow another one.
- // We keep count on how much space we needed to grow the item
- // to it's maximum size.
- greedyDiff += ( nSizeMax - nSize );
- }
- else {
-
- // this is the normal case: neither are we minimum limited nor maximum
- // limited
-
- // As this item/subpane is larger that it's minimum we could later (if
- // necessary for fixup) shrink it for the difference amount of pixels
- greedyLeft += ( nSize - nSizeMin );
-
- // Set the primary size of this item/pane. Can later be modified by fixup
- sizePrimary[i] = nSize;
-
- // Add this item/subpane's primary size to the count of already allocated
- // cumulated size of non-limited items/subpanes (these can be modified in fixup)
- greedyCount += nSize;
- }
-
- // decrease available space by used space in this step
- availSpace -= nSize;
-
- // one greedy item/subpane complete
- --nGreedy;
- }
- }
-
-
- // Fixup Greedy I
- // Distribute (if anecessary) greedyDiff on other (not limited) greedy items/subpanes
- // (if available - if not later just grow the limited panes)
-
- // at least on not limited item present
- bool bAtLeastOne = true;
-
- while( bAtLeastOne && greedyDiff != 0 && greedyCount > 0) {
-
- // in every iteration there must be some space distributed (of the difference) or it could
- // come to endless looping. Save the amount of space actually distributed in this iteration
- int greedyDist = 0;
-
- // at least on not limited item present
- bAtLeastOne = false;
-
- for(int i=0; i<m_paneItems.GetSize(); ++i) {
- CPaneBase pItem = m_paneItems[i];
-
-
- if( (m_Orientation==HORIZONTAL
- && !(pItem->modeResize()&ABSOLUTE_HORZ)
- && !(pItem->modeResize()&RELATIVE_HORZ)
- && sizePrimary[i] > 0
- )
- ||
- (m_Orientation==VERTICAL
- && !(pItem->modeResize()&ABSOLUTE_VERT)
- && !(pItem->modeResize()&RELATIVE_VERT)
- && sizePrimary[i] > 0
- )
- )
- {
- // keep a flag for termination of this iteration
- bool bLast = false;
-
- // the difference should be distributed among all non-limited items/subpanes equally.
- // nDiff is the amount for the current item/subpane
- int nDiff = (greedyDiff * sizePrimary[i]) / greedyCount;
-
- // if it's a too small value just add it to the current pane and break iteration
- if( abs(greedyDiff) <= FIXUP_CUTOFF || nDiff == 0) {
- // take it all in this step
- nDiff = greedyDiff;
-
- // set break flag
- bLast = true;
- }
-
- // calculate the new size for the current item/subpane
- int nNewSize = sizePrimary[i] - nDiff;
-
- if( nNewSize < sizeMin[i] ) {
- // oh, we are limited here. Revise our plan:
-
- if( sizePrimary[i] != sizeMin[i] )
- bAtLeastOne = true;
-
- // Not all of the space could be saved, add the actually possible space
- // to the sum
- greedyDist += ( sizePrimary[i] - sizeMin[i] );
-
- // set it to the minimum possible size
- sizePrimary[i] = sizeMin[i];
-
- // as this item/subpane is now limited its occupied space doesn't count
- // for relCount anymore
- greedyCount -= ( sizePrimary[i] );
- }
- else {
- // yes, there is one
- bAtLeastOne = true;
-
- // account the difference of the sizes in relDist and set new size
- greedyDist += ( sizePrimary[i] - nNewSize );
- sizePrimary[i] = nNewSize;
-
- // if it's the last one break now
- if(bLast)
- break;
- }
- }
- }
- // Distributed some greedyDiff-space in every iteration
- ASSERT(!bAtLeastOne || greedyDist != 0 || greedyCount<=0);
- greedyDiff -= greedyDist;
- }
-
-
- // Fixup Greedy II
- if( greedyDiff < 0 ) {
- // still difference, some space left
-
- // are there any items which are minimum-limited where we can give more space?
- for(int i=0; i<m_paneItems.GetSize() && greedyDiff!=0; ++i) {
- CPaneBase pItem = m_paneItems[i];
-
- if( (m_Orientation==HORIZONTAL
- && !(pItem->modeResize()&ABSOLUTE_HORZ)
- && !(pItem->modeResize()&RELATIVE_HORZ)
- )
- ||
- (m_Orientation==VERTICAL
- && !(pItem->modeResize()&ABSOLUTE_VERT)
- && !(pItem->modeResize()&RELATIVE_VERT)
- )
- )
- {
- if( sizePrimary[i] == -sizeMin[i] ) {
- // fill this one up as much as possible
- if( sizeMax[i] == -1) {
- // all fits in
- sizePrimary[i] += greedyDiff;
- greedyDiff = 0;
- }
- else {
- sizePrimary[i] += -min( -greedyDiff, sizeMax[i]-sizeMin[i]);
- greedyDiff -= -min( -greedyDiff, sizeMax[i]-sizeMin[i]);
- }
- }
- }
- }
- }
-
-
- // Fixup Greedy III: invert all negative (limited) sized to correct value
- for(int i=0; i<m_paneItems.GetSize(); ++i) {
- CPaneBase pItem = m_paneItems[i];
-
- if( (m_Orientation==HORIZONTAL
- && !(pItem->modeResize() & ABSOLUTE_HORZ)
- && !(pItem->modeResize() & RELATIVE_HORZ)
- && sizePrimary[i] < 0
- && sizeMin[i] >= 0
- )
- ||
- (m_Orientation==VERTICAL
- && !(pItem->modeResize() & ABSOLUTE_VERT)
- && !(pItem->modeResize() & RELATIVE_VERT)
- && sizePrimary[i] < 0
- && sizeMin[i] >= 0
- )
- )
- {
- if(sizePrimary[i] < 0)
- sizePrimary[i] *= -1;
- }
- }
-
- return true;
-}
-
-
-bool ETSLayoutMgr::Pane::resizeTo(CRect& rcNewArea)
-{
- // There must be some items or subpanes
- ASSERT(m_paneItems.GetSize());
-
- // This Array holds the size in primary direction for each item/subpane
- CArray<int,int> sizePrimary;
- sizePrimary.SetSize(m_paneItems.GetSize());
-
- // This Array holds information about the minimum size in primary direction
- CArray<int,int> sizeMin;
- sizeMin.SetSize(m_paneItems.GetSize());
-
- // This Array holds information about the maximum size in primary direction
- CArray<int,int> sizeMax;
- sizeMax.SetSize(m_paneItems.GetSize());
-
-
- // How much space is actually available, subtract all borders between items
- int availSpace = (m_Orientation == HORIZONTAL ? rcNewArea.Width() : rcNewArea.Height() ) - (m_paneItems.GetUpperBound()*m_sizeBorder);
-
- // If there is some Extra border (on top/bottem resp. left/right) subtract it too
- availSpace -= 2*m_sizeExtraBorder;
-
- // Add the extra Border to top/bottem resp. left/right
- if(m_Orientation == HORIZONTAL) {
- rcNewArea.top += m_sizeExtraBorder;
- rcNewArea.bottom -= m_sizeExtraBorder;
- }
- else {
- rcNewArea.left += m_sizeExtraBorder;
- rcNewArea.right -= m_sizeExtraBorder;
- }
-
- // Counts the number of greedy items/subpanes
- int nGreedy = resizeToAbsolute(availSpace, sizePrimary, sizeMin, sizeMax );
-
- if(nGreedy == -1)
- return false;
-
- if(! resizeToRelative(availSpace, sizePrimary, sizeMin, sizeMax ) )
- return false;
-
- if(! resizeToGreedy(availSpace, nGreedy, sizePrimary, sizeMin, sizeMax ) )
- return false;
-
-
- // If there is any left space and there are ALIGN_FILL_* Items to assign it
- // equally among them
- if( availSpace > 0 ) {
- // Count possible Items
- int nFillItems = 0;
-
- for(int i=0; i<m_paneItems.GetSize(); ++i) {
- CPaneBase pItem = m_paneItems[i];
- if( m_Orientation == HORIZONTAL
- && (pItem->modeResize() & ABSOLUTE_HORZ )
- && (pItem->modeResize() & ALIGN_FILL_HORZ)
-
- ||
-
- (pItem->modeResize() & ABSOLUTE_VERT )
- && (pItem->modeResize() & ALIGN_FILL_VERT)
- )
- {
- ++nFillItems;
- }
- }
-
- if( nFillItems > 0 ) {
- // okay, there are nFillItems, make them all availSpace/nFillItems bigger
- for(int i=0; i<m_paneItems.GetSize(); ++i) {
- CPaneBase pItem = m_paneItems[i];
-
- if( m_Orientation == HORIZONTAL
- && (pItem->modeResize() & ABSOLUTE_HORZ )
- && (pItem->modeResize() & ALIGN_FILL_HORZ)
-
- ||
-
- (pItem->modeResize() & ABSOLUTE_VERT )
- && (pItem->modeResize() & ALIGN_FILL_VERT)
- )
- {
-
- if( nFillItems == 1 ) {
- // the last one gets all the rest
- sizePrimary[i] += availSpace;
- availSpace = 0;
- --nFillItems;
- }
- else {
- sizePrimary[i] += availSpace/nFillItems;
- availSpace -= availSpace/nFillItems;
- --nFillItems;
- }
-
- }
- }
- }
-
- }
-
- // Now reposition all items:
-
- // starting offset
- int nOffset = (m_Orientation==HORIZONTAL ? rcNewArea.left : rcNewArea.top ) + m_sizeExtraBorder;
- for(int i=0; i<m_paneItems.GetSize(); ++i) {
- CPaneBase pItem = m_paneItems[i];
-
- // Calculate rect of item/subpane
- CRect rcPane;
-
- if( m_Orientation==HORIZONTAL ) {
- rcPane.SetRect(nOffset, rcNewArea.top, nOffset+sizePrimary[i], rcNewArea.bottom);
- }
- else {
- rcPane.SetRect(rcNewArea.left, nOffset, rcNewArea.right, nOffset+sizePrimary[i]);
- }
-
- // do the resizing!
- pItem->resizeTo( rcPane );
-
- // go to the next position (old pos + size + border)
- ASSERT(sizePrimary[i] >= 0);
- nOffset += m_sizeBorder + sizePrimary[i];
- }
-
-
- return true;
-}
-
-
-/////////////////////////////////////////////////////////////////////////////
-// ETSLayoutDialog dialog
-
-#pragma warning(disable: 4355)
-ETSLayoutDialog::ETSLayoutDialog(UINT nID, CWnd* pParent /*=NULL*/, LPCTSTR strName /*=NULL*/, bool bGripper /*=true*/)
- : CBaseDialog(nID, pParent), ETSLayoutMgr( this )
-{
- //{{AFX_DATA_INIT(ETSLayoutDialog)
- // NOTE: the ClassWizard will add member initialization here
- //}}AFX_DATA_INIT
- m_bGripper = bGripper;
-
- if(strName)
- m_strRegStore = strName;
-}
-#pragma warning(default: 4355)
-
-BEGIN_MESSAGE_MAP(ETSLayoutDialog, CDialog)
- //{{AFX_MSG_MAP(ETSLayoutDialog)
- ON_WM_SIZE()
- ON_WM_GETMINMAXINFO()
- ON_WM_ERASEBKGND()
- ON_WM_DESTROY()
- //}}AFX_MSG_MAP
-END_MESSAGE_MAP()
-
-
-/////////////////////////////////////////////////////////////////////////////
-// ETSLayoutDialog message handlers
-
-BOOL ETSLayoutDialog::OnEraseBkgnd(CDC* pDC)
-{
- EraseBkgnd(pDC);
- return true;
-}
-
-void ETSLayoutDialog::OnSize(UINT nType, int cx, int cy)
-{
- CBaseDialog::OnSize(nType, cx, cy);
-
- if( abs(cx) + abs(cy) > 0)
- {
- // Reposition Size Marker
- // Re-Layout all controls
- UpdateLayout();
- RepositionBars(AFX_IDW_CONTROLBAR_FIRST, AFX_IDW_CONTROLBAR_LAST, 0);
- }
-
-}
-
-void ETSLayoutDialog::OnGetMinMaxInfo(MINMAXINFO FAR* lpMMI)
-{
- if(m_RootPane.IsValid()) {
-
- CRect rcClient = GetRect();
- if( rcClient.Height() > 0 || rcClient.Width() > 0 )
- {
-
- CRect rcWnd;
- GetWindowRect(rcWnd);
-
- // How much do Window and Client differ
- int nDiffHorz = rcWnd.Width() - rcClient.Width();
- int nDiffVert = rcWnd.Height() - rcClient.Height();
-
- // Take into account that there is a border around the rootPane
- lpMMI->ptMinTrackSize = CPoint(m_RootPane->getMinConstrainHorz() + nDiffHorz + 2*m_sizeRootBorders.cx,
- m_RootPane->getMinConstrainVert() + nDiffVert + 2*m_sizeRootBorders.cy);
-
- int maxWidth = m_RootPane->getMaxConstrainHorz();
- int maxHeight = m_RootPane->getMaxConstrainVert();
-
- if( maxWidth != -1 ) {
- lpMMI->ptMaxTrackSize.x = maxWidth + nDiffHorz + 2*m_sizeRootBorders.cx;
- lpMMI->ptMaxSize.x = maxWidth + nDiffHorz + 2*m_sizeRootBorders.cx;
- }
-
- if( maxHeight != -1 ) {
- lpMMI->ptMaxTrackSize.y = maxHeight + nDiffVert + 2*m_sizeRootBorders.cy;
- lpMMI->ptMaxSize.y = maxHeight + nDiffVert + 2*m_sizeRootBorders.cy;
- }
- }
- }
-}
-
-
-CRect ETSLayoutDialog::GetRect()
-{
- CRect r;
- GetClientRect(r);
-
- if( m_bGripper )
- {
- if( ::IsWindow(m_StatusBar.GetSafeHwnd()) )
- {
- CRect rcSizeIcon;
- m_StatusBar.GetWindowRect( rcSizeIcon);
- r.bottom -= (rcSizeIcon.Height() - m_sizeRootBorders.cy - 5);
- }
- }
-
- return r;
-}
-
-
-BOOL ETSLayoutDialog::OnInitDialog()
-{
- CBaseDialog::OnInitDialog();
-
- // Ensure that the dialog is resizable
- this->ModifyStyle(0, WS_THICKFRAME);
-
- if(!m_strRegStore.IsEmpty()) {
- Load(m_strRegStore);
- }
-
-#ifdef _AUTO_SET_ICON
- POSITION pos = AfxGetApp()->GetFirstDocTemplatePosition();
- if(pos) {
-
- class ETSPseudoDocTemplate : public CDocTemplate
- {
- friend class ETSLayoutDialog;
- };
-
- ETSPseudoDocTemplate* pDocT = (ETSPseudoDocTemplate*) AfxGetApp()->GetNextDocTemplate(pos);
- SetIcon( AfxGetApp()->LoadIcon(pDocT->m_nIDResource) ,FALSE);
- }
-#endif
-
- // Sizing icon
- if(m_bGripper)
- {
- if(m_StatusBar.Create(m_pWnd))
- {
- m_StatusBar.SetIndicators(auIDStatusBar, sizeof(auIDStatusBar) / sizeof(UINT));
- m_StatusBar.SetWindowText(_T(""));
- m_StatusBar.SetPaneStyle( 0, SBPS_STRETCH | SBPS_NOBORDERS );
- m_pWnd -> RepositionBars(AFX_IDW_CONTROLBAR_FIRST, AFX_IDW_CONTROLBAR_LAST, 0);
- }
- else
- AfxMessageBox(_T("Error - Statusbar"));
-
- }
- return TRUE; // return TRUE unless you set the focus to a control
- // EXCEPTION: OCX Property Pages should return FALSE
-}
-
-void ETSLayoutDialog::OnDestroy()
-{
- // Store size/position
- if(!m_strRegStore.IsEmpty()) {
- Save(m_strRegStore);
- }
-
- // manually delete layout definition if object is reused
- m_RootPane = 0;
-
- CBaseDialog::OnDestroy();
-}
-
-/////////////////////////////////////////////////////////////////////////////
-// ETSLayoutDialog dialog
-
-#pragma warning(disable: 4355)
-#ifdef CS_HELP
-ETSLayoutDialogBar::ETSLayoutDialogBar(UINT nID )
- : CBaseDialogBar( nID ), ETSLayoutMgr( this )
-#else
-ETSLayoutDialogBar::ETSLayoutDialogBar()
- : ETSLayoutMgr( this )
-#endif
-{
- //{{AFX_DATA_INIT(ETSLayoutDialogBar)
- // NOTE: the ClassWizard will add member initialization here
- //}}AFX_DATA_INIT
- m_bInitialized = false;
- setRootBorders(0,0);
-}
-#pragma warning(default: 4355)
-
-BEGIN_MESSAGE_MAP(ETSLayoutDialogBar, CDialogBar)
- //{{AFX_MSG_MAP(ETSLayoutDialogBar)
- ON_WM_SIZE()
- ON_WM_GETMINMAXINFO()
- ON_WM_DESTROY()
- ON_WM_ERASEBKGND()
- ON_MESSAGE(WM_INITDIALOG, OnInitDialog)
- //}}AFX_MSG_MAP
-END_MESSAGE_MAP()
-
-
-/////////////////////////////////////////////////////////////////////////////
-// ETSLayoutDialogBar message handlers
-
-LRESULT ETSLayoutDialogBar::OnInitDialog(WPARAM, LPARAM)
-{
- Default();
- Initialize();
- return TRUE;
-}
-
-void ETSLayoutDialogBar::UpdateLayout()
-{
- ETSLayoutMgr::UpdateLayout();
-
- if(m_RootPane.IsValid()) {
- CRect rcClient = GetRect();
-
- CRect rcWnd;
- GetWindowRect(rcWnd);
-
- // How much do Window and Client differ
- CSize sizeDiff( rcWnd.Width() - rcClient.Width(), rcWnd.Height() - rcClient.Height());
-
- // Take into account that there is a border around the rootPane
-// m_szMin = CSize(m_RootPane->getMinConstrainHorz() + sizeDiff.cx + 2*m_sizeRootBorders.cx,
-// m_RootPane->getMinConstrainVert() + sizeDiff.cy + 2*m_sizeRootBorders.cy);
- }
-}
-
-CSize ETSLayoutDialogBar::CalcDynamicLayout(int nLength, DWORD dwMode)
-{
- CSize sizeRet = CBaseDialogBar::CalcDynamicLayout(nLength, dwMode);
-
- CSize sizeMin = sizeRet;
- CSize sizeMax = sizeRet;
-
- if(m_RootPane.IsValid()) {
- CRect rcClient = GetRect();
-
- CRect rcWnd;
- GetWindowRect(rcWnd);
-
- // How much do Window and Client differ
- CSize sizeDiff( rcWnd.Width() - rcClient.Width(), rcWnd.Height() - rcClient.Height());
-
- // Take into account that there is a border around the rootPane
-// sizeMin = CSize(m_RootPane->getMinConstrainHorz() + sizeDiff.cx + 2*m_sizeRootBorders.cx,
-// m_RootPane->getMinConstrainVert() + sizeDiff.cy + 2*m_sizeRootBorders.cy);
-
-
- int maxWidth = m_RootPane->getMaxConstrainHorz();
- int maxHeight = m_RootPane->getMaxConstrainVert();
-
- if( maxWidth != -1 ) {
- sizeMax.cx = maxWidth + sizeDiff.cy + 2*m_sizeRootBorders.cx;
- }
-
- if( maxHeight != -1 ) {
- sizeMax.cy = maxHeight + sizeDiff.cy + 2*m_sizeRootBorders.cy;
- }
- }
-
- if( IsFloating() || !(dwMode&LM_HORZ))
- {
- sizeRet.cx = min( sizeRet.cx, sizeMax.cx );
- }
- if( IsFloating() || (dwMode&LM_HORZ))
- {
- sizeRet.cy = min( sizeRet.cy, sizeMax.cy );
- }
-
- sizeRet.cx = max( sizeRet.cx, sizeMin.cx );
- sizeRet.cy = max( sizeRet.cy, sizeMin.cy );
-
- return sizeRet;
-}
-
-BOOL ETSLayoutDialogBar::OnEraseBkgnd(CDC* pDC)
-{
- EraseBkgnd(pDC);
- return true;
-}
-
-
-void ETSLayoutDialogBar::OnSize(UINT nType, int cx, int cy)
-{
- CBaseDialogBar::OnSize(nType, cx, cy);
-
- if( abs(cx) + abs(cy) > 0)
- {
- // Re-Layout all controls
- UpdateLayout();
- }
- RepositionBars(AFX_IDW_CONTROLBAR_FIRST, AFX_IDW_CONTROLBAR_LAST, 0);
-
-}
-
-
-CRect ETSLayoutDialogBar::GetRect()
-{
- CRect r;
- GetClientRect(r);
-
- if( IsFloating() )
- r.DeflateRect(4,4);
-
- return r;
-}
-
-
-void ETSLayoutDialogBar::OnDestroy()
-{
- // Store size/position on your own!
- CBaseDialogBar::OnDestroy();
-}
-
-
-
-/////////////////////////////////////////////////////////////////////////////
-// ETSLayoutFormView dialog
-
-IMPLEMENT_DYNAMIC(ETSLayoutFormView, CFormView)
-
-#pragma warning(disable: 4355)
-ETSLayoutFormView::ETSLayoutFormView(UINT nID, LPCTSTR strName /*=NULL*/)
- : CBaseFormView(nID), ETSLayoutMgr( this )
-{
- if(strName)
- m_strRegStore = strName;
-}
-#pragma warning(default: 4355)
-
-BEGIN_MESSAGE_MAP(ETSLayoutFormView, CFormView)
- //{{AFX_MSG_MAP(ETSLayoutFormView)
- ON_WM_SIZE()
- ON_WM_GETMINMAXINFO()
- ON_WM_ERASEBKGND()
- //}}AFX_MSG_MAP
-END_MESSAGE_MAP()
-
-
-/////////////////////////////////////////////////////////////////////////////
-// ETSLayoutFormView message handlers
-
-BOOL ETSLayoutFormView::OnEraseBkgnd(CDC* pDC)
-{
- EraseBkgnd(pDC);
- return true;
-}
-
-
-void ETSLayoutFormView::OnSize(UINT nType, int cx, int cy)
-{
-// CBaseFormView::OnSize(nType, cx, cy);
- SetScrollSizes(MM_TEXT, CSize(cx,cy));
- if( abs(cx) + abs(cy) > 0) {
- // Re-Layout all controls
- UpdateLayout();
- }
-// MoveWindow(0,0,cx,cy);
-}
-
-/*
-void ETSLayoutFormView::UpdateLayout()
-{
- ETSLayoutMgr::UpdateLayout();
-
- if(m_RootPane.IsValid()) {
- // Force MainFrame to re-layout
- CFrameWnd* pFrame = static_cast<CFrameWnd*>(GetParent());
- if(pFrame) {
-
- CRect rcWnd;
- pFrame->GetWindowRect(rcWnd);
- pFrame->MoveWindow(rcWnd);
- pFrame->RecalcLayout();
-
- }
- return;
- }
-}
-*/
-
-void ETSLayoutFormView::OnGetMinMaxInfo(MINMAXINFO FAR* lpMMI)
-{
- // To use this you'll have to modify your CMainFrame:
- //
- // 1) Add a handler for WM_GETMINMAXINFO()
- // 2) Let this handler be:
- // void CMainFrame::OnGetMinMaxInfo(MINMAXINFO FAR* lpMMI)
- // {
- // CFrameWnd::OnGetMinMaxInfo(lpMMI);
- //
- // if( GetActiveView() && GetActiveView()->IsKindOf( RUNTIME_CLASS(ETSLayoutFormView) ) ) {
- // GetActiveView()->SendMessage( WM_GETMINMAXINFO, 0, (LPARAM) lpMMI );
- // }
- // }
- // 3) Add "#include "dialogmgr.h" to MainFrm.cpp
-
- if(m_RootPane.IsValid()) {
- CRect rcClient = GetRect();
-
- CRect rcWnd;
- GetParent()->GetWindowRect(rcWnd);
-
- // How much do Window and Client differ
- rcWnd-=rcClient;
-
- // Take into account that there is a border around the rootPane
- lpMMI->ptMinTrackSize = CPoint(m_RootPane->getMinConstrainHorz() + rcWnd.Width() + 2*m_sizeRootBorders.cx,
- m_RootPane->getMinConstrainVert() + rcWnd.Height() + 2*m_sizeRootBorders.cy);
-
- int maxWidth = m_RootPane->getMaxConstrainHorz();
- int maxHeight = m_RootPane->getMaxConstrainVert();
-
- if( maxWidth != -1 ) {
- lpMMI->ptMaxTrackSize.x = maxWidth + rcWnd.Width()+ 2*m_sizeRootBorders.cx;
- lpMMI->ptMaxSize.x = maxWidth + rcWnd.Width()+ 2*m_sizeRootBorders.cx;
- }
-
- if( maxHeight != -1 ) {
- lpMMI->ptMaxTrackSize.y = maxHeight + rcWnd.Height() + 2*m_sizeRootBorders.cy;
- lpMMI->ptMaxSize.y = maxHeight + rcWnd.Height() + 2*m_sizeRootBorders.cy;
- }
- }
-}
-
-ETSLayoutFormView::~ETSLayoutFormView()
-{
- // Cleanup
-}
-
-
-/////////////////////////////////////////////////////////////////////////////
-// ETSLayoutPropertyPage
-
-#ifdef CS_HELP
- IMPLEMENT_DYNCREATE(ETSLayoutPropertyPage, ETSCSHelpPropPage)
-#else
- IMPLEMENT_DYNCREATE(ETSLayoutPropertyPage, CPropertyPage)
-#endif
-
-#pragma warning(disable: 4355)
-ETSLayoutPropertyPage::ETSLayoutPropertyPage( ) : ETSLayoutMgr( this )
-{
- m_bLockMove = false;
- m_bResetBuddyOnNextTimeVisible = true;
-}
-
-ETSLayoutPropertyPage::ETSLayoutPropertyPage( UINT nIDTemplate, UINT nIDCaption /*= 0*/ )
- : CBasePropertyPage(nIDTemplate, nIDCaption), ETSLayoutMgr( this )
-{
- m_bLockMove = false;
- m_bResetBuddyOnNextTimeVisible = true;
-}
-
-ETSLayoutPropertyPage::ETSLayoutPropertyPage( LPCTSTR lpszTemplateName, UINT nIDCaption /*= 0*/ )
- : CBasePropertyPage(lpszTemplateName, nIDCaption), ETSLayoutMgr( this )
-{
- m_bLockMove = false;
- m_bResetBuddyOnNextTimeVisible = true;
-}
-#pragma warning(default: 4355)
-
-ETSLayoutPropertyPage::~ETSLayoutPropertyPage()
-{
-}
-
-
-BEGIN_MESSAGE_MAP(ETSLayoutPropertyPage, CPropertyPage)
- //{{AFX_MSG_MAP(ETSLayoutPropertyPage)
- ON_WM_SIZE()
- ON_WM_GETMINMAXINFO()
- ON_WM_ERASEBKGND()
- ON_WM_WINDOWPOSCHANGING()
- ON_WM_DESTROY()
- ON_WM_WINDOWPOSCHANGED()
- //}}AFX_MSG_MAP
-END_MESSAGE_MAP()
-
-
-/////////////////////////////////////////////////////////////////////////////
-// Behandlungsroutinen für Nachrichten ETSLayoutPropertyPage
-
-
-
-void ETSLayoutPropertyPage::OnWindowPosChanged(WINDOWPOS FAR* lpwndpos)
-{
- CBasePropertyPage::OnWindowPosChanged(lpwndpos);
-
- // This code is needed in order to reset the buddy after this page has
- // been activated. At least on Win2k this is not done thru normal resizing,
- // as the page is not visible when first layouted. And without the page
- // being visible it's not possible to tell if the attached buddy is visible
- // or not (at least I don't know any way to do so)
-
- if( ::IsWindowVisible( GetWnd()->GetSafeHwnd() ) )
- {
- if( m_bResetBuddyOnNextTimeVisible )
- {
- // Take special care of SpinButtons (Up-Down Controls) with Buddy set, enumerate
- // all childs:
- CWnd* pWndChild = GetWnd()->GetWindow(GW_CHILD);
- TCHAR szClassName[ MAX_PATH ];
- while(pWndChild)
- {
- ::GetClassName( pWndChild->GetSafeHwnd(), szClassName, MAX_PATH );
- DWORD dwStyle = pWndChild->GetStyle();
-
- // is it a SpinButton?
- if( _tcscmp(szClassName, UPDOWN_CLASS)==0 && ::IsWindowVisible(pWndChild->GetSafeHwnd()) ) {
- HWND hwndBuddy = (HWND)::SendMessage( pWndChild->GetSafeHwnd(), UDM_GETBUDDY, 0, 0);
- if( hwndBuddy != 0 && (dwStyle&(UDS_ALIGNRIGHT|UDS_ALIGNLEFT)) != 0 )
- {
- // reset Buddy
- ::SendMessage( pWndChild->GetSafeHwnd(), UDM_SETBUDDY, (WPARAM)hwndBuddy, 0);
- }
- }
-
-
- pWndChild = pWndChild->GetWindow(GW_HWNDNEXT);
- }
-
- m_bResetBuddyOnNextTimeVisible = false;
- }
- }
- else
- {
- // has been hidden again
- m_bResetBuddyOnNextTimeVisible = true;
- }
-}
-
-void ETSLayoutPropertyPage::OnWindowPosChanging( WINDOWPOS* lpwndpos )
-{
- // In WizardMode the System calls SetWindowPos with the
- // original size at every activation. This could cause
- // some flicker in certain circumstances. Therefore we lock
- // moving the page and unlock it only if _we_ move the page
- if( m_bLockMove)
- {
- lpwndpos->flags |= SWP_NOMOVE | SWP_NOSIZE;
- }
- CBasePropertyPage::OnWindowPosChanging( lpwndpos );
-}
-
-BOOL ETSLayoutPropertyPage::OnEraseBkgnd(CDC* pDC)
-{
- EraseBkgnd(pDC);
- return true;
-}
-
-void ETSLayoutPropertyPage::OnDestroy()
-{
- // manually delete layout definition if object is reused
- m_RootPane = 0;
-
- CBasePropertyPage::OnDestroy();
-}
-
-void ETSLayoutPropertyPage::OnSize(UINT nType, int cx, int cy)
-{
- CBasePropertyPage::OnSize(nType, cx, cy);
-
- if( abs(cx) + abs(cy) > 0)
- {
- // Re-Layout all controls
- UpdateLayout();
- }
-}
-
-void ETSLayoutPropertyPage::OnGetMinMaxInfo(MINMAXINFO FAR* lpMMI)
-{
- if(m_RootPane.IsValid()) {
- CRect rcClient = GetRect();
-
- CRect rcWnd;
- GetWindowRect(rcWnd);
-
- // How much do Window and Client differ
- int nDiffHorz = rcWnd.Width() - rcClient.Width();
- int nDiffVert = rcWnd.Height() - rcClient.Height();
-
- // Take into account that there is a border around the rootPane
- lpMMI->ptMinTrackSize = CPoint(m_RootPane->getMinConstrainHorz() + nDiffHorz + 2*m_sizeRootBorders.cx,
- m_RootPane->getMinConstrainVert() + nDiffVert + 2*m_sizeRootBorders.cy);
-
- int maxWidth = m_RootPane->getMaxConstrainHorz();
- int maxHeight = m_RootPane->getMaxConstrainVert();
-
- if( maxWidth != -1 ) {
- lpMMI->ptMaxTrackSize.x = maxWidth + nDiffHorz + 2*m_sizeRootBorders.cx;
- lpMMI->ptMaxSize.x = maxWidth + nDiffHorz + 2*m_sizeRootBorders.cx;
- }
-
- if( maxHeight != -1 ) {
- lpMMI->ptMaxTrackSize.y = maxHeight + nDiffVert + 2*m_sizeRootBorders.cy;
- lpMMI->ptMaxSize.y = maxHeight + nDiffVert + 2*m_sizeRootBorders.cy;
- }
- }
-}
-
-
-CRect ETSLayoutPropertyPage::GetRect()
-{
- CRect r;
- GetClientRect(r);
- return r;
-}
-
-
-BOOL ETSLayoutPropertyPage::OnInitDialog()
-{
- CBasePropertyPage::OnInitDialog();
- UpdateLayout();
-
- ETSLayoutPropertySheet* pSheet = (ETSLayoutPropertySheet*) GetParent();
-
- ASSERT_KINDOF( ETSLayoutPropertySheet, pSheet);
- if(pSheet)
- {
- if(pSheet->IsWizard())
- {
- m_bLockMove = true;
- }
- }
-
- return TRUE;
-}
-
-BOOL ETSLayoutPropertyPage::OnSetActive()
-{
- ETSLayoutPropertySheet* pSheet = (ETSLayoutPropertySheet*) GetParent();
-
- ASSERT_KINDOF( ETSLayoutPropertySheet, pSheet);
- if(pSheet)
- {
- if(pSheet->IsWizard())
- {
- // In WizardMode the System calls SetWindowPos with the
- // original size on Page Activation. This will position the
- // page at the correct position
- m_bLockMove = false;
- MoveWindow(pSheet->m_rcPage);
- m_bLockMove = true;
- }
- }
-
- UpdateLayout();
-
- return CBasePropertyPage::OnSetActive();
-}
-
-/////////////////////////////////////////////////////////////////////////////
-// ETSLayoutPropertySheet
-
-IMPLEMENT_DYNAMIC(ETSLayoutPropertySheet, CPropertySheet)
-
-#pragma warning(disable: 4355)
-ETSLayoutPropertySheet::ETSLayoutPropertySheet(UINT nIDCaption, CWnd* pParentWnd, UINT iSelectPage,
- LPCTSTR strName /*=NULL*/, bool bGripper/*=true*/)
- : CPropertySheet(nIDCaption, pParentWnd, iSelectPage), ETSLayoutMgr( this )
-{
- Init(strName, bGripper);
-}
-
-ETSLayoutPropertySheet::ETSLayoutPropertySheet(LPCTSTR pszCaption, CWnd* pParentWnd, UINT iSelectPage,
- LPCTSTR strName /*=NULL*/, bool bGripper/*=true*/)
- : CPropertySheet(pszCaption, pParentWnd, iSelectPage), ETSLayoutMgr( this )
-{
- Init(strName, bGripper);
-}
-#pragma warning(default: 4355)
-
-void ETSLayoutPropertySheet::Init(LPCTSTR strName, bool bGripper)
-{
- m_bGripper = bGripper;
- if(strName)
- m_strRegStore = strName;
-
- m_bAutoDestroy = false;
- m_bAutoDestroyPages = false;
- m_bModelessButtons = false;
-}
-
-ETSLayoutPropertySheet::~ETSLayoutPropertySheet()
-{
-}
-
-
-BEGIN_MESSAGE_MAP(ETSLayoutPropertySheet, CPropertySheet)
- //{{AFX_MSG_MAP(ETSLayoutPropertySheet)
- ON_WM_CREATE()
- ON_WM_SIZE()
- ON_WM_GETMINMAXINFO()
- ON_WM_DESTROY()
- ON_WM_ERASEBKGND()
- //}}AFX_MSG_MAP
-END_MESSAGE_MAP()
-
-/////////////////////////////////////////////////////////////////////////////
-// Behandlungsroutinen für Nachrichten ETSLayoutPropertySheet
-
-BOOL ETSLayoutPropertySheet::OnEraseBkgnd(CDC* pDC)
-{
- EraseBkgnd(pDC);
- return true;
-}
-
-
-int ETSLayoutPropertySheet::OnCreate(LPCREATESTRUCT lpCreateStruct)
-{
- if (CPropertySheet::OnCreate(lpCreateStruct) == -1)
- return -1;
-
- ModifyStyle(0,WS_THICKFRAME| WS_SYSMENU);
- return 0;
-}
-
-
-void ETSLayoutPropertySheet::Resize(int cx, int cy)
-{
- if( abs(cx) + abs(cy) > 0 && m_RootPane.IsValid() )
- {
- UpdateLayout();
-
- // Fix for PSH_WIZARDHASFINISH [Thömmi]
- if (IsWizard() && !(m_psh.dwFlags & PSH_WIZARDHASFINISH) )
- {
- // manual reposition of the FINISH button
- // can not be done with normaly layouting because it
- // shares position with the NEXT button
- CWnd *pWndFinish;
- pWndFinish=GetDlgItem(ID_WIZFINISH);
-
- if(pWndFinish)
- {
- CRect rcWnd;
- GetDlgItem(ID_WIZNEXT)->GetWindowRect(&rcWnd);
- ScreenToClient(&rcWnd);
- pWndFinish->MoveWindow(rcWnd);
- pWndFinish->RedrawWindow(0,0, RDW_INVALIDATE | RDW_UPDATENOW );
- }
- }
-
- // reposition Gripper
- if(m_bGripper)
- RepositionBars(AFX_IDW_CONTROLBAR_FIRST, AFX_IDW_CONTROLBAR_LAST, 0);
-
- CPropertyPage* pPage = (CPropertyPage*)GetActivePage();
-
- if(pPage)
- {
- CRect rcWnd;
- GetTabControl()->GetWindowRect(&rcWnd);
- ScreenToClient(&rcWnd);
-
- if(!IsWizard()) {
- // get inside of tab
- GetTabControl()->AdjustRect(FALSE, &rcWnd);
- }
- else
- {
- rcWnd.bottom += 5;
- }
-
- // we need this size in WizardMode in order to
- // reposition newly activated page correctly
- m_rcPage = rcWnd;
-
- if( IsWizard() && pPage->IsKindOf(RUNTIME_CLASS(ETSLayoutPropertyPage)) )
- {
- ETSLayoutPropertyPage* pEtsPage = reinterpret_cast<ETSLayoutPropertyPage*>(pPage);
-
- pEtsPage->m_bLockMove = false;
- pEtsPage->MoveWindow(m_rcPage);
- pEtsPage->m_bLockMove = true;
- }
- else
- {
- pPage->MoveWindow(m_rcPage);
- }
-
- }
-
- if(IsWindowVisible())
- {
- RedrawWindow(0,0, RDW_INVALIDATE|RDW_UPDATENOW );
-
- if(!IsWizard())
- GetTabControl()->RedrawWindow(0,0, RDW_INVALIDATE|RDW_UPDATENOW );
- }
- }
-}
-
-void ETSLayoutPropertySheet::OnSize(UINT nType, int cx, int cy)
-{
- CPropertySheet::OnSize(nType, cx, cy);
- Resize(cx,cy);
-}
-
-// IDs of all PropertySheet controls
-long _PropertySheetIDs[] =
-{
- ID_WIZBACK,
- ID_WIZNEXT,
- ID_WIZFINISH,
- IDOK,
- IDCANCEL,
- ID_APPLY_NOW,
- IDHELP
-};
-
-void ETSLayoutPropertySheet::AddMainArea(CPane paneRoot, CPaneBase itemTab)
-{
- // the default is: Whole main Area is covered by the TabCtrl
- paneRoot << itemTab;
-}
-
-void ETSLayoutPropertySheet::AddButtons(CPane paneBottom)
-{
- // first item greedy to keep others right
- paneBottom->addItem (paneNull, GREEDY);
-
-
- // add all Controls to the layouting
- bool bFirst = true;
- for(int i = 0; i < (sizeof(_PropertySheetIDs) / sizeof(long)) ; i++)
- {
- // Prevent movement of finish button, if it is not shown explicitly [Thömmi]
- if( IsWizard()
- && _PropertySheetIDs[i] == ID_WIZFINISH
- && !(m_psh.dwFlags & PSH_WIZARDHASFINISH) )
- {
- continue;
- }
-
- CWnd* pWnd = GetDlgItem(_PropertySheetIDs[i]);
-
- if(pWnd)
- {
-
- if(!(m_psh.dwFlags & PSH_HASHELP) && _PropertySheetIDs[i] == IDHELP)
- {
- // don't insert
- continue;
- }
-
- if((m_psh.dwFlags & PSH_NOAPPLYNOW) && _PropertySheetIDs[i] == ID_APPLY_NOW)
- {
- // don't insert
- continue;
- }
-
- // space before first one and between BACK & NEXT
- if( IsWizard() )
- {
- if( !bFirst && !(_PropertySheetIDs[i]==ID_WIZNEXT) )
- {
- paneBottom->addItem(paneNull, NORESIZE,12,0,0,0);
- }
- }
-
- pWnd->ShowWindow(true);
- paneBottom->addItem(_PropertySheetIDs[i], NORESIZE);
- bFirst = false;
- }
- }
-
-}
-
-BOOL ETSLayoutPropertySheet::OnInitDialog()
-{
- BOOL bRet = CPropertySheet::OnInitDialog();
-
- //ASSERT(!m_RootPane);
-
- // Save initial rect
- GetWindowRect(&m_rcStart);
-
- CPropertyPage* pPage = CPropertySheet::GetActivePage();
- ASSERT(pPage);
-
- CRect rcPage;
- pPage->GetClientRect(&rcPage);
-
- CreateRoot(VERTICAL);
- //ASSERT(m_RootPane);
-
- // Add Tabcontrol to root pane
- m_ItemTab = item( GetTabControl(), GREEDY, 0, 0, 0, 0);
- AddMainArea(m_RootPane, m_ItemTab);
-
- // Tabcontrol is invisible in WizardMode
- if(IsWizard())
- {
- GetTabControl()->ShowWindow(false);
- }
-
- // add horizontal line in WizardMode
- if(IsWizard() && GetDlgItem(ID_WIZFINISH+1))
- {
- m_RootPane << item(ID_WIZFINISH+1, ABSOLUTE_VERT, 0, 0, 0, 0);
- }
-
- if( IsWizard() || !m_bModeless || m_bModelessButtons )
- {
- // No spaces in WizardMode in order to keep BACK & NEXT together
- CPane bottomPane = pane(HORIZONTAL, ABSOLUTE_VERT, IsWizard() ? 0 : 5);
-
- AddButtons(bottomPane);
- // add bottom (button) pane if any controls were added
- if(bottomPane->m_paneItems.GetSize() > 0) {
- m_RootPane << bottomPane;
- }
- }
-
-
-
- // some Space between Buttons und Gripper
- if(m_bGripper)
- {
- m_RootPane->addItem(paneNull, ABSOLUTE_VERT,0,2);
-
- if(m_StatusBar.Create(m_pWnd))
- {
- m_StatusBar.SetIndicators(auIDStatusBar,
- sizeof(auIDStatusBar) / sizeof(UINT));
- m_StatusBar.SetWindowText(_T(""));
- RepositionBars(AFX_IDW_CONTROLBAR_FIRST, AFX_IDW_CONTROLBAR_LAST, 0);
- }
- else
- {
- AfxMessageBox(_T("Error - Statusbar"));
- }
- }
-
- if(!m_strRegStore.IsEmpty())
- {
- Load(m_strRegStore);
- }
-
- Resize(1,1); // Fix. for 95/98/NT difference
-
- CRect rcWnd;
- GetWindowRect( & rcWnd );
- MoveWindow( rcWnd );
-
- return bRet;
-}
-
-
-void ETSLayoutPropertySheet::OnGetMinMaxInfo(MINMAXINFO FAR* lpMMI)
-{
- if(m_RootPane.IsValid() && GetTabControl() != 0 )
- {
- CRect rcWnd;
- GetWindowRect(rcWnd);
-
- CRect rcClient = GetRect();
- rcWnd-=rcClient;
-
- // ask for MinMax of all pages
- CSize sizePageMax(0,0);
- CSize sizePageMin(0,0);
- for( int nPage=0; nPage<GetPageCount(); ++nPage)
- {
- CPropertyPage* pPage = GetPage(nPage);
- ASSERT(pPage);
- if( pPage )
- {
- MINMAXINFO mmi;
- memset(&mmi, 0, sizeof(mmi));
-
- if( IsWindow(pPage->GetSafeHwnd()) )
- {
- pPage->SendMessage(WM_GETMINMAXINFO, 0, (LPARAM) &mmi);
-
- if(mmi.ptMaxTrackSize.x != 0)
- {
- sizePageMax.cx = min(sizePageMax.cx, mmi.ptMaxTrackSize.x);
- }
- if(mmi.ptMaxTrackSize.y != 0)
- {
- sizePageMax.cy = min(sizePageMax.cy, mmi.ptMaxTrackSize.y);
- }
- if(mmi.ptMinTrackSize.x != 0)
- {
- sizePageMin.cx = max(sizePageMin.cx, mmi.ptMinTrackSize.x);
- }
- if(mmi.ptMinTrackSize.y != 0)
- {
- sizePageMin.cy = max(sizePageMin.cy, mmi.ptMinTrackSize.y);
- }
- }
- }
- }
- static_cast<PaneItem*>( m_ItemTab.GetPaneBase() )->m_sizeXMin = sizePageMin.cx;
- static_cast<PaneItem*>( m_ItemTab.GetPaneBase() )->m_sizeYMin = sizePageMin.cy;
-
- // calculate the needed size of the tabctrl in non-wizard-mode
- CRect rcItem(0,0,0,0);
- if(!IsWizard())
- {
- GetTabControl()->AdjustRect( TRUE, rcItem );
- }
-
- lpMMI->ptMinTrackSize.x = m_RootPane->getMinConstrainHorz() + rcWnd.Width() + 2*m_sizeRootBorders.cx
- + rcItem.Width();
-
- lpMMI->ptMinTrackSize.y = m_RootPane->getMinConstrainVert() + rcWnd.Height() + 2*m_sizeRootBorders.cy
- + rcItem.Height();
-
- // never smaller than inital size!
- lpMMI->ptMinTrackSize.x = max(lpMMI->ptMinTrackSize.x, m_rcStart.Width() );
- lpMMI->ptMinTrackSize.y = max(lpMMI->ptMinTrackSize.y, m_rcStart.Height() );
-
- // Rest like ETSLayoutMgr
-
- int maxWidth = m_RootPane->getMaxConstrainHorz();
- int maxHeight = m_RootPane->getMaxConstrainVert();
-
- if( maxWidth != -1 )
- {
- lpMMI->ptMaxSize.x = sizePageMax.cx + rcWnd.Width()+ 2*m_sizeRootBorders.cx + rcItem.Width() ;
- }
-
- if( maxHeight != -1 )
- {
- lpMMI->ptMaxSize.y = sizePageMax.cy + rcWnd.Height() + 2*m_sizeRootBorders.cy + rcItem.Width() ;
- }
-
- lpMMI->ptMaxTrackSize = lpMMI->ptMaxSize;
-
- }
-}
-
-
-void ETSLayoutPropertySheet::OnDestroy()
-{
- // Store size/position
- if(!m_strRegStore.IsEmpty())
- {
- Save(m_strRegStore);
- }
- m_RootPane = 0;
-
- CPropertySheet::OnDestroy();
-}
-
-void ETSLayoutPropertySheet::PostNcDestroy()
-{
- if(m_bAutoDestroyPages)
- {
- // walk all pages and destry them
- for( int nPage=0; nPage<GetPageCount(); ++nPage)
- {
- CPropertyPage* pPage = GetPage(nPage);
- ASSERT(pPage);
- if( pPage )
- {
- delete pPage;
- }
- }
- }
-
- if(m_bAutoDestroy)
- delete this;
-}
-
-
-
-/**
- * CPane represents an autopointer to a PaneBase. Use this and you won't have to worry
- * about cleaning up any Panes. Also this autopointer lets you return Pane objects
- * from function without using pointers (at least you won't see them :) )
- */
-ETSLayoutMgr::PaneHolder::PaneHolder(PaneBase* pPane )
-{
-
- ASSERT( pPane );
- m_pPane = pPane;
-
- // Implicitly AddRef()
- m_nRefCount = 1;
-}
-
-ETSLayoutMgr::PaneHolder::~PaneHolder()
-{
- ASSERT( m_pPane );
- ASSERT( m_nRefCount == 0 );
-
- delete m_pPane;
-}
-
-void ETSLayoutMgr::PaneHolder::AddRef()
-{
- InterlockedIncrement( &m_nRefCount );
-}
-
-void ETSLayoutMgr::PaneHolder::Release()
-{
- if( InterlockedDecrement( &m_nRefCount ) <= 0 )
- {
- // no more references on me, so destroy myself
- delete this;
- }
-}
-
-ETSLayoutMgr::CPaneBase::CPaneBase( )
-{
- // MUST be initialized later
- m_pPaneHolder = 0;
-}
-
-ETSLayoutMgr::CPaneBase::CPaneBase( PaneBase* pPane )
-{
- m_pPaneHolder = 0;
-
- if( pPane != 0)
- operator=( pPane );
-}
-
-ETSLayoutMgr::CPaneBase::CPaneBase( const CPaneBase& other )
-{
- m_pPaneHolder = 0;
- operator=(other);
-}
-
-ETSLayoutMgr::CPaneBase::~CPaneBase()
-{
- if(m_pPaneHolder)
- m_pPaneHolder->Release();
-}
-
-void ETSLayoutMgr::CPaneBase::operator=( PaneBase* pPane )
-{
- if(m_pPaneHolder)
- {
- m_pPaneHolder->Release();
- m_pPaneHolder = 0;
- }
-
- if( pPane != 0 )
- m_pPaneHolder = new PaneHolder( pPane );
-}
-
-void ETSLayoutMgr::CPaneBase::operator=( const CPaneBase& other )
-{
- ASSERT( other.m_pPaneHolder );
-
- if(m_pPaneHolder)
- {
- m_pPaneHolder->Release();
- m_pPaneHolder = 0;
- }
-
- other.m_pPaneHolder->AddRef();
- m_pPaneHolder = other.m_pPaneHolder;
-}
-
-ETSLayoutMgr::PaneBase* ETSLayoutMgr::CPaneBase::operator->() const
-{
- ASSERT(m_pPaneHolder);
-
- if(!m_pPaneHolder)
- return 0;
-
- return (m_pPaneHolder->m_pPane);
-}
-
-
-
-ETSLayoutMgr::CPane::CPane( )
-{
-}
-
-ETSLayoutMgr::CPane::CPane( Pane* pPane ) : ETSLayoutMgr::CPaneBase( static_cast<PaneBase*>(pPane) )
-{
-}
-
-ETSLayoutMgr::CPane::CPane( const CPane& other )
-{
- operator=(other);
-}
-
-ETSLayoutMgr::CPane::~CPane()
-{
-}
-
-void ETSLayoutMgr::CPane::operator=( Pane* pPane )
-{
- CPaneBase::operator=(pPane);
-}
-
-void ETSLayoutMgr::CPane::operator=( const ETSLayoutMgr::CPane& other )
-{
- ASSERT( other.m_pPaneHolder );
-
- if(m_pPaneHolder)
- {
- m_pPaneHolder->Release();
- m_pPaneHolder = 0;
- }
-
- other.m_pPaneHolder->AddRef();
- m_pPaneHolder = other.m_pPaneHolder;
-}
-
-ETSLayoutMgr::Pane* ETSLayoutMgr::CPane::operator->() const
-{
- ASSERT(m_pPaneHolder);
-
- if(!m_pPaneHolder)
- return 0;
-
- return reinterpret_cast<Pane*>(m_pPaneHolder->m_pPane);
-}
-
-ETSLayoutMgr::CPaneBase ETSLayoutMgr::CPane::ConvertBase() const
-{
- ASSERT(m_pPaneHolder);
- return CPaneBase( m_pPaneHolder->m_pPane );
-}
-
-ETSLayoutMgr::CPane& ETSLayoutMgr::CPane::operator<< ( const ETSLayoutMgr::CPane pPane )
-{
- GetPane()->addPane( pPane, (ETSLayoutMgr::layResizeMode)pPane->m_modeResize, pPane->m_sizeSecondary);
- return (*this);
-}
-
-ETSLayoutMgr::CPane& ETSLayoutMgr::CPane::operator<< ( const ETSLayoutMgr::CPaneBase pItem )
-{
- GetPane()->addPane( pItem );
- return (*this);
-}
diff --git a/Bus/IvyProbe/ETSLayout.h b/Bus/IvyProbe/ETSLayout.h
deleted file mode 100644
index 3bdc0da..0000000
--- a/Bus/IvyProbe/ETSLayout.h
+++ /dev/null
@@ -1,963 +0,0 @@
-////////////////////////////////////////////
-// ___ ____ _________________ //
-// / _/_ _// _______________/ //
-// / _/ / / / / ___ ___ ____ //
-// /__/ /_/ / / / // _/_ _/ //
-// _________/ / / / // _/ / / //
-// (c) 1998-2000_/ /___//_/ /_/ //
-// //
-////////////////////////////////////////////
-// all rights reserved //
-////////////////////////////////////////////
-
-/////////////////////////////////////////////////////////////////////////////
-// ETSLayoutDialog
-//
-// A class for smart layouting of Dialogs and such
-//
-// USAGE: See LayoutMgr.html
-//
-// AUTHOR: Erwin Tratar <tr@et-soft.de>
-//
-// DISCLAIMER:
-//
-// This Sourcecode and all accompaning material is ©1998-1999 Erwin Tratar.
-// All rights reserved.
-//
-// The source code may be used in compiled form in any way you desire
-// (including usage in commercial applications), providing that your
-// application adds essential code (i.e. it is not only a wrapper) to the
-// functionality found here
-//
-// Redistribution of the sourcecode itself, publication in any media or
-// inclusion in a library requires the authors expressed written consent.
-// You may not sale this code for profit.
-//
-// THIS SOFTWARE IS PROVIDED "AS IS" WITHOUT EXPRESS OR IMPLIED WARRANTY. USE IT
-// AT YOUR OWN RISK! THE AUTHOR ACCEPTS NO LIABILITY FOR ANY DAMAGE/LOSS OF
-// BUSINESS THAT THIS PRODUCT MAY CAUSE.
-
-
-#if !defined(ETS_LAYOUTMGR_INCLUDED_)
-#define ETS_LAYOUTMGR_INCLUDED_
-
-#if _MSC_VER >= 1000
-#pragma once
-#endif // _MSC_VER >= 1000
-// DialogMgr.h : header file
-//
-namespace ETSLayout
-{
-
-#ifdef CS_HELP
- typedef ETSCSHelpDialog CBaseDialog;
- typedef ETSCSHelpFormView CBaseFormView;
- typedef ETSCSHelpDlgBar CBaseDialogBar;
- typedef ETSCSHelpPropPage CBasePropertyPage;
-#else
- typedef CDialog CBaseDialog;
- typedef CFormView CBaseFormView;
- typedef CDialogBar CBaseDialogBar;
- typedef CPropertyPage CBasePropertyPage;
-#endif
-}
-
-// Support for CBCGDialogBar instead of CDialogBar available:
-// you just have to change the typedef to CBaseDialogBar
-
-#ifndef ETSGUI_EXT_CLASS
-#define ETSGUI_EXT_CLASS
-#endif
-
-#include <afxtempl.h>
-
-// Support for CBCGDialogBar instead of CDialogBar
-
-/**
- * Controls whether the Icon is automatically set to IDR_MAINFRAME
- */
-#define _AUTO_SET_ICON
-
-/**
- * Forward class declarations
- */
-class ETSLayoutDialog;
-class ETSLayoutDialogBar;
-class ETSLayoutFormView;
-class ETSLayoutMgr;
-class ETSLayoutPropertyPage;
-class ETSLayoutPropertySheet;
-
-
-/**
- * These are NOOPs now
- */
-#define DECLARE_LAYOUT()
-#define IMPLEMENT_LAYOUT()
-
-/**
- * This is the default border size between the panes. You
- * may override it in Pane constructor, but it is the
- * fixed border around the root pane
- */
-const int nDefaultBorder = 5;
-
-/**
- * The minimum size for not ABSOLUTE_XXX items
- */
-const int nMinConstrain = 5;
-
-class ETSGUI_EXT_CLASS ETSLayoutMgr
-{
-public:
-
- enum layResizeMode {
- GREEDY = 0, // Will eat up as much as it can
- ABSOLUTE_HORZ = 1 << 0, // Horizontal size is absolute
- RELATIVE_HORZ = 1 << 1, // Horizontal size in percent
- ABSOLUTE_VERT = 1 << 2, // Vertical size is absolute
- RELATIVE_VERT = 1 << 3, // Vertical size in percent
-
- NORESIZE = ABSOLUTE_HORZ | ABSOLUTE_VERT,
-
- SIZE_MASK = NORESIZE,
-
- ALIGN_LEFT = 1 << 4, // following only for NORESIZE
- ALIGN_RIGHT = 1 << 5,
- ALIGN_TOP = 1 << 6,
- ALIGN_BOTTOM = 1 << 7,
-
- ALIGN_HCENTER = ALIGN_LEFT | ALIGN_RIGHT,
- ALIGN_VCENTER = ALIGN_TOP | ALIGN_BOTTOM,
-
- ALIGN_CENTER = ALIGN_HCENTER | ALIGN_VCENTER,
-
- ALIGN_FILL_HORZ = 1 << 8,
- ALIGN_FILL_VERT = 1 << 9,
- ALIGN_FILL = ALIGN_FILL_HORZ | ALIGN_FILL_VERT,
-
-/* TRACKER_LEFT = 1 << 10, // not yet. May allow tracking of borders
- TRACKER_RIGHT = 1 << 11, // between items in the future
- TRACKER_TOP = 1 << 12,
- TRACKER_BOTTOM = 1 << 13,
-*/
- };
-
- enum layOrientation {
- HORIZONTAL,
- VERTICAL
- };
-
- /**
- * This is the base class for all kind of panes.
- */
- class ETSGUI_EXT_CLASS PaneBase {
- friend class ETSLayoutMgr;
- friend class CPaneBase;
- friend class CPane;
-
- public:
-
- /**
- * Informs the caller how much of the given space this pane would
- * like to receive in horizontal direction
- */
- virtual int getConstrainHorz(int sizeParent) = 0;
-
-
- /**
- * Informs the caller how much of the given space this pane would
- * like to receive in vertical direction
- */
- virtual int getConstrainVert(int sizeParent) = 0;
-
- /**
- * Informs the caller how much of the given space this pane
- * minimally need. This would be an absolute Value if
- * the mode contains ABSOLUTE_HORZ or an explicit minimum
- * value, else nMinConstrain
- */
- virtual int getMinConstrainHorz() = 0;
- /**
- * Informs the caller if there is an restriction for maximum
- * space this pane needs. Return -1 for unrestricted (GREEDY
- * or RELATIVE)
- */
- virtual int getMaxConstrainHorz() = 0;
-
- /**
- * Informs the caller how much of the given space this pane
- * minimally need. This would be an absolute Value if
- * the mode contains ABSOLUTE_VERT or an explicit minimum
- * value, else nMinConstrain
- */
- virtual int getMinConstrainVert() = 0;
-
- /**
- * Informs the caller if there is an restriction for maximum
- * space this pane needs. Return -1 for unrestricted (GREEDY
- * or RELATIVE)
- */
- virtual int getMaxConstrainVert() = 0;
-
- /**
- * This will do the actual resize operation after the
- * caller computed a new area for this pane
- */
- virtual bool resizeTo(CRect& rcNewArea) = 0;
-
- /**
- * Constructor needed pointer to LayoutManager
- */
- PaneBase( ETSLayoutMgr* pMgr ) { m_pMgr = pMgr; };
-
- /**
- * Virtual destructor needed in Container operations
- */
- virtual ~PaneBase() {};
-
- /**
- * Returs the Resize Mode of this pane
- */
- DWORD modeResize() { return m_modeResize; };
-
- protected:
- /**
- * How this Item will be resized, a combination of the flags above
- */
- DWORD m_modeResize;
-
- /**
- * A pointer to the holding LayoutManager derivate
- */
- ETSLayoutMgr* m_pMgr;
- };
-
- /**
- * CPaneBase represents an autopointer to a PaneBase. Use this and you won't have to worry
- * about cleaning up any Panes. Also this autopointer lets you return Pane objects
- * from function without using pointers (at least you won't see them :) )
- */
- struct ETSGUI_EXT_CLASS PaneHolder
- {
- PaneHolder(PaneBase* pPane );
- ~PaneHolder();
-
- void AddRef();
- void Release();
-
- PaneBase* m_pPane;
- long m_nRefCount;
- };
-
- class ETSGUI_EXT_CLASS CPaneBase
- {
- protected:
- PaneHolder* m_pPaneHolder;
-
- public:
- // Standardconstructor
- CPaneBase( );
- CPaneBase( PaneBase* pPane );
- CPaneBase( const CPaneBase& other );
-
- ~CPaneBase();
-
- void operator=( PaneBase* pPane );
- void operator=( const CPaneBase& other );
- PaneBase* operator->() const;
- PaneBase* GetPaneBase() { return operator->(); }
-
- bool IsValid() { return (m_pPaneHolder != 0); }
- bool operator !() { return (m_pPaneHolder == 0); }
-
- };
-
- class Pane;
- class ETSGUI_EXT_CLASS CPane : public CPaneBase
- {
- public:
- // Standardconstructor
- CPane( );
- CPane( Pane* pPane );
- CPane( const CPane& other );
-
- ~CPane();
-
- void operator=( Pane* pPane );
- void operator=( const CPane& other );
- Pane* operator->() const;
- Pane* GetPane() { return operator->(); }
-
- CPaneBase ConvertBase() const;
-
- CPane& operator<< ( const CPane pPane );
- CPane& operator<< ( const CPaneBase pItem );
- };
-
-
-
- /**
- * PaneItem represents a single control
- */
- class ETSGUI_EXT_CLASS PaneItem : public PaneBase {
- friend class ETSLayoutMgr;
- friend class Pane;
- protected:
- /**
- * Creates a new PaneItem from an Control. If sizeX or sizeY are 0
- * and modeResize is ABSOLUTE will copy the current dimensions of
- * the control to m_sizeX/Y. So the appearance does not change
- * from the Dialog Editor
- */
- PaneItem( CWnd* pWnd, ETSLayoutMgr* pMgr, layResizeMode modeResize = GREEDY, int sizeX=0, int sizeY=0, int sizeXMin=0, int sizeYMin=0);
-
- /**
- * If your control is not mapped you can name it by its ChildID. Pass
- * the pMgr to receive the CWnd* of nID.
- * The rest as stated above
- */
- PaneItem( UINT nID, ETSLayoutMgr* pMgr, layResizeMode modeResize = GREEDY, int sizeX=0, int sizeY=0, int sizeXMin=0, int sizeYMin=0);
-
-
- public:
- /**
- * see PaneBase
- */
- virtual int getConstrainHorz(int sizeParent);
- virtual int getConstrainVert(int sizeParent);
- virtual int getMinConstrainHorz();
- virtual int getMinConstrainVert();
- virtual int getMaxConstrainHorz();
- virtual int getMaxConstrainVert();
- virtual bool resizeTo(CRect& rcNewArea);
-
- bool isDummy() { return (m_hwndCtrl == 0); }
-
- protected:
- friend class ETSLayoutPropertySheet;
-
- /**
- * The horizontal size of the control (see m_modeResize)
- */
- int m_sizeX;
- int m_sizeXMin;
-
- /**
- * The vertical size of the control (see m_modeResize)
- */
- int m_sizeY;
- int m_sizeYMin;
-
- /**
- * Child Control pointer
- */
- HWND m_hwndCtrl;
-
- /**
- * Combo box needs special treatment
- */
- bool m_bComboSpecial;
- };
-
-
- /**
- * This class encapsulates a Subpane (and indeed the root Pane too)
- * it is a container of PaneBase* which it will recursivly resize
- */
- class ETSGUI_EXT_CLASS Pane : public PaneBase {
- friend class ETSLayoutMgr;
- friend class CPaneBase;
- friend class CPane;
- friend class ETSLayoutPropertySheet;
-
- protected:
- /**
- * Tell the pane in which direction it is positioned. A HORIZONTAL pane
- * arranges it's subpanes from left to right, a VERTICAL from top to bottom
- */
- Pane( ETSLayoutMgr* pMgr, layOrientation orientation, int sizeBorder = nDefaultBorder, int sizeExtraBorder = 0 );
-
- public:
- /**
- * If your control is not mapped you can name it by its ChildID. Pass
- * the pMgr to receive the CWnd* of nID.
- * The rest as stated above
- */
- bool addItem( UINT nID, layResizeMode modeResize = GREEDY, int sizeX=0, int sizeY=0, int sizeXMin=-1, int sizeYMin=-1);
-
- /**
- * Creates a new PaneItem from an Control. If sizeX or sizeY are 0
- * and modeResize is ABSOLUTE will copy the current dimensions of
- * the control to m_sizeX/Y. So the appearance does not change
- * from the Dialog Editor
- */
- bool addItem( CWnd* pWnd, layResizeMode modeResize = GREEDY, int sizeX=0, int sizeY=0, int sizeXMin=-1, int sizeYMin=-1);
-
-
- /**
- * Add a whitespace Item (paneNull) of variable size with
- * a minimum size of 0
- */
- bool addItemGrowing();
-
- /**
- * Add a whitespace Item (paneNull) with fixed size
- */
- bool addItemFixed(int size);
-
- /**
- * Add a whitespace Item (paneNull) of fixed size based on the
- * current layout (as in the dialog template). Based on the layout
- * of the pane vertical or horizontal spacing is considered
- *
- * First argument is the left (top) item for a HORIZONTAL (VERTICAL) pane
- */
- bool addItemSpaceBetween( CWnd* pWndFirst, CWnd* pWndSecond );
- bool addItemSpaceBetween( UINT nIDFirst, UINT nIDSecond );
-
-
- /**
- * Add a whitespace Item (paneNull) of fixed size based on the
- * size of another item
- */
- bool addItemSpaceLike( CWnd* pWnd );
- bool addItemSpaceLike( UINT nID );
-
-
- /**
- * Add an item to the pane, appending at the end. This may be either obtained
- * by a call to ETSLayoutMgr::item() or one of the ETSLayoutMgr::paneXXX() calls
- */
- bool addPane( CPaneBase pItem );
- bool addPane( CPane pSubpane, layResizeMode modeResize, int sizeSecondary /* = 0 */);
-
- virtual int getConstrainHorz(int sizeParent);
- virtual int getConstrainVert(int sizeParent);
- virtual int getMinConstrainHorz();
- virtual int getMinConstrainVert();
- virtual int getMaxConstrainHorz();
- virtual int getMaxConstrainVert();
- virtual bool resizeTo(CRect& rcNewArea);
-
- /**
- * The destructor takes care of destroying all Subpanes and items
- */
- virtual ~Pane();
-
- /**
- * Access to the orientation of this pane
- */
- layOrientation getOrientation() { return m_Orientation; };
-
-
- protected:
-
- int resizeToAbsolute(int& availSpace, CArray<int,int>& sizePrimary,
- CArray<int,int>& sizeMin, CArray<int,int>& sizeMax);
-
- bool resizeToRelative(int& availSpace, CArray<int,int>& sizePrimary,
- CArray<int,int>& sizeMin, CArray<int,int>& sizeMax);
-
- bool resizeToGreedy( int& availSpace, int nGreedy, CArray<int,int>& sizePrimary,
- CArray<int,int>& sizeMin, CArray<int,int>& sizeMax);
-
- /**
- * The orientation of the pane. Keep in mind that all subpanes
- * must have the complementary orientation, i.e. a VERTICAL
- * pane must have all HORIZONTAL SubPanes (or normal Items
- * of course)
- */
- layOrientation m_Orientation;
-
- /**
- * This array holds the pointers to the Items/SubPanes
- */
- CArray<CPaneBase, CPaneBase> m_paneItems;
-
- /**
- * The secondary constrain
- */
- int m_sizeSecondary;
-
- /**
- * Size of gap between childs
- */
- int m_sizeBorder;
- int m_sizeExtraBorder;
- };
-
-
- /**
- * This class encapsulates a Subpane which is a Tab
- * it will use calls to AdjustRect to position it's
- * childs
- */
- class ETSGUI_EXT_CLASS PaneTab : public Pane
- {
- friend class ETSLayoutMgr;
-
- protected:
- /**
- * Tell the pane in which direction it is positioned. A HORIZONTAL pane
- * arranges it's subpanes from left to right, a VERTICAL from top to bottom
- */
- PaneTab( CTabCtrl* pTab, ETSLayoutMgr* pMgr, layOrientation orientation, int sizeBorder = nDefaultBorder, int sizeExtraBorder = 0 );
-
- public:
- virtual int getConstrainHorz(int sizeParent);
- virtual int getConstrainVert(int sizeParent);
- virtual int getMinConstrainHorz();
- virtual int getMinConstrainVert();
- virtual int getMaxConstrainHorz();
- virtual int getMaxConstrainVert();
- virtual bool resizeTo(CRect& rcNewArea);
-
- private:
- CTabCtrl* m_pTab;
- };
-
- /**
- * This class encapsulates a Subpane which is a Static
- * it will use calls to AdjustRect to position it's
- * childs
- */
- class ETSGUI_EXT_CLASS PaneCtrl : public Pane
- {
- friend class ETSLayoutMgr;
- protected:
- /**
- * Tell the pane in which direction it is positioned. A HORIZONTAL pane
- * arranges it's subpanes from left to right, a VERTICAL from top to bottom
- */
- PaneCtrl( CWnd* pCtrl, ETSLayoutMgr* pMgr, layOrientation orientation, int sizeBorder = nDefaultBorder, int sizeExtraBorder = 0, int sizeTopExtra = 0);
- PaneCtrl( UINT nID, ETSLayoutMgr* pMgr, layOrientation orientation, int sizeBorder = nDefaultBorder, int sizeExtraBorder = 0, int sizeTopExtra = 0 );
-
- public:
-
- virtual int getConstrainHorz(int sizeParent);
- virtual int getConstrainVert(int sizeParent);
- virtual int getMinConstrainHorz();
- virtual int getMinConstrainVert();
- virtual int getMaxConstrainHorz();
- virtual int getMaxConstrainVert();
- virtual bool resizeTo(CRect& rcNewArea);
-
- private:
- HWND m_hwndCtrl;
- int m_sizeTopExtra;
- };
-
-
-
-
- ETSLayoutMgr(CWnd* pWnd) { m_pWnd = pWnd; m_sizeRootBorders = CSize(5,5); };
- virtual ~ETSLayoutMgr();
-
- virtual CRect GetRect() { CRect r; m_pWnd->GetClientRect(r); return r; };
- CWnd* m_pWnd;
- CWnd* GetWnd() { return m_pWnd; };
- void setRootBorders(int cx, int cy) { m_sizeRootBorders = CSize(cx,cy); };
-
- /**
- * Pass this for a pseudo Pane with no content
- */
- static CWnd* paneNull;
-
- /**
- * Loads the current position and size from the registry using a supplied
- * key. Will be loaded with AfxGetApp()->WriteProfileXXX(). You may
- * specify a subfolder (e.g. Load( _T("MyDialog\\Layout") ); ). Will
- * load the following keys:
- *
- * - lpstrRegKey+"SizeX";
- * - lpstrRegKey+"SizeY";
- * - lpstrRegKey+"PosX";
- * - lpstrRegKey+"PosY";
- *
- * Is automatically called during OnActivate() if key specified in
- * constructor.
- */
- bool Load(LPCTSTR lpstrRegKey);
-
- /**
- * Store the current position and size to the registry using a supplied
- * key. Will be stored with AfxGetApp()->WriteProfileXXX(). You may
- * specify a subfolder (e.g. Save( _T("MyDialog\\Layout") ); ). Will
- * create the following keys:
- *
- * - lpstrRegKey+"SizeX";
- * - lpstrRegKey+"SizeY";
- * - lpstrRegKey+"PosX";
- * - lpstrRegKey+"PosY";
- *
- * Is automatically called during DestroyWindow() if key specified in
- * constructor.
- */
- bool Save(LPCTSTR lpstrRegKey);
-
- /**
- * Updates the layout after you specify the new
- * layout
- */
- virtual void UpdateLayout();
- virtual void UpdateLayout(CPane p) {
- if(m_RootPane.IsValid())
- {
- // free old root
- m_RootPane = 0;
- }
- m_RootPane = p;
- UpdateLayout();
- }
-
- /**
- * Does the actual Layout, called from OnSize()
- * Default implementation does nothing, use
- * IMPLEMENT_LAYOUT in your derived class (see above)
- */
- virtual void Layout(CRect& rcClient);
-
-
- /**
- * Erasing only the these parts of the client area where
- * there is no child window. Extra-code for group-boxes
- * included!
- */
- void EraseBkgnd(CDC* pDC);
-
- /**
- * Helperfunctions for the stream-interface. For usage see sample Application
- * and/or documentation.
- */
-
- /**
- * Create a new Pane. You may specify the resize
- * mode for both directions. If you add modes for the secondary direction
- * (i.e. *_VERT for a HORIZONTAL pane) then sizeSecondary is used as it's
- * size. If you do not specify sizeSecondary and the mode is ABSOLUTE_VERT
- * it will be computed as the maximum Height of all SubPanes (the same is
- * true for VERTICAL panes and subpanes with *_HORZ)
- */
- CPane pane( layOrientation orientation, layResizeMode modeResize = GREEDY, int sizeBorder = nDefaultBorder, int sizeExtraBorder = 0, int sizeSecondary = 0);
-
- /**
- * Create one of the special control panes. Parameter are like pane(). For
- * additional information see documentation
- */
- CPane paneTab( CTabCtrl* pTab, layOrientation orientation, layResizeMode modeResize = GREEDY, int sizeBorder = nDefaultBorder, int sizeExtraBorder = 0, int sizeSecondary = 0);
- CPane paneCtrl( UINT nID, layOrientation orientation, layResizeMode modeResize = GREEDY, int sizeBorder = nDefaultBorder, int sizeExtraBorder = 0, int sizeTopExtra = 0, int sizeSecondary = 0);
- CPane paneCtrl( CWnd* pCtrl, layOrientation orientation, layResizeMode modeResize = GREEDY, int sizeBorder = nDefaultBorder, int sizeExtraBorder = 0, int sizeTopExtra = 0, int sizeSecondary = 0);
-
- /**
- * Creates a new PaneItem for an Control. If sizeX or sizeY are 0
- * and modeResize is ABSOLUTE will copy the current dimensions of
- * the control to m_sizeX/Y. So the appearance does not change
- * from the Dialog Editor. size*Min = -1 means: do not make smaller
- * than in Dialog Template.
- */
- CPaneBase item(UINT nID, layResizeMode modeResize = GREEDY, int sizeX =0, int sizeY =0, int sizeXMin =-1, int sizeYMin =-1);
- CPaneBase item(CWnd* pWnd, layResizeMode modeResize = GREEDY, int sizeX =0, int sizeY =0, int sizeXMin =-1, int sizeYMin =-1);
-
-
- /**
- * Add a whitespace Item (paneNull) of variable size with
- * a minimum size of 0
- */
- CPaneBase itemGrowing(layOrientation orientation);
-
- /**
- * Add a whitespace Item (paneNull) with fixed size
- */
- CPaneBase itemFixed(layOrientation orientation, int sizePrimary);
-
- /**
- * Add a whitespace Item (paneNull) of fixed size based on the
- * current layout (as in the dialog template). Based on the layout
- * of the pane vertical or horizontal spacing is considered
- *
- * First argument is the left (top) item for a HORIZONTAL (VERTICAL) pane
- */
- CPaneBase itemSpaceBetween( layOrientation orientation, CWnd* pWndFirst, CWnd* pWndSecond );
- CPaneBase itemSpaceBetween( layOrientation orientation, UINT nIDFirst, UINT nIDSecond );
-
- /**
- * Add a whitespace Item (paneNull) of fixed size based on the
- * size of another item
- */
- CPaneBase itemSpaceLike( layOrientation orientation, CWnd* pWnd );
- CPaneBase itemSpaceLike( layOrientation orientation, UINT nID );
-
-protected:
- /**
- * This holds the root pane. Fill in InitDialog()
- */
- CPane m_RootPane;
-
- /**
- * Create a root pane
- */
- CPane CreateRoot(layOrientation orientation, int sizeBorder = nDefaultBorder, int sizeExtraBorder = 0 )
- {
- if(m_RootPane.IsValid())
- {
- // free old root
- m_RootPane = 0;
- }
- m_RootPane = new Pane( this, orientation, sizeBorder, sizeExtraBorder);
- return m_RootPane;
- }
-
- /**
- * Key in Registry where to store Size
- */
- CString m_strRegStore;
-
- /**
- * Borders around root
- */
- CSize m_sizeRootBorders;
-};
-
-inline ETSLayoutMgr::layResizeMode operator|(const ETSLayoutMgr::layResizeMode m1,
- const ETSLayoutMgr::layResizeMode m2)
- { return (ETSLayoutMgr::layResizeMode)( (DWORD)m1|(DWORD)m2); }
-
-
-/**
- * Base class for the Layout function. Derive your own class
- * from this or derive it from CDialog and modify _all_
- * references to CDialog to ETSLayoutDialog
- */
-class ETSGUI_EXT_CLASS ETSLayoutDialog : public ETSLayout::CBaseDialog, protected ETSLayoutMgr
-{
-// Construction
-public:
- ETSLayoutDialog(UINT nID, CWnd* pParent = NULL, LPCTSTR strName = NULL, bool bGripper = true); // standard constructor
-
-// Dialog Data
- //{{AFX_DATA(ETSLayoutDialog)
- //}}AFX_DATA
-
-
-// Overrides
- // ClassWizard generated virtual function overrides
- //{{AFX_VIRTUAL(ETSLayoutDialog)
- //}}AFX_VIRTUAL
-
-// Implementation
-protected:
- // Generated message map functions
- //{{AFX_MSG(ETSLayoutDialog)
- afx_msg void OnSize(UINT nType, int cx, int cy);
- afx_msg void OnGetMinMaxInfo(MINMAXINFO FAR* lpMMI);
- afx_msg BOOL OnEraseBkgnd(CDC* pDC);
- virtual BOOL OnInitDialog();
- afx_msg void OnDestroy();
- //}}AFX_MSG
- DECLARE_MESSAGE_MAP()
-
- virtual CRect GetRect();
-
- bool m_bGripper;
- CStatusBar m_StatusBar;
-};
-
-
-/**
- * Base class for the Layout function. Derive your own class
- * from this or derive it from CDialog and modify _all_
- * references to CFormView to ETSLayoutFormView
- */
-class ETSGUI_EXT_CLASS ETSLayoutFormView : public ETSLayout::CBaseFormView, public ETSLayoutMgr
-{
-// Construction
- DECLARE_DYNAMIC(ETSLayoutFormView)
-public:
- ETSLayoutFormView(UINT nID, LPCTSTR strName = NULL); // standard constructor
- virtual ~ETSLayoutFormView();
-
-// virtual void UpdateLayout();
-
-
-// Overrides
- // ClassWizard generated virtual function overrides
- //{{AFX_VIRTUAL(ETSLayoutDialog)
- //}}AFX_VIRTUAL
-
-// Implementation
-protected:
-
- // Generated message map functions
- //{{AFX_MSG(ETSLayoutDialog)
- afx_msg void OnSize(UINT nType, int cx, int cy);
- afx_msg BOOL OnEraseBkgnd(CDC* pDC);
- afx_msg void OnGetMinMaxInfo(MINMAXINFO FAR* lpMMI);
- //}}AFX_MSG
- DECLARE_MESSAGE_MAP()
-};
-
-
-/**
- * Base class for the Layout function. Derive your own class
- * from this or derive it from CBCGDialogBar/CDialogBar and
- * modify _all_ references to CBCGDialogBar/CDialogBar to
- * ETSLayoutDialogBar
- */
-class ETSGUI_EXT_CLASS ETSLayoutDialogBar : public ETSLayout::CBaseDialogBar, protected ETSLayoutMgr
-{
-// Construction
-public:
-#ifdef CS_HELP
- ETSLayoutDialogBar(UINT nID);
-#else
- ETSLayoutDialogBar();
-#endif
-
-
-// Overrides
- // ClassWizard generated virtual function overrides
- //{{AFX_VIRTUAL(ETSLayoutDialogBar)
- virtual CSize CalcDynamicLayout(int nLength, DWORD dwMode);
- //}}AFX_VIRTUAL
-
- /**
- * Override this to define Layout
- */
- virtual BOOL Initialize() { return false; };
- virtual void UpdateLayout();
-
-// Implementation
-protected:
- // Generated message map functions
- //{{AFX_MSG(ETSLayoutDialogBar)
- afx_msg void OnSize(UINT nType, int cx, int cy);
- afx_msg void OnDestroy();
- afx_msg BOOL OnEraseBkgnd(CDC* pDC);
- //}}AFX_MSG
- LRESULT OnInitDialog(WPARAM, LPARAM);
- DECLARE_MESSAGE_MAP()
-
- virtual CRect GetRect();
- bool m_bInitialized;
-};
-
-
-
-/**************************************************
- ** ! the code is only tested for modal sheets ! **
- **************************************************/
-
-
-/**
- * Resizable PropertySheet. Use this class standalone
- * or as your base class (instead CProptertySheet)
- */
-class ETSGUI_EXT_CLASS ETSLayoutPropertySheet : public CPropertySheet, protected ETSLayoutMgr
-{
- DECLARE_DYNAMIC(ETSLayoutPropertySheet)
-
-// Construction
-public:
- ETSLayoutPropertySheet(UINT nIDCaption, CWnd *pParentWnd = NULL, UINT iSelectPage = 0, LPCTSTR strName=NULL, bool bGripper=true);
- ETSLayoutPropertySheet(LPCTSTR pszCaption, CWnd *pParentWnd = NULL, UINT iSelectPage = 0, LPCTSTR strName=NULL, bool bGripper=true);
-
-// Operationen
-public:
- void SetAutoDestroy() { m_bAutoDestroy = true; }
- void SetAutoDestroyPages() { m_bAutoDestroyPages = true; }
- void ModelessWithButtons() { m_bModelessButtons = true; }
-// Overrides
- virtual void AddMainArea(CPane paneRoot, CPaneBase itemTab);
- virtual void AddButtons(CPane paneBottom);
-
- // ClassWizard generated virtual function overrides
- //{{AFX_VIRTUAL(ETSLayoutPropertySheet)
- public:
- virtual BOOL OnInitDialog();
- virtual void PostNcDestroy();
- //}}AFX_VIRTUAL
-
-// Implementation
-public:
- virtual ~ETSLayoutPropertySheet();
-
- // Generated message map functions
-protected:
- //{{AFX_MSG(ETSLayoutPropertySheet)
- afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
- afx_msg void OnSize(UINT nType, int cx, int cy);
- afx_msg void OnGetMinMaxInfo(MINMAXINFO FAR* lpMMI);
- afx_msg void OnDestroy();
- afx_msg BOOL OnEraseBkgnd(CDC* pDC);
- //}}AFX_MSG
- DECLARE_MESSAGE_MAP()
-
- void Resize(int cx, int cy);
-
-friend class ETSLayoutPropertyPage;
-
- void Init(LPCTSTR strName, bool bGripper);
- CRect m_rcStart;
- CRect m_rcPage;
- bool m_bGripper;
- CStatusBar m_StatusBar;
- CPaneBase m_ItemTab;
- bool m_bAutoDestroy;
- bool m_bAutoDestroyPages;
- bool m_bModelessButtons;
-};
-
-/**
- * Base class for the Layout function. Derive your own class
- * from this or derive it from CPropertyPage and
- * modify _all_ references to CPropertyPage to
- * ETSLayoutPropertyPage
- */
-class ETSGUI_EXT_CLASS ETSLayoutPropertyPage : public ETSLayout::CBasePropertyPage, protected ETSLayoutMgr
-{
-friend class ETSLayoutPropertySheet;
-
- DECLARE_DYNCREATE(ETSLayoutPropertyPage)
-
-// Konstruktion
-public:
- ETSLayoutPropertyPage( );
- ETSLayoutPropertyPage( UINT nIDTemplate, UINT nIDCaption = 0 );
- ETSLayoutPropertyPage( LPCTSTR lpszTemplateName, UINT nIDCaption = 0 );
-
- ~ETSLayoutPropertyPage();
-
-
-// Overrides
- // ClassWizard generated virtual function overrides
- //{{AFX_VIRTUAL(ETSLayoutPropertyPage)
- public:
- virtual BOOL OnSetActive();
- //}}AFX_VIRTUAL
-
-// Implementation
-protected:
- // Generated message map functions
- //{{AFX_MSG(ETSLayoutPropertyPage)
- afx_msg void OnSize(UINT nType, int cx, int cy);
- afx_msg void OnGetMinMaxInfo(MINMAXINFO FAR* lpMMI);
- virtual BOOL OnInitDialog();
- afx_msg BOOL OnEraseBkgnd(CDC* pDC);
- afx_msg void OnWindowPosChanging( WINDOWPOS* lpwndpos );
- afx_msg void OnDestroy();
- afx_msg void OnWindowPosChanged(WINDOWPOS FAR* lpwndpos);
- //}}AFX_MSG
- DECLARE_MESSAGE_MAP()
-
- virtual CRect GetRect();
- bool m_bLockMove;
- bool m_bResetBuddyOnNextTimeVisible;
-};
-
-
-
-//{{AFX_INSERT_LOCATION}}
-// Microsoft Developer Studio will insert additional declarations immediately before the previous line.
-
-#endif // !defined(ETS_LAYOUTMGR_INCLUDED_)
diff --git a/Bus/IvyProbe/HistoryEdit.cpp b/Bus/IvyProbe/HistoryEdit.cpp
deleted file mode 100644
index cdb1f0f..0000000
--- a/Bus/IvyProbe/HistoryEdit.cpp
+++ /dev/null
@@ -1,82 +0,0 @@
-/*
- * HistoryEdit.cpp
- *
- * Description:
- * CHistoryEdit implementation
- *
- * A CEdit subclass that allows you to display a text history
- * of events.
- *
- * Author:
- * Ravi Bhavnani (ravib@datablast.net)
- *
- * Revision History:
- * 15 Mar 1998 rab Original version
- */
-
-#include "stdafx.h"
-#include "HistoryEdit.h"
-
-#ifdef _DEBUG
-#define new DEBUG_NEW
-#undef THIS_FILE
-static char THIS_FILE[] = __FILE__;
-#endif
-
-/////////////////////////////////////////////////////////////////////////////
-// CHistoryEdit
-
-CHistoryEdit::CHistoryEdit()
-{
- m_bSelectable = FALSE;
-}
-
-CHistoryEdit::~CHistoryEdit()
-{
-}
-
-BEGIN_MESSAGE_MAP(CHistoryEdit, CEdit)
- //{{AFX_MSG_MAP(CHistoryEdit)
- ON_WM_SETFOCUS()
- //}}AFX_MSG_MAP
-END_MESSAGE_MAP()
-
-/////////////////////////////////////////////////////////////////////////////
-// CHistoryEdit operations
-
-void CHistoryEdit::AppendString
- (CString str)
-//
-// Purpose:
-// Appends a text string to the history buffer.
-//
-// Returns:
-// None.
-//
-{
-CString strBuffer; // current contents of edit control
-
- // Append string
- GetWindowText (strBuffer);
- if (!strBuffer.IsEmpty())
- strBuffer += "\r\n";
- strBuffer += str;
- SetWindowText (strBuffer);
-
- // Scroll the edit control
- LineScroll (GetLineCount(), 0);
-}
-
-/////////////////////////////////////////////////////////////////////////////
-// CHistoryEdit message handlers
-
-void CHistoryEdit::OnSetFocus(CWnd* pOldWnd)
-{
- // Don't allow user to select text
- if (m_bSelectable)
- CEdit::OnSetFocus (pOldWnd);
- else
- pOldWnd->SetFocus();
-}
-
-// End EditHistroy.cpp \ No newline at end of file
diff --git a/Bus/IvyProbe/HistoryEdit.h b/Bus/IvyProbe/HistoryEdit.h
deleted file mode 100644
index 7e2a112..0000000
--- a/Bus/IvyProbe/HistoryEdit.h
+++ /dev/null
@@ -1,65 +0,0 @@
-/*
- * HistoryEdit.h
- *
- * Description:
- * CHistoryEdit interface
- *
- * A CEdit subclass that allows you to display a scrolling history
- * of text entries.
- *
- * Author:
- * Ravi Bhavnani (ravib@datablast.net)
- *
- * Revision History:
- * 15 Mar 1998 rab Original version
- */
-
-#ifndef _HistoryEdit_h_
-#define _HistoryEdit_h_
-
-/////////////////////////////////////////////////////////////////////////////
-// CHistoryEdit window
-
-class CHistoryEdit : public CEdit
-{
-// Construction
-public:
- CHistoryEdit();
-
-// Attributes
-public:
-
-// Operations
-public:
- void AppendString (CString str);
- BOOL IsSelectable() { return m_bSelectable; }
- void AllowSelection (BOOL bAllowSelect) { m_bSelectable = bAllowSelect; }
-
-// Overrides
- // ClassWizard generated virtual function overrides
- //{{AFX_VIRTUAL(CHistoryEdit)
- //}}AFX_VIRTUAL
-
-// Implementation
-public:
- virtual ~CHistoryEdit();
-
- // Generated message map functions
-protected:
- //{{AFX_MSG(CHistoryEdit)
- afx_msg void OnSetFocus(CWnd* pOldWnd);
- //}}AFX_MSG
- DECLARE_MESSAGE_MAP()
-
-protected:
- BOOL m_bSelectable; // flag: user can select text in control
-};
-
-/////////////////////////////////////////////////////////////////////////////
-
-//{{AFX_INSERT_LOCATION}}
-// Microsoft Developer Studio will insert additional declarations immediately before the previous line.
-
-#endif
-
-// End HistoryEdit.h \ No newline at end of file
diff --git a/Bus/IvyProbe/InstIvyProbe/InstIvy.vdproj b/Bus/IvyProbe/InstIvyProbe/InstIvy.vdproj
deleted file mode 100644
index 4723fde..0000000
--- a/Bus/IvyProbe/InstIvyProbe/InstIvy.vdproj
+++ /dev/null
@@ -1,945 +0,0 @@
-"DeployProject"
-{
-"VSVersion" = "3:800"
-"ProjectType" = "8:{978C614F-708E-4E1A-B201-565925725DBA}"
-"IsWebType" = "8:FALSE"
-"ProjectName" = "8:InstallIvyProbe"
-"LanguageId" = "3:1036"
-"CodePage" = "3:1252"
-"UILanguageId" = "3:1036"
-"SccProjectName" = "8:SAK"
-"SccLocalPath" = "8:SAK"
-"SccAuxPath" = "8:SAK"
-"SccProvider" = "8:SAK"
- "Hierarchy"
- {
- "Entry"
- {
- "MsmKey" = "8:_0BD6F02CECD440B69ED6C192591DACC5"
- "OwnerKey" = "8:_57A5694E20F44D878FE43630B5B52BF5"
- "MsmSig" = "8:_UNDEFINED"
- }
- "Entry"
- {
- "MsmKey" = "8:_0DEC983A1D87453191CA274F5F2176F4"
- "OwnerKey" = "8:_2BA590EA79FA40D288D4C357A0EB663F"
- "MsmSig" = "8:_UNDEFINED"
- }
- "Entry"
- {
- "MsmKey" = "8:_0DEC983A1D87453191CA274F5F2176F4"
- "OwnerKey" = "8:_60AC32E483D448BD9E9F46857BA217C9"
- "MsmSig" = "8:_UNDEFINED"
- }
- "Entry"
- {
- "MsmKey" = "8:_0DEC983A1D87453191CA274F5F2176F4"
- "OwnerKey" = "8:_57A5694E20F44D878FE43630B5B52BF5"
- "MsmSig" = "8:_UNDEFINED"
- }
- "Entry"
- {
- "MsmKey" = "8:_1EFC5F9E826F4C7E822FFAE03114C84F"
- "OwnerKey" = "8:_0DEC983A1D87453191CA274F5F2176F4"
- "MsmSig" = "8:_UNDEFINED"
- }
- "Entry"
- {
- "MsmKey" = "8:_28A6C3696FE941E1BA95263704863C73"
- "OwnerKey" = "8:_0BD6F02CECD440B69ED6C192591DACC5"
- "MsmSig" = "8:_UNDEFINED"
- }
- "Entry"
- {
- "MsmKey" = "8:_2BA590EA79FA40D288D4C357A0EB663F"
- "OwnerKey" = "8:_UNDEFINED"
- "MsmSig" = "8:_UNDEFINED"
- }
- "Entry"
- {
- "MsmKey" = "8:_57A5694E20F44D878FE43630B5B52BF5"
- "OwnerKey" = "8:_UNDEFINED"
- "MsmSig" = "8:_UNDEFINED"
- }
- "Entry"
- {
- "MsmKey" = "8:_60AC32E483D448BD9E9F46857BA217C9"
- "OwnerKey" = "8:_UNDEFINED"
- "MsmSig" = "8:_UNDEFINED"
- }
- "Entry"
- {
- "MsmKey" = "8:_CE403128DFF0A5ADE28CDD21A4FA625C"
- "OwnerKey" = "8:_60AC32E483D448BD9E9F46857BA217C9"
- "MsmSig" = "8:_UNDEFINED"
- }
- }
- "Configurations"
- {
- "Debug"
- {
- "DisplayName" = "8:Debug"
- "IsDebugOnly" = "11:TRUE"
- "IsReleaseOnly" = "11:FALSE"
- "OutputFilename" = "8:Debug\\InstIvy.msi"
- "PackageFilesAs" = "3:2"
- "PackageFileSize" = "3:-2147483648"
- "CabType" = "3:1"
- "Compression" = "3:2"
- "SignOutput" = "11:FALSE"
- "CertificateFile" = "8:"
- "PrivateKeyFile" = "8:"
- "TimeStampServer" = "8:"
- "InstallerBootstrapper" = "3:2"
- "BootstrapperCfg:{63ACBE69-63AA-4F98-B2B6-99F9E24495F2}"
- {
- "Enabled" = "11:TRUE"
- "PromptEnabled" = "11:TRUE"
- "PrerequisitesLocation" = "2:1"
- "Url" = "8:"
- "ComponentsUrl" = "8:"
- "Items"
- {
- }
- }
- }
- "Release"
- {
- "DisplayName" = "8:Release"
- "IsDebugOnly" = "11:FALSE"
- "IsReleaseOnly" = "11:TRUE"
- "OutputFilename" = "8:..\\..\\..\\..\\Install\\IvyProbex86.msi"
- "PackageFilesAs" = "3:2"
- "PackageFileSize" = "3:-2147483648"
- "CabType" = "3:1"
- "Compression" = "3:2"
- "SignOutput" = "11:FALSE"
- "CertificateFile" = "8:"
- "PrivateKeyFile" = "8:"
- "TimeStampServer" = "8:"
- "InstallerBootstrapper" = "3:1"
- "BootstrapperCfg:{63ACBE69-63AA-4F98-B2B6-99F9E24495F2}"
- {
- "Enabled" = "11:FALSE"
- "PromptEnabled" = "11:TRUE"
- "PrerequisitesLocation" = "2:1"
- "Url" = "8:http://www.tls.cena.fr/products/ivy/download/packages"
- "ComponentsUrl" = "8:"
- "Items"
- {
- }
- }
- }
- }
- "Deployable"
- {
- "CustomAction"
- {
- }
- "DefaultFeature"
- {
- "Name" = "8:DefaultFeature"
- "Title" = "8:"
- "Description" = "8:"
- }
- "ExternalPersistence"
- {
- "LaunchCondition"
- {
- }
- }
- "File"
- {
- "{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_CE403128DFF0A5ADE28CDD21A4FA625C"
- {
- "SourcePath" = "8:WSOCK32.dll"
- "TargetName" = "8:WSOCK32.dll"
- "Tag" = "8:"
- "Folder" = "8:_8C785282719E44848328E169496E2F49"
- "Condition" = "8:"
- "Transitive" = "11:FALSE"
- "Vital" = "11:TRUE"
- "ReadOnly" = "11:FALSE"
- "Hidden" = "11:FALSE"
- "System" = "11:FALSE"
- "Permanent" = "11:FALSE"
- "SharedLegacy" = "11:FALSE"
- "PackageAs" = "3:1"
- "Register" = "3:1"
- "Exclude" = "11:FALSE"
- "IsDependency" = "11:TRUE"
- "IsolateTo" = "8:"
- }
- }
- "FileType"
- {
- }
- "Folder"
- {
- "{1525181F-901A-416C-8A58-119130FE478E}:_6810FE826BCA47699640BBE149228D19"
- {
- "Name" = "8:#1916"
- "AlwaysCreate" = "11:FALSE"
- "Condition" = "8:"
- "Transitive" = "11:FALSE"
- "Property" = "8:DesktopFolder"
- "Folders"
- {
- }
- }
- "{1525181F-901A-416C-8A58-119130FE478E}:_7E2D48F81BBB4C3E85E07FE19427A508"
- {
- "Name" = "8:#1919"
- "AlwaysCreate" = "11:FALSE"
- "Condition" = "8:"
- "Transitive" = "11:FALSE"
- "Property" = "8:ProgramMenuFolder"
- "Folders"
- {
- "{9EF0B969-E518-4E46-987F-47570745A589}:_E78B932249794DE1A6AD0A860FBA7DA8"
- {
- "Name" = "8:SDER PII"
- "AlwaysCreate" = "11:FALSE"
- "Condition" = "8:"
- "Transitive" = "11:FALSE"
- "Property" = "8:_F25DEE7C682F4C46A5C9D75BC2CEDD0A"
- "Folders"
- {
- }
- }
- }
- }
- "{3C67513D-01DD-4637-8A68-80971EB9504F}:_8C785282719E44848328E169496E2F49"
- {
- "DefaultLocation" = "8:[ProgramFilesFolder][Manufacturer]\\[ProductName]"
- "Name" = "8:#1925"
- "AlwaysCreate" = "11:FALSE"
- "Condition" = "8:"
- "Transitive" = "11:FALSE"
- "Property" = "8:TARGETDIR"
- "Folders"
- {
- }
- }
- }
- "LaunchCondition"
- {
- }
- "Locator"
- {
- }
- "MsiBootstrapper"
- {
- "LangId" = "3:1036"
- }
- "Product"
- {
- "Name" = "8:Microsoft Visual Studio"
- "ProductName" = "8:IvyProbe"
- "ProductCode" = "8:{F526A4E7-6E14-4D82-8C87-F483AEE19CEC}"
- "PackageCode" = "8:{95A8A0F5-3264-46D3-986E-49849DEAA566}"
- "UpgradeCode" = "8:{FF452596-4F4B-4240-847F-38D0FA88DBB0}"
- "RestartWWWService" = "11:FALSE"
- "RemovePreviousVersions" = "11:TRUE"
- "DetectNewerInstalledVersion" = "11:TRUE"
- "InstallAllUsers" = "11:TRUE"
- "ProductVersion" = "8:1.1.1"
- "Manufacturer" = "8:SDER PII"
- "ARPHELPTELEPHONE" = "8:"
- "ARPHELPLINK" = "8:http://www.tls.cena.fr/products/ivy"
- "Title" = "8:IvyProbe"
- "Subject" = "8:"
- "ARPCONTACT" = "8:SDER PII"
- "Keywords" = "8:Ivy"
- "ARPCOMMENTS" = "8:"
- "ARPURLINFOABOUT" = "8:"
- "ARPPRODUCTICON" = "8:"
- "ARPIconIndex" = "3:0"
- "SearchPath" = "8:"
- "UseSystemSearchPath" = "11:TRUE"
- "TargetPlatform" = "3:0"
- "PreBuildEvent" = "8:"
- "PostBuildEvent" = "8:\"$(ProjectDir)..\\..\\UpdateIvyWeb.bat\" \"$(BuiltOuputPath)\""
- "RunPostBuildEvent" = "3:0"
- }
- "Registry"
- {
- "HKLM"
- {
- "Keys"
- {
- "{60EA8692-D2D5-43EB-80DC-7906BF13D6EF}:_3CFCEFACEAB64F9DA1C4D0BF5DB65AF2"
- {
- "Name" = "8:Software"
- "Condition" = "8:"
- "AlwaysCreate" = "11:FALSE"
- "DeleteAtUninstall" = "11:FALSE"
- "Transitive" = "11:FALSE"
- "Keys"
- {
- "{60EA8692-D2D5-43EB-80DC-7906BF13D6EF}:_30BD5DA559A740258BDEE3A9A52D6355"
- {
- "Name" = "8:[Manufacturer]"
- "Condition" = "8:"
- "AlwaysCreate" = "11:FALSE"
- "DeleteAtUninstall" = "11:FALSE"
- "Transitive" = "11:FALSE"
- "Keys"
- {
- }
- "Values"
- {
- }
- }
- }
- "Values"
- {
- }
- }
- }
- }
- "HKCU"
- {
- "Keys"
- {
- "{60EA8692-D2D5-43EB-80DC-7906BF13D6EF}:_8D5BE70E7653487A9D35B4DAFC2995D0"
- {
- "Name" = "8:Software"
- "Condition" = "8:"
- "AlwaysCreate" = "11:FALSE"
- "DeleteAtUninstall" = "11:FALSE"
- "Transitive" = "11:FALSE"
- "Keys"
- {
- "{60EA8692-D2D5-43EB-80DC-7906BF13D6EF}:_58B700D8E98A4CE9BF8CF67ADA0B9C99"
- {
- "Name" = "8:[Manufacturer]"
- "Condition" = "8:"
- "AlwaysCreate" = "11:FALSE"
- "DeleteAtUninstall" = "11:FALSE"
- "Transitive" = "11:FALSE"
- "Keys"
- {
- }
- "Values"
- {
- }
- }
- }
- "Values"
- {
- }
- }
- }
- }
- "HKCR"
- {
- "Keys"
- {
- }
- }
- "HKU"
- {
- "Keys"
- {
- }
- }
- "HKPU"
- {
- "Keys"
- {
- }
- }
- }
- "Sequences"
- {
- }
- "Shortcut"
- {
- "{970C0BB2-C7D0-45D7-ABFA-7EC378858BC0}:_B5814460213041F499A85C9521ED219F"
- {
- "Name" = "8:IvyProbe"
- "Arguments" = "8:"
- "Description" = "8:"
- "ShowCmd" = "3:1"
- "IconIndex" = "3:0"
- "Transitive" = "11:FALSE"
- "Target" = "8:_57A5694E20F44D878FE43630B5B52BF5"
- "Folder" = "8:_E78B932249794DE1A6AD0A860FBA7DA8"
- "WorkingFolder" = "8:_8C785282719E44848328E169496E2F49"
- "Icon" = "8:"
- "Feature" = "8:"
- }
- }
- "UserInterface"
- {
- "{DF760B10-853B-4699-99F2-AFF7185B4A62}:_022345F0521F463B86815C734F1947EA"
- {
- "Name" = "8:#1901"
- "Sequence" = "3:2"
- "Attributes" = "3:2"
- "Dialogs"
- {
- "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_DFD3FCE52AD84DFA98F21EA2D4E5300C"
- {
- "Sequence" = "3:100"
- "DisplayName" = "8:Progress"
- "UseDynamicProperties" = "11:TRUE"
- "IsDependency" = "11:FALSE"
- "SourcePath" = "8:<VsdDialogDir>\\VsdAdminProgressDlg.wid"
- "Properties"
- {
- "BannerBitmap"
- {
- "Name" = "8:BannerBitmap"
- "DisplayName" = "8:#1001"
- "Description" = "8:#1101"
- "Type" = "3:8"
- "ContextData" = "8:Bitmap"
- "Attributes" = "3:4"
- "Setting" = "3:1"
- "UsePlugInResources" = "11:TRUE"
- }
- "ShowProgress"
- {
- "Name" = "8:ShowProgress"
- "DisplayName" = "8:#1009"
- "Description" = "8:#1109"
- "Type" = "3:5"
- "ContextData" = "8:1;True=1;False=0"
- "Attributes" = "3:0"
- "Setting" = "3:0"
- "Value" = "3:1"
- "DefaultValue" = "3:1"
- "UsePlugInResources" = "11:TRUE"
- }
- }
- }
- }
- }
- "{DF760B10-853B-4699-99F2-AFF7185B4A62}:_1E6A5A56054A4B9287DEFFDCBE6D9F4B"
- {
- "Name" = "8:#1902"
- "Sequence" = "3:1"
- "Attributes" = "3:3"
- "Dialogs"
- {
- "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_FCFBFF119DAD44FAAA795641018FC42F"
- {
- "Sequence" = "3:100"
- "DisplayName" = "8:Finished"
- "UseDynamicProperties" = "11:TRUE"
- "IsDependency" = "11:FALSE"
- "SourcePath" = "8:<VsdDialogDir>\\VsdFinishedDlg.wid"
- "Properties"
- {
- "BannerBitmap"
- {
- "Name" = "8:BannerBitmap"
- "DisplayName" = "8:#1001"
- "Description" = "8:#1101"
- "Type" = "3:8"
- "ContextData" = "8:Bitmap"
- "Attributes" = "3:4"
- "Setting" = "3:1"
- "UsePlugInResources" = "11:TRUE"
- }
- "UpdateText"
- {
- "Name" = "8:UpdateText"
- "DisplayName" = "8:#1058"
- "Description" = "8:#1158"
- "Type" = "3:15"
- "ContextData" = "8:"
- "Attributes" = "3:0"
- "Setting" = "3:1"
- "Value" = "8:#1258"
- "DefaultValue" = "8:#1258"
- "UsePlugInResources" = "11:TRUE"
- }
- }
- }
- }
- }
- "{2479F3F5-0309-486D-8047-8187E2CE5BA0}:_39324675C5D24D6FB11A1F89C6A50838"
- {
- "UseDynamicProperties" = "11:FALSE"
- "IsDependency" = "11:FALSE"
- "SourcePath" = "8:<VsdDialogDir>\\VsdBasicDialogs.wim"
- }
- "{DF760B10-853B-4699-99F2-AFF7185B4A62}:_7BA271C57B2945AB90EA4E3B81F2352C"
- {
- "Name" = "8:#1902"
- "Sequence" = "3:2"
- "Attributes" = "3:3"
- "Dialogs"
- {
- "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_BCB663D68120404AAE84380C98DEDD48"
- {
- "Sequence" = "3:100"
- "DisplayName" = "8:Finished"
- "UseDynamicProperties" = "11:TRUE"
- "IsDependency" = "11:FALSE"
- "SourcePath" = "8:<VsdDialogDir>\\VsdAdminFinishedDlg.wid"
- "Properties"
- {
- "BannerBitmap"
- {
- "Name" = "8:BannerBitmap"
- "DisplayName" = "8:#1001"
- "Description" = "8:#1101"
- "Type" = "3:8"
- "ContextData" = "8:Bitmap"
- "Attributes" = "3:4"
- "Setting" = "3:1"
- "UsePlugInResources" = "11:TRUE"
- }
- }
- }
- }
- }
- "{DF760B10-853B-4699-99F2-AFF7185B4A62}:_A791F39DCDF943EFB51C225AB3BA8A50"
- {
- "Name" = "8:#1901"
- "Sequence" = "3:1"
- "Attributes" = "3:2"
- "Dialogs"
- {
- "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_97F78B3941544772A5EC49812DAD11D5"
- {
- "Sequence" = "3:100"
- "DisplayName" = "8:Progress"
- "UseDynamicProperties" = "11:TRUE"
- "IsDependency" = "11:FALSE"
- "SourcePath" = "8:<VsdDialogDir>\\VsdProgressDlg.wid"
- "Properties"
- {
- "BannerBitmap"
- {
- "Name" = "8:BannerBitmap"
- "DisplayName" = "8:#1001"
- "Description" = "8:#1101"
- "Type" = "3:8"
- "ContextData" = "8:Bitmap"
- "Attributes" = "3:4"
- "Setting" = "3:1"
- "UsePlugInResources" = "11:TRUE"
- }
- "ShowProgress"
- {
- "Name" = "8:ShowProgress"
- "DisplayName" = "8:#1009"
- "Description" = "8:#1109"
- "Type" = "3:5"
- "ContextData" = "8:1;True=1;False=0"
- "Attributes" = "3:0"
- "Setting" = "3:0"
- "Value" = "3:1"
- "DefaultValue" = "3:1"
- "UsePlugInResources" = "11:TRUE"
- }
- }
- }
- }
- }
- "{DF760B10-853B-4699-99F2-AFF7185B4A62}:_CDE881ABAB7C4726B526DDBA45B4BDE1"
- {
- "Name" = "8:#1900"
- "Sequence" = "3:1"
- "Attributes" = "3:1"
- "Dialogs"
- {
- "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_B620B069BE064ABA87B90550DA692268"
- {
- "Sequence" = "3:300"
- "DisplayName" = "8:Confirm Installation"
- "UseDynamicProperties" = "11:TRUE"
- "IsDependency" = "11:FALSE"
- "SourcePath" = "8:<VsdDialogDir>\\VsdConfirmDlg.wid"
- "Properties"
- {
- "BannerBitmap"
- {
- "Name" = "8:BannerBitmap"
- "DisplayName" = "8:#1001"
- "Description" = "8:#1101"
- "Type" = "3:8"
- "ContextData" = "8:Bitmap"
- "Attributes" = "3:4"
- "Setting" = "3:1"
- "UsePlugInResources" = "11:TRUE"
- }
- }
- }
- "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_C345A4ECF4334C0299B1BF93AF8DD68B"
- {
- "Sequence" = "3:100"
- "DisplayName" = "8:Welcome"
- "UseDynamicProperties" = "11:TRUE"
- "IsDependency" = "11:FALSE"
- "SourcePath" = "8:<VsdDialogDir>\\VsdWelcomeDlg.wid"
- "Properties"
- {
- "BannerBitmap"
- {
- "Name" = "8:BannerBitmap"
- "DisplayName" = "8:#1001"
- "Description" = "8:#1101"
- "Type" = "3:8"
- "ContextData" = "8:Bitmap"
- "Attributes" = "3:4"
- "Setting" = "3:1"
- "UsePlugInResources" = "11:TRUE"
- }
- "CopyrightWarning"
- {
- "Name" = "8:CopyrightWarning"
- "DisplayName" = "8:#1002"
- "Description" = "8:#1102"
- "Type" = "3:3"
- "ContextData" = "8:"
- "Attributes" = "3:0"
- "Setting" = "3:1"
- "Value" = "8:#1202"
- "DefaultValue" = "8:#1202"
- "UsePlugInResources" = "11:TRUE"
- }
- "Welcome"
- {
- "Name" = "8:Welcome"
- "DisplayName" = "8:#1003"
- "Description" = "8:#1103"
- "Type" = "3:3"
- "ContextData" = "8:"
- "Attributes" = "3:0"
- "Setting" = "3:1"
- "Value" = "8:#1203"
- "DefaultValue" = "8:#1203"
- "UsePlugInResources" = "11:TRUE"
- }
- }
- }
- "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_DA4D7E682468404D838C7F08BA4E6124"
- {
- "Sequence" = "3:200"
- "DisplayName" = "8:Installation Folder"
- "UseDynamicProperties" = "11:TRUE"
- "IsDependency" = "11:FALSE"
- "SourcePath" = "8:<VsdDialogDir>\\VsdFolderDlg.wid"
- "Properties"
- {
- "BannerBitmap"
- {
- "Name" = "8:BannerBitmap"
- "DisplayName" = "8:#1001"
- "Description" = "8:#1101"
- "Type" = "3:8"
- "ContextData" = "8:Bitmap"
- "Attributes" = "3:4"
- "Setting" = "3:1"
- "UsePlugInResources" = "11:TRUE"
- }
- "InstallAllUsersVisible"
- {
- "Name" = "8:InstallAllUsersVisible"
- "DisplayName" = "8:#1059"
- "Description" = "8:#1159"
- "Type" = "3:5"
- "ContextData" = "8:1;True=1;False=0"
- "Attributes" = "3:0"
- "Setting" = "3:0"
- "Value" = "3:1"
- "DefaultValue" = "3:1"
- "UsePlugInResources" = "11:TRUE"
- }
- }
- }
- }
- }
- "{2479F3F5-0309-486D-8047-8187E2CE5BA0}:_F349BA4DD2FF4C538D17E0E5A2E0CF02"
- {
- "UseDynamicProperties" = "11:FALSE"
- "IsDependency" = "11:FALSE"
- "SourcePath" = "8:<VsdDialogDir>\\VsdUserInterface.wim"
- }
- "{DF760B10-853B-4699-99F2-AFF7185B4A62}:_F6158F17384D4EE89AE7C515234C4964"
- {
- "Name" = "8:#1900"
- "Sequence" = "3:2"
- "Attributes" = "3:1"
- "Dialogs"
- {
- "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_7F57E9802DDD47E7BB8A93A6650F6889"
- {
- "Sequence" = "3:300"
- "DisplayName" = "8:Confirm Installation"
- "UseDynamicProperties" = "11:TRUE"
- "IsDependency" = "11:FALSE"
- "SourcePath" = "8:<VsdDialogDir>\\VsdAdminConfirmDlg.wid"
- "Properties"
- {
- "BannerBitmap"
- {
- "Name" = "8:BannerBitmap"
- "DisplayName" = "8:#1001"
- "Description" = "8:#1101"
- "Type" = "3:8"
- "ContextData" = "8:Bitmap"
- "Attributes" = "3:4"
- "Setting" = "3:1"
- "UsePlugInResources" = "11:TRUE"
- }
- }
- }
- "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_A37E56D6E5634F64BA1D3DEF6558A9B1"
- {
- "Sequence" = "3:100"
- "DisplayName" = "8:Welcome"
- "UseDynamicProperties" = "11:TRUE"
- "IsDependency" = "11:FALSE"
- "SourcePath" = "8:<VsdDialogDir>\\VsdAdminWelcomeDlg.wid"
- "Properties"
- {
- "BannerBitmap"
- {
- "Name" = "8:BannerBitmap"
- "DisplayName" = "8:#1001"
- "Description" = "8:#1101"
- "Type" = "3:8"
- "ContextData" = "8:Bitmap"
- "Attributes" = "3:4"
- "Setting" = "3:1"
- "UsePlugInResources" = "11:TRUE"
- }
- "CopyrightWarning"
- {
- "Name" = "8:CopyrightWarning"
- "DisplayName" = "8:#1002"
- "Description" = "8:#1102"
- "Type" = "3:3"
- "ContextData" = "8:"
- "Attributes" = "3:0"
- "Setting" = "3:1"
- "Value" = "8:#1202"
- "DefaultValue" = "8:#1202"
- "UsePlugInResources" = "11:TRUE"
- }
- "Welcome"
- {
- "Name" = "8:Welcome"
- "DisplayName" = "8:#1003"
- "Description" = "8:#1103"
- "Type" = "3:3"
- "ContextData" = "8:"
- "Attributes" = "3:0"
- "Setting" = "3:1"
- "Value" = "8:#1203"
- "DefaultValue" = "8:#1203"
- "UsePlugInResources" = "11:TRUE"
- }
- }
- }
- "{688940B3-5CA9-4162-8DEE-2993FA9D8CBC}:_CC824A96BD584085B9BF72FA74944CD7"
- {
- "Sequence" = "3:200"
- "DisplayName" = "8:Installation Folder"
- "UseDynamicProperties" = "11:TRUE"
- "IsDependency" = "11:FALSE"
- "SourcePath" = "8:<VsdDialogDir>\\VsdAdminFolderDlg.wid"
- "Properties"
- {
- "BannerBitmap"
- {
- "Name" = "8:BannerBitmap"
- "DisplayName" = "8:#1001"
- "Description" = "8:#1101"
- "Type" = "3:8"
- "ContextData" = "8:Bitmap"
- "Attributes" = "3:4"
- "Setting" = "3:1"
- "UsePlugInResources" = "11:TRUE"
- }
- }
- }
- }
- }
- }
- "MergeModule"
- {
- "{CEE29DC0-9FBA-4B99-8D47-5BC643D9B626}:_0BD6F02CECD440B69ED6C192591DACC5"
- {
- "UseDynamicProperties" = "11:TRUE"
- "IsDependency" = "11:TRUE"
- "SourcePath" = "8:Microsoft_VC80_MFC_x86_x64.msm"
- "Properties"
- {
- }
- "LanguageId" = "3:0"
- "Exclude" = "11:FALSE"
- "Folder" = "8:"
- "Feature" = "8:"
- "IsolateTo" = "8:"
- }
- "{CEE29DC0-9FBA-4B99-8D47-5BC643D9B626}:_0DEC983A1D87453191CA274F5F2176F4"
- {
- "UseDynamicProperties" = "11:TRUE"
- "IsDependency" = "11:TRUE"
- "SourcePath" = "8:Microsoft_VC80_CRT_x86_x64.msm"
- "Properties"
- {
- }
- "LanguageId" = "3:0"
- "Exclude" = "11:FALSE"
- "Folder" = "8:"
- "Feature" = "8:"
- "IsolateTo" = "8:"
- }
- "{CEE29DC0-9FBA-4B99-8D47-5BC643D9B626}:_1EFC5F9E826F4C7E822FFAE03114C84F"
- {
- "UseDynamicProperties" = "11:TRUE"
- "IsDependency" = "11:TRUE"
- "SourcePath" = "8:policy_8_0_microsoft_vc80_crt_x86_x64.msm"
- "Properties"
- {
- }
- "LanguageId" = "3:0"
- "Exclude" = "11:FALSE"
- "Folder" = "8:"
- "Feature" = "8:"
- "IsolateTo" = "8:"
- }
- "{CEE29DC0-9FBA-4B99-8D47-5BC643D9B626}:_28A6C3696FE941E1BA95263704863C73"
- {
- "UseDynamicProperties" = "11:TRUE"
- "IsDependency" = "11:TRUE"
- "SourcePath" = "8:policy_8_0_microsoft_vc80_mfc_x86_x64.msm"
- "Properties"
- {
- }
- "LanguageId" = "3:0"
- "Exclude" = "11:FALSE"
- "Folder" = "8:"
- "Feature" = "8:"
- "IsolateTo" = "8:"
- }
- }
- "ProjectOutput"
- {
- "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_2BA590EA79FA40D288D4C357A0EB663F"
- {
- "SourcePath" = "8:..\\x64\\Release\\pcre.dll"
- "TargetName" = "8:"
- "Tag" = "8:"
- "Folder" = "8:_8C785282719E44848328E169496E2F49"
- "Condition" = "8:"
- "Transitive" = "11:FALSE"
- "Vital" = "11:TRUE"
- "ReadOnly" = "11:FALSE"
- "Hidden" = "11:FALSE"
- "System" = "11:FALSE"
- "Permanent" = "11:FALSE"
- "SharedLegacy" = "11:FALSE"
- "PackageAs" = "3:1"
- "Register" = "3:1"
- "Exclude" = "11:FALSE"
- "IsDependency" = "11:FALSE"
- "IsolateTo" = "8:"
- "ProjectOutputGroupRegister" = "3:1"
- "OutputConfiguration" = "8:"
- "OutputGroupCanonicalName" = "8:Built"
- "OutputProjectGuid" = "8:{D79FC143-498E-4342-B2C7-BDAD1B8D0E6B}"
- "ShowKeyOutput" = "11:TRUE"
- "ExcludeFilters"
- {
- }
- }
- "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_57A5694E20F44D878FE43630B5B52BF5"
- {
- "SourcePath" = "8:..\\x64\\Release\\IvyProbe.exe"
- "TargetName" = "8:"
- "Tag" = "8:"
- "Folder" = "8:_8C785282719E44848328E169496E2F49"
- "Condition" = "8:"
- "Transitive" = "11:FALSE"
- "Vital" = "11:TRUE"
- "ReadOnly" = "11:FALSE"
- "Hidden" = "11:FALSE"
- "System" = "11:FALSE"
- "Permanent" = "11:FALSE"
- "SharedLegacy" = "11:FALSE"
- "PackageAs" = "3:1"
- "Register" = "3:1"
- "Exclude" = "11:FALSE"
- "IsDependency" = "11:FALSE"
- "IsolateTo" = "8:"
- "ProjectOutputGroupRegister" = "3:1"
- "OutputConfiguration" = "8:"
- "OutputGroupCanonicalName" = "8:Built"
- "OutputProjectGuid" = "8:{B7F7F0F7-9029-4D1A-8CB4-C42DAF86A21C}"
- "ShowKeyOutput" = "11:TRUE"
- "ExcludeFilters"
- {
- }
- }
- "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_60AC32E483D448BD9E9F46857BA217C9"
- {
- "SourcePath" = "8:..\\x64\\Release\\Ivy.dll"
- "TargetName" = "8:"
- "Tag" = "8:"
- "Folder" = "8:_8C785282719E44848328E169496E2F49"
- "Condition" = "8:"
- "Transitive" = "11:FALSE"
- "Vital" = "11:TRUE"
- "ReadOnly" = "11:FALSE"
- "Hidden" = "11:FALSE"
- "System" = "11:FALSE"
- "Permanent" = "11:FALSE"
- "SharedLegacy" = "11:FALSE"
- "PackageAs" = "3:1"
- "Register" = "3:1"
- "Exclude" = "11:FALSE"
- "IsDependency" = "11:FALSE"
- "IsolateTo" = "8:"
- "ProjectOutputGroupRegister" = "3:1"
- "OutputConfiguration" = "8:"
- "OutputGroupCanonicalName" = "8:Built"
- "OutputProjectGuid" = "8:{84E0039A-6721-4B18-9792-E9AE4274AC0E}"
- "ShowKeyOutput" = "11:TRUE"
- "ExcludeFilters"
- {
- }
- }
- "{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_B619C71BCF024E7FBF55B2FECBD581F4"
- {
- "SourcePath" = "8:"
- "TargetName" = "8:"
- "Tag" = "8:"
- "Folder" = "8:_8C785282719E44848328E169496E2F49"
- "Condition" = "8:"
- "Transitive" = "11:FALSE"
- "Vital" = "11:TRUE"
- "ReadOnly" = "11:FALSE"
- "Hidden" = "11:FALSE"
- "System" = "11:FALSE"
- "Permanent" = "11:FALSE"
- "SharedLegacy" = "11:FALSE"
- "PackageAs" = "3:1"
- "Register" = "3:1"
- "Exclude" = "11:FALSE"
- "IsDependency" = "11:FALSE"
- "IsolateTo" = "8:"
- "ProjectOutputGroupRegister" = "3:1"
- "OutputConfiguration" = "8:"
- "OutputGroupCanonicalName" = "8:ContentFiles"
- "OutputProjectGuid" = "8:{B7F7F0F7-9029-4D1A-8CB4-C42DAF86A21C}"
- "ShowKeyOutput" = "11:TRUE"
- "ExcludeFilters"
- {
- }
- }
- }
- "VJSharpPlugin"
- {
- }
- }
-}
diff --git a/Bus/IvyProbe/InstIvyProbe/InstIvy.vdproj.vspscc b/Bus/IvyProbe/InstIvyProbe/InstIvy.vdproj.vspscc
deleted file mode 100644
index 7b71a95..0000000
--- a/Bus/IvyProbe/InstIvyProbe/InstIvy.vdproj.vspscc
+++ /dev/null
@@ -1,10 +0,0 @@
-""
-{
-"FILE_VERSION" = "9237"
-"ENLISTMENT_CHOICE" = "NEVER"
-"PROJECT_FILE_RELATIVE_PATH" = ""
-"NUMBER_OF_EXCLUDED_FILES" = "0"
-"ORIGINAL_PROJECT_FILE_PATH" = ""
-"NUMBER_OF_NESTED_PROJECTS" = "0"
-"SOURCE_CONTROL_SETTINGS_PROVIDER" = "PROVIDER"
-}
diff --git a/Bus/IvyProbe/IvyProbe.cpp b/Bus/IvyProbe/IvyProbe.cpp
deleted file mode 100644
index df84f85..0000000
--- a/Bus/IvyProbe/IvyProbe.cpp
+++ /dev/null
@@ -1,81 +0,0 @@
-// Test.cpp : Defines the class behaviors for the application.
-//
-
-#include "stdafx.h"
-#include "IvyProbe.h"
-#include "IvyProbeDlg.h"
-
-#ifdef _DEBUG
-#define new DEBUG_NEW
-#undef THIS_FILE
-static char THIS_FILE[] = __FILE__;
-#endif
-
-/////////////////////////////////////////////////////////////////////////////
-// CTestApp
-
-BEGIN_MESSAGE_MAP(CIvyProbeApp, CWinApp)
- //{{AFX_MSG_MAP(CTestApp)
- ON_COMMAND(ID_APP_ABOUT, OnAppAbout)
- // NOTE - the ClassWizard will add and remove mapping macros here.
- // DO NOT EDIT what you see in these blocks of generated code!
- //}}AFX_MSG
- ON_COMMAND(ID_HELP, CWinApp::OnHelp)
-END_MESSAGE_MAP()
-
-/////////////////////////////////////////////////////////////////////////////
-// CTestApp construction
-
-CIvyProbeApp::CIvyProbeApp()
-{
- // TODO: add construction code here,
- // Place all significant initialization in InitInstance
-}
-
-/////////////////////////////////////////////////////////////////////////////
-// The one and only CTestApp object
-
-CIvyProbeApp theApp;
-
-/////////////////////////////////////////////////////////////////////////////
-// CTestApp initialization
-
-BOOL CIvyProbeApp::InitInstance()
-{
- InitCommonControls();
- CWinApp::InitInstance();
-
- // CG: The following block was added by the Windows Sockets component.
- {
- if (!AfxSocketInit())
- {
- AfxMessageBox(CG_IDS_SOCKETS_INIT_FAILED);
- return FALSE;
- }
-
- }
-
- CIvyProbeDlg dlg;
- m_pMainWnd = &dlg;
- int nResponse = dlg.DoModal();
- if (nResponse == IDOK)
- {
- // TODO: Place code here to handle when the dialog is
- // dismissed with OK
- }
- else if (nResponse == IDCANCEL)
- {
- // TODO: Place code here to handle when the dialog is
- // dismissed with Cancel
- }
-
- // Since the dialog has been closed, return FALSE so that we exit the
- // application, rather than start the application's message pump.
- return FALSE;
-}
-// App command to run the dialog
-void CIvyProbeApp::OnAppAbout()
-{
- CAboutDlg aboutDlg;
- aboutDlg.DoModal();
-}
diff --git a/Bus/IvyProbe/IvyProbe.h b/Bus/IvyProbe/IvyProbe.h
deleted file mode 100644
index 998fd04..0000000
--- a/Bus/IvyProbe/IvyProbe.h
+++ /dev/null
@@ -1,50 +0,0 @@
-// Test.h : main header file for the TEST application
-//
-
-#if !defined(AFX_TEST_H__F7F08FEE_E653_11D0_AE3E_080009F92591__INCLUDED_)
-#define AFX_TEST_H__F7F08FEE_E653_11D0_AE3E_080009F92591__INCLUDED_
-
-#if _MSC_VER >= 1000
-#pragma once
-#endif // _MSC_VER >= 1000
-
-#ifndef __AFXWIN_H__
- #error include 'stdafx.h' before including this file for PCH
-#endif
-
-#include "resource.h" // main symbols
-
-/////////////////////////////////////////////////////////////////////////////
-// CTestApp:
-// See Test.cpp for the implementation of this class
-//
-
-class CIvyProbeApp : public CWinApp
-{
-public:
- CIvyProbeApp();
-
-// Overrides
- // ClassWizard generated virtual function overrides
- //{{AFX_VIRTUAL(CTestApp)
- public:
- virtual BOOL InitInstance();
- //}}AFX_VIRTUAL
-
-// Implementation
-
- //{{AFX_MSG(CTestApp)
- afx_msg void OnAppAbout();
- // NOTE - the ClassWizard will add and remove member functions here.
- // DO NOT EDIT what you see in these blocks of generated code !
- //}}AFX_MSG
- DECLARE_MESSAGE_MAP()
-};
-
-
-/////////////////////////////////////////////////////////////////////////////
-
-//{{AFX_INSERT_LOCATION}}
-// Microsoft Developer Studio will insert additional declarations immediately before the previous line.
-
-#endif // !defined(AFX_TEST_H__F7F08FEE_E653_11D0_AE3E_080009F92591__INCLUDED_)
diff --git a/Bus/IvyProbe/IvyProbe.rc b/Bus/IvyProbe/IvyProbe.rc
deleted file mode 100644
index 6896394..0000000
--- a/Bus/IvyProbe/IvyProbe.rc
+++ /dev/null
@@ -1,243 +0,0 @@
-// Microsoft Visual C++ generated resource script.
-//
-#include "resource.h"
-
-#define APSTUDIO_READONLY_SYMBOLS
-/////////////////////////////////////////////////////////////////////////////
-//
-// Generated from the TEXTINCLUDE 2 resource.
-//
-#include "afxres.h"
-
-/////////////////////////////////////////////////////////////////////////////
-#undef APSTUDIO_READONLY_SYMBOLS
-
-/////////////////////////////////////////////////////////////////////////////
-// French (France) resources
-
-#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_FRA)
-#ifdef _WIN32
-LANGUAGE LANG_FRENCH, SUBLANG_FRENCH
-#pragma code_page(1252)
-#endif //_WIN32
-
-#ifdef APSTUDIO_INVOKED
-/////////////////////////////////////////////////////////////////////////////
-//
-// TEXTINCLUDE
-//
-
-1 TEXTINCLUDE
-BEGIN
- "resource.h\0"
-END
-
-2 TEXTINCLUDE
-BEGIN
- "#include ""afxres.h""\r\n"
- "\0"
-END
-
-3 TEXTINCLUDE
-BEGIN
- "#define _AFX_NO_SPLITTER_RESOURCES\r\n"
- "#define _AFX_NO_OLE_RESOURCES\r\n"
- "#define _AFX_NO_TRACKER_RESOURCES\r\n"
- "#define _AFX_NO_PROPERTY_RESOURCES\r\n"
- "\r\n"
- "#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_FRA)\r\n"
- "#ifdef _WIN32\r\n"
- "LANGUAGE 12, 1\r\n"
- "#pragma code_page(1252)\r\n"
- "#endif\r\n"
- "#include ""res\\IvyProbe.rc2"" // non-Microsoft Visual C++ edited resources\r\n"
- "#include ""l.fra\\afxres.rc"" // Standard components\r\n"
- "#endif\0"
-END
-
-#endif // APSTUDIO_INVOKED
-
-
-/////////////////////////////////////////////////////////////////////////////
-//
-// Icon
-//
-
-// Icon with lowest ID value placed first to ensure application icon
-// remains consistent on all systems.
-IDR_MAINFRAME ICON "res\\IvyProbe.ico"
-
-/////////////////////////////////////////////////////////////////////////////
-//
-// Dialog
-//
-
-IDD_ABOUTBOX DIALOGEX 0, 0, 217, 55
-STYLE DS_SETFONT | DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
-CAPTION "A propos de IvyProbe"
-FONT 8, "MS Sans Serif", 0, 0, 0x0
-BEGIN
- ICON IDR_MAINFRAME,IDC_STATIC,11,17,20,20
- LTEXT "IvyProbe version 1.1",IDC_STATIC,40,10,119,8,SS_NOPREFIX
- LTEXT "Copyright (C) 1997",IDC_STATIC,40,25,119,8
- DEFPUSHBUTTON "OK",IDOK,178,7,32,14,WS_GROUP
-END
-
-IDD_IVYPROBE_DIALOG DIALOGEX 0, 0, 163, 152
-STYLE DS_SETFONT | WS_MINIMIZEBOX | WS_MAXIMIZEBOX | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU | WS_THICKFRAME
-EXSTYLE WS_EX_APPWINDOW
-CAPTION "IvyProbe"
-MENU IDR_MENU1
-FONT 8, "MS Sans Serif", 0, 0, 0x0
-BEGIN
- EDITTEXT IDC_BUSNUMBER,4,14,120,14,ES_AUTOHSCROLL
- PUSHBUTTON "Start",IDC_START,130,15,25,14
- LTEXT "Bind:",IDC_STATIC_BIND,4,135,17,8
- LTEXT "Msg:",IDC_STATIC_MSG,4,117,17,12
- COMBOBOX IDC_MSG,27,117,100,82,CBS_DROPDOWN | WS_VSCROLL | WS_TABSTOP
- DEFPUSHBUTTON "Send",IDC_SEND,128,116,27,14
- PUSHBUTTON "Bind",IDC_BIND,128,132,27,14
- COMBOBOX IDC_REGEXP,27,133,100,66,CBS_DROPDOWN | WS_VSCROLL | WS_TABSTOP
- EDITTEXT IDC_TEXT,4,31,151,82,ES_MULTILINE | ES_AUTOVSCROLL | ES_AUTOHSCROLL | ES_NOHIDESEL | ES_READONLY | WS_VSCROLL
-END
-
-
-/////////////////////////////////////////////////////////////////////////////
-//
-// Version
-//
-
-VS_VERSION_INFO VERSIONINFO
- FILEVERSION 1,0,0,1
- PRODUCTVERSION 1,0,0,1
- FILEFLAGSMASK 0x3fL
-#ifdef _DEBUG
- FILEFLAGS 0x1L
-#else
- FILEFLAGS 0x0L
-#endif
- FILEOS 0x4L
- FILETYPE 0x1L
- FILESUBTYPE 0x0L
-BEGIN
- BLOCK "StringFileInfo"
- BEGIN
- BLOCK "040c04b0"
- BEGIN
- VALUE "FileDescription", "Application IvyProbe"
- VALUE "FileVersion", "1, 0, 0, 1"
- VALUE "InternalName", "Test"
- VALUE "LegalCopyright", "Copyright (C) 1997"
- VALUE "OriginalFilename", "IvyProbe.exe"
- VALUE "ProductName", "IvyProbe"
- VALUE "ProductVersion", "1, 0, 0, 1"
- END
- END
- BLOCK "VarFileInfo"
- BEGIN
- VALUE "Translation", 0x40c, 1200
- END
-END
-
-
-/////////////////////////////////////////////////////////////////////////////
-//
-// DESIGNINFO
-//
-
-#ifdef APSTUDIO_INVOKED
-GUIDELINES DESIGNINFO
-BEGIN
- IDD_ABOUTBOX, DIALOG
- BEGIN
- LEFTMARGIN, 7
- RIGHTMARGIN, 210
- TOPMARGIN, 7
- BOTTOMMARGIN, 48
- END
-
- IDD_IVYPROBE_DIALOG, DIALOG
- BEGIN
- LEFTMARGIN, 4
- RIGHTMARGIN, 155
- TOPMARGIN, 1
- BOTTOMMARGIN, 148
- END
-END
-#endif // APSTUDIO_INVOKED
-
-
-/////////////////////////////////////////////////////////////////////////////
-//
-// Dialog Info
-//
-
-IDD_IVYPROBE_DIALOG DLGINIT
-BEGIN
- IDC_REGEXP, 0x403, 5, 0
-0x2e28, 0x292a, "\000"
- 0
-END
-
-
-/////////////////////////////////////////////////////////////////////////////
-//
-// Menu
-//
-
-IDR_MENU1 MENU
-BEGIN
- POPUP "File"
- BEGIN
- MENUITEM "Save Msg", FILE_SAVE
- MENUITEM "Load Msg", FILE_LOAD
- MENUITEM "Save Bindings", ID_FILE_SAVEBINDINGS
- MENUITEM "Load Bindings", ID_FILE_LOADBINDINGS
- END
-END
-
-
-/////////////////////////////////////////////////////////////////////////////
-//
-// RT_MANIFEST
-//
-
-IDR_MANIFEST RT_MANIFEST "res\\IvyProbe.manifest"
-
-/////////////////////////////////////////////////////////////////////////////
-//
-// String Table
-//
-
-STRINGTABLE
-BEGIN
- IDS_ABOUTBOX "&A propos de IvyProbe..."
- CG_IDS_SOCKETS_INIT_FAILED "Windows sockets initialization failed."
-END
-
-#endif // French (France) resources
-/////////////////////////////////////////////////////////////////////////////
-
-
-
-#ifndef APSTUDIO_INVOKED
-/////////////////////////////////////////////////////////////////////////////
-//
-// Generated from the TEXTINCLUDE 3 resource.
-//
-#define _AFX_NO_SPLITTER_RESOURCES
-#define _AFX_NO_OLE_RESOURCES
-#define _AFX_NO_TRACKER_RESOURCES
-#define _AFX_NO_PROPERTY_RESOURCES
-
-#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_FRA)
-#ifdef _WIN32
-LANGUAGE 12, 1
-#pragma code_page(1252)
-#endif
-#include "res\IvyProbe.rc2" // non-Microsoft Visual C++ edited resources
-#include "l.fra\afxres.rc" // Standard components
-#endif
-/////////////////////////////////////////////////////////////////////////////
-#endif // not APSTUDIO_INVOKED
-
diff --git a/Bus/IvyProbe/IvyProbe.sln b/Bus/IvyProbe/IvyProbe.sln
deleted file mode 100644
index 22e0629..0000000
--- a/Bus/IvyProbe/IvyProbe.sln
+++ /dev/null
@@ -1,42 +0,0 @@
-Microsoft Visual Studio Solution File, Format Version 8.00
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "IvyProbe", "IvyProbe.vcproj", "{B7F7F0F7-9029-4D1A-8CB4-C42DAF86A21C}"
- ProjectSection(ProjectDependencies) = postProject
- EndProjectSection
-EndProject
-Project("{54435603-DBB4-11D2-8724-00A0C9A8B90C}") = "Install", "InstIvy\InstIvy.vdproj", "{61A08759-9E99-481F-811D-204553D27E75}"
- ProjectSection(ProjectDependencies) = postProject
- EndProjectSection
-EndProject
-Global
- GlobalSection(SourceCodeControl) = preSolution
- SccNumberOfProjects = 3
- SccProjectUniqueName0 = IvyProbe.vcproj
- SccLocalPath0 = .
- CanCheckoutShared = false
- SccProjectUniqueName1 = InstIvy\\InstIvy.vdproj
- SccProjectName1 = \u0022$/InstIvyProbe\u0022,\u0020IPFAAAAA
- SccLocalPath1 = InstIvy
- CanCheckoutShared = false
- SccLocalPath2 = .
- CanCheckoutShared = false
- SolutionUniqueID = {CFBC3463-2A25-4A65-99D7-92F0A19DACAB}
- EndGlobalSection
- GlobalSection(SolutionConfiguration) = preSolution
- Debug = Debug
- Release = Release
- EndGlobalSection
- GlobalSection(ProjectConfiguration) = postSolution
- {B7F7F0F7-9029-4D1A-8CB4-C42DAF86A21C}.Debug.ActiveCfg = Debug|Win32
- {B7F7F0F7-9029-4D1A-8CB4-C42DAF86A21C}.Debug.Build.0 = Debug|Win32
- {B7F7F0F7-9029-4D1A-8CB4-C42DAF86A21C}.Release.ActiveCfg = Release|Win32
- {B7F7F0F7-9029-4D1A-8CB4-C42DAF86A21C}.Release.Build.0 = Release|Win32
- {61A08759-9E99-481F-811D-204553D27E75}.Debug.ActiveCfg = Debug
- {61A08759-9E99-481F-811D-204553D27E75}.Debug.Build.0 = Debug
- {61A08759-9E99-481F-811D-204553D27E75}.Release.ActiveCfg = Release
- {61A08759-9E99-481F-811D-204553D27E75}.Release.Build.0 = Release
- EndGlobalSection
- GlobalSection(ExtensibilityGlobals) = postSolution
- EndGlobalSection
- GlobalSection(ExtensibilityAddIns) = postSolution
- EndGlobalSection
-EndGlobal
diff --git a/Bus/IvyProbe/IvyProbe.vcproj b/Bus/IvyProbe/IvyProbe.vcproj
deleted file mode 100644
index cdf5dda..0000000
--- a/Bus/IvyProbe/IvyProbe.vcproj
+++ /dev/null
@@ -1,535 +0,0 @@
-<?xml version="1.0" encoding="Windows-1252"?>
-<VisualStudioProject
- ProjectType="Visual C++"
- Version="8,00"
- Name="IvyProbe"
- ProjectGUID="{B7F7F0F7-9029-4D1A-8CB4-C42DAF86A21C}"
- RootNamespace="IvyProbe"
- SccProjectName="&quot;$/Bus/IvyProbe&quot;, ZPBAAAAA"
- SccLocalPath="."
- SccProvider="MSSCCI:Microsoft Visual SourceSafe"
- Keyword="MFCProj"
- >
- <Platforms>
- <Platform
- Name="Win32"
- />
- <Platform
- Name="x64"
- />
- </Platforms>
- <ToolFiles>
- </ToolFiles>
- <Configurations>
- <Configuration
- Name="Debug|Win32"
- OutputDirectory="$(SolutionDir)$(ConfigurationName)"
- IntermediateDirectory="$(ConfigurationName)"
- ConfigurationType="1"
- InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
- UseOfMFC="2"
- ATLMinimizesCRunTimeLibraryUsage="false"
- >
- <Tool
- Name="VCPreBuildEventTool"
- />
- <Tool
- Name="VCCustomBuildTool"
- />
- <Tool
- Name="VCXMLDataGeneratorTool"
- />
- <Tool
- Name="VCWebServiceProxyGeneratorTool"
- />
- <Tool
- Name="VCMIDLTool"
- PreprocessorDefinitions="_DEBUG"
- MkTypLibCompatible="true"
- SuppressStartupBanner="true"
- TargetEnvironment="1"
- TypeLibraryName=".\Debug/Test.tlb"
- />
- <Tool
- Name="VCCLCompilerTool"
- Optimization="0"
- AdditionalIncludeDirectories="..\Ivy;&quot;..\..\..\pcre-6.4&quot;"
- PreprocessorDefinitions="USE_ETS"
- RuntimeLibrary="3"
- UsePrecompiledHeader="2"
- PrecompiledHeaderThrough="stdafx.h"
- BrowseInformation="1"
- WarningLevel="3"
- SuppressStartupBanner="true"
- DebugInformationFormat="4"
- />
- <Tool
- Name="VCManagedResourceCompilerTool"
- />
- <Tool
- Name="VCResourceCompilerTool"
- PreprocessorDefinitions="_DEBUG"
- Culture="1036"
- />
- <Tool
- Name="VCPreLinkEventTool"
- />
- <Tool
- Name="VCLinkerTool"
- LinkIncremental="2"
- SuppressStartupBanner="true"
- AdditionalLibraryDirectories=""
- GenerateDebugInformation="true"
- SubSystem="2"
- />
- <Tool
- Name="VCALinkTool"
- />
- <Tool
- Name="VCManifestTool"
- />
- <Tool
- Name="VCXDCMakeTool"
- />
- <Tool
- Name="VCBscMakeTool"
- />
- <Tool
- Name="VCFxCopTool"
- />
- <Tool
- Name="VCAppVerifierTool"
- />
- <Tool
- Name="VCWebDeploymentTool"
- />
- <Tool
- Name="VCPostBuildEventTool"
- />
- </Configuration>
- <Configuration
- Name="Debug|x64"
- OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)"
- IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
- ConfigurationType="1"
- InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
- UseOfMFC="2"
- ATLMinimizesCRunTimeLibraryUsage="false"
- >
- <Tool
- Name="VCPreBuildEventTool"
- />
- <Tool
- Name="VCCustomBuildTool"
- />
- <Tool
- Name="VCXMLDataGeneratorTool"
- />
- <Tool
- Name="VCWebServiceProxyGeneratorTool"
- />
- <Tool
- Name="VCMIDLTool"
- PreprocessorDefinitions="_DEBUG"
- MkTypLibCompatible="true"
- SuppressStartupBanner="true"
- TargetEnvironment="3"
- TypeLibraryName=".\Debug/Test.tlb"
- />
- <Tool
- Name="VCCLCompilerTool"
- Optimization="0"
- AdditionalIncludeDirectories="..\Ivy;&quot;..\..\..\pcre-6.4&quot;"
- PreprocessorDefinitions="USE_ETS"
- BasicRuntimeChecks="3"
- RuntimeLibrary="3"
- UsePrecompiledHeader="2"
- PrecompiledHeaderThrough="stdafx.h"
- BrowseInformation="1"
- WarningLevel="3"
- SuppressStartupBanner="true"
- DebugInformationFormat="3"
- />
- <Tool
- Name="VCManagedResourceCompilerTool"
- />
- <Tool
- Name="VCResourceCompilerTool"
- PreprocessorDefinitions="_DEBUG"
- Culture="1036"
- />
- <Tool
- Name="VCPreLinkEventTool"
- />
- <Tool
- Name="VCLinkerTool"
- LinkIncremental="2"
- SuppressStartupBanner="true"
- AdditionalLibraryDirectories=""
- GenerateDebugInformation="true"
- SubSystem="2"
- TargetMachine="17"
- />
- <Tool
- Name="VCALinkTool"
- />
- <Tool
- Name="VCManifestTool"
- />
- <Tool
- Name="VCXDCMakeTool"
- />
- <Tool
- Name="VCBscMakeTool"
- />
- <Tool
- Name="VCFxCopTool"
- />
- <Tool
- Name="VCAppVerifierTool"
- />
- <Tool
- Name="VCWebDeploymentTool"
- />
- <Tool
- Name="VCPostBuildEventTool"
- />
- </Configuration>
- <Configuration
- Name="Release|Win32"
- OutputDirectory="$(SolutionDir)$(ConfigurationName)"
- IntermediateDirectory="$(ConfigurationName)"
- ConfigurationType="1"
- InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
- UseOfMFC="2"
- ATLMinimizesCRunTimeLibraryUsage="false"
- >
- <Tool
- Name="VCPreBuildEventTool"
- />
- <Tool
- Name="VCCustomBuildTool"
- />
- <Tool
- Name="VCXMLDataGeneratorTool"
- />
- <Tool
- Name="VCWebServiceProxyGeneratorTool"
- />
- <Tool
- Name="VCMIDLTool"
- PreprocessorDefinitions="NDEBUG"
- MkTypLibCompatible="true"
- SuppressStartupBanner="true"
- TargetEnvironment="1"
- TypeLibraryName=".\Release/Test.tlb"
- />
- <Tool
- Name="VCCLCompilerTool"
- InlineFunctionExpansion="1"
- AdditionalIncludeDirectories="..\Ivy;&quot;..\..\..\pcre-6.4&quot;"
- PreprocessorDefinitions="USE_ETS"
- StringPooling="true"
- RuntimeLibrary="2"
- EnableFunctionLevelLinking="true"
- UsePrecompiledHeader="2"
- PrecompiledHeaderThrough="stdafx.h"
- WarningLevel="3"
- SuppressStartupBanner="true"
- />
- <Tool
- Name="VCManagedResourceCompilerTool"
- />
- <Tool
- Name="VCResourceCompilerTool"
- PreprocessorDefinitions="_AFXDLL;NDEBUG"
- Culture="1036"
- />
- <Tool
- Name="VCPreLinkEventTool"
- />
- <Tool
- Name="VCLinkerTool"
- LinkIncremental="1"
- SuppressStartupBanner="true"
- AdditionalLibraryDirectories=""
- SubSystem="2"
- />
- <Tool
- Name="VCALinkTool"
- />
- <Tool
- Name="VCManifestTool"
- />
- <Tool
- Name="VCXDCMakeTool"
- />
- <Tool
- Name="VCBscMakeTool"
- />
- <Tool
- Name="VCFxCopTool"
- />
- <Tool
- Name="VCAppVerifierTool"
- />
- <Tool
- Name="VCWebDeploymentTool"
- />
- <Tool
- Name="VCPostBuildEventTool"
- />
- </Configuration>
- <Configuration
- Name="Release|x64"
- OutputDirectory="$(SolutionDir)$(PlatformName)\$(ConfigurationName)"
- IntermediateDirectory="$(PlatformName)\$(ConfigurationName)"
- ConfigurationType="1"
- InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
- UseOfMFC="2"
- ATLMinimizesCRunTimeLibraryUsage="false"
- >
- <Tool
- Name="VCPreBuildEventTool"
- />
- <Tool
- Name="VCCustomBuildTool"
- />
- <Tool
- Name="VCXMLDataGeneratorTool"
- />
- <Tool
- Name="VCWebServiceProxyGeneratorTool"
- />
- <Tool
- Name="VCMIDLTool"
- PreprocessorDefinitions="NDEBUG"
- MkTypLibCompatible="true"
- SuppressStartupBanner="true"
- TargetEnvironment="3"
- TypeLibraryName=".\Release/Test.tlb"
- />
- <Tool
- Name="VCCLCompilerTool"
- InlineFunctionExpansion="1"
- AdditionalIncludeDirectories="..\Ivy;&quot;..\..\..\pcre-6.4&quot;"
- PreprocessorDefinitions="USE_ETS"
- StringPooling="true"
- RuntimeLibrary="2"
- EnableFunctionLevelLinking="true"
- UsePrecompiledHeader="2"
- WarningLevel="3"
- SuppressStartupBanner="true"
- Detect64BitPortabilityProblems="true"
- />
- <Tool
- Name="VCManagedResourceCompilerTool"
- />
- <Tool
- Name="VCResourceCompilerTool"
- PreprocessorDefinitions="_AFXDLL;NDEBUG"
- Culture="1036"
- />
- <Tool
- Name="VCPreLinkEventTool"
- />
- <Tool
- Name="VCLinkerTool"
- LinkIncremental="1"
- SuppressStartupBanner="true"
- AdditionalLibraryDirectories=""
- SubSystem="2"
- TargetMachine="17"
- />
- <Tool
- Name="VCALinkTool"
- />
- <Tool
- Name="VCManifestTool"
- />
- <Tool
- Name="VCXDCMakeTool"
- />
- <Tool
- Name="VCBscMakeTool"
- />
- <Tool
- Name="VCFxCopTool"
- />
- <Tool
- Name="VCAppVerifierTool"
- />
- <Tool
- Name="VCWebDeploymentTool"
- />
- <Tool
- Name="VCPostBuildEventTool"
- />
- </Configuration>
- </Configurations>
- <References>
- <ProjectReference
- ReferencedProjectIdentifier="{9BD87B7A-517E-4900-B3EA-A358885CD876}"
- RelativePathToProject=".\Ivy\Ivy.vcproj"
- />
- </References>
- <Files>
- <Filter
- Name="Source Files"
- Filter="cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
- >
- <File
- RelativePath=".\ETSLayout.cpp"
- >
- </File>
- <File
- RelativePath=".\HistoryEdit.cpp"
- >
- </File>
- <File
- RelativePath="IvyProbe.cpp"
- >
- </File>
- <File
- RelativePath="IvyProbeDlg.cpp"
- >
- </File>
- <File
- RelativePath=".\StdAfx.cpp"
- >
- <FileConfiguration
- Name="Debug|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- UsePrecompiledHeader="1"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Debug|x64"
- >
- <Tool
- Name="VCCLCompilerTool"
- UsePrecompiledHeader="1"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release|Win32"
- >
- <Tool
- Name="VCCLCompilerTool"
- UsePrecompiledHeader="1"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release|x64"
- >
- <Tool
- Name="VCCLCompilerTool"
- UsePrecompiledHeader="1"
- />
- </FileConfiguration>
- </File>
- <File
- RelativePath=".\TestParseCmdLine.cpp"
- >
- </File>
- </Filter>
- <Filter
- Name="Header Files"
- Filter="h;hpp;hxx;hm;inl"
- >
- <File
- RelativePath=".\ETSLayout.h"
- >
- </File>
- <File
- RelativePath=".\HistoryEdit.h"
- >
- </File>
- <File
- RelativePath="IvyProbe.h"
- >
- </File>
- <File
- RelativePath="IvyProbeDlg.h"
- >
- </File>
- <File
- RelativePath=".\Resource.h"
- >
- </File>
- <File
- RelativePath=".\StdAfx.h"
- >
- </File>
- <File
- RelativePath=".\TestParseCmdLine.h"
- >
- </File>
- </Filter>
- <Filter
- Name="Resource Files"
- Filter="ico;cur;bmp;dlg;rc2;rct;bin;cnt;rtf;gif;jpg;jpeg;jpe"
- >
- <File
- RelativePath="res\IvyProbe.ico"
- >
- </File>
- <File
- RelativePath="res\IvyProbe.manifest"
- >
- <FileConfiguration
- Name="Debug|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCCustomBuildTool"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Debug|x64"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCCustomBuildTool"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release|Win32"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCCustomBuildTool"
- />
- </FileConfiguration>
- <FileConfiguration
- Name="Release|x64"
- ExcludedFromBuild="true"
- >
- <Tool
- Name="VCCustomBuildTool"
- />
- </FileConfiguration>
- </File>
- <File
- RelativePath="IvyProbe.rc"
- >
- </File>
- <File
- RelativePath="res\IvyProbe.rc2"
- >
- </File>
- </Filter>
- <File
- RelativePath=".\ReadMe.txt"
- >
- </File>
- </Files>
- <Globals>
- <Global
- Name="RESOURCE_FILE"
- Value="IvyProbe.rc"
- />
- </Globals>
-</VisualStudioProject>
diff --git a/Bus/IvyProbe/IvyProbe.vcproj.vspscc b/Bus/IvyProbe/IvyProbe.vcproj.vspscc
deleted file mode 100644
index 794f014..0000000
--- a/Bus/IvyProbe/IvyProbe.vcproj.vspscc
+++ /dev/null
@@ -1,10 +0,0 @@
-""
-{
-"FILE_VERSION" = "9237"
-"ENLISTMENT_CHOICE" = "NEVER"
-"PROJECT_FILE_RELATIVE_PATH" = ""
-"NUMBER_OF_EXCLUDED_FILES" = "0"
-"ORIGINAL_PROJECT_FILE_PATH" = ""
-"NUMBER_OF_NESTED_PROJECTS" = "0"
-"SOURCE_CONTROL_SETTINGS_PROVIDER" = "PROJECT"
-}
diff --git a/Bus/IvyProbe/IvyProbe.vssscc b/Bus/IvyProbe/IvyProbe.vssscc
deleted file mode 100644
index 794f014..0000000
--- a/Bus/IvyProbe/IvyProbe.vssscc
+++ /dev/null
@@ -1,10 +0,0 @@
-""
-{
-"FILE_VERSION" = "9237"
-"ENLISTMENT_CHOICE" = "NEVER"
-"PROJECT_FILE_RELATIVE_PATH" = ""
-"NUMBER_OF_EXCLUDED_FILES" = "0"
-"ORIGINAL_PROJECT_FILE_PATH" = ""
-"NUMBER_OF_NESTED_PROJECTS" = "0"
-"SOURCE_CONTROL_SETTINGS_PROVIDER" = "PROJECT"
-}
diff --git a/Bus/IvyProbe/IvyProbeDlg.cpp b/Bus/IvyProbe/IvyProbeDlg.cpp
deleted file mode 100644
index ef7bff8..0000000
--- a/Bus/IvyProbe/IvyProbeDlg.cpp
+++ /dev/null
@@ -1,394 +0,0 @@
-// TestDlg.cpp : implementation file
-//
-
-#include "stdafx.h"
-#include "IvyProbe.h"
-#include "IvyProbeDlg.h"
-#include "TestParseCmdLine.h"
-
-#include "IvyApplication.h"
-
-#ifdef _DEBUG
-#define new DEBUG_NEW
-#undef THIS_FILE
-static char THIS_FILE[] = __FILE__;
-#endif
-
-static char BASED_CODE szFilterMsg[] = "Ivy Messages Files (*.ivm)|*.ivm|Ivy Files (*.ivm;*.ivb;*.txt)|*.ivm;*.ivb;*.txt|All Files (*.*)|*.*||";
-static char BASED_CODE szFilterBind[] = "Ivy Bindings Files (*.ivb)|*.ivb|Ivy Files (*.ivm;*.ivb;*.txt)|*.ivm;*.ivb;*.txt|All Files (*.*)|*.*||";
-
-CAboutDlg::CAboutDlg() : CDialog(CAboutDlg::IDD)
-{
- //{{AFX_DATA_INIT(CAboutDlg)
- //}}AFX_DATA_INIT
-}
-
-void CAboutDlg::DoDataExchange(CDataExchange* pDX)
-{
- CDialog::DoDataExchange(pDX);
- //{{AFX_DATA_MAP(CAboutDlg)
- //}}AFX_DATA_MAP
-}
-
-BEGIN_MESSAGE_MAP(CAboutDlg, CDialog)
- //{{AFX_MSG_MAP(CAboutDlg)
- // No message handlers
- //}}AFX_MSG_MAP
-END_MESSAGE_MAP()
-
-/////////////////////////////////////////////////////////////////////////////
-// CTestDlg dialog
-
-CIvyProbeDlg::CIvyProbeDlg(CWnd* pParent /*=NULL*/)
- : MyDialog(CIvyProbeDlg::IDD, pParent)
-{
- //{{AFX_DATA_INIT(CTestDlg)
- m_busnumber = "";
- //}}AFX_DATA_INIT
- // Note that LoadIcon does not require a subsequent DestroyIcon in Win32
- m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
-
- bus = NULL;
-}
-
-void CIvyProbeDlg::DoDataExchange(CDataExchange* pDX)
-{
- MyDialog::DoDataExchange(pDX);
- //{{AFX_DATA_MAP(CTestDlg)
- DDX_Control(pDX, IDC_REGEXP, m_expr);
- DDX_Control(pDX, IDC_MSG, m_msg);
- DDX_Text(pDX, IDC_BUSNUMBER, m_busnumber);
- //}}AFX_DATA_MAP
-}
-
-BEGIN_MESSAGE_MAP(CIvyProbeDlg, MyDialog)
- //{{AFX_MSG_MAP(CTestDlg)
- ON_WM_QUERYDRAGICON()
- ON_BN_CLICKED(IDC_START, OnStart)
- ON_WM_CLOSE()
- ON_BN_CLICKED(IDC_SEND, OnSend)
- ON_BN_CLICKED(IDC_BIND, OnBind)
- ON_WM_SYSCOMMAND()
- ON_COMMAND(FILE_LOAD, OnLoad)
- ON_COMMAND(FILE_SAVE, OnSave)
- //}}AFX_MSG_MAP
- ON_COMMAND(ID_FILE_SAVEBINDINGS, &CIvyProbeDlg::OnFileSavebindings)
- ON_COMMAND(ID_FILE_LOADBINDINGS, &CIvyProbeDlg::OnFileLoadbindings)
-END_MESSAGE_MAP()
-
-
-
-const char * CONVSTR( const CString& str )
-{
-#ifdef UNDER_CE
-
- static char buffer[4096];
- int len = str.GetLength();
- buffer[len] = '\0';
- if ( len )
- {
- int err = WideCharToMultiByte( CP_ACP, 0, str, len, buffer, 4096, NULL, NULL );
- if ( err == 0 )
- TRACE(TEXT("Error converting chars %d\n"),GetLastError());
- }
- return buffer;
-#else
- return (LPCSTR) str;
-#endif
-
-}
-
-
-/////////////////////////////////////////////////////////////////////////////
-// CTestDlg message handlers
-
-BOOL CIvyProbeDlg::OnInitDialog()
-{
- MyDialog::OnInitDialog();
-
-// // Add "About..." menu item to system menu.
-//
-// // IDM_ABOUTBOX must be in the system command range.
-// ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);
-// ASSERT(IDM_ABOUTBOX < 0xF000);
-//
-// CMenu* pSysMenu = GetSystemMenu(FALSE);
-// if (pSysMenu != NULL)
-// {
-// CString strAboutMenu;
-// strAboutMenu.LoadString(IDS_ABOUTBOX);
-// if (!strAboutMenu.IsEmpty())
-// {
-// pSysMenu->AppendMenu(MF_SEPARATOR);
-// pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);
-// }
-// }
-
- // Set the icon for this dialog. The framework does this automatically
- // when the application's main window is not a dialog
- SetIcon(m_hIcon, TRUE); // Set big icon
- SetIcon(m_hIcon, FALSE); // Set small icon
-
-#ifdef USE_ETS
- // define the Layout
- CreateRoot( VERTICAL, nDefaultBorder, 5 )
- << ( pane( HORIZONTAL, ABSOLUTE_VERT )
- << item ( IDC_BUSNUMBER, GREEDY )
- << item ( IDC_START, NORESIZE )
- )
- << item ( IDC_TEXT, GREEDY )
- << ( pane( HORIZONTAL, ABSOLUTE_VERT )
- << item( IDC_STATIC_MSG, NORESIZE )
- << item( IDC_MSG, GREEDY )
- << item( IDC_SEND, NORESIZE )
- )
- << ( pane( HORIZONTAL, ABSOLUTE_VERT )
- << item( IDC_STATIC_BIND, NORESIZE )
- << item( IDC_REGEXP, GREEDY )
- << item( IDC_BIND, NORESIZE )
- );
- UpdateLayout ();
-#endif
- // extra initialization here
- m_text.SubclassDlgItem (IDC_TEXT, this);
-
-
- // parse command Line Info
- TestParseCmdLine cmd;
- AfxGetApp()->ParseCommandLine( cmd );
-
- // Set Argument from Command Line
- m_busnumber = cmd.m_busNumber;
-
- bus = new Ivy( "IvyProbe Windows","IvyProbe Windows Ready",this,FALSE);
- bus->SetBindCallback( this );
-
-// bus->BindMsg("(.*)", BUS_CALLBACK_OF(CTestDlg, IvyCallback ));
-
- //bus->BindMsg("^S( A=([0-9]+))?( B=([0-9]+))?",cb);
- m_busnumber = bus->GetDomain( CONVSTR(m_busnumber) );
- UpdateData(FALSE);
-
- // force bus start in case of start
- if ( cmd.m_start )
- OnStart();
-
- return TRUE; // return TRUE unless you set the focus to a control
-}
-
-
-//void CTestDlg::OnSysCommand(UINT nID, LPARAM lParam)
-//{
-// if ((nID & 0xFFF0) == IDM_ABOUTBOX)
-// {
-// CAboutDlg dlgAbout;
-// dlgAbout.DoModal();
-// }
-// else
-// {
-// MyDialog::OnSysCommand(nID, lParam);
-// }
-//}
-
-
-
-// The system calls this to obtain the cursor to display while the user drags
-// the minimized window.
-HCURSOR CIvyProbeDlg::OnQueryDragIcon()
-{
- return (HCURSOR) m_hIcon;
-}
-
-void CIvyProbeDlg::OnStart()
-{
- UpdateData(TRUE);
- bus->stop();
- m_busnumber = bus->GetDomain( CONVSTR(m_busnumber) );
- bus->start(CONVSTR(m_busnumber));
- UpdateData(FALSE);
-}
-
-void CIvyProbeDlg::OnMessage(IvyApplication *app, int argc, const char **argv)
-{
- int i;
- CString text;
- TRACE(TEXT(" Called function args:"));
- WriteMessage( "Ivy callback %d args",argc );
- for ( i = 0; i < argc; i++ )
- {
- WriteMessage(" arg%d='%s'",i, argv[i] );
- TRACE(TEXT(" '%s'"),argv[i]);
- }
- TRACE(TEXT("\n"));
-
-}
-
-
-
-void CIvyProbeDlg::OnDirectMessage(IvyApplication *app, int id, const char *arg)
-{
-TRACE(TEXT("Direct Msg Receive %d, %s\n"),id,arg );
-}
-
-void CIvyProbeDlg::OnApplicationConnected(IvyApplication *app)
-{
- WriteMessage( "Application: %s ready",(LPCSTR)(app->GetName()) );
-}
-void CIvyProbeDlg::OnApplicationDisconnected(IvyApplication *app)
-{
- WriteMessage( "Application: %s bye",(LPCSTR)(app->GetName()) );
-}
-
-void CIvyProbeDlg::OnAddBind (IvyApplication *app, int id, const char * regexp)
-{
- WriteMessage( "Application: %s Add Binding %s",(LPCSTR)(app->GetName()), regexp );
-}
-void CIvyProbeDlg::OnRemoveBind (IvyApplication *app, int id, const char * regexp)
-{
- WriteMessage( "Application: %s Remove Binding %s",(LPCSTR)(app->GetName()), regexp );
-}
-void CIvyProbeDlg::OnFilterBind (IvyApplication *app, int id, const char * regexp)
-{
- WriteMessage( "Application: %s Filtered Binding %s",(LPCSTR)(app->GetName()), regexp );
-}
-
-void CIvyProbeDlg::WriteMessage(const char *format, ...)
-{
- char str[4096];
- // format and write the data we were given
- va_list args;
- va_start(args, format);
- _vsnprintf_s(str, sizeof(str), sizeof(str)-1, format, args);
-
- m_text.AppendString( str );
-}
-
-
-void CIvyProbeDlg::OnClose()
-{
- // TODO: Add your message handler code here and/or call default
- TRACE ( TEXT("IvyProbe Quitting\n"));
- if (bus)
- {
- bus->stop();
- delete bus;
- }
-
- MyDialog::OnClose();
-}
-
-
-void CIvyProbeDlg::OnSend()
-{
- CString buffer;
- m_msg.SetEditSel( 0, -1 );
- m_msg.GetWindowText( buffer );
- if ( buffer.IsEmpty() ) return;
- int count = bus->SendMsg( CONVSTR(buffer) );
- if ( m_msg.FindStringExact(-1, buffer) == CB_ERR )
- {
- //m_msg.AddString( buffer );
- m_msg.InsertString( 0, buffer );
- }
- WriteMessage( "Sending %d message %s",count,CONVSTR(buffer) );
- m_msg.Clear();
-}
-
-void CIvyProbeDlg::OnBind()
-{
- CString buffer;
- m_expr.SetEditSel( 0, -1 );
- m_expr.GetWindowText( buffer );
- if ( buffer.IsEmpty() ) return;
- int count = bus->BindMsg( CONVSTR(buffer) , this );
- if ( m_expr.FindStringExact(-1, buffer) == CB_ERR )
- {
- m_expr.AddString( buffer );
- }
- WriteMessage( "Binding to %s", CONVSTR(buffer) );
- m_expr.Clear();
-}
-
-
-void CIvyProbeDlg::OnLoad()
-{
-#ifndef UNDER_CE
- // TODO ReadString doesn't existe
- CString message;
-
- CFileDialog dialog( TRUE, TEXT("ivm"), NULL, OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, szFilterMsg);
- if ( dialog.DoModal() == IDOK )
- {
- CStdioFile file( dialog.GetPathName(), CFile::modeRead | CFile::typeText );
- m_msg.ResetContent();
- while ( file.ReadString( message ))
- {
- m_msg.AddString( message );
- }
- file.Close();
- }
-#endif
-}
-
-void CIvyProbeDlg::OnSave()
-{
-#ifndef UNDER_CE
- // TODO WriteString doesn't existe
- CString message;
-
- CFileDialog dialog( FALSE, TEXT("ivm") , NULL, OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, szFilterMsg);
- if ( dialog.DoModal() == IDOK )
- {
- CStdioFile file( dialog.GetPathName(), CFile::modeCreate | CFile::modeWrite | CFile::typeText );
- for (int i=0;i < m_msg.GetCount();i++)
- {
- m_msg.GetLBText( i, message );
- file.WriteString(message + TEXT("\n"));
- }
- file.Close();
-
- }
-#endif
-}
-
-void CIvyProbeDlg::OnFileLoadbindings()
-{
-#ifndef UNDER_CE
- // TODO ReadString doesn't existe
- CString message;
-
- CFileDialog dialog( TRUE, TEXT("ivb"), NULL, OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, szFilterBind);
- if ( dialog.DoModal() == IDOK )
- {
- CStdioFile file( dialog.GetPathName(), CFile::modeRead | CFile::typeText );
- m_expr.ResetContent();
- while ( file.ReadString( message ))
- {
- m_expr.AddString( message );
- bus->BindMsg( CONVSTR(message) , this );
- }
- file.Close();
- }
-#endif
-}
-
-void CIvyProbeDlg::OnFileSavebindings()
-{
-#ifndef UNDER_CE
- // TODO WriteString doesn't existe
- CString message;
-
- CFileDialog dialog( FALSE, TEXT("ivb") , NULL, OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, szFilterBind);
- if ( dialog.DoModal() == IDOK )
- {
- CStdioFile file( dialog.GetPathName(), CFile::modeCreate | CFile::modeWrite | CFile::typeText );
- for (int i=0;i < m_expr.GetCount();i++)
- {
- m_expr.GetLBText( i, message );
- file.WriteString(message + TEXT("\n"));
- }
- file.Close();
-
- }
-#endif
-}
diff --git a/Bus/IvyProbe/IvyProbeDlg.h b/Bus/IvyProbe/IvyProbeDlg.h
deleted file mode 100644
index eee40ef..0000000
--- a/Bus/IvyProbe/IvyProbeDlg.h
+++ /dev/null
@@ -1,110 +0,0 @@
-// TestDlg.h : header file
-//
-
-#if !defined(AFX_TESTDLG_H__F7F08FF0_E653_11D0_AE3E_080009F92591__INCLUDED_)
-#define AFX_TESTDLG_H__F7F08FF0_E653_11D0_AE3E_080009F92591__INCLUDED_
-
-#if _MSC_VER >= 1000
-#pragma once
-#endif // _MSC_VER >= 1000
-
-#include "Ivy.h"
-#ifdef USE_ETS
-#include "ETSLayout.h"
-#define MyDialog ETSLayoutDialog
-#else
-#define MyDialog CDialog
-#endif
-#include "HistoryEdit.h"
-/////////////////////////////////////////////////////////////////////////////
-// CAboutDlg dialog used for App About
-
-class CAboutDlg : public CDialog
-{
-public:
- CAboutDlg();
-
-// Dialog Data
- //{{AFX_DATA(CAboutDlg)
- enum { IDD = IDD_ABOUTBOX };
- //}}AFX_DATA
-
- // ClassWizard generated virtual function overrides
- //{{AFX_VIRTUAL(CAboutDlg)
- protected:
- virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
- //}}AFX_VIRTUAL
-
-// Implementation
-protected:
- //{{AFX_MSG(CAboutDlg)
- //}}AFX_MSG
- DECLARE_MESSAGE_MAP()
-};
-
-/////////////////////////////////////////////////////////////////////////////
-// CTestDlg dialog
-
-class CIvyProbeDlg : public MyDialog, public IvyApplicationCallback, public IvyBindingCallback, public IvyMessageCallback
-{
-// Construction
-public:
-
- CIvyProbeDlg(CWnd* pParent = NULL); // standard constructor
-#ifdef USE_ETS
- DECLARE_LAYOUT();
-#endif
- CHistoryEdit m_text;
-// Dialog Data
- //{{AFX_DATA(CTestDlg)
- enum { IDD = IDD_TEST_DIALOG };
- CComboBox m_expr;
- CComboBox m_msg;
- CString m_busnumber;
- //}}AFX_DATA
-
- // ClassWizard generated virtual function overrides
- //{{AFX_VIRTUAL(CTestDlg)
- protected:
- virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
- //}}AFX_VIRTUAL
-
-// Implementation
-protected:
- void WriteMessage(const char * format, ...);
- void OnApplicationConnected( IvyApplication *app );
- void OnApplicationDisconnected( IvyApplication *app );
- void OnDirectMessage( IvyApplication *app, int id, const char *arg );
- void OnAddBind (IvyApplication *app, int id, const char * regexp);
- void OnRemoveBind (IvyApplication *app, int id, const char * regexp);
- void OnFilterBind (IvyApplication *app, int id, const char * regexp);
-
- void FaderCallback ( IvyApplication *app, int argc, const char **argv );
- void OnMessage ( IvyApplication *app, int argc, const char **argv );
- Ivy *bus;
- HICON m_hIcon;
-
- // Generated message map functions
- //{{AFX_MSG(CTestDlg)
- virtual BOOL OnInitDialog();
- afx_msg HCURSOR OnQueryDragIcon();
- afx_msg void OnStart();
- afx_msg void OnVScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar);
- afx_msg void OnClose();
- afx_msg void OnSend();
- afx_msg void OnBind();
- afx_msg void OnLoad();
- afx_msg void OnSave();
- //}}AFX_MSG
- DECLARE_MESSAGE_MAP()
-
-public:
- afx_msg void OnFileSavebindings();
-public:
- afx_msg void OnFileLoadbindings();
-};
-
-//{{AFX_INSERT_LOCATION}}
-// Microsoft Developer Studio will insert additional declarations immediately before the previous line.
-
-#endif // !defined(AFX_TESTDLG_H__F7F08FF0_E653_11D0_AE3E_080009F92591__INCLUDED_)
diff --git a/Bus/IvyProbe/ReadMe.txt b/Bus/IvyProbe/ReadMe.txt
deleted file mode 100644
index 333432d..0000000
--- a/Bus/IvyProbe/ReadMe.txt
+++ /dev/null
@@ -1,81 +0,0 @@
-========================================================================
- MICROSOFT FOUNDATION CLASS LIBRARY : Test
-========================================================================
-
-
-AppWizard has created this Test application for you. This application
-not only demonstrates the basics of using the Microsoft Foundation classes
-but is also a starting point for writing your application.
-
-This file contains a summary of what you will find in each of the files that
-make up your Test application.
-
-Test.h
- This is the main header file for the application. It includes other
- project specific headers (including Resource.h) and declares the
- CTestApp application class.
-
-Test.cpp
- This is the main application source file that contains the application
- class CTestApp.
-
-Test.rc
- This is a listing of all of the Microsoft Windows resources that the
- program uses. It includes the icons, bitmaps, and cursors that are stored
- in the RES subdirectory. This file can be directly edited in Microsoft
- Developer Studio.
-
-res\Test.ico
- This is an icon file, which is used as the application's icon. This
- icon is included by the main resource file Test.rc.
-
-res\Test.rc2
- This file contains resources that are not edited by Microsoft
- Developer Studio. You should place all resources not
- editable by the resource editor in this file.
-
-Test.clw
- This file contains information used by ClassWizard to edit existing
- classes or add new classes. ClassWizard also uses this file to store
- information needed to create and edit message maps and dialog data
- maps and to create prototype member functions.
-
-
-/////////////////////////////////////////////////////////////////////////////
-
-AppWizard creates one dialog class:
-
-TestDlg.h, TestDlg.cpp - the dialog
- These files contain your CTestDlg class. This class defines
- the behavior of your application's main dialog. The dialog's
- template is in Test.rc, which can be edited in Microsoft
- Developer Studio.
-
-
-/////////////////////////////////////////////////////////////////////////////
-Other standard files:
-
-StdAfx.h, StdAfx.cpp
- These files are used to build a precompiled header (PCH) file
- named Test.pch and a precompiled types file named StdAfx.obj.
-
-Resource.h
- This is the standard header file, which defines new resource IDs.
- Microsoft Developer Studio reads and updates this file.
-
-/////////////////////////////////////////////////////////////////////////////
-Other notes:
-
-AppWizard uses "TODO:" to indicate parts of the source code you
-should add to or customize.
-
-If your application uses MFC in a shared DLL, and your application is
-in a language other than the operating system's current language, you
-will need to copy the corresponding localized resources MFC40XXX.DLL
-from the Microsoft Visual C++ CD-ROM onto the system or system32 directory,
-and rename it to be MFCLOC.DLL. ("XXX" stands for the language abbreviation.
-For example, MFC40DEU.DLL contains resources translated to German.) If you
-don't do this, some of the UI elements of your application will remain in the
-language of the operating system.
-
-/////////////////////////////////////////////////////////////////////////////