Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(399)

Unified Diff: ui/wayland/wayland_screen.cc

Issue 7457023: Adding a Wayland basic toolkit (Closed) Base URL: http://git.chromium.org/git/chromium.git@trunk
Patch Set: Fixed argument layout Created 9 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: ui/wayland/wayland_screen.cc
diff --git a/ui/wayland/wayland_screen.cc b/ui/wayland/wayland_screen.cc
new file mode 100644
index 0000000000000000000000000000000000000000..21e80ce50d1b6fabfc7c8fbff41b8558c70246b1
--- /dev/null
+++ b/ui/wayland/wayland_screen.cc
@@ -0,0 +1,78 @@
+// Copyright (c) 2011 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.
+
+#include "ui/wayland/wayland_screen.h"
+
+#include <wayland-client.h>
+
+#include "ui/wayland/wayland_display.h"
+
+namespace ui {
+
+WaylandScreen::WaylandScreen(WaylandDisplay* display, uint32_t id)
+ : output_(NULL),
+ display_(display) {
+ static const wl_output_listener kOutputListener = {
tfarina 2011/07/25 18:34:27 This body should be indent just 2 spaces.
+ WaylandScreen::OutputHandleGeometry,
+ WaylandScreen::OutputHandleMode,
+ };
+
+ output_ = wl_output_create(display_->GetNativeDisplay(), id, 1);
+ wl_output_add_listener(output_, &kOutputListener, this);
+}
+
+WaylandScreen::~WaylandScreen() {
+ if (output_)
+ wl_output_destroy(output_);
+}
+
+gfx::Rect WaylandScreen::GetAllocation() const {
+ gfx::Rect allocation;
+ allocation.set_origin(position_);
+
+ // Find the active mode and pass its dimensions
tfarina 2011/07/25 18:34:27 period.
+ for (Modes::const_iterator it = modes_.begin(); it != modes_.end(); it++) {
tfarina 2011/07/25 18:34:27 just |i| instead of |it| is fine.
tfarina 2011/07/25 18:34:27 ++i
+ if ((*it).flags & WL_OUTPUT_MODE_CURRENT) {
+ allocation.set_width((*it).width);
+ allocation.set_height((*it).height);
+ break;
+ }
+ }
+
+ return allocation;
+}
+
+// static
+void WaylandScreen::OutputHandleGeometry(void* data,
+ wl_output* output,
+ int32_t x,
+ int32_t y,
+ int32_t physical_width,
+ int32_t physical_height,
+ int32_t subpixel,
+ const char* make,
+ const char* model) {
+ WaylandScreen* screen = static_cast<WaylandScreen*>(data);
+ screen->position_.SetPoint(x, y);
+}
+
+// static
+void WaylandScreen::OutputHandleMode(void* data,
+ wl_output* wl_output,
+ uint32_t flags,
+ int32_t width,
+ int32_t height,
+ int32_t refresh) {
+ WaylandScreen* screen = static_cast<WaylandScreen*>(data);
+
+ Mode mode;
+ mode.width = width;
+ mode.height = height;
+ mode.refresh = refresh;
+ mode.flags = flags;
+
+ screen->modes_.push_back(mode);
+}
+
+} // namespace ui

Powered by Google App Engine
This is Rietveld 408576698