موارد X

في نظام X Window ، تُعدّ موارد X معلمات لبرامج الكمبيوتر مثل اسم الخط المستخدم في الأزرار ، ولون خلفية القوائم ، وما إلى ذلك . وتُستخدم هذه الموارد بالتزامن مع معلمات سطر الأوامر وملفات التكوين أو كبديل لها . [ 1 ] [ 2 ]

شكل

على مستوى بروتوكول X، تُعدّ الموارد عبارة عن سلاسل نصية تُخزّن في الخادم ولا تحمل أي معنى خاص. أما بنية هذه السلاسل ومعناها، فتُحدّدها مكتبات وتطبيقات العميل.

يُحدد كل مورد من موارد X مُعاملًا لبرنامج أو أحد مكوناته. ويكون للمورد المُحدد بالكامل التنسيق التالي:

application.component.subcomponent.subcomponent.attribute: value

يُحدد هذا المورد قيمة attributeالمكون المسمى component.subcomponent.subcomponentفي البرنامج application. تُستخدم الموارد عادةً لتحديد معلمات الأدوات التي يُنشئها التطبيق. ولأن هذه الأدوات مُرتبة في شكل شجرة ، يُستخدم تسلسل أسماء المكونات/المكونات الفرعية لتحديد الأداة من خلال مسارها داخل الشجرة. قيمة المورد هي قيمة سمة لهذه الأداة، مثل لون خلفيتها، وما إلى ذلك.

تُستخدم موارد X أيضًا لتحديد معلمات البرنامج التي لا ترتبط مباشرة بأدواته، باستخدام نفس الصيغة.

صُممت موارد X للسماح بتحديد نفس المعلمة لأكثر من برنامج أو مكون. ويتحقق ذلك من خلال السماح باستخدام أحرف البدل في مواصفات المورد. على وجه الخصوص، يُستخدم الحرف ؟ لمطابقة اسم التطبيق أو مكون واحد، بينما يُستخدم الحرف * لمطابقة أي عدد من المكونات. يمكن استخدام هذين الحرفين في أي مكان ما عدا نهاية اسم المورد. بعبارة أخرى، لا يمكن استبدال سمة ما بحرف بدل.

على الرغم من إمكانية تحديد الموارد بشكل عام باستخدام أحرف البدل، إلا أن الاستعلامات عن قيمة مورد ما يجب أن تحدد ذلك المورد بدقة. على سبيل المثال، يمكن أن يحدد مورد ما أن خلفية كل مكون من مكونات البرنامج xmailيجب أن تكون حمراء.

xmail*background: red

مع ذلك، عندما يصل برنامج (مثل برنامج xmail نفسه، عندما يريد معرفة لون الخلفية المطلوب) إلى قاعدة بيانات الموارد عبر دوال Xlib ، فإنه لا يستطيع سوى طلب قيمة مورد محدد. على عكس معظم قواعد البيانات ، يمكن تحديد البيانات المخزنة بشكل عام (باستخدام أحرف البدل)، لكن لا يمكن الاستعلام عنها. على سبيل المثال، يمكن لبرنامج الاستعلام عن قيمة xmail.main.backgroundأو xmail.toc.buttons.background، لكن لا يمكنه استخدام ?أو *للتحقق من لون خلفية عدة مكونات في آن واحد.

يمكن أيضًا تحديد الموارد لفئات العناصر: على سبيل المثال، application.widget.widget.attribute: valueيمكن تعميمها عن طريق استبدال اسم التطبيق بفئته (على سبيل المثال، Mailبدلاً من xmh)، وكل عنصر واجهة مستخدم بنوعه ( Pane، Buttonإلخ)، والسمة بنوعها.

الموقع والاستخدام

أثناء تنفيذ خادم عرض X ، يتم تخزين موارد X في موقعين قياسيين، اعتمادًا على ما إذا كانت تنطبق على جميع الشاشات أو على شاشة معينة:

  1. خاصية RESOURCE_MANAGERالنافذة الجذرية للشاشة 0
  2. خاصية SCREEN_RESOURCESالنافذة الجذرية لشاشة عشوائية
يمكن الوصول إلى موارد X من قبل جميع البرامج المتصلة بخادم عرض X، حتى لو كانت تعمل على أجهزة كمبيوتر مختلفة.

تُخزَّن موارد X على الخادم بدلاً من ملف التكوين، مما يسمح للبرامج التي تُشغَّل من أجهزة كمبيوتر أخرى باستخدامها. في الواقع، يمكن لبرنامج يتصل بخادم عرض X من جهاز كمبيوتر آخر الوصول إلى الموارد عبر بروتوكول X. أما استخدام النظام القديم لتخزين معلمات البرنامج في .Xdefaultsملف التكوين، فيستلزم نسخ هذا الملف إلى جميع أجهزة الكمبيوتر الأخرى التي يمكن تشغيل البرنامج عليها.

يتولى برنامج xrdb إدارة الموارد . على وجه الخصوص، تقوم العديد من إعدادات خادم عرض X بتشغيل xrdb عند بدء التشغيل، موجهةً إياه لقراءة الموارد من الملف الموجود في دليل.Xresources المستخدم الرئيسي . من هذه النقطة فصاعدًا، تعثر جميع البرامج الأخرى على الموارد في الموقعين القياسيين. يمكنك عرض الموارد الحالية من وحدة التحكم باستخدام الأمر التالي .xrdb -query

مكتبات العميل

تحتوي مكتبة Xlib على عدد من الدوال المساعدة للوصول إلى موارد الخادم ومعالجتها محليًا. تُستخدم هذه الدوال من قِبل كلٍ من xrdb وأي برنامج آخر يحتاج إلى هذه الموارد. تُعالج معظم هذه الدوال قاعدة بيانات الموارد ، وهي بنية بيانات محلية تُمثل مجموعة من مواصفات الموارد. دوال Xlib لإدارة الموارد هي:

  • دوال لقراءة الموارد الموجودة على الخادم إلى سلسلة نصية محلية ( XResourceManagerStringو XScreenResourceString)
  • وظائف لإنشاء قاعدة بيانات موارد محلية ومعالجتها وتدميرها ( XrmInitialize, XrmDestroyDatabase, XrmGetFileDatabase, XrmPutFileDatabase, XrmGetStringDatabase, XrmLocaleOfDatabase, XrmSetDatabase, XrmGetDatabase, XrmCombineFileDatabase, XrmCombineDatabase, XrmMergeDatabases, XrmParseCommand)
  • دوال للبحث عن الموارد وتخزين موارد جديدة ( XrmGetResource, XrmQGetResource, XrmQGetSearchList, XrmQGetSearchResource, XrmPutResource, XrmQPutResource, XrmPutStringResource, XrmQPutStringResource, XrmPutLineResource, XrmEnumerateDatabase)

تتيح هذه الوظيفة، على وجه الخصوص، XrmParseCommandتحليل وسائط سطر الأوامر ، وقراءة الموارد التي تُضاف بعد ذلك إلى قاعدة بيانات موارد محلية. وبهذه الطريقة، يمكن قراءة الموارد من الخادم واستخدامها كقيم افتراضية يتم تجاوزها بواسطة وسائط سطر الأوامر.

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

انظر أيضاً

مراجع