Minimum Origin Version Required: Origin 8 SR0
void GraphObject_SetFont_ex(string strName = "MyText") { GraphLayer gl = Project.ActiveLayer(); if( !gl ) return; GraphObject go = gl.GraphObjects(strName); if( !go ) return; int nTypeFace, nFontSize; bool bBold, bItalic, bUnderline; if( GetFontInfo(go, nTypeFace, nFontSize, bBold, bItalic, bUnderline) ) { nFontSize = nFontSize * 1.5; bBold = !bBold; bItalic = !bItalic; bUnderline = !bUnderline; SetFontInfo(go, &nTypeFace, &nFontSize, &bBold, &bItalic, &bUnderline); } } bool GetFontInfo(GraphObject &go, int &nTypeFace, int &nFontSize, bool &bBold, bool &bItalic, bool &bUnderline) { if ( !go ) return false; int nType; go.GetObjectType(&nType); if(GROT_TEXT != nType) return false; Tree trFormat; trFormat = go.GetFormat(FPB_ALL, FPB_ALL, TRUE, TRUE); nTypeFace = trFormat.Root.Font.Face.nVal; nFontSize = trFormat.Root.Font.Size.nVal; // The following settings will be ready from Origin8.1 /* bBold = trFormat.Root.Font.Bold.nVal; bItalic = trFormat.Root.Font.Italic.nVal; bUnderline = trFormat.Root.Font.Underline.nVal; */ return true; } bool SetFontInfo(GraphObject &go, int *pnTypeFace = NULL, int *pnFontSize = NULL, bool *pbBold = NULL, bool *pbItalic = NULL, bool *pbUnderline = NULL) { if( !go ) return false; int nType; go.GetObjectType(&nType); if(GROT_TEXT != nType) return false; Tree trFormat; if(pnTypeFace) trFormat.Root.Font.Face.nVal = *pnTypeFace; if(pnFontSize) trFormat.Root.Font.Size.nVal = *pnFontSize; // The following settings will be ready from Origin8.1 /* if(pbBold) trFormat.Root.Font.Bold.nVal = *pbBold; if(pbItalic) trFormat.Root.Font.Italic.nVal = *pbItalic; if(pbUnderline) trFormat.Root.Font.Underline.nVal = *pbUnderline; */ if( 0 == go.UpdateThemeIDs(trFormat.Root) ) return go.ApplyFormat(trFormat, true, true); return false; }