X Window selection
سلیکشنز، کٹ بفرز، اور ڈریگ اینڈ ڈراپ وہ میکانزم ہیں جو ایکس ونڈو سسٹم میں استعمال ہوتے ہیں تاکہ صارف ڈیٹا کو ایک ونڈو سے دوسری ونڈو میں منتقل کر سکے۔ سلیکشنز اور کٹ بفر عام طور پر اس وقت استعمال ہوتے ہیں جب صارف کسی ونڈو میں ٹیکسٹ یا کوئی دوسرا ڈیٹا منتخب کرتا ہے اور دوسرے میں پیسٹ کرتا ہے۔ ڈریگ اینڈ ڈراپ کا استعمال اس وقت کیا جاتا ہے جب صارف ونڈو میں کچھ منتخب کرتا ہے، پھر سلیکشن پر کلک کرتا ہے اور اسے دوسری ونڈو میں گھسیٹتا ہے۔ چونکہ دونوں ونڈوز کو دو مختلف ایپلی کیشنز کے ذریعے سنبھالا جا سکتا ہے، اس لیے ان میکانزم کو ڈیٹا کے تبادلے کے لیے ایک ہی ایکس سرور سے منسلک دو مختلف کلائنٹس کی ضرورت ہوتی ہے۔ ایکس ونڈو سسٹم کور پروٹوکول میں کچھ درخواستیں اور ایونٹس شامل ہیں جو سلیکشن ایکسچینج کے لیے مخصوص ہیں، لیکن منتقلی بنیادی طور پر ایونٹ سینڈنگ اور ونڈو پراپرٹیز کا استعمال کرتے ہوئے کی جاتی ہے، جو سلیکشن ٹرانسفر کے لیے مخصوص نہیں ہیں۔ مختلف قسم کے ڈیٹا کو منتقل کیا جا سکتا ہے: یہ عام طور پر متن ہوتا ہے، لیکن یہ ایک تصویر، ایک نمبر، اشیاء کی فہرست وغیرہ بھی ہو سکتا ہے۔ مندرجہ ذیل میں صرف متن کے معاملے پر غور کیا جاتا ہے۔ فعال اور غیر فعال انتخاب ڈیٹا کی منتقلی کے طریقوں کو فعال اور غیر فعال میں درجہ بند کیا جا سکتا ہے، اس پر منحصر ہے کہ آیا منتخب کردہ ڈیٹا کو سنبھالنے والے کلائنٹ کو اس کی درخواست کرنے والے کلائنٹ کو منتقلی میں فعال طور پر حصہ لینا پڑتا ہے: غیر فعال جب کچھ ڈیٹا منتخب کیا جاتا ہے، تو اس ونڈو کو سنبھالنے والا کلائنٹ جہاں یہ انتخاب کیا جاتا ہے اسے کہیں منتقل کر دیتا ہے، اور اب اسے اس کی پرواہ کرنے کی ضرورت نہیں ہے۔ کلائنٹ کو ڈیٹا کی فعال منتقلی کے لیے کلائنٹ کے "ہولڈنگ" انتخاب کی ضرورت ہوتی ہے کہ وہ تبادلے میں فعال طور پر حصہ لے۔ انتخاب اور ڈریگ اینڈ ڈراپ فعال میکانزم ہیں: ونڈو میں کچھ متن منتخب ہونے کے بعد، ونڈو کو سنبھالنے والے کلائنٹ کو ڈیٹا کو درخواست کرنے والی ایپلی کیشن میں منتقل کرنے کے لیے ایک پروٹوکول کی فعال طور پر حمایت کرنی چاہیے۔ اس کے برعکس، کٹ بفر ایک غیر فعال طریقہ کار ہے: کچھ متن کو منتخب کرنے کے بعد، اسے کٹ بفر میں منتقل کر دیا جاتا ہے اور وہیں رہ جاتا ہے چاہے ونڈو کو سنبھالنے والی ایپلی کیشن ختم ہو جائے اور ونڈو تباہ ہو جائے۔ ایکس کلپ بورڈ ایک غیر فعال طریقہ کار ہے جیسا کہ انتخاب کرنے والے کلائنٹ کے ذریعہ سمجھا جاتا ہے، لیکن اس کے بعد کے کسی بھی ڈیٹا ٹرانسفر کو فعال طور پر سپورٹ کرنے کے لیے ایکس کلپ بورڈ کلائنٹ کی ضرورت ہوتی ہے۔ فعال میکانزم کا ایک فائدہ یہ ہے کہ منتقلی سے پہلے ڈیٹا کو مختلف شکل میں تبدیل کیا جا سکتا ہے۔ خاص طور پر، ڈیٹا وصول کرنے والا کلائنٹ سلیکشن ڈیٹا کو مناسب فارم میں تبدیل کرنے کی درخواست کر سکتا ہے۔ اگر بھیجنے والا کلائنٹ ایسا کرنے سے انکار کرتا ہے، تو وصول کنندہ مختلف فارمیٹ کی درخواست کر سکتا ہے۔ مثال کے طور پر، ایچ ٹی ایم ایل کوڈ کو پیش کرنے والے متن کے ایک ٹکڑے کو متن کے طور پر ایک درخواست گزار کو منتقل کیا جا سکتا ہے جو صرف متن کو سنبھال سکتا ہے، لیکن اگر درخواست گزار اسے سنبھال سکتا ہے تو اسے ایچ ٹی ایم ایل کوڈ کے طور پر بھی منتقل کیا جا سکتا ہے۔ فارمیٹ کی اس طرح کی گفت و شنید غیر فعال میکانزم کے ذریعے نہیں کی جا سکتی، جس میں انتخاب کا حامل کلائنٹ (اور اسے سیمنٹکس دیتا ہے) انتخاب کو منتقل کرتا ہے اور اس کی درخواست کرنے والے کلائنٹ میں مزید منتقلی میں شامل نہیں ہوتا ہے۔ فعال میکانزم کا ایک اور فائدہ یہ ہے کہ ڈیٹا کے بڑے ٹکڑوں کو کسی ایک کے بجائے منتقلی کے سلسلے میں منتقل کیا جا سکتا ہے۔ اس کے بجائے غیر فعال میکانزم میں تمام ڈیٹا کو سلیکشن مالک سے کہیں منتقل کرنے کی ضرورت ہوتی ہے، پھر اس کی درخواست کرنے والے کلائنٹ کو دوبارہ منتقل کیا جاتا ہے۔ غیر فعال میکانزم کا فائدہ یہ ہے کہ ڈیٹا رکھنے والے کلائنٹ کے ختم ہونے کے بعد بھی منتقلی کی جا سکتی ہے۔ یہ فعال میکانزم میں ممکن نہیں ہے، جس کے لیے ڈیٹا رکھنے والے کلائنٹ کو منتقلی میں فعال طور پر حصہ لینے کی ضرورت ہوتی ہے۔ انتخاب ایکس ونڈو سسٹم انتخاب کی صوابدیدی تعداد کی حمایت کرتا ہے۔ ہر انتخاب کی شناخت ایک تار (زیادہ واضح طور پر، ایک ایٹم) کے ذریعے کی جاتی ہے۔ سب سے زیادہ استعمال ہونے والا انتخاب پرائمری سلیکشن ہے۔ مندرجہ ذیل درخواستیں سلیکشن ٹرانسفر کے لیے مخصوص ہیں، حالانکہ ٹرانسفر میں دیگر درخواستیں بھی شامل ہیں: یہ جاننے کی درخواست کہ سلیکشن کی درخواست کون سی ونڈو کا مالک ہے تاکہ وہ ونڈو سیٹ کی جا سکے جو سلیکشن کو تبدیل کرنے کے لیے سلیکشن کی درخواست کا مالک ہے۔ سلیکشن کا مالک عام طور پر وہ ونڈو ہوتا ہے جس میں منتخب متن واقع ہوتا ہے، اگر کوئی ہو۔ جب صارف ونڈو میں کچھ متن منتخب کرتا ہے، تو ونڈو کو سنبھالنے والے کلائنٹ کو سرور کو بتانا چاہیے کہ ونڈو سلیکشن کا مالک ہے۔ جب صارف سلیکشن کو دوسری ونڈو میں پیسٹ کرنے کی کوشش کرتا ہے، تو اس ونڈو کا ہینڈلر دوسرے کلائنٹ سے منتخب متن حاصل کرنے کے لیے ایک پروٹوکول شروع کرتا ہے۔ اس پروٹوکول میں مندرجہ بالا فہرست کی دوسری اور تیسری درخواستیں شامل ہیں، اور یہ ایکس پروٹوکول کے ذریعہ نہیں بلکہ انٹر کلائنٹ کمیونیکیشن کنونشن دستی (آئی سی سی سی ایم) میں ایک کنونشن کے طور پر متعین ہے۔ خاص طور پر، منزل گاہک سرور سے پوچھ کر شروع کرتا ہے کہ کون سی ونڈو سلیکشن کی مالک ہے۔ پھر دونوں کلائنٹ سرور کے ذریعے سلیکشن منتقل کرتے ہیں۔ اس تبادلے میں ونڈو کی ایک خاصیت، اور ونڈو سے منسلک ڈیٹا کا ایک من مانی ٹکڑا شامل ہوتا ہے۔ اگر انتخاب کے مواد کو ایک ساتھ منتقل کرنے کے لیے کافی چھوٹا سمجھا جاتا ہے، تو جو اقدامات ہوتے ہیں وہ یہ ہیں: انتخاب کا وصول کنندہ انتخاب کو تبدیل کرنے کی درخواست کرتا ہے، ونڈو کی پراپرٹی کی وضاحت کرتا ہے (یہ وہ ونڈو ہو سکتی ہے جہاں متن چسپاں کرنا ہوتا ہے) جواب میں، سرور سلیکشن کے موجودہ مالک کو سلیکشن ریکویسٹ ایونٹ بھیجتا ہے ؛ مالک منتخب متن کو ونڈو کی پراپرٹی میں رکھتا ہے جو درخواست کنندہ نے چینج پراپرٹی بھیج کر متعین کیا ہے۔ سرور سے درخواست کریں کہ مالک سرور کو درخواست بھیجتا ہے کہ وہ درخواست کنندہ کو سلیکشن بھیج دے تاکہ یہ مطلع کیا جا سکے کہ انتخاب منتقل کر دیا گیا ہے اب درخواست کنندہ ونڈو کی پراپرٹی میں ایک یا زیادہ گیٹ پروپر بھیج کر انتخاب پڑھ سکتا ہے۔ اگر مواد بڑا ہے تو اسے ٹکڑوں میں منتقل کیا جانا چاہیے۔ اس صورت میں، دونوں کلائنٹ پراپرٹی نوٹیفائی ایونٹس میں دلچسپی کا اظہار کرتے ہیں: اس طرح، سلیکشن مالک کو معلوم ہوتا ہے کہ سلیکشن کب پڑھا گیا ہے، اور درخواست کنندہ کو معلوم ہوتا ہے کہ پراپرٹی میں دوسرا حصہ کب رکھا گیا ہے۔ ایکس فکسس ایکسٹینشن کلائنٹس کو سلیکشن تبدیلیوں کو سننے کی اجازت دیتی ہے۔ کلپ بورڈ سب سے زیادہ استعمال ہونے والا انتخاب پرائمری سلیکشن ہے، اور اس کا استعمال اس وقت کیا جاتا ہے جب صارف کچھ ڈیٹا منتخب کرتا ہے۔ کلپ بورڈ کا انتخاب اس وقت استعمال ہوتا ہے جب صارف کچھ ڈیٹا کا انتخاب کرتا ہے اور واضح طور پر اسے کلپ بورڈ پر "کاپی" کرنے کی درخواست کرتا ہے، جیسے کہ کسی ایپلیکیشن کے "ایڈیٹ" مینو کے تحت "کاپی" کرنا۔ "پیسٹ" کی ایک متعلقہ درخواست کے نتیجے میں کلپ بورڈ کے انتخاب کا ڈیٹا استعمال کیا جا رہا ہے۔ بنیادی پروٹوکول کی سطح پر، پرائمری اور کلپ بورڈ کے انتخاب مختلف نہیں ہیں۔ لیکن ایکس کلپ بورڈ کلائنٹ انہیں مختلف انداز میں برتاؤ کرنے پر مجبور کرتا ہے۔ خاص طور پر، جب کوئی دوسرا کلائنٹ کلپ بورڈ سلیکشن کی ملکیت کا دعوی کرتا ہے، تو یہ پروگرام درخواست کرتا ہے اور اسے ونڈو میں دکھاتا ہے۔ اس انتخاب کے لیے کسی بھی مزید درخواست کو ایکس کلپ بورڈ کے ذریعے سنبھالا جاتا ہے۔ اس طرح، انتخاب کا مواد کلائنٹ کی نقل کرنے کے بعد زندہ رہتا ہے۔ کٹ بفرز ڈیٹا کی منتقلی کا ایک اور طریقہ کار ہے، خاص طور پر منتخب کردہ متن میں۔ وہ روٹ ونڈو کی ونڈو خصوصیات ہیں، جن کا نام CUT _ BUFFER1، وغیرہ ہے۔ انتخاب کے برعکس، کٹ بفر میں گاہکوں کے درمیان براہ راست تعامل شامل نہیں ہوتا ہے۔ بلکہ، جب کسی ونڈو میں متن کا انتخاب کیا جاتا ہے، تو ونڈو کا مالک اس متن کو جڑ ونڈو کی خاصیت میں کاپی کرتا ہے جسے CUT _ BUffER1 کہا جاتا ہے۔ جب صارف متن کو دوسری ونڈو میں چسپاں کرتا ہے، تو ونڈو کا مالک روٹ ونڈو کی اس خاصیت کو پڑھتا ہے۔ ایکس کٹسل پروگرام سلیکشنز اور کٹ بفرز کے درمیان ڈیٹا منتقل کرتا ہے، اور ایکس سی بی پروگرام کٹ بفرز تک مختلف قسم کی رسائی کی اجازت دیتا ہے۔ کٹ بفرز کو متروک سمجھا جاتا ہے۔ ایکس ونڈو سسٹم میں ایکس ڈی این ڈی ڈریگ اینڈ ڈراپ کو ایکس ڈی این ڈی کنونشن کے ذریعے ریگولیٹ کیا جاتا ہے۔ جب صارف منتخب متن کو ونڈو میں گھسیٹتا ہے اور ماؤس کا بٹن جاری کرتا ہے، تو ڈیٹا کا تبادلہ بنیادی انتخاب کے لیے کیا جاتا ہے۔ ڈریگ اینڈ ڈراپ اس بات سے پیچیدہ ہوتا ہے کہ ڈریگ کے دوران کیا ہوتا ہے۔ یعنی، جب صارف سلیکشن کو ڈیسک ٹاپ یا ونڈو کے مختلف حصوں میں گھسیٹتا ہے، تو صارف یہ بتانے کے قابل ہونے کی توقع کرتا ہے کہ ٹیکسٹ کو ڈراپ کیا جا سکتا ہے یا نہیں۔ خاص طور پر، ہدف کو بصری فیڈ بیک دکھانا چاہیے کہ آیا وہ ڈراپ کو قبول کرے گا یا نہیں، اور کرسر کو اس کارروائی کی نشاندہی کرنے کے لیے تبدیل ہونا چاہیے جو کی جائے گی ؛ مثال کے طور پر، کاپی یا حرکت۔ ایکس ڈی این ڈی پروٹوکول میں، وہ ونڈو جہاں متن منتخب کیا جاتا ہے اور ڈریگ شروع ہوتا ہے اسے ماخذ کہا جاتا ہے ؛ وہ ونڈو جس پر کرسر گھومتا ہے اسے ہدف کہا جاتا ہے۔ ماخذ اور ہدف کے درمیان مواصلات ماخذ کی طرف سے کارفرما ہے کیونکہ ماخذ کرسر کو "پکڑتا ہے"۔ اس لیے ماخذ اور ہدف کے درمیان تبادلہ ضروری ہے تاکہ ہدف کو یہ بھی معلوم ہو کہ ڈریگ اینڈ ڈراپ ہو رہا ہے۔ چونکہ ماخذ کرسر کی شکل کا فیصلہ کرتا ہے، اس لیے کرسر کو اپ ڈیٹ کرنے کے لیے ماخذ کو ہدف سے جواب ملنا چاہیے۔ اس کے علاوہ، چونکہ ہدف کو یہ بتانے کے لیے بم کی نظر کھینچنے کی ضرورت پڑ سکتی ہے کہ ڈراپ کہاں ہوگا، اور چونکہ ڈراپ کی قبولیت کرسر کے صحیح مقام پر منحصر ہو سکتی ہے، اس لیے کرسر کے حرکت کرتے وقت یہ تبادلہ بار بار ہونا چاہیے۔ درحقیقت، یہاں تک کہ اگر کرسر حرکت نہیں کرتا ہے، تب بھی پیغامات کا تبادلہ کرنا ضروری ہے تاکہ جب کرسر دیکھنے کے علاقے کے کنارے کے قریب ہو تو ہدف کو اسکرول کرنے کی اجازت دی جا سکے۔ بصورت دیگر، صارف صرف ہدف کے دکھائی دینے والے حصے پر چھوڑ سکے گا۔ ایک پروگرام یہ بتا سکتا ہے کہ ایکس ڈی این ڈی اویئر نامی پراپرٹی بنا کر ونڈو ڈراپ کا ہدف بن سکتی ہے جس میں پروٹوکول کا اعلی ترین ورژن ہوتا ہے جسے پروگرام سپورٹ کرتا ہے۔ اس طرح، ایپلی کیشنز جو نئے ورژن کی حمایت کرتی ہیں وہ صحیح طریقے سے کام کرنے کے لیے پرانے ورژن میں واپس آسکتی ہیں۔ اس کے علاوہ، وہ تمام ایپلی کیشنز جو ایکس ڈی این ڈی کی حمایت کے بغیر لکھی گئی ہیں انہیں نظر انداز کر دیا جائے گا۔ جب کرسر ٹارگٹ ونڈو میں داخل ہوتا ہے، تو سورس اس ونڈو پر XdndAware پراپرٹی کی موجودگی کی جانچ کرتا ہے۔ اگر یہ خاصیت موجود ہے، تو ایک تبادلہ شروع ہوتا ہے: ماخذ ہدف کو بتاتا ہے کہ کرسر ہدف میں داخل ہو گیا ہے جبکہ کچھ ڈیٹا کو گھسیٹ کر ایک ایونٹ XdndEnter بھیج کر ہدف معلوم کر سکتا ہے کہ کس قسم کا ڈیٹا گھسیٹا گیا ہے (متن، تصویر، وغیرہ)۔ اس واقعہ کو دیکھ کر اور ممکنہ طور پر ماخذ کے ساتھ مزید تعامل کے ذریعے جب کرسر ٹارگٹ ونڈو کے اندر ہوتا ہے: ماخذ ہدف کو یہ بتانے کے لیے ایکس ڈی این ڈی پوزیشن کے واقعات بھیجتا ہے کہ کرسر فی الحال کہاں ہے، ماخذ کو یہ بتانے کے لیے کہ آیا ڈیٹا کو موجودہ پوزیشن میں گرایا جا سکتا ہے، ماخذ ایکس ڈی این ڈی لیو یا ایکس ڈی این ڈی ڈراپ پیغام بھیجتا ہے جب کرسر ونڈو سے نکل گیا ہو یا بٹن جاری کیا گیا ہو، بالترتیب اگر صارف گر جاتا ہے، تو ہدف معمول کے مطابق ماخذ سے انتخاب کی درخواست کرتا ہے۔ جب انتخاب کی منتقلی کا اختتام ہوتا ہے، تو ہدف ایک XdndFinish ایونٹ بھیجتا ہے تاکہ ماخذ کو بتائے کہ منتقلی کامیاب رہی ہے۔ خلاصہ یہ ہے کہ پروٹوکول ماخذ کے ذریعے چلایا جاتا ہے، جو ہدف کو مطلع کرتا ہے کہ کرسر کے ساتھ کیا ہو رہا ہے۔ جواب میں، ہدف ماخذ کو بتاتا ہے کہ آیا ڈراپ قبول کیا جائے گا یا نہیں۔ جب صارف ماؤس کا بٹن جاری کرتا ہے تو ہدف کو بھی مطلع کیا جانا چاہیے، کیونکہ یہ واقعہ انتخاب کے لیے باقاعدہ درخواست شروع کرتا ہے، جو ہدف کے ذریعے چلنے والا ایک پروٹوکول ہے۔ اوپر ڈریگ اینڈ ڈراپ کے لیے ایکس ڈی این ڈی کنونشن کی تفصیل ہے۔ ڈریگ اینڈ ڈراپ کے لیے مختلف کنونشن موٹیف، آفکس اور امولیٹ میں استعمال ہوتے ہیں۔ ایکس ڈی ایس ڈائریکٹ سیو پروٹوکول، مختصرا ایکس ڈی ایس (ایکس ونڈو ڈائریکٹ سیو پروٹوکول کے لیے)، ایک سافٹ ویئر پروٹوکول ہے جو فائلوں کو فائل مینیجر ونڈوز میں گھسیٹ کر محفوظ کرنے کی حمایت کرتا ہے۔ ایکس ڈی ایس ایکس ڈی این ڈی پروٹوکول کے اوپر بنایا گیا ہے۔ پروگرام درج ذیل پروگرام خاص طور پر ڈیٹا ٹرانسفر میکانزم پر کام کرتے ہیں: ایکس کٹسل ڈیٹا کو سلیکشن سے کٹ بفرز میں منتقل کرتا ہے یا اس کے برعکس ایکس کلپ بورڈ، گلپر (گنوم)، پارسلائٹ (ایل ایکس ڈی ای)، اور کلپر (کے ڈی ای) کلپ بورڈ منیجر ہیں، شاید ڈبلیو ایم کلپسٹ کے ساتھ ساتھ ایکس سی بی کٹ بفرز کا مواد دکھاتا ہے اور صارف کو ان میں ہیرا پھیری کرنے کی اجازت دیتا ہے۔ ایکس سلیکشن، ایکس کلپ، ایکس ایس ایل اور ایکس کاپی کمانڈ لائن پروگرام ہیں جو ڈیٹا کو ایکس سلیکشن میں یا اس سے کاپی کرتے ہیں۔ ایکس کاپی میں ایک وربوسیٹی آپشن ہے جو ایکس سلیکشن کے مسائل کو ٹھیک کرنے میں مدد کرتا ہے۔ پارسلائٹ میں کمانڈ لائن سے مخصوص X انتخاب کو پڑھنے اور لکھنے کی صلاحیت بھی ہوتی ہے۔ ہم آہنگی ایک کراس پلیٹ فارم ٹول ہے جو آپ کو ایک سے زیادہ آپریٹنگ سسٹم چلانے والے متعدد کمپیوٹرز میں کلپ بورڈ شیئر کرنے کی اجازت دیتا ہے xfce4-کلپ مین-پلگ ان ایک "کلپ بورڈ ہسٹری پلگ ان برائے ایکس ایف سی ای 4 پینل" ہے اور ایک کلپ بورڈ مینیجر بھی ترجمہ کرتا ہے ایک کثیر لسانی لغت میں ایکس سلیکشن میں الفاظ دیکھتا ہے آٹو کٹسل کٹ بفر اور سلیکشن بفر کو مطابقت پذیر کرتا ہے یہ بھی دیکھیں ایکس ونڈو سسٹم پروٹوکول اور آرکیٹیکچر ایکس ونڈو سسٹم کور پروٹوکول آئی سی سی سی ایم حوالہ جات بیرونی لنکس آئی سی سی سی ایم: پیئر ٹو پیئر کمیونیکیشن بذریعہ ذرائع انتخاب آئی سی سی سی ایم: پیئر ٹو پیئر کمیونیکیشن بائی مینز آف کٹ بفرز ایکس ڈی این ڈی تفصیلات کیتھ پیکارڈ سی کا ایک کاغذ