[GME-commit]
GMESRC/GME/GMEActiveBrowser TreeCtrlEx.cpp,1.3,1.4 MgaMap.h,1.1,1.2
MgaMap.cpp,1.1,1.2 GMEActiveBrowserCtl.h,1.5,1.6
GMEActiveBrowserCtl.cpp,1.11,1.12 GMEActiveBrowser.odl,1.4,1.5
ActiveBrowserPropertyPage.h,1.10,1.11
ActiveBrowserPropertyPage.cpp,1.37,1.38
gme-commit at list.isis.vanderbilt.edu
gme-commit at list.isis.vanderbilt.edu
Wed Jan 12 11:54:03 CST 2005
- Previous message: [GME-commit]
GMESRC/GME/Gme sizecbar.h,1.1,1.2 ScrollZoomView.cpp,1.16,1.17
PartBrowser.h,1.3,1.4 PanningWindow.h,1.4,1.5 GMEOLEPanel.h,1.2,1.3
GMEOLEPanel.cpp,1.3,1.4 GMEOLEModel.h,1.3,1.4
GMEOLEModel.cpp,1.6,1.7 GMEOLEApp.h,1.4,1.5 GMEOLEApp.cpp,1.8,1.9
GMEObjectInspector.h,1.6,1.7 GMEDoc.h,1.11,1.12
GMEDoc.cpp,1.25,1.26 GMEConsole.h,1.2,1.3 GMEBrowser.h,1.8,1.9
GMEBrowser.cpp,1.28,1.29 gmeactivebrowser.h,1.2,1.3
gmeactivebrowser.cpp,1.1,1.2
- Next message: [GME-commit]
GMESRC/GME/Interfaces InterfaceVersion.h,1.54,1.55 Gme.idl,1.15,1.16
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
Update of /var/lib/gme/GMESRC/GME/GMEActiveBrowser
In directory braindrain:/tmp/cvs-serv29444
Modified Files:
TreeCtrlEx.cpp MgaMap.h MgaMap.cpp GMEActiveBrowserCtl.h
GMEActiveBrowserCtl.cpp GMEActiveBrowser.odl
ActiveBrowserPropertyPage.h ActiveBrowserPropertyPage.cpp
Log Message:
Extended interface for scripting
CVS User: bogyom
Index: TreeCtrlEx.cpp
===================================================================
RCS file: /var/lib/gme/GMESRC/GME/GMEActiveBrowser/TreeCtrlEx.cpp,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -d -r1.3 -r1.4
*** TreeCtrlEx.cpp 29 Oct 2004 15:58:13 -0000 1.3
--- TreeCtrlEx.cpp 12 Jan 2005 17:54:00 -0000 1.4
***************
*** 421,425 ****
{
// Clear selection of all "multiple selected" items first
! ClearSelection();
// Then select the clicked item
--- 421,425 ----
{
// Clear selection of all "multiple selected" items first
! ClearSelection(TRUE);
// Then select the clicked item
***************
*** 806,815 ****
void CTreeCtrlEx::ClearSelection(BOOL bMultiOnly/*=FALSE*/)
{
if ( !bMultiOnly )
! SelectItem( NULL );
for ( HTREEITEM hItem=GetRootItem(); hItem!=NULL; hItem=GetNextVisibleItem( hItem ) )
if ( GetItemState( hItem, TVIS_SELECTED ) & TVIS_SELECTED )
SetItemState( hItem, 0, TVIS_SELECTED );
}
--- 806,818 ----
void CTreeCtrlEx::ClearSelection(BOOL bMultiOnly/*=FALSE*/)
{
+ // TZS - entropia decreased
if ( !bMultiOnly )
! return;
! // SelectItem( NULL );
for ( HTREEITEM hItem=GetRootItem(); hItem!=NULL; hItem=GetNextVisibleItem( hItem ) )
if ( GetItemState( hItem, TVIS_SELECTED ) & TVIS_SELECTED )
SetItemState( hItem, 0, TVIS_SELECTED );
+ SelectItem( NULL );
}
Index: MgaMap.h
===================================================================
RCS file: /var/lib/gme/GMESRC/GME/GMEActiveBrowser/MgaMap.h,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -d -r1.1 -r1.2
*** MgaMap.h 1 Mar 2002 21:53:00 -0000 1.1
--- MgaMap.h 12 Jan 2005 17:54:00 -0000 1.2
***************
*** 26,29 ****
--- 26,30 ----
BOOL RemoveObjectProxy(CMgaObjectProxy MgaObjectProxy);
BOOL RemoveTreeItem( HTREEITEM hTreeItem);
+ BOOL SearchTreeItem(BSTR Id, HTREEITEM &hTreeItem, IUnknown* &punk);
BOOL LookupTreeItem(CMgaObjectProxy MgaObjectProxy, HTREEITEM& hTreeItem);
BOOL LookupTreeItem(LPUNKNOWN pUnknown, HTREEITEM &hTreeItem);
Index: MgaMap.cpp
===================================================================
RCS file: /var/lib/gme/GMESRC/GME/GMEActiveBrowser/MgaMap.cpp,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -d -r1.1 -r1.2
*** MgaMap.cpp 1 Mar 2002 21:53:00 -0000 1.1
--- MgaMap.cpp 12 Jan 2005 17:54:00 -0000 1.2
***************
*** 23,26 ****
--- 23,27 ----
#include "gmeactivebrowser.h"
#include "MgaMap.h"
+ #include <comdef.h>
#ifdef _DEBUG
***************
*** 175,178 ****
--- 176,213 ----
}
+
+ _COM_SMARTPTR_TYPEDEF(IMgaObject, __uuidof(IMgaObject));
+
+ BOOL CMgaMap::SearchTreeItem(BSTR Id, HTREEITEM &hTreeItem, IUnknown* &punk)
+ {
+ // read all looking for the ID
+
+ LPUNKNOWN nKey;
+ CMgaObjectProxyMapItem * pt;
+ POSITION pos = m_MapObject2Item.GetStartPosition();
+ bool found = false;
+ while (pos != NULL)
+ {
+ m_MapObject2Item.GetNextAssoc( pos, nKey, pt);
+ IMgaObjectPtr mgao(nKey);
+ IUnknownPtr punkptr(nKey);
+
+ punk = punkptr;
+ BSTR oid = NULL;
+ mgao->get_ID(&oid);
+ _bstr_t boid(oid, false);
+ _bstr_t bid = (char*)Id;
+ if (bid == boid)
+ {
+ found = true;
+ break;
+ }
+ }
+
+ if(found)
+ hTreeItem = pt->m_hTreeItem;
+
+ return (found);
+ }
Index: GMEActiveBrowserCtl.h
===================================================================
RCS file: /var/lib/gme/GMESRC/GME/GMEActiveBrowser/GMEActiveBrowserCtl.h,v
retrieving revision 1.5
retrieving revision 1.6
diff -C2 -d -r1.5 -r1.6
*** GMEActiveBrowserCtl.h 18 Nov 2002 20:09:00 -0000 1.5
--- GMEActiveBrowserCtl.h 12 Jan 2005 17:54:00 -0000 1.6
***************
*** 81,84 ****
--- 81,92 ----
afx_msg LPUNKNOWN GetSelectedMgaObjects();
afx_msg void OpenProject(LPCTSTR pProjectName);
+
+ afx_msg void FocusItem(BSTR Id);
+ afx_msg void OpenItem(BSTR Id);
+ afx_msg void OpenSubtree(BSTR Id);
+ afx_msg void CloseSubtree(BSTR Id);
+ afx_msg void Up();
+ afx_msg void Down();
+ afx_msg void ChangePropPage(browser_page page);
//}}AFX_DISPATCH
DECLARE_DISPATCH_MAP()
***************
*** 102,105 ****
--- 110,120 ----
dispidGetSelectedMgaObjects = 4L,
dispidOpenProject = 5L,
+ dispidFocusItem = 6L,
+ dispidOpenItem = 7L,
+ dispidOpenSubtree = 8L,
+ dispidCloseSubtree = 9L,
+ dispidUp = 10L,
+ dispidDown = 11L,
+ dispidChangePropPage = 12L,
eventidDblClickMgaObject = 1L,
eventidShowAttributes = 2L,
Index: GMEActiveBrowserCtl.cpp
===================================================================
RCS file: /var/lib/gme/GMESRC/GME/GMEActiveBrowser/GMEActiveBrowserCtl.cpp,v
retrieving revision 1.11
retrieving revision 1.12
diff -C2 -d -r1.11 -r1.12
*** GMEActiveBrowserCtl.cpp 14 Sep 2004 14:13:31 -0000 1.11
--- GMEActiveBrowserCtl.cpp 12 Jan 2005 17:54:00 -0000 1.12
***************
*** 44,47 ****
--- 44,54 ----
DISP_FUNCTION(CGMEActiveBrowserCtrl, "GetSelectedMgaObjects", GetSelectedMgaObjects, VT_UNKNOWN, VTS_NONE)
DISP_FUNCTION(CGMEActiveBrowserCtrl, "OpenProject", OpenProject, VT_EMPTY, VTS_BSTR)
+ DISP_FUNCTION(CGMEActiveBrowserCtrl, "FocusItem", FocusItem, VT_EMPTY, VTS_BSTR)
+ DISP_FUNCTION(CGMEActiveBrowserCtrl, "OpenItem", OpenItem, VT_EMPTY, VTS_BSTR)
+ DISP_FUNCTION(CGMEActiveBrowserCtrl, "OpenSubtree", OpenSubtree, VT_EMPTY, VTS_BSTR)
+ DISP_FUNCTION(CGMEActiveBrowserCtrl, "CloseSubtree", CloseSubtree, VT_EMPTY, VTS_BSTR)
+ DISP_FUNCTION(CGMEActiveBrowserCtrl, "Up", Up, VT_EMPTY, VTS_NONE)
+ DISP_FUNCTION(CGMEActiveBrowserCtrl, "Down", Down, VT_EMPTY, VTS_NONE)
+ DISP_FUNCTION(CGMEActiveBrowserCtrl, "ChangePropPage", ChangePropPage, VT_EMPTY, VTS_I2)
//}}AFX_DISPATCH_MAP
END_DISPATCH_MAP()
***************
*** 403,406 ****
--- 410,465 ----
+ void CGMEActiveBrowserCtrl::FocusItem(BSTR Id)
+ {
+ m_pPropFrame->m_pModelessPropSheet->m_PageAggregate.GotoIUnk(Id);
+ }
+
+
+ void CGMEActiveBrowserCtrl::OpenItem(BSTR Id)
+ {
+ // focus + enter
+ m_pPropFrame->m_pModelessPropSheet->m_PageAggregate.GotoIUnk(Id);
+ m_pPropFrame->m_pModelessPropSheet->m_PageAggregate.m_TreeAggregate.SendMessage(WM_KEYDOWN, (WPARAM)VK_RETURN, (LPARAM)0);
+ }
+
+ void CGMEActiveBrowserCtrl::OpenSubtree(BSTR Id)
+ {
+ // focus + '+'
+ m_pPropFrame->m_pModelessPropSheet->m_PageAggregate.GotoIUnk(Id);
+ m_pPropFrame->m_pModelessPropSheet->m_PageAggregate.m_TreeAggregate.SendMessage(WM_KEYDOWN, (WPARAM)107, (LPARAM)0);
+ }
+
+ void CGMEActiveBrowserCtrl::CloseSubtree(BSTR Id)
+ {
+ // focus + '-'
+ m_pPropFrame->m_pModelessPropSheet->m_PageAggregate.GotoIUnk(Id);
+ m_pPropFrame->m_pModelessPropSheet->m_PageAggregate.m_TreeAggregate.SendMessage(WM_KEYDOWN, (WPARAM)109, (LPARAM)0);
+ }
+
+ void CGMEActiveBrowserCtrl::Up()
+ {
+ m_pPropFrame->m_pModelessPropSheet->m_PageAggregate.m_TreeAggregate.SendMessage(WM_KEYDOWN, (WPARAM)VK_UP, (LPARAM)0);
+ }
+
+ void CGMEActiveBrowserCtrl::Down()
+ {
+ m_pPropFrame->m_pModelessPropSheet->m_PageAggregate.m_TreeAggregate.SendMessage(WM_KEYDOWN, (WPARAM)VK_DOWN, (LPARAM)0);
+ }
+
+ void CGMEActiveBrowserCtrl::ChangePropPage(browser_page page)
+ {
+ switch (page)
+ {
+ case MODE_AGGRE:
+ m_pPropFrame->m_pModelessPropSheet->SetActivePage(0);
+ break;
+ case MODE_INHERI:
+ m_pPropFrame->m_pModelessPropSheet->SetActivePage(1);
+ break;
+ case MODE_META:
+ m_pPropFrame->m_pModelessPropSheet->SetActivePage(2);
+ break;
+ }
+ }
void CGMEActiveBrowserCtrl::OnMgaObjectEvent(IMgaObject * obj, unsigned long eventmask, VARIANT v)
Index: GMEActiveBrowser.odl
===================================================================
RCS file: /var/lib/gme/GMESRC/GME/GMEActiveBrowser/GMEActiveBrowser.odl,v
retrieving revision 1.4
retrieving revision 1.5
diff -C2 -d -r1.4 -r1.5
*** GMEActiveBrowser.odl 18 Nov 2002 20:09:00 -0000 1.4
--- GMEActiveBrowser.odl 12 Jan 2005 17:54:00 -0000 1.5
***************
*** 8,11 ****
--- 8,12 ----
#include <idispids.h>
+
[ uuid(FDA9EDB8-ED6A-468F-A3A9-E9361FEED051), version(1.0),
helpfile("GMEActiveBrowser.hlp"),
***************
*** 17,20 ****
--- 18,27 ----
importlib(STDTYPE_TLB);
+ typedef enum browser_page{
+ MODE_AGGRE = 0,
+ MODE_INHERI = 1,
+ MODE_META = 2,
+ } browser_page;
+
// Primary dispatch interface for CGMEActiveBrowserCtrl
***************
*** 38,41 ****
--- 45,55 ----
[id(4)] IUnknown* GetSelectedMgaObjects();
[id(5)] void OpenProject(BSTR pProjectName);
+ [id(6)] void FocusItem(BSTR Id);
+ [id(7)] void OpenItem(BSTR Id);
+ [id(8)] void OpenSubtree(BSTR Id);
+ [id(9)] void CloseSubtree(BSTR Id);
+ [id(10)] void Up();
+ [id(11)] void Down();
+ [id(12)] void ChangePropPage(browser_page);
//}}AFX_ODL_METHOD
};
Index: ActiveBrowserPropertyPage.h
===================================================================
RCS file: /var/lib/gme/GMESRC/GME/GMEActiveBrowser/ActiveBrowserPropertyPage.h,v
retrieving revision 1.10
retrieving revision 1.11
diff -C2 -d -r1.10 -r1.11
*** ActiveBrowserPropertyPage.h 29 Oct 2004 17:33:07 -0000 1.10
--- ActiveBrowserPropertyPage.h 12 Jan 2005 17:54:00 -0000 1.11
***************
*** 43,46 ****
--- 43,47 ----
CAggregateOptions m_Options;
+ void GotoIUnk(BSTR Id);
void Refresh();
void OnMgaEvent(CComPtr<IMgaObject> ccpMgaObject, unsigned long lEventMask);
***************
*** 92,95 ****
--- 93,97 ----
afx_msg void OnSearch();
afx_msg void OnBeginDragTreeAggregate(NMHDR* pNMHDR, LRESULT* pResult);
+ afx_msg void OnKillFocus(CWnd* pNewWnd);
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
Index: ActiveBrowserPropertyPage.cpp
===================================================================
RCS file: /var/lib/gme/GMESRC/GME/GMEActiveBrowser/ActiveBrowserPropertyPage.cpp,v
retrieving revision 1.37
retrieving revision 1.38
diff -C2 -d -r1.37 -r1.38
*** ActiveBrowserPropertyPage.cpp 29 Oct 2004 17:33:07 -0000 1.37
--- ActiveBrowserPropertyPage.cpp 12 Jan 2005 17:54:00 -0000 1.38
***************
*** 11,14 ****
--- 11,15 ----
#include "..\Gme\GMEOLEData.h"
#include "AttachLibDlg.h"
+ #include <comdef.h>
#include "CommonMfc.h"
***************
*** 85,88 ****
--- 86,90 ----
ON_BN_CLICKED(IDC_SEARCH, OnSearch)
ON_NOTIFY(TVN_BEGINDRAG, IDC_TREE_AGGREGATE, OnBeginDragTreeAggregate)
+ ON_WM_KILLFOCUS()
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
***************
*** 1661,1665 ****
{
m_TreeAggregate.EnsureVisible(hNewItem);
! m_TreeAggregate.ClearSelection();
m_TreeAggregate.SelectItem(hNewItem);
m_TreeAggregate.SetFocus();
--- 1663,1667 ----
{
m_TreeAggregate.EnsureVisible(hNewItem);
! m_TreeAggregate.ClearSelection(TRUE);
m_TreeAggregate.SelectItem(hNewItem);
m_TreeAggregate.SetFocus();
***************
*** 1979,1983 ****
--- 1981,2058 ----
+ void CAggregatePropertyPage::GotoIUnk(BSTR Id)
+ {
+ bool worked = false;
+ IUnknown *pUnknown = NULL;
+ CGMEActiveBrowserApp* pApp=(CGMEActiveBrowserApp*)AfxGetApp();
+ CMgaContext* pMgaContext=&pApp->m_CurrentProject.m_MgaContext;
+ MSGTRY{
+ // Starting transaction
+ pMgaContext->BeginTransaction();
+ HTREEITEM hNewItem;
+ if(m_TreeAggregate.m_MgaMap.SearchTreeItem(Id,hNewItem, pUnknown))
+ {
+ m_TreeAggregate.EnsureVisible(hNewItem);
+ m_TreeAggregate.ClearSelection(TRUE);
+ m_TreeAggregate.SelectItem(hNewItem);
+ m_TreeAggregate.SetFocus();
+ m_TreeAggregate.Invalidate();
+ worked = true;
+ }
+ else // expand the tree until item reached
+ {
+ _bstr_t id;
+ _bstr_t bId = (char*)Id;
+ CComPtr<IMgaObject> iitem;
+ CComPtr<IMgaFCO> fiitem;
+ _bstr_t item[100];
+ int itemcount = 0;
+ CComPtr<IMgaObject> parent;
+
+ pMgaContext->BeginTransaction();
+ CComPtr<IMgaProject> project = pMgaContext->m_ccpProject;
+ COMTHROW(project->GetFCOByID((wchar_t*)bId, &fiitem));
+ fiitem.QueryInterface(&iitem);
+ item[itemcount++] = Id;
+ do
+ {
+ COMTHROW(iitem->GetParent(&parent));
+ BSTR bstrid = NULL;
+ COMTHROW(parent->get_ID(&bstrid));
+ id = bstrid;
+ item[itemcount++] = id;
+ iitem = parent;
+ parent.Release();
+ } while (!m_TreeAggregate.m_MgaMap.SearchTreeItem((wchar_t*)((char*)id),hNewItem, pUnknown));
+ pMgaContext->CommitTransaction();
+ // open the parents in backward order
+ worked = true;
+ m_TreeAggregate.EnsureVisible(hNewItem);
+ m_TreeAggregate.ClearSelection(TRUE);
+ m_TreeAggregate.SelectItem(hNewItem);
+ m_TreeAggregate.SendMessage(WM_KEYDOWN, (WPARAM)107, (LPARAM)0);
+ for (itemcount-=2; itemcount > 0; itemcount--)
+ {
+ if (m_TreeAggregate.m_MgaMap.SearchTreeItem((wchar_t*)((char*)item[itemcount]),hNewItem, pUnknown))
+ {
+ m_TreeAggregate.EnsureVisible(hNewItem);
+ m_TreeAggregate.ClearSelection(TRUE);
+ m_TreeAggregate.SelectItem(hNewItem);
+ m_TreeAggregate.SendMessage(WM_KEYDOWN, (WPARAM)107, (LPARAM)0);
+ }
+ }
+ if (m_TreeAggregate.m_MgaMap.SearchTreeItem(item[0],hNewItem, pUnknown))
+ {
+ m_TreeAggregate.EnsureVisible(hNewItem);
+ m_TreeAggregate.ClearSelection(TRUE);
+ m_TreeAggregate.SelectItem(hNewItem);
+ }
+ }
+ pMgaContext->CommitTransaction ();
+ }MSGCATCH("Error completing the operation",pMgaContext->AbortTransaction();)
+ if (worked)
+ pApp->GetCtrl()->FireClickMgaObject(pUnknown);
+ }
***************
*** 3067,3069 ****
! }
\ No newline at end of file
--- 3142,3153 ----
! }
!
! void CAggregatePropertyPage::OnKillFocus(CWnd* pNewWnd)
! {
! CPropertyPageEx::OnKillFocus(pNewWnd);
! HTREEITEM hItem=m_TreeAggregate.GetFirstSelectedItem();
!
! // TODO: Add your message handler code here
!
! }
- Previous message: [GME-commit]
GMESRC/GME/Gme sizecbar.h,1.1,1.2 ScrollZoomView.cpp,1.16,1.17
PartBrowser.h,1.3,1.4 PanningWindow.h,1.4,1.5 GMEOLEPanel.h,1.2,1.3
GMEOLEPanel.cpp,1.3,1.4 GMEOLEModel.h,1.3,1.4
GMEOLEModel.cpp,1.6,1.7 GMEOLEApp.h,1.4,1.5 GMEOLEApp.cpp,1.8,1.9
GMEObjectInspector.h,1.6,1.7 GMEDoc.h,1.11,1.12
GMEDoc.cpp,1.25,1.26 GMEConsole.h,1.2,1.3 GMEBrowser.h,1.8,1.9
GMEBrowser.cpp,1.28,1.29 gmeactivebrowser.h,1.2,1.3
gmeactivebrowser.cpp,1.1,1.2
- Next message: [GME-commit]
GMESRC/GME/Interfaces InterfaceVersion.h,1.54,1.55 Gme.idl,1.15,1.16
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
More information about the GME-commit
mailing list