[GME-commit] GMESRC/GME/Gme GME.rc,1.139,1.140 GMEView.cpp,1.165,1.166 GMEView.h,1.67,1.68 resource.h,1.64,1.65

gme-commit at list.isis.vanderbilt.edu gme-commit at list.isis.vanderbilt.edu
Fri Jun 17 04:36:03 CDT 2005


Update of /project/gme-repository/GMESRC/GME/Gme
In directory escher:/tmp/cvs-serv5182

Modified Files:
	GME.rc GMEView.cpp GMEView.h resource.h 
Log Message:
Namelocation preference can be set from the context menu.


CVS User: Zoltan Molnar, ISIS (zolmol)

Index: GMEView.cpp
===================================================================
RCS file: /project/gme-repository/GMESRC/GME/Gme/GMEView.cpp,v
retrieving revision 1.165
retrieving revision 1.166
diff -C2 -d -r1.165 -r1.166
*** GMEView.cpp	8 Jun 2005 00:27:05 -0000	1.165
--- GMEView.cpp	17 Jun 2005 03:36:01 -0000	1.166
***************
*** 395,398 ****
--- 395,406 ----
  	ON_UPDATE_COMMAND_UI( ID_CNTX_DSTAR_SET, OnUpdateCntxAutoRouters )
  	ON_COMMAND(ID_PRINT_METAFILE, OnPrintMetafile)
+ 	ON_COMMAND(ID_CNTX_NMPOS_SOUTH, OnCntxNamePositionSouth)
+ 	ON_COMMAND(ID_CNTX_NMPOS_NORTH, OnCntxNamePositionNorth)
+ 	ON_COMMAND(ID_CNTX_NMPOS_EAST, OnCntxNamePositionEast)
+ 	ON_COMMAND(ID_CNTX_NMPOS_WEST, OnCntxNamePositionWest)
+ 	ON_UPDATE_COMMAND_UI( ID_CNTX_NMPOS_SOUTH, OnUpdateCntxNamePositionSouth )
+ 	ON_UPDATE_COMMAND_UI( ID_CNTX_NMPOS_NORTH, OnUpdateCntxNamePositionNorth )
+ 	ON_UPDATE_COMMAND_UI( ID_CNTX_NMPOS_EAST, OnUpdateCntxNamePositionEast )
+ 	ON_UPDATE_COMMAND_UI( ID_CNTX_NMPOS_WEST, OnUpdateCntxNamePositionWest )
  	//}}AFX_MSG_MAP
  	// Standard printing commands
***************
*** 6455,6457 ****
--- 6463,6660 ----
  }
  
