#ifndef UI_DISPLAY_TEST_DISPLAY_MANAGER_TEST_API_H_
#define UI_DISPLAY_TEST_DISPLAY_MANAGER_TEST_API_H_
#include <stdint.h>
#include <memory>
#include <string>
#include <vector>
#include "base/containers/flat_map.h"
#include "base/memory/raw_ptr.h"
#include "ui/display/display.h"
#include "ui/display/display_export.h"
#include "ui/display/display_layout.h"
#include "ui/display/manager/util/display_manager_util.h"
#include "ui/display/test/virtual_display_util.h"
#include "ui/display/types/display_constants.h"
namespace gfx {
class Size;
}
namespace display {
class DisplayManager;
class ManagedDisplayInfo;
namespace test {
class DISPLAY_EXPORT DisplayManagerTestApi : public VirtualDisplayUtil {
public:
explicit DisplayManagerTestApi(DisplayManager* display_manager);
DisplayManagerTestApi(const DisplayManagerTestApi&) = delete;
DisplayManagerTestApi& operator=(const DisplayManagerTestApi&) = delete;
~DisplayManagerTestApi() override;
int64_t AddDisplay(const DisplayParams& display_params) override;
void RemoveDisplay(int64_t display_id) override;
void ResetDisplays() override;
void set_maximum_display(size_t maximum_display_num) {
maximum_support_display_ = maximum_display_num;
}
void ResetMaximumDisplay();
void UpdateDisplay(const std::string& display_specs,
bool from_native_platform = false,
bool generate_new_ids = false);
void UpdateDisplayWithDisplayInfoList(
const std::vector<ManagedDisplayInfo>& display_info_list,
bool from_native_platform = false);
int64_t SetFirstDisplayAsInternalDisplay();
void DisableChangeDisplayUponHostResize();
const ManagedDisplayInfo& GetInternalManagedDisplayInfo(int64_t display_id);
void SetTouchSupport(int64_t display_id, Display::TouchSupport touch_support);
const Display& GetSecondaryDisplay() const;
private:
friend class ScopedSetInternalDisplayId;
void SetInternalDisplayId(int64_t id);
static size_t maximum_support_display_;
raw_ptr<DisplayManager> display_manager_;
};
class DISPLAY_EXPORT ScopedSetInternalDisplayId {
public:
ScopedSetInternalDisplayId(DisplayManager* test_api, int64_t id);
ScopedSetInternalDisplayId(const ScopedSetInternalDisplayId&) = delete;
ScopedSetInternalDisplayId& operator=(const ScopedSetInternalDisplayId&) =
delete;
~ScopedSetInternalDisplayId();
};
DISPLAY_EXPORT bool SetDisplayResolution(DisplayManager* display_manager,
int64_t display_id,
const gfx::Size& resolution);
DISPLAY_EXPORT std::unique_ptr<DisplayLayout> CreateDisplayLayout(
DisplayManager* display_manager,
DisplayPlacement::Position position,
int offset);
DISPLAY_EXPORT DisplayIdList CreateDisplayIdList2(int64_t id1, int64_t id2);
DISPLAY_EXPORT DisplayIdList CreateDisplayIdListN(int64_t start_id, size_t N);
}
}
#endif