GTK 3.96، نسخه آزمایشی GTK 4، منتشر شد

10 ماه بعد از گذشته انتشار آزمایشی ارایه شده GTK 3.96، یک نسخه آزمایشی جدید از نسخه پایدار آینده GTK 4. شعبه GTK 4 به عنوان بخشی از یک فرآیند توسعه جدید در حال توسعه است که تلاش می کند یک API پایدار و پشتیبانی شده برای چندین سال به توسعه دهندگان برنامه ارائه دهد که می تواند بدون ترس استفاده شود. نیاز به بازنویسی برنامه هر شش ماه به دلیل تغییر API در شاخه بعدی GTK. تا زمانی که GTK 4 به طور کامل تثبیت نشود، توصیه می شود برنامه های ارائه شده به کاربران همچنان با استفاده از شاخه ساخته شوند. GTK 3.24.

اصلی تغییرات در GTK 3.96:

  • در API GSK (GTK Scene Kit) که رندر صحنه های گرافیکی را از طریق OpenGL و Vulkan فراهم می کند، کار بر روی خطاها انجام شده است که به لطف ابزار اشکال زدایی جدید gtk4-node-editor که به شما امکان بارگذاری و نمایش داده ها را می دهد، شناسایی آنها آسان تر شده است. رندر گره در قالب سریالی (در حالت بازرسی بازرس GTK قابل ذخیره است)، و همچنین نتایج رندر را هنگام استفاده از باطن های مختلف مقایسه کنید.

    GTK 3.96، نسخه آزمایشی GTK 4، منتشر شد

  • قابلیت تبدیل سه بعدی به سطحی رسیده است که به شما امکان می دهد جلوه های انیمیشن مانند یک مکعب چرخان ایجاد کنید.

    GTK 3.96، نسخه آزمایشی GTK 4، منتشر شد

  • کاملا بازنویسی شده است باطن Broadway GDK برای ارائه خروجی کتابخانه GTK در پنجره مرورگر وب طراحی شده است. پیاده‌سازی قدیمی برادوی با روش‌های رندر پیشنهادی در GTK 4 مطابقت نداشت (به جای خروجی به یک بافر، اکنون از مدلی مبتنی بر گره‌های رندر استفاده می‌کند، که در آن خروجی به شکل درختی از عملیات سطح بالا تشکیل می‌شود. پردازش کارآمد توسط GPU با استفاده از OpenGL و Vulkan).
    گزینه جدید Broadway گره های رندر را به گره های DOM با سبک های CSS برای رندر کردن رابط در مرورگر تبدیل می کند. هر حالت صفحه نمایش جدید به عنوان تغییری در درخت DOM نسبت به حالت قبلی پردازش می شود که اندازه داده های ارسال شده به مشتری راه دور را کاهش می دهد. تبدیل های سه بعدی و جلوه های گرافیکی از طریق ویژگی تبدیل CSS پیاده سازی می شوند.

  • GDK به پیاده سازی API های طراحی شده با پروتکل Wayland ادامه می دهد و API های مبتنی بر X11 را پاکسازی می کند یا آنها را به یک باطن جداگانه X11 منتقل می کند. پیشرفت در کار برای دور شدن از استفاده از سطوح کودک و مختصات جهانی وجود دارد. پشتیبانی از GDK_SURFACE_SUBSUFACE از GDK حذف شده است.
  • بازسازی کد مرتبط با انجام عملیات Drag-and-Drop، از جمله اشیاء جداگانه پیشنهادی GdkDrag و GdkDrop ادامه یافت.
  • مدیریت رویداد ساده شده است و اکنون فقط برای ورودی استفاده می شود. رویدادهای باقی مانده با سیگنال های جداگانه جایگزین می شوند، به عنوان مثال، به جای رویدادهای خروجی، سیگنال "GdkSurface::render" پیشنهاد می شود، به جای رویدادهای پیکربندی - "GdkSurface::size-changed"، به جای نگاشت رویدادها - "GdkSurface: :mapped، به جای gdk_event_handler_set() - "GdkSurface::event";
  • باطن GDK برای Wayland پشتیبانی از یک رابط پورتال برای دسترسی به تنظیمات GtkSettings را اضافه کرده است. برای کار با روش های ورودی، پشتیبانی از پسوند پروتکل text-input-unstable-v3 پیشنهاد شده است.
  • برای توسعه ویجت ها، یک شی جدید GtkLayoutManager با پیاده سازی سیستمی برای کنترل چیدمان عناصر بسته به چیدمان ناحیه قابل مشاهده معرفی شده است. GtkLayoutManager جایگزین ویژگی های فرزند در کانتینرهای GTK مانند GtkBox و GtkGrid می شود. چندین مدیر چیدمان آماده پیشنهاد شده‌اند: GtkBinLayout برای کانتینرهای ساده با یک عنصر فرزند، GtkBoxLayout برای عناصر فرزند به صورت خطی، GtkGridLayout برای تراز کردن عناصر فرزند در یک شبکه، GtkFixedLayout برای موقعیت‌یابی دلخواه عناصر فرزند، Gtk Formating. گردانندگان؛
  • اشیاء قابل دسترسی عمومی برای نمایش صفحه عناصر فرزند به ویجت‌های GtkAssistant، GtkStack و GtkNotebook اضافه شده‌اند که ویژگی‌های فرزند غیر مرتبط با Layout این ویجت‌ها به آن‌ها منتقل می‌شوند. از آنجایی که تمام ویژگی های فرزند موجود به ویژگی های معمولی، ویژگی های طرح بندی یا به اشیاء صفحه منتقل شده اند، پشتیبانی از ویژگی های فرزند به طور کامل از GtkContainer حذف شده است.
  • عملکرد اصلی GtkEntry به ویجت جدید GtkText منتقل شده است که شامل یک رابط ویرایش پیشرفته GtkEditable نیز می شود. همه زیر کلاس‌های ورودی داده‌های موجود به‌عنوان پیاده‌سازی‌های GtkEditable بر اساس ویجت جدید GtkText بازسازی شده‌اند.
  • یک ویجت جدید GtkPasswordEntry برای فرم های ورود رمز عبور اضافه شد.
  • GtkWidgets توانایی تبدیل عناصر فرزند را با استفاده از روش های تبدیل خطی مشخص شده از طریق CSS یا آرگومان gtk_widget_allocate به GskTransform اضافه کرده است. ویژگی مشخص شده قبلاً در ویجت GtkFixed اعمال شده است.
  • مدل های تولید لیست جدید اضافه شده اند: GtkMapListModel، GtkSliceListModel، GtkSortListModel، GtkSelectionModel و GtkSingleSelection. در آینده قصد داریم پشتیبانی از مدل های لیست را به GtkListView اضافه کنیم.
  • GtkBuilder به جای استفاده از پیوندها توسط شناسه، توانایی تنظیم خصوصیات شی به صورت محلی (داخلی) را اضافه کرده است.
  • دستور اضافه شده به gtk4-builder-tool برای تبدیل فایل های UI از GTK 3 به GTK 4.
  • پشتیبانی از تم های کلیدی، منوهای جدولی و جعبه های ترکیبی متوقف شده است. ویجت GtkInvisible حذف شده است.

    منبع: opennet.ru

اضافه کردن نظر