[GME-commit] GMESRC/GME/Gme ConnityDlg.cpp, NONE, 1.1 ConnityDlg.h, NONE, 1.1 resource.h, 1.76, 1.77 GME.rc, 1.165, 1.166 GME.vcproj, 1.6, 1.7 GMEView.h, 1.80, 1.81 GMEView.cpp, 1.197, 1.198
Log messages of CVS commits
gme-commit at list.isis.vanderbilt.edu
Tue Mar 18 14:20:32 CDT 2008
Update of /project/gme-repository/GMESRC/GME/Gme
In directory escher:/tmp/cvs-serv17260
Modified Files:
resource.h GME.rc GME.vcproj GMEView.h GMEView.cpp
Added Files:
ConnityDlg.cpp ConnityDlg.h
Log Message:
Jump back and forth along connections.
CVS User: Zoltan Molnar, ISIS (zolmol)
--- NEW FILE: ConnityDlg.h ---
#pragma once
//#include "afxwin.h"
#include "GMEStd.h"
#include "GuiObject.h"
#include "afxwin.h"
// CConnityDlg dialog, as in Connectivity
class CConnityDlg : public CDialog
{
DECLARE_DYNAMIC(CConnityDlg)
CGuiConnectionList* m_listC;
CGuiFcoList* m_listF;
CGuiConnection* m_selectedC;
CGuiFco* m_selectedF;
bool m_reverse;
static int m_leftPad;
static int m_rightPad;
static int m_lastCX;
static int m_lastCY;
static int m_smallestCX;
static int m_smallestCY;
public:
CConnityDlg( bool p_reverse, CWnd* pParent = NULL); // standard constructor
virtual ~CConnityDlg();
void setList( CGuiConnectionList& p_list);
void setList( CGuiFcoList& p_list);
CGuiConnection* getSelectedC();
CGuiFco* getSelectedF();
// Dialog Data
enum { IDD = IDD_CONNECTIVITYDIALOG };
virtual BOOL OnInitDialog();
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
virtual void OnOK();
DECLARE_MESSAGE_MAP()
CListBox m_options;
CButton m_ok;
CButton m_ca;
public:
afx_msg void OnLbnDblclkList1();
afx_msg void OnSize(UINT nType, int cx, int cy);
afx_msg void OnSizing(UINT fwSide, LPRECT pRect);
afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
};
Index: GMEView.cpp
===================================================================
RCS file: /project/gme-repository/GMESRC/GME/Gme/GMEView.cpp,v
retrieving revision 1.197
retrieving revision 1.198
diff -C2 -d -r1.197 -r1.198
*** GMEView.cpp 7 Feb 2008 22:54:48 -0000 1.197
--- GMEView.cpp 18 Mar 2008 19:20:29 -0000 1.198
***************
*** 19,22 ****
--- 19,23 ----
#include "GMEEventLogger.h"
#include "GmePrintDialog.h"
+ #include "ConnityDlg.h"
#include "Autoroute/AutoRouter.h"
***************
*** 314,317 ****
--- 315,327 ----
ON_COMMAND(ID_CONNCNTX_PROPERTIES, OnConncntxProperties)
ON_COMMAND(ID_CONNCNTX_DELETE, OnConncntxDelete)
+ ON_COMMAND(ID_CONNCNTX_FOLLOW, OnConncntxFollow)
+ ON_COMMAND(ID_CONNCNTX_REVERSE, OnConncntxRevfollow)
+ ON_COMMAND(ID_CNTX_FOLLOWCONNECTION, OnCntxFollowConnection)
+ ON_COMMAND(ID_CNTX_REVERSECONNECTION, OnCntxRevfollowConnection)
+ ON_COMMAND(ID_JUMPALONGCONN, OnJumpAlongConnection)
+ ON_COMMAND(ID_BACKALONGCONN, OnBackAlongConnection)
+ ON_COMMAND(ID_JUMPTOFIRSTOBJ, OnJumpToFirstObject)
+ ON_COMMAND(ID_JUMPTONEXTOBJ, OnJumpToNextObject)
+ ON_COMMAND(ID_SHOWCONTEXTMENU, OnShowContextMenu)
ON_COMMAND(ID_CNTX_CLEAR, OnCntxClear)
ON_UPDATE_COMMAND_UI(ID_CNTX_CLEAR, OnUpdateCntxClear)
***************
*** 321,324 ****
--- 331,340 ----
ON_UPDATE_COMMAND_UI(ID_CONNCNTX_DELETE, OnUpdateConncntxDelete)
ON_UPDATE_COMMAND_UI(ID_CNTX_CUT, OnUpdateCntxCut)
+ ON_UPDATE_COMMAND_UI(ID_CONNCNTX_FOLLOW, OnUpdateConncntxFollow)
+ ON_UPDATE_COMMAND_UI(ID_CONNCNTX_REVERSE, OnUpdateConncntxRevfollow)
+ ON_UPDATE_COMMAND_UI(ID_CNTX_FOLLOWCONNECTION, OnUpdateCntxFollowConnection)
+ ON_UPDATE_COMMAND_UI(ID_CNTX_REVERSECONNECTION, OnUpdateCntxRevfollowConnection)
+ ON_UPDATE_COMMAND_UI(ID_JUMPALONGCONN, OnUpdateJumpAlongConnection)
+ ON_UPDATE_COMMAND_UI(ID_BACKALONGCONN, OnUpdateBackAlongConnection)
ON_COMMAND(ID_CNTX_PREFERENCES, OnCntxPreferences)
ON_COMMAND(ID_EDIT_PREFERENCES, OnEditPreferences)
***************
*** 2516,2519 ****
--- 2532,2590 ----
}
+ CGuiObject *CGMEView::FindFirstObject()
+ {
+ m_findNextAlreadyAchieved = 0; // reset the currently achieved minimum level to its default
+
+ return helpMeFindNextObject( false);
+ }
+
+ CGuiObject *CGMEView::FindNextObject()
+ {
+ return helpMeFindNextObject( true);
+ }
+
+ CGuiObject *CGMEView::helpMeFindNextObject( bool p_secondFind)
+ {
+ CGuiObject* first = 0;
+ unsigned long first_abs = 0; // distance square from (0,0)
+ CPoint first_pos( 0, 0);
+
+ POSITION pos = children.GetHeadPosition();
+ while(pos) {
+ CGuiObject *cur = dynamic_cast<CGuiObject *>( children.GetNext( pos));
+ if( cur && cur->IsVisible())
+ {
+ CPoint cur_pos = cur->GetCenter();
+ unsigned long cur_abs = cur_pos.x * cur_pos.x + cur_pos.y * cur_pos.y;
+
+ // m_findNextAlreadyAchieved is the previously achieved minimum distance
+ // and we need to get further now if not invoked from FindFirst
+ // we disregard objects closer than m_curAbs
+ if( p_secondFind && cur_abs <= m_findNextAlreadyAchieved)
+ continue; // skip if its closer than the allowed/required level
+
+ if( !first)
+ {
+ first = cur;
+ first_pos = cur_pos;
+ first_abs = cur_abs;
+ }
+ else
+ {
+ if( first_abs > cur_abs) // 'cur' closer to (0, 0) than 'first'?
+ {
+ first = cur;
+ first_pos = cur_pos;
+ first_abs = cur_abs;
+ }
+ }
+ }
+ }
+
+ if( first) // something found
+ m_findNextAlreadyAchieved = first_abs;
+ return first;
+ }
+
CGuiObject *CGMEView::FindObject(CPoint &pt)
{
***************
*** 5597,5600 ****
--- 5668,5919 ----
{
pCmdUI->Enable(isType);
+ }
+
+ void CGMEView::OnShowContextMenu()
+ {
+ CGMEEventLogger::LogGMEEvent("CGMEView::OnShowContextMenu in "+path+name+"\r\n");
+
+ CGMEDoc *doc = GetDocument();
+ if( doc && doc->GetEditMode() == GME_EDIT_MODE)
+ {
+ CRect cr;// GetWindowRect( &cr);
+ GetClientRect( &cr);
+ ClientToScreen( &cr);
+ CPoint global( cr.TopLeft() + CPoint( 10, 10));
+ if( selected.GetCount() > 0)
+ {
+ CGuiObject* head = selected.GetHead();
+ CPoint local = !head? CPoint( 0, 0): head->GetLocation().TopLeft();//GetCenter()); // overwrite the menu's topleft placement
+
+ // reverse CoordinateTransfer
+ CClientDC fernst(this);
+ (const_cast<CGMEView *>(this))->OnPrepareDC(&fernst);
+ fernst.LPtoDP( &local);
+
+ global.Offset( local);
+ CMenu menu;
+ menu.LoadMenu( dynamic_cast< CGuiConnection *>( head)? IDR_CONNCONTEXT_MENU: IDR_CONTEXT_MENU);
+ menu.GetSubMenu( 0)->TrackPopupMenu( TPM_LEFTALIGN | TPM_RIGHTBUTTON, global.x, global.y, GetParent());
+ }
+ else if( selectedAnnotations.GetCount() > 0)
+ {
+ CGuiAnnotator* head = selectedAnnotations.GetHead();
+ CPoint local = !head? CPoint( 0, 0): head->GetLocation().TopLeft();
+
+ // reverse CoordinateTransfer
+ CClientDC fernst(this);
+ (const_cast<CGMEView *>(this))->OnPrepareDC(&fernst);
+ fernst.LPtoDP( &local);
+
+ global.Offset( local); // overwrite the menu's topleft placement
+ CMenu menu;
+ menu.LoadMenu( IDR_ANNCONTEXT_MENU);
+ menu.GetSubMenu( 0)->TrackPopupMenu( TPM_LEFTALIGN | TPM_RIGHTBUTTON, global.x, global.y, GetParent());
+ }
+ else
+ {
+ CMenu menu;
+ menu.LoadMenu( IDR_SELFCONTEXT_MENU);
+ CMenu *submenu = menu.GetSubMenu( 0);
+ currentAspect->InitContextMenu( submenu);
+ submenu->TrackPopupMenu( TPM_LEFTALIGN | TPM_RIGHTBUTTON, global.x, global.y, GetParent());
+ currentAspect->ResetContextMenu( submenu);
+ }
+ }
+ }
+
+ void CGMEView::OnJumpToFirstObject()
+ {
+ CGMEEventLogger::LogGMEEvent("CGMEView::OnJumpToFirstObject in "+path+name+"\r\n");
+
+ CGuiObject* first = FindFirstObject();
+
+ if( first && first->mgaFco && CGMEDoc::theInstance)
+ {
+ CGMEDoc::theInstance->ShowObject( CComPtr<IUnknown>( first->mgaFco), TRUE);
+ }
+ }
+
+ void CGMEView::OnJumpToNextObject()
+ {
+ CGMEEventLogger::LogGMEEvent("CGMEView::OnJumpToNextObject in "+path+name+"\r\n");
+
+ CGuiObject* next = FindNextObject();
+
+ if( next && next->mgaFco && CGMEDoc::theInstance)
+ {
+ CGMEDoc::theInstance->ShowObject( CComPtr<IUnknown>( next->mgaFco), TRUE);
+ }
+ }
+
+ void CGMEView::OnConncntxFollow()
+ {
+ CGMEEventLogger::LogGMEEvent("CGMEView::OnConncntxFollow in "+path+name+"\r\n");
+ if(isType) {
+ CGuiConnection *conn = dynamic_cast<CGuiConnection *>(contextSelection);
+ if(!conn || !FollowLine( conn, false))
+ AfxMessageBox("Can't follow along connection!");
+ contextSelection = 0;
+ }
+ }
+
+ void CGMEView::OnConncntxRevfollow()
+ {
+ CGMEEventLogger::LogGMEEvent("CGMEView::OnConncntxRevfollow in "+path+name+"\r\n");
+ if(isType) {
+ CGuiConnection *conn = dynamic_cast<CGuiConnection *>(contextSelection);
+ if(!conn || !FollowLine( conn, true))
+ AfxMessageBox("Can't follow connection in reverse!");
+ contextSelection = 0;
+ }
+ }
+
+ void CGMEView::OnCntxFollowConnection()
+ {
+ CGMEEventLogger::LogGMEEvent("CGMEView::OnCntxFollowConnection in "+path+name+"\r\n");
+ if( selected.GetCount() > 0)
+ FollowLine( selected.GetHead(), 0, false);
+ else
+ FollowLine( lastObject, lastPort, false);
+ }
+
+ void CGMEView::OnCntxRevfollowConnection()
+ {
+ CGMEEventLogger::LogGMEEvent("CGMEView::OnCntxRevfollowConnection in "+path+name+"\r\n");
+ if( selected.GetCount() > 0)
+ FollowLine( selected.GetHead(), 0, true);
+ else
+ FollowLine( lastObject, lastPort, true);
+ }
+
+ void CGMEView::OnJumpAlongConnection()
+ {
+ CGMEEventLogger::LogGMEEvent("CGMEView::OnJumpAlongConnection in "+path+name+"\r\n");
+ if( selected.GetCount() > 0)
+ FollowLine( selected.GetHead(), 0, false);
+ }
+
+ void CGMEView::OnBackAlongConnection()
+ {
+ CGMEEventLogger::LogGMEEvent("CGMEView::OnBackAlongConnection in "+path+name+"\r\n");
+ if( selected.GetCount() > 0)
+ FollowLine( selected.GetHead(), 0, true);
+ }
+
+ bool CGMEView::FollowLine( CGuiConnection *p_guiConn, bool p_reverse)
+ {
+ CGuiObject * next = 0;
+ if( p_reverse)
+ next = p_guiConn->src;
+ else
+ next = p_guiConn->dst;
+
+ if( next && next->mgaFco && CGMEDoc::theInstance)
+ CGMEDoc::theInstance->ShowObject( CComPtr<IUnknown>( next->mgaFco), TRUE);
+
+ return true;
+ }
+
+ bool CGMEView::FollowLine( CGuiObject* p_guiObj, CGuiPort* p_guiPort, bool p_reverse)
+ {
+ CGuiObject* currO = p_guiObj;
+ CGuiPort* currP = p_guiPort;
+
+ if( !currO && !currP)
+ return false;
+
+ int hmany = 0;
+ if( currP) // initial examination of the number of connections to the port
+ {
+ CGuiConnectionList& curr_conns = p_reverse? currP->inConns: currP->outConns;
+ hmany = curr_conns.GetCount();
+ }
+
+ if( currP && hmany > 0) // port selection has priority over object selection, but only if there are >0 ports
+ {
+ CGuiConnectionList& curr_conns = p_reverse? currP->inConns: currP->outConns;
+ int hmany = curr_conns.GetCount();
+ if( hmany >= 1)
+ {
+ CGuiConnection* a_conn = curr_conns.GetHead();
+ CGuiFco* a_neighbor = a_conn? p_reverse? a_conn->src: a_conn->dst: 0;
+
+ if( hmany > 1)
+ {
+ CConnityDlg dlg( p_reverse);
+ dlg.setList( curr_conns);
+ if( IDOK != dlg.DoModal())
+ return false;
+
+ a_conn = dlg.getSelectedC(); // owerwrite with the selected one (if > 1)
+ a_neighbor = a_conn? p_reverse? a_conn->src: a_conn->dst: 0;
+ }
+
+ if( a_neighbor)
+ {
+ CGMEDoc::theInstance->ShowObject( CComPtr<IUnknown>( a_neighbor->mgaFco), TRUE);
+ return true;
+ }
+ }
+ return false;
+ }
+ else if( currO)
+ {
+ CGuiFcoList neighbor_list;
+ currO->GetNeighborsInOut( neighbor_list, p_reverse);
+ int hmany = neighbor_list.GetCount();
+ if( hmany >= 1)
+ {
+ CGuiFco* a_neighbor = neighbor_list.GetHead();
+
+ if( hmany > 1)
+ {
+ CConnityDlg dlg( p_reverse);
+ dlg.setList( neighbor_list);
+ if( IDOK != dlg.DoModal())
+ return false;
+ a_neighbor = dlg.getSelectedF(); // owerwrite with the selected one (if > 1)
+ }
+
+ if( a_neighbor)
+ {
+ CGMEDoc::theInstance->ShowObject( CComPtr<IUnknown>( a_neighbor->mgaFco), TRUE);
+ return true;
+ }
+ }
+ return false;
+ }
+
+ return false;
+ }
+
+ void CGMEView::OnUpdateConncntxFollow(CCmdUI* pCmdUI)
+ {
+ pCmdUI->Enable(TRUE);
+ }
+
+ void CGMEView::OnUpdateConncntxRevfollow(CCmdUI* pCmdUI)
+ {
+ pCmdUI->Enable(TRUE);
+ }
+
+ void CGMEView::OnUpdateCntxFollowConnection( CCmdUI* pCmdUI)
+ {
+ pCmdUI->Enable(TRUE);
+ }
+
+ void CGMEView::OnUpdateCntxRevfollowConnection( CCmdUI* pCmdUI)
+ {
+ pCmdUI->Enable(TRUE);
+ }
+
+ void CGMEView::OnUpdateJumpAlongConnection(CCmdUI* pCmdUI)
+ {
+ pCmdUI->Enable( selected.GetCount() == 1);
+ }
+
+ void CGMEView::OnUpdateBackAlongConnection(CCmdUI* pCmdUI)
+ {
+ pCmdUI->Enable( selected.GetCount() == 1);
}
Index: GMEView.h
===================================================================
RCS file: /project/gme-repository/GMESRC/GME/Gme/GMEView.h,v
retrieving revision 1.80
retrieving revision 1.81
diff -C2 -d -r1.80 -r1.81
*** GMEView.h 27 Sep 2007 12:22:46 -0000 1.80
--- GMEView.h 18 Mar 2008 19:20:29 -0000 1.81
***************
*** 39,42 ****
--- 39,43 ----
POSITION m_prnpos;
unsigned int m_lastPrnPage;
+ unsigned long m_findNextAlreadyAchieved;
void setZoomPoint(int curzoom, CPoint point);
bool getNamePositionVal( CComPtr<IMgaFCO>& ccpMgaFCO, int *valRet);
***************
*** 45,48 ****
--- 46,50 ----
void updateNamePositionMenuItem( CCmdUI* pCmdUI, int this_val );
bool askUserAndDetachIfNeeded( CComPtr<IMgaFCO>& mgafco);
+ CGuiObject* helpMeFindNextObject( bool p_secondFind);
public:
***************
*** 165,168 ****
--- 167,172 ----
bool SendMouseOver4Object( CGuiObject * object);
bool SendNow();
+ bool FollowLine( CGuiConnection *guiConn, bool reverse);
+ bool FollowLine( CGuiObject* guiObj, CGuiPort* guiPort, bool reverse);
std::list<CGuiObject*> m_lstSelect;
std::list<CGuiObject*> m_lstUnselect;
***************
*** 190,193 ****
--- 194,199 ----
void CoordinateTransfer(CPoint &point) const;
+ CGuiObject *FindFirstObject();
+ CGuiObject *FindNextObject();
CGuiObject *FindObject(CPoint &pt);
CGuiAnnotator *FindAnnotation(CPoint &pt);
***************
*** 354,357 ****
--- 360,365 ----
afx_msg void OnConncntxProperties();
afx_msg void OnConncntxDelete();
+ afx_msg void OnConncntxFollow();
+ afx_msg void OnConncntxRevfollow();
afx_msg void OnCntxClear();
afx_msg void OnUpdateCntxClear(CCmdUI* pCmdUI);
***************
*** 361,364 ****
--- 369,374 ----
afx_msg void OnUpdateConncntxDelete(CCmdUI* pCmdUI);
afx_msg void OnUpdateCntxCut(CCmdUI* pCmdUI);
+ afx_msg void OnUpdateConncntxFollow(CCmdUI* pCmdUI);
+ afx_msg void OnUpdateConncntxRevfollow(CCmdUI* pCmdUI);
afx_msg void OnCntxPreferences();
afx_msg void OnEditPreferences();
***************
*** 438,441 ****
--- 448,458 ----
afx_msg void OnCntxSrcarSet();
afx_msg void OnCntxDstarSet();
+ afx_msg void OnCntxFollowConnection();
+ afx_msg void OnCntxRevfollowConnection();
+ afx_msg void OnJumpAlongConnection();
+ afx_msg void OnBackAlongConnection();
+ afx_msg void OnJumpToFirstObject();
+ afx_msg void OnJumpToNextObject();
+ afx_msg void OnShowContextMenu();
afx_msg void OnPrintMetafile();
afx_msg void OnZoomIn();
***************
*** 452,455 ****
--- 469,476 ----
afx_msg void OnUpdateCntxNamePositionEast( CCmdUI* pCmdUI );
afx_msg void OnUpdateCntxNamePositionWest( CCmdUI* pCmdUI );
+ afx_msg void OnUpdateCntxFollowConnection( CCmdUI* pCmdUI );
+ afx_msg void OnUpdateCntxRevfollowConnection( CCmdUI* pCmdUI );
+ afx_msg void OnUpdateJumpAlongConnection( CCmdUI* pCmdUI );
+ afx_msg void OnUpdateBackAlongConnection( CCmdUI* pCmdUI );
afx_msg void OnShowSelectedModel();
afx_msg void OnFocusBrowser();
Index: GME.vcproj
===================================================================
RCS file: /project/gme-repository/GMESRC/GME/Gme/GME.vcproj,v
retrieving revision 1.6
retrieving revision 1.7
diff -C2 -d -r1.6 -r1.7
*** GME.vcproj 22 Feb 2008 17:18:50 -0000 1.6
--- GME.vcproj 18 Mar 2008 19:20:29 -0000 1.7
***************
*** 387,390 ****
--- 387,393 ----
</File>
<File
+ RelativePath=".\ConnityDlg.cpp">
+ </File>
+ <File
RelativePath="console.cpp">
<FileConfiguration
***************
*** 1458,1461 ****
--- 1461,1467 ----
<File
RelativePath="ChildFrm.h">
+ </File>
+ <File
+ RelativePath=".\ConnityDlg.h">
</File>
<File
--- NEW FILE: ConnityDlg.cpp ---
// ConnityDlg.cpp : implementation file
//
#include "stdafx.h"
#include "resource.h"
#include "ConnityDlg.h"
// CConnityDlg dialog
//static
int CConnityDlg::m_lastCX = 0;
int CConnityDlg::m_lastCY = 0;
int CConnityDlg::m_smallestCX = 170;
int CConnityDlg::m_smallestCY = 150;
int CConnityDlg::m_leftPad = 15;
int CConnityDlg::m_rightPad = 14;
IMPLEMENT_DYNAMIC(CConnityDlg, CDialog)
CConnityDlg::CConnityDlg( bool p_reverse, CWnd* pParent /*=NULL*/)
: CDialog(CConnityDlg::IDD, pParent)
, m_listC( 0)
, m_listF( 0)
, m_selectedC( 0)
, m_selectedF( 0)
, m_reverse( p_reverse)
{
}
CConnityDlg::~CConnityDlg()
{
}
void CConnityDlg::setList( CGuiConnectionList& p_list)
{
m_listC = &p_list;
}
void CConnityDlg::setList( CGuiFcoList& p_list)
{
m_listF = &p_list;
}
CGuiConnection* CConnityDlg::getSelectedC()
{
return m_selectedC;
}
CGuiFco* CConnityDlg::getSelectedF()
{
return m_selectedF;
}
void CConnityDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
DDX_Control(pDX, IDC_LIST1, m_options);
DDX_Control(pDX, IDOK, m_ok);
DDX_Control(pDX, IDCANCEL, m_ca);
}
BEGIN_MESSAGE_MAP(CConnityDlg, CDialog)
ON_LBN_DBLCLK(IDC_LIST1, OnLbnDblclkList1)
ON_WM_SIZING()
ON_WM_SIZE()
ON_WM_CREATE()
END_MESSAGE_MAP()
// CConnityDlg message handlers
BOOL CConnityDlg::OnInitDialog()
{
CDialog::OnInitDialog();
if( CConnityDlg::m_lastCX && CConnityDlg::m_lastCY)
{
CRect rect;
GetWindowRect( &rect);
SetWindowPos( 0, rect.left, rect.top, m_lastCX, m_lastCY, SWP_NOZORDER | SWP_NOACTIVATE);
}
if( m_listC && m_listC->GetCount() > 0)
{
POSITION pos = m_listC->GetHeadPosition();
while( pos)
{
CGuiConnection* one = m_listC->GetNext( pos);
CString item = one? one->name: "Null";
if( m_reverse)
{
item += CString( " : ") + ((one && one->src)? one->src->name: CString( "Null"));
}
else
{
item += CString( " : ") + ((one && one->dst)? one->dst->name: CString( "Null"));
}
m_options.AddString( item);
}
}
else if( m_listF && m_listF->GetCount() > 0)
{
POSITION pos = m_listF->GetHeadPosition();
while( pos)
{
CGuiFco* one = m_listF->GetNext( pos);
m_options.AddString( one? one->name: "Null");
}
}
return TRUE;
}
void CConnityDlg::OnOK()
{
int which = m_options.GetCurSel();
// finding the selected object in the list based on the index
// relies on the unsorted behaviour of the listbox
if( m_listC && m_listC->GetCount() > 0)
{
int pos_i = -1;
POSITION pos = m_listC->GetHeadPosition();
while( pos)
{
CGuiConnection* one = m_listC->GetNext( pos);
if( ++pos_i == which)
m_selectedC = one;
}
}
else if( m_listF && m_listF->GetCount() > 0)
{
int pos_i = -1;
POSITION pos = m_listF->GetHeadPosition();
while( pos)
{
CGuiFco* one = m_listF->GetNext( pos);
if( ++pos_i == which)
m_selectedF = one;
}
}
// save the actual Height and Width
CRect rect;
GetWindowRect( &rect);
CConnityDlg::m_lastCX = rect.Width();
CConnityDlg::m_lastCY = rect.Height();
CDialog::OnOK();
}
void CConnityDlg::OnLbnDblclkList1()
{
OnOK();
}
void CConnityDlg::OnSizing(UINT fwSide, LPRECT pRect)
{
if( pRect->bottom - pRect->top > m_smallestCY
&& pRect->right - pRect->left > m_smallestCX)
CDialog::OnSizing(fwSide, pRect);
else
{
if( pRect->bottom - pRect->top < m_smallestCY) pRect->bottom = pRect->top + m_smallestCY;
if( pRect->right - pRect->left < m_smallestCX) pRect->right = pRect->left + m_smallestCX;
}
}
void CConnityDlg::OnSize(UINT nType, int cx, int cy)
{
CDialog::OnSize(nType, cx, cy);
CRect ls_rect, ok_rect, ca_rect;
if (m_options.GetSafeHwnd() && m_ok.GetSafeHwnd() && m_ca.GetSafeHwnd()) {
m_options.GetWindowRect( &ls_rect);
m_ok.GetWindowRect( &ok_rect);
m_ca.GetWindowRect( &ca_rect);
ScreenToClient( &ls_rect);
ScreenToClient( &ok_rect);
ScreenToClient( &ca_rect);
int width = cx - m_leftPad - m_rightPad;
m_options.SetWindowPos( NULL, m_leftPad, ls_rect.top, width > 20? width: 20, cy - ls_rect.top - 2*ok_rect.Height(), SWP_NOZORDER);
int btn_y = cy - 3* ok_rect.Height()/2;
m_ok.SetWindowPos( 0, ok_rect.left, btn_y, ok_rect.Width(), ok_rect.Height(), SWP_NOZORDER);
m_ca.SetWindowPos( 0, ca_rect.left, btn_y, ca_rect.Width(), ok_rect.Height(), SWP_NOZORDER);
}
}
int CConnityDlg::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (CDialog::OnCreate(lpCreateStruct) == -1)
return -1;
return 0;
}
Index: resource.h
===================================================================
RCS file: /project/gme-repository/GMESRC/GME/Gme/resource.h,v
retrieving revision 1.76
retrieving revision 1.77
diff -C2 -d -r1.76 -r1.77
*** resource.h 13 Feb 2008 21:23:58 -0000 1.76
--- resource.h 18 Mar 2008 19:20:29 -0000 1.77
***************
*** 76,79 ****
--- 76,80 ----
#define IDR_TOOLBAR_NAVIG 213
#define IDD_PART_BROWSER_DIALOG 214
+ #define IDD_CONNECTIVITYDIALOG 216
#define IDC_NAME 1000
#define IDC_TYPENAME 1001
***************
*** 185,188 ****
--- 186,190 ----
#define IDC_STATIC_SVN_SECTION1 1115
#define IDC_PARTBROWSERCTRL1 1116
+ #define IDC_LIST1 1124
#define IDD_PRINT_DIALOG 1538
#define IDD_PRINTSETUP_DIALOG 1539
***************
*** 408,411 ****
--- 410,422 ----
#define ID_VIEW_CLEARCONSOLE 33045
#define ID_MULTIUSER_SUBVERSION 33046
+ #define ID_CONNCNTX_FOLLOW 33048
+ #define ID_CONNCNTX_REVERSE 33050
+ #define ID_CNTX_FOLLOWCONNECTION 33051
+ #define ID_CNTX_REVERSECONNECTION 33053
+ #define ID_JUMPALONGCONN 33055
+ #define ID_BACKALONGCONN 33056
+ #define ID_JUMPTOFIRSTOBJ 33059
+ #define ID_JUMPTONEXTOBJ 33061
+ #define ID_SHOWCONTEXTMENU 33063
#define IDW_TOOLBAR_MAIN 0xE820
#define IDW_TOOLBAR_WINS 0xE821
***************
*** 419,425 ****
#ifndef APSTUDIO_READONLY_SYMBOLS
#define _APS_3D_CONTROLS 1
! #define _APS_NEXT_RESOURCE_VALUE 216
! #define _APS_NEXT_COMMAND_VALUE 33047
! #define _APS_NEXT_CONTROL_VALUE 1124
#define _APS_NEXT_SYMED_VALUE 115
#endif
--- 430,436 ----
#ifndef APSTUDIO_READONLY_SYMBOLS
#define _APS_3D_CONTROLS 1
! #define _APS_NEXT_RESOURCE_VALUE 217
! #define _APS_NEXT_COMMAND_VALUE 33064
! #define _APS_NEXT_CONTROL_VALUE 1125
#define _APS_NEXT_SYMED_VALUE 115
#endif
Index: GME.rc
===================================================================
RCS file: /project/gme-repository/GMESRC/GME/Gme/GME.rc,v
retrieving revision 1.165
retrieving revision 1.166
diff -C2 -d -r1.165 -r1.166
*** GME.rc 13 Feb 2008 21:23:58 -0000 1.165
--- GME.rc 18 Mar 2008 19:20:29 -0000 1.166
***************
*** 164,167 ****
--- 164,169 ----
BUTTON ID_BUTTON33033
BUTTON ID_BUTTON33044
+ BUTTON ID_JUMPALONGCONN
+ BUTTON ID_BACKALONGCONN
END
***************
*** 513,516 ****
--- 515,521 ----
MENUITEM SEPARATOR
MENUITEM "Help", ID_CNTX_HELP
+ MENUITEM SEPARATOR
+ MENUITEM "Jump to Source", ID_CONNCNTX_REVERSE
+ MENUITEM "Jump to Destination", ID_CONNCNTX_FOLLOW
END
END
***************
*** 582,585 ****
--- 587,593 ----
MENUITEM SEPARATOR
MENUITEM "Help", ID_CNTX_HELP
+ MENUITEM SEPARATOR
+ MENUITEM "Jump Back Along Connection", ID_CNTX_REVERSECONNECTION
+ MENUITEM "Jump Along Connection", ID_CNTX_FOLLOWCONNECTION
END
END
***************
*** 637,640 ****
--- 645,649 ----
IDR_GMEVIEW ACCELERATORS
BEGIN
+ "h", ID_BACKALONGCONN, ASCII, NOINVERT
VK_ESCAPE, ID_EDIT_CANCEL, VIRTKEY, NOINVERT
"C", ID_EDIT_COPY, VIRTKEY, CONTROL, NOINVERT
***************
*** 650,658 ****
--- 659,673 ----
"P", ID_FILE_PRINT, VIRTKEY, CONTROL, NOINVERT
VK_F1, ID_HELP_HELP, VIRTKEY, NOINVERT
+ "j", ID_JUMPALONGCONN, ASCII, NOINVERT
+ "f", ID_JUMPTOFIRSTOBJ, ASCII, NOINVERT
+ "n", ID_JUMPTONEXTOBJ, ASCII, NOINVERT
"C", ID_KEY_CONNECT, VIRTKEY, NOINVERT
"A", ID_KEY_CYCLEOBJINSPBKWD, ASCII, NOINVERT
+ "A", ID_KEY_CYCLEOBJINSPBKWD, VIRTKEY, SHIFT, ALT, NOINVERT
"a", ID_KEY_CYCLEOBJINSPFRWD, ASCII, NOINVERT
+ "A", ID_KEY_CYCLEOBJINSPFRWD, VIRTKEY, ALT, NOINVERT
VK_ADD, ID_KEY_ZOOMIN, VIRTKEY, NOINVERT
VK_SUBTRACT, ID_KEY_ZOOMOUT, VIRTKEY, NOINVERT
+ VK_F10, ID_SHOWCONTEXTMENU, VIRTKEY, SHIFT, NOINVERT
"`", ID_VIEW_CYCLEALLASPECTS, ASCII, NOINVERT
VK_TAB, ID_VIEW_CYCLEASPECTKEY, VIRTKEY, NOINVERT
***************
*** 665,670 ****
VK_BACK, ID_VIEW_PARENT, VIRTKEY, NOINVERT
VK_RETURN, ID_VIEW_SHOWSELMODEL, VIRTKEY, NOINVERT
! "A", ID_KEY_CYCLEOBJINSPBKWD, VIRTKEY, SHIFT, ALT, NOINVERT
! "A", ID_KEY_CYCLEOBJINSPFRWD, VIRTKEY, ALT, NOINVERT
END
--- 680,684 ----
VK_BACK, ID_VIEW_PARENT, VIRTKEY, NOINVERT
VK_RETURN, ID_VIEW_SHOWSELMODEL, VIRTKEY, NOINVERT
! VK_APPS, ID_SHOWCONTEXTMENU, VIRTKEY, NOINVERT
END
***************
*** 680,688 ****
FONT 10, "MS Sans Serif", 0, 0, 0x0
BEGIN
! CTEXT "7.9.26",IDC_STATIC,7,65,165,8,SS_NOPREFIX
! CTEXT "Copyright © 2000-2006 Vanderbilt University",IDC_STATIC,
7,135,165,8
DEFPUSHBUTTON "OK",IDOK,65,151,43,12,WS_GROUP
! CTEXT "GENERIC MODELING ENVIRONMENT 7",IDC_STATIC,7,55,165,8
CONTROL 184,IDC_BMPABOUT,"Static",SS_BITMAP | SS_NOTIFY,7,7,165,
45
--- 694,702 ----
FONT 10, "MS Sans Serif", 0, 0, 0x0
BEGIN
! CTEXT GME_VERSION_STR,IDC_STATIC,7,65,165,8,SS_NOPREFIX
! CTEXT "Copyright © 2000-2008 Vanderbilt University",IDC_STATIC,
7,135,165,8
DEFPUSHBUTTON "OK",IDOK,65,151,43,12,WS_GROUP
! CTEXT "GENERIC MODELING ENVIRONMENT 8",IDC_STATIC,7,55,165,8
CONTROL 184,IDC_BMPABOUT,"Static",SS_BITMAP | SS_NOTIFY,7,7,165,
45
***************
*** 1088,1091 ****
--- 1102,1117 ----
END
+ IDD_CONNECTIVITYDIALOG DIALOGEX 0, 0, 220, 86
+ STYLE DS_SETFONT | DS_FIXEDSYS | WS_POPUP | WS_CAPTION | WS_SYSMENU |
+ WS_THICKFRAME
+ CAPTION "Select where to jump"
+ FONT 8, "MS Shell Dlg", 400, 0, 0x1
+ BEGIN
+ LISTBOX IDC_LIST1,7,7,206,53,LBS_NOINTEGRALHEIGHT | WS_VSCROLL |
+ WS_TABSTOP
+ DEFPUSHBUTTON "OK",IDOK,50,65,50,14
+ PUSHBUTTON "Cancel",IDCANCEL,124,65,50,14
+ END
+
/////////////////////////////////////////////////////////////////////////////
***************
*** 1284,1287 ****
--- 1310,1321 ----
BOTTOMMARGIN, 83
END
+
+ IDD_CONNECTIVITYDIALOG, DIALOG
+ BEGIN
+ LEFTMARGIN, 7
+ RIGHTMARGIN, 213
+ TOPMARGIN, 7
+ BOTTOMMARGIN, 79
+ END
END
#endif // APSTUDIO_INVOKED
***************
*** 1334,1337 ****
--- 1368,1372 ----
END
+
/////////////////////////////////////////////////////////////////////////////
//
***************
*** 1632,1635 ****
--- 1667,1672 ----
ID_BUTTON33044 "Next Window\nNext Window"
ID_VIEW_CLEARCONSOLE "Clears Console Contents\nClears Console Contents"
+ ID_JUMPALONGCONN "Jump Along Connection\nJump Along Connection"
+ ID_BACKALONGCONN "Jump Back Along Connection\nJump Back Along Connection"
END
More information about the GME-commit
mailing list