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

Side by Side Diff: ui/base/x/x11_util.h

Issue 989993002: x11: Use scoped_ptr<> for X11 objects where it makes sense. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: . Created 5 years, 9 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 unified diff | Download patch
« no previous file with comments | « ui/base/x/selection_owner.cc ('k') | ui/base/x/x11_util.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef UI_BASE_X_X11_UTIL_H_ 5 #ifndef UI_BASE_X_X11_UTIL_H_
6 #define UI_BASE_X_X11_UTIL_H_ 6 #define UI_BASE_X_X11_UTIL_H_
7 7
8 // This file declares utility functions for X11 (Linux only). 8 // This file declares utility functions for X11 (Linux only).
9 // 9 //
10 // These functions do not require the Xlib headers to be included (which is why 10 // These functions do not require the Xlib headers to be included (which is why
(...skipping 283 matching lines...) Expand 10 before | Expand all | Expand 10 after
294 UI_BASE_EXPORT bool IsX11WindowFullScreen(XID window); 294 UI_BASE_EXPORT bool IsX11WindowFullScreen(XID window);
295 295
296 // Returns true if the window manager supports the given hint. 296 // Returns true if the window manager supports the given hint.
297 UI_BASE_EXPORT bool WmSupportsHint(XAtom atom); 297 UI_BASE_EXPORT bool WmSupportsHint(XAtom atom);
298 298
299 // Manages a piece of X11 allocated memory as a RefCountedMemory segment. This 299 // Manages a piece of X11 allocated memory as a RefCountedMemory segment. This
300 // object takes ownership over the passed in memory and will free it with the 300 // object takes ownership over the passed in memory and will free it with the
301 // X11 allocator when done. 301 // X11 allocator when done.
302 class UI_BASE_EXPORT XRefcountedMemory : public base::RefCountedMemory { 302 class UI_BASE_EXPORT XRefcountedMemory : public base::RefCountedMemory {
303 public: 303 public:
304 XRefcountedMemory(unsigned char* x11_data, size_t length) 304 XRefcountedMemory(unsigned char* x11_data, size_t length);
305 : x11_data_(length ? x11_data : NULL), length_(length) {}
306 305
307 // Overridden from RefCountedMemory: 306 // Overridden from RefCountedMemory:
308 const unsigned char* front() const override; 307 const unsigned char* front() const override;
309 size_t size() const override; 308 size_t size() const override;
310 309
311 private: 310 private:
312 ~XRefcountedMemory() override; 311 ~XRefcountedMemory() override;
313 312
314 unsigned char* x11_data_; 313 gfx::XScopedPtr<unsigned char> x11_data_;
315 size_t length_; 314 size_t length_;
316 315
317 DISALLOW_COPY_AND_ASSIGN(XRefcountedMemory); 316 DISALLOW_COPY_AND_ASSIGN(XRefcountedMemory);
318 }; 317 };
319 318
320 // Keeps track of a string returned by an X function (e.g. XGetAtomName) and
321 // makes sure it's XFree'd.
322 class UI_BASE_EXPORT XScopedString {
323 public:
324 explicit XScopedString(char* str) : string_(str) {}
325 ~XScopedString();
326
327 const char* string() const { return string_; }
328
329 private:
330 char* string_;
331
332 DISALLOW_COPY_AND_ASSIGN(XScopedString);
333 };
334
335 // Keeps track of an image returned by an X function (e.g. XGetImage) and 319 // Keeps track of an image returned by an X function (e.g. XGetImage) and
336 // makes sure it's XDestroyImage'd. 320 // makes sure it's XDestroyImage'd.
337 class UI_BASE_EXPORT XScopedImage { 321 class UI_BASE_EXPORT XScopedImage {
338 public: 322 public:
339 explicit XScopedImage(XImage* image) : image_(image) {} 323 explicit XScopedImage(XImage* image) : image_(image) {}
340 ~XScopedImage(); 324 ~XScopedImage();
341 325
342 XImage* get() const { return image_; } 326 XImage* get() const { return image_; }
343 327
344 XImage* operator->() const { return image_; } 328 XImage* operator->() const { return image_; }
(...skipping 30 matching lines...) Expand all
375 UI_BASE_EXPORT void ResetXCursorCache(); 359 UI_BASE_EXPORT void ResetXCursorCache();
376 360
377 // Returns the cached XcursorImage for |cursor|. 361 // Returns the cached XcursorImage for |cursor|.
378 UI_BASE_EXPORT const XcursorImage* GetCachedXcursorImage(::Cursor cursor); 362 UI_BASE_EXPORT const XcursorImage* GetCachedXcursorImage(::Cursor cursor);
379 363
380 } // namespace test 364 } // namespace test
381 365
382 } // namespace ui 366 } // namespace ui
383 367
384 #endif // UI_BASE_X_X11_UTIL_H_ 368 #endif // UI_BASE_X_X11_UTIL_H_
OLDNEW
« no previous file with comments | « ui/base/x/selection_owner.cc ('k') | ui/base/x/x11_util.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698