/* MIRROFF (STD) -- Mirror Off Pick Element */ /* MIRROFF (STD) -- Pickelement Spiegelung aus */ /* -- INTENDED FOR KEY-CALL USE (:Mirror Off) -- */ /* // Copyright (c) 1995-2012 Oliver Bartels F+E, Muenchen // Author: Manfred Baumeister // Changes History: // rl (120427) RELEASED FOR BAE V7.8. // rl (110301) ENHANCEMENT: // Added "back" function call for polygon/trace edit functions. // rl (101019) RELEASED FOR BAE V7.6. // rl (100706) ENHANCEMENT: // Added group element mirroring reset options. // rl (091021) RELEASED FOR BAE V7.4. // rl (081014) RELEASED FOR BAE V7.2. // rl (080915) ENHANCEMENT: // Added element mirror loop options for standalone call. // rl (071029) RELEASED FOR BAE V7.0. // rl (060829) RELEASED FOR BAE V6.8. // rl (050920) RELEASED FOR BAE V6.6. // rl (040811) RELEASED FOR BAE V6.4. // rl (030904) RELEASED FOR BAE V6.2. // rl (021209) RELEASED FOR BAE V6.0. // rl (020618) RELEASED FOR BAE V5.4. // rl (010625) RELEASED FOR BAE V5.0. // rl (000509) RELEASED FOR BAE V4.6. // rl (991103) RELEASED FOR BAE V4.4. // rl (980910) RELEASED FOR BAE V4.2. // rl (970929) RELEASED FOR BAE V4.0. // mb (960919) RELEASED FOR BAE V3.4. // mb (95) RELEASED FOR BAE V3.2. // mb (950103) ORIGINAL CODING. // // DESCRIPTION // // The mirroff User Language program designates the currently // active BAE menu function and performs a submenu interaction // for resetting the mirror mode of the currently processed // object (if one is picked and if mirroring is permitted). During polygon // edit functions the "Back" option for deleting the previous polygon point // is activated. This program must be configured for implicit hotkey program // call (e.g. or ). */ // Includes #include "pop.ulh" // User Language popup include // Enforce standard caller type #pragma ULCALLERSTD // Disable undo state request #pragma ULCALLERNOUNDO // Messages string UPRABORT = M_UPRABORT(); string UPRMFCT = M("Spiegelungsfunktion selektieren!", "Select mirror function!"); string UPRSFCT1 = M("&Symbole/Labels Spiegeln ruecksetzen", "&Symbols/Labels mirroring reset"); string UPRSFCT2 = M("&Texte Spiegeln ruecksetzen", "&Texts mirroring reset"); string UPRSFCT3 = M("&Elemente Spiegeln ruecksetzen", "&Element mirroring reset"); string UPRSFCT4 = M("Gruppens&ymbole/labels Spiegeln ruecksetzen", "Group S&ymbols/Labels mirroring reset"); string UPRSFCT5 = M("Gruppente&xte Spiegeln ruecksetzen", "Group te&xts mirroring reset"); string UPRGFCT1 = M("&Symbole/Labels Spiegeln ruecksetzen", "&Symbols/Labels mirroring reset"); string UPRGFCT2 = M("&Texte Spiegeln ruecksetzen", "&Texts mirroring reset"); string UPRGFCT3 = M("&Elemente Spiegeln ruecksetzen", "&Element mirroring reset"); string UPRGFCT4 = M("Gruppenb&auteile Spiegeln ruecksetzen", "Group p&arts mirroring reset"); string UPRGFCT5 = M("Gruppente&xte Spiegeln ruecksetzen", "Group te&xts mirroring reset"); string UPRSELELEM = M("Elemente selektieren!","Select Elements!"); string UPRSELPART = M("Symbole/Labels selektieren!", "Select Symbols/Labels!"); string UPRSELSYMBOL = M("Symbole/Labels selektieren!", "Select Symbols/Labels!"); string UPRSELTEXT = M("Texte selektieren!","Select Texts!"); string REPSYMMIRR = M("%d Gruppensymbole/labels Spiegelung zurueckgesetzt.", "%d Group symbols/labels mirroring reset."); string REPPARTMIRR = M("%d Gruppenbauteile Spiegelung zurueckgesetzt.", "%d Group parts mirroring reset."); string REPTEXTMIRR = M("%d Gruppentexte Spiegelung zurueckgesetzt.", "%d Group text mirroring resets."); string ERRELEMGLUED = M("Element '%s' ist verankert!", "Element '%s' is glued!"); string ERRMIRROR = M("Elementspiegelung '%s' konnte nicht zurueckgesetzt werden!", "Error unmirroring element '%s'!"); string ERRNOPICK = M_ERRNOPICK(); int ddbclass = bae_planddbclass() /* Plan DDB class */; // Main program void main() { // Test the interpreter type switch (uliptype()) { /* SCM */ case ULIPSCM : mirroff_scm(); break; /* GED */ case ULIPGED : mirroff_ged(); break; /* CED */ case ULIPCED : mirroff_ced(); break; // Ignore on default default : ; } // Done } void mirroff_scm() /* // Mirror off picked SCM object */ { index C_FIGURE fig /* Figure list index */; index C_NREF nref /* Named reference index */; index C_TEXT text /* Text index */; index C_CONSEG conseg /* Connection segment index */; index C_BUSTAP bustap /* Bustap index */; string s_dis = "," /* Symbol function disable */; string t_dis = "," /* Text function disable */; string gs_dis = "," /* Group symbol function disable */; string gt_dis = "," /* Group text function disable */; string e_dis = "," /* Element function disable */; string elemmsg /* Element pick message */; int elemtyp /* Element type */; int cnt = 0 /* Element count */; // Check if standalone call if (ulproginfo("",0,0)<=1 && bae_getactmenu()<0) { // Check if element type scan if (bae_iniintval(PAR_METYPSCAN,1)==1 && !bae_peekiact()) { forall (text) { t_dis=e_dis=""; break; } forall (nref) { s_dis=e_dis=""; break; } forall (fig where fig.GROUP && fig.TYP==C_FIGNREF && fig.MIRROR) { gs_dis=""; break; } forall (fig where fig.GROUP && fig.TYP==C_FIGTEXT && fig.MIRROR) { gt_dis=""; break; } } else { // Enable all menu items t_dis=s_dis=e_dis=gt_dis=gs_dis=""; } // Select the mirror function bae_promptdialog(UPRMFCT); switch (bae_askmenu(6,s_dis+UPRSFCT1,t_dis+UPRSFCT2, e_dis+UPRSFCT3,gs_dis+UPRSFCT4,gt_dis+UPRSFCT5,UPRABORT)) { case 0 : // Abort if invalid plan class if (ddbclass==DDBCLUNDEF || ddbclass==DDBCLSMRK) error_class(); elemmsg=UPRSELSYMBOL; elemtyp=1<