// Copyright 2013 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef CHROME_COMMON_OMNIBOX_FOCUS_STATE_H_
#define CHROME_COMMON_OMNIBOX_FOCUS_STATE_H_
// Omnibox focus state.
enum OmniboxFocusState {
// Not focused.
OMNIBOX_FOCUS_NONE,
// Visibly focused.
OMNIBOX_FOCUS_VISIBLE,
// Invisibly focused, i.e. focused with a hidden caret.
//
// Omnibox will not look focused visibly but any user key strokes will go to
// the omnibox.
OMNIBOX_FOCUS_INVISIBLE,
};
// Reasons why the Omnibox focus state could change.
enum OmniboxFocusChangeReason {
// Includes any explicit changes to focus. (e.g. user clicking to change
// focus, user tabbing to change focus, any explicit calls to SetFocus,
// etc.)
OMNIBOX_FOCUS_CHANGE_EXPLICIT,
// Focus changed to restore state from a tab the user switched to.
OMNIBOX_FOCUS_CHANGE_TAB_SWITCH,
// Focus changed because user started typing. This only happens when focus
// state is INVISIBLE (and this results in a change to VISIBLE).
OMNIBOX_FOCUS_CHANGE_TYPING,
};
#endif // CHROME_COMMON_OMNIBOX_FOCUS_STATE_H_