~aacid/unity-mir/requires_pkg

« back to all changes in this revision

Viewing changes to src/unity-mir/surfacebuilder.h

  • Committer: Tarmac
  • Author(s): Alan Griffiths
  • Date: 2013-11-08 11:31:43 UTC
  • mfrom: (141.1.1 unity-mir)
  • Revision ID: tarmac-20131108113143-hrsr0g1ixxjesl3g
Avoid relying on an explicit Mir typename that changes in a refactoring coming soon.

Approved by Gerry Boland, PS Jenkins bot.

Show diffs side-by-side

added added

removed removed

Lines of Context:
21
21
 
22
22
#include "mir/shell/surface_builder.h"
23
23
 
 
24
#include <type_traits>
 
25
 
24
26
namespace mir { namespace surfaces { class SurfaceStackModel; }}
25
27
 
26
28
class SurfaceBuilder : public QObject, public mir::shell::SurfaceBuilder
28
30
    Q_OBJECT
29
31
 
30
32
public:
 
33
 
 
34
    // A bit ugly, but makes code portable across some Mir refactoring
 
35
    // I will come back and tidy up! - alan_g
 
36
    using SurfacePtr = std::result_of<
 
37
        decltype(&mir::shell::SurfaceBuilder::create_surface)
 
38
        (mir::shell::SurfaceBuilder*, mir::shell::Session*, mir::shell::SurfaceCreationParameters const&)>::type;
 
39
 
31
40
    explicit SurfaceBuilder(const std::shared_ptr<mir::shell::SurfaceBuilder>& surfaceBuilder, QObject *parent = 0);
32
41
    ~SurfaceBuilder();
33
42
 
34
 
    virtual void destroy_surface(std::weak_ptr<mir::surfaces::Surface> const& surface) override;
 
43
    virtual void destroy_surface(SurfacePtr const& surface) override;
35
44
 
36
 
    virtual std::weak_ptr<mir::surfaces::Surface> create_surface(
 
45
    virtual SurfacePtr create_surface(
37
46
            mir::shell::Session* session,
38
47
            const mir::shell::SurfaceCreationParameters &params) override;
39
48