مدیر پنجره ری-پرنتینگ

از ویکی‌پدیا، دانشنامهٔ آزاد
پرش به: ناوبری، جستجو

در سیستم پنجره‌ای اکس، هر پنجره یک والد (به انگلیسی: parent) دارد که این والد یا می‌تواند پنجره ریشه و یا یک پنجره دیگر باشد. پنجره‌هایی که فرزند مستقیم پنجره ریشه هستند، پنجره سطح بالا (به انگلیسی: top-level window) نامیده می‌شوند. یک مدیر پنجره ری-پرنتینگ (به انگلیسی: Re-parenting window manager)، در هنگام ایجاد کردن یک پنجره سطح بالا، پنجره سطح بالای دیگری ایجاد می‌کند و این پنجره جدید را به عنوان والد پنجره قبلی در نظر می‌گیرد (در عوض پنجره ریشه). این کار به مدیر پنجره اجازه می‌دهد تا بتواند پنجره‌ها را به وسیله یک قاب و یا یک نوار عنوان تزئین کند یا اینکه کنترل پیشرفته‌تری بر روی عملکرد پنجره داشته باشد (نظیر مدیر پنجره مجازی).

از نظر تکنیکی، یک مدیر پنجره ری-پرنتینگ خودش را با سرور اکس هماهنگ می‌کند تا سرور اکس، هر بار که قرار بود یک پنجره سطح بالا بر روی صفحه نمایش نقش شود (نمایان شود)، رویدادی را برای مدیر پنجره ارسال کند و او را از این کار آگاه کند. وقتی که مدیر پنجره چنین رویدادی را از طرف سرور اکس دریافت کرد، آنگاه مدیر پنجره یک مخصوص قاب و همینطور در بیشتر حالات، یک پنجره دیگر مخصوص نوار عنوان ایجاد می‌کند. سپس پنجره‌ای که مخصوص قاب تدارک دیده شده، به عنوان والد پنجره اصلی و همینطور والد پنجره نوار عنوان در نظر گرفته می‌شود. همینطور در بسیاری از موارد، پنجره‌های دیگری هم مخصوص دکمه‌ها، نوار عنوان و ... ایجاد می‌شوند. عموماً پنجره‌ای که مخصوص نوار عنوان ایجاد شده، به عنوان والد این پنجره‌ها در نظر گرفته می‌شود.

در عمل تمامی مدیر پنجره‌های مدرن از نوع ری-پرنتینگ هستند. هرچند که مدیر پنجره‌های اولیه نظیر uwm اینگونه نبودند. موارد استثنا عبارتند از dwm، PLWM، ratpoison و xmonad چرا که این مدیر پنجره‌ها هیچ نوع تزئیناتی برای پنجره‌ها استفاده نمی‌کنند. همینطور کامپیز هم تا نسخه ۰٬۹٬۰ تزئینات پنجره‌ها را به صورت مجزا ترسیم می‌کرد تا اینکه در این نسخه به صورت ری-پرنتینگ درآمد تا بتواند در حالت غیر کامپوزیتی هم اجرا شود.

منابع[ویرایش]

مشارکت‌کنندگان ویکی‌پدیا، «Re-parenting window manager»، ویکی‌پدیای انگلیسی، دانشنامهٔ آزاد.