Browse Source

rename interfaces and fix most native code warnings.

pull/3762/head
Dan Walmsley 6 years ago
parent
commit
4aa10242cc
  1. 37
      native/Avalonia.Native/inc/avalonia-native.h
  2. 3
      native/Avalonia.Native/src/OSX/app.mm
  3. 10
      native/Avalonia.Native/src/OSX/common.h
  4. 13
      native/Avalonia.Native/src/OSX/main.mm
  5. 10
      native/Avalonia.Native/src/OSX/menu.h
  6. 18
      native/Avalonia.Native/src/OSX/menu.mm
  7. 4
      native/Avalonia.Native/src/OSX/platformthreading.mm
  8. 2
      native/Avalonia.Native/src/OSX/window.h
  9. 6
      native/Avalonia.Native/src/OSX/window.mm
  10. 2
      src/Avalonia.Native/AvaloniaNativeMenuExporter.cs
  11. 16
      src/Avalonia.Native/IAvnMenu.cs
  12. 4
      src/Avalonia.Native/IAvnMenuItem.cs

37
native/Avalonia.Native/inc/avalonia-native.h

@ -19,8 +19,9 @@ struct IAvnGlContext;
struct IAvnGlDisplay;
struct IAvnGlSurfaceRenderTarget;
struct IAvnGlSurfaceRenderingSession;
struct IAvnAppMenu;
struct IAvnAppMenuItem;
struct IAvnMenu;
struct IAvnMenuItem;
struct IAvnMenuEvents;
enum SystemDecorations {
SystemDecorationsNone = 0,
@ -188,11 +189,11 @@ public:
virtual HRESULT CreateClipboard(IAvnClipboard** ppv) = 0;
virtual HRESULT CreateCursorFactory(IAvnCursorFactory** ppv) = 0;
virtual HRESULT ObtainGlDisplay(IAvnGlDisplay** ppv) = 0;
virtual HRESULT ObtainAppMenu(IAvnAppMenu** retOut) = 0;
virtual HRESULT SetAppMenu(IAvnAppMenu* menu) = 0;
virtual HRESULT CreateMenu (IAvnAppMenu** ppv) = 0;
virtual HRESULT CreateMenuItem (IAvnAppMenuItem** ppv) = 0;
virtual HRESULT CreateMenuItemSeperator (IAvnAppMenuItem** ppv) = 0;
virtual HRESULT ObtainAppMenu(IAvnMenu** retOut) = 0;
virtual HRESULT SetAppMenu(IAvnMenu* menu) = 0;
virtual HRESULT CreateMenu (IAvnMenuEvents* cb, IAvnMenu** ppv) = 0;
virtual HRESULT CreateMenuItem (IAvnMenuItem** ppv) = 0;
virtual HRESULT CreateMenuItemSeperator (IAvnMenuItem** ppv) = 0;
};
AVNCOM(IAvnString, 17) : IUnknown
@ -222,8 +223,8 @@ AVNCOM(IAvnWindowBase, 02) : IUnknown
virtual HRESULT SetTopMost (bool value) = 0;
virtual HRESULT SetCursor(IAvnCursor* cursor) = 0;
virtual HRESULT CreateGlRenderTarget(IAvnGlSurfaceRenderTarget** ret) = 0;
virtual HRESULT SetMainMenu(IAvnAppMenu* menu) = 0;
virtual HRESULT ObtainMainMenu(IAvnAppMenu** retOut) = 0;
virtual HRESULT SetMainMenu(IAvnMenu* menu) = 0;
virtual HRESULT ObtainMainMenu(IAvnMenu** retOut) = 0;
virtual HRESULT ObtainNSWindowHandle(void** retOut) = 0;
virtual HRESULT ObtainNSWindowHandleRetained(void** retOut) = 0;
virtual HRESULT ObtainNSViewHandle(void** retOut) = 0;
@ -388,10 +389,10 @@ AVNCOM(IAvnGlSurfaceRenderingSession, 16) : IUnknown
virtual HRESULT GetScaling(double* ret) = 0;
};
AVNCOM(IAvnAppMenu, 17) : IUnknown
AVNCOM(IAvnMenu, 17) : IUnknown
{
virtual HRESULT InsertItem (int index, IAvnAppMenuItem* item) = 0;
virtual HRESULT RemoveItem (IAvnAppMenuItem* item) = 0;
virtual HRESULT InsertItem (int index, IAvnMenuItem* item) = 0;
virtual HRESULT RemoveItem (IAvnMenuItem* item) = 0;
virtual HRESULT SetTitle (void* utf8String) = 0;
virtual HRESULT Clear () = 0;
};
@ -401,13 +402,21 @@ AVNCOM(IAvnPredicateCallback, 18) : IUnknown
virtual bool Evaluate() = 0;
};
AVNCOM(IAvnAppMenuItem, 19) : IUnknown
AVNCOM(IAvnMenuItem, 19) : IUnknown
{
virtual HRESULT SetSubMenu (IAvnAppMenu* menu) = 0;
virtual HRESULT SetSubMenu (IAvnMenu* menu) = 0;
virtual HRESULT SetTitle (void* utf8String) = 0;
virtual HRESULT SetGesture (void* utf8String, AvnInputModifiers modifiers) = 0;
virtual HRESULT SetAction (IAvnPredicateCallback* predicate, IAvnActionCallback* callback) = 0;
virtual HRESULT SetIsChecked (bool isChecked) = 0;
};
AVNCOM(IAvnMenuEvents, 1A) : IUnknown
{
/**
* NeedsUpdate
*/
virtual bool NeedUpdate () = 0;
};
extern "C" IAvaloniaNativeFactory* CreateAvaloniaNative();

