anchor.diff:        procedure OnChooseType(val:variant);
         procedure LoadPage(pg:TStr);
         procedure OnToggle;
  -      procedure REPL;
  -    end;
  --
  -procedure TMinApp.Init;
  +      procedure ShellOn;  procedure ShellOff;
  +    end;
  ++
  +procedure TMinApp.Init; { 1/2 }
     var vsplit : integer = 0;
     begin
  +    // TODO: eventually i'll build a little lazarus-like RAD thing
  +    // to manage these components as data rather than code.
  +
  +    { sqlite / nodak database connection }
       ndk := undk.open('minneron.sdb');
       dbc := (ndk as TNodakRepo).dbc;
  +
  +    { split between outline and editor }
  +    vsplit := kvm.ymax - 1;
  +
  +    { the editor widget }
  +    ed := TEditor.Create(self);
  +    ed.x := 20; ed.y := 2; ed.w := kvm.width - 21;
  +    ed.h := vsplit-ed.y-1;  //  why is this different than tg?
  +
  +    { the outliner widget }
       rsOutln := dbc.query(
   	 'SELECT olid,nid,kind,node,depth,collapsed,hidden,leaf '+
   	 'FROM outline');
  
positive.code:       cmd[ ^O ] := self.OtherWindow;
        cmd[ ^G ] := self.ChoosePage;
        cmd[ ^L ] := self.Draw;
        cmd[ ^X ] := self.REPL;
      end;
      km_mb := ukm.TKeyMap.Create(self);
      with km_mb do begin
        cmd[ ^C ] := self.Quit;
        cmd[ ^O ] := self.OtherWindow;
      end;
      //  clean up keyboard focus handling!!
      km_ed := km; ed.keys( km_ed );
  
negative.code: 
  procedure TMinApp.OtherWindow;
    begin
      // so horrible! get a real 'focus' concept!
      // focus.defocus;
      if focus = ed then
        begin focus := tg; keymap := km_tg; kvm.HideCursor;
        end
      else //if focus = tg then
        begin focus := ed; keymap := km_ed; kvm.ShowCursor;
        end;
      // focus.focus;
    end;
  