/// <summary> /// Sets all settings to a particular defined joined state. /// </summary> /// <param name="state">A joined settings object.</param> public static void UpdateFromState(AppearanceSettingsState state) { DefaultFontFaceName = state.DefaultFontFaceName; DefaultLayerColor = state.DefaultLayerColor; SelectedObjectColor = state.SelectedObjectColor; LockedObjectColor = state.LockedObjectColor; WorldCoordIconXAxisColor = state.WorldCoordIconXAxisColor; WorldCoordIconYAxisColor = state.WorldCoordIconYAxisColor; WorldCoordIconZAxisColor = state.WorldCoordIconZAxisColor; TrackingColor = state.TrackingColor; FeedbackColor = state.FeedbackColor; DefaultObjectColor = state.DefaultObjectColor; ViewportBackgroundColor = state.ViewportBackgroundColor; FrameBackgroundColor = state.FrameBackgroundColor; CommandPromptBackgroundColor = state.CommandPromptBackgroundColor; CommandPromptHypertextColor = state.CommandPromptHypertextColor; CommandPromptTextColor = state.CommandPromptTextColor; CrosshairColor = state.CrosshairColor; PageviewPaperColor = state.PageviewPaperColor; CurrentLayerBackgroundColor = state.CurrentLayerBackgroundColor; EchoCommandsToHistoryWindow = state.EchoCommandsToHistoryWindow; EchoPromptsToHistoryWindow = state.EchoPromptsToHistoryWindow; ShowFullPathInTitleBar = state.ShowFullPathInTitleBar; ShowCrosshairs = state.ShowCrosshairs; GridThickLineColor = state.GridThickLineColor; GridThinLineColor = state.GridThinLineColor; GridXAxisLineColor = state.GridXAxisLineColor; GridYAxisLineColor = state.GridYAxisLineColor; GridZAxisLineColor = state.GridZAxisLineColor; }
static AppearanceSettingsState CreateState(bool current) { IntPtr pAppearanceSettings = UnsafeNativeMethods.CRhinoAppAppearanceSettings_New(current); AppearanceSettingsState rc = new AppearanceSettingsState(); using (Runtime.StringHolder sh = new Rhino.Runtime.StringHolder()) { IntPtr pString = sh.NonConstPointer(); UnsafeNativeMethods.CRhinoAppearanceSettings_DefaultFontFaceNameGet(pString, pAppearanceSettings); rc.DefaultFontFaceName = sh.ToString(); } rc.DefaultLayerColor = GetColor(idxDefaultLayerColor, pAppearanceSettings); rc.SelectedObjectColor = GetColor(idxSelectedObjectColor, pAppearanceSettings); rc.LockedObjectColor = GetColor(idxLockedObjectColor, pAppearanceSettings); rc.WorldCoordIconXAxisColor = GetColor(idxWorldIconXColor, pAppearanceSettings); rc.WorldCoordIconYAxisColor = GetColor(idxWorldIconYColor, pAppearanceSettings); rc.WorldCoordIconZAxisColor = GetColor(idxWorldIconZColor, pAppearanceSettings); rc.TrackingColor = GetColor(idxTrackingColor, pAppearanceSettings); rc.FeedbackColor = GetColor(idxFeedbackColor, pAppearanceSettings); rc.DefaultObjectColor = GetColor(idxDefaultObjectColor, pAppearanceSettings); rc.ViewportBackgroundColor = GetColor(idxViewportBackgroundColor, pAppearanceSettings); rc.FrameBackgroundColor = GetColor(idxFrameBackgroundColor, pAppearanceSettings); rc.CommandPromptTextColor = GetColor(idxCommandPromptTextColor, pAppearanceSettings); rc.CommandPromptHypertextColor = GetColor(idxCommandPromptHypertextColor, pAppearanceSettings); rc.CommandPromptBackgroundColor = GetColor(idxCommandPromptBackgroundColor, pAppearanceSettings); rc.CrosshairColor = GetColor(idxCrosshairColor, pAppearanceSettings); rc.PageviewPaperColor = GetColor(idxPageviewPaperColor, pAppearanceSettings); rc.CurrentLayerBackgroundColor = GetColor(idxCurrentLayerBackgroundColor, pAppearanceSettings); rc.EchoPromptsToHistoryWindow = UnsafeNativeMethods.CRhinoAppAppearanceSettings_GetBool(idxEchoPromptsToHistoryWindow, pAppearanceSettings); rc.EchoCommandsToHistoryWindow = UnsafeNativeMethods.CRhinoAppAppearanceSettings_GetBool(idxEchoCommandsToHistoryWindow, pAppearanceSettings); rc.ShowFullPathInTitleBar = UnsafeNativeMethods.CRhinoAppAppearanceSettings_GetBool(idxFullPathInTitleBar, pAppearanceSettings); rc.ShowCrosshairs = UnsafeNativeMethods.CRhinoAppAppearanceSettings_GetBool(idxCrosshairsVisible, pAppearanceSettings); UnsafeNativeMethods.CRhinoAppAppearanceSettings_Delete(pAppearanceSettings); // also add grid settings IntPtr pGridSettings = UnsafeNativeMethods.CRhinoAppGridSettings_New(current); rc.GridThickLineColor = GetGridColor(idxThickLineColor, pGridSettings); rc.GridThinLineColor = GetGridColor(idxThinLineColor, pGridSettings); rc.GridXAxisLineColor = GetGridColor(idxXAxisColor, pGridSettings); rc.GridYAxisLineColor = GetGridColor(idxYAxisColor, pGridSettings); rc.GridZAxisLineColor = GetGridColor(idxZAxisColor, pGridSettings); UnsafeNativeMethods.CRhinoAppGridSettings_Delete(pGridSettings); return rc; }