def append_key_label key, label, mode=@mode
      #@key_labels << [key, label] if !@key_labels.include? [key, label]
      @key_hash[mode] << [key, label] if !@key_hash[mode].include? [key, label]
      @repaint_required = true
    end
def append_key_label key, label, mode=@mode
      #@key_labels << [key, label] if !@key_labels.include? [key, label]
      @key_hash[mode] << [key, label] if !@key_hash[mode].include? [key, label]
      @repaint_required = true
    end
?? does not use mode, i think key_labels is unused. a hash is now used 2011-10-11 XXX FIXME
 WARNING, i have not tested this after changing it.