#include "ide.h" INITBLOCK { RegisterWorkspaceConfig("outputmode-release"); RegisterWorkspaceConfig("outputmode-debug"); } void TargetMode::Serialize(Stream& s) { int ver = 4; s / ver; s % target_override % target; if(ver < 3) { int dummy; s % dummy; } if(ver < 1) { String dummy; s % dummy; } else s % version; s % def % package; if(ver == 2) { int dummy; s % dummy; } if(ver >= 3) s % linkmode; if(ver >= 4) s % createmap; } struct ModePane : WithModePaneLayout { DropList debugs; DropList blitzs; SaveFileButton target_browse; void Serialize(Stream& s) { target.SerializeList(s); } void Load(const TargetMode& m); void Save(TargetMode& m); ModePane(); }; void ModePane::Load(const TargetMode& m) { target_override = m.target_override; target <<= m.target; map = m.createmap; linkmode = m.linkmode; version = m.version.ToWString(); debug = m.def.debug; blitz = m.def.blitz; const Workspace& wspc = GetIdeWorkspace(); package.Clear(); for(int i = 0; i < wspc.GetCount(); i++) { int q; String p = wspc[i]; q = m.package.Find(p); if(q >= 0) { const PackageMode& k = m.package[q]; package.Add(p, k.debug, k.blitz); } else package.Add(p); } } void ModePane::Save(TargetMode& m) { m.target_override = target_override; m.target = ~target; m.createmap = map; m.linkmode = (int)~linkmode; m.version = ~version; m.def.debug = ~debug; m.def.blitz = ~blitz; m.package.Clear(); for(int i = 0; i < package.GetCount(); i++) { PackageMode k; k.debug = package.Get(i, 1); k.blitz = package.Get(i, 2); if(!IsNull(k.debug) || !IsNull(k.blitz)) m.package.Add(package.Get(i, 0)) = k; } target.AddHistory(); } void DebugF(One& ctrl) { ctrl.Create() .Add(Null, "") .Add(0, "None") .Add(1, "Minimal") .Add(2, "Full"); } void BlitzF(One& ctrl) { ctrl.Create