mirror of
https://github.com/AtomUI/AtomUI.git
synced 2026-10-17 05:31:01 +08:00
Add libAtomUI
This commit is contained in:
+7
-16
@@ -19,13 +19,6 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Tests", "Tests", "{279BC2C9
|
||||
EndProject
|
||||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Generators", "Generators", "{B4C46C3E-0CCC-4861-95B6-CA08D501A46F}"
|
||||
EndProject
|
||||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AtomUI", "packages\AtomUI\AtomUI.csproj", "{89A98C0D-B6F7-48CD-91C4-79FC0FED3615}"
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
{87085491-3C99-4C8F-8FA6-F179B9569CE8} = {87085491-3C99-4C8F-8FA6-F179B9569CE8}
|
||||
{8FFEB15F-7E48-4AF4-B708-8E96A68CF2D9} = {8FFEB15F-7E48-4AF4-B708-8E96A68CF2D9}
|
||||
{A07CB66E-7A5F-4C44-BB16-02A0A99D6C2D} = {A07CB66E-7A5F-4C44-BB16-02A0A99D6C2D}
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AtomUI.Platform.Win32", "src\AtomUI.Platform.Win32\AtomUI.Platform.Win32.csproj", "{9BF7EF51-4100-4EAE-8A95-FC5F1BD4A1E4}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AtomUI.IconPkg", "src\AtomUI.IconPkg\AtomUI.IconPkg.csproj", "{70AC4A1D-2D88-4703-9AB2-89E753E1A04B}"
|
||||
@@ -46,12 +39,13 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Build", "Build", "{5EB2524C
|
||||
build\Output.Local.props = build\Output.Local.props
|
||||
build\Output.props = build\Output.props
|
||||
build\Version.props = build\Version.props
|
||||
build\AtomUINativePackageInfo.props = build\AtomUINativePackageInfo.props
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AtomUI.Platform.MacOS", "src\AtomUI.Platform.MacOS\AtomUI.Platform.MacOS.csproj", "{2049CD2E-5E01-4DB2-83F9-542778DD9CC2}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AtomUI.Native", "src\AtomUI.Native\AtomUI.Native.csproj", "{90F1E4BC-4513-450E-B2B8-C64A779C8A0D}"
|
||||
EndProject
|
||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AtomUI", "packages\AtomUI\AtomUI.csproj", "{EF9E3D8A-7D43-42A4-839E-5B20553B1B72}"
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|Any CPU = Debug|Any CPU
|
||||
@@ -80,9 +74,6 @@ Global
|
||||
{A07CB66E-7A5F-4C44-BB16-02A0A99D6C2D}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{A07CB66E-7A5F-4C44-BB16-02A0A99D6C2D}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{A07CB66E-7A5F-4C44-BB16-02A0A99D6C2D}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{89A98C0D-B6F7-48CD-91C4-79FC0FED3615}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{89A98C0D-B6F7-48CD-91C4-79FC0FED3615}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{89A98C0D-B6F7-48CD-91C4-79FC0FED3615}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{9BF7EF51-4100-4EAE-8A95-FC5F1BD4A1E4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{9BF7EF51-4100-4EAE-8A95-FC5F1BD4A1E4}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{9BF7EF51-4100-4EAE-8A95-FC5F1BD4A1E4}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
@@ -99,14 +90,14 @@ Global
|
||||
{C8BFCDBE-0DC2-411F-B2E4-439A0A8E1752}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{C8BFCDBE-0DC2-411F-B2E4-439A0A8E1752}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{C8BFCDBE-0DC2-411F-B2E4-439A0A8E1752}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{2049CD2E-5E01-4DB2-83F9-542778DD9CC2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{2049CD2E-5E01-4DB2-83F9-542778DD9CC2}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{2049CD2E-5E01-4DB2-83F9-542778DD9CC2}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{2049CD2E-5E01-4DB2-83F9-542778DD9CC2}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{90F1E4BC-4513-450E-B2B8-C64A779C8A0D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{90F1E4BC-4513-450E-B2B8-C64A779C8A0D}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{90F1E4BC-4513-450E-B2B8-C64A779C8A0D}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{90F1E4BC-4513-450E-B2B8-C64A779C8A0D}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{EF9E3D8A-7D43-42A4-839E-5B20553B1B72}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{EF9E3D8A-7D43-42A4-839E-5B20553B1B72}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{EF9E3D8A-7D43-42A4-839E-5B20553B1B72}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{EF9E3D8A-7D43-42A4-839E-5B20553B1B72}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
|
||||
@@ -0,0 +1,25 @@
|
||||
<h1>AtomUI</h1>
|
||||
|
||||
#### Introduce
|
||||
|
||||
AtomUI is an implementation of Ant Design based on .NET technology, dedicated to bringing the excellent and efficient design language and experience of Ant Design to the Avalonia/.NET cross-platform desktop software development field.
|
||||
|
||||
Welcome to communicate and give suggestions to AtomUI, thank you for giving the project a Star.
|
||||
|
||||
#### Features
|
||||
|
||||
- Enterprise-class UI designed from Ant Design system for cross platform desktop applications.
|
||||
- A set of high-quality Avalonia Controls out of the box.
|
||||
- Use .NET development to achieve one-stop writing, seamless compilation on mainstream operating system platforms and render a consistent UI experience.
|
||||
- Based on Avalonia's powerful style system, Ant Design's theme customization capabilities are fully implemented.
|
||||
|
||||
#### License Description
|
||||
Projects using AtomUI need to comply with the LGPL v3 agreement. <strong>Commercial applications (including but not limited to internal company projects, commercial projects developed by individuals using AtomUI, and outsourced projects) are free when using binary links</strong>. If you want to customize AtomUI based on source code, you need to modify the open source code or purchase a commercial license. If you need a commercial license, please contact: Beijing Qinware Software Technology Co., Ltd.
|
||||
|
||||
### 🤝 Contributing
|
||||
|
||||
Contributions of all types are more than welcome, if you are interested in contributing code, feel free to check out our GitHub [Issues][github-issues-link] to get stuck in to show us what you’re made of.
|
||||
|
||||
#### About Qinware
|
||||
|
||||
Qinware Technologies Ltd. is a technology company dedicated to the development of productivity tool software. Since its inception, it has been determined to deepen its roots in the field of tool software, practice the spirit of continuous improvement in research and development, and strive to launch high-quality productivity tool software to serve developers at home and abroad, improve developers' work efficiency, and create commercial value and social value.
|
||||
@@ -0,0 +1,11 @@
|
||||
<Project>
|
||||
<PropertyGroup>
|
||||
<AtomUINativeArtifactName Condition="$([MSBuild]::IsOSPlatform('Linux'))">libAtomUI.so</AtomUINativeArtifactName>
|
||||
<AtomUINativeArtifactName Condition="$([MSBuild]::IsOSPlatform('OSX'))">libAtomUI.dylib</AtomUINativeArtifactName>
|
||||
<AtomUINativeArtifactName Condition="$([MSBuild]::IsOSPlatform('Windows'))">AtomUI.dll</AtomUINativeArtifactName>
|
||||
<AtomUINativeRuntimeType Condition="$([MSBuild]::IsOSPlatform('Linux'))">linux</AtomUINativeRuntimeType>
|
||||
<AtomUINativeRuntimeType Condition="$([MSBuild]::IsOSPlatform('OSX'))">osx</AtomUINativeRuntimeType>
|
||||
<AtomUINativeRuntimeType Condition="$([MSBuild]::IsOSPlatform('Windows'))">win</AtomUINativeRuntimeType>
|
||||
<AtomUINativeDeployPath>runtimes/$(AtomUINativeRuntimeType)/native</AtomUINativeDeployPath>
|
||||
</PropertyGroup>
|
||||
</Project>
|
||||
@@ -2,18 +2,17 @@
|
||||
<PropertyGroup>
|
||||
<GeneratePackageOnBuild Condition=" '$(Configuration)' == 'Release' ">True</GeneratePackageOnBuild>
|
||||
<PackageId>$(MSBuildProjectName)</PackageId>
|
||||
<!--Nuget-->
|
||||
<Title>AtomUI</Title>
|
||||
<Author>Qinware Technologies Ltd.</Author>
|
||||
<Authors>$(Author)</Authors>
|
||||
<Description>AtomUI is an implementation of Ant Design based on .NET technology, and is committed to bringing Ant Design's excellent and efficient design language and experience to the Avalonia/.NET cross-platform desktop software development field.</Description>
|
||||
<PackageTags>avalonia;antdesign;ui;control</PackageTags>
|
||||
<Description>AtomUI is an implementation of AntDesigin based on .NET technology, and is committed to bringing AntDesign's excellent and efficient design language and experience to the Avalonia/.NET cross-platform desktop software development field.</Description>
|
||||
<PackageTags>avalonia;AntDesigin;UI;Control Library</PackageTags>
|
||||
<ProjectUrl>https://qinware.com</ProjectUrl>
|
||||
<RepositoryUrl>https://github.com/chinware/AtomUI</RepositoryUrl>
|
||||
<Company>Qinware Technologies Ltd.</Company>
|
||||
<Copyright>Copyright ©2018-2025, Qinware Technologies Ltd., All Rights Reserved.</Copyright>
|
||||
<PackageIcon>logo.png</PackageIcon>
|
||||
<PackageReadmeFile>README.md</PackageReadmeFile>
|
||||
<PackageReadmeFile>README.nuget.md</PackageReadmeFile>
|
||||
<PackageLicenseFile>LICENSE</PackageLicenseFile>
|
||||
<Version>$(NugetPackageVersion)</Version>
|
||||
</PropertyGroup>
|
||||
@@ -21,7 +20,7 @@
|
||||
<ItemGroup>
|
||||
<None Include="$(MSBuildThisFileDirectory)..\resources\logo.png" Visible="False" Pack="True" PackagePath="\"/>
|
||||
<None Include="$(MSBuildThisFileDirectory)..\LICENSE" Visible="False" Pack="True" PackagePath="\"/>
|
||||
<None Include="$(MSBuildThisFileDirectory)..\README.md" Visible="False" Pack="True" PackagePath="\"/>
|
||||
<None Include="$(MSBuildThisFileDirectory)..\README.nuget.md" Visible="False" Pack="True" PackagePath="\"/>
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
||||
@@ -113,12 +113,12 @@
|
||||
# if defined(__clang__)
|
||||
/* Clang also masquerades as GCC */
|
||||
# if defined(__apple_build_version__)
|
||||
// The Clang version reported by Apple Clang in __clang_major__
|
||||
// and __clang_minor__ does _not_ reflect the actual upstream
|
||||
// version of the compiler. To allow consumers to use a single
|
||||
// define to verify the Clang version we hard-code the versions
|
||||
// based on the best available info we have about the actual
|
||||
// version: http://en.wikipedia.org/wiki/Xcode#Toolchain_Versions
|
||||
// The Clang version reported by Apple Clang in __clang_major__
|
||||
// and __clang_minor__ does _not_ reflect the actual upstream
|
||||
// version of the compiler. To allow consumers to use a single
|
||||
// define to verify the Clang version we hard-code the versions
|
||||
// based on the best available info we have about the actual
|
||||
// version: http://en.wikipedia.org/wiki/Xcode#Toolchain_Versions
|
||||
# if __apple_build_version__ >= 14030022 // Xcode 14.3
|
||||
# define ATOMUI_CC_CLANG 1500
|
||||
# elif __apple_build_version__ >= 14000029 // Xcode 14.0
|
||||
@@ -544,7 +544,7 @@
|
||||
/* C++11 features, see http://clang.llvm.org/cxx_status.html */
|
||||
# if (defined(__cplusplus) && __cplusplus >= 201103L) \
|
||||
|| defined(__GXX_EXPERIMENTAL_CXX0X__)
|
||||
/* Detect C++ features using __has_feature(), see http://clang.llvm.org/docs/LanguageExtensions.html#cxx11 */
|
||||
/* Detect C++ features using __has_feature(), see http://clang.llvm.org/docs/LanguageExtensions.html#cxx11 */
|
||||
# if __has_feature(cxx_alignas)
|
||||
# define ATOMUI_COMPILER_ALIGNAS
|
||||
# define ATOMUI_COMPILER_ALIGNOF
|
||||
@@ -637,7 +637,7 @@
|
||||
# if __has_feature(cxx_variadic_templates)
|
||||
# define ATOMUI_COMPILER_VARIADIC_TEMPLATES
|
||||
# endif
|
||||
/* Features that have no __has_feature() check */
|
||||
/* Features that have no __has_feature() check */
|
||||
# if ATOMUI_CC_CLANG >= 209 /* since clang 2.9 */
|
||||
# define ATOMUI_COMPILER_EXTERN_TEMPLATES
|
||||
# endif
|
||||
@@ -780,7 +780,7 @@
|
||||
# define ATOMUI_COMPILER_STATIC_ASSERT
|
||||
# endif
|
||||
# if ATOMUI_CC_GNU >= 409 && defined(__has_include)
|
||||
/* C11 features supported in GCC 4.9: */
|
||||
/* C11 features supported in GCC 4.9: */
|
||||
# if __has_include(<threads.h>)
|
||||
# define ATOMUI_COMPILER_THREAD_LOCAL
|
||||
# endif
|
||||
|
||||
@@ -18,7 +18,8 @@ inline void atomui_noop()
|
||||
#ifdef __cplusplus
|
||||
noexcept
|
||||
#endif
|
||||
{}
|
||||
{
|
||||
}
|
||||
|
||||
#if defined(ATOMUI_LIBRARY)
|
||||
# define ATOMUI_EXPORT ATOMUI_DECL_EXPORT
|
||||
@@ -28,11 +29,12 @@ inline void atomui_noop()
|
||||
# define ATOMUI_EXPORT ATOMUI_DECL_IMPORT
|
||||
#endif
|
||||
|
||||
namespace atomui {
|
||||
ATOMUI_EXPORT std::string version_string();
|
||||
namespace atomui
|
||||
{
|
||||
ATOMUI_EXPORT std::string version_string();
|
||||
}
|
||||
|
||||
typedef void * ATOMUI_HANDLE;
|
||||
typedef void* ATOMUI_HANDLE;
|
||||
|
||||
#if defined(ATOMUI_OS_WIN)
|
||||
#ifndef STD_CALL_TYPE
|
||||
|
||||
@@ -219,4 +219,4 @@
|
||||
#if !defined(ATOMUI_OS_VXWORKS) && !defined(_MSC_VER)
|
||||
# define ATOMUI_COMPILER_SUPPORTS_INT128 __SIZEOF_INT128__
|
||||
#endif
|
||||
#endif // defined(__SIZEOF_INT128__)
|
||||
#endif // defined(__SIZEOF_INT128__)
|
||||
|
||||
@@ -10,10 +10,12 @@
|
||||
#pragma once
|
||||
#include "atomui/Global.h"
|
||||
|
||||
namespace atomui {
|
||||
class WindowUtils {
|
||||
public:
|
||||
WindowUtils() = delete;
|
||||
static void setIgnoresMouseEvents(ATOMUI_HANDLE windowHandle, bool flag);
|
||||
};
|
||||
namespace atomui
|
||||
{
|
||||
class WindowUtils
|
||||
{
|
||||
public:
|
||||
WindowUtils() = delete;
|
||||
static void setIgnoresMouseEvents(ATOMUI_HANDLE windowHandle, bool flag);
|
||||
};
|
||||
}
|
||||
|
||||
@@ -11,4 +11,4 @@
|
||||
|
||||
#include "atomui/Global.h"
|
||||
|
||||
extern "C" ATOMUI_EXPORT void AtomUISetWindowIgnoresMouseEvents(ATOMUI_HANDLE windowHandle, bool flag);
|
||||
extern "C" ATOMUI_EXPORT void AtomUISetWindowIgnoresMouseEvents(ATOMUI_HANDLE windowHandle, bool flag);
|
||||
|
||||
@@ -10,9 +10,10 @@
|
||||
#include "atomui/Global.h"
|
||||
#include <string>
|
||||
|
||||
namespace atomui {
|
||||
std::string version_string() {
|
||||
return std::string{ATOMUI_VERSION_LONG};
|
||||
}
|
||||
|
||||
namespace atomui
|
||||
{
|
||||
std::string version_string()
|
||||
{
|
||||
return std::string{ATOMUI_VERSION_LONG};
|
||||
}
|
||||
}
|
||||
|
||||
@@ -8,4 +8,3 @@
|
||||
// Created by chinboy on 2025/01/10.
|
||||
|
||||
#include "atomui/WindowUtils.h"
|
||||
|
||||
|
||||
@@ -12,6 +12,7 @@
|
||||
|
||||
using namespace atomui;
|
||||
|
||||
void AtomUISetWindowIgnoresMouseEvents(ATOMUI_HANDLE windowHandle, bool flag) {
|
||||
void AtomUISetWindowIgnoresMouseEvents(ATOMUI_HANDLE windowHandle, bool flag)
|
||||
{
|
||||
WindowUtils::setIgnoresMouseEvents(windowHandle, flag);
|
||||
}
|
||||
|
||||
@@ -1,51 +1,87 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
<Import Project="$(MSBuildThisFileDirectory)..\..\build\Common.props"/>
|
||||
<Import Project="$(MSBuildThisFileDirectory)..\..\build\PackageMetaInfo.props"/>
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFramework>$(AtomUICurrentTargetFramework)</TargetFramework>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Avalonia"/>
|
||||
<PackageReference Include="Avalonia.Svg"/>
|
||||
<PackageReference Include="System.Reactive"/>
|
||||
</ItemGroup>
|
||||
<Import Project="$(MSBuildThisFileDirectory)../../build/Common.props"/>
|
||||
<Import Project="$(MSBuildThisFileDirectory)../../build/PackageMetaInfo.props"/>
|
||||
<Import Project="$(MSBuildThisFileDirectory)../../build/AtomUINativePackageInfo.props"/>
|
||||
|
||||
<ItemGroup Condition=" '$(Configuration)' == 'DEBUG' ">
|
||||
<ProjectReference Include="..\..\src\AtomUI.Base\AtomUI.Base.csproj" />
|
||||
<ProjectReference Include="..\..\src\AtomUI.Controls\AtomUI.Controls.csproj" />
|
||||
<ProjectReference Include="..\..\src\AtomUI.IconPkg\AtomUI.IconPkg.csproj" />
|
||||
<ProjectReference Include="..\..\src\AtomUI.IconPkg.AntDesign\AtomUI.IconPkg.AntDesign.csproj" />
|
||||
<ProjectReference Include="..\..\src\AtomUI.Theme\AtomUI.Theme.csproj" />
|
||||
</ItemGroup>
|
||||
<PropertyGroup>
|
||||
<TargetFramework>$(AtomUICurrentTargetFramework)</TargetFramework>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
<Nullable>enable</Nullable>
|
||||
<RootNamespace>AtomUI</RootNamespace>
|
||||
<IncludeBuildOutput>true</IncludeBuildOutput>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup Condition=" '$(Configuration)' == 'DEBUG' And $([MSBuild]::IsOSPlatform('Windows')) ">
|
||||
<ProjectReference Include="..\..\src\AtomUI.Platform.Win32\AtomUI.Platform.Win32.csproj" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Avalonia"/>
|
||||
<PackageReference Include="Avalonia.Svg"/>
|
||||
<PackageReference Include="System.Reactive"/>
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup Condition=" '$(Configuration)' == 'RELEASE' ">
|
||||
<Reference Include="..\..\output\Bin\Release\AtomUI.Base.dll" />
|
||||
<Reference Include="..\..\output\Bin\Release\AtomUI.Controls.dll" />
|
||||
<Reference Include="..\..\output\Bin\Release\AtomUI.IconPkg.dll" />
|
||||
<Reference Include="..\..\output\Bin\Release\AtomUI.IconPkg.AntDesign.dll" />
|
||||
<Reference Include="..\..\output\Bin\Release\AtomUI.Theme.dll" />
|
||||
<Reference Include="..\..\output\Bin\Release\AtomUI.Platform.Win32.dll" />
|
||||
</ItemGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)' == 'Debug' ">
|
||||
<IncludeAssets>all</IncludeAssets>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)' == 'Release' ">
|
||||
<IncludeAssets>none</IncludeAssets>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="$(MSBuildThisFileDirectory)/../../src/AtomUI.Base/AtomUI.Base.csproj">
|
||||
<IncludeAssets>$(IncludeAssets)</IncludeAssets>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="$(MSBuildThisFileDirectory)/../../src/AtomUI.Controls/AtomUI.Controls.csproj">
|
||||
<IncludeAssets>$(IncludeAssets)</IncludeAssets>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="$(MSBuildThisFileDirectory)/../../src/AtomUI.IconPkg/AtomUI.IconPkg.csproj">
|
||||
<IncludeAssets>$(IncludeAssets)</IncludeAssets>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="$(MSBuildThisFileDirectory)/../../src/AtomUI.Native/AtomUI.Native.csproj">
|
||||
<IncludeAssets>$(IncludeAssets)</IncludeAssets>
|
||||
</ProjectReference>
|
||||
<ProjectReference Include="$(MSBuildThisFileDirectory)/../../src/AtomUI.Theme/AtomUI.Theme.csproj">
|
||||
<IncludeAssets>$(IncludeAssets)</IncludeAssets>
|
||||
</ProjectReference>
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup Condition=" '$(Configuration)' == 'RELEASE' ">
|
||||
<Content Pack="true" Visible="false" PackagePath="lib\$(TargetFramework)" Include="$(MSBuildThisFileDirectory)..\..\output\Bin\Release\AtomUI.Base.dll" />
|
||||
<Content Pack="true" Visible="false" PackagePath="lib\$(TargetFramework)" Include="$(MSBuildThisFileDirectory)..\..\output\Bin\Release\AtomUI.Base.pdb" />
|
||||
<Content Pack="true" Visible="false" PackagePath="lib\$(TargetFramework)" Include="$(MSBuildThisFileDirectory)..\..\output\Bin\Release\AtomUI.Controls.dll" />
|
||||
<Content Pack="true" Visible="false" PackagePath="lib\$(TargetFramework)" Include="$(MSBuildThisFileDirectory)..\..\output\Bin\Release\AtomUI.Controls.pdb" />
|
||||
<Content Pack="true" Visible="false" PackagePath="lib\$(TargetFramework)" Include="$(MSBuildThisFileDirectory)..\..\output\Bin\Release\AtomUI.IconPkg.dll" />
|
||||
<Content Pack="true" Visible="false" PackagePath="lib\$(TargetFramework)" Include="$(MSBuildThisFileDirectory)..\..\output\Bin\Release\AtomUI.IconPkg.pdb" />
|
||||
<Content Pack="true" Visible="false" PackagePath="lib\$(TargetFramework)" Include="$(MSBuildThisFileDirectory)..\..\output\Bin\Release\AtomUI.IconPkg.AntDesign.dll" />
|
||||
<Content Pack="true" Visible="false" PackagePath="lib\$(TargetFramework)" Include="$(MSBuildThisFileDirectory)..\..\output\Bin\Release\AtomUI.IconPkg.AntDesign.pdb" />
|
||||
<Content Pack="true" Visible="false" PackagePath="lib\$(TargetFramework)" Include="$(MSBuildThisFileDirectory)..\..\output\Bin\Release\AtomUI.Theme.dll" />
|
||||
<Content Pack="true" Visible="false" PackagePath="lib\$(TargetFramework)" Include="$(MSBuildThisFileDirectory)..\..\output\Bin\Release\AtomUI.Theme.pdb" />
|
||||
<Content Pack="true" Visible="false" PackagePath="lib\$(TargetFramework)" Include="$(MSBuildThisFileDirectory)..\..\output\Bin\Release\AtomUI.Platform.Win32.dll" />
|
||||
<Content Pack="true" Visible="false" PackagePath="lib\$(TargetFramework)" Include="$(MSBuildThisFileDirectory)..\..\output\Bin\Release\AtomUI.Platform.Win32.pdb" />
|
||||
</ItemGroup>
|
||||
<PropertyGroup>
|
||||
<AtomUIPackageOutput>$(MSBuildThisFileDirectory)../../output/Bin/$(Configuration)</AtomUIPackageOutput>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup Condition=" '$(Configuration)' == 'Release' ">
|
||||
<Reference Include="$(AtomUIPackageOutput)/AtomUI.Base.dll"/>
|
||||
<Reference Include="$(AtomUIPackageOutput)/AtomUI.Controls.dll"/>
|
||||
<Reference Include="$(AtomUIPackageOutput)/AtomUI.IconPkg.dll"/>
|
||||
<Reference Include="$(AtomUIPackageOutput)/AtomUI.IconPkg.AntDesign.dll"/>
|
||||
<Reference Include="$(AtomUIPackageOutput)/AtomUI.Theme.dll"/>
|
||||
<Reference Include="$(AtomUIPackageOutput)/AtomUI.Native.dll"/>
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup Condition=" '$(Configuration)' == 'Release' ">
|
||||
<Content Pack="true" Visible="false" PackagePath="lib/$(TargetFramework)" Include="$(AtomUIPackageOutput)/AtomUI.Base.dll"/>
|
||||
<Content Pack="true" Visible="false" PackagePath="lib/$(TargetFramework)" Include="$(AtomUIPackageOutput)/AtomUI.Base.pdb"/>
|
||||
<Content Pack="true" Visible="false" PackagePath="lib/$(TargetFramework)" Include="$(AtomUIPackageOutput)/AtomUI.Controls.dll"/>
|
||||
<Content Pack="true" Visible="false" PackagePath="lib/$(TargetFramework)" Include="$(AtomUIPackageOutput)/AtomUI.Controls.pdb"/>
|
||||
<Content Pack="true" Visible="false" PackagePath="lib/$(TargetFramework)" Include="$(AtomUIPackageOutput)/AtomUI.IconPkg.dll"/>
|
||||
<Content Pack="true" Visible="false" PackagePath="lib/$(TargetFramework)" Include="$(AtomUIPackageOutput)/AtomUI.IconPkg.pdb"/>
|
||||
<Content Pack="true" Visible="false" PackagePath="lib/$(TargetFramework)" Include="$(AtomUIPackageOutput)/AtomUI.IconPkg.AntDesign.dll"/>
|
||||
<Content Pack="true" Visible="false" PackagePath="lib/$(TargetFramework)" Include="$(AtomUIPackageOutput)/AtomUI.IconPkg.AntDesign.pdb"/>
|
||||
<Content Pack="true" Visible="false" PackagePath="lib/$(TargetFramework)" Include="$(AtomUIPackageOutput)/AtomUI.Theme.dll"/>
|
||||
<Content Pack="true" Visible="false" PackagePath="lib/$(TargetFramework)" Include="$(AtomUIPackageOutput)/AtomUI.Theme.pdb"/>
|
||||
<Content Pack="true" Visible="false" PackagePath="lib/$(TargetFramework)" Include="$(AtomUIPackageOutput)/AtomUI.Native.dll"/>
|
||||
<Content Pack="true" Visible="false" PackagePath="lib/$(TargetFramework)" Include="$(AtomUIPackageOutput)/AtomUI.Native.pdb"/>
|
||||
|
||||
<Content Include="$(AtomUIPackageOutput)/$(AtomUINativeDeployPath)/$(AtomUINativeArtifactName)">
|
||||
<Link>$(AtomUINativeArtifactName)</Link>
|
||||
<PackagePath>$(AtomUINativeDeployPath)</PackagePath>
|
||||
<Pack>true</Pack>
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
<CopyToPublishDirectory>Always</CopyToPublishDirectory>
|
||||
</Content>
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup Condition=" '$(Configuration)' == 'Debug' ">
|
||||
<Content Include="$(AtomUIPackageOutput)/$(AtomUINativeDeployPath)/$(AtomUINativeArtifactName)">
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
<Link>$(AtomUINativeDeployPath)/$(AtomUINativeArtifactName)</Link>
|
||||
</Content>
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
|
||||
@@ -19,12 +19,12 @@
|
||||
<InternalsVisibleTo Include="AtomUI.Controls"/>
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\AtomUI.Native\AtomUI.Native.csproj" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup Condition="$([MSBuild]::IsOSPlatform('Windows'))">
|
||||
<ProjectReference Include="..\AtomUI.Platform.Win32\AtomUI.Platform.Win32.csproj"/>
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup Condition="$([MSBuild]::IsOSPlatform('OSX'))">
|
||||
<ProjectReference Include="..\AtomUI.Platform.MacOS\AtomUI.Platform.MacOS.csproj" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
using System.Reflection;
|
||||
using AtomUI.Controls.Primitives;
|
||||
using AtomUI.Media;
|
||||
using AtomUI.Native;
|
||||
|
||||
#if PLATFORM_WINDOWS
|
||||
using AtomUI.Platform.Windows;
|
||||
@@ -62,6 +63,7 @@ internal class PopupShadowLayer : LiteWindow, IShadowDecorator
|
||||
#elif PLATFORM_MACOS
|
||||
|
||||
#endif
|
||||
WindowUtils.SetWindowIgnoreMouseEvents(this, true);
|
||||
|
||||
if (PlatformImpl?.PopupPositioner is ManagedPopupPositioner managedPopupPositioner)
|
||||
{
|
||||
|
||||
@@ -1,9 +1,10 @@
|
||||
<Project>
|
||||
<Import Project="Sdk.props" Sdk="Microsoft.NET.Sdk"/>
|
||||
<Import Project="$(MSBuildThisFileDirectory)..\..\build\Common.props"/>
|
||||
<Import Project="$(MSBuildThisFileDirectory)..\..\build\PackageMetaInfo.props"/>
|
||||
<Import Project="$(MSBuildThisFileDirectory)../../build/Common.props"/>
|
||||
<Import Project="$(MSBuildThisFileDirectory)../../build/PackageMetaInfo.props"/>
|
||||
<Import Project="$(MSBuildThisFileDirectory)../../build/AtomUINativePackageInfo.props"/>
|
||||
<PropertyGroup>
|
||||
<TargetFramework>$(AtomUICurrentTargetFramework)</TargetFramework>
|
||||
<TargetFramework>net8.0</TargetFramework>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
<Nullable>enable</Nullable>
|
||||
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
|
||||
@@ -11,21 +12,26 @@
|
||||
|
||||
<Import Project="Sdk.targets" Sdk="Microsoft.NET.Sdk"/>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Avalonia"/>
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<InternalsVisibleTo Include="AtomUI.Base"/>
|
||||
<InternalsVisibleTo Include="AtomUI.Controls"/>
|
||||
</ItemGroup>
|
||||
|
||||
<PropertyGroup>
|
||||
<AtomUINavtiveDeployPath>$(OutputPath)</AtomUINavtiveDeployPath>
|
||||
<AtomUINavtiveBuildPath>$([System.IO.Path]::Combine($(MSBuildProjectDirectory), $(IntermediateOutputPath), 'AtomUINative'))</AtomUINavtiveBuildPath>
|
||||
<AtomUINativeSrcPath>$([System.IO.Path]::GetFullPath('$(MSBuildProjectDirectory)/../../nativelibs'))</AtomUINativeSrcPath>
|
||||
<AtomUINativeArtifactName Condition="$([MSBuild]::IsOSPlatform('Linux'))">libAtomUI.so</AtomUINativeArtifactName>
|
||||
<AtomUINativeArtifactName Condition="$([MSBuild]::IsOSPlatform('OSX'))">libAtomUI.dylib</AtomUINativeArtifactName>
|
||||
<AtomUINativeArtifactName Condition="$([MSBuild]::IsOSPlatform('Windows'))">AtomUI.dll</AtomUINativeArtifactName>
|
||||
</PropertyGroup>
|
||||
|
||||
|
||||
<ItemGroup>
|
||||
<AtomUINativeSources Include="$(AtomUINativeSrcPath)/include/**/*.*"/>
|
||||
<AtomUINativeSources Include="$(AtomUINativeSrcPath)/src/**/*.*"/>
|
||||
<AtomUINativeArtifact Include="$(AtomUINavtiveDeployPath)/lib/$(AtomUINativeArtifactName)"/>
|
||||
<AtomUINativeArtifact Include="$(OutputPath)$(AtomUINativeDeployPath)/$(AtomUINativeArtifactName)"/>
|
||||
</ItemGroup>
|
||||
|
||||
|
||||
<Choose>
|
||||
<When Condition="'$(Configuration)' == 'Debug'">
|
||||
<PropertyGroup>
|
||||
@@ -39,31 +45,42 @@
|
||||
</Otherwise>
|
||||
</Choose>
|
||||
|
||||
<Target Name="BildAtomUINative"
|
||||
BeforeTargets="Build"
|
||||
<Target Name="BildAtomUINative"
|
||||
BeforeTargets="Build"
|
||||
Inputs="@(AtomUINativeSources)"
|
||||
Outputs="@(AtomUINativeArtifact)"
|
||||
>
|
||||
<Message Text="@(AtomUINativeSources)" Importance="high"/>
|
||||
Outputs="@(AtomUINativeArtifact)">
|
||||
<Message Text="@(AtomUINativeArtifact)" Importance="high"/>
|
||||
<PropertyGroup>
|
||||
<CPUCount>$([System.Environment]::ProcessorCount)</CPUCount>
|
||||
</PropertyGroup>
|
||||
<MakeDir Directories="$(AtomUINavtiveBuildPath)" Condition="!Exists('$(AtomUINavtiveBuildPath)')"/>
|
||||
<Exec Command="cmake -B $(AtomUINavtiveBuildPath) -S $(AtomUINativeSrcPath) --install-prefix $(AtomUINavtiveDeployPath) -DCMAKE_BUILD_TYPE=$(CMakeBuildType) -G Ninja"
|
||||
<Exec Command="cmake -B $(AtomUINavtiveBuildPath) -S $(AtomUINativeSrcPath) --install-prefix $(OutputPath) -DCMAKE_BUILD_TYPE=$(CMakeBuildType) -G Ninja"
|
||||
WorkingDirectory="$(AtomUINavtiveBuildPath)"
|
||||
ConsoleToMsBuild="false"
|
||||
ConsoleToMsBuild="true"
|
||||
>
|
||||
<Output TaskParameter="ConsoleOutput" PropertyName="CmakeOutput" />
|
||||
<Output TaskParameter="ConsoleOutput" PropertyName="CmakeOutput"/>
|
||||
<Output TaskParameter="ExitCode" PropertyName="BildAtomUINativeExitCode"/>
|
||||
</Exec>
|
||||
<Exec Command="ninja -j $(CPUCount) -C $(AtomUINavtiveBuildPath)"
|
||||
WorkingDirectory="$(AtomUINavtiveBuildPath)"
|
||||
ConsoleToMsBuild="false"
|
||||
ConsoleToMsBuild="true"
|
||||
/>
|
||||
|
||||
<Exec Command="ninja install"
|
||||
WorkingDirectory="$(AtomUINavtiveBuildPath)"
|
||||
ConsoleToMsBuild="false"
|
||||
ConsoleToMsBuild="true"
|
||||
/>
|
||||
<Copy SourceFiles="$(OutputPath)lib/$(AtomUINativeArtifactName)" DestinationFolder="$(OutputPath)$(AtomUINativeDeployPath)"/>
|
||||
|
||||
<ItemGroup Condition="'$(Configuration)' == 'Release'">
|
||||
<Content Include="@(AtomUINativeArtifact)">
|
||||
<Link>$(AtomUINativeArtifactName)</Link>
|
||||
<PackagePath>$(AtomUINativeDeployPath)</PackagePath>
|
||||
<Pack>true</Pack>
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</Content>
|
||||
</ItemGroup>
|
||||
|
||||
</Target>
|
||||
</Project>
|
||||
|
||||
</Project>
|
||||
@@ -0,0 +1,12 @@
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
namespace AtomUI.Native.Interop;
|
||||
|
||||
internal static partial class WindowUtilsImpl
|
||||
{
|
||||
private const string NativeLibName = "AtomUI";
|
||||
|
||||
[LibraryImport(NativeLibName)]
|
||||
internal static partial void AtomUISetWindowIgnoresMouseEvents(IntPtr handle,
|
||||
[MarshalAs(UnmanagedType.Bool)] bool flag);
|
||||
}
|
||||
@@ -0,0 +1,17 @@
|
||||
using AtomUI.Native.Interop;
|
||||
using Avalonia.Controls;
|
||||
|
||||
namespace AtomUI.Native;
|
||||
|
||||
internal static class WindowUtils
|
||||
{
|
||||
public static void SetWindowIgnoreMouseEvents(WindowBase window, bool flag)
|
||||
{
|
||||
var windowHandle = window.PlatformImpl?.Handle?.Handle;
|
||||
if (windowHandle is not null)
|
||||
|
||||
{
|
||||
WindowUtilsImpl.AtomUISetWindowIgnoresMouseEvents(windowHandle.Value, flag);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,12 +0,0 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
<Import Project="$(MSBuildThisFileDirectory)..\..\build\Common.props"/>
|
||||
<Import Project="$(MSBuildThisFileDirectory)..\..\build\PackageMetaInfo.props"/>
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFramework>$(AtomUICurrentTargetFramework)</TargetFramework>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
<Nullable>enable</Nullable>
|
||||
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
|
||||
</PropertyGroup>
|
||||
|
||||
</Project>
|
||||
Reference in New Issue
Block a user