[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