+ void CGMEView::OnCntxNamePositionNorth()
+ {
+ 	changeNamePosition(0);
+ }
+ void CGMEView::OnCntxNamePositionEast()
+ {
+ 	changeNamePosition(2);
+ }
+ void CGMEView::OnCntxNamePositionSouth()
+ {
+ 	changeNamePosition(4);
+ }
+ void CGMEView::OnCntxNamePositionWest()
+ {
+ 	changeNamePosition(6);
+ }
+ void CGMEView::OnUpdateCntxNamePositionNorth( CCmdUI* pCmdUI )
+ {
+ 	updateNamePositionMenuItem( pCmdUI, 0);
+ }
+ void CGMEView::OnUpdateCntxNamePositionEast( CCmdUI* pCmdUI )
+ {
+ 	updateNamePositionMenuItem( pCmdUI, 2);
+ }
+ void CGMEView::OnUpdateCntxNamePositionSouth( CCmdUI* pCmdUI )
+ {
+ 	updateNamePositionMenuItem( pCmdUI, 4);
+ }
+ void CGMEView::OnUpdateCntxNamePositionWest( CCmdUI* pCmdUI )
+ {
+ 	updateNamePositionMenuItem( pCmdUI, 6);
+ }
+ void CGMEView::updateNamePositionMenuItem( CCmdUI* pCmdUI, int p_this_value )
+ {
+ 	CGMEEventLogger::LogGMEEvent("CGMEView::updateNamePositionMenuItem\r\n");
+ 
+ 	ASSERT(p_this_value == 0 || p_this_value == 2 || p_this_value == 4 || p_this_value == 6);
+ 
+ 	bool any_sel = !selected.IsEmpty();
+ 	pCmdUI->Enable( any_sel);
+ 	if( !any_sel) return;
+ 
+ 	// calculate the common selected namePos attribute value of the selected objects
+ 	int common_value( -1);
+ 	bool all_equal( true);
+ 
+ 	try {
+ 		BeginTransaction();
+ 
+ 		bool first_value( true), res;
+ 		POSITION pos = selected.GetHeadPosition();
+ 		while(pos && all_equal) {
+ 			CGuiObject *obj = selected.GetNext(pos);
+ 			int v( -1);
+ 
+ 			if( obj && obj->mgaFco)
+ 				res = getNamePositionVal( obj->mgaFco, &v);
+ 
+ 			if( first_value)
+ 			{
+ 				common_value = v;
+ 				first_value = false;
+ 			}
+ 			all_equal = all_equal && res && common_value == v && common_value == p_this_value;
+ 		}
+ 
+ 		CommitTransaction();
+ 	}
+ 	catch(hresult_exception &e) {
+ 		all_equal = false;
+ 		AbortTransaction(e.hr);
+ 		CGMEEventLogger::LogGMEEvent("CGMEView::updateNamePositionMenuItem - Unable to get NamePosition preference value.\r\n");
+ 	}
+ 
+ 	// set the radiobutton like icon on/off based on the all_equal
+ 	pCmdUI->SetRadio( all_equal);
+ }
+ 
+ void CGMEView::changeNamePosition( int p_val)
+ {
+ 	CGMEEventLogger::LogGMEEvent("CGMEView::changeNamePosition\r\n");
  
+ 	try {
+ 		BeginTransaction();
+ 		POSITION pos = selected.GetHeadPosition();
+ 		while(pos) {
+ 			CGuiObject *obj = selected.GetNext(pos);
+ 			if( obj && obj->mgaFco)
+ 				setNamePositionVal( obj->mgaFco, p_val);
+ 		}
+ 
+ 		CommitTransaction();
+ 	}
+ 	catch(hresult_exception &e) {
+ 		AbortTransaction(e.hr);
+ 		CGMEEventLogger::LogGMEEvent("CGMEView::changeNamePosition - Unable to change NamePosition preference value.\r\n");
+ 	}
+ }
+ 
+ // 
+ // code below has to be in sync with the objectinspector's preference.cpp
+ //
+ void CGMEView::setNamePositionVal( CComPtr<IMgaFCO>& p_ccpMgaFCO, int val)
+ {	
+ 	CGMEEventLogger::LogGMEEvent("CGMEView::setNamePositionVal\r\n");
+ 
+ 	ASSERT( p_ccpMgaFCO);
+ 	if( !p_ccpMgaFCO) return;
+ 
+ 	static const CComBSTR bstrRegPath("namePosition");
+ 	CString valString;
+ 	valString.Format("%d", val);
+ 	CComBSTR bstrValue( valString);
+ 
+ 	// For a specific object we modify the registry value
+ 	COMTHROW(p_ccpMgaFCO->put_RegistryValue(bstrRegPath,bstrValue));
+ }
+ 
+ bool CGMEView::getNamePositionVal( CComPtr<IMgaFCO>& p_ccpMgaFCO, int *p_valRet)
+ {	
+ 	ASSERT( p_ccpMgaFCO);
+ 	ASSERT( p_valRet);
+ 	if( !p_ccpMgaFCO) return false;
+ 
+ 	static const CComBSTR bstrRegPath("namePosition");
+ 	CString strRegValue;
+ 
+ 	// Getting regnode
+ 	CComPtr<IMgaRegNode> ccpMgaRegNode;
+ 	COMTHROW(p_ccpMgaFCO->get_RegistryNode(bstrRegPath,&ccpMgaRegNode));
+ 
+ 	// Getting regnode status
+ 	long lRegNodeStatus;
+ 	COMTHROW(ccpMgaRegNode->get_Status(&lRegNodeStatus));
+ 
+ 
+ 	//Status of definition: 0: this node, -1: in meta, >=1: inherited
+ 	if(lRegNodeStatus==0)
+ 	{
+ 		/* Getting the value of the registry node */
+ 
+ 		CComBSTR bstrRegValue;
+ 		COMTHROW(ccpMgaRegNode->get_Value(&bstrRegValue));
+ 
+ 		strRegValue=bstrRegValue;
+ 
+ 	}
+ 	else if(lRegNodeStatus==-1)
+ 	{
+ 		/* Getting value from meta */
+ 
+ 		// Getting Meta
+ 		CComPtr<IMgaMetaFCO> ccpMetaFCO;
+ 		COMTHROW(p_ccpMgaFCO->get_Meta(&ccpMetaFCO));
+ 
+ 		// Getting registry value from meta
+ 		CComBSTR bstrRegValue;
+ 		COMTHROW(ccpMetaFCO->get_RegistryValue(bstrRegPath,&bstrRegValue));
+ 
+ 		strRegValue=bstrRegValue;
+ 	}
+ 	else if(lRegNodeStatus>=1)
+ 	{
+ 		/* Getting inherited value */
+ 
+ 		// Getting ancestor FCO
+ 		CComPtr<IMgaFCO> ccpAncestorFCO;
+ 		COMTHROW(p_ccpMgaFCO->get_DerivedFrom(&ccpAncestorFCO));
+ 
+ 		// Getting registry value from the ancestor
+ 		CComBSTR bstrRegValue;
+ 		COMTHROW(ccpAncestorFCO->get_RegistryValue(bstrRegPath,&bstrRegValue));
+ 
+ 		strRegValue=bstrRegValue;
+ 	}
+ 	else if(lRegNodeStatus==-2)  // ATTRSTATUS_INVALID - It does happen.
+ 	{
+ 		strRegValue="";
+ 	}
+ 	else
+ 	{
+ 		ASSERT(("Undocumented(and undesired) MGA feature",false));
+ 		CGMEEventLogger::LogGMEEvent("CGMEView::getNamePositionVal: Undocumented(and undesired) MGA feature\r\n");
+ 		strRegValue="";
+ 	}
+ 
+ 	int val = -1;
+ 	if( _stscanf((LPCTSTR)strRegValue, _T("%d"), &val) != 1 || val < 0 || val > 8)
+ 	{
+ 		*p_valRet = -1;
+ 		return false;
+ 	}
+ 
+ 	*p_valRet = val;
+ 	return true;
+ }
\ No newline at end of file

