// Copyright 2012 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef ASH_PUBLIC_CPP_SHELF_TYPES_H_ #define ASH_PUBLIC_CPP_SHELF_TYPES_H_ #include <cstdint> #include <ostream> #include <string> #include "ash/public/cpp/ash_public_export.h" namespace ash { enum class ShelfAlignment { … }; enum class HotseatState { … }; // Defines the density of hotseat. Hotseat is "denser" if it can accommodate // more shelf buttons without scrolling for the given available space. enum class HotseatDensity { … }; enum class ShelfAutoHideBehavior { … }; enum ShelfAutoHideState { … }; ASH_PUBLIC_EXPORT std::ostream& operator<<(std::ostream& out, ShelfAlignment alignment); ASH_PUBLIC_EXPORT std::ostream& operator<<(std::ostream& out, ShelfAutoHideState state); enum ShelfVisibilityState { … }; enum class ShelfBackgroundType { … }; ASH_PUBLIC_EXPORT std::ostream& operator<<(std::ostream& out, ShelfBackgroundType type); // Source of the launch or activation request, for tracking. enum ShelfLaunchSource { … }; // The actions that may be performed when a shelf item is selected. enum ShelfAction { … }; // The type of a shelf item. enum ShelfItemType { … }; // Returns true if |type| is a valid ShelfItemType. ASH_PUBLIC_EXPORT bool IsValidShelfItemType(int64_t type); // Returns true if |type| is a pinned type (i.e. not a running app or dialog). ASH_PUBLIC_EXPORT bool IsPinnedShelfItemType(ShelfItemType type); // Returns true if types |a| and |b| have the same pin state, i.e. if they // are both pinned apps (or a browser shortcut which is always pinned) or both // unpinned apps. Returns false if either a or b aren't an app type. ASH_PUBLIC_EXPORT bool SamePinState(ShelfItemType a, ShelfItemType b); // Represents the status of applications in the shelf. enum ShelfItemStatus { … }; // Represents the app status in the shelf or app_list. enum AppStatus { … }; // A unique shelf item id composed of an |app_id| and a |launch_id|. // |app_id| is the non-empty application id associated with a set of windows. // |launch_id| is passed on app launch, to support multiple shelf items per app. // As an example, a remote desktop client may want each remote application to // have its own icon. struct ASH_PUBLIC_EXPORT ShelfID { … }; ASH_PUBLIC_EXPORT std::ostream& operator<<(std::ostream& o, const ShelfID& id); } // namespace ash #endif // ASH_PUBLIC_CPP_SHELF_TYPES_H_