3
native/Avalonia.Native/src/OSX/app.mm

@ -2,7 +2,8 @@
@interface AvnAppDelegate : NSObject<NSApplicationDelegate>
@end
extern NSApplicationActivationPolicy AvnDesiredActivationPolicy = NSApplicationActivationPolicyRegular;
NSApplicationActivationPolicy AvnDesiredActivationPolicy = NSApplicationActivationPolicyRegular;
@implementation AvnAppDelegate
- (void)applicationWillFinishLaunching:(NSNotification *)notification
{

10
native/Avalonia.Native/src/OSX/common.h

@ -15,11 +15,11 @@ extern IAvnScreens* CreateScreens();
extern IAvnClipboard* CreateClipboard();
extern IAvnCursorFactory* CreateCursorFactory();
extern IAvnGlDisplay* GetGlDisplay();
extern IAvnAppMenu* CreateAppMenu();
extern IAvnAppMenuItem* CreateAppMenuItem();
extern IAvnAppMenuItem* CreateAppMenuItemSeperator();
extern void SetAppMenu (NSString* appName, IAvnAppMenu* appMenu);
extern IAvnAppMenu* GetAppMenu ();
extern IAvnMenu* CreateAppMenu();
extern IAvnMenuItem* CreateAppMenuItem();
extern IAvnMenuItem* CreateAppMenuItemSeperator();
extern void SetAppMenu (NSString* appName, IAvnMenu* appMenu);
extern IAvnMenu* GetAppMenu ();
extern NSMenuItem* GetAppMenuItem ();
extern void InitializeAvnApp();

13
native/Avalonia.Native/src/OSX/main.mm

@ -92,12 +92,11 @@ void SetProcessName(NSString* appTitle) {
PrivateLSASN asn = ls_get_current_application_asn_func();
// Constant used by WebKit; what exactly it means is unknown.
const int magic_session_constant = -2;
OSErr err =
ls_set_application_information_item_func(magic_session_constant, asn,
ls_display_name_key,
process_name,
NULL /* optional out param */);
//LOG_IF(ERROR, err) << "Call to set process name failed, err " << err;
}
class MacOptions : public ComSingleObject<IAvnMacOptions, &IID_IAvnMacOptions>
@ -228,31 +227,31 @@ public:
return S_OK;
}
virtual HRESULT CreateMenu (IAvnAppMenu** ppv) override
virtual HRESULT CreateMenu (IAvnMenuEvents* cb, IAvnMenu** ppv) override
{
*ppv = ::CreateAppMenu();
return S_OK;
}
virtual HRESULT CreateMenuItem (IAvnAppMenuItem** ppv) override
virtual HRESULT CreateMenuItem (IAvnMenuItem** ppv) override
{
*ppv = ::CreateAppMenuItem();
return S_OK;
}
virtual HRESULT CreateMenuItemSeperator (IAvnAppMenuItem** ppv) override
virtual HRESULT CreateMenuItemSeperator (IAvnMenuItem** ppv) override
{
*ppv = ::CreateAppMenuItemSeperator();
return S_OK;
}
virtual HRESULT SetAppMenu (IAvnAppMenu* appMenu) override
virtual HRESULT SetAppMenu (IAvnMenu* appMenu) override
{
::SetAppMenu(s_appTitle, appMenu);
return S_OK;
}
virtual HRESULT ObtainAppMenu(IAvnAppMenu** retOut) override
virtual HRESULT ObtainAppMenu(IAvnMenu** retOut) override
{
if(retOut == nullptr)
{

10
native/Avalonia.Native/src/OSX/menu.h

@ -23,7 +23,7 @@ class AvnAppMenu;
- (void)didSelectItem:(id)sender;
@end
class AvnAppMenuItem : public ComSingleObject<IAvnAppMenuItem, &IID_IAvnAppMenuItem>
class AvnAppMenuItem : public ComSingleObject<IAvnMenuItem, &IID_IAvnMenuItem>
{
private:
NSMenuItem* _native; // here we hold a pointer to an AvnMenuItem
@ -38,7 +38,7 @@ public:
NSMenuItem* GetNative();
virtual HRESULT SetSubMenu (IAvnAppMenu* menu) override;
virtual HRESULT SetSubMenu (IAvnMenu* menu) override;
virtual HRESULT SetTitle (void* utf8String) override;
@ -54,7 +54,7 @@ public:
};
class AvnAppMenu : public ComSingleObject<IAvnAppMenu, &IID_IAvnAppMenu>
class AvnAppMenu : public ComSingleObject<IAvnMenu, &IID_IAvnMenu>
{
private:
AvnMenu* _native;
@ -66,9 +66,9 @@ public:
AvnMenu* GetNative();
virtual HRESULT InsertItem (int index, IAvnAppMenuItem* item) override;
virtual HRESULT InsertItem (int index, IAvnMenuItem* item) override;
virtual HRESULT RemoveItem (IAvnAppMenuItem* item) override;
virtual HRESULT RemoveItem (IAvnMenuItem* item) override;
virtual HRESULT SetTitle (void* utf8String) override;

18
native/Avalonia.Native/src/OSX/menu.mm

@ -76,7 +76,7 @@ NSMenuItem* AvnAppMenuItem::GetNative()
return _native;
}
HRESULT AvnAppMenuItem::SetSubMenu (IAvnAppMenu* menu)
HRESULT AvnAppMenuItem::SetSubMenu (IAvnMenu* menu)
{
if(menu != nullptr)
{
@ -166,7 +166,7 @@ AvnMenu* AvnAppMenu::GetNative()
return _native;
}
HRESULT AvnAppMenu::InsertItem(int index, IAvnAppMenuItem *item)
HRESULT AvnAppMenu::InsertItem(int index, IAvnMenuItem *item)
{
auto avnMenuItem = dynamic_cast<AvnAppMenuItem*>(item);
@ -178,7 +178,7 @@ HRESULT AvnAppMenu::InsertItem(int index, IAvnAppMenuItem *item)
return S_OK;
}
HRESULT AvnAppMenu::RemoveItem (IAvnAppMenuItem* item)
HRESULT AvnAppMenu::RemoveItem (IAvnMenuItem* item)
{
auto avnMenuItem = dynamic_cast<AvnAppMenuItem*>(item);
@ -236,7 +236,7 @@ HRESULT AvnAppMenu::Clear()
@end
extern IAvnAppMenu* CreateAppMenu()
extern IAvnMenu* CreateAppMenu(IAvnMenuEvents* cb)
{
@autoreleasepool
{
@ -244,7 +244,7 @@ extern IAvnAppMenu* CreateAppMenu()
}
}
extern IAvnAppMenuItem* CreateAppMenuItem()
extern IAvnMenuItem* CreateAppMenuItem()
{
@autoreleasepool
{
@ -252,7 +252,7 @@ extern IAvnAppMenuItem* CreateAppMenuItem()
}
}
extern IAvnAppMenuItem* CreateAppMenuItemSeperator()
extern IAvnMenuItem* CreateAppMenuItemSeperator()
{
@autoreleasepool
{
@ -260,10 +260,10 @@ extern IAvnAppMenuItem* CreateAppMenuItemSeperator()
}
}
static IAvnAppMenu* s_appMenu = nullptr;
static IAvnMenu* s_appMenu = nullptr;
static NSMenuItem* s_appMenuItem = nullptr;
extern void SetAppMenu (NSString* appName, IAvnAppMenu* menu)
extern void SetAppMenu (NSString* appName, IAvnMenu* menu)
{
s_appMenu = menu;
@ -344,7 +344,7 @@ extern void SetAppMenu (NSString* appName, IAvnAppMenu* menu)
}
}
extern IAvnAppMenu* GetAppMenu ()
extern IAvnMenu* GetAppMenu ()
{
return s_appMenu;
}

4
native/Avalonia.Native/src/OSX/platformthreading.mm

@ -54,9 +54,11 @@ private:
{
public:
FORWARD_IUNKNOWN()
bool Running = false;
bool Cancelled = false;
virtual void Cancel()
virtual void Cancel() override
{
Cancelled = true;
if(Running)

2
native/Avalonia.Native/src/OSX/window.h

@ -19,7 +19,7 @@ class WindowBaseImpl;
-(void) pollModalSession: (NSModalSession _Nonnull) session;
-(void) restoreParentWindow;
-(bool) shouldTryToHandleEvents;
-(void) applyMenu:(NSMenu *)menu;
-(void) applyMenu:(NSMenu *_Nullable)menu;
-(double) getScaling;
@end

6
native/Avalonia.Native/src/OSX/window.mm

@ -27,7 +27,7 @@ public:
NSObject<IRenderTarget>* renderTarget;
AvnPoint lastPositionSet;
NSString* _lastTitle;
IAvnAppMenu* _mainMenu;
IAvnMenu* _mainMenu;
bool _shown;
WindowBaseImpl(IAvnWindowBaseEvents* events, IAvnGlContext* gl)
@ -234,7 +234,7 @@ public:
}
}
virtual HRESULT SetMainMenu(IAvnAppMenu* menu) override
virtual HRESULT SetMainMenu(IAvnMenu* menu) override
{
_mainMenu = menu;
@ -247,7 +247,7 @@ public:
return S_OK;
}
virtual HRESULT ObtainMainMenu(IAvnAppMenu** ret) override
virtual HRESULT ObtainMainMenu(IAvnMenu** ret) override
{
if(ret == nullptr)
{

2
src/Avalonia.Native/AvaloniaNativeMenuExporter.cs

@ -15,7 +15,7 @@ namespace Avalonia.Native
private bool _exported = false;
private IAvnWindow _nativeWindow;
private NativeMenu _menu;
private IAvnAppMenu _nativeMenu;
private IAvnMenu _nativeMenu;
public AvaloniaNativeMenuExporter(IAvnWindow nativeWindow, IAvaloniaNativeFactory factory)
{

16
src/Avalonia.Native/IAvnAppMenu.cs → src/Avalonia.Native/IAvnMenu.cs

@ -7,16 +7,16 @@ using Avalonia.Platform.Interop;
namespace Avalonia.Native.Interop
{
public partial class IAvnAppMenu
public partial class IAvnMenu
{
private AvaloniaNativeMenuExporter _exporter;
private List<IAvnAppMenuItem> _menuItems = new List<IAvnAppMenuItem>();
private Dictionary<NativeMenuItemBase, IAvnAppMenuItem> _menuItemLookup = new Dictionary<NativeMenuItemBase, IAvnAppMenuItem>();
private List<IAvnMenuItem> _menuItems = new List<IAvnMenuItem>();
private Dictionary<NativeMenuItemBase, IAvnMenuItem> _menuItemLookup = new Dictionary<NativeMenuItemBase, IAvnMenuItem>();
private CompositeDisposable _propertyDisposables = new CompositeDisposable();
internal NativeMenu ManagedMenu { get; private set; }
private void RemoveAndDispose(IAvnAppMenuItem item)
private void RemoveAndDispose(IAvnMenuItem item)
{
_menuItemLookup.Remove(item.ManagedMenuItem);
_menuItems.Remove(item);
@ -26,7 +26,7 @@ namespace Avalonia.Native.Interop
item.Dispose();
}
private void MoveExistingTo(int index, IAvnAppMenuItem item)
private void MoveExistingTo(int index, IAvnMenuItem item)
{
_menuItems.Remove(item);
_menuItems.Insert(index, item);
@ -35,7 +35,7 @@ namespace Avalonia.Native.Interop
InsertItem(index, item);
}
private IAvnAppMenuItem CreateNewAt(IAvaloniaNativeFactory factory, int index, NativeMenuItemBase item)
private IAvnMenuItem CreateNewAt(IAvaloniaNativeFactory factory, int index, NativeMenuItemBase item)
{
var result = CreateNew(factory, item);
@ -49,7 +49,7 @@ namespace Avalonia.Native.Interop
return result;
}
private IAvnAppMenuItem CreateNew(IAvaloniaNativeFactory factory, NativeMenuItemBase item)
private IAvnMenuItem CreateNew(IAvaloniaNativeFactory factory, NativeMenuItemBase item)
{
var nativeItem = item is NativeMenuItemSeperator ? factory.CreateMenuItemSeperator() : factory.CreateMenuItem();
nativeItem.ManagedMenuItem = item;
@ -93,7 +93,7 @@ namespace Avalonia.Native.Interop
for (int i = 0; i < menu.Items.Count; i++)
{
IAvnAppMenuItem nativeItem;
IAvnMenuItem nativeItem;
if (i >= _menuItems.Count)
{

4
src/Avalonia.Native/IAvnAppMenuItem.cs → src/Avalonia.Native/IAvnMenuItem.cs

@ -5,9 +5,9 @@ using Avalonia.Platform.Interop;
namespace Avalonia.Native.Interop
{
public partial class IAvnAppMenuItem
public partial class IAvnMenuItem
{
private IAvnAppMenu _subMenu;
private IAvnMenu _subMenu;
private CompositeDisposable _propertyDisposables = new CompositeDisposable();
private IDisposable _currentActionDisposable;
Loading…
Cancel
Save