[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