From f53d491bca9b80ce4400ebce13e86a46d4e56829 Mon Sep 17 00:00:00 2001 From: Jeremy Koritzinsky Date: Mon, 22 Oct 2018 00:03:32 -0700 Subject: [PATCH] Add C++11 override specifier to be explicit about overrides --- build-native.sh | 6 ++ src/Avalonia.Native.OSX/Screens.mm | 4 +- src/Avalonia.Native.OSX/SystemDialogs.mm | 6 +- src/Avalonia.Native.OSX/clipboard.mm | 6 +- src/Avalonia.Native.OSX/cursor.mm | 2 +- src/Avalonia.Native.OSX/gl.mm | 20 +++--- src/Avalonia.Native.OSX/main.mm | 22 +++--- src/Avalonia.Native.OSX/platformthreading.mm | 14 ++-- src/Avalonia.Native.OSX/window.mm | 74 ++++++++++---------- src/Avalonia.Native/headers/comimpl.h | 9 +-- 10 files changed, 85 insertions(+), 78 deletions(-) create mode 100644 build-native.sh diff --git a/build-native.sh b/build-native.sh new file mode 100644 index 0000000000..5983751dce --- /dev/null +++ b/build-native.sh @@ -0,0 +1,6 @@ +# /bin/sh + +mkdir native-build +cd native-build +cmake -DCMAKE_BUILD_TYPE=$1 ../native +cmake --build . --target install \ No newline at end of file diff --git a/src/Avalonia.Native.OSX/Screens.mm b/src/Avalonia.Native.OSX/Screens.mm index 229c598797..9d436b98c5 100644 --- a/src/Avalonia.Native.OSX/Screens.mm +++ b/src/Avalonia.Native.OSX/Screens.mm @@ -7,7 +7,7 @@ class Screens : public ComSingleObject { public: FORWARD_IUNKNOWN() - virtual HRESULT GetScreenCount (int* ret) + virtual HRESULT GetScreenCount (int* ret) override { @autoreleasepool { @@ -17,7 +17,7 @@ class Screens : public ComSingleObject } } - virtual HRESULT GetScreen (int index, AvnScreen* ret) + virtual HRESULT GetScreen (int index, AvnScreen* ret) override { @autoreleasepool { diff --git a/src/Avalonia.Native.OSX/SystemDialogs.mm b/src/Avalonia.Native.OSX/SystemDialogs.mm index 55b1abc720..7049f77d20 100644 --- a/src/Avalonia.Native.OSX/SystemDialogs.mm +++ b/src/Avalonia.Native.OSX/SystemDialogs.mm @@ -11,7 +11,7 @@ public: virtual void SelectFolderDialog (IAvnWindow* parentWindowHandle, IAvnSystemDialogEvents* events, const char* title, - const char* initialDirectory) + const char* initialDirectory) override { @autoreleasepool { @@ -88,7 +88,7 @@ public: const char* title, const char* initialDirectory, const char* initialFile, - const char* filters) + const char* filters) override { @autoreleasepool { @@ -179,7 +179,7 @@ public: const char* title, const char* initialDirectory, const char* initialFile, - const char* filters) + const char* filters) override { @autoreleasepool { diff --git a/src/Avalonia.Native.OSX/clipboard.mm b/src/Avalonia.Native.OSX/clipboard.mm index e39b78fc33..19e5c25801 100644 --- a/src/Avalonia.Native.OSX/clipboard.mm +++ b/src/Avalonia.Native.OSX/clipboard.mm @@ -7,7 +7,7 @@ class Clipboard : public ComSingleObject { public: FORWARD_IUNKNOWN() - virtual HRESULT GetText (void** retOut) + virtual HRESULT GetText (void** retOut) override { @autoreleasepool { @@ -18,7 +18,7 @@ public: return S_OK; } - virtual HRESULT SetText (char* text) + virtual HRESULT SetText (char* text) override { @autoreleasepool { @@ -30,7 +30,7 @@ public: return S_OK; } - virtual HRESULT Clear() + virtual HRESULT Clear() override { @autoreleasepool { diff --git a/src/Avalonia.Native.OSX/cursor.mm b/src/Avalonia.Native.OSX/cursor.mm index 6a06918527..bd2c94a4d8 100644 --- a/src/Avalonia.Native.OSX/cursor.mm +++ b/src/Avalonia.Native.OSX/cursor.mm @@ -51,7 +51,7 @@ class CursorFactory : public ComSingleObjectAddRef(); return S_OK; } - virtual HRESULT ObtainImmediateContext(IAvnGlContext**retOut) + virtual HRESULT ObtainImmediateContext(IAvnGlContext**retOut) override { *retOut = _immediate; _immediate->AddRef(); @@ -193,14 +193,14 @@ public: _view = view; } - virtual HRESULT GetPixelSize(AvnPixelSize* ret) + virtual HRESULT GetPixelSize(AvnPixelSize* ret) override { auto fsize = [_view convertSizeToBacking: [_view frame].size]; ret->Width = (int)fsize.width; ret->Height = (int)fsize.height; return S_OK; } - virtual HRESULT GetScaling(double* ret) + virtual HRESULT GetScaling(double* ret) override { *ret = [_window backingScaleFactor]; return S_OK; @@ -230,7 +230,7 @@ public: _context = GetFeature()->CreateContext(); } - virtual HRESULT BeginDrawing(IAvnGlSurfaceRenderingSession** ret) + virtual HRESULT BeginDrawing(IAvnGlSurfaceRenderingSession** ret) override { auto f = GetFeature(); if(f == NULL) diff --git a/src/Avalonia.Native.OSX/main.mm b/src/Avalonia.Native.OSX/main.mm index bb32c44918..4d6dcfed85 100644 --- a/src/Avalonia.Native.OSX/main.mm +++ b/src/Avalonia.Native.OSX/main.mm @@ -16,7 +16,7 @@ class MacOptions : public ComSingleObject { public: FORWARD_IUNKNOWN() - virtual HRESULT SetShowInDock(int show) + virtual HRESULT SetShowInDock(int show) override { ShowInDock = show; SetActivationPolicy(); @@ -64,7 +64,7 @@ class AvaloniaNative : public ComSingleObject(cancel); @@ -125,12 +125,12 @@ public: } } - virtual void Signal(int priority) + virtual void Signal(int priority) override { [_signaler signal:priority]; } - virtual IUnknown* StartTimer(int priority, int ms, IAvnActionCallback* callback) + virtual IUnknown* StartTimer(int priority, int ms, IAvnActionCallback* callback) override { @autoreleasepool { diff --git a/src/Avalonia.Native.OSX/window.mm b/src/Avalonia.Native.OSX/window.mm index 2e9f7503fb..76243493c4 100644 --- a/src/Avalonia.Native.OSX/window.mm +++ b/src/Avalonia.Native.OSX/window.mm @@ -81,12 +81,12 @@ public: [Window setContentView: View]; } - virtual AvnWindow* GetNSWindow() + virtual AvnWindow* GetNSWindow() override { return Window; } - virtual HRESULT Show() + virtual HRESULT Show() override { @autoreleasepool { @@ -102,7 +102,7 @@ public: } } - virtual HRESULT Hide () + virtual HRESULT Hide () override { @autoreleasepool { @@ -115,7 +115,7 @@ public: } } - virtual HRESULT Activate () + virtual HRESULT Activate () override { @autoreleasepool { @@ -128,7 +128,7 @@ public: return S_OK; } - virtual HRESULT SetTopMost (bool value) + virtual HRESULT SetTopMost (bool value) override { @autoreleasepool { @@ -138,7 +138,7 @@ public: } } - virtual HRESULT Close() + virtual HRESULT Close() override { @autoreleasepool { @@ -147,7 +147,7 @@ public: } } - virtual HRESULT GetClientSize(AvnSize* ret) + virtual HRESULT GetClientSize(AvnSize* ret) override { @autoreleasepool { @@ -160,7 +160,7 @@ public: } } - virtual HRESULT GetMaxClientSize(AvnSize* ret) + virtual HRESULT GetMaxClientSize(AvnSize* ret) override { @autoreleasepool { @@ -176,7 +176,7 @@ public: } } - virtual HRESULT GetScaling (double* ret) + virtual HRESULT GetScaling (double* ret) override { @autoreleasepool { @@ -194,7 +194,7 @@ public: } } - virtual HRESULT SetMinMaxSize (AvnSize minSize, AvnSize maxSize) + virtual HRESULT SetMinMaxSize (AvnSize minSize, AvnSize maxSize) override { @autoreleasepool { @@ -205,7 +205,7 @@ public: } } - virtual HRESULT Resize(double x, double y) + virtual HRESULT Resize(double x, double y) override { @autoreleasepool { @@ -215,7 +215,7 @@ public: } } - virtual HRESULT Invalidate (AvnRect rect) + virtual HRESULT Invalidate (AvnRect rect) override { @autoreleasepool { @@ -225,7 +225,7 @@ public: } } - virtual bool TryLock() + virtual bool TryLock() override { @autoreleasepool { @@ -233,7 +233,7 @@ public: } } - virtual void Unlock() + virtual void Unlock() override { @autoreleasepool { @@ -241,7 +241,7 @@ public: } } - virtual HRESULT BeginMoveDrag () + virtual HRESULT BeginMoveDrag () override { @autoreleasepool { @@ -258,12 +258,12 @@ public: } } - virtual HRESULT BeginResizeDrag (AvnWindowEdge edge) + virtual HRESULT BeginResizeDrag (AvnWindowEdge edge) override { return S_OK; } - virtual HRESULT GetPosition (AvnPoint* ret) + virtual HRESULT GetPosition (AvnPoint* ret) override { @autoreleasepool { @@ -283,7 +283,7 @@ public: } } - virtual HRESULT SetPosition (AvnPoint point) + virtual HRESULT SetPosition (AvnPoint point) override { @autoreleasepool { @@ -294,7 +294,7 @@ public: } } - virtual HRESULT PointToClient (AvnPoint point, AvnPoint* ret) + virtual HRESULT PointToClient (AvnPoint point, AvnPoint* ret) override { @autoreleasepool { @@ -312,7 +312,7 @@ public: } } - virtual HRESULT PointToScreen (AvnPoint point, AvnPoint* ret) + virtual HRESULT PointToScreen (AvnPoint point, AvnPoint* ret) override { @autoreleasepool { @@ -329,13 +329,13 @@ public: } } - virtual HRESULT ThreadSafeSetSwRenderedFrame(AvnFramebuffer* fb, IUnknown* dispose) + virtual HRESULT ThreadSafeSetSwRenderedFrame(AvnFramebuffer* fb, IUnknown* dispose) override { [View setSwRenderedFrame: fb dispose: dispose]; return S_OK; } - virtual HRESULT GetSoftwareFramebuffer(AvnFramebuffer*ret) + virtual HRESULT GetSoftwareFramebuffer(AvnFramebuffer*ret) override { if(![[NSThread currentThread] isMainThread]) return E_FAIL; @@ -345,7 +345,7 @@ public: return S_OK; } - virtual HRESULT SetCursor(IAvnCursor* cursor) + virtual HRESULT SetCursor(IAvnCursor* cursor) override { @autoreleasepool { @@ -367,7 +367,7 @@ public: } } - virtual HRESULT CreateGlRenderTarget(IAvnGlSurfaceRenderTarget** ppv) + virtual HRESULT CreateGlRenderTarget(IAvnGlSurfaceRenderTarget** ppv) override { if(View == NULL) return E_FAIL; @@ -440,7 +440,7 @@ private: [Window setCanBecomeKeyAndMain]; } - virtual HRESULT Show () + virtual HRESULT Show () override { @autoreleasepool { @@ -450,7 +450,7 @@ private: } } - virtual HRESULT ShowDialog (IUnknown**ppv) + virtual HRESULT ShowDialog (IUnknown**ppv) override { @autoreleasepool { @@ -475,7 +475,7 @@ private: } } - void WindowStateChanged () + void WindowStateChanged () override { AvnWindowState state; GetWindowState(&state); @@ -509,7 +509,7 @@ private: } } - virtual HRESULT SetCanResize(bool value) + virtual HRESULT SetCanResize(bool value) override { @autoreleasepool { @@ -519,7 +519,7 @@ private: } } - virtual HRESULT SetHasDecorations(bool value) + virtual HRESULT SetHasDecorations(bool value) override { @autoreleasepool { @@ -530,7 +530,7 @@ private: } } - virtual HRESULT SetTitle (const char* title) + virtual HRESULT SetTitle (const char* title) override { @autoreleasepool { @@ -542,7 +542,7 @@ private: } } - virtual HRESULT SetTitleBarColor(AvnColor color) + virtual HRESULT SetTitleBarColor(AvnColor color) override { @autoreleasepool { @@ -571,7 +571,7 @@ private: return S_OK; } - virtual HRESULT GetWindowState (AvnWindowState*ret) + virtual HRESULT GetWindowState (AvnWindowState*ret) override { @autoreleasepool { @@ -598,7 +598,7 @@ private: } } - virtual HRESULT SetWindowState (AvnWindowState state) + virtual HRESULT SetWindowState (AvnWindowState state) override { @autoreleasepool { @@ -642,7 +642,7 @@ private: } protected: - virtual void OnResized () + virtual void OnResized () override { auto windowState = [Window isMiniaturized] ? Minimized : (IsZoomed() ? Maximized : Normal); @@ -655,7 +655,7 @@ protected: } } - virtual NSWindowStyleMask GetStyle() + virtual NSWindowStyleMask GetStyle() override { unsigned long s = NSWindowStyleMaskBorderless; if(_hasDecorations) @@ -1192,12 +1192,12 @@ private: } protected: - virtual NSWindowStyleMask GetStyle() + virtual NSWindowStyleMask GetStyle() override { return NSWindowStyleMaskBorderless; } - virtual HRESULT Resize(double x, double y) + virtual HRESULT Resize(double x, double y) override { @autoreleasepool { diff --git a/src/Avalonia.Native/headers/comimpl.h b/src/Avalonia.Native/headers/comimpl.h index cea6d2207a..cf1aa4c735 100644 --- a/src/Avalonia.Native/headers/comimpl.h +++ b/src/Avalonia.Native/headers/comimpl.h @@ -63,19 +63,20 @@ public: #define FORWARD_IUNKNOWN() \ -virtual ULONG Release(){ \ +virtual ULONG Release() override \ +{ \ return ComObject::Release(); \ } \ -virtual ULONG AddRef() \ +virtual ULONG AddRef() override \ { \ return ComObject::AddRef(); \ } \ -virtual HRESULT QueryInterface(REFIID riid, void **ppvObject) \ +virtual HRESULT QueryInterface(REFIID riid, void **ppvObject) override \ { \ return ComObject::QueryInterface(riid, ppvObject); \ } -#define BEGIN_INTERFACE_MAP() public: virtual HRESULT STDMETHODCALLTYPE QueryInterfaceImpl(REFIID riid, void **ppvObject){ +#define BEGIN_INTERFACE_MAP() public: virtual HRESULT STDMETHODCALLTYPE QueryInterfaceImpl(REFIID riid, void **ppvObject) override { #define INTERFACE_MAP_ENTRY(TInterface, IID) if(0 == memcmp(riid, &IID, sizeof(GUID))) { TInterface* casted = this; *ppvObject = casted; return S_OK; } #define END_INTERFACE_MAP() return E_NOINTERFACE; } #define INHERIT_INTERFACE_MAP(TBase) if(TBase::QueryInterfaceImpl(riid, ppvObject) == S_OK) return S_OK;