[commit] r1972 - trunk/GME/Gme

GMESRC Repository Notifications gme-commit at list.isis.vanderbilt.edu
Fri Jul 20 14:50:31 CDT 2012


Author: ksmyth
Date: Fri Jul 20 14:50:31 2012
New Revision: 1972

Log:
Display DispayName in "Insert New Model" context, if there is only one Role

Modified:
   trunk/GME/Gme/DynMenu.cpp
   trunk/GME/Gme/DynMenu.h
   trunk/GME/Gme/GuiMeta.cpp
   trunk/GME/Gme/StdAfx.cpp

Modified: trunk/GME/Gme/DynMenu.cpp
==============================================================================
--- trunk/GME/Gme/DynMenu.cpp	Thu Jul 19 14:37:09 2012	(r1971)
+++ trunk/GME/Gme/DynMenu.cpp	Fri Jul 20 14:50:31 2012	(r1972)
@@ -4,7 +4,7 @@
 
 ////////////////////////////// CDynMenu /////////////////////////////
 
-CDynMenu::CDynMenu(int iden, char* nm) : id(iden), name(nm)
+CDynMenu::CDynMenu(int iden, TCHAR* nm) : id(iden), name(nm)
 {
 	menu.CreatePopupMenu();
 	minID = maxID = -1;
@@ -14,12 +14,12 @@
 {
 }
 
-void CDynMenu::AddItem(int id, const CString& roleName, const CString& displayName, const CString& helpMsg)
+void CDynMenu::AddItem(int id, CString&& roleName, CString&& displayName, CString&& helpMsg)
 {
 	if(minID < 0)
 		minID = id;
 	maxID = id;
-	std::unique_ptr<CDynMenuItem> item(new CDynMenuItem(id, roleName, helpMsg));
+	std::unique_ptr<CDynMenuItem> item(new CDynMenuItem(id, std::move(roleName), std::move(displayName), std::move(helpMsg)));
 	items.push_back(std::move(item));
 }
 
@@ -31,7 +31,7 @@
 	);
 	for (auto it = items.begin(); it != items.end(); it++)
 	{
-		menu.AppendMenu(MF_ENABLED | MF_UNCHECKED | MF_STRING, (**it).id, (**it).label);
+		menu.AppendMenu(MF_ENABLED | MF_UNCHECKED | MF_STRING, (**it).id, (**it).displayName);
 	}
 }
 

