الوثائق | العروض التوضيحية | مكتبات أخرى
Window Window هي مكتبة تجريد نظام Cross Platform لإدارة Windows وتنفيذ مهام نظام التشغيل. إنه مصمم ليكون سهلاً للدمج وبديهية ودعم كل ما قد تحتاجه لتطبيقاتك.
؟ نافذة بسيطة ، مربع حوار ملف ، وإنشاء مربعات الرسائل.
⌨؟ ️؟ ؟ الإدخال الأساسي (لوحة المفاتيح ، الماوس ، اللمس ، ومباراة الألعاب).
؟ ميزات محددة منصة (شفافية MAC ، مقياس تسارع الهاتف المحمول ، وما إلى ذلك).
؟ اختبارات الوحدة + تغطية الاختبار (Appveyor for Windows ، Circleci لنظام Android / MacOS / IOS ، [Travis] [Travis-url] لـ Linux / Noop ).
؟ ️ Windows - Win32
؟ ماك - Cocoa
iOS - UIKit
؟ Linux - XCB أو XLib
؟ Android (قيد التقدم)
webassembly - Emscripten
noop (بلا رأس)
أضف أولاً إعادة الريبو كوحدة فرعية في مجلد التبعيات مثل external/ :
# ⤵️ Add your dependency as a git submodule:
git submodule add https://github.com/alaingalvan/crosswindow.git external/crosswindow ثم في ملف CMakeLists.txt الخاص بك ، قم بتضمين ما يلي:
# ⤵️ Add to your CMake Project:
add_subdirectory (external/crosswindow)
# ❎ When creating your executable use CrossWindow's abstraction function:
xwin_add_executable(
# Target
${PROJECT_NAME}
# Source Files (make sure to surround in quotations so CMake treats it as a list)
" ${SOURCE_FILES} "
)
# ? Link CrossWindow to your project:
target_link_libraries (
${PROJECT_NAME}
CrossWindow
) املأ بقية ملف CMakeLists.txt مع أي ملفات وتبعيات أخرى قد تكون لديك ، ثم في جذر المشروع:
# ?️ To build your Visual Studio solution on Windows x64
cmake -B build -A x64
# ? To build your XCode project On Mac OS for Mac OS
cmake -B build -G Xcode
# To build your XCode project on Mac OS for iOS / iPad OS / tvOS / watchOS
cmake -B build -G Xcode -DCMAKE_SYSTEM_NAME=iOS
# ? To build your .make file on Linux
cmake -B build
# ? Build on any platform:
cmake -B build --buildمن أجل webassembly ، ستحتاج إلى تثبيت emscripten. على افتراض أن لديك SDK مثبتة ، افعل ما يلي لإنشاء مشروع ويب:
# For WebAssembly Projects
mkdir webassembly
cd webassembly
cmake .. -DXWIN_OS=WASM -DCMAKE_TOOLCHAIN_FILE= " $EMSDK /emscripten/1.38.1/cmake/Modules/Platform/Emscripten.cmake " -DCMAKE_BUILD_TYPE=Release
# Run emconfigure with the normal configure command as an argument.
$EMSDK /emscripten/emconfigure ./configure
# Run emmake with the normal make to generate linked LLVM bitcode.
$EMSDK /emscripten/emmake make
# Compile the linked bitcode generated by make (project.bc) to JavaScript.
# 'project.bc' should be replaced with the make output for your project (e.g. 'yourproject.so')
$EMSDK /emscripten/emcc project.bc -o project.jsلمزيد من المعلومات ، تفضل بزيارة مستندات emscripten على cmake.
بالنسبة إلى Android Studio ، ستحتاج إلى إنشاء مشروع ، ثم قم بتحرير ملف build.gradle .
// ? To build your Android Studio project
android {
.. .
externalNativeBuild {
cmake {
.. .
// Use the following syntax when passing arguments to variables:
// arguments "-DVAR_NAME=ARGUMENT".
arguments " -DXWIN_OS=ANDROID " ,
// The following line passes 'rtti' and 'exceptions' to 'ANDROID_CPP_FEATURES'.
" -DANDROID_CPP_FEATURES=rtti exceptions "
}
}
buildTypes { .. . }
// Use this block to link Gradle to your CMake build script.
externalNativeBuild {
cmake { .. . }
}
}لمزيد من المعلومات ، تفضل بزيارة مستندات Android Studio على Cmake.
ثم قم بإنشاء وظيفة مندوبة رئيسية void xmain(int argc, const char** argv) في ملف .cpp في مشروعك (على سبيل المثال " XMain.cpp ") حيث ستضع منطق التطبيق الخاص بك:
# include " CrossWindow/CrossWindow.h "
void xmain ( int argc, const char ** argv)
{
// ?️ Create Window Description
xwin::WindowDesc windowDesc;
windowDesc. name = " Test " ;
windowDesc. title = " My Title " ;
windowDesc. visible = true ;
windowDesc. width = 1280 ;
windowDesc. height = 720 ;
bool closed = false ;
// ? Initialize
xwin::Window window;
xwin::EventQueue eventQueue;
if (!window. create (windowDesc, eventQueue))
{ return ; }
// ? Engine loop
bool isRunning = true ;
while (isRunning)
{
// ♻️ Update the event queue
eventQueue. update ();
// ? Iterate through that queue:
while (!eventQueue. empty ())
{
const xwin::Event& event = eventQueue. front ();
if (event. type == xwin::EventType::MouseInput)
{
const xwin::MouseInputData mouse = event. data . mouseInput ;
}
if (event. type == xwin::EventType::Close)
{
window. close ();
isRunning = false ;
}
eventQueue. pop ();
}
}
} سيتم استدعاء وظيفة xmain هذه من وظيفة رئيسية محددة منصة سيتم تضمينها في مشروعك الرئيسي بواسطة CMake. إذا كنت بحاجة إلى الوصول إلى شيء ما من الوظيفة الرئيسية المحددة للمنصة لأي سبب من الأسباب ، فستجدها في xwin::getXWinState() .
تأكد من تثبيت Cmake.
| خيارات cmake | وصف |
|---|---|
XWIN_TESTS | سواء تم تمكين اختبارات الوحدة أم لا. الافتراضات إلى OFF ، يمكن أن تكون أو OFF ON |
XWIN_API | يمكن أن تكون واجهة برمجة تطبيقات OS لاستخدامها لتوليد النوافذ ، والافتراضات إلى AUTO ، أو NOOP أو WIN32 أو COCOA أو UIKIT أو XCB أو ANDROID أو WASM . |
XWIN_OS | اختياري - ما هو نظام التشغيل الذي يجب إنشاؤه له ، يعمل كوسيلة أسرع لتحديد المنصات المستهدفة. يمكن أن تكون الإعدادات الافتراضية إلى AUTO ، NOOP ، WINDOWS ، MACOS ، LINUX ANDROID ، IOS ، WASM . إذا دعم النظام الأساسي الخاص بك واجهات برمجة التطبيقات المتعددة ، فسيتم تعيين واجهة برمجة التطبيقات النهائية تلقائيًا على CrossWindow Defaults ( WIN32 على Windows ، XCB على Linux). إذا تم تعيين XWIN_API ، فسيتم تجاهل هذا الخيار. |
قم بتثبيت GIT أولاً ، ثم افتح أي محطة في أي مجلد ونوع:
# ? Clone the repo
git clone https://github.com/alaingalvan/crosswindow.git --recurse-submodules
# ? go inside the folder
cd crosswindow
# ? If you forget to `recurse-submodules` you can always run:
git submodule update --init
من هناك سنحتاج إلى إعداد ملفات الإنشاء الخاصة بنا. تأكد من تثبيت ما يلي:
cmake
IDE مثل Visual Studio أو Xcode أو مترجم مثل GCC.
ثم اكتب ما يلي في المحطة الخاصة بك من مجلد ريبو:
# ?️ To build your Visual Studio solution on Windows x64
cmake -B build -A x64 -DXWIN_TESTS=ON
# ? To build your XCode project on Mac OS
cmake -B build -G Xcode -DXWIN_TESTS=ON
# ? To build your .make file on Linux
cmake -B build -DXWIN_TESTS=ON
# ? Build on any platform:
cmake -B build --build كلما قمت بإضافة ملفات جديدة إلى المشروع ، قم بتشغيل cmake .. من المجلد/المجلد/Builder /build/ ، وإذا قمت بتحرير ملف CMakeLists.txt ، فتأكد من حذف الملفات التي تم إنشاؤها وتشغيل CMake مرة أخرى.
يتم ترخيص CrossWindow كأفضل معهد MIT أو Apache-2.0 ، أيهما تفضل.