Курсова - Додаток 21. Організація графічного інтерфейсу
Химия

Курсова — Додаток 21. Організація графічного інтерфейсу


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

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

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

— Подання ряду об’єктів піктограмами;

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

— Використання вказівного пристрою — миші;

— адекватність зображення на екрані об’єкту, що зображається (принцип WYSIWIG — What You See Is What You Get);

— Наочність;

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

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

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

Першою є поняття програми, керованої даними.

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

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

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

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

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

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

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

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

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

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

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

Працюючи з клавіатурою важливу роль грає поняття фокусу введення. Фокус введення — це вікно, якому надходять всі повідомлення від клавіатури. Існує кілька способів переміщення фокусу введення:

— при натисканні кнопки миші фокус передається вікну, над яким це сталося;

— вікна діалогу зазвичай перемикають фокус між керуючими елементами діалогу при натисканні певних клавіш (стандартно Tab і Shift-Tab);

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

© Реферат плюс



Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *