ос и с. ОСиС. 1. Классификация программного обеспечения
Скачать 2.7 Mb.
|
/.Xresources. /.Xdefaults. Поскольку .Xdefaults в большинстве реализаций прекращает поиск (и все дальнейшие пункты просто не используются), лучше его никогда не заводить, а если уже есть -- избавляться от него. nxterm.fontMenu.fontsel Ресурс, содержащий текст "Selection" в данном случае называется "Label". Таким образом, полная ссылка на ресурс в объекте -- nxterm.fontMenu.fontsel.Label Чтобы указать значение ресурса, надо после ссылки на ресурс указать через двоеточие его значение (пробел после двоеточия необязателен и служит только для читаемости): nxterm.fontMenu.fontsel.Label: Current selection Поскольку при помощи текста можно указать далеко не все (например, как можно было бы закодировать в строке картинку или ссылку на функцию?), то возможность модификации ресурсов ограничивается в основном цветами, шрифтами, названиями (тексты меток и т.д), числами (координаты, размеры и т.д.), булевскими значениями (True/False) и геометрией. Впрочем, в практически всегда этого вполне достаточно (а реально есть возможность указывать почти все ресурсы). Шаблоны Чтобы, во-первых, не настраивать свойства каждого экземпляра, например, кнопки, по отдельности, а во-вторых, не указывать все время длинные цепочки объектов, существуют шаблоны. В понятие "шаблон" входит два компонента. Во-первых, вместо имени конкретного объекта можно указать имя класса, к которому принадлежит этот объект. К примеру, все объекты-пункты меню в NXterm (как, впрочем, и во всех программах на основе библиотеки Athena Widgets) принадлежат к классу "SmeBSB". Таким образом, чтобы поменять шрифт, которым отображаются все пункты меню в "VT Fonts" на "fixed", можно воспользоваться указанием ресурса nxterm.fontMenu.SmeBSB.font: fixed Во-вторых, вместо имени объекта или класса в качестве одного из компонентов ссылки на объект можно указать "*". Например, спецификация nxterm.*.SmeBSB.font: fixed сменит шрифт во всех трех меню NXterm. Символ "*" можно указывать и вместо нескольких компонентов сразу, опуская точки: спецификация nxterm*SmeBSB.font: fixed сменит шрифт во всех объектах класса "SmeBSB", к какой бы цепочке объектов они не принадлежали (впрочем, в NXterm других цепочек просто нет :). Другой пример -- спецификация nxterm*font: fixed позволяет изменить шрифт во всех объектах программы. В большинстве программ (к сожалению, в их число не входит NXterm) можно использовать еще более короткое указание: *font: fixed При использовании шаблонов может возникнуть ситуация, когда к одному и тому же ресурсу подходят несколько шаблонов. К примеру, nxterm*SmeBSB.font: 7x14 nxterm.fontMenu.SmeBSB.font: fixed В таких ситуациях действует правило: используется та спецификация, которая наиболее точно ссылается на объект. В приведенном выше примере во всех меню, кроме меню "fontMenu" ("VT Fonts"), используется шрифт "7x14", а в "fontMenu" -- шрифт "fixed". Как узнать имена объектов и названия ресурсов Названия ресурсов, вообще говоря, зависят от библиотеки объектов, на основе которой создана конкретная программа. Имена же объектов -- от конкретной программы. Поскольку редко когда требуется поменять значение "какого-нибудь" ресурса, то самое простое -- посмотреть так называемый app-defaults-файл для данной программы (см. ниже), в нем обычно перечислено большинство "интересных" ресурсов. Кроме того, в таблице ниже приведены самые часто используемые имена ресурсов для библиотек Athena Widgets и Motif. Часто используемые ресурсы
Откуда берутся значения ресурсов Мы довольно подробно рассмотрели синтаксис спецификации ресурсов, но остался вопрос -- а как и где, собственно, можно изменить значение ресурса для конкретной программы? Для ответа на этот вопрос приведем список источников (по мере уменьшения приоритета), из которых программа узнает значения ресурсов при запуске. Программа может установить значение ресурса при создании объекта. Ресурс можно указать в командной строке при помощи ключа "-xrm". Спецификации ресурсов могут быть загружены в память X-сервера (это делается автоматически при старте X-Window скриптом xinitrc из содержимого файлов /etc/xinit/.Xresources и |
Если есть файл
| Курсор принимает форму песочных часов при ожидании выполнения команды, так как Windows для этого требует некоторое время Установка курсора ввода. Появление вертикальной черты с ограничительными засечками на концах в окне ввода текста означает, что можно установить курсор ввода, если щелкнуть левой кнопкой мыши на позиции указателя мыши Такая стрелка, направленная налево вверх, предлагает возможность установки для выбора меню, команды меню, кнопки и пр. В зависимости от ситуации мышь берет на себя либо ввод команд, либо установку специальных значений Выделение строк текста, ячеек таблицы Появление такого крестообразного курсора свидетельствует о начале процесса перемещения окна или изменения его размеров Такая двунаправленная стрелка предлагает возможность изменения размеров окна в соответствующем направлении |
Щелчок, двойной щелчок, тройной щелчок и удерживание кнопки мыши нажатой являются вариантами непосредственного использования мыши для ввода. Как правило, команды мыши вводятся с помощью первичной кнопки мыши, которая установлена как левая кнопка мыши под указательный палец правой руки.
Если кнопка мыши, которую следует использовать, не указана, то подразумевается левая кнопка. Правая кнопка мыши используется в некоторых приложениях как вспомогательная для быстрого выполнения команды, вызова меню и пр. Если для выполнения команды нужно нажать правую кнопку, то в тексте это будет оговорено.
Активное окно. Несмотря на то, что Windows 3.1 — многозадачная среда, в которой могут работать несколько приложений одновременно, ясно, что один пользователь в каждый момент времени может работать только с одним приложением. Принято говорить, что приложение, к которому относятся команды и действия мыши, а также клавиатуры, отображается в активном окне.
Активное окно — окно приложения, реагирующее в данный момент на действия пользователя и полностью отображаемое на рабочем столе Windows.
ТЕХНОЛОГИЯ СВЯЗЫВАНИЯ И ВСТРАИВАНИЯ ОБЪЕКТОВ
Обмен данными между документами
Передача фрагмента данных от одного документа в другой представляет собой простейший способ обмена данными между приложениями. Выполняется эта операция через буфер обмена Windows. Эта операция является исходной для реализации долговременного связывания.
Буфер обмена можно представить как некоторое динамическое пространство оперативной памяти для временного размещения данных обмена. Каждое последующее занесение в буфер какой бы то ни было информации уничтожает предыдущее содержимое.
Для занесения информации в буфер обмена и ее извлечения оттуда приложения Windows имеют в своих меню команды КОПИРОВАТЬ, ВЫРЕЗАТЬ, ВСТАВИТЬ.
Для последующей работы с данными, занесенными в буфер обмена, в Windows в группе Главная можно использовать окно Папки Обмена. Это приложение позволяет просмотреть содержимое буфера, сохранить его в файле, очистить буфер или по-«ац1? местить его содержимое в Папку Обмена. Объект данных с содержимым очередного буфера получает название страницы в Папке Обмена. Пользователь сам выбирает имя для очередной страницы, a Windows сохраняет ее в файле с расширением .CLP.
Технология DDE
Для динамического обмена данными в Windows используется разработанная для этой цели фирмой Microsoft технология DDE — "Dynamic Data exchange", что означает "динамический обмен данными".
Технология DDE опирается на связь, установленную между фрагментами одного документа, а также между документами различных приложений. Наличие такого механизма связи позволяет автоматически актуализировать данные в документе-приемнике при изменениях в источнике данных.
Важно, что DDE-связь поддерживается, пока работают приложения, между которыми эта связь установлена. При изменениях в файле-источнике следует первым запускать приложение, обрабатывающее этот файл, а затем приложение с документом-приемником. В этом случае DDE-связь будет обновляться сразу же при внесении изменений в приложении-источнике.
При макропрограммировании в WordBasic есть возможность программным путем инициировать DDE-канал между двумя приложениями, послать по этому каналу серию команд, а также послать или запросить данные от одного приложения к другому.
Технология OLE
Для связывания документов в Windows используется разработанная для этой цели фирмой Microsoft технология OLE — "Object Linking and Embedding", что означает "связывание и встраивание объектов".
Технология OLE опирается на связь, установленную между документом и приложением, а также на механизм, разработанный для связи приложений. Наличие такого механизма позволяет перенести в выходной документ фрагмент или файл (документ) некоторого приложения, при этом он приобретает свойства встроенного или связанного объекта. Выходной связанный документ приобретает при этом свойства составного документа, т.е. документа, имеющего встроенные или связанные объекты различных форматов, созданные другими приложениями.
Однако не все приложения Windows 3.1 поддерживают технику OLE. Способные к этому приложения делятся на три группы:
• OLE-серверы (приложения - источники, родительские приложения) представляют собой приложения, из которых можно встраивать объекты или связывать их с другими приложениями;
• OLE-клиенты (приложения-приемники) представляют собой приложения, которые могут размещать в своих документах встроенные или связанные объекты из OLE-серверов. Такие документы называют составными;
• приложения, которые могут выполнять роль как сервера, так и клиента одновременно.
Объекты в технологии OLE
Для встраивания или связи могут использоваться объекты самых различных форматов:
текст, таблицы, рисунки, звук и т.д. Данные, вставляемые из одного OLE-приложения в другое, получают статус объекта OLE уже тогда, когда они копируются в буфер промежуточного обмена. При последующей вставке из буфера или при использовании специальной команды вставки объекта последний размещается в составном документе. Объект хранит информацию о связи с родительским приложением, поэтому при двойном щелчке мышью на объекте его родительское приложение активизируется для последующей обработки объекта.
Связывание и встраивание объектов
Существуют два варианта использования OLE:
• установление связи с объектом;
• внедрение (встраивание) объекта.
Основное различие между связыванием и внедрением объектов состоит в способе хранения данных.
При использовании связи механизм OLE действует как усовершенствованный по сравнению с Windows 3.0 механизм DDE. Для этой цели OLE нуждается лишь в данных о местоположении объекта и данных, необходимых для визуального (графического) представления объекта на экране. Очевидно, что приложение-клиент не в состоянии изменить эти данные, поскольку непосредственные данные объекта продолжают физически присутствовать в родительском приложении. После их актуализации в родительском приложении представление объекта в приложении-клиенте тут же меняется. Затем файл-источник следует сохранить, чтобы сохранились и актуализированные данные объекта.
Использование такого рода связи предпочтительно тем, что она не приводит к увеличению объема составного документа. Дополнительным преимуществом связывания является возможность установления множественных связей с одним объектом — один экземпляр объекта служит при этом источником данных для многих документов.
При использовании внедрения механизм OLE включает в составной документ копию оригинального объекта (копию фрагмента оригинального объекта) с его непосредственными данными и данными для управления им, при этом внедренный объект становится частью составного документа. Такой объект существует только в единственном экземпляре и только там, где он внедрен.
Существенно то, что для внедренной копии объекта связь с ее оригиналом не поддерживается. Это означает, что изменения, внесенные впоследствии в оригинальный объект, не отразятся на внедренной копии. Редактирование внедренного объекта возможно лишь путем вызова родительского приложения; приложение-клиент не в состоянии что-либо сделать с внедренным объектом, кроме его удаления или вырезки.
Двойной щелчок по внедренному объекту активизирует цепочку связи: приложение-клиент — приложение-сервер — внедренный объект. Любые команды приложения-сервера, прерывающие процесс редактирования объекта, закрывают цепочку связи между объектом и приложением-клиентом.
Внедрение объектов в составной документ приводит к значительному увеличению размера последнего. Тем не менее внедрение имеет некоторые преимущества по сравнению со связыванием. Во-первых, составной документ с внедренными объектами обладает таким свойством, как переносимость, т.е. может быть перенесен на другой компьютер, где его можно открыть в своем приложении. Во-вторых, внедренный объект редактируется родительским приложением по месту его нахождения в приложении-клиенте.
52. ОС Windows NT