Modified: trunk/GME/Gme/DynMenu.h
==============================================================================
--- trunk/GME/Gme/DynMenu.h	Thu Jul 19 14:37:09 2012	(r1971)
+++ trunk/GME/Gme/DynMenu.h	Fri Jul 20 14:50:31 2012	(r1972)
@@ -4,11 +4,12 @@
 class CDynMenuItem {
 	friend class CDynMenu;
 public:
-	CDynMenuItem(int iden, const CString& lab, const CString& hmsg) : id(iden), label(lab), helpMsg(hmsg) {}
+	CDynMenuItem(int iden, CString&& lab, CString&& dName, CString&& hmsg) : id(iden), label(std::move(lab)), displayName(std::move(dName)), helpMsg(std::move(hmsg)) {}
 protected:
 	int id;
 	CString label;		// contains RoleNames actually
 	CString helpMsg;
+	CString displayName;
 public:
 	CString& GetLabel()		{ return label; }
 	CString& GetHelpMsg()	{ return helpMsg; }
@@ -16,7 +17,7 @@
 
 class CDynMenu {
 public:
-	CDynMenu(int iden, char *nm);
+	CDynMenu(int iden, TCHAR *nm);
 	~CDynMenu();
 protected:
 	int id;
@@ -33,7 +34,7 @@
 	bool IsEmpty() const		{ return items.size() == 0; }
 	int GetCount() const		{ return items.size(); }
 
-	void AddItem(int id, const CString& roleName, const CString& displayName, const CString& helpMsg);
+	void AddItem(int id, CString&& roleName, CString&& displayName, CString&& helpMsg);
 	CDynMenuItem* FindItem(int id);
 	void Sort();
 };

Modified: trunk/GME/Gme/GuiMeta.cpp
==============================================================================
--- trunk/GME/Gme/GuiMeta.cpp	Thu Jul 19 14:37:09 2012	(r1971)
+++ trunk/GME/Gme/GuiMeta.cpp	Fri Jul 20 14:50:31 2012	(r1972)
@@ -581,49 +581,37 @@
 			VARIANT_BOOL prim;
 			COMTHROW(mmPart->get_IsPrimary(&prim));
 			if(prim != VARIANT_FALSE) {
-				CComPtr<IMgaMetaRole> mmRole;
-				COMTHROW(mmPart->get_Role(&mmRole));
-				CComPtr<IMgaMetaFCO> kind;
-				COMTHROW(mmRole->get_Kind(&kind));
 
+				CString roleName = static_cast<const TCHAR*>(mmPart->Role->Name);
 				CString label;
-				CComBSTR bstrKindName;
-				COMTHROW(kind->get_Name(&bstrKindName));
-				CComBSTR bstrRoleName;
-				COMTHROW(mmRole->get_Name(&bstrRoleName));
-				if (bstrKindName == bstrRoleName) {
-					CComBSTR bstrDisplayedName;
-					COMTHROW(kind->get_DisplayedName(&bstrDisplayedName));
-					CopyTo(bstrDisplayedName,label);
+				if (mmPart->Role->Kind->Name == mmPart->Role->Name) {
+					label = static_cast<const TCHAR*>(mmPart->Role->Kind->DisplayedName);
 				}
 				else {
-					CopyTo(bstrRoleName,label);
+					label = static_cast<const TCHAR*>(mmPart->Role->Name);
 				}
-				CString roleName;
-				CopyTo(bstrRoleName, roleName);
 
-				objtype_enum type;
-				COMTHROW(kind->get_ObjType(&type));
+				objtype_enum type = mmPart->Role->Kind->ObjType;
 				switch(type) {
 					case OBJTYPE_MODEL:
 						if (!insertModelMenu)
-							insertModelMenu = new CDynMenu(CGuiMetaProject::theInstance->GetNewMenuCmdID(), "Insert New Model");
-						insertModelMenu->AddItem(CGuiMetaProject::theInstance->GetNewMenuCmdID(), roleName, label, "Help");
+							insertModelMenu = new CDynMenu(CGuiMetaProject::theInstance->GetNewMenuCmdID(), _T("Insert New Model"));
+						insertModelMenu->AddItem(CGuiMetaProject::theInstance->GetNewMenuCmdID(), std::move(roleName), std::move(label), CString(_T("Help")));
 						break;
 					case OBJTYPE_ATOM:
 						if (!insertAtomMenu)
-							insertAtomMenu = new CDynMenu(CGuiMetaProject::theInstance->GetNewMenuCmdID(), "Insert New Atom");
-						insertAtomMenu->AddItem(CGuiMetaProject::theInstance->GetNewMenuCmdID(), roleName, label, "Help");
+							insertAtomMenu = new CDynMenu(CGuiMetaProject::theInstance->GetNewMenuCmdID(), _T("Insert New Atom"));
+						insertAtomMenu->AddItem(CGuiMetaProject::theInstance->GetNewMenuCmdID(), std::move(roleName), std::move(label), CString(_T("Help")));
 						break;
 					case OBJTYPE_REFERENCE:
 						if (!insertReferenceMenu)
-							insertReferenceMenu = new CDynMenu(CGuiMetaProject::theInstance->GetNewMenuCmdID(), "Insert New Reference");
-						insertReferenceMenu->AddItem(CGuiMetaProject::theInstance->GetNewMenuCmdID(), roleName, label, "Help");
+							insertReferenceMenu = new CDynMenu(CGuiMetaProject::theInstance->GetNewMenuCmdID(), _T("Insert New Reference"));
+						insertReferenceMenu->AddItem(CGuiMetaProject::theInstance->GetNewMenuCmdID(), std::move(roleName), std::move(label), CString(_T("Help")));
 						break;
 					case OBJTYPE_SET:
 						if (!insertSetMenu)
-							insertSetMenu = new CDynMenu(CGuiMetaProject::theInstance->GetNewMenuCmdID(), "Insert New Set");
-						insertSetMenu->AddItem(CGuiMetaProject::theInstance->GetNewMenuCmdID(), roleName, label, "Help");
+							insertSetMenu = new CDynMenu(CGuiMetaProject::theInstance->GetNewMenuCmdID(), _T("Insert New Set"));
+						insertSetMenu->AddItem(CGuiMetaProject::theInstance->GetNewMenuCmdID(), std::move(roleName), std::move(label), CString(_T("Help")));
 						break;
 				}
 			}
@@ -631,6 +619,10 @@
 		MGACOLL_ITERATE_END;
 	}
 	catch(hresult_exception &) {
+		// FIXME
+	}
+	catch (_com_error& ) {
+		// FIXME
 	}
 	if (insertModelMenu)
 		insertModelMenu->Sort();

Modified: trunk/GME/Gme/StdAfx.cpp
==============================================================================
--- trunk/GME/Gme/StdAfx.cpp	Thu Jul 19 14:37:09 2012	(r1971)
+++ trunk/GME/Gme/StdAfx.cpp	Fri Jul 20 14:50:31 2012	(r1972)
@@ -5,5 +5,6 @@
 #include "stdafx.h"
 
 #import "MgaUtilLib.tlb" implementation_only no_namespace raw_method_prefix("") high_method_prefix("__") no_registry
+#import "MetaLib.tlb" implementation_only no_namespace raw_method_prefix("") high_method_prefix("__") no_registry
 
 


More information about the gme-commit mailing list