Index: resource.h
===================================================================
RCS file: /project/gme-repository/GMESRC/GME/Gme/resource.h,v
retrieving revision 1.64
retrieving revision 1.65
diff -C2 -d -r1.64 -r1.65
*** resource.h	12 Jan 2005 18:03:33 -0000	1.64
--- resource.h	17 Jun 2005 03:36:01 -0000	1.65
***************
*** 1,4 ****
  //{{NO_DEPENDENCIES}}
! // Microsoft Developer Studio generated include file.
  // Used by GME.rc
  //
--- 1,4 ----
  //{{NO_DEPENDENCIES}}
! // Microsoft Visual C++ generated include file.
  // Used by GME.rc
  //
***************
*** 340,343 ****
--- 340,348 ----
  #define ID_EDIT_PASTESPECIAL_ASCLOSURE  32975
  #define ID_CNTX_PASTESPECIAL_ASCLOSURE  32976
+ #define ID_Menu                         32977
+ #define ID_CNTX_NMPOS_NORTH             32978
+ #define ID_CNTX_NMPOS_SOUTH             32980
+ #define ID_CNTX_NMPOS_WEST              32982
+ #define ID_CNTX_NMPOS_EAST              32984
  #define IDC_BTNSELECT                   33000
  #define IDC_BTNDESELECT                 33001
***************
*** 359,363 ****
  #define _APS_3D_CONTROLS                     1
  #define _APS_NEXT_RESOURCE_VALUE        211
! #define _APS_NEXT_COMMAND_VALUE         32977
  #define _APS_NEXT_CONTROL_VALUE         1109
  #define _APS_NEXT_SYMED_VALUE           115
--- 364,368 ----
  #define _APS_3D_CONTROLS                     1
  #define _APS_NEXT_RESOURCE_VALUE        211
! #define _APS_NEXT_COMMAND_VALUE         32985
  #define _APS_NEXT_CONTROL_VALUE         1109
  #define _APS_NEXT_SYMED_VALUE           115

Index: GMEView.h
===================================================================
RCS file: /project/gme-repository/GMESRC/GME/Gme/GMEView.h,v
retrieving revision 1.67
retrieving revision 1.68
diff -C2 -d -r1.67 -r1.68
*** GMEView.h	15 Apr 2005 18:24:10 -0000	1.67
--- GMEView.h	17 Jun 2005 03:36:01 -0000	1.68
***************
*** 39,42 ****
--- 39,46 ----
  	unsigned int m_lastPrnPage;
  	void setZoomPoint(int curzoom, CPoint point);
+ 	bool getNamePositionVal( CComPtr<IMgaFCO>& ccpMgaFCO, int *valRet);
+ 	void setNamePositionVal( CComPtr<IMgaFCO>& ccpMgaFCO, int val);
+ 	void changeNamePosition( int w);
+ 	void updateNamePositionMenuItem( CCmdUI* pCmdUI, int this_val );
  
  public:
***************
*** 411,414 ****
--- 415,426 ----
  	afx_msg LRESULT OnPannScroll(WPARAM wParam, LPARAM lParam);
  	afx_msg LRESULT OnPannRefresh(WPARAM wParam, LPARAM lParam);
+ 	afx_msg void OnCntxNamePositionSouth();
+ 	afx_msg void OnCntxNamePositionNorth();
+ 	afx_msg void OnCntxNamePositionEast();
+ 	afx_msg void OnCntxNamePositionWest();
+ 	afx_msg void OnUpdateCntxNamePositionSouth( CCmdUI* pCmdUI );
+ 	afx_msg void OnUpdateCntxNamePositionNorth( CCmdUI* pCmdUI );
+ 	afx_msg void OnUpdateCntxNamePositionEast( CCmdUI* pCmdUI );
+ 	afx_msg void OnUpdateCntxNamePositionWest( CCmdUI* pCmdUI );
  	//}}AFX_MSG
  	DECLARE_MESSAGE_MAP()

Index: GME.rc
===================================================================
RCS file: /project/gme-repository/GMESRC/GME/Gme/GME.rc,v
retrieving revision 1.139
retrieving revision 1.140
diff -C2 -d -r1.139 -r1.140
*** GME.rc	19 May 2005 19:43:41 -0000	1.139
--- GME.rc	17 Jun 2005 03:36:01 -0000	1.140
***************
*** 359,362 ****
--- 359,370 ----
          MENUITEM "Insert Annotation",           ID_CNTX_INSERTANNOTATION
          MENUITEM SEPARATOR
+         POPUP "Name Location"
+         BEGIN
+             MENUITEM "North",                       32978
+             MENUITEM "South",                       32980
+             MENUITEM "West",                        32982
+             MENUITEM "East",                        32984
+         END
+         MENUITEM SEPARATOR
          MENUITEM "Show Basetype",               ID_CNTX_SHOWBASETYPE
          MENUITEM "Show Type",                   ID_CNTX_SHOWTYPE
***************
*** 480,483 ****
--- 488,499 ----
              MENUITEM "Clear All",                   ID_CNTX_DSTAR_CLEAR
              MENUITEM "Set All",                     ID_CNTX_DSTAR_SET
+         END
+         MENUITEM SEPARATOR
+         POPUP "Name Location"
+         BEGIN
+             MENUITEM "North",                       ID_CNTX_NMPOS_NORTH
+             MENUITEM "South",                       ID_CNTX_NMPOS_SOUTH
+             MENUITEM "West",                        ID_CNTX_NMPOS_WEST
+             MENUITEM "East",                        ID_CNTX_NMPOS_EAST
          END
          MENUITEM SEPARATOR



More information about the GME-commit mailing list