<Grid>
   <Cfg id="ScheduleBoxes" IdChars="0123456789" NumberId="1" Undo="1" SuppressCfg="0" Sorting="0" Size="Low" ScrollParentHorz="Border"/>
   <Cfg DefaultDate="1/1/2010" MinMidWidth="250"/>
   <LeftCols>
      <C Name="id" Type="Int" CanEdit="0" CanSort="0"/>
   </LeftCols>
   <Cols>
      <C Name="RUN" Type="Text" Width="102"/>
      <C Name="ANC" Type="Text" Width="180"/>
      <C Name="DES" Type="Text" Width="180" />
      <C Name="ES" Type="Date" Format="dddddd" EditFormat="%d"/>
      <C Name="LS" Type="Date" Format="dddddd" EditFormat="%d"/>
      <C Name="EF" Type="Date" Format="dddddd" EditFormat="%d"/>
      <C Name="LF" Type="Date" Format="dddddd" EditFormat="%d"/>
   </Cols>
   <RightCols>
      <C Name="GANTT" Type="Gantt"
         GanttDataUnits="d" GanttUnits="d" GanttLastUnit="d" GanttWidth="22"
         GanttAncestors="ANC" GanttDescendants="DES"
         GanttRun="RUN"
         GanttRunManualChange="2"
         GanttMinStart="ES" GanttMaxStart="LS" GanttMinEnd="EF" GanttMaxEnd="LF"
         GanttLeft="2" GanttRight="2" GanttShowConstraints="2"
         GanttHeader6="d#%d"
         GanttBase="1/2/2010" GanttFinish="1/15/2010"
         GanttDirection="0"
         GanttIncorrectDependencies="1" GanttStrict="1" GanttFixComplete="0"
         GanttCorrectDependencies="2" GanttCorrectDependenciesFixed="0"
         GanttTask="Box"
         GanttRunErrorsShift="15"
         GanttRunCorrectBox="1"
         GanttRunMove="Slide"
         GanttRunMoveRight="Move"
         GanttRunAdjust="Shrink"
         />
   </RightCols>
   <Body>
      <B>
         <I id="0"/>
         <I id="1" RUN="[{Start:'1/12/2010',Duration:2,Id:'1A'},{Start:'1/4/2010',Duration:4,Id:'1B',Complete:100}]" ANC="2A,1A@2"/>
         <I id="2" RUN="[{Start:'1/7/2010',Duration:7,Id:'2A',Complete:30}]" ANC="1B,2A@1"/>
         <I id="4" RUN="[{Start:'1/10/2010',Duration:4,Id:'4A',State:'disabled'}]" ANC="1B,4A@1"/>
         <I id="5" RUN="[{Start:'1/13/2010',Type:'Milestone',Id:'5A'}]" ANC="4A,5A@4"/>
         <I id="6" RUN="[{Start:'1/3/2010',Duration:6,Id:'6A'}]" ES="1/4/2010"/>
         <I id="7" RUN="[{Start:'1/6/2010',Duration:4,Id:'7A'}]" ANC="6A,7A@6ss+2;6A,7A@6ff" LF="1/12/2010"/>
         <I id="8" RUN="[{Start:'1/6/2010',Duration:4,Id:'8A'}]" ANC="7A,8A@7;9A,8A@9ff" EF="1/16/2010"/>
         <I id="9" RUN="[{Start:'1/7/2010',Duration:4,Id:'9A',Complete:50}]"/>
         <I id="10" RUN="[{Start:'1/6/2010',Duration:4,Id:'10A'}]" ANC="9A,10A@9sf" LS="1/8/2010"/>
         <I id="11" RUN="[{Start:'1/3/2010',Duration:3,Id:'11A',Complete:100}]"/>
         <I id="12" RUN="[{Start:'1/8/2010',Duration:3,Id:'12A',Complete:60},{Start:'1/13/2010',Duration:3,Id:'12B',Complete:0}]" ANC="11A,12A@11" ES="1/7/2010"/>
         <I id="13" RUN="[{Start:'1/4/2010',Duration:1,Id:'13A'},{Start:'1/7/2010',Duration:3,Id:'13B'},{Start:'1/12/2010',Duration:1,Id:'13C'}]" ANC="12B,13C@12ff"/>
         <I id="14" RUN="[{Start:'1/6/2010',Duration:2,Id:'14A',State:'locked'},{Start:'1/12/2010',Duration:3,Id:'14B'},{Start:'1/16/2010',Type:'Milestone',Id:'14C'}]" ANC="13A,14A@13;14A,14B@14+2"/>
      </B>
   </Body>
   <Header id="id" ANC="Ancestors" DES="Descendants" RUN="Run" ES="Early Start" LS="Late Start" EF="Early End" LF="Late End"/>
   <Solid>
      <Topbar1 Space="0" Cells="Base,Finish,Dep,Err,Sep,Correct"
         BaseType='Date' BaseCanEdit='1' BaseWidth='25' BaseUndo='1'
         BaseLabel='Baseline' BaseFormat="dddddd" BaseEditFormat="%d"
         BaseFormula='Grid.GetGanttBase()'
         BaseOnChange='Grid.SetGanttBase(Value,2);'
         BaseHtmlPrefixFormula='Grid.Cols.GANTT.GanttBase===""?"&lt;span style=&apos;color:gray;&apos;>":"&lt;span>"'
         BaseHtmlPostfix='&lt;/span>'
         BaseTip='Starting date of the whole project.&lt;br>No task should start before it.&lt;br>It is also used when correcting dependencies.'

         FinishType='Date' FinishCanEdit='1' FinishWidth='25' FinishUndo='1' FinishLeft='1'
         FinishLabel='Finish date' FinishFormat="dddddd" FinishEditFormat="%d"
         FinishFormula='Grid.GetGanttFinish()'
         FinishOnChange='Grid.SetGanttFinish(Value);'
         FinishHtmlPrefixFormula='Grid.Cols.GANTT.GanttFinish===""?"&lt;span style=&apos;color:gray;&apos;>":"&lt;span>"'
         FinishHtmlPostfix='&lt;/span>'
         FinishTip='Finish date of the whole project.&lt;br>If grayed, it is calculated from the last task.&lt;br>It is used to calculate critical path.'

         DepType='Select'
         DepDefaults='|Manual schedule|Auto schedule|Ask for auto schedule'
         DepFormula='Grid.GetDefaultsValue(Row,Col,Grid.Cols.GANTT.GanttCorrectDependencies)'
         DepOnChange='Grid.Cols.GANTT.GanttCorrectDependencies = Grid.GetDefaultsIndex(Row,Col,Value);'
         DepTip='If the dependent tasks will be updated after some task move or resize'
         DepWidth='115'
         DepLeft='5'
         
         ErrType='Select'
         ErrLabel='Incorrect dependencies'
         ErrDefaults='|None|Start > Finish|Start &lt;> Finish'
         ErrFormula='Grid.GetDefaultsValue(Row,Col,Grid.Cols.GANTT.GanttIncorrectDependencies)'
         ErrOnChange='Grid.Cols.GANTT.GanttIncorrectDependencies = Grid.GetDefaultsIndex(Row,Col,Value); Grid.RefreshGanttDependencies(2);'
         ErrTip='Which dependencies will be marked as incorrect'
         ErrWidth='77'
         ErrLeft='1'

         SepRelWidth='1' SepType='Html'

         CorrectFormula="ganttdependencyerrors(null,1)" CorrectOnClick="CorrectAllDependencies" CorrectTip="Click to correct the dependencies"
      />
      <Topbar3 Cells="Dir,Strict,Manual,Started,Actual"
         DirType='Select'
         DirDefaults='|Schedule from start|Schedule from finish'
         DirFormula='Grid.GetDefaultsValue(Row,Col,Grid.Cols.GANTT.GanttDirection)'
         DirOnChange='Grid.Cols.GANTT.GanttDirection = Grid.GetDefaultsIndex(Row,Col,Value);'
         DirTip='If the tasks are moved rather left or right'
         DirWidth='110'

         StrictType='Select' StrictLabel='Schedule method'
         StrictDefaults='|Minimal move|Strict move|Minimal strict move'
         StrictFormula='Grid.GetDefaultsValue(Row,Col,[0,1,1,2][Grid.Cols.GANTT.GanttStrict])'
         StrictOnChange='Grid.Cols.GANTT.GanttStrict = [0,1,3][Grid.GetDefaultsIndex(Row,Col,Value)];'
         StrictTip='Minimal move (GanttStrict=0) - Move all tasks as little as possible to correct the dependencies&lt;br>Strict move (GanttStrict=1) - Move all first tasks to min start constraint, move all next tasks as close as possible&lt;br>Minimal strict move (GanttStrict=3) - Move all first tasks as little as possible, move all next tasks as close as possible.'
         StrictWidth='110'
         StrictLeft='3'

         ManualType='Bool' ManualLabelRight='From the last position' ManualCanEdit='1'
         ManualFormula='Grid.Cols.GANTT.GanttRunManualChange?1:0'
         ManualOnChange='Grid.Cols.GANTT.GanttRunManualChange = Value?2:0; Grid.RefreshGantt(255);'
         ManualTip='If set, never automatically moves scheduled tasks before last manual position'
         ManualLeft='3'

         StartedType='Bool' StartedLabelRight='Also started tasks' StartedCanEdit='1'
         StartedFormula='!Grid.Cols.GANTT.GanttFixComplete'
         StartedOnChange='Grid.Cols.GANTT.GanttFixComplete = !Value; Grid.RefreshGanttDependencies(2);'
         StartedTip='If also the already started tasks can be moved to correct the dependencies'
         StartedLeft='3'

         ActualType='Bool' ActualLabelRight='Also actual task' ActualCanEdit='1'
         ActualFormula='!Grid.Cols.GANTT.GanttCorrectDependenciesFixed'
         ActualOnChange='Grid.Cols.GANTT.GanttCorrectDependenciesFixed = !Value;'
         ActualTip='After some task is moved or resized, if it can be also moved in following automatic dependencies correcting'
         ActualLeft='3'
         />

      <Topbar2 Cells="Correct,Fix,Move"
         CorrectType='Select' CorrectLabel='Move boxes when scheduling'
         CorrectDefaults='|freely|to not overlay|preserve order'
         CorrectFormula='Grid.GetDefaultsValue(Row,Col,Grid.Cols.GANTT.GanttRunCorrectBox)'
         CorrectOnChange='Grid.Cols.GANTT.GanttRunCorrectBox = Grid.GetDefaultsIndex(Row,Col,Value);'
         CorrectTip='How will be moved the run boxes when correcting dependencies'
         CorrectWidth='80'

         MoveType='Select' MoveLabel='Move boxes by mouse'
         MoveDefaults='|freely|preserve order|preserve spaces'
         MoveFormula='Grid.GetDefaultsValue(Row,Col,{"Error":0,"Shrink":1,"Slip":2}[Grid.Cols.GANTT.GanttRunAdjust])'
         MoveOnChange='Grid.Cols.GANTT.GanttRunAdjust = ["Error","Shrink","Slip"][Grid.GetDefaultsIndex(Row,Col,Value)];'
         MoveTip='How will be moved the run boxes when correcting dependencies'
         MoveWidth='80' MoveLeft='5'
         />
   </Solid>
   <Media>
      <M MaxWidth="1023" Tag="0"> <Cfg NoHScroll="1"/> </M>
      <M MaxHeight="800" Tag="0"> <Cfg Size="Small"/> </M>
   </Media>
</Grid>