X Window жүйесінде мәліметтерді терезелер арасында көшіру: таңдау, буфер және сүйреп тастау. Қолданбалар арасындағы дерек алмасу қалай жүзеге асырылады?
Ағылшыншамен салыстырыңыз: абзацты басыңыз — түпнұсқа терезеде ашылады. Абзац астындағы EN түймесі оны мәтін ішінде көрсетеді.
Мазмұны
Кіріспе
Таңдаулар, кесу буферлері және сүйреп тастау – X терезе жүйесінде пайдаланушыға деректерді бір терезеден екіншісіне беруге мүмкіндік беретін механизмдер. Таңдаулар мен кесу буферлері әдетте пайдаланушы терезеде мәтін немесе басқа деректерді таңдап, оны басқа терезеге қойғанда қолданылады. Сүйреп тастау әдісінде пайдаланушы терезеде бір нәрсені таңдап, содан кейін таңдалған элементті басып, басқа терезеге сүйрейді. Екі терезе әртүрлі қолданбалармен басқарылатындықтан, осы механизмдер дерек алмасу үшін бір X серверіне қосылған екі клиенттің өзара әрекеттесуін қажет етеді. X терезе жүйесінің негізгі протоколы таңдау алмасуға қатысты сұраулар мен оқиғаларды қамтиды, бірақ деректерді беру көбінесе оқиғаларды жіберу және терезе қасиеттерін пайдалану арқылы жүзеге асырылады, бұл таңдау алмасуға тән емес. Әртүрлі дерек түрлерін беруге болады: көбінесе мәтін, бірақ сондай-ақ сурет, сан, нысандар тізімі сияқты деректер де жіберілуі мүмкін. Бұдан әрі тек мәтінмен жұмыс істеу қарастырылады.
Selections, cut buffers, and drag and drop are the mechanisms used in the X Window System to allow a user to transfer data from one window to another. Selections and cut buffer are typically used when a user selects text or some other data in a window and pastes in another one. Drag and drop is used when a user selects something in a window, then clicks on the selection and drags it into another window. Since the two windows may be handled by two different applications, these mechanisms require two different clients connected with the same X server to exchange data. The X Window System core protocol includes some requests and events that are specific to selection exchange, but the transfer is mainly done using event sending and window properties, which are not specific to selection transfer. Different types of data can be transferred: it is usually text, but can also be an image, a number, a list of objects, etc. In the following, only the case of text is considered.
Клипборд
Ең көп қолданылатын таңдау - PRIMARY таңдауы, және пайдаланушы деректерді таңдағанда ол қолданылады. CLIPBOARD таңдауы пайдаланушы деректерді таңдап, оларды клипбордқа "көшіруді" тікелей сұрағанда қолданылады, мысалы, бағдарламаның "Өңдеу" мәзірінен "Көшіру" функциясын шақырғанда. "Қою" сұранысы CLIPBOARD таңдауындағы деректерді пайдалануға әкеледі. Негізгі протокол деңгейінде PRIMARY және CLIPBOARD таңдаулары арасында ешқандай айырмашылық жоқ. Бірақ xclipboard клиенті оларды әртүрлі әрекет етуге мәжбүрлейді. Атап айтқанда, егер басқа клиент CLIPBOARD таңдауына иелік ететінін көрсетсе, бұл бағдарлама оны сұрап, терезеде көрсетеді. Осы таңдауға келесі кез келген сұраныс xclipboard арқылы өңделеді. Осылайша, таңдаудың мазмұны клиент оны көшіргеннен кейін де сақталады.
The most used selection is the PRIMARY selection, and is used when the user selects some data. The CLIPBOARD selection is used when the user selects some data and explicitly requests it to be "copied" to the clipboard, such as by invoking "Copy" under the "Edit" menu of an application. An associated request of "Paste" results in the data of the CLIPBOARD selection being used. At the level of the core protocol, the PRIMARY and CLIPBOARD selections do not differ. But the xclipboard client makes them behave differently. In particular, when another client asserts the ownership of the CLIPBOARD selection, this program requests and displays it in a window. Any further request for this selection are handled by xclipboard. This way, the content of the selection survives the client having copied it.
Кесу буферлері
Кесу буферлері – деректерді, әсіресе таңдалған мәтінді берудің тағы бір механизмі. Олар CUT BUFFER1 және т.б. деп аталатын түбір терезенің терезе қасиеттері болып табылады. Таңдаулардан өзгеше, кесу буферлері клиенттер арасында тікелей өзара әрекеттесуді қажет етпейді. Терезенің иесі мәтінді таңдағанда, оны CUT BUFFER1 деп аталатын түбір терезенің қасиетіне көшіреді. Пайдаланушы мәтінді басқа терезеге қойғанда, терезе иесі осы қасиетті түбір терезеден оқиды. xcutsel бағдарламасы таңдаулар мен кесу буферлері арасында деректерді алмастырады, ал xcb бағдарламасы кесу буферлеріне әртүрлі қол жеткізуге мүмкіндік береді. Кесу буферлері қолданыстан шыққан деп есептеледі.
Cut buffers are another mechanism to transfer data, in particular selected text. They are window properties of the root window, named CUT BUFFER1, etc. Unlike selections, cut buffers do not involve a direct interaction between clients. Rather, when text is selected in a window, the window owner copies this text into the property of the root window called CUT BUFFER1. When the user pastes the text in another window, the window owner reads this property of the root window. The xcutsel program transfers data between selections and cut buffers, and the xcb program allows various kinds of access to the cut buffers. Cut buffers are considered obsolete.