Chromium Code Reviews| Index: ui/ozone/platform_object.h |
| diff --git a/ui/ozone/platform_object.h b/ui/ozone/platform_object.h |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..3d3a65ae5240cd2e1aadb175718f220b8aa6f607 |
| --- /dev/null |
| +++ b/ui/ozone/platform_object.h |
| @@ -0,0 +1,34 @@ |
| +// Copyright 2014 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. |
| + |
| +#ifndef UI_OZONE_PLATFORM_OBJECT_H_ |
| +#define UI_OZONE_PLATFORM_OBJECT_H_ |
| + |
| +#include "base/memory/scoped_ptr.h" |
| + |
| +namespace ui { |
| + |
| +// Create an instance of platform specific object. |
| +// |
| +// This calls a static constructor function based on the --ozone-platform flag. |
| +// |
| +// For the platform called "foo", PlatformObject<PlatformWidget> will ultimately |
| +// call the function with signature |
| +// |
| +// Bar* CreatePlatformWidgetFoo(); |
| +// |
| +// A definition of this function for each compiled platform must be provided, or |
| +// link errors will result. |
| +// |
| +// To find the right constructor function, this uses static data defined in the |
| +// source file generated by the generate_constructor_list.py. |
| +template <class T> |
| +class PlatformObject { |
| + public: |
| + static scoped_ptr<T> Create(); |
| +}; |
|
vignatti (out of this project)
2014/06/06 17:03:01
just like I told you on IRC, PlatformObject being
spang
2014/06/06 17:05:08
Your problem was just a bug in the script. Should
|
| + |
| +} // namespace ui |
| + |
| +#endif // UI_OZONE_PLATFORM_OBJECT_H_ |