This example shows how to change the colors of user-interface elements.
//-------------------------------------------------------------- // Preconditions: // 1. Create a C# Windows console project. // 2. Copy and paste this example into the C# IDE. // 3. Add a reference to: // install_dir\APISDK\tlb\DraftSight.Interop.dsAutomation.dll. // 4. Add references to System and System.Windows.Forms. // 5. Start DraftSight and open a document. // 6. Start debugging the project. // // Postconditions: // 1. Message boxes pop up before and after the colors of // the user-interface elements change. // 2. Click OK to close each message box. // 3. Examine and experiment with the user-interface // elements whose colors changed: // * Text in command window // * Crosshair // * Background of model // 4. Run the macro again to reset the colors of the user-interface // elements to their former colors. //---------------------------------------------------------------- using System; using System.Windows.Forms; using System.Runtime.InteropServices; using DraftSight.Interop.dsAutomation; namespace ApplicationOptionsCSharp { static class Program { public static void Main(string[] args) { DraftSight.Interop.dsAutomation.Application dsApp; //Connect to DraftSight application dsApp = (DraftSight.Interop.dsAutomation.Application)Marshal.GetActiveObject("DraftSight.Application"); // Abort any command currently running in DraftSight to avoid nested commands dsApp.AbortRunningCommand(); if (null == dsApp) { return; } ApplicationOptions dsApplicationOptions = dsApp.GetApplicationOptions(); //Change colors of user-interface elements //Set color of text of command window to blue or black, dependent on current color Color dsColor = dsApplicationOptions.GetElementColor(dsElementColor_e.dsElementColor_CommandWindowText); MessageBox.Show("Color of text command window before changing its color: " + dsColor.GetNamedColor()); if (dsColor.GetNamedColor() == dsNamedColor_e.dsNamedColor_Blue) dsColor.SetRGBColor(0, 0, 0); else dsColor.SetNamedColor(dsNamedColor_e.dsNamedColor_Blue); dsApplicationOptions.SetElementColor(dsElementColor_e.dsElementColor_CommandWindowText, dsColor); MessageBox.Show("Color of text of command window after changing its color: " + dsColor.GetNamedColor()); //Set color of model crosshair to red or white, dependent on current color dsColor = dsApplicationOptions.GetElementColor(dsElementColor_e.dsElementColor_ModelCrosshair); MessageBox.Show("Color of crosshair before changing its color: " + dsColor.GetNamedColor()); if (dsColor.GetNamedColor() == dsNamedColor_e.dsNamedColor_Red) dsColor.SetNamedColor(dsNamedColor_e.dsNamedColor_White); else dsColor.SetNamedColor(dsNamedColor_e.dsNamedColor_Red); dsApplicationOptions.SetElementColor(dsElementColor_e.dsElementColor_ModelCrosshair, dsColor); MessageBox.Show("Color of crosshair after changing its color: " + dsColor.GetNamedColor()); //Set color of background of model to white or black, dependent on current color dsColor = dsApplicationOptions.GetElementColor(dsElementColor_e.dsElementColor_ModelBackground); MessageBox.Show("Color of model background before changing its color: " + dsColor.GetNamedColor()); if (dsColor.GetNamedColor() == dsNamedColor_e.dsNamedColor_White) dsColor.SetRGBColor(0, 0, 0); else dsColor.SetNamedColor(dsNamedColor_e.dsNamedColor_White); dsApplicationOptions.SetElementColor(dsElementColor_e.dsElementColor_ModelBackground, dsColor); MessageBox.Show("Color of model background after changing its color: " + dsColor.GetNamedColor()); } } }