#ifndef UI_GTK_X_GTK_UI_PLATFORM_X11_H_
#define UI_GTK_X_GTK_UI_PLATFORM_X11_H_
#include "base/memory/raw_ref.h"
#include "ui/gfx/native_ui_types.h"
#include "ui/gfx/x/connection.h"
#include "ui/gtk/gtk_ui_platform.h"
namespace gtk {
class GtkEventLoopX11;
class GtkUiPlatformX11 : public GtkUiPlatform {
public:
GtkUiPlatformX11();
GtkUiPlatformX11(const GtkUiPlatformX11&) = delete;
GtkUiPlatformX11& operator=(const GtkUiPlatformX11&) = delete;
~GtkUiPlatformX11() override;
void OnInitialized() override;
GdkWindow* GetGdkWindow(gfx::AcceleratedWidget window_id) override;
void SetGtkWidgetTransientFor(GtkWidget* widget,
gfx::AcceleratedWidget parent) override;
void ClearTransientFor(gfx::AcceleratedWidget parent) override;
void ShowGtkWindow(GtkWindow* window) override;
std::unique_ptr<ui::LinuxInputMethodContext> CreateInputMethodContext(
ui::LinuxInputMethodContextDelegate* delegate) const override;
bool IncludeFontScaleInDeviceScale() const override;
bool IncludeScaleInCursorSize() const override;
private:
const raw_ref<x11::Connection> connection_;
std::unique_ptr<GtkEventLoopX11> event_loop_;
};
}
#endif