anchor.diff:          DropBox_Options_Resolution: TKMDropList;
           DropBox_Options_RefreshRate: TKMDropList;
           Button_Options_ResApply: TKMButton;
  -      Button_Options_Keys: TKMButton;
  -      Button_Options_Back: TKMButton;
  -      PopUp_Options_Keys: TKMPopUpMenu;
  -        Image_Options_Keys: TKMImage;
  -        Label_Options_Keys_Title, Label_Options_Keys_Unassignable: TKMLabel;
  -        Button_Options_Keys_Reset, Button_Options_Keys_OK: TKMButton;
  -        ColumnBox_Options_Keys: TKMColumnBox;
  +      Button_OptionsKeys: TKMButton;
  +      PopUp_OptionsKeys: TKMPopUpMenu;
  +        ColumnBox_OptionsKeys: TKMColumnBox;
  +        Button_OptionsKeysReset: TKMButton;
  +        Button_OptionsKeysOK: TKMButton;
  +      Button_OptionsBack: TKMButton;
     public
       constructor Create(aParent: TKMPanel; aOnPageChange: TGUIEventText);
   
  
positive.code: end;
  
  
  procedure TKMMenuOptions.RefreshKeyList;
  var
    I, prevI: Integer;
    K: TKMKeyArea;
  begin
    prevI := ColumnBox_Options_Keys.TopIndex;
  
    ColumnBox_Options_Keys.Clear;
  
    for K := Low(TKMKeyArea) to High(TKMKeyArea) do
    begin
      ColumnBox_Options_Keys.AddItem(MakeListRow([gResTexts[KEY_SEP_TX[K]], ' '], [$FF3BB5CF, $FF3BB5CF], [$FF0000FF, $FF0000FF], -1));
  
      // Do not show the debug keys
      for I := 0 to gResKeys.Count - 1 do
        if (K = gResKeys[I].Area) and not gResKeys[I].IsDebug then
          ColumnBox_Options_Keys.AddItem(MakeListRow([gResTexts[gResKeys[I].TextId], gResKeys.GetKeyNameById(I)],
                                                    [$FFFFFFFF, $FFFFFFFF], [$FF0000FF, $FF0000FF], I));
    end;
  
    ColumnBox_Options_Keys.TopIndex := prevI;
  end;
  
  
  end.
  
negative.code:       Radio_Options_Lang.OnChange := Change;
  
      // Keybindings button
      Button_OptionsKeys := TKMButton.Create(Panel_Options, 60, 520, 280, 30, gResTexts[TX_MENU_OPTIONS_EDIT_KEYS], bsMenu);
      Button_OptionsKeys.Anchors := [anLeft];
      Button_OptionsKeys.OnClick := KeysClick;
  
      // Back button
      Button_OptionsBack := TKMButton.Create(Panel_Options,60,630,280,30,gResTexts[TX_MENU_BACK],bsMenu);
      Button_OptionsBack.Anchors := [anLeft];
      Button_OptionsBack.OnClick := BackClick;
  
      // Panel_Options_Keys
      PopUp_OptionsKeys := TKMPopUpMenu.Create(Panel_Options, 700);
      PopUp_OptionsKeys.Height := 600;
      PopUp_OptionsKeys.Anchors := []; // Keep centered, don't stretch already poor BG image
      PopUp_OptionsKeys.Left := (Panel_Options.Width - 700) div 2;
      PopUp_OptionsKeys.Top := (Panel_Options.Height - 600) div 2;
  
        TKMBevel.Create(PopUp_OptionsKeys, -1000, -1000, 4000, 4000);
  
        TKMImage.Create(PopUp_OptionsKeys, 0, 0, 700, 600, 15, rxGuiMain).ImageStretch;
  
        TKMLabel.Create(PopUp_OptionsKeys, 20, 35, 660, 30, gResTexts[TX_MENU_OPTIONS_KEYBIND], fnt_Outline, taCenter).Anchors := [anLeft,anBottom];
  
        ColumnBox_OptionsKeys := TKMColumnBox.Create(PopUp_OptionsKeys, 20, 110, 660, 400, fnt_Metal, bsMenu);
        ColumnBox_OptionsKeys.SetColumns(fnt_Outline, [gResTexts[TX_MENU_OPTIONS_FUNCTION], gResTexts[TX_MENU_OPTIONS_KEY]], [0, 350]);
        ColumnBox_OptionsKeys.Anchors := [anLeft,anTop,anBottom];
        ColumnBox_OptionsKeys.ShowLines := True;
        ColumnBox_OptionsKeys.PassAllKeys := True;
        ColumnBox_OptionsKeys.OnChange := KeysClick;
        ColumnBox_OptionsKeys.OnKeyDown := KeysUpdate;
  
        TKMLabel.Create(PopUp_OptionsKeys, 20, 520, 660, 30, '* ' + gResTexts[TX_KEY_UNASSIGNABLE], fnt_Metal, taLeft);
  
        Button_OptionsKeysReset := TKMButton.Create(PopUp_OptionsKeys, 20, 550, 200, 30, gResTexts[TX_MENU_OPTIONS_RESET], bsMenu);
        Button_OptionsKeysReset.OnClick := KeysClick;
  
        Button_OptionsKeysOK := TKMButton.Create(PopUp_OptionsKeys, 230, 550, 200, 30, gResTexts[TX_MENU_OPTIONS_OK], bsMenu);
        Button_OptionsKeysOK.OnClick := KeysClick;
  end;
  
  
  