chromium/chromeos/ash/services/ime/public/mojom/user_data_japanese_legacy_config.mojom

// Copyright 2024 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

module ash.ime.mojom;

// Represents a legacy Japanese IME configuration that is received via
// chromeos/ash/services/ime/public/cpp/shared_lib/proto/fetch_japanese_legacy_config.proto
//
// Used by the InputMethodUserDataService mojom interface.
// Based on https://github.com/google/mozc/blob/master/src/protocol/config.proto
struct JapaneseLegacyConfig {
  enum PreeditMethod {
    kUnspecified,
    kRomaji,
    kKana,
  };

  enum PunctuationMethod {
    kUnspecified,
    kKutenTouten,
    kCommaPeriod,
    kKutenPeriod,
    kCommaTouten,
  };

  enum SymbolMethod {
    kUnspecified,
    kCornerBracketMiddleDot,
    kSquareBracketSlash,
    kCornerBracketSlash,
    kSquareBracketMiddleDot,
  };

  enum FundamentalCharacterForm {
    kUnspecified,
    kInputMode,
    kFullWidth,
    kHalfWidth,
  };

  enum SelectionShortcut {
    kUnspecified,
    k123456789,
    kAsdfghjkl,
    kNoShortcut,
  };

  enum SessionKeymap {
    kUnspecified,
    kCustom,
    kAtok,
    kMsime,
    kKotoeri,
    kMobile,
    kChromeos,
    kNone,
  };

  enum ShiftKeyModeSwitch {
    kUnspecified,
    kOff,
    kAsciiInputMode,
    kKatakana,
  };

  PreeditMethod preedit_method;
  PunctuationMethod punctuation_method;
  SymbolMethod symbol_method;
  FundamentalCharacterForm space_character_form;
  SelectionShortcut selection_shortcut;
  SessionKeymap session_keymap;
  bool use_auto_conversion;
  ShiftKeyModeSwitch shift_key_mode_switch;
  bool use_history_suggest;
  bool use_dictionary_suggest;
  uint32 suggestion_size;
  bool incognito_mode;
  // Allows the uploading of usage stats to google.
  bool upload_usage_stats;
};