#ifndef CONTENT_PUBLIC_BROWSER_TOUCH_SELECTION_CONTROLLER_CLIENT_MANAGER_H_
#define CONTENT_PUBLIC_BROWSER_TOUCH_SELECTION_CONTROLLER_CLIENT_MANAGER_H_
#include "base/observer_list_types.h"
#include "content/common/content_export.h"
#if BUILDFLAG(ARKWEB_PDF)
#include "ui/gfx/geometry/rect.h"
#endif
namespace gfx {
class Point;
class SelectionBound;
}
namespace ui {
class TouchSelectionController;
class TouchSelectionControllerClient;
class TouchSelectionMenuClient;
}
namespace content {
class CONTENT_EXPORT TouchSelectionControllerClientManager {
public:
virtual ~TouchSelectionControllerClientManager() {}
virtual void DidStopFlinging() = 0;
virtual void OnSwipeToMoveCursorBegin() = 0;
virtual void OnSwipeToMoveCursorEnd() = 0;
virtual void OnClientHitTestRegionUpdated(
ui::TouchSelectionControllerClient* client) = 0;
class CONTENT_EXPORT Observer : public base::CheckedObserver {
public:
virtual void OnManagerWillDestroy(
TouchSelectionControllerClientManager* manager) = 0;
};
virtual void UpdateClientSelectionBounds(
const gfx::SelectionBound& start,
const gfx::SelectionBound& end,
ui::TouchSelectionControllerClient* client,
ui::TouchSelectionMenuClient* menu_client) = 0;
virtual void InvalidateClient(ui::TouchSelectionControllerClient* client) = 0;
virtual ui::TouchSelectionController* GetTouchSelectionController() = 0;
virtual void AddObserver(Observer* observer) = 0;
virtual void RemoveObserver(Observer* observer) = 0;
virtual void ShowContextMenu(const gfx::Point& location) {}
#if BUILDFLAG(ARKWEB_PDF)
virtual void UpdateClientClippedSelectionBounds(const gfx::Rect& clipped_selection_bounds) {}
virtual void HideHandleAndQuickMenuIfNecessary(bool hide_handles) {}
virtual void ConvertClientClippedSelectionBounds(gfx::Rect& clipped_selection_bounds) {}
virtual void ResetResponsePendingInputEvent() {}
virtual void UpdateQuickMenu() {}
virtual void SetQuickMenuRequested(bool is_visible) {}
virtual void SetIsPdfDocument(bool is_pdf_document) {}
#endif
};
}
#endif