Eto: [طلب] دعم الواجهة الخلفية وايلاند الأصلي (خالص C #)

تم إنشاؤها على ٢١ نوفمبر ٢٠١٥  ·  17تعليقات  ·  مصدر: picoe/Eto

Wayland هو بروتوكول - https://en.wikipedia.org/wiki/Wayland_ (display_server_protocol)

يمكن تنفيذ البروتوكول في C # فقط ، أو كإرتباطات لـ libwayland-client
http://www.jlekstrand.net/jason/projects/wayland/language-bindings-guide/
تم إطلاق libwayland-server و libwayland-client بموجب ترخيص MIT.

تتمتع مجموعات الأدوات الأكثر احترامًا بدعم Wayland - http://wayland.freedesktop.org/toolkits.html

"على وجه الخصوص ، يجب أن يعطي هذا شفافية شبكة عملية للصوت" (؟؟؟)

help wanted

ال 17 كومينتر

شكرا على اقتراحك! رغم ذلك ، لماذا نلتزم مباشرة بـ wayland عندما نستخدم بالفعل GTK (التي تقع على قمة الطريق)؟ ألا يعيد هذا اختراع العجلة؟ مما أفهمه ، سيتعين علينا تنفيذ جميع عناصر واجهة المستخدم ووظائف النوافذ وما إلى ذلك.

ما الفائدة من هذا النهج في رأيك؟

إنها فكرة جيدة ، ولكن للإطار الأحادي أو. net core ليس لإطار عمل eto. المزايا واضحة. Eto -> gtk # -> mono / .net core -> gtk + -> xwindow. فقط eto -> mono / .net core -> wayland.

قد أكون مخطئًا ، لكن يبدو أن وايلاند يقدم مؤلفًا موسيقيًا. لا يبدو أنه يوفر واجهة رسم لرسم الخطوط ، والتدرجات ، والقوام ، وما إلى ذلك. هذا ما يمكن أن يقدمه شيء مثل القاهرة ويفعله بشكل جيد للغاية. لا أتخيل أن Eto.Forms تنفذ واجهة الرسم الخاصة بها والتي تتحول إلى مخزن مؤقت ، لأن هذا من شأنه أن يعيد اختراع العجلة وربما يؤدي ذلك بشكل سيء.

ومع ذلك ، فقد فكرت كثيرًا في إنشاء معالجات مرسومة مخصصة لكل عنصر من عناصر تحكم Eto (مثل Button ، TextBox ، إلخ) باستخدام واجهة برمجة تطبيقات Eto.Drawing. قد يعني هذا أنه سيتعين على المرء فقط لف معالجات Eto.Drawing لمنصة من أجل دعمها (إذا كنت لا تهتم بكيفية ظهورها بصريًا).

تلتف Eto.Forms بالفعل بالقاهرة (التي تدعم wayland) ، لذا سيكون الأمر مجرد إنشاء معالجات مرسومة خصيصًا لكل عنصر تحكم ويمكننا على الأقل قطع GTK +. هذا ، ومع ذلك ، لا يزال هناك الكثير من العمل. إذا كان شخص ما حريصًا بدرجة كافية ، فستكون هذه إضافة مرحب بها ويمكنني المساعدة في بدء ذلك ، لكن لن أتمكن من القيام بالكثير من العمل.

هل لا يزال هناك أي شخص مهتم بهذه الفكرة؟ لقد تمكنت من إنشاء رابط لـ Wayland يمكّن C # من استخدام Wayland لإنشاء واجهة مستخدم بسهولة. أخطط لإنهاء التصميم قبل تحميل إعادة الشراء له. (إنها تستخدم مكتبة DL لتحميل مكتبة Wayland الأصلية ديناميكيًا وهي نفس المكتبة التي يستخدمها Mono لاستيراد وظائف DLL والواجهة مباشرةً معها. لا حاجة لمكتبة وسيطة للتعامل مع P / Invoke بين Wayland و C #.) الاستفادة من ImageSharp بدلاً من القاهرة (يبدو أن القاهرة لا يمكنها التفاعل مع مخزن الذاكرة المؤقتة التي تحتقر جهودي بشكل مباشر).

لا أفهم حقًا سبب كون هذه المشكلة شيئًا ... ما الذي ستكسبه؟

يعد التخلص من احتياجات تبعيات GTKSharp و GTK أمرًا كبيرًا. تتميز Wayland بالسرعة والمرونة نسبيًا بحيث يمكننا استخدام مكتبات مثل Skia أو OpenGL أو ImageSharp أو غيرها حتى الآن لسرد المكتبات لعرض Eto الخاص بنا. واجهة المستخدم التي توفر المزيد من الخيارات للمستخدمين خاصة في البيئة المضمنة (https://www.youtube.com/watch؟v=GtXQJ0c5q0k لمعرفة كيفية استخدام Wayland على جهاز ARM).

كيف يمكنك في العالم عرض زر باستخدام wayland دون الانتقال إلى gtk / qt وما زلت تجعله يبدو أصليًا؟

يمكنك رسمه ، إما عن طريق الصور لعرض الحدود أو عن طريق الكود. إنه أسهل مما تعتقد ويشبه كثيرًا تصميم الويب بتنسيق HTML. يوفر ImageSharp الكثير من الميزات المشابهة لـ Gimp لـ C # لتسهيل هذه المهمة بحيث يكون هناك شيء واحد بدأناه بالفعل.

يمكنك رسمه ، إما عن طريق الصور لعرض الحدود أو عن طريق الكود. إنه أسهل مما تعتقد ويشبه كثيرًا تصميم الويب بتنسيق HTML.

الهدف من Eto Forms هو توفير واجهة مستخدم أصلية للنظام الأساسي ، ما تطلبه هذه المشكلة سيكون أكثر ملاءمة لمشروع مثل: https://github.com/AvaloniaUI/Avalonia

وما زالت وجهة نظري قائمة ، يمكننا إنشاء C # Platform ضمن Eto لتوفير واجهة مستخدم أصلية يمكنها العمل عبر جميع الأنظمة الأساسية ، وليس Linux فقط.

وما زالت وجهة نظري قائمة ، يمكننا إنشاء C # Platform ضمن Eto لتوفير واجهة مستخدم أصلية يمكنها العمل عبر جميع الأنظمة الأساسية ، وليس Linux فقط.

ستكون رسمًا مخصصًا ، فلن تبدو واجهة المستخدم أصلية.

أعتقد أنه في هذه البيئة ، لن يكون هناك أي مجموعة أدوات أخرى لواجهة المستخدم ، لذلك لن يكون هناك شيء مثل "أصلي". غالبًا ما فكرت في إنشاء معالجات ذات طابع خاص والتي تختزل جميعها في عناصر تحكم Drawable ، والتي تتطلب فقط تنفيذ مكدس رسم. ومع ذلك ، فإن @ cra0zy محق في أن Avalonia

إذن أنت تقول أن مشروع Eto لن يكون مفتوحًا للبدائل وسيبقى مع المكتبات المتضخمة مثل GTK وتحتقر أنه من الممكن الابتعاد عن هؤلاء؟

CharpOnLinuxDev لا ، أنا منفتح على هذا. إن تقييد ماهية Eto ليس له أي معنى ، وإذا كنت (أو أي شخص) تعتقد أنه سيكون إطارًا رائعًا لبناء منصات بديلة ، فأنا أؤيد ذلك تمامًا. أعتقد أن هناك بالتأكيد حالة استخدام لدعم الأنظمة الأساسية بدون مجموعات أدوات واجهة المستخدم الحالية مثل GTK أو QT للأنظمة الأساسية المضمنة. يمكن استخدامه أيضًا لدعم windows مع .NET Core ، والذي يبدو أن الكثير من الناس يقضمون قليلاً من أجله.

ومع ذلك ، ليس لدي أي دورات لتطوير أو الحفاظ على مثل هذه المنصة ، لذا فإن أي تقدم في هذا الأمر يجب أن يأتي من المجتمع. كما أنه ليس بالضرورة أن يكون جزءًا من Eto repo الرئيسي ، يمكن لأي شخص إنشاء تطبيق للنظام الأساسي لـ Eto ونشره كيفما يحلو له. (؛

يمكنني (كما هو الحال دائمًا) تقديم المساعدة والإرشاد لأي شخص يطلب ذلك.

مرحبا ، هل هناك أي تقدم في هذا؟ هل سيتم دمج wayland مع Eto؟

حسنًا ، إذا كنت تستخدم الواجهة الخلفية لـ Gtk 3 ، فأنت تستخدم بالفعل wayland ...

@ cra0zy شكرا
لكنني أعني eto -> mono/.net core -> wayland ، وليس Eto -> gtk# -> mono/.net core -> gtk3 -> wayland .

في الواقع أنا أحاول العثور على wayland C # warpper. 😃

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات