Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
metoda_KP_OP.doc
Скачиваний:
2
Добавлен:
16.08.2019
Размер:
183.3 Кб
Скачать

Додаток 17

ОРГАНІЗАЦІЯ ГРАФІЧНОГО ІНТЕРФЕЙСУ

Під графічним користувальницьким інтерфейсом (GUI - Graphical User Interface) розуміється деяка система (середовище), що служить для організації інтерфейсу прикладних програм з користувачем на основі графічного багато віконного представлення даних. У середовищі GUI організацію усієї взаємодії з користувачем бере на себе саме саме середовище, залишаючи прикладній програмі робити тільки свою роботу.

До загальних принципів, що лежать в основі GUI відносяться:

  • графічний режим роботи;

  • представлення ряду об'єктів піктограмами;

  • багатовіконність;

  • використання пристрою, що вказує - миші;

  • адекватність зображення на екрані зображуваному об'єктові (принцип WYSIWIG - What You See Is What You Get);

  • наочність;

  • стандартизація всіх основних дій і елементів (усі програми для даного графічного середовища виглядають і поводяться зовсім однаково, використовують однакові принципи функціонування);

  • наявність великого числа стандартних елементів (кнопок, полів редагування, перемикачів і т.д.), що можуть використовуватися при конструюванні прикладних програм, роблячи їх схожими у використанні і полегшуючи процес їхнього написання.

В основі сучасного графічного користувальницького інтерфейсу лежать дві основні концепції.

Першою з них є поняття програми, керованої даними. Як правило, ця концепція практично реалізується через механізм повідомлень. Зовнішні пристрої (клавіатура, миша, таймер) посилають повідомлення модулям програми про настання тих або інших подій (наприклад, при натисканні клавіші або пересуванні миші). Повідомлення, що надходять, попадають у чергу повідомлень, відкіля витягаються прикладною програмою.

Таким чином, програма не повинна увесь час опитувати мишу, клавіатуру й інші пристрої в чеканні, чи не відбулося чого-небудь, що заслуговує уваги. Коли подія відбудеться, програма одержить повідомлення про це для того, щоб належним чином його обробити. Тому програми для таких середовищ звичайно являють собою цикл обробки повідомлень: витягти чергове повідомлення, обробити його, якщо воно цікаво, або передати стандартному оброблювачеві повідомлень, що звичайно входить у систему і який являє собою собою стандартні дії системи у відповідь на ту або іншу подію.

Повідомлення можуть посилатися не тільки пристроями, але й окремими частинами програми (зокрема, можлива посилка повідомлення собі). Так один модуль може послати повідомлення іншому модулеві, або меню посилає повідомлення про вибір визначеного пункту. При цьому існує також спосіб прямої посилки повідомлення, минаючи чергу, коли безпосередньо викликається оброблювач повідомлень адресата.

Другою основною концепцією є поняття вікна як об'єкта. Вікно - це не просте прямокутна область на екрані, це і програма (процедура, функція), здатна виконати різні дії, властивому вікну. Одним з основних таких дій є реагування на повідомлення, що надходять, і посилка повідомлень іншим об'єктам.

Однієї з основних функцій вікна є перемальовування змісту вікна. Будь-яке вікно повинне вміти при одержанні відповідного запиту перемалювати себе (або свою частину) на екрані. Перемальовування може реалізовуватися або як реакція на спеціальне повідомлення, або як віртуальна функція (при використанні обєктно-орієнтованих мов). До складу будь-який GUI обов'язково входить досить могутній графічний модуль, що забезпечує виконання всіх основних графічних операцій і підтримуюче відсікання зображення по заданій (у тому числі і досить складної) області відсікання. За рахунок цього реалізується можливість перемальовування фрагмента вікна - встановлюється область відсікання, що збігає з необхідним фрагментом, а потім виконується запит на перемальовування. При відпрацьовуванні запиту на перемальовування вікно може визначити розмір поточної області і не намагатися малювати те, що свідомо буде відсічено.

Серед вікон уводяться відносини приналежності і проходження, тобто будь-яке вікно може мати вікна-батька, якому воно належить, і, отже, задається у внутрішніх координатах батьківського вікна, відтинається в розмірах батьківським вікном і знищується при знищенні батьківського вікна. Будь-яке вікно може мати і приналежні йому вікна (підвікна), причому останні деяким чином упорядковуються. Тим самим вікна можуть утворювати деревоподібні структури підпорядкування.

Батьківське вікно і приналежні йому підвікна можуть обмінюватися повідомленнями один з одним. Ці повідомлення звичайно розділяються на два класи - запит на виконання вікном деякої дії і повідомлення, що оповіщає вікно про те, що в іншому вікні (звичайно підвікно) відбулися деякі зміни.

Будь-яка подібна система повинна надавати для роботи деякий стандартний набір типів вікон, з яких користувач може будувати свої програми.

До складу вікна можуть входити інші вікна і діяти при цьому як єдине ціле. Наприклад, до складу вікна-списку може входити скроллер.

Серед вікон звичайно виділяються вікна, призначені для ведення діалогу з користувачем, уведення даних і т.п. Звичайно в їхній основі лежить стандартне вікно з великим набором підвікон, що грають роль керуючих елементів. Як правило, діалогове вікно (або процедура, що веде діалог) забезпечується спеціальною функцією для координації роботи керуючих елементів. Наприклад, діалог для вибору файлу.

Крім стандартних вікон користувач може створювати свої власні типи вікон, або додаючи якісь нові властивості, або перевизначаючи частину старих і наслідуючих все інше.

При роботі з клавіатурою важливу роль грає поняття фокуса введення. Фокус уведення - це те вікно, якому надходять усі повідомлення від клавіатури. Існує кілька способів переміщення фокуса введення: - при натисканні кнопки миші фокус передається тому вікну, над яким це відбулося; - вікна діалогу звичайно переключають фокус між керуючого елемента­­­ мі діалогу при натисканні визначених клавіш (стандартно це Tab і Shift-Tab); - за допомогою явного виклику функції установки фокуса введення.

Вікну, що утрачає фокус уведення, звичайно посилається повідомлення про цьому, і воно може запобігти переходові фокуса від себе. Вікну, що одержує фокус, передається повідомлення про те, що воно одержало фокус уведення.

ЗМІСТ

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]