ГОСТ Р
34.1702.3-92 (Поправка) ГОСУДАРСТВЕННЫЙ СТАНДАРТ РОССИЙСКОЙ ФЕДЕРАЦИИ
ГОССТАНДАРТ
РОССИИ ГОСУДАРСТВЕННЫЙ СТАНДАРТ РОССИЙСКОЙ ФЕДЕРАЦИИ
Дата введения 01.01.94 Настоящий стандарт устанавливает правила привязки ядра графической системы (ЯГС) (ГОСТ 27817) к языку программирования Ада (ИСО 8651-3) и определяет: имена и списки параметров процедур на языке Ада, соответствующие функциям ЯГС; имена типов данных ЯГС в языке Ада; структуры данных ЯГС в языке Ада; имена функции обработки ошибок. Настоящий стандарт не устанавливает: структуры и методы реализации ЯГС; требования к операционной среде и оборудованию; методы связи ЯГС с другими языками программирования, отличными от языка Ада. 2. ССЫЛКИ В качестве описания правил привязки ЯГС к языку программирования Ада использован международный стандарт ИСО 8651-3-88, приведенный в приложении. МЕЖДУНАРОДНЫЙ СТАНДАРТ Системы обработки информации МАШИННАЯ ГРАФИКА Связь ядра графической системы с языком программирования Ада ИСО 8651-3-88 ПРЕДИСЛОВИЕ Международный стандарт ИСО 8651-3 разработан Техническим комитетом ИСО/СТК 1 «Системы обработки информации». ИСО 8651 состоит из следующих частей под общим заголовком «Системы обработки информации. Машинная графика. Связь ядра графической системы (ЯГС) с языками программирования: Часть 1. Фортран. Часть 2. Паскаль. Часть 3. Ада. 0. ВВЕДЕНИЕФункциональное описание ядра графической системы (ЯГС) содержащееся в ГОСТ 27817 (ИСО 7942), сформулировано независимым от языка программирования способом и должно быть окружено слоем, зависящим от языка программирования (привязка к языку) для использования с определенным языком программирования. Цель настоящего стандарта части ИСО 8651 - определение стандартной привязки к языку программирования Ада. 1. НАЗНАЧЕНИЕ И ОБЛАСТЬ ПРИМЕНЕНИЯГОСТ 27817 (ИСО 7942) определяет языконезависимое ЯГС. Для включения его в язык программирования ЯГС помещается на языковозависимый уровень, отвечающий соответствующим положениям этого языка. Настоящая часть ИСО 8651 определяет такой языковозависимый уровень для языка программирования Ада. 2. ССЫЛКИГОСТ 27817 (ИСО 7942-85) Системы обработки информации. Машинная графика. Описание функций ядра графической системы (ЯГС). ГОСТ 27831 (ИСО 8652-86) Язык программирования Ада. 3. СВЯЗЬ ЯГС С ЯЗЫКОМ АДАДанная связь не предполагает, что компилятор поддерживает любые свойства языка Ада, которые являются зависящими от реализации, но подразумевает, что компилятор будет способен поддерживать декларации, входящие в связывание GKS/Ада. Не делается никаких предположений относительно машинного представления предопределенных типов чисел в Аде. Данная связь предполагает, что прикладной программист будет применять имя файла ошибок и идентификатор связи, которые будут иметь формат, приемлемый для реализации Ады. В данной связи не делается предположения относительно формата строки, определяющей имя файла ошибок или идентификатор связи для устройства или метафайла. 3.1. Условия соответствия стандартуДанная связь включает правила, определенные в стандарте ГОСТ 27817 (ИСО 7942) со следующими дополнительными требованиями, специально заданными для реализации ЯГС в языке Ада. Для определения соответствия или несоответствия реализации данному связыванию установлены следующие критерии: а) реализация ЯГС в Аде соответствует уровню ЯГС, если она точно выполняет декларации для данного уровня ЯГС и более низких уровней, определенных данным связыванием; б) семантика реализации должна соответствовать стандарту ЯГС с модификациями и расширениями для Ады, установленными в данном документе; в) модуль, соответствующий реализуемому уровню ЯГС, должен быть доступен в виде блока библиотеки Ады с именем, определенным в данном документе. 3.2. Включение в язык3.2.1. Отображение функцийВсе функции ЯГС отображаются в процедуры Ады. Отображение использует «один-в-один» соответствие между функциями ЯГС и процедурами Ады, исключая функции ЯГС «Узнать текущий атрибут примитива» и «Узнать индивидуальный атрибут». Они связаны с отдельной процедурой Ады для каждого из запрашиваемых атрибутов; атрибуты связываются с одной записью. 3.2.2. Реализация и зависимость от компьютераСуществует ряд зависимостей от реализаций и компьютера, связанных с компилятором Ады и используемыми процедурами системы. Это будет влиять на переносимость прикладных программ и их использование ЯГС. Прикладному программисту следует придерживаться принятой практики обеспечения переносимости программ на языке Ада, чтобы избежать возникновения проблем при переносе прикладного программного обеспечения на другую систему. К зависимостям от реализаций относятся управление памятью и процессором. 3.2.3. Обработка ошибокСправочные функции используют параметры индикаторов для возврата ошибок и не порождают прерываний. В языке Ада прикладная программа должна гарантировать, что индикаторы ошибок проверяются до попыток обращения к другим параметрам, так как некоторые реализации Ады не порождают прерываний, если обнаружено неопределенное значение. Требования ЯГС по обработке ошибок можно выразить следующим образом. 1. По умолчанию процедура, названная ERROR_HANDLING, будет обеспечивать простую регистрацию ошибок вызовом ERROR_LOGGING. Она вызывается из функций ЯГС, обнаруживших ошибку. 2. Процедура ERROR_HANDLING может быть заменена пользователем на другую. Процедура ERROR_HANDLING задается, как библиотечная подпрограмма: with GKS_TYPES; use GKS_TYPES;
Процедура ERROR_HANDLING определяется как библиотечная процедура и не декларируется внутри пакета ЯГС. Данная связь определяет два различных тела для этой программы; каждое должно быть представлено реализацией. Тело по умолчанию - это одна из требуемых ЯГС семантических конструкций. Это просто вызов ERROR_LOGGING и возврат. Функция ЯГС должна быть написана так, чтобы она не поддерживала GKS_ERROR (это требование реализации). Таким образом, в соответствии с правилами языка Ада прерывание распространяется назад к прикладной программе, вызвавшей функцию GKS, в которой обнаружилась ошибка. Смысл пользовательской замены тела, применяемого по умолчанию, на версию, порождающую прерывание, зависит от менеджера библиотеки Ады. Некоторые реализации поддерживают множество версий тела с одной спецификацией или допускают применение иерархических библиотек с разделением общих блоков. В других реализациях может оказаться необходимым дублировать библиотеку семантических конструкций для каждой версий ERROR_HALDING, Ошибки GKS отображаются в одно прерывание GKS_ERROR, декларированное в пакете GKS. Предполагаемый стиль в обработке ошибок с использованием прерываний состоит в том, чтобы обеспечить обработчик для прерываний GKS_ERROR. 3.2.4. Отображение данныхПростые и составные типы данных ЯГС связываются с различными скалярными и составными типами языка Ада. Ограничения на допустимые значения отображаются, где это возможно, в определениях типов. Общее соотношение между типами данных ЯГС и типами данных Ады следующее: целые ЯГС отображаются в целые типы Ады; действительные ЯГС отображаются в типы с плавающей запятой Ады; строки ЯГС отображаются в тип STRING Ады или в тип, предназначенный для строк переменной длины; указатели ЯГС отображаются в типы записи Ады; имена ЯГС отображаются в дискретный тип Ады; нумерация ЯГС отображается в тип нумерации Ады; вектора ЯГС отображаются в тип записи Ады; матрицы (matrix) ЯГС отображаются в типы массив (array) Ады; списки ЯГС из элементов конкретного типа отображаются в приватный тип Ады, декларированный в общем пакете GKS_LIST_UTILITIES; массивы ЯГС отображаются либо в тип неограниченной матрицы, либо в тип записи, предоставляемый для массивов переменной длины; упорядоченные пары ЯГС отображаются в типы записей Ады; записи данных ЯГС отображаются в приватные типы Ады. В некоторых случаях набор подпрограмм для обработки записей данных явно определяется данным стандартом. Реализация ЯГС может предоставить другие подпрограммы для манипулирования зависящими от реализации данными. 3.2.5. МногозадачностьВ определении языка Ада дается явная поддержка параллельности. Модель организации прохождения задачи включает средства для декларирования и выделения задачи и операции, допускающие межзадачную связь и синхронизацию. Стандарт ЯГС не требует и не запрещает в реализации защиту от проблем, которые могут возникнуть при асинхронном доступе к структурам данных ЯГС из параллельных задач. В пользовательской документации по реализации ЯГС должна содержаться информация о том, введена ли защита от таких проблем. Приложение Д представляет собой пособие для тех, кто хочет, чтобы поддерживались многозадачные прикладные программы. Приложение не является составной частью стандарта, а предоставляет дополнительную информацию. 3.2.6. ПакетированиеСтандарт ЯГС определяет девять уровней графической функциональности, где уровень 0a является низшим, а 2c - высшим уровнем. В реализации ЯГС можно сделать систему единой, а можно реализовать каждый уровень отдельно. Для поддержки этой концепции данный стандарт определяет девять пакетов Ады, которые соответствуют каждому уровню ЯГС. Каждый из этих пакетов именуется package GKS is ... end GKS, чтобы обеспечить переносимость прикладных программ для уровней ЯГС. Однако содержимое пакетов различается в зависимости от уровня ЯГС, который они реализуют. Каждый из этих пакетов предоставляет подпрограммы, определенные для их уровней и все подпрограммы, заданные в нижних уровнях, как определено в п. 5.1. С каждым из этих пакетов связаны пакеты типов данных, которые обеспечивают декларации типов для соответствующего уровня, как определено в п. 4.2, а ЯГС определяет прерывания, приведенные в п. 4.3.1. Данные пакеты именуются package GKS_TYPES is ... end GKS_TYPES. Средства библиотек программ Ады следует использовать для обеспечения отделения уровней. Так графические прикладные программы на Аде, которые используют ЯГС, должны включать соответствующие пакеты ЯГС, которые предоставляют подпрограмму, типы и прерывания для данного уровня компилированием и включением соответствующей библиотеки Ады, которая содержит данный уровень ЯГС. Например, прикладная программа, которая использует уровень 0a, могла бы выглядеть следующим образом: with GKS; use GKS_TYPES; procedure APPLICATION is begin null; end APPLICATION. Далее программа компилируется и связывается с библиотекой программ Ады, которая соответствует уровню 0a. Данный стандарт определяет и ряд дополнительных блоков Ады. Ими являются общие пакеты: GKS_COORDINATE_SYSTEM; GKS_LIST_UTILITIES. Эти общие пакеты поддерживают типы деклараций в пакете GKS_TYPE, описанном выше. GKS_COORDINATE_STSTEM представляет собой общий пакет, в котором определен ассортимент типов для поддержания каждой координатной системы ЯГС GKS_LIST_UTILITIES является также общим пакетом, который предоставляет декларации списков и операции для типов списков, которые соответствуют типам списков ЯГС. 3.2.7. Среда прикладных программПрикладная программа, применяющая реализацию ЯГС в языке Ада, должна будет знать среду, в которой находятся и ЯГС и прикладная программа. Одним таким интерфейсом является библиотека программ Ады. Язык Ада требует, чтобы прикладная программа имела доступ к библиотеке программ, в которой размещается программное обеспечение ЯГС. Справочное руководство по языку Ада ИСО 8652 не определяет, должна быть одна библиотека или их может быть много, как предоставляется доступ к библиотеке и так далее. Пользовательская документация по реализации ЯГС должна содержать информацию о том, где в системе находится библиотека ЯГС и как осуществляется к ней доступ. Интерфейсы ввода/вывода также являются зависящими от реализации и требуют описания в пользовательской документации. Должны быть включены в документацию интерфейсы с файловой системой. Особенно это относится к интерфейсу с файлом ошибок ЯГС, а также к памяти метафайла. 3.2.8. Регистрация*Стандарт ЯГС резервирует различные области величин для регистрации в качестве графических элементов. Зарегистрированные графические элементы будут встроены в Аду (и другие языки программирования). Зарегистрированные встроенные элементы будут согласовываться со связыванием, представленным в данном документе. ___________ * В соответствии с правилами назначения и работы Органов регистрации в директивах ИСО Совет ИСО для этой части (ИСО 8651) назначил Национальное бюро стандартов (Научно-производственный институт ЭВМ) как орган регистрация A266 Technology Building, Gaithersburg, MD, 20899, USA. 4. ТАБЛИЦЫ4.1. ПроцедурыТаблица 1 Сокращения, используемые в именах процедур
Таблица 2 Список процедур, использующих сокращения
Таблица 3 Функции ЯГС и имена соответствующих процедур в Аде
Функция ЯГС «Узнать значение текущего индивидуального атрибута» отображается в следующие функции: INQ_CHAR_EXPANSION_FACTOR INQ_CHAR_SPACING INQ_FILL_AREA_COLOUR_INDEX INQ_FILL_AREA_INTERIOR_STYLE INQ_LINETYPE INQ_LINEWIDTH_SCALE_FACT0R INQ_LIST_OF_ASF INQ_POLYLINE_COLOUR_INDEX INQ_POLYMARKER_COLOUR_INDEX INQ_POLYMARKER_SIZE_SCALE_FACTOR INQ_POLYMARKER_TYPE INQ_TEXT_COLOUR_INDEX INQ_TEXT_FONT_AND_PRECISION
Функция ЯГС «Узнать текущие значения атрибутов примитивов» отображается в следующие функции: INQ_CHAR_BASE_VECTOR INQ_CHAR_HEIGHT INQ_CHAR_WIDTH INQ_CHAR_UP_VECTOR INQ_FILL_AREA_INDEX INQ_PATTERN_HEIGHT_VECTOR INQ_PATTERN_REFERENCE_POINT INQ_PATTERN_WIDTH_VECTOR INQ_POLYLINE_INDEX INQ_POLYMARKER_INDEX INQ_TEXT_ALIGNMENT INQ_TEXT_INDEX INQ_TЕХТ_РАТН Продолжение табл. 3
Функции ЯГС, упорядоченные по алфавиту Функции находятся в том же порядке, в котором перечислены имена процедур, соответствующие именам функций ЯГС. В табл. 3 перечислены по алфавиту имена функций ЯГС. Таблица 4 Список функций ЯГС по уровням и по алфавиту
4.2. Определение типов данных4.2.1. Сокращения, используемые в определениях типов данных
4.2.2. Определение типов в алфавитном порядкеВ данном разделе в алфавитном порядке даются определения типов данных, используемые в связывании Ады с ЯГС. Каждая такая декларация задает уровень, на котором должна иметься декларация данных в реализации ЯГС данного уровня и любого более высокого уровня, в котором декларация типа впервые понадобится (аналогично функциям). Каждый декларируемый элемент также включает комментарий о типе и/или/использовании типа. Некоторые декларации в определении типа содержат константы. Все эти декларации констант включены в пакет GKS_TYPE.
4.2.3. Список определений личных типовВ данном разделе дается в алфавитном порядке список определений личных типов, используемых для задания связывания Ады и ЯГС. Каждая из этих деклараций определяет уровень ЯГС, на котором должна иметься декларация типа в реализации ЯГС данного или любого более высокого уровня, в котором декларация типа впервые понадобится (аналогично функциям). Все эти элементы являются декларациями типа PRIVATE языка Ада. Эти декларации включены в пакет ЯГС для того, чтобы дать возможность манипулировать личными типами.
4.2.4. Список деклараций константВ данном разделе приведены декларации зависящих от реализации констант для задания типов Ада/ЯГС. Некоторые из констант используют для задания принимаемых по умолчанию значений параметров для процедур ЯГС, определяемых в разд. 5. В данном разделе приведены также константы, которые представляют стандартные значения, задаваемые для некоторых типов ЯГС/Ада. Следующие константы определяют стандартные типы линий ЯГС:
Следующие константы определяют стандартные типы маркеров ЯГС
Следующие константы определяют стандартные типы подсказок и эха, поддерживаемые ЯГС:
Следующие константы используют для определения принимаемых по умолчанию значений параметров для процедур ЯГС, определяемых в разд. 5:
Следующая строка задает прерывание GKS_ERROR, определенное в п. 3.2.3: GKS_ERROR : exception; 4.3. Коды ошибокСвязывание требует применения процедуры ERROR_HANDLING для обработки любых ошибок, которые возникают в процедурах ЯГС, исключая процедуры запросов. Полное описание требований по обработке ошибок имеется в п. 3.2.3. Функции запроса ЯГС не порождают прерываний. Вместо этого они возвращают параметр индикатора ошибок, который содержит номер ошибки, которая обнаружена. Это согласуется с философией ЯГС, говорящей, что при запросе не возникает ошибок. Номера ошибок соответствуют номерам ошибок из приложения Б спецификации ЯГС плюс дополнительные ошибки, определенные в данном документе. Отметим, что различные известные ошибочные условия могут быть обнаружены вне контроля ЯГС благодаря природе языка Ада и могут привести к прерыванию при запросе. 4.3.1. 3адание кодов ошибокСтандарт ИСО 7942 дает отображение номеров ошибок для каждой функции ЯГС. Ряд известных ошибок ЯГС не может быть обнаружен реализацией ЯГС в Аде из-за свойств языка Ада, таких как строгость определения типов данных. Эти ошибки приведены в разделе о кодах устраненных ошибок. В дополнение к определенным в ЯГС ошибкам могут существовать ошибки, задаваемые при реализации, и ошибки, определяемые связыванием. IMPLEMENTATION_DEFINED_ERROR Ошибки, задаваемые при реализации, описаны в Руководстве пользователя по реализации и имеют коды ошибок меньше нуля. LANGUAGE_BINDING_ERROR Ошибки связывания с языком являются специфическими для связывания ЯГС с Адой. Номера ошибок с 2500 по 2999 зарезервированы для зависящих от связывания с языком Ада ошибок. Следующие ошибки определены данным связыванием для специфических ошибок связывания с языком: 2500 Неправильное использование записи данных ввода. Когда происходят следующие ошибки, автоматически возникает предопределенное прерывание в Аде. 2501 Неизвестная ошибка, произошедшая при обработке. 2502 Ошибка применения утилиты LIST GKS. 4.3.2. Коды устраняемых ошибокСледующие ошибки ЯГС представлены отдельно из-за некоторых свойств языка Ада или их использования в данной связке; они никогда не могут произойти в данной реализации ЯГС. Ошибки могут быть обнаружены компилятором или во время выполнения вне области действия ЯГС. Коды ошибок, устраняемых функциями:
5. ФУНКЦИИ В АДЕ, СВЯЗАННЫЕ С ЯДРОМ ГРАФИЧЕСКОЙ СИСТЕМЫ5.1. Функции ЯГС
Функции расширения рассматриваются в данном связывании как отдельные процедуры для каждого типа расширения, предоставляемого реализацией, каждая со списком формальных параметров, соответствующих реализованной процедуре. Зарегистрированные процедуры ESCAPE будут находиться в библиотечном пакете, названном GKS_ESCAPE. Имена и параметры ESCAPE зарегистрированы в Международном журнале графических элементов ИСО, который ведется Органом регистрации. Каждая незарегистрированная процедура ЕСАРЕ будет находиться в библиотечном пакете; при этом используются следующие соглашения по именованию: package GKS_UESC_< имя процедуры расширения > is procedure ESC; - код на Аде для процедуры UESC end GKS_UESC_< имя процедуры расширения >; - Единственным именем процедуры, используемым в пакете, будет ESC; Для того, чтобы поддержать возможность записывать ESCAPE в метафайл, эти зарегистрированные расширения могут быть привлечены, используя типы данных и форму процедуры GENERALIZED_ESC, которая имеет спецификацию, приведенную ниже: package GKS_ESCAPE is type ESCAPE_ID is new INTEGER; type ESCAPE_FLOAT is digits PRECISION; type ESC_INTEGER_ARRAY is array (SMALL_NATURAL range < >) of INTEGER; type ESC_FLOAT_ARRAY is array (SMALL_NATURAL range < >) of ESCAPE_FLOAT; type ESC_STRING_ARRAY is array (SMALL_NATURAL range < >) of STRING (1 . . 80); type ESC_DATA_RECORD (NUM_OF_INTEGER
INTEGER_ARRAY : ESC_INTEGER_ARRAY (1 . . NUM_OF_INTEGERS); REAL_ARRAY : ESC_FLOAT_ARRAY (1 . . NUM_OF_REALS); ESC_STRINGS : ESC_STRING_ARRAY (1 . . NUM_OF_STRINGS); end record; procedure GENERALIZED_ESC (ESCAPE_NAME : in ESCAPE_ID; ESC_DATA_IN : in ESC_DATA_RECORD; ESC_DATA_OUT : in ESC_DATA_RECORD); end GKS_ESCAPE; Представляет типы данных и процедуры для реализации не поддерживаемых расширений.
Обобщенный графический примитив вывода ОПВ связывается по принципу один во многие с отдельной процедурой, реализованной для каждого ОПВ, каждая из которых имеет свой собственный интерфейс. Зарегистрированные ОПВ находятся в библиотечном пакете, названном GKS_GDR. Имена ОПВ и параметры зарегистрированы в Международном журнале графических записей ИСО, который ведется Органом регистрации. Каждая незарегистрированная процедура GDP будет находиться в библиотечном пакете, использующем следующие правила именования: package GKS_UGDP_< имя процедуры GDP > procedure GDP; - код на Аде процедуры UGDP end GKS_UGDP_< имя процедуры GDP >; - Единственным именем процедуры, используемым в пакете, будет GDP Для того, чтобы поддержать возможность записывать ОПВ данной реализации в метафайл, эти зарегистрированные ОПВ могут быть привлечены, используя типы данных и форму процедуры GENERALIZED_GDP, которая имеет следующую спецификацию: package GKS_GDP is type GDP_FLOAT is digits PRECISION; type GDP_INTEGER_ARRAY is array (SMALL_NATURAL range < >) of INTEGER; type GDP_FLOAT_ARRAY is array (SMALL_NATURAL range < >) of GDP_FLOAT; type GDP_STRING_ARRAY is array (SMALL_NATURAL range < >) of STRING (1 . . 80); type GDP_DATA_RECORD (NUM_OF_INTEGERS : SMALL_NATURAL : = 0; NUM_OF_REAL : SMALL_NATURAL : = 0; NUM_OF_STRINGS : SMALL_NATURAL : = 0) is record INTEGER_ARRAY : GDP_INTEGER_ARRAY (1 . . NUM_OF_INTEGERS); REAL_ARRAY : GDP_FLOAT_ARRAY (1 . . NUM_OF_REALS); GDP_STRINGS : GDP_STRING_ARRAY (1 . . NUM_OF_STRINGS); end record; procedure GENERALIZED_GDP (GDP_NAME : in GDP_ID; POINTS : in WC.POINT_LIST; GDP_DATA : in GDP_DATA_RECORD); end GKS_GDP; Предоставляет типы данных и процедуру для реализации неподдержанных обобщенных примитивов вывода.
5.2. Дополнительные функции5.2.1. Подпрограммы для манипуляции записями входных данныхВ данном разделе определены функции и процедуры, которые необходимы для построения и запроса записей входных данных, декларированных как личные типы в данной связке, для всех шести классов устройств, определенных спецификацией ЯТС. Процедуры, представленные здесь, используют для построения записей данных для каждого зарегистрированного типа подсказки и эха. Также предоставляются соответствующие функции, позволяющие прикладным программам анализировать части записей данных, которые определены в ЯГС. Любую специфическую для реализации информацию в записях данных поддерживают личной и недоступной. Если любую из приведенных ниже процедур используют некорректно, то происходит исключительное событие GKS_ERROR. Таким образом, если недопустимый тип подсказки и эха используют для построения процедур, то в файле ошибок регистрируют ошибку номер 2500. Данные подпрограммы требуются на уровне 0b. Для создания зависящих от реализации и зарегистрированных элементов реализация может предоставить дополнительные совмещаемые версии процедур BUILD и дополнительные функции для выделения информации из личных записей данных.
5.2.2. Пакет обобщенной координатной системы ЯГСОбобщенный пакет, декларируемый в данном разделе, представляет собой спецификацию обобщенной декартовой системы координат для GKS. Данный пакет встречается три раза в пакете GKS_TYPE для мировых координат, нормализованных координат устройства и координат устройства. Пакет определяет представление POINT (точки), POINT_ARRAY (матрицы точек), VECTOR (вектора) и RECTANGLE_LIMITS (прямоугольные ограничения) для координатной системы. Также определяется тип MAGNITUDE для измерения длин в координатной системе. Тип SIZE измеряет длины параллельно обеим осям, а тип RANGE_OF_MAGNITUDES определяет две длины внутри координатной системы: минимум и максимум для таких величин, как диапазон высот литер, доступных на устройстве. Данный обобщенный пакет включается в пакет типов GKS. package, generic type COORDINATE_COMPONENT_TYPE is digits < >; package GKS_COORDINAE_SYSTEM is type POINT is record X : COORDINATE_COMPONENT_TYPE; Y : COORDINATE_COMPONENT_TYPE; end record; type POINT_ARRAY is array (POSITIVE range < >) of POINT; type POINT_LIST (LENGTH ; SMALL_NATURAL : = 0) is record POINTS : POINT_ARRAY (1 . . LENGTH); end record; type VECTOR is new POINT; type RECTANGLE_LIMIT is record XMIN : COORDINATE_COMPONENT_TYPE; XMAX : COORDINATE_COMPONENT_TYPE; YMIN : COORDINATE_COMPONENT_TYPE; YMAX : COORDINATE_COMPONENT_TYPE; end record; type MAGNITUDE_BASE_TYPE is digits PRECISION; subtype MAGNITUDE is MAGNITUDE_BASE_TYPE range COORDINATE_COMPONENT_TYPE’SAFE_SMALL. COORDINATE_COMPONENT_TYPE’SAFE_LARGE; type SIZE is record XAXIS : MAGNITUDE; YAXIS : MAGNITUDE; end record; type RANGE_OF_MAGNITUDES is record MIN : MAGNITUDE; MAX : MAGNITUDE; end record; end GKS_COORQINATE_SYSTEM; 5.2.3. Общий пакет списка утилит ЯТСОбщий пакет GSK_LIST_UTILITIES встречается несколько раз в пакете GSK_TYPE для задания различных типов списков LIST_OF и подпрограмм для манипуляции ими. Каждый тип списка содержит различные значения типов элементов. Тип списка декларируется как личный тип в GSK_LIST_UTILITIES для ограничения операций над типами списков, которые доступны внешним программным единицам. Декларация личных типов списков включает дискриминантную часть, которая определяет текущий размер списка. Объекты списков декларируются как неограниченные объекты чтобы позволить динамическую модификацию размера списка. Объект списка представляет собой последовательность значений типов элементов. Каждое значение типа элемента связывается с индексом. Значение индекса начинается с 1 и идет с приращением 1. Размер объекта списка - это число значений типов элементов, запомненных в нем. Одно значение типа элемента может быть запомнено более одного раза внутри объекта списка. Объект списка может быть пустым. Максимальный размер объекта списка дан в общем параметре MAX_LIST_SIZE. Если данный параметр не задан, то используют принимаемое по умолчанию и зависящее от реализации значение.
5.2.4. Утилиты функций метафайлаЗаписи данных элементов метафайла являются сложными, для данных записей рекомендовано более 55 различных форматов. Прикладные программисты также могут определить новые форматы. Длина этих записей переменная. Записи данных могут содержать списки указателей, строки символов, матрицы Индексов цветов и данные GDP и ESC. Длина записи зависит от числа элементов данных. GKS определяет, что формат зависит от реализации. Тип записи данных должен быть личным, чтобы позволить непосредственную обработку содержимого записей. Прикладной программист должен иметь возможность записать в метафайл неграфические данные. Это может быть предоставлено разрешением вывода символьных строк. Числовые данные могут быть преобразованы в символьные строки прикладным программистом до вызова функции BUILD_NEW_DATA_RECORD построить новую запись данных метафайла GKSM.
5.3. Настраивающиеся вариантыТак как подмножества или расширения Ады не допускаются, то нет настраивающихся вариантов ЯГС/Ада. Более того, данное связывание не требует, чтобы необходимые для поддержки свойства были независящими от реализации. ПРИЛОЖЕНИЕ А
|
PRECISION |
constant |
= 6, |
SMALL_NATURAL_MAX |
constant |
= 500, |
STRING_SMALL_NATURAL_MAX |
constant |
= 100, |
CHOICE_SMALL_NATURAL_МАХ |
constant |
= 5, |
subtype SMALL_NATURAL is NATURAL
range 0 SMALL_NATURAL_MAX
- - Это зависящие от реализации подтипы, допускающие применение для объектов записей различных типов записей без возникновения прерывания STORAGE_ERROR
subtype STRING_SMALL_NATURAL is NATURAL
range 0 STRING_SMALL_NATURAL_MAX,
- Это декларация зависящего от реализации подтипа, которая для объектов неуточненных записей допускает применение различных определенных ниже типов записей строк без возникновения прерывания STORAGE_ERROR
subtype CHOICE_SMALL_NATURAL is NATURAL
range 0 CHOICE_SMALL_NATURAL_MAX
- Это декларация зависящего от реализации подтипа, который для объектов неуточненных записей допускает применение типа CHOICE_PROMPT_STRING_LIST без возникновения прерывания STORAGE_ERROR
- Система координат ЯГС
generic
type COORDINATE_COMPONENT_TYPE is digits < >, package GKS_COORDINATE_SYSTEM is type POINT is record
X COORDINATE_COMPONENT_TYPE,
Y COORDINATE_COMPONENT_TYPE,
end record;
type POINT_ARRAY is array (POSITIVE range < >) of POINT;
type POINT_LIST (LENGTH : SMALL_NATURAL : = 0) is record
POINTS : POINT_ARRAY (L. LENGTH); end record;
type VECTOR is new POINT; type RECTANGLE_LIMITS is record
XMIN : COORDINATE_COMPONENT_TYPE;
XMAX : COORDINATE_COMPONENT_TYPE;
YMIN : COORDINATE_COMPONENT_TYPE;
YMAX : COORDINATE_COMPONENT_TYPE;
end record;
type MAGNITUDE_BASE_TYPE is digits PRECISION; subtype MAGNITUDE is MAGNITUDE_BASE_TYPE range COORDINATE_COMPONENT_TYPE’SAFE_SMALL. COORDINATE_COMPONENT_TYPE’SAFE_LARGE; type SIZE is record
XAXIS : MAGNITUDE;
YAXIS : MAGNITUDE;
end record;
type RANGE_OF_MAGNITUDES is record
MIN : MAGNITUDE;
MAX : MAGNITUDE;
end record;
end GKS_COOROINATE_SYSTEM; - ASF type ASF is (BUNDLED, INDIVIDUAL); |
Уровень 0a |
|
- Данный тип определяет флаг выборки атрибутов, чье значение указывает, откуда будут устанавливаться атрибуты примитива: из таблицы связок или из индивидуального атрибута. |
||
- ASF_LIST type ASF_LIST is record |
Уровень 0a |
|
TYPE_OF_LINE_ASF |
: ASF; |
|
WIDTH_ASF |
: ASF; |
|
LINE_COLOUR_ASF |
: ASF; |
|
TYPE_OF_MARKER_ASF |
: ASF; |
|
SIZE_ASF |
: ASF; |
|
MARKER_COLOUR_ASF |
: ASF; |
|
FONT_PRECISION_ASF |
: ASF; |
|
EXPANSION_ASF |
: ASF; |
|
SPACING_ASF |
: ASF; |
|
TEXT_COLOUR_ASF |
: ASF; |
|
INTERIOR_ASF |
: ASF; |
|
STYLE_ASF |
: ASF; |
|
FILL_AREA_COLOUR_ASF |
: ASF; |
|
end record; |
|
|
- Запись, содержащая все флаги выборки атрибутов, с компонентами, обозначающими индивидуальный флаг. |
||
- ATTRIBUTES_USED_TYPE type ATTRIBUTES_USED_TYPE is (POLYLINE_ATTRIBUTES, POLYMARKER_ATTRIBUTES, TEXT_ATTRIBUTES, FILL_AREA_ATTRIBUTES); |
Уровень 0a |
|
- Типы атрибутов, которые могут быть использованы при генерации вывода для ОПВ и при генерации подсказки и эха различных типов для различных классов входных устройств. |
||
- ATTRIBUTES_USED package ATTRIBUTES_USED is new GKS_LIST_UTILITIES (ATTRIBUTES_USED_TYPE); - Предназначен для списка используемых атрибутов. |
Уровень 0a |
|
- SCALE_FACTOR package SCALE_FACTOR_TYPE is |
Уровень 0a |
|
- Данный пакет используют для выделения производного типа SCALE_FACTOR, так как его используют как базу для ряда других производных типов. В языке Ада, если база производного типа сама является производным типом. Этот тип предка не может быть декларирован непосредственно в видимой части того же самого пакета type SCALE_FACTOR is digits PRECISION, - Тип, используемый для безразмерных масштабов end SCALE_FACTOR_TYPE; use SCALE_FACTOR_TYPE; |
||
- CHAR_EXPANSION type CHAR_EXPANSION is new SCALE_FACTOR range |
Уровень 0a |
|
SCALE_FACTOR'SAFE_SMALL. . SCALE_FACTOR’LAST; - Определяет масштаб расширения литер. Масштаб должен быть безразмерным и больше нуля. |
||
- CHAR_SPACING type CHAR_SPACING is new SCALE_FACTOR, |
Уровень 0a |
|
- Определяет межлитерный просвет. Положительное значение указывает на величину дополнительного пространства между литерами в текстовой строке, а отрицательное - величину перекрытия прямоугольников литер в строке текста |
||
- DEVICE_NUMBER |
Уровень 0b |
|
package DEVICE_NUMBER_TYPE is type DEVICE_NUMBER is new POSITIVE; - Логическое устройство ввода устанавливают по номеру устройства, end DEVICE_NUMBER_TYPE, use DEVICE_NUMBER_TYPE; |
||
- CHOICE_DEVICE_NUMBER |
Уровень 0b |
|
type CHOICE_DEVICE_NUMBER is new DEVICE_NUMBER; - Определяет идентификатор устройства выбора. |
||
- LOCATOR_DEVICE_NUMBER |
Уровень 0b |
|
type LOCATOR_DEVICE_NUMBER is new DEVICE_NUMBER; - Предоставляет идентификатор устройства ввода позиции. |
||
- PICK_DEVICE_NUMBER |
Уровень 1b |
|
type PICK_DEVICE_NUMBER is new DEVICE_NUMBER; - Предоставляет идентификаторы устройства указания. |
||
- STRING_DEVICE_NUMBER |
Уровень 0b |
|
type STRING_DEVICE_NUMBER is new DEVICE_NUMBER; - Предоставляет номер устройства ввода строки. |
||
- STROKE_DEVICE_NUMBER |
Уровень 0b |
|
type STROKE_DEVICE_NUMBER is new DEVICE_NUMBER; - Предоставляет номер устройства ввода числа. |
||
- VALUATOR_DEVICE_NUMBER |
Уровень 0b |
|
type VALUATOR_DEVISE_NUMBER is new DEVICE_NUMBER; - Предоставляет идентификаторы устройства выбора. |
||
- CHOICE_PROMPT |
Уровень 0b |
|
type CHOICE_PROMPT is (PFF, ON); - Определяет, будет или нет отображаться заданная подсказка для типа подсказки и эха устройства выбора. |
||
- CHOICE_PROMPTS |
Уровень 0b |
|
package CHOICE_PROMPTS is new GKS_LIST_UTILITIES (CHOICE_PROMPT); - Предоставляет список подсказок. |
||
- CHOICE_PROMPT_ECHO_TYPE |
Уровень 0b |
|
type CHOICE_PROMP_TECHO_TYPE is new INTEGER; - Определяет тип подсказки и эха устройства выбора. |
||
- CHOICE_PROMPT_ECHO_TYPES |
Уровень 0b |
|
package CHOICE_PROMPT_ECHO_TYPES is new GKS_LIST_UTILITIES (CHOICE_PROMPT_ECHO_TYPE); - Предоставляет список типов подсказок и эха устройства выбора. |
||
- CHOICE_PROMPT_STRING |
Уровень 0b |
|
type CHOICE_PROMPT_STRING (LENGTH : STRING_SMALL_NATURAL : = 0) is record CONTENTS : STRING (1. . LENGTH); end record; - Предоставляет подсказки переменной длины. Объекты данного типа должны быть декларированы неуточненными, чтобы позволить динамическую модификацию длины. |
||
- CHOICE_PROMPT_STRING_ARRAY |
Уровень 0b |
|
type CHOICE_PROMPT_STRING_ARRAY is array (POSITIVE range < >) of CHOICE_PROMPT_STRING; - Предоставляет матрицу строк подсказок. |
||
- CHOICE_PROMPT_STRING_LIST |
Уровень 0b |
|
type CHOICE_PROMPT_STRING_LIST (LENGTH : CHOICE_SMALL_NATURAL : = 0) is record LIST : CHOICE_PROMPT_STRING_ARRAY (1.. LENGTH); end record; - Предоставляет список строк подсказок. |
||
- CHOICE_REQUEST_STATUS |
Уровень 0b |
|
type CHOICE_REQUEST_STATUS is (OK NOCHOICE, NONE); - Определяет статус для входных операций выбора для функций запроса. |
||
- CHOICE_STATUS |
Уровень 0b |
|
subtype CHOICE_STATUS is CHOICE_REQUEST_STATUS range OK.. NOCHOICE; - Указывает сделанный оператором выбор для функций опроса, получения события и справочных функций. |
||
- CHOICE_VALUE |
Уровень 0b |
|
type CHOICE_VALUE is new POSITIVE; - Определяет альтернативы, имеющиеся в реализации. |
||
- CLIPPING_INDICATOR |
Уровень 0a |
|
type CLIPPING_INDICATOR is (CLIP, NOCLIP); - Указывает на то, что будет или нет выполняться усечение. |
||
- COLOUR_AVAILABLE |
Уровень 0a |
|
type COLOUR_AVAILABLE is (COLOUR, MONOCHROME); - Указывает, имеется ли цветной вывод на станции. |
||
- PIXEL_COLOUR_INDEX |
Уровень 0a |
|
type PIXEL_COLOUR_INDEX is new INTEGER range -1 . INTEGER’LAST; - Тип цвета пиксела, где -1 обозначает неверный индекс цвета. |
||
- COLOUR_INDEX |
Уровень 0a |
|
subtype COLOUR_INDEX is PIXEL_COLOUR_INDEX range 0.. PIXEL_COLOUR_INDEX’LAST; - Предназначен для индексов в таблицах цветов. |
||
- COLOUR_INDICES |
Уровень 0a |
|
package COLOUR_INDICES is new GKS_LIST_UTILITIES (COLOUR_INDEX); - Предоставляет набор индексов цветов, которые имеются на конкретной станции. |
||
- COLOUR_MATRIX |
Уровень 0a |
|
type COLOUR_MATRIX is array (POSITIVE range < >, POSITIVE range < >) of COLOUR_INDEX; - Предоставляет матрицы, содержащие индексы цветов, соответствующие матрице ячеек или матрице шаблонов. |
||
- INTENSITY |
Уровень 0a |
|
type INTENSITY is digits PRECISION range 0. 0. . 1 0; - Определяет область возможных интенсивностей цвета. |
||
- COLOUR_REPRESENTATION |
Уровень 0a |
|
type COLOUR_REPRESENTATION is record |
|
|
RED |
: INTENSITY; |
|
GREEN |
: INTENSITY; |
|
BLUE |
: INTENSITY; |
|
end record; |
|
|
- Определяет представление цвета, как комбинацию интенсивностей в системе цветов красный-зеленый-голубой |
||
- CONTROL_FLAG |
Уровень 0a |
|
type CONTROL_FLAG is (CONDITIONALLY, ALWAYS), - Флаг управления используют, чтобы указать условия, при которых носитель изображения очищается |
||
- DC_TYPE |
Уровень 0a |
|
type DC_TYPE is digits PRECISION; - Тип координат в системе координат устройства |
||
- DC |
Уровень 0a |
|
package DC is new GKS_COORDINATE_SYSTEM (DC_TYPE), - Определяет систему координат устройства |
||
- DC_UNITS |
Уровень 0a |
|
type DC_UNITS is (METRES, OTHER), - Единицей измерения координат устройства для конкретной станции должен быть метр, если устройство не способно порождать масштабированные образы, или зависящая от конкретной станции единица в противном случае. |
||
- DEFFERAL_MODE |
Уровень 0a |
|
type DEFFERAL_MODE is (ASAP, BNIG, BNIL, ASTI), - Определяет четыре отложенных режима ЯГС |
||
- DISPLAY_CLASS |
Уровень 0a |
|
type DISPLAY_CLASS is (VECTOR_DISPLAY, RASTER_DISPLAY, OTHER_DISPLAY), - Классификация станций категорий OUTPUT или OUTIN |
||
- DISPLAY_SURFACE_EMPTY |
Уровень 0a |
|
type DISPLAY_SURFACE_EMPTY is (EMPTY, NOTEMPTY); - Обозначает пуст ли носитель изображения |
||
- DYNAMIC_MODIFICATION |
Уровень 1a |
|
type DYNAMIC_MODIFICATION is (IRG, IMM), - Указывает, что обновление списка состояний выполняется немедленно или требует неявной повторной генерации |
||
- ECHO_SWITCH |
Уровень 0b |
|
type ECHO_SWITCH is (ECHO, NOECHO), - Обозначает, выполняется или нет выход эха |
||
- ERROR_NUMBER |
Уровень 0a |
|
type is ERROR_NUMBER is new INTEGER; - Определяет тип для значения индикатора ошибок |
||
- INPUT_CLASS |
Уровень 0b |
|
type INPUT_CLASS is (NONE, LOCATOR_INPUT, STROKE_INPUT, VALUATOR_INPUT, CHOICE_INPUT, PICK_INPUT, STRING_INPUT), - Задает классификации входных устройств для станции категории IUPUT или OUTIN |
||
- EVENT_DEVICE_NUMBER |
Уровень 0a |
|
type EVENT_DEVICE_NUMBER (CLASS : INPUT_CLASS) : = NONE) is record case CLASS is |
||
|
|
|
when NONE |
= > null; |
|
when LOCATOR_INPUT |
= > LOCATOR_EVENT_DEVICE : LOCATOR_DEVICE_NUMBER; |
|
when STROKE_INPUT |
= > STROKE_EVENT_DEVICE : STROKE_DEVICE_NUMBER; |
|
when VALUATOR_INPUT |
= > VALUATOR_EVENT_DEVICE : VALUATOR_DEVICE_NUMBER; |
|
when CHOICE_INPUT |
= > CHOICE_EVENT_DEVICE : CHOICE_DEVICE_NUMBER; |
|
when PICK_INPUT |
= > PICK_EVENT_DEVICE : PICK_DEVICE_NUMBER |
|
when STRING_INPUT |
= > STRING_EVENT_DEVICE : STRING_DEVICE_NUMBER; |
|
|
|
|
end case; end record; - Предназначен для возврата номера устройства любого класса из очереди событий. |
||
- INPUT_QUEUE_CLASS |
Уровень 0a |
|
subtype INPUT_QUEUE_CLASS is INPUT_CLASS range LOCATOR_INPUT. . STRING_INPUT; - Определяет классификации устройств ввода для ситуаций, в которых классификация невозможна. |
||
- EVENT_OVERFLOW_DEVICE_NUMBER |
Уровень 0a |
|
type EVENT_OVERFLOW_DEVICE_NUMBER (CLASS : INPUT_QUEUE_CLASS : = LOCATOR_INPUT) is record case CLASS is |
||
when LOCATOR_INPUT when STROKE_INPUT when VALUATOR_INPUT when CHOICE_INPUT when PICK_INPUT when STRING_INPUT end case; end record; |
= > LOCATOR_EVENT_DEVICE : LOCATOR_DEVICE_NUMBER; = > STROKE_EVENT_DEVICE : STROKE_DEVICE_NUMBER; = > VALUATOR_EVENT_DEVICE : VALUATOR_DEVICE_NUMBER; = > CHOICE_EVENT_DEVICE : CHOICE_DEVICE_NUMBER; = > PICK_EVENT_DEVICE : PICK_DEVICE_NUMBER; = > STRING_EVENT_DEVICE : STRING_DEVICE_NUMBER; |
|
- FILL_AREA_INDEX |
Уровень 0a |
|
type FILL_AREA_INDEX is new POSITIVE; - Определяет индексы таблицы связок областей заполнения. |
||
- INTERIOR_STYLE |
Уровень 0a |
|
type INTERIOR_STYLE is (HOLLOW, SOLID, PATTERN, HATCH); - Определяет вид заполнения области. |
||
- STYLE_INDEX |
Уровень 0a |
|
type STYLE_INDEX is new INTEGER; - Индекс вида - это либо HATCH_STYLE, либо PATTERN_STYLE. |
||
- FILL_AREA_INDICES |
Уровень 0a |
|
package FILL_AREA_INDICES is new GKS_LIST_UTILITIES (FILL_AREA_INDEX); - Предоставляет списки индексов таблицы связок областей заполнения. |
||
- GDP_ID |
Уровень 0a |
|
type GDP_ID is new INTEGER; - Выбирает среди классов обобщенных примитивов вывода. |
||
- GDP_IDS |
Уровень 0a |
|
package GDP_IDS is new GKS_LIST_UTILITIES (GDP_ID); - Предоставляет списки идентификаторов обобщенных примитивов вывода. |
||
- GKS_LEVEL |
Уровень 0a |
|
type GKS_Level is (L0a, L0b, L0c, L1a, L1b, L1c, L2a, L2b, L2c); - Доступные уровни ЯГС. |
||
- GKSM_ITEM_TYPE |
Уровень 0a |
|
type GKSM_ITEM_TYPE is new NATURAL; - Тип элемента, содержащегося в метафайле ЯГС. |
||
- HATCH_STYLE |
Уровень 0a |
|
subtype HATCH_STYLE is STYLE_INDEX; - Определяет вид штриховки при заполнении области. |
||
- HATCH_STYLES |
Уровень 0a |
|
package HATCH_STYLES is new GKS_LIST_UTILITIES (HATCH_STYLE); - Предоставляет список видов штриховки. |
||
- HORIZONTAL_ALIGNMENT |
Уровень 0a |
|
type HORIZONTAL_ALIGNMENT is (NORMAL, LEFT, CENTRE, RIGHT); - Выравнивание параллелограмма текста по отношению к горизонтальному положению текста. |
||
- IMPLEMENTATION_DEFINED_ERROR |
Уровень 0a |
|
subtype IMPLEMENTATION_DEFINED_ERROR is ERROR_NUMBER range ERROR_NUMBER’FIRST. . -1; - Определяет область номеров ошибок, чтобы указывать, что произошла заданная реализацией ошибка. |
||
- INPUT_STATUS |
Уровень 0b |
|
type INPUT_STATUS is (OK, NONE); - Определяет статус операции. |
||
- INPUT_STRING |
Уровень 0b |
|
type INPUT_STRING (LENGTH : STRING_SMALL_NATURAL : = 0) is record CONTENTS : STRING (L. LENGTH); end record; - Предоставляет строку переменной длины. Объекты данного типа должны быть декларированы как неуточненные, чтобы позволить динамическую модификацию длины. |
||
- INTERIOR_STYLES |
Уровень 0a |
|
package INTERIOR_STYLES is new GKS_LIST_UTILITIES (INTERIOR_STYLE); - Предоставляет список видов заполнения. |
||
- INVALID_VALUES_INDICATOR |
Уровень 0a |
|
type INVALID_VALUES_INDICATOR is (ABSENT, PRESENT); - Указывает, имеются ли -1 в параметре PIXEL_ARRAY, возвращаемом INQ_PIXEL_ARRAY. |
||
- LANGUAGE_BILDING_ERROR |
Уровень 0a |
|
subtype LANGUAGE_BILDING_ERROR is ERROR_NUMBER range 2500.. 2999; - Определяет область номеров ошибок, относящихся к ошибкам связывания с языком |
||
- POLYLINE_INDEX |
Уровень 0a |
|
type POLYLINE_INDEX is new POSITIVE; - Определяет область индексов ломаной. |
||
- LINETYPE |
Уровень 0a |
|
type LINETYPE is new INTEGER; - Определяет типы линий, предоставляемых ЯГС. |
||
- LINEWIDTH |
Уровень 0a |
|
type LINEWIDTH is new SCALE_FACTOR range 0.0. . SCALE_FACTOR’LAST; - Ширина линии определяется масштабом толщины. |
||
- LINETYPES |
Уровень 0a |
|
package LINETYPES is new GKS_LIST_UTILITIES (LINETYPE); - Предоставляет список типов линий. |
||
- LOCATOR_PROMPT_ECHO_TYPE |
Уровень 0b |
|
type LOCATOR_PROMPT_ECHO_TYPE is new INTEGER; - Определяет типы подсказок и эха, поддерживаемых реализацией. |
||
- LOCATOR_PROMPT_ECHO_TYPES |
Уровень 0b |
|
package LOCATOR_PROMPT_ECHO_TYPES is new GKS_LIST_UTILITIES (LOCATOR_PROMPT_ECHO_TYPE); - Предоставляет список типов подсказок и эха определителя местоположения. |
||
- POLYMARKER_INDEX |
Уровень 0a |
|
type POLYMARKER_INDEX is new POSITIVE; - Определяет область индексов таблицы связок полимаркеров; |
||
- MARKER_SIZE |
Уровень 0a |
|
type MARKER_SIZE is new SCALE_FACTOR range 0.0. . SCALE_FACTOR’LAST; - Размер маркера определяется масштабом. |
||
- MARKER_TYPE |
Уровень 0b |
|
type MARKER_TYPE is new INTEGER; - Определяет типы маркеров, предоставляемых ЯГС. |
||
- MARKER_DATA |
Уровень 0b |
|
- MARKER_TYPES |
Уровень 0a |
|
package MARKER_TYPES is new GKS_LIST_UTILITIES (MARKER_TYPE); - Предоставляет список типов маркеров. |
||
- MORE_EVENTS |
Уровень 0a |
|
type MORE_EVENTS is (NOMORE, MORE); - Указывает, содержатся ли еще события в очереди событий |
||
- NDC_TYPE |
Уровень 0a |
|
type NDC_TYPE is digits PRECISION; - Определяет тип координат в нормализованной системе координат. |
||
- NDC |
Уровень 0a |
|
package NDC is new GKS_COORDINATE_SYSTEM (NDC_TYPE); - Задает нормализованную систему координат. |
||
- NEW_FRAME_NECESSARY |
Уровень 0a |
|
type NEW_FRAME_NECESSARY is (NO, YES); - Указывает, необходимы ли действия по новому коду при модификации. |
||
- OPERATING_MODE |
Уровень 0b |
|
type OPERATING_MODE is (REQUEST_MODE, SAMPLE_MODE, EVENT_MODE); - Определяет режимы работы устройства ввода. |
||
- OPERATING_STATE |
Уровень 0a |
|
type OPERATING_STATE is (GKCL, GKOP, WSOP, WSAC, SGOP); - Определяет пять состояний ЯГС. |
||
- PATTERN_INDEX |
Уровень 0a |
|
subtype PATTERN_INDEX is STYLE_INDEX range 1. . STYLE_INDEX’LAST; - Определяет диапазон индексов таблицы шаблонов. |
||
- PATTERN_INDICES |
Уровень 0a |
|
package PATTERN_INDICES is new GKS_LIST_UTILITIES (PATTERN_INDEX); - Предоставляет списки индексов таблицы шаблонов. |
||
- PICK_ID |
Уровень 1b |
|
type PICK_ID is new POSITIVE; - Определяет диапазон идентификаторов устройства указания, существующих в реализации. |
||
- PICK_IDS |
Уровень 1b |
|
package PICK_IDS is new GKS_LIST_UTILITIES (PICK_ID); - Предоставляет списки идентификаторов устройства указания. |
||
- PICK_PROMPT_ECHO_TYPE |
Уровень 1b |
|
type PICK_PROMPT_ECHO_TYPE is new INTEGER; - Определяет тип подсказки и эха для устройства указания. |
||
- PICK_PROMPT_ECHO_TYPES |
Уровень 1b |
|
package PICK_PROMPT_ECHO_TYPES is new GKS_LIST_UTILITIES (PICK_PROMPT_ECHO_TYPE); - Предоставляет списки типов подсказки и эха устройства указания. |
||
- PICK_REQUEST_STATUS |
Уровень 1b |
|
type PICK_REQUEST_STATUS is (OK, NOPICK, NONE); - Определяет статус операции ввода указания для функции запроса. |
||
- PICK_STATUS |
Уровень 1b |
|
subtype PICK_STATUS is PICK_REQUEST_STATUS range OK. . NOPICK; - Определяет статус операции ввода указания для функций получения информации. |
||
- PIXEL_COLOUR_MATRIX |
Уровень 0a |
|
type PIXEL_COLOUR_MATRIX is array (POSITIVE range < >, POSITIVE range < >) of PIXEL_COLOUR_INDEX; - Предоставляет матрицы цветов пикселов. |
||
- POLYLINE_INDICES |
Уровень 0a |
|
package POLYLINE_INDICES is new GKS_LIST_UTILITIES (POLYLINE_INDEX); - Предоставляет списки индексов ломаной. |
||
- POLYMARKER_INDICES |
Уровень 0a |
|
package POLYMARKER_INDICES is new GKS_LIST_UTILITIES (POLYMARKER_INDEX); - Предоставляет списки индексов полимаркеров. |
||
- RADIANS |
Уровень 1a |
|
type RADIANS is digits PRECISION; - Величины, используемые в выполнении преобразования сегмента (угол вращения). Положительное значение указывает на вращение против часовой стрелки |
||
- RANGE_OF_EXPANSIONS |
Уровень 0a |
|
type RANGE_OF_EXPANSIONS is record MIN · CHAR_EXPANSION; MAX · CHAR_EXPANSION; end record; - Предоставляет область значений масштаба расширения литер |
||
- RASTER_UNITS |
Уровень 0a |
|
type RASTER_UNITS is new POSITIVE; - Определяет область единиц растра |
||
- RASTFR_UNIT_SIZE |
Уровень 0a |
|
type RASTER_UNIT_SIZE is record X : RASTER_UNITS; Y : RASTER_UNITS; end record; - Определяет размер экрана дисплея в растровых единицах. |
||
- REGENERATION_MODE |
Уровень 0a |
|
type REGENERATION_MODE is (SUPPRESSED, ALLOWED); - Указывает, подавлена или разрешена неявная повторная генерация |
||
- RELATIVE_PRIORITY |
Уровень 0a |
|
type RELATIVE_PRIORITY is (HIGHER, LOWER); - Обозначает относительный приоритет между двумя преобразованиями нормирования. |
||
- RETURN_VALUE_TYPE |
Уровень 0a |
|
tyре RETURN_VALUE_TYPE is (SET, REALIZED); - Указывает, возвращаемое значение следует рассматривать как заданное программой или как действительно реализованное устройством. |
||
- SEGMENT.DETECTABILITY |
Уровень 1a |
|
type SEGMENT_DETECTABILITY is (UNDETECTABLE, DETECTABLE); - Указывает, является или нет сегмент обнаруживаемым. |
||
- SEGMENT_HIGHLIGHTING |
Уровень 1a |
|
type SEGMENT_HIGHLIGHTING is (NORMAL, HIGHLIGHTED); - Указывает, является или нет сегмент выделяемым. |
||
- SEGMENT_NAME |
Уровень 1a |
|
type SEGMENT_NAME is new POSITIVE; - Определяет диапазон имен сегментов. |
||
- SEGMENT_NAMES |
Уровень 1a |
|
package SEGMENT_NAMES is new GKS_LIST_UTILITIES (SEGMENT_NAME); - Дает список имен сегментов. |
||
- SEGMENT_PRIORITY |
Уровень 1a |
|
type SEGMENT_PRIORITY is digits PRECISION range 0.0. . 0.1; - Определяет приоритет сегмента. |
||
- SEGMENT_VISIBILITY |
Уровень 1a |
|
type SEGMENT_VISIBILITY is (VISIBLE, INVISIBLE); - Обозначает, является ли сегмент видимым или нет. |
||
- STRING_PROMPT_ECHO_TYPE |
Уровень 0b |
|
type STRING_PROMPT_ECHO_TYPE is new INTEGER; - Определяет типы подсказки и эха устройства ввода строки. |
||
- STRING_PROMPT_ECHO_TYPES |
Уровень 0b |
|
package STRING_PROMPT_ECHO_TYPES is new GKS_LIST_UTILITIES (STRING_PROMPT_ECHO_TYPE); - Предоставляет списки типов подсказок и эха устройства ввода строки. |
||
- STROKE_PROMPT_ECHO_TYPE |
Уровень 0b |
|
type STROKE_PROMPT_ECHO_TYPE is new INTEGER; - Определяет типы подсказок и эха устройства ввода последовательности позиций. |
||
- STROKE_PROMPT_ECHO_TYPES |
Уровень 0b |
|
package STROKE_PROMPT_ECHO_TYPES is new GKS_LIST_UTILITIES (STROKE_PROMPT_ECHO_TYPE); - Предоставляет списки типов подсказок и эха ввода последовательности позиций. |
||
- VERTICAL_ALIGNMENT |
Уровень 0a |
|
type VERTICAL_ALIGNMENT is (NORMAL, TOP, CAP, HALF, BASE, BOTTOM); - Выравнивание параллелограмма текста по отношению к вертикальной позиции текста. |
|
|
- TEXT_ALIGNMENT |
Уровень 0a |
|
type TEXT_ALIGNMENT is record |
|
|
HORIZONTAL |
: HORIZONTAL_ALIGNMENT; |
|
VERTICAL |
: VERTICAL_ALIGNMENT; |
|
end record; |
|
|
- Тип атрибута, управляющего позиционированием параллелограмма текста по отношению к позиции текста, имеющего горизонтальные и вертикальные компоненты, как определено выше. |
||
- WC_TYPE |
Уровень 0a |
|
type WC_TYPE is digits PRECISION; - Определяет точность для типа мировых координат. |
||
- WC |
Уровень 0a |
|
package WC is new GKS_COORDINATE_SYSTEM (WC_TYPE); - Определяет мировую систему координат. |
||
- TEXT_EXTENT_PARALLELOGRAM |
Уровень 0a |
|
type TEXT_EXTENT_PARALLELOGRAM is record |
||
LOWER_LEFT |
: WC.POINT; |
|
LOWER_RIGHT |
: WC.POINT; |
|
UPPER_RIGHT |
: WC.POINT; |
|
UPPER_LEFT |
: WC.POINT; |
|
end record; |
|
|
- Определяет угловые точки параллелограмма текста по отношению к вертикальному позиционированию текста |
||
- TEXT_FONT |
Уровень 0a |
|
type TEXT_FONT is new INTEGER; - Определяет типы шрифтов предоставляемых реализацией. |
||
- TEXT_PRECISION |
Уровень 0a |
|
type TEXT_PRECISION is (STRING_PRECISION, CHAR_PRECISION, STROKE_PRECISION); - Точность, с которой появляется текст. |
||
- TEXT_FONT_PRECISION |
Уровень 0a |
|
type TEXT_FONT_PRECISION is record |
|
|
FONT |
: TEXT_FONT; |
|
PRECISION |
: TEXT_PRECISION; |
|
end record; |
|
|
- Данный тип определяет запись, описывающую атрибут шрифта и точности текста. |
||
- TEXT_FONT_PRECISIONS |
Уровень 0a |
|
package TEXT_FONT_PRECISIONS is new GKS_LIST_UTILITIES (TEXT_FONT_PRECISION); - Предоставляет список пар шрифта и точности текста. |
||
- TEXT_INDEX |
Уровень 0a |
|
type TEXT_INDEX is new POSITIVE; - Определяет диапазон значений индексов таблицы связок текста. |
||
- TEXT_INDICES |
Уровень 0a |
|
package TEXT_INDICES is new GKS_LIST_UTILITIES (TEXT_INDEX); - Предоставляет списки индексов текста. |
||
- TEXT_PATH |
Уровень 0a |
|
type TEXT_PATH is (RIGHT, LEFT, UP, DOWN); - Направление строки текста. |
||
- TRANSFORMATION_FACTOR |
Уровень 1a |
|
type TRANSFORMATION_FACTOR is record X : NDC_TYPE; Y : NDC_TYPE; end record; - Масштаб, используемый в матрицах преобразования для выполнения преобразования сегментов. |
||
- TRANSFORMATION_MATRIX |
Уровень 1a |
|
type TRANSFORMATION_MATRIX is array (1. . 2, 1. . 3) of NDC_TYPE; - Для преобразований сегментов, отображающихся внутрь пространства НК. |
||
- TRANSFORMATION_NUMBER |
Уровень 0a |
|
type TRANSFORMATION_NUMBER is new NATURAL; - Номер преобразования нормирования. subtype POSITIVE_TRANSFORMATION_NUMBER is TRANSFORMATION_NUMBER range 1 TRANSFORMATION_NUMBER’LAST; - Номер преобразования нормирования, соответствующий установленному преобразованию |
||
- TRANSFORMATION_PRIORITY_ARRAY |
Уровень 0a |
|
type TRANSFORMATION_PRIORITY_ARRAY is array (POSITIVE range < >) of TRANSFORMATION_NUMBER; - Тип для запоминания номера преобразования. |
||
- TRANSFORMATION_PRIORITY_LIST |
Уровень 0a |
|
type TRANSFORMATION_PRIORITY_LIST (LENGTH : SMALL_NATURAL = 0) is record CONTENTS : TRANSFORMATION_PRIORITY_ARRAY (1.. LENGTH); end record; - Предоставляет упорядоченный по приоритетам список номеров преобразований. |
||
- UPDATE_REGENERATION_FLAG |
Уровень 0a |
|
type UPDATE_REGENERATION_FLAG is (PERFORM, POSTRONE); - Флаг повторной генерации на дисплее. |
||
- UPDATE_STATE |
Уровень 0a |
|
type UPDATE_STATE is (NOTPENDING, PENDING); - Указывает, было ли запрошено изменение преобразования станции. |
||
- VALUATOR_INPUT_VALUE |
Уровень 0b |
|
type VALUATOR_INPUT_VALUE is digits PRECISION; - Определяет точность вводимых величин в данной реализации. |
||
- VALUATOR_PROMPT_ECHO_TYPE |
Уровень 0b |
|
type VALUATOR_PROMPT_ECMO_TYPE is new INTEGER; - Определяет возможные типы подсказок и эха устройства ввода числа |
||
- VALUATOR_PROMPT_ECHO_TYPES |
Уровень 0b |
|
package VALUATOR_PROMPT_ECHO_TYPES is new GKS_LIST_UTILITIES (VALUATOR_PROMPT_ECHO_TYPE); - Предоставляет списки типов подсказок и эха устройства ввода числа. |
||
- VARIABLE_COLOUR_MATRIX |
Уровень 0a |
|
type VARIABLE_COLOUR_MATRIX (DX : SMALL_NATURAL : = 0; DY : SMALL_NATURAL : = 0) is record MATRIX : COLOUR_MATRIX (1. . DX, 1. . .DY); end record; - Предоставляет матрицы переменного размера, содержащие индексы цветов, соответствующие матрице ячеек или матрице шаблонов. |
||
- VARIABLE_CONNECTION_ID |
Уровень 0a |
|
type VARIABLE_CONNECTION_ID (LENGTH : STRING_SMALL_NATURAL : = 0) is record CONNECT : STRING (1. . LENGTH); end record; - Определяет идентификатор связи переменной длины для INQ_WS_CON_NECTION_AND_TYPE. |
||
- VARIABLE_PIXEL_COLOUR_MATRIX |
Уровень 0a |
|
type VARIABLE_PIXEL_COLOUR_MATRIX (DX : SMALL_NATURAL : = 0; DY ; SMALL_NATURAL : = 0) is record MATRIX : PIXEL_COLOUR_MATRIX (1. . DX, 1. . DY); end record; - Предоставляет матрицы переменного размера для цветов пикселей. |
||
- WS_CATEGORY |
Уровень 0a |
|
type WS_CATEGORY is (OUTPUT, INPUT, OUTIN, WISS, M0, M1); - Тип для категорий станций ЯГС. |
||
- WS_ID |
Уровень 0a |
|
type WS_ID in new POSITIVE; - Определяет область идентификаторов станций. |
||
- WS_IDS |
Уровень 0a |
|
package WS_IDS is new GKS_LIST_UTILITIES (WS_ID); - Предоставляет списки идентификаторов станций. |
||
- WS_STATES |
Уровень 0a |
|
type WS_STATES is (INACTIVE, ACTIVE); - Состояние станции. |
||
- WS_TYPES |
Уровень 0a |
|
type WS_TYPES is new POSITIVE; - Область значений, соответствующих достоверным типам станций. Константы, определяющие имена для различных типов станций, должны предоставляться реализацией. |
||
- WS_TYPES |
Уровень 0a |
|
package WS_TYPES is new GKS_LIST_UTILITIES (WS_TYPE); - Предоставляет списки типов станций. |
||
- INDIVIDUAL_ATTRIBUTE_VALUES |
Уровень 0a |
|
type INDIVIDUAL_ATTRIBUTE_VALUES is record |
|
|
TYPE_OF_LINE |
: LINETYPE; |
|
WIDTH |
: LINEWIDTH; |
|
LINE_COLOUR |
: COLOUR_INDEX; |
|
TYPE_OF_MARKER |
: MARKER_TYPE; |
|
SIZE |
: MARKER_SIZE; |
|
MARKER_COLOUR |
: COLOUR_INDEX; |
|
FONT_PRECISION |
: TEXT_FONT_PRECISION; |
|
EXPANSION |
: CHAR_EXPANSION; |
|
SPACING |
: CHAR_SPACING; |
|
TEXT_COLOUR |
: COLOUR_INDEX; |
|
INTERIOR |
: INTERIOR_STYLE; |
|
STYLE |
: STYLE_INDEX; |
|
FILL_AREA_COLOUR |
: COLOUR_INDEX; |
|
ASF |
: ASF_LIST; |
|
end record; |
|
|
- Запись, содержащая текущие индивидуальные атрибуты для процедуры INQ_CURRENT_INDIVIDUAL_ATTRIBUTE_VALUES. |
||
- PRIMITIVE_ATTRIBUTE_VALUES |
Уровень 0a |
|
type PRIMITIVE_ATTRIBUTE_VALUES is record |
|
|
INDEX_POLYLINE |
: POLYLINE_INDEX; |
|
INDEX_POLYMARKER |
: POLYMARKER_INDEX; |
|
INDEX_TEXT |
: TEXT_INDEX; |
|
CHAR_HEIGHT |
: WC.MAGNITUDE; |
|
CHAR_UP_VECTOR |
: WC.VECTOR; |
|
CHAR_WIDTH |
: WC.MAGNITUDE; |
|
CHAR_BASE_VECTOR |
: WC.VECTOR; |
|
PATH |
: TEXT_PATH; |
|
ALIGNMENT |
: TEXT_ALIGNMENT; |
|
INDEX_FILL_AREA |
: FILL_AREA_INDEX; |
|
PATTERN_WIDTH_VECTOR |
: WC.VECTOR; |
|
PATTERN_HEIGHT_VECTOR |
: WC.VECTOR; |
|
PATTERN_REFERENCE_POINT |
: WC.POINT; |
|
end record; |
|
|
- Запись, содержащая атрибуты текущего примитива для процедуры INQ_CURRENT_PRIMITIVE_ATTRIBUTE_VALUES. - Далее задается предопределенное прерывание GKS_ERROR, заданное в п. 3.2.3. GKS_ERROR : exception; - Далее идут декларации зависящих от реализации констант для определения типов ЯГС/Ада. Некоторые константы используют для задания значений параметров. принимаемых по умолчанию, процедурам ЯГС. - Следующие константы определяют стандартные типы линий ЯГС: |
||
SOLID_LINE |
: constant LINETYPE : = 1; |
|
DASHED_LINE |
: constant LINETYPE : = 2; |
|
DOTTED_LINE |
: constant LINETYPE : = 3; |
|
DASHED_DOTTED_LINE |
: constant LINETYPE : = 4; |
|
- Следующие константы определяют стандартные типы маркеров ЯГС: |
||
DOT_MARKER |
: constant MARKER_TYPE : = 1; |
|
PLUS_MARKER |
: constant MARKER_TYPE : = 2; |
|
STAR_MARKER |
: constant MARKER_TYPE : = 3; |
|
ZERO_MARKER |
: constant MARKER_TYPE : = 4; |
|
X_MARKER |
: constant MARKER_TYPE : = 5 |
|
- Следующие константы определяют типы подсказок и эха, поддерживаемые ЯГС: |
||
DEFAULT_LOCATOR |
: constant LOCATOR_PROMPT_ECHO_TYPE : = 1; |
|
CROSS_HAIR_LOCATOR |
: constant LOCATOR_PROMPT_ECHO_TYPE : = 2; |
|
TRACKING_CROSS_LOCATOR |
: constant LOCATOR_PROMPT_ECHO_TYPE : = 3; |
|
RUBBER_BAND_LINE_LOCATOR |
: constant LOCATOR_PROMPT_ECHO_TYPE : = 4; |
|
RECTANGLE_LOCATOR |
: constant LOCATOR_PROMPT_ECHO_TYPE : = 5; |
|
DIGITAL_LOCATOR |
: constant LOCATOR_PROMPT_ECHO_TYPE : = 6; |
|
DEFAULT_STROKE |
: constant STROKE_PROMPT_ECHO_TYPE : = 1; |
|
DIGITAL_STROKE |
: constant STROKE_PROMPT_ECHO_TYPE : = 2; |
|
MARKER_STROKE |
: constant STROKE_PROMPT_ECHO_TYPE : = 3; |
|
LINE_STROKE |
: constant STROKE_PROMPT_ECHO_TYPE : = 4; |
|
DEFAULT_VALUATOR |
: constant VALUATOR_PROMPT_ECHO_TYPE : = 1; |
|
GRAFHICAL_VALUATOR |
: constant VALUATOR_PROMPT_ECHO_TYPE : = 2; |
|
DIGITAL_VALUATOR |
: constant VALUATOR_PROMPT_ECHO_TYPE : = 3; |
|
DEFAULT_CHOICE |
: constant CHOICE_PROMPT_ECHO_TYPE : = 1; |
|
PROMPT_ECHO_CHOICE |
: constant CHOICE_PROMPT_ECHO_TYPE : = 2; |
|
STRING_PROMPT_CHOICE |
: constant CHOICE_PROMPT_ECHO_TYPE : = 3; |
|
STRING_INPUT__CHOICE |
: constant CHOICE_PROMPT_ECHO_TYPE : = 4; |
|
SEGMENT_CHOICE |
: constant CHOICE_PROMPT_ECHO_TYPE : = 5; |
|
DEFAULT_STRING |
: constant STRING_PROMPT_ECHO_TYPE : = 1; |
|
DEFAULT_PICK |
: constant PICK_PROMPT_ECHO_TYPE : = 1; |
|
GROUP_HIGHLIGHT_PICK |
: constant PICK_PROMPT_ECHO_TYPE : = 2; |
|
SEGMENT_HIGHLIGHT_PICK |
: constant PICK_PROMPT_ECHO_TYPE : = 3; |
|
- Следующие константы используют для задания принимаемых по умолчанию значений параметров процедурам ЯГС. |
||
DEFAULT_MAMORY_UNITS DEFAULT_ERROR_FILE |
: constant : constant STRING |
: = 0; : = « »; |
end GKS_TYPES; - ПАКЕТ ЯГС with GKS_TYPES, use GKS_TYPES package GKS is |
|
|
- Пакет ЯГС содержит все процедуры, которые требуются для реализации уровня 2c ЯГС - Последующие типы данных являются личными и включены в пакет ЯГС для легкости манипулирования |
||
- CHOICE_DATA_RECORD |
Уровень 0b |
|
type CHOICE_DATA_RECORD (PROMPT_ECHO_TYPE CHOICE_PROMPT_ECHO_TYPE = DEFAULT_CHOICE) is private, - Определяет запись для инициализации устройства выбора |
||
- GKSM_DATA_RECORD |
Уровень 0b |
|
type GKSM_DATA_RECORD (TYPE_OF_ITEM GKSM_ITEM_TYPE = 0, LENGTH NATURAL = 0) is private, - Запись данных для метафайла GKSM |
||
- LOCATOR_DATA_RECORD |
Уровень 0b |
|
type LOCATOR_DATA_RECORD (PROMPT_ECHO_TYPE LOCATOR_PROMPT_ECHO_TYPE = DEFAULT_LOCATOR) is private, - Определяет запись для инициализации устройства ввода позиции |
||
- PICK_DATA_RECORD |
Уровень 1b |
|
type PICK_DATA_RECORD (PROMPT_ECHO_TYPE PICK_PROMPT_ECHO_TYPE = DEFAULT_PICK) is private, - Определяет запись для инициализации устройства указания |
||
- STRING_DATA_RECORD |
Уровень 0b |
|
type STRING_DATA_RECORD (PROMPT_ECHO_TYPE STRING_PROMPT_ECHO_TYPE = DEFAULT_STRING) is private, - Определяет запись для инициализации устройства ввода строки |
||
- STROKE_DATA_RECORD |
Уровень 0b |
|
type STROKE_DATA_RECORD (PROMPT_ECHO_TYPE STROKE_PROMPT_ECHO_TYPE = DEFAULT_STROKE) is private, - Определяет запись для инициализации устройства ввода последовательности позиций |
||
- VALUATOR_DATA.RECORD |
Уровень 0b |
|
type VALUATOR_DATA_RECORD (PROMPT_ECHO_TYPE VALUATOR_PROMPT_ECHO_TYPE = DEFAULT_VALUATOR is private - Определяет запись для инициализации устройства ввода числа - По программы для манипулирования записями данных ввода - Процедуры и функции, определенные ниже, необходимы для построения и опроса записей входных данных декларированных как личные типы в пакете для каждого из шести классов устройств ввода, определенных спецификацией ЯГС Процедуры, представленные ниже, используют для построения записей данных для каждого из типов подсказок и эха устройств, применяемых для инициализации конкретных устройств ввода. Также предоставлены соответствующие функции позволяющие прикладному программному обеспечению ЯГС/Ада проанализировать части записи данных, которые определены ЯГС. Любую специфическую для реализации информацию в записях данных поддерживают личной и недоступной Прерывания GKS_ERROR возникают, если любую из приведенных ниже процедур используют неправильно Таким образом если применяют недопустимый тип подсказки и эха, в файле ошибок регистрируют ошибку номер 2500. - Операции над записями данных устройства ввода позиций. |
||
procedure BUILD_LOCATOR_DATA_RECORD |
||
(PROMPT_ECHO_TYPE |
: in LOCATOR_PROMPT_ECHO_TYPE; |
|
DATA_RECORD |
: out LOCATOR_DATA_RECORD); |
|
- Строит и возвращает запись данных устройства ввода позиций. procedure BUILD_STROKE_DATA_RECORD |
||
(PROMPT_ECHO_TYPE |
: in STROKE_PROMPT_ECHO_TYPE; |
|
BUFFER_SIZE |
: in POSITIVE; |
|
DATA_RECORD |
: out STROKE_DATA_RECORD); |
|
- Строит и возвращает запись данных устройства ввода последовательности позиций. |
||
function BUFFER_SIZE (DATA_RECORD |
: in STROKE_DATA_RECORD) return POSITIVE; |
|
- Операции над записями данных устройства ввода числа. procedure BUILD_VALUATOR_DATA_RECORD |
||
(PROMPT_ECHO_TYPE |
: in VALUATOR_PROMPT_ECHO_TYPE; |
|
LOW_VALUE |
: in VALUATOR_INPUT_VALUE; |
|
HIGH_VALUE |
: in VALUATOR_INPUT_VALUE; |
|
DATA_RECORD |
: out VALUATOR_DATA_RECORD); |
|
- Строит и возвращает запись данных устройства ввода числа. |
||
function HIGH_VALUE (DATA_RECORD |
: in VALUATOR_DATA_RECORD) |
|
return VALUATOR_INPUT_VALUE; |
|
|
- Возвращает наибольшее число, запомненное в записи данных устройства ввода числа. |
||
function LOW_VALUE (DATA_RECORD |
: in VALUATOR_DATA_RECORD) |
|
return VALUATOR_INPUT_VALUE; |
|
|
- Возвращает наименьшее число, запомненное в записи данных устройства ввода числа. - Операции над записями данных устройства выбора. procedure BUILD_CHOICE_DATA_RECORD |
||
(PROMPT_ECHO_TYPE |
: in CHOICE_PROMPT_ECHO_TYPE; |
|
DATA_RECORD |
: out CHOICE_DATA_RECORD); |
|
- Строит и возвращает запись данных устройства выбора. - Операции над записями данных устройства указания. procedure BUILD_PICK_DATA_RECORD |
||
(PROMPT_ECHO_TYPE |
: in PICK_PROMPT_ECHO_TYPE; |
|
DATA_RECORD |
: out PICK_DATA_RECORD); |
|
- Строит и возвращает запись данных устройства указания. - Операции над записями данных устройства ввода строки. procedure BUILD_STRING_DATA_RECORD |
||
(PROMPT_ECHO_TYPE |
: in STRING_PROMPT_ECHO_TYPE; |
|
INPUT_BUFFER_SIZE |
: in POSITIVE; |
|
INITIAL_CURSOR_POSITION |
: in NATURAL; |
|
DATA_RECORD |
: out STRING_DATA_RECORD); |
|
- Строит и возвращает запись данных строки, function INPUT_BUFFER_SIZE (DATA_RECORD : in STRING_DATA_RECORD) return NATURAL; - Возвращает размер буфера, использованного для запоминания строки, размещенной в записи данных строки. function INITIAL_CURSOR_POSITION (DATA_RECORD : in STRING_DATA_RECORD) return NATURAL; - Возвращает начальную позицию курсора для устройства ввода строки, запомненного в записи данных устройства ввода строки - Процедуры ЯГС - ФУНКЦИИ УПРАВЛЕНИЯ procedure OPEN_GKS |
||
(ERROR_FILE |
: in STRING : = DEFAULT_ERROR_FILE; |
|
AMOUNT_OF_MEMORY |
: in NATURAL : = DEFAULT_MEMORY_UNITS); |
|
procedure CLOSE_GKS; procedure OPEN_WS |
||
(WS |
: in WS_ID; |
|
CONNECTION |
: in STRING; |
|
TYPE_OF_WS |
: in WS_TYPE); |
|
procedure CLOSE_WS (WS : in WS_ID); procedure ACTIVATE_WS (WS ; in WS_ID); procedure DEACTIVATE_WS (WS : in WS_ID); procedure CLEAR_WS (WS : in WS_ID); FLAG : in CONTROL_FLAG); procedure REDRAW_ALL_SEGMENTS_ON_WS (WS : in WS_ID); procedure UPDATE_WS |
||
(WS |
: in WS_ID; |
|
REGENERATION |
: in UPDATE_REGENERATION_FLAG); |
|
procedure SET_DEFERRAL_STATE |
||
(WS |
: in WS_ID; |
|
DEFERRAL |
: in DEFERRAL_MODE; |
|
REGENERATION |
: in REGENERATION_MODE); |
|
procedure MESSAGE |
||
(WS |
: in WS_ID; |
|
CONTENTS |
: in STRING); |
|
- ФУНКЦИИ ВВОДА ГРАФИЧЕСКИХ ДАННЫХ |
|
|
procedure POLYLINE |
|
|
(POINTS |
: in WC.POINT_ARRAY); |
|
procedure POLYMARKER |
|
|
(POINTS |
: in WC.POINT_ARRAY); |
|
procedure TEXT |
|
|
(POSITION |
: in WC.POINT; |
|
CHAR_STRING |
: in STRING); |
|
procedure FILL_AREA |
|
|
(POINTS |
: in WC.POINT_ARRAY); |
|
procedure CELL_ARRAY |
|
|
(CORNER_1_1 |
: in WC.POINT; |
|
CORNER_DX_DY |
: in WC.POINT; |
|
CELLS |
: in COLOUR_MATRIX); |
|
- ФУНКЦИИ ЗАДАНИЯ ВЫХОДНЫХ ДАННЫХ |
||
procedure SET_POLYLINE_INDEX |
|
|
(INDEX |
: in POLYLINE_INDEX); |
|
procedure SET_LINETYPE |
|
|
(TYPE_OF_LINE |
: in LINETYPE); |
|
procedure SET_LINEWIDTH_SCALE_FACTOR |
|
|
(WIDTH |
: in LINEWIDTH); |
|
procedure SET_POLYLINE_COLOUR_INDEX |
|
|
(LINE_COLOUR |
: in COLOUR_INDEX); |
|
procedure SET_POLYMARKER_INDEX |
|
|
(INDEX |
: in POLYMARKER_INDEX); |
|
procedure SET_MARKER_TYPE |
|
|
(TYPE_OF_MARKER |
: in MARKER_TYPE); |
|
procedure SET_MARKER_SIZE_SCALE_FACTOR |
|
|
(SIZE |
: in MARKER_SIZE); |
|
procedure SET_POLYMARKER_COLOUR_INDEX |
|
|
(MARKER_COLOUR |
: in COLOUR_INDEX); |
|
procedure SET_TEXT_INDEX |
|
|
(INDEX |
: in TEXT_INDEX); |
|
procedure SET_TEXT_FONT_AND_PRECISION |
|
|
(FONT_PRECISION |
: in TEXT_FONT_PRECISION); |
|
procedure SET_CHAR_EXPANSION_FACTOR |
|
|
(EXPANSION |
: in CHAR_EXPANSION); |
|
procedure SET_CHAR_SPACING |
|
|
(SPASING |
: in CHAR_SPACING); |
|
procedure SET_TEXT_COLOUR_INDEX |
|
|
(TEXT_COLOUR |
: in COLOUR_INDEX); |
|
procedure SET_CHAR_HEIGHT |
|
|
(HEIGHT |
: in WC.MAGNITUDE); |
|
procedure SET_CHAR_UP_VECTOR |
|
|
(CHAR_UP_VECTOR |
: in WC VECTOR); |
|
procedure SET_TFXT_PATH |
|
|
(PATH |
: in ТЕХТ_РАТН); |
|
procedure SET_TEXT_ALIGNMENT |
|
|
(ALIGNMEN |
: in TEXT_ALIGNMENT); |
|
procedure SET_FILL_AREA_INDEX |
|
|
(INDEX |
: in FILL_AREA_INDEX); |
|
procedure SET_FILL_AREA_INTERIOR_STYLE |
|
|
(INTERIOR |
: in INTERIOR_STYLE); |
|
procedure SET_FILL_AREA_STYLE_INDEX |
|
|
(STYLE |
: in STYLE_INDEX); |
|
procedure SET_FILL_AREA_COLOUR_INDEX |
|
|
(FILL_AREA_COLOUR |
: in COLOUR_INDEX); |
|
procedure SET_PATTERN_SIZE |
|
|
(SIZE |
: in WC SIZE); |
|
procedure SET_PATTERN_REFERENCE_POINT |
|
|
(POINT |
: in WC POINT); |
|
procedure SET_ASF |
|
|
(ASF |
: in ASF LIST); |
|
procedure SET_PICK_ID |
|
|
(PICK |
: in PICK_ID); |
|
procedure SET_POLYLINE_REPRESENTATIQN |
||
(WS INDEX TYPE_OF_LINE WIDTH LINE_COLOUR |
: in WS_ID; : in POLYLINE_INDEX; : in LINETYPE; : in LINEWIDTH; : in COLOUR_INDEX); |
|
procedure SET_POLYMARKER_REPRESENTATION |
||
(WS INDEX TYPE_OF_MARKER SIZE MARKER_COLOUR |
: in WS_ID; : in POLYMARKER_INDEX; : in MARKER_TYPE; : in MARKER_SIZE; : in COLOUR_INDEX); |
|
procedure SET_TEXT_REPRESENTATION |
||
(WS INDEX FONT_PRECISION EXPANSION SPACING TEXT_COLOUR |
: in WS_ID; : in TEXT_INDEX; : in TEXT_FONT_PRECISION; : in CHAR_EXPANSION; : in CHAR_SPACING; : in COLOUR_INDEX); |
|
procedure SET_FILL_AREA.REPRESENTATION |
||
(WS INDEX INTERIOR STYLE FILL_AREA_COLOUR |
: in WS_ID; : in FILL_AREA_INDEX; : in INTERIOR_STYLE; : in STYLE_INDEX; : in COLOUR_INDEX); |
|
procedure SET_PATTERN_REPRESENTATION |
||
(WS INDEX PATTERN |
: in WS_ID; : in PATTERN_INDEX; : in COLOUR_MATRIX); |
|
procedure SET_COLOUR_REPRESENTATION |
||
(WS INDEX RGB_COLOUR |
: in WS_ID; : in COLOUR_INDEX; : in COLOUR_REPRESENTATION); |
|
- ФУНКЦИИ ПРЕОБРАЗОВАНИЯ |
||
procedure SET_WINDOW |
||
(TRANSFORMATION WINDOW_LIMITS |
: in POSITIVE_TRANSFORMATION_NUMBER; : in WC.RECTANGLE_LIMITS); |
|
procedure SET_VIEWPORT |
||
(TRANSFORMATION VIEWPORT_LIMITS |
: in POSITIVE_TRANSFORMATION_NUMBER; : in NDC.RECTANGLE_LIMITS); |
|
procedure SET_VIEWPORT_INPUT_PRIORITY |
||
(TRANSFORMATION REFERENCE_TRANSFORMATION PRIORITY |
: in TRANSFORMATION_NUMBER; : in TRANSFORMATION_NUMBER; : in RELATIVE_PRIORITY); |
|
procedure SELECT_NORMALIZATION_TRANSFORMATION |
||
(TRANSFORMATION |
: in TRANSFORMATION_NUMBER); |
|
procedure SET_CLIPPING_INDICATOR |
||
(CLIPPING |
: in CLIPPING_INDICATOR); |
|
procedure SET_WS_WINDOW |
||
(WS WS_WINDOW_LIMITS |
: in WS_ID; : in NDC.RECTANGLE_LIMITS); |
|
procedure SET_WS_VIEWPORT |
||
(WS WS_VIEWPORT_LIMITS |
: in WS_ID; : in DC.RESTANGLE_LIMITS); |
|
- ФУНКЦИИ СЕГМЕНТАЦИИ |
||
procedure CREATE_SEGMENT |
||
(SEGMENT |
: in SEGMENT_NAME); |
|
procedure CLOSE_SEGMENT; procedure RENAME_SEGMENT |
||
(OLD_NAME NEW_NAME |
: in SEGMENT_NAME); : in SEGMENT_NAME); |
|
procedure DELETE_SEGMENT |
||
(SEGMENT |
: in SEGMENT_NAME); |
|
procedure DELETE_SEGMENT_FROM_WS |
||
(WS SEGMENT |
: in WS_ID; : in SEGMENT_NAME); |
|
procedure ASSOCIATE_SEGMENT_WITH_WS |
||
(WS SEGMENT |
: in WS_ID; : in SEGMENT_NAME); |
|
procedure COPY_SEGMENT_TO_WS |
||
(WS SEGMENT |
: in WS_ID; : in SEGMENT.NAME); |
|
procedure INSERT_SEGMENT |
||
(SEGMENT TRANSFORMATION |
: in SEGMENT.NAME; : in TRANSFORMATION.MATRIX); |
|
procedure SET_SEGMENT_TRANSFOI |
||
(SEGMENT TRANSFORMATION |
: in SEGMENT_NAME; : in TRANSFORMATION_MATRIX); |
|
procedure SET_VISIBILITY |
||
(SEGMENT VISIBILITY |
: in SEGMENT_NAME; : in SEGMENT_VISIBILITY); |
|
procedure SET_HIGHLIGHTING |
||
(SEGMENT HIGHLIGHTING |
: in SEGMENT_NAME; : in SEGMENT_HIGHLIGHTING); |
|
procedure SET_SEGMENT_PRIORITY |
||
(SEGMENT PRIORITY |
: in SEGMENT_NAME; : in SEGMENT_PRIORITY); |
|
procedure SET_DETECTABILITY |
||
(SEGMENT DETECTABILITY |
: in SEGMENT_NAME; : in SEGMENT_DETECTABILITY); |
|
- ФУНКЦИИ ВВОДА |
||
procedure INITIALISE_LOCATOR |
||
(WS DEVICE INITIAL_TRANSFORMATION INITIAL_POSITION ECHO_AREA DATA_RECORD |
: in WS_ID; : in LOCATOR_DEVICE_NUMBER; : in TRANSFORMATION_NUMBER; : in WC.POINT; : in DC.RECTANGLE_LIMITS; : in LOCATOR_DATA_RECORD); |
|
procedure INITIALISE_STROKE |
||
(WS DEVICE INITIAL_TRANSFORMATION INITIAL_STROKE ECHO_AREA DATA_RECORD |
: in WS_ID; : in STROKE_DEVICE_NUMBER; : in TRANSFORMATION_NUMBER; : in WC.POINT_ARRAY; : in DC.RESTANGLE_LIMITS; : in STROKE_DATA_RECORD); |
|
procedure INITIALISE_VALUATOR |
||
(WS DEVICE INITIAL_VALUE ECHO_AREA DATA_RECORD |
: in WS_ID; : in VALUATOR_DEVICE_NUMBER; : in VALUATOR_INPUT_VALUE; ; in DC.RECTANGLE_LIMITS; : in VALUATOR_DATA_RECORD); |
|
procedure INITIALISE_CHOICE |
||
(WS DEVICE INITIAL_STATUS INITIAL_CHOICE ECHO_AREA DATA_RECORD |
: in WS_ID; : in CHOICE_DEVICE_NUMBER; : in CHOICE_STATUS; : in CHOICE_VALUE; : in DC.RESTANGLE_LIMITS; : in CHOICE_DATA_RECORD); |
|
procedure INITIALISE_PICK |
||
(WS DEVICE INITIAL_STATUS INITIAL_SEGMENT INITIAL_PICK ECHO_AREA DATA_RECORD |
: in WS_ID : in PICK_DEVICE_NUMBER; : in PICK_STATUS; : in SEGMENT_NAME; : in PICK_ID; : in DC RESTANGLE_LIMITS; : in PICK_DATA_RECORD), |
|
procedure INITIALISE_STRING |
||
(WS DFVICE INITIAL_STRJNG FCHO_AREA DATA_RECORD |
: in WS_ID; : in STRING_DEVICE_NUMBER; : in INPUT_STRING; : in DC RECTANGLE_LIMITS; : in STRING_DATA_RECORD) |
|
procedure SET_LOCATOR_MODE |
||
(WS DEVICE MODE SWITCH |
: in WS_ID; : in LOCATOR_DEVICE_NUMBER; : in OPERATION_MODE; : in ECHO_SWITCH) |
|
procedure SET_STROKE_MODE |
||
(WS DEVICE MODE SWITCH |
: in WS_ID; : in STROKE_DEVICE_NUMBER; : in OPERATING_MODE; : in ECHO_SWITCH); |
|
procedure SET_VALUATOR_MODE |
||
(WS DEVICE MODE SWITCH |
: in WS_ID; : in VALUATOR_DEVICE_NUMBER; : in OPERATING_MODE; : in ECHO_SWITCH), |
|
procedure SET_CHOICE_MODE |
||
(WS DEVICE MODE SWITCH |
: in WS_ID; : in CHOICE_DEVICE_NUMBER; : in OPERATING_MODE; : in ECHO_SWITCH); |
|
procedure SET_PICK_MODE |
||
(WS DEVICE MODE SWITCH |
: in WS_ID; : in PICK_DEVICE_NUMBER; : in OPERATING_MODE; : in ECHO_SWITCH); |
|
procedure SET_STRING_MODE |
||
(WS DEVICE MODE SWITCH |
: in WS_ID; : in STRING_DEVICE_NUMBER; : in OPERATING_MODE; : in ECHO_SWITCH); |
|
procedure REQUEST_LOCATOR |
||
WS DEVICE STATUS TRANSFORMATION POSITION |
: in WS_ID; : in LOCATOR_DEVICE_NUMBER; : out INPUT_STATUS; : out TRANSFORMATION_NUMBER; : out WC POINT); |
|
procedure REQUEST_STROKE |
||
(WS DEVICE STATUS TRANSFORMATION STROKE_POINTS |
: in WS_ID; : in STROKE_DEVICE_NUMBER; : out INPUT_STATUS; : out TRANSFORMATION_NUMBER; : out WC.POINT_LIST); |
|
procedure REQUEST_VALUATOR |
||
(WS DEVICE STATUS VALUE |
: in WS_ID; : in VALUATOR_DEVICE_NUMBER; : out INPUT_STATUS; : out VALUATOR_INPUT_VALUE); |
|
procedure REQUEST_CHOICE |
||
(WS DEVICE STATUS CHOICE_NUMBER |
: in WS_ID; : in CHOICE_DEVICE_NUMBER; : out CHOICE_REQUEST_STATUS; : out CHOICE_VALUE); |
|
procedure REQUEST_PICK |
||
(WS DEVICE STATUS SEGMENT PICK |
: in WS_ID; : in PICK_DEVICE_NUMBER; : out PICK_REQUEST_STATUS; : out SEGMENT_NAME; : out PICK_ID); |
|
procedure REQUEST_STRING |
||
(WS DEVICE STATUS CHAR_STRING |
: in WS_ID; : in STRING_DEVICE_NUMBER; : out INPUT_STATUS; : out INPUT_STRING); |
|
procedure SAMPLE_LOCATOR |
||
(WS DEVICE TRANSFORMATION POSITION |
: in WS_ID; : in LOCATOR_DEVICE_NUMBER; : out TRANSFORMATION_NUMBER; : out WC.POINT); |
|
procedure SAMPLE_STROKE |
||
(WS DEVICE TRANSFORMATION STROKE_POINTS |
: in WS_ID; : in STROKE_DEVICE_NUMBER; : out TRANSFORMATION_NUMBER; : out WC.POINT_LIST); |
|
procedure SAMPLE_VALUATOR |
||
(WS DEVICE VALUE |
: in WS_ID; : in VALUATOR_DEVICE_NUMBER; : out VALUATOR_INPUT_VALUE); |
|
procedure SAMPLE_CHOICE |
||
(WS DEVICE STATUS CHOICE_NUMBER |
: in WS_ID; : in CHOICE_DEVICE_NUMBER; : out CHOICE_STATUS, : out CHOICE_VALUE); |
|
procedure SAMPLE_PICK |
||
(WS DEVICE STATUS SEGMENT PICK |
: in WS_ID; : in PICK_DEVICE_NUMBER; : out PICK_STATUS, : out SEGMENT_NAME; : out PICK_ID); |
|
procedure SAMPLE_STRING |
||
(WS DEVICE CHAR_STRING |
: in WS_ID; : in STRING_DEVICE_NUMBER; : out INPUT_STRING); |
|
procedure AWAIT_EVENT |
||
(TIMEOUT WS CLASS DEVICE |
: in DURATION, : out WS_ID; : out INPUT_CLASS; : out EVENT_DEVICE_NUMBER); |
|
procedure FLUSH_DEVICE_EVENTS |
||
(WS CLASS DEVICE |
: in WS_ID; : in INPUT_QUEUE_CLASS; : in EVENT_OVERFLOW_DEVICE_NUMBER); |
|
procedure GET_LOCATOR |
||
(TRANSFORMATION POSITION |
: out TRANSFORMATION_NUMBER; : out WC POINT); |
|
procedure GET_STROKE |
||
(TRANSFORMATION STROKE_POINTS |
: out TRANSFORMATION_NUMBER; : out WC.POINT_LIST); |
|
procedure GET_VALUATOR |
||
(VALUE |
: out VALUATOR_INPUT_VALUE); |
|
procedure GET_CHOICE |
||
(STATUS CHOICE_NUMBER |
: out CHOICE_STATUS; : out CHOICE_VALUE); |
|
procedure GET_PICK |
||
(STATUS SEGMENT PICK |
: out PICK_STATUS; : out SEGMENT_NAME, : out PICK_ID); |
|
procedure GET_STRING |
||
(CHAR_STRING |
: out INPUT_STRING); |
|
- ФУНКЦИИ МЕТАФАЙЛА |
||
procedure WRITE_ITEM_TO_GKSM |
||
(WS ITEM |
: in WS_ID; : in GKSM_DATA_RECORD); |
|
procedure GET_ITEM_TYPE_FROM_GKSM |
||
(WS TYPE_OF_ITEM LENGTH |
: in WS_ID; : out GKSM_ITEM_TYPE; : out NATURAL); |
|
procedure READ_ITEM. FROM_GKSM |
||
(WS MAX_LENGTH ITEM |
: in WS_ID; : in NATURAL; : out GKSM_DATA_RECORD); |
|
procedure INTERPRET_ITEM |
||
(ITEM |
: in GKSM_DATA_RECORD); |
|
- СПРАВОЧНЫЕ ФУНКЦИИ |
||
procedure INQ_OPERATING_STATE_VALUE |
||
(VALUE |
: out OPERATING_STATE); |
|
procedure INQ_LEVEL_OF_GKS |
||
(ERROR_INDICATOR LEVEL |
: out ERROR_NUMBER; : out GKS.LEVEL); |
|
procedure INQ_LIST_OF_AVAILABLE_WS_TYPES |
||
(ERROR_INDICATOR TYPES |
: out ERROR_NUMBER; : out WS_TYPES.LIST_OF); |
|
procedure INQ_WS_MAX_NUMBERS |
||
(ERROR_INDICATOR MAX_OPEN_WS MAX_ACTIVE_WS MAX_SEGMENT_WS |
: out ERROR_NUMBER; : out POSITIVE; : out POSITIVE; : out POSITIVE); |
|
procedure INQ_MAX_NORMALIZATION_TRANSFORMATION_NUMBER |
||
(ERROR_INDICATOR TRANSFORMATION |
: out ERROR_NUMBER; : out TRANSFORMATION_NUMBER) |
|
procedure INQ_SET_OF_OPEN_WS |
||
(ERROR_INDICATOR WS |
: out ERROR_NUMBER; : out WS_IDS.LIST_OF); |
|
procedure INQ_SET_OF_ACTIVE_WS |
||
(ERROR_INDICATOR WS |
: out ERROR_NUMBER; : out WS_IDS.LIST_OF); |
|
procedure INQ_CURRENT.PRIMITIVE_ATTRIBUTE_VALUES |
||
(ERROR_INDICATOR ATTRIBUTES |
: out ERROR_NUMBER; : out PRIMITIVE_ATTRIBUTE_VALUES) |
|
procedure INQ_POLYLINE_INDEX |
||
(ERROR_INDICATOR INDEX |
: out ERROR_NUMBER; : out POLYLINE_INDEX); |
|
procedure INQ_POLYMARKER_INDEX |
||
(ERROR_INDICATOR INDEX |
: out ERROR_NUMBER; : out POLYMARKER_INDEX); |
|
procedure INQ_TEXT_INDEX |
||
(ERROR_INDICATOR INDEX |
: out ERROR_NUMBER; : out TEXT_INDEX); |
|
procedure INQ_CHAR_HEIGHT |
||
(ERROR_INDICATOR HEIGHT |
: out ERROR_NUMBER; : out WC.MAGNITUDE); |
|
procedure INQ_CHAR_UP_VECTOR |
||
(ERROR_INDICATOR VECTOR |
: out ERROR_NUMBER; : out WC.VECTOR); |
|
procedure INQ_CHAR_WIDTH |
||
(ERROR_INDICATOR WIDTH |
: out ERROR_NUMBER; : out WC.MAGNITUDE); |
|
procedure INQ_CHAR_BASE_VECTOR |
||
(ERROR_INDICATOR VECTOR |
: out ERROR_NUMBER; : out WC.VECTOR); |
|
procedure INQ_TEXT_PATH |
||
(ERROR_INDICATOR PATH |
: out ERROR_NUMBER; : out TEXT_PATH); |
|
procedure INQ_TEXT_ALIGNMENT |
||
(ERROR_INDICATOR ALIGNMENT |
: out ERROR_NUMBER; : out TEXT_ALIGNMENT); |
|
procedure INQ_FILL_AREA_INDEX |
||
(ERROR_INDICATOR INDEX |
: out ERROR_NUMBER; : out FILL_AREA_INDEX); |
|
procedure INQ_PATTERN_WIDTH_VECTOR |
||
(ERROR_INDICATOR WIDTH |
: out ERROR_NUMBER; : out WC.VECTOR); |
|
procedure INQ_PATTERN_HEIGHT_VECTOR |
||
(ERROR_INDICATOR VECTOR |
: out ERROR_NUMBER; : out WC.VECTOR); |
|
procedure INQ_PATTERN_REFERENCE_POINT |
||
(ERROR_INDICATOR REFERENCE_POINT |
: out ERROR_NUMBER; : out WC.POINT); |
|
procedure INQ_CURRENT_PICK_ID_VALUE |
||
(ERROR_INDICATOR PICK |
: out ERROR_NUMBER; : out PICK_ID); |
|
procedure INQ_CURRENT_INDIVIDUAL_ATTRIBUTE_VALUES |
||
(ERROR_INDICATOR ATTRIBUTES |
: out ERROR_NUMBER; : out INDIVIDUAL_ATTRIBUTE_VALUES); |
|
procedure INQ.LINETYPE |
||
(ERROR_INDICATOR TYPE_OF_LINE |
: out ERROR_NUMBER; : out LINETYPE); |
|
procedure INQ_LINEWIDTH_SCALE_FACT0R |
||
(ERROR_INDICATOR WIDTH |
: out ERROR_NUMBER; : out LINEWIDTH); |
|
procedure INQ_POLYLINE_COLOUR_INDEX |
||
(ERROR_INDICATOR LINE_COLOUR |
: out ERROR_NUMBER; : out COLOUR_INDEX); |
|
procedure INQ_POLYMARKER_TYPE |
||
(ERROR_INDICATOR TYPE_OF_MARKER |
: out ERROR_NUMBER; : out MARKER_TYPE); |
|
procedure INQ_POLYMARKER_SIZE_SCALE_FACTOR |
||
(ERROR_INDICATOR SIZE |
: out ERROR_NUMBER; : out MARKER_SIZE); |
|
procedure INQ_POLYMARKER_COLOUR_INDEX |
||
(ERROR_INDICATOR MARKER_COLOUR |
: out ERROR_NUMBER; : out COLOUR_INDEX); |
|
procedure INQ_TEXT_FONT_AND_PRECISION |
||
(ERROR_INDICATOR FONT_PRECISION |
: out FRROR_NUMBER; : out TEXT_FONT_PRECISION); |
|
procedure INQ_CHAR_FXPANSION_FACTOR |
||
(ERROR_INDICATOR EXPANSION |
: out ERROR_NUMBER; : out CHAR_EXPANSION); |
|
procedure INQ_CHAR_SPASING |
||
(ERROR_INDICATOR SPACING |
: out ERROR_NUMBER; : out CHAR_SPACING); |
|
procedure INQ_TEXT_COLOUR_INDEX |
||
(ERROR_INDICATOR TEXT_COLOUR |
: out ERROR_NUMBER; : out COLOUR_INDEX); |
|
procedure INQ_FILL_AREA_INTERIOR_STYLE |
||
(ERROR_INDICATOR INTERIOR |
: out ERROR_NUMBER; : out INTERIOR_STYLE); |
|
procedure INQ_FILL_AREA_STYLE_INDEX |
||
(ERROR_INDICATOR STYLE |
: out ERROR_NUMBER; : out STYLE_INDEX); |
|
procedure INQ_FILL_AREA_COLOUR_INDEX |
||
(ERROR_INDICATOR FILL_AREA_COLOUR |
: out ERROR_NUMBER; : out COLOUR_INDEX); |
|
procedure INQ_LIST_OF_ASF |
||
(ERROR_INDICATOR LIST |
: out FRROR_NUMBER; : out ASF_LIST); |
|
procedure INQ_CURRENT_NORMALIZATION_TRANSFORMATION_NUMBER |
||
(ERROR_INDICATOR TRANSFORMATION |
: out ERROR_NUMBER; : out TRANSFORMATION_NUMBER); |
|
procedure INQ_LIST_OF_NORMALIZATION_TRANSFORMATION_NUMBERS |
||
(ERROR_INDICATOR LIST |
: out ERROR_NUMBER; : out TRANSFORMATION_PRIORITY_LIST); |
|
procedure INQ_NORMALIZATION_TRANSFORMATION |
||
(TRANSFORMATION ERROR_INDICATOR WINDOW_LIMITS VIEWPORT_LIMITS |
: in TRANSFORMATION_NUMBER; : out ERROR_NUMBER; : out WC RESTANGLE_LIMITS; : out NDC RECTENGLE_LIMITS); |
|
procedure INQ_CLIPPJNG |
||
(ERROR_INDICATOR CLIPPING CLIPPING_RECTANGLE_LIMITS |
: out ERROR_NUMBER; : out CLIPPING_INDICATOR; : out NDC RECTANGLE_LIMITS); |
|
procedure INQ_NAME_OF_OPEN_SEGMENT |
||
(ERROR_INDICATOR SEGMENT |
: out ERROR_NUMBER; : out SEGMENT_NAME); |
|
procedure INQ_SET_OF_SEGMENT_NAMES_IN_USE |
||
(ERROR_INDICATOR SEGMENTS |
: out ERROR_NUMBER; : out SEGMENT_NAMES LIST_OF); |
|
procedure INQ_MORE_SIMULTANEOUS_EVENTS |
||
(ERROR_INDICATOR EVENTS |
: out ERROR_NUMBER; : out MORE_EVENTS); |
|
procedure INQ_WS_CONNECTION_AND_TYPE |
||
(WS ERROR_INDICATOR CONNECTION TYPE_OF_WS |
: in WS_ID; : out ERROR_NUMBER; : out VARIABLE_CONNECTION_ID : out WS_TYPE); |
|
procedure INQ_WS_STATE |
||
(WS ERROR_INDICATOR STATE |
: in WS_ID; : out ERROR_NUMBER; : out WS_STATE) |
|
procedure INQ_WS_DEFERRAL_AND_UPDATE_STATES |
||
(WS ERROR_INDICATOR DEFERRAL REGENERATION DISPLAY FRAME_ACTION |
: in WS_ID; : out ERROR_NUMBER; : out DEFERRAL_MODE; : out REGENERATION_MODE; : out DISPLAY_SURFASE_EMPTY; : out NEW_FRAME_NECESSARY); |
|
procedure INQ_LIST_OF_POLYLINE_INDICES |
||
(WS ERROR_INDICATOR INDICES |
: in WS_ID; : out ERROR_NUMBER; : out POLYLINE_INDICES LIST_OF); |
|
procedure INQ_POLYLINE_REPRESENTATION |
||
(WS INDEX RETURNED_VALUES ERROR_INDICATOR TYPE_OF_LINE WIDTH LINE_COLOUR |
: in WS_ID; : in POLYLINE_INDEX, : in RETURN_VALUE_TYPE; : out ERROR_NUMBER; : out LINETYPE; : out LINEWIDTH; : out COLOUR_INDEX); |
|
procedure INQ_LIST_OF_POLYMARKER_INDICES |
||
(WS ERROR_INDICATOR INDICES |
: in WS_ID; : out ERROR_NUMBER; : out POLYMARKER_INDICES.LIST_OF); |
|
procedure INQ_POLYMARKER_REPRESENTATION |
||
(WS INDEX RETURNED_VALUES ERROR_INDICATOR TYPE_OF_MARKER SIZE MARKER_COLOUR |
: in WS_ID; : in POLYMARKER_INDEX; : in RETURN_VALUE_TYPE; : out ERROR_NUMBER; : out MARKER_TYPE; : out MARKER_SIZE; : out COLOUR_INDEX); |
|
procedure INQ_LIST_OF_TEXT_INDICES |
||
(WS ERROR_INDICATOR INDICES |
: in WS_ID; : out ERROR_NUMBER; : out TEXT_INDICES.LIST_OF); |
|
procedure INQ_TEXT_REPRESENTATION |
||
(WS INDEX RETURNED_VALUES ERROR_INDICATOR FONT_PRECISION EXPANSION SPACING TEXT_COLOUR |
: in WS_ID; : in TEXT_INDEX; : in RETURN_VALUE_TYPE; : out ERROR_NUMBER; : out TEXT_FONT_PRECISION; : out CHAR_EXPANSION; : out CHAR_SPACING : out COLOUR_INDEX); |
|
procedure INQ_TEXT_EXTENT |
||
(WS POSITION CHAR_STRING ERROR_INDICATOR CONCATENATION_POINT TEXT_EXTENT |
: in WS_ID; : in WC.POINT; : in STRING; : out ERROR_NUMBER; : out WC.POINT; : out TEXT_EXTENT_PARALLELOGRAM); |
|
procedure INQ_LIST_OF_FILL_AREA_INDICES |
||
(WS ERROR_INDICATOR INDICES |
: in WS_ID; : out ERROR_NUMBER; : out FILL_AREA_INDICES.LIST_OF); |
|
procedure INQ_FILL_AREA_REPRESENTATION |
||
(WS INDEX RETURNED_VALUES ERROR_INDICATOR INTERIOR STYLE FILL_AREA_COLOUR |
: in WS_ID; : in FILL_AREA_INDEX; : in RETURN_VALUE_TYPE; : out ERROR_NUMBER; : out INTERIOR_STYLE; : out STYLE_INDEX; : out COLOUR_INDEX); |
|
procedure INQ_LIST_OF_PATTERN |
||
(WS ERROR_INDICATOR INDICES |
: in WS_ID; : out ERROR_NUMBER; : out PATTERN_INDICES.LIST_OF); |
|
procedure INQ_PATTERN_REPRESENTATION |
||
(WS INDEX RETURNED_VALUES ERROR_INDICATOR PATTERN |
: in WS_ID; : in PATTERN_INDEX; : in RETURN_VALUE_TYPE; : out ERROR_NUMBER; : out VARIABLE_COLOUR_MATRIX); |
|
procedure INQ_LIST_OF_COLOUR_INDICES |
||
(WS ERROR_INDICATOR INDICES |
: in WS_ID; : out ERROR_NUMBER; : out COLOUR_INDICES.LIST_OF); |
|
procedure INQ_COLOUR_REPRESENTATION |
||
(WS INDEX RETURNED_VALUES ERROR_INDICATOR RGB_COLOUR |
: in WS_ID; : in COLOUR_INDEX; : in RETURN_VALUE_TYPE; : out ERROR_NUMBER; : out COLOUR_REPRESENTATION); |
|
procedure INQ_WS_TRANSFORMATION |
||
(WS ERROR_INDICATOR UPDATE REQUESTED_WINDOW CURRENT_WINDOW REQUESTED_VIEWPORT CURRENT_VIEWPORT |
: in WS_ID; : out ERROR_NUMBER; : out UPDATE_STATE; : out NDC.RECTANGLE_LIMITS; : out NDC.RECTANOLE_LIMITS; : out DC.RECTANGLE_LIMITS; : out DC.RECTANGLE_LIMITS); |
|
procedure INQ_SET_OF_SEGMENT_NAMES_ON_WS |
||
(WS ERROR_INDICATOR SEGMENTS |
: in WS_ID; : out ERROR_NUMBER; : out SEGMENT_NAMES.LIST_OF; |
|
procedure INQ_LOCATOR_DEVICE_STATE |
||
(WS DEVICE RETURNED_VALUES ERROR_INDICATOR MODE SWITCH INITIAL_TRANSFORMATION INITIAL_POSITION ECHO_AREA DATA_RECORD |
: in WS_ID; : in LOCATOR_DEVICE_NUMBER; : in RETURN_VALUE_TYPE; : out ERROR_NUMBER; : out OPERATING_MODE; : out ECHO_SWITCH; : out TRANSFORMATION_NUMBER; : out WC.POINT; : out DC.RECTANGLE_LIMITS; : out LOCATOR_DATA_RECORD); |
|
procedure INQ_STROKE_DEVICE_STATE |
||
(WS DEVICE RETURNED_VALUES ERROR_INDICATOR MODE SWITCH INITIAL_TRANSFORMATION INITIAL_STROKE_POINTS ECHO_AREA DATA_RECORD |
: in WS_ID; : in STROKE_DEVICE_NUMBER; : in RETURN_VALUE_TYPE; : out ERROR_NUMBER; : out OPERATING_MODE; : out ECHO_SWITCH; : out TRANSFORMATION_NUMBER; : out WC.POINT_LIST; : out DC.RECTANGLE_LIMITS; : out STROKE_DATA_RECORD); |
|
procedure INQ_VALUATOR_DEVICE_STATE |
||
(WS DEVICE ERROR_INDICATOR MODE SWITCH INITIAL_VALUE ECHO_AREA DATA_RECORD |
: in WS_ID; : in VALUATOR_DEVICE_NUMBER; : out ERROR_NUMBER; : out OPERATING_MODE; : out ECHO_SWITCH; : out VALUATOR_INPUT_VALUE; : out DC.RECTANGLE_LIMITS; : out VALUATOR_DATA_RECORD); |
|
procedure INQ_CHOICE_DEVICE_STATE |
||
(WS DEVICE ERROR_INDICATOR MODE SWITCH INITIAL_STATUS INITIAL_CHOICE ECHO_AREA DATA_RECORD |
: in WS_ID; : in CHOICE_DEVICE_NUMBER; : out ERROR_NUMBER; : out OPERATING_MODE; : out ECHO_SWITCH; : out CHOICE_STATUS; : out CHOICE_VALUE; : out DC.RECTANGLE_LIMITS; : out CHOICE_DATA_RECORD); |
|
procedure INQ_PICK_DEVICE_STATE |
||
(WS DEVICE RETURNED_VALUES ERROR_INDICATOR MODE SWITCH INITIAL_STATUS INITIAL_SEGMENT INITIAL_PICK ECHO_AREA DATA_RECORD |
: in WS_ID; : in PICK_DEVICE_NUMBER; : in RETURN_VALUE_TYPE; : out ERROR_NUMBER; : out OPERATING_MODE; : out ECHO_SWITCH; : out PICK_STATUS; : out SEGMENT_NAME; : out PICK_ID; : out DC.RECTANGLE_LIMITS; : out PICK_DATA_RECORD); |
|
procedure INQ_STRING_DEVICE_STATE |
||
(WS DEVICE ERROR_INDICATOR MODE SWITCH INITIAL_STRING ECHO_AREA DATA_RECORD |
: in WS_ID; : in STRING_DEVICE_NUMBER; : out ERROR_NUMBER; : out OPERATING_MODE; : out ECHO_SWITCH; : out INPUT_STRING; : out DC.RECTANGLE_LIMITS; : out STRING_DATA_RECORD); |
|
procedure INQ_WS_CATEGORY |
||
(TYPE_OF_WS ERROR_INDICATOR CATEGORY |
: in WS_TYPE; : out ERROR_NUMBER; : out WS_CATEGORY); |
|
procedure INQ_WS_CLASSIFICATION |
||
(TYPE_OF_WS ERROR_INDICATOR CLASS |
: in WS_TYPE; : out ERROR_NUMBER; : out DISPLAY_CLASS); |
|
procedure INQ_DISPLAY_SPACE_SIZE |
||
(TYPE_OF_WS ERROR_INDICATOR UNITS MAX_DC_SIZE MAX_RASTER_UNIT_SIZE |
: in WS_TYPE; : out ERROR_NUMBER; : out DC_UNITS; : out DC.SIZE; : out RASTER_UNIT_SIZE); |
|
procedure INQ_DYNAMIC_MODIFICATION_OF_WS_ATTRIBUTES |
||
(TYPE_OF_WS ERROR_INDICATOR POLYLINE_REPRESENTATION POLYMARKER_REPRESENTATION TEXT_REPRESENTATION FILL_AREA_REPRESENTATION PATTERN_REPRESENTATION COLOUR_REPRESENTATION TRANSFORMATION |
: in WS_TYPE; : out ERROR_NUMBER; : out DYNAMIC_MODIFICATION; : out DYNAMIC_MODIFICATION; : out DYNAMIC_MODIFICATION; : out DYNAMIC_MODIFICATION; : out DYNAMIC_MODIFICATION; : out DYNAMIC_MODIFICATION; : out DYNAMIC_MODIFICATION); |
|
procedure INQ_DEPAULT_DEFERRAL_STATE_VALUES |
||
(TYPE_OF_WS ERROR_INDICATOR DEFERRAL REGENERATION |
: in WS_TYPE; : out ERROR_NUMBER; : out DEFERRAL_MODE; : out REGENERATION_MODE); |
|
procedure INQ_POLYLINE_FACILITIES |
||
(TYPE_OF_WS ERROR_INDICATOR LIST_OF_TYPES NUMBER_OF_WIDTHS NOMINAL_WIDTH RANGE_OF_WIDTHS NUMBER_OF_INDICES |
: in WS_TYPE; : out ERROR_NUMBER; : out LINETYPES.LIST_OF; : out NATURAL; : out DC.MAGNITUDE; : out DC.RANGE_OF_MAGNITUDES; : out NATURAL); |
|
procedure INQ_PREDEFINED_POLYLINE_REPRESENTATION |
||
(TYPE_OF_WS INDEX ERROR_INDICATOR TYPE_OF_LINE WIDTH LINE_COLOUR |
: in WS_TYPE; : in POLYLINE_INDEX; : out ERROR_NUMBER; : out LINETYPE; : out LINEWIDTH; : out COLOUR_INDEX); |
|
procedure INQ_POLYMARKER_FACILITIES |
||
(TYPE_OF_WS ERROR_INDICATOR LIST_OF_TYPES NUMBER_OF_SIZES NOMINAL_SIZE RANGE_OF_SIZES NUMBER_OF_INDICES |
: in WS_TYPE; : out ERROR_NUMBER; : out MARKER_TYPES.LIST_OF; : out NATURAL; : out DC.MAGNITUDE; : out DC.RANGE_OF_MAGNITUDES; : out NATURAL); |
|
procedure INQ_PREDEFINED_POLYMARKER_REPRESENTATION |
||
(TYPE_OF_WS INDEX ERROR_INDICATOR TYPE_OF_MARKER SIZE MARKER_COLOUR |
: in WS_TYPE; : in POLYMARKER_INDEX; : out ERROR_NUMBER; : out MARKER_TYPE; : out MARKER_SIZE; : out COLOUR_INDEX); |
|
procedure INQ_TEXT_FACILITIES |
||
(TYPE_OF_WS ERROR_INDICATOR LIST_OF_FONT_PRECISION_PAIRS NUMBER_OF_HEIGHTS RANGE_OF_HEIGHTS NUMBER_OF_EXPANSIONS EXPANSION_RANGE NUMBER_OF_INDICES |
: in WS_TYPE; : out ERROR_NUMBER; : out TEXT_FONT_PRECISION.LIST_OF; : out NATURAL; : out DC.RANGE_OF_MAGNITUDES; : out NATURAL; : out RANGE_OF_EXPANSIONS; : out NATURAL); |
|
procedure INQ_PREDEFINED_TEXT_REPRESENTATION |
||
(TYPE_OF_WS INDEX ERROR_INDICATOR FONT_PRECISION EXPANSION SPACING TEXT_COLOUR |
: in WS_TYPE; : in TEXT_INDEX; : out ERROR_NUMBER; : out TEXT_FONT_PRECISION; : out CHAR_EXPANSION; : out CHAR_SPACING; : out COLOUR_INDEX); |
|
procedure INQ_FILL_AREA_FACILITIES |
||
(TYPE_OF_WS ERROR_INDICATOR LIST_OF_INTERIOR_STYLES LIST_OF_HATCH_STYLES NUMBER_OF_INDICES |
: in WS_TYPE; : out ERROR_NUMBER; : out INTERIOR_STYLES.LIST_OF; : out HATCH_STYLE S.LAST_OF; : out NATURAL); |
|
procedure INQ_PREDEFINED_FILL_AREA_ REPRESENTATION |
||
(TYPE_OF_WS INDEX ERROR_INDICATOR INTERIOR STYLE FILL_AREA_COLOUR |
: in WS_TYPE; : in FILL_AREA_INDEX; : out ERROR_NUMBER; : out INTERIOR_STYLE; : out STYLE_INDEX; : out COLOUR_INDEX); |
|
procedure INQ_PATTERN_FACILITIES |
||
(TYPE_OF_WS ERROR_INDICATOR NUMBER_OF_INDICES |
: in WS_TYPE; : out ERROR_NUMBER; : out NATURAL); |
|
procedure INQ_PREDEFINED_PATTERN_REPRESENTATION |
||
(TYPE_OF_WS INDEX ERROR_INDICATOR PATTERN |
: in WS_TYPE; : in PATTERN_INDEX; : out ERROR_NUMBER; : out VARIABLE_COLOUR_MATRIX); |
|
procedure INQ_COLOUR_FACILITIES |
||
(TYPE_OF_WS ERROR_INDICATOR NUMBER_OF_COLOURS AVAILABLE_COLOUR NUMBER_OF_COLOUR_INDICES |
: in WS_TYPE; : out ERROR_NUMBER; ; out NATURAL; : out COLOUR_AVAILABLE; : out NATURAL); |
|
procedure INQ_PREDEFINED_COLOUR_REPRESENTATION |
||
(TYPE_OF_WS INDEX ERROR_INDICATOR RGB_COLOUR |
: in WS_TYPE; : in COLOUR_INDEX; : out ERROR_NUMBER; : out COLOUR_REPRESENTATION); |
|
procedure INQ_LIST_OF_AVAILABLE_GDP |
||
(TYPE_OF_WS ERROR_INDICATOR LIST_OF_GDP |
: in WS_TYPE; : out ERROR_NUMBER; : out GDP_IDS.LIST_OF); |
|
procedure INQ_GDP |
||
(TYPE_OF_WS GDP ERROR_INDICATOR LIST_OF_ATTRIBUTES_USED |
: in WS_TYPE; : in GDP_ID; : out ERROR_NUMBER; : out ATTRIBUTES_USED.LIST_OF); |
|
procedure ING_MAX_LENGTH_OF_WS_STATE_TABLES |
||
(TYPE_OF_WS ERROR_INDICATOR MAX_POLYLINE_ENTRIES MAX_POLYMARKER_ENTRIES MAX_TEXT_ENTRIES MAX_FILL_AREA_ENTRIES MAX_PATTERN_INDICES MAX_COLOUR_INDICES |
: in WS_TYPE; : out ERROR_NUMBER; : out NATURAL; : out NATURAL; : out NATURAL; : out NATURAL; : out NATURAL; : out NATURAL); |
|
procedure INQ_NUMBER_OF_SEGMENT_PRIORITIES_SUPPORTED |
||
(TYPE_OF_WS ERROR_INDICATOR NUMBER_OF_PRIORITIES |
: in WS_TYPE; : out ERROR_NUMBER; : out NATURAL); |
|
procedure INQ_DYNAMIC_MODIFICATION_OF_SEGMENT_ATTRIBUTES |
||
(TYPE_OF_WS ERROR_INDICATOR TRANSFORMATION VISIBLE_TO_INVISIBLE INVISIBLE_TO_VISIBLE HIGHLIGHTING PRIORITY ADDING_PRIMITIVES DELETION_VISIBLE |
: in WS_TYPE; : out ERROR_NUMBER; : out DYNAMIC_MODIFICATION; : out DYNAMIC_MODIFICATION; : out DYNAMIC_MODIFICATION; : out DYNAMIC_MODIFICATION; : out DYNAMIC_MODIFICATION; : out DYNAMIC_MODIFICATION; : out DYNAMIC_MODIFICATION); |
|
procedure INQ_NUMBER_OF_AVAILABLE_LOGICAL_INPUT_DEVICES |
||
(TYPE_OF_WS ERROR_INDICATOR LOCATOR STROKE VALUATOR CHOICE PICK STRING |
: in WS_TYPE; : out ERROR_NUMBER; : out NATURAL; : out NATURAL; : out NATURAL; : out NATURAL; : out NATURAL; : out NATURAL); |
|
procedure INQ_DEFAULT_LOCATOR_DEVICE_DATA |
||
(TYPE_OF_WS DEVICE ERROR_INDICATOR INITIAL_POSITION LIST_OF_PROMPT_ECHO_TYPES_ ECHO_AREA DATA_RECORD |
: in WS_TYPE; : in LOCATOR_DEVICE_NUMBER; : out ERROR_NUMBER; : out WC.POINT; : out LOCATOR_PROMPT_ECHO_TYPES.LIST_OF; : out DC.RESTANGLE_LIMITS; : out LOCATOR_DATA_RECORD); |
|
procedure INQ_DEFAULT_STROKE_DEVICE_DATA |
||
(TYPE_OF_WS DEVICE ERROR_INDICATOR INITIAL_VALUE LIST_OF_PROMPT_ECHO_TYPES_ ECHO_AREA DATA_RECORD |
: in WS_TYPE; : in STROKE_DEVICE_NUMBER; : out ERROR_NUM BER; : out NATURAL; : out STROKE_PROMPT_ECHO_TYPES.LIST_OF; : out DC.RESTANGLE_LIMITS; : out STROKE_DATA_RECORD); |
|
procedure INQ_DEFAULT_VALUATOR_DEVICE_DATA |
||
(TYPE_OF_WS DEVICE ERROR_INDICATOR MAX_BUFFER_SIZE LIST_OF_PROMPT_ECHO_TYPES_ ECHO_AREA DATA_RECORD |
: in WS_TYPE; : in VALUATOR_DEVICE_NUMBER; : out ERROR_NUMBER; : out VALUATOR_INPUT_VALUE; : out VALUATOR_PROMPT_ECHO_TYPES.LIST_OF; : out DC.RECTANGLE_LIMITS; : out VALUATOR_DATA_RECORD); |
|
procedure INQ_DEFAULT_CHOICE_DEVICE_DATA |
||
(TYPE_OF_WS DEVICE ERROR_INDICATOR MAX_CHOICES LIST_OF_PROMPT_ECHO_TYPES_ ECHO_AREA DATA_RECORD |
: in WS_TYPE; : in CHOICE_DEVICE_NUMBER; : out ERROR_NUMBER; : out CHOICE_VALUE; : out CHOICE_PROMPT_ECHO_TYPES.LIST_OF; : out DC.RESTANGLE_LIMITS; : out CHOICE_DATA_RECORD); |
|
procedure INQ_DEFAULT_PICK_DEVICE_DATA |
||
(TYPE_OF_WS DEVICE ERROR_INDICATOR LIST_OF_PROMPT_ECHO_TYPES_ ECHO_AREA DATA_RECORD |
: in WS_TYPE; : in PICK_DEVICE_NUMBER; : out ERROR_NUMBER; : out PICK_PROMPT_ECHO_TYPES.LIST_OF; : out DC.RECTANQLE_LIMITS; : out PICK_DATA_RECORD); |
|
procedure INQ_DEFAULT_STRING_DEVICE_DATA |
||
(TYPE_OF_WS DEVICE ERROR_INDICATOR MAX_STRING_BUFFER_SIZE LIST_OF_PROMPT_ECHO_TYPES_ ECHO_AREA DATA_RECORD |
: in WS_TYPE; : in STRING_DEVICE_NUMBER; : out ERROR_NUMBER; : out NATURAL; : out STRING_PROMPT_ECHO_TYPES_TYPES.LIST_OF; : out DC_RECTANGLE_LIMITS; : out STRING_DATA_RECORD); |
|
procedure INQ_SET_OF_ASSOCIATED_WS |
||
(SEGMENT ERROR_INDICATOR LIST_OF_WS |
: in SEGMENT_NAME; : out ERROR_NUMBER; : out WS_IDS.LIST_OF); |
|
procedure INQ_SEGMENT_ATTRIBUTES |
||
(SEGMENT ERROR_INDICATOR TRANSFORMATION VISIBILITY HIGHLIGHTING PRIORITY DETECTABILITY |
: in SEGMENT_NAME; : out ERROR_NUMBER; : out TRANSFORMATION_MATRIX; : out SEGMENT_VISIBILITY; : out SEGMENT_HIGHLIGHTING; : out SEGMENT_PRIORITY; : out SEGMENT_DETECTABILITY); |
|
procedure INQ_PIXEL_ARRAY_DIMENSIONS |
||
(WS CORNER_1_1 CORNER_DX_DY ERROR_INDICATOR DIMENSIONS |
: in WS_ID; : in WC.POINT; : in WC.POINT; : out ERROR_NUMBER; : out RASTER_UNIT_SIZE); |
|
procedure INQ_PIXEL_ARRAY |
||
(WS CORNER DX DY ERROR_INDICATOR INVALID_VALUES PIXEL_ARRAY |
: in WS_ID; : in WC.POINT; : in RASTER_UNITS; : in RASTER_UNITS; : out ERROR_NUMBER; : out INVALID_VALUES_INDICATOR; : out VARIABLE_PIXEL_COLOUR_MATRIX) |
|
procedure INQ_PIXEL |
||
(WS POINT ERROR_INDICATOR PIXEL_COLOUR |
: in WS_ID; : in WC.POINT; : out ERROR_NUMBER; : out PIXEL_COLOUR_INDEX); |
|
procedure INQ_INPUT_QUEUE_OVERFLOW |
||
(ERROR_INDICATOR WS CLASS DEVICE |
: out ERROR_NUMBER; : out WC_ID; : out INPUT_QUEUE_CLASS; : out EVENT_OVERFLOW_DEVICE_NUMBER); |
|
- ВСПОМОГАТЕЛЬНЫЕ ФУНКЦИИ |
||
procedure EVALUATE_TRANSFORMATION_MATRIX |
||
(FIXED_POINT SHIFT_VECTOR ROTATION_ANGLE SCALE_FACTORS TRANSFORMATION |
: in WC.POINT; : in WC.VECTOR; : in RADIANS; : in TRANSFORMATION_FACTOR; : in TRANSFORMATION_MATRIX); |
|
procedure EVALUATE_TRANSFORMATION_MATRIX |
||
(FIXED_POINT SHIFT_VECTOR ROTATION_ANGLE SCALE_FACTORS TRANSFORMATION |
: in NDC.POINT; : in NDC.VECTOR; : in RADIANS; : in TRANSFORMATION_FACTOR; : out TRANSFORMATION_MATRIX); |
|
procedure ACCUMULATE_TRANSFORMATION_MATRIX |
||
(SOURCE_TRANSFORMATION FIXED_POINT SHIFT_VECTOR ROTATION_ANGLE SCALE_FACTORS RESULT_TRANSFORMATION |
: in TRANSFORMATION_MATRIX); : in WC.POINT; : in WC.VECTOR; : in RADIANS; : in TRANSFORMATION_FACTOR; : out TRANSFORMATION_MATRIX); |
|
procedure ACCUMULATE_TRANSFORMATION_MATRIX |
||
(SOURCE_TRANSFORMATION FIXED_POINT SHIFT_VECTOR ROTATION_ANGLE SCALE_FACTORS RESULT_TRANSFORMATION |
: in TRANSFORMATION_MATRIX); : in NDC.POINT; : in NDC.VECTOR; : in RADIANS; : in TRANSFORMATION_FACTOR; : out TRANSFORMATION_MATRIX); |
|
- ФУНКЦИИ ОБРАБОТКИ ОШИБОК |
||
procedure ERROR_LOGGING |
||
(ERROR_INDICATOR GKS_FUNCTION ERROR_FILE |
: in ERROR_NUMBER; : in STRING; : in STRING : = DEFAULT_ERROR_FILE); |
|
procedure EMERGENCY_CLOSE_GKS; - Утилиты функций метафайла - Элементы записей метафайла могут содержать списки указателей, строки символов, матрицы индексов цветов, данные GDP и ESC. Длина записи зависит от числа элементов данных. ЯГС определяет, что формат зависит от реализации. - Тип элемента записи данных должен быть личным, позволяющим манипулировать содержимым записей, чтобы повысить эффективность их обработки. - Прикладной программист должен быть способен записывать не графические данные в метафайл. Этого можно достигнуть, разрешив вывод литер. Численные данные должны быть преобразованы в строки прикладным программистом до вызова процедуры BUILD_NEW_GKSM_DATA_RECORD. |
||
procedure BUILD_NEW_GKSM_DATA_RECORD |
||
(TYPE_OF_ITEM ITEM_DATA ITEM |
: in GKSM_ITEM_TYPE; : in STRING; : out GKSM_DATA_RECORD); |
|
function ITEM_DATA_RECORD_STRING (ITEM : in GKSM_DATA_RECORD) return STRING; private |
||
- Следующие типы определяют спецификации для личных записей данных. |
||
type GKSM_DATA_RECORD (TYPE_OF_ITEM LENGTH record null; end record; |
: GKSM_ITEM_TYPE : = 0;
: NATURAL : = 0) is
|
|
type CHOICE_DATA_RECORD (PROMPT_ECHO_TYPE: CHOICE_PROMPT_ECHO_TYPE : = DEFAULT_CHOICE is record null; end record; |
||
type LOCATOR_DATA_RECORD (PROMPT_ECHO_TYPE: LOCATOR_PROMPT_ECHO_TYPE : = DEFAULT_LOCATOR) is record null; end record; |
||
type STRING_DATA_RECORD (PROMPT_ECHO_TYPE: STRING_PROMPT_ECHO_TYPE : = DEFAULT_STRING) is record null; end record; |
||
type STROKE_DATA_RECORD (PROMPT_ECHO_TYPE: STROKE_PROMPT_ECHO_TYPE : = DEFAULT_STROKE) is record null; end record; |
||
type VALUATOR_DATA_RECORD (PROMPT_ECHO_TYPE: VALUATOR_PROMPT_ECHO_TYPE : = DEFAULT_VALUATOR) is record null; end record; |
||
type PICK_DATA_RECORD (PROMPT_ECHO_TYPE: PICK_PROMPT_ECHO_TYPE : = DEFAULT_PICK) is record null; end record; end GKS; |
||
- ФУНКЦИЯ ОБРАБОТКИ ОШИБОК - Функция обработки ошибок является отдельным библиотечным блоком и не компилируется как часть пакета ЯГС. |
||
procedure ERROR_HANDLING |
||
(ERROR_INDICATOR GKS_FUNCTION ERROR_FILE |
: in ERROR_NUMBER; : in STRING; : in STRING : = DEFAULT_ERROR_FILE); |
|
with GKS_TYPES;
use GKS_TYPES;
package GKS_GDP is
- Пакет ОПВ является отдельным библиотечным блоком и не компилируется как часть ЯГС.
ОПВ связывается с отдельными процедурами, реализованными для каждого обобщенного примитива вывода, каждая со своим собственным интерфейсом. Имена ОПВ и параметры регистрируют в Международном журнале графических записей ИСО, который ведется органом регистрации.
Каждая незарегистрированная процедура ОПВ, поддерживаемая реализацией, будут содержаться в отдельном библиотечном пакете. При этом используют следующие соглашения по наименованию:
package GKS_UGDP_ < имя процедуры ОПВ > is
procedure GDP;
- Код на языке Ада для процедуры ОПВ;
- Единственным именем процедуры, используемым в пакете, будет ОПВ.
- Для того, чтобы поддержать возможность записывать не реализованные ОПВ в метафайл, могут быть привлечены зарегистрированные ОПВ в форме процедуры GENERALIZED_GDP, которая имеет спецификацию, показанную ниже:
type GDP_FLOAT is digits PRECISION;
type GDP_INTEGER_ARRAY is array (SMALL_NATURAL range < >) of INTEGER;
type GDP_FLOAT_ARRAY is array (SMALL_NATURAL range < >) of GDP FLOAT;
type GDP_STRING_ARRAY is array (SMALL_NATURAL range < >) of STRING (1 . .80);
type GDP_DATA_RECORD |
(NUM_OF_INTEGERS : SMALL_NATURAL : = 0; NUM_OF_REALS : SMALL_NATURAL ; = 0; NUM_OF_STRINGS : SMALL_NATURAL : = 0) is record |
INTEGER_ARRAY : GDP_INTEGER_ARRAY (1 . . NUM_OF_INTEGERS); REAL_ARRAY : GDP_FLOAT_ARRAY (1 . . NUM_OF_REALS); GDP_STRINGS : GDP_STRING_ARRAY (1 . . NUM_OF_STRINGS); end record; |
|
procedure GENERALIZED_GDP |
|
(GDP_NAME POINT GDP_DATA |
: in GDP_ID; : in WC.POINT_LIST; : out GDP_DATA_RECORD); |
end GKS_GDP; with GKS_TYPES; use GKS_TUPES; package GKS_ESCAPE is |
- Пакет ESCAPE является отдельным библиотечным блоком и не компилируется как часть ЯГС.
- Функции расширения связываются в Аде как отдельные процедуры для каждого уникального типа расширения, предоставляемого реализацией, каждая со списком формальных параметров, соответствующим реализованной процедуре. Имена ESCAPE и параметры регистрируют в Международном журнале графических записей ИСО, который ведется органом регистрации.
- Каждая незарегистрированная процедура ESCAPE будет отдельным библиотечным пакетом, использующим следующие соглашения по наименованию:
package GKS_UESC_ <имя процедуры ESCAPE> is procedure ESC;
-- Код на языке Ада процедуры UESC;
end GKS_UESC <имя процедуры ESCAPE>;
-- Единственным именем процедуры, используемым в пакете, является ESC.
-- Для того чтобы поддержать возможность записывать не реализованные ESCAPE в метафайл могут быть привлечены зарегистрированные процедуры ESCAPES в форме процедуры GENERALIZED_ESC, которая имеет спецификации, показанные ниже:
type ESCAPE_ID in new INTEGER;
type ESCAPE_FLOAT is digits PRECISION;
type ESC_INTEGER_ARRAY is array (SMALL_NATURAL range < >)
of INTEGER;
type ESC_FLOAT_ARRAY is array (SMALL_NATURAL range < >)
of ESCAPE_FLOAT;
type ESC_STRING_ARRAY is array (SMALL_NATURAL range < >)
of STRING (1 . . 80);
type ESC_DATA_RECORD (NUM_OF_INTEGERS NUM_OF_REALS NUM_OF_STRINGS record |
: SMALL_NATURAL : = 0;
: SMALL_NATURAL : = 0; : SMALL_NATURAL : = 0) is |
|
INTEGER_ARRAY REAL_ARRAY ESC_STRING |
: ESC_INTEGER_ARRAY : ESC_FLOAT_ARRAY : ESC_STRING_ARRAY |
(1 . . NUM_OF_INTEGERS); (1 . . NUM_OF_REALS); (1 . . NUM_OF_STRINGS); |
end record;
procedure GENERALIZED_ESC (ESCAPE_NAM ESC_DATA_IN ESC_DATA_OUT end GKS_ESCAPE; |
: in ESCAPE_ID;
: in ESC_DATA_RECORD; : out ESC_DATA_RECORD;
|
(Это приложение не является составной частью стандарта, но дает дополнительную информацию).
Элемент |
Пункт |
CHOICE_DATA_RECORD |
|
LOCATOR_DATA_RECORD |
|
PICK_DATA_RECORD |
|
STRING_DATA_RECORD |
|
STROKE_DATA_RECORD |
|
VALUATOR_DATA_RECORD |
|
DEFAULT_MEMORY_UNITS |
|
DEFAULT_ERROR_FILE |
|
PRECISION |
|
MAX_LIST_SIZE |
|
SMALL_NATURAL_MAX |
|
CHOICE_SMALL_NATURAL_MAX |
|
STRING_SMALL_NATURAL_MAX |
(Это приложение не является составной частью стандарта, но дает дополнительную информацию).
В настоящем приложении даны программы, использующие связь, определенную в стандарте.
В.1. Пример программы 1; STAR
- ПРОГРАММА STAR
-
- ОПИСАНИЕ:
- Эта программа рисует желтую звезду на голубом фоне и пишет зеленым цветом STAR под звездой.
- СОГЛАШЕНИЯ.
- Уровень ЯГС 0a
- Реализация должна поддерживать, по крайней мере, работу одной станции категории вывода или ввода/вывода.
with GKS,
with GKS_TYPFS;
use GKS;
use GKS_TYPES;
procedure STAR is
- Определяет переменные станции и файл регистрации ошибок
MY_WS_ID SOME_CONNECTION SOME_OUTPUT_TYPE ERROR_FILE |
: constant WS_ID : constant STRING : constant WS_TYPE : constant STRING : = «MY_ERROR_FILE: |
: = 1; : = «UNIT-1» : = 1;
|
- Определяет точки звезды. |
||
STAR_POINTS : constant WS.POINT_ARRAY . = |
((0.951057, 0.309017), (-0.951057, 0.309017), (0.587785, -0.951057), (0.0, 1.0), (-0.587785, -0.951057)); |
- Определяет окно мировой системы и различные атрибуты.
WINDOW:WC.RECTANGLE_LIMITS: =
TEXT_POSITION WC.POINT: = (0.0, -1 0); begin |
(XMIN = > -1.25, ХМАХ = > 1.25, YMIN = > -1.25, YMAX = > 1.25);
|
- Открыть ЯГС и активизировать станцию.
OPEN_GKS (ERROR_FILE):
OPEN_WS (MY_WS_ID. SOME_CONNECTION.SOME_OUTPUT_TYPE):
ACTIVATE_WS (MY_WS_ID);
- Центрировать окно вокруг начала координат.
SET WINDOW (1, WINDOW);
SELECT_NORMALIZATION_TRANSFORMATION (1);
- Задать цвета.
SET_COLOUR_REPRESENTATION (MY_WS_ID, INDEX = > 0, RGB_COLOUR = > (0.0, 0.0. 1.0));
SET_COLOUR_REPRESENTATION (MY_WS_ID, INDEX = > 1, RGB_COLOUR = > (1.0, 1.0, 0 0));
SET_COLOUR_REPRESENTATION (MY_WS_ID, INDEX = > 2, RGB_COLOUR = > (1.0, 1.0, 1.0));
- Установить атрибуты области заполнения.
SET_FILE_AREA_INTERIOR_STYLE (SOLID);
SET_FILE_AREA_COLOUR_INDEX (1);
- Нарисовать звезду.
FILL_AREA (STAR_POINTS);
- Выбрать заглавные буквы, позиционированные под звездой.
SET_CHAR_HEIGHT SET_TEAX_ALIGNMENT SET_TEXT_COLOUR_INDEX |
(HEIGHT = > 0 15); (ALIGNMENT = > (CENTRE, HALF)); (TEXT_COLOUR = > 2); |
- Нарисовать заголовок.
TEXT (TEXT_POSITION, «STAR»);
- Закрыть станцию и ЯГС.
DEACTIOVATE_WS (MY_WS_ID);
CLOSE_WS (MY_WS_ID);
CLOSE_GKS;
end STAR;
B.2. Пример программы 2: IRON
- ПРОГРАММА IRON
-
- ОПИСАНИЕ:
- Данная программа рисует горизонтальную гистограмму, иллюстрирующую цены в металлургической промышленности.
- Пользователь может выбрать данные для отображения, используя устройство выбора альтернативы ЯГС. График адаптирован из журнала «Scientic American», май 1984 г., стр. 139.
- СОГЛАШЕНИЕ:
- Уровень ЯГС 2b
with GKS;
with GKS_TYPES,
use GKS;
use GKS_TYPES;
procedure IRON is
- Задает переменные станции и файл регистрации ошибок
MY_WS_ID SOME_CONNECTION SOME_OUTIN_TYPE ERROR_FILE |
: constant WS_ID : constant STRING : constant WS_TYPE : constant STRING |
: = 1; : = «TTY»; : = 2; : = «MY_ERROR_FILF»; |
- Описать и инициировать флаги выборки атрибутов (используют связки для области заполнения, в противном случае устанавливают индивидуальный)
ASF_SETTINGS ASF_LIST = (TYPE_OF_LINE_ASF WIDTH_ASF LINE_COLOUR_ASF TYPE_OF_MARKER_ASF SIZE_ASF MARKER_COLOUR_ASF FONT_PRECISION_ASF EXPANSION_ASF SPACING_ASF TEXT_COLOUR_ASF INTERIOR_ASF STYLE_ASF FILL_AREA_COLOUR_ASF |
= > INDIVIDUAL; = > INDIVIDUAL; = > INDIVIDUAL; = > INDIVIDUAL; = > INDIVIDUAL; = > INDIVIDUAL; = > INDIVIDUAL; = > INDIVIDUAL; = > INDIVIDUAL; = > INDIVIDUAL; = >BUNDLED; = >BUNDLED; = > INDIVIDUAL); |
- Описать и инициировать объекты для устройства выбора альтернативы |
|
CHOICE_STRING_COUNT CHOICE_DEVICE CHOICE_ERROR CHOICE_MODE CHOICE_ECHO_SWITCH INITIAL_CHOICE CHOICE_INPUT_RECORD CHOICE_ECHO_AREA PROMPT_ECHO_TYPE CHOICE_STRINGS CHOICE_RECORD CHOICE_ CHOICE_REQUEST INITIAL_STATUS |
: constant =3; : constant CHOICE_DEVICE_NUMBER =1; : ERROR_NUMBER; : OPERATING_MODE; : ECHO_SWITCH; : CHOICE_VALUE; : CHOICE_DATE_RECORD; : DC RECTANGLE_LIMITS; : constant CHOICE_PROMPT_ECHO_TYPE = 3; : constant CHOICE_PROMPTSTRING_LIST = (LENGTH = > 3, LIST = > ((4, «U S»), (9, «W GERMANY»), (5, «JAPAN»))); : CHOICE_DATA_RECORD; : CHOICE_VALUE; : CHOICE_REQUEST_STATUS; : CHOICE_STATUS; |
- Описать объекты цвета |
|
RGB_COLOUR WHITE BLACK RED |
: COLOUR_REPRESENTATION; : constant COLOUR_INDEX = 0; : constant COLOUR_INDEX = 1; : constant COLOUR_INDEX = 2; |
- Описать и инициировать объекты окна |
|
WINDOW-1 WINDOW_LIMITS
|
: TRANSFORMATION_NUMBER = 1; : WC RECTANGLE_LIMITS = (XMIN = > -100.0, XMAX = > 175.0, YMIN = > -2.0, YMAX = >13.0), |
- Описать и инициировать объекты данных гистограммы |
|
MAX_DATA constant = 6, type IRON_DATA is array (1 . MAX_DATA) of WS_TYPE; |
|
US_DATA_1 US_DATA_2 GERMANY_DATA_1 GERMANY_DATA_2 JAPAN_DATA_1 JAPAN_DATA_2 procedure BARS (LENGTH) POSITION LEFT_HALF BAR_POINTS |
: IRON_DATA : = (69.0, 50.0, 15.0, 53.0, 57.0, 150.0); : IRON_DATA : = (72.0, 50.0, 103.0, 0.0, 0.0, 56.0); : IRON_DATA : = (65.0, 42.0, 3.0, 89.0, 52.0, 93.0); : IRON_DATA : = (70.0, 53.0, 102.0, 0.0, 0.0, 49.0); : IRON_DATA : = (65.0, 47.0, 2.0, 60.0, 52.0, 55.0); : IRON_DATA : = (70.0, 57.0, 105.0, 0.0, 0.0, 41.0); : WC_TYPE; : WC.POINT) is : TEXT_ALIGNMENT : = (LEFT, HALF); : WC.POINT_ARRAY(1 .. 4); |
begin if LENGTH = 0.0 then SET_TEXT_ALIGNMENT (LEFT_HALF); TEXT (POSITION, «0») ; else |
|
BAR_POINTS : = ((X = >0.0, (X = > LENGTH, (X = > LENGTH, (X = > 0.0, |
Y = > POSITION.Y + 0.4); Y = > POSITION.Y + 0.4); Y = > POSITION.Y - 0.4); Y = > POSITION.Y - 0.4)); |
FILL_AREA (BAR_POINTS); end if; end BARS; |
|
procedure TICK'S (TICK_MARK_POSITION : in out WC.POINT_ARRAY) is
TICK_MARK_LABEL_POSITION:WC.POINT;
begin
for I in 1 .. 4 loop
POLYLINE (TICK_MARK_POSITION);
TICK_MARK_POSITION (1).X: = TICK_MARK_POSITION (1).X + 50.0;
TICK_MARK_POSITION (2).X: = TICK_MARK_POSITION (2).X + 50.0;
end loop;
- Нарисовать маскировочные метки.
TICK_MARK_LABEL_POSITION.X : = 0.0;
TICK_MARK_LABEL_POSITION.Y : = WC_TYPE (TICK_MARK_POSITION (1).Y);
TEXT (TICK_MARK_LABEL_POSITION, «0»);
TICK_MARK_LABEL_POSITION.X: = 50.0;
TEXT (TICK_MARK_LABEL_POSITION, «50»);
TICK_MARK_LABEL_POSITION.X: = 100.0;
TEXT (TICK_MARK_LABEL_POSITION, «100»);
TICK_MARK_LABEL_POSITION.X: = 150.0;
TEXT (TICK_MARK_LABEL_POSITION, «150»);
end TICKS;
procedure BORDER is
- Нарисовать границу, окружающую данные.
LABEL_POSITION TITLE_POSITION HEIGHT LEFT_HALF CENTRE_BOTTOM CENTRE_CAP ONLY_IF_NOT_EMPTY BOX_POINTS |
: WC.POINT; : WC POINT : = (37 5, -2 0); : WC MAGNITUDE : = 0.5; : TEXT_ALIGNMENT : = (LEFT, HALF); : TEXT_ALIGNMENT : = (CENTRE, BOTTOM); : TEXT_ALIGNMENT : = (CENTRE, CAP); : CONTROL_FLAG : = CONDITIONALLY; : constant WC.POINT_ARRAY : = ((0.0, 0.0), (150.0, 0.0), (150.0, 12.0), (0.0, 12.0), ((0.0, 0.0)); |
type LABELS is array (1 . . 6) of INPUT_STRING;
BAR_LABELS : constant LABELS : =
((5, «LABOR»), (8, «IRON ORE»), (12, «COKE OR COAL»),
(15, «PURCHASED SCRAP»), (11, «OTHER COSTS»),
(12, «OTHER ENERGY»));
TOP_TICK_MARK_START : WC.POINT_ARRAY (1 . . 2) ; = ((0.0, 12.0),
(0.0, 11.9)):
BOTTOM_TICK_MARK_START ; WC.POINT_ARRAY (1 . . 2):= ((0.0, 0.0),
(0.0, 0.1));
begin
CLEAR_WS (MY_WS_ID, ONLY_IF_NOT_EMPTY);
- Нарисовать квадрат, ограниченный областью диаграммы.
POLYLINE (BOX_POINTS);
- Нарисовать метки гистограммы, центрированные по полоскам.
SET_TEXT_ALIGNMENT (LEFT_HALF);
SET_CHAR_HEIGHT (HEIGHT);
SET_TEXT_COLOUR_INDEX (BLACK);
LABEL_POSITION.X = -99.0;
for 1 in 1 .. 6 loop
LABEL_POSITION.Y : = WC_TYPE(2.0* (FLOAT(l) - 1.0) + 1.2)
TEXT (LABEL_POSITION, BAR_LABELS (INTEGER (1)).CONTENTS);
end loop;
- Нарисовать верхние и нижние черточки (красное основание).
SET_TEXT_ALIGNMENT (CENTRE_BOTTOM);
- Вызвать процедуры для рисования черточек.
TICKS (TOP_TICK_MARK_START);
SET_TEXT_ALIGNMENT (CENTRE_CAP);
SET_TEXT_COLOUR_INDEX(RED);
TICKS (BOTTOM_TICK_MARK_START);
- Нарисовать заголовок.
SET_TEXT_COLOUR_INDEX (BLACK);
SET_TEXT_ALIGNMENT (CENTRE_BOTTOM);
TEXT (TITLE_POSITION, «PRODUCTION COST»);
end BORDER;
procedure DRAW
FILL_INDEX POSITION begin |
(DATA1 : in out IRON_DATA; DATA2 : in out IRON_DATA) is : FILL_AREA_INDEX : = 1; WC POINT; |
- Нарисовать границу.
BORDER;
- Нарисовать черные полосы.
SET_FILL_AREA_COLOUR_INDEX (BLACK);
SET_TEXT_COLOUR_INDEX (BLACK);
SET_FILL_AREA_INDEX (FILL_INDEX);
for I in 1 .. 6 loop
POSITIONS: = 2.0* (WC_TYPE (1) - 1.0) + 1.6;
- Вызвать процедуру, которая вычеркивает гистограммы.
BARS (DATA1 (INTEGERS)), POSITION);
end loop;
- Вычеркивает красные гистограммы,
SET_FILL_AREA_COLOUR_INDEX (RED);
SET_TEXT_COLOUR_INDEX(RED);
FILL_INDEX: = 2;
SET_FILL_AREA_INDEX (FILL_INDEX);
for I in 1 . . 6 loop
POSSITION.Y: = 2.0* (WS_TYPE (1) - 1.0) + 1.6;
- Вызвать процедуру, которая вычерчивает гистограммы.
BARS (DATA2 (INTEGER (1), POSITION),
end loop;
end DRAW;
begin
- Открыть ЯГС и активировать станцию.
OPEN_GKS (ERROR_FILE);
OREN_WS(MY_WS_ID, SOME_CONNECTION.SOME_OUTRN_TYPE);
ACTIVATE_WS (MY_WS._ID);
- Задать окно на диаграмме.
SET_WINDOW (WINDOW_1, WINDOW_LIMITS);
SELECT_NORMALIZATION_TRANSFORMATION (WINDOW-l);
- Задать цвета, которые будут использоваться.
SET_COLOUR_REPRESENTATION (MY_WS_ID, INDEX = > WHITE, RGB_COLOUR = > (1.9, 1.0, 1.0));
SET_COLOUR_REPRESENTATION (MY_WS_ID, INDEX = > BLACK, RGB_COLOUR = > (0.0, 0.0, 0.0));
SET_COLOUR_REPRESENTATION (MY_WS_ID, INDEX = > RED, RGB_COLOUR = > (1.0, 0.0, 0.0));
- Использовать связанные атрибуты, исключая цвет.
SET ASF (ASF_SETTINGS);
- Инициировать устройстве выбора.
INQ_CHOICE_DEVICE_STATE (MY_WS_ID; CHOICE_DEVICE; CHOICE_ERROR; CHOICE_MODE; CHOICE_ECHO_SWITCH; INITIAL_STATUS; INITIAL_CHOICE; CHOICE_ECHO_AREA; CHOICE_RECORD);
BUILD_CHOICE_DATA_RECORD (PROMPT_ECHO_TYPE; CHOICE_STRINGS; CHOICE_RECORD);
INITIALISE_CHOICE (MY_WS_ID; CHOICE_DEVICE; INITIAL_STATUS; INITIAL_CHOICE; CHOICE_ECHO_AREA; CHOICE_RECORD);
- Получить выбор пользователя (U S., W GERMANY, or JAPAN);
loop
REQUEST_CHOICE (MY_WS_ID; CHOICE_DEVICE; INITIAL_STATUS; CHOICE);
if INITIAL_STATUS = OK then
case CHOICE is
when 1 = > DRAW (US_DATA-l, US_DATA-2);
when 2 = > DRAW (GERMANY_DATA_1, GERMANY_DATA-2);
when 3 = > DRAW (JAPAN_DATA_1, JAPAN_DATA_2);
when others = > exit;
end case;
else
exit;
end if;
end loop;
- Закрыть станцию и ЯГС.
DEACTIVATE_WS CLOSE_WS CLOSE_GKS; end IRON; |
(MY_WS_ID); (MY_WS_ID);
|
В. 3. Пример программы 3: MAP
- ПРОГРАММА MAP
-
- ОПИСАНИЕ:
- Эта программа считывает метафайл ЯГС для вычерчивания карты. Примитивы каждой области заключены в отдельных сегментах. Пользователь может применить для указания области устройство выбора. Опрашиваемое устройство выбора задает операции с выбранными примитивами области.
- СОГЛАШЕНИЕ:
- Уровень ЯГС 1c
- Реализация должна поддерживать, по крайней мере, одну станцию категории ввод/вывод и одну категорию метафайла ввода. Устройство выбора по умолчанию должно поддерживать, по крайней мере, пять альтернатив.
with GKS;
with GKS_TYPE;
use GKS;
use GKS_TYPES;
procedure METAFILE is
- Задать станцию метафайла.
METAFILE_WS_ID METAFILE_CONNECTION METAFILE_TYPE METAFILE_ITEM_TYPE METAFILE_DATA_RECORD LENGTH, MAX_LENGTH |
: constant WS_ID : = 1; : constant STRING : = «METAFILE_INPUT_FILE»; : constant WS_TYPE : = 2; : GKSM_ITEM_TYPE; : GKSM_DATA_ RECORD; : NATURAL : = 500; |
- Задать станцию ввода/вывода. |
|
MY_WS_ID SOME_CONNECTION SOME_OUTIN_TYPE SOME_CHOICE_DEVICE CSTATUS CHOICE_NUMBER SOME_PICK_DEVICE PSTATUS PICK SEGMENT |
: constant WS_ID : = 2; : constant STRING : = «UNIT_2»; : constant WS_TYPE : = 1; : constant CHOICE_DEVICE_NUMBER : = 1; : CHOICE_STATUS; : CHOICE_VALUE; : constant PICK_DEVICE_NUMBER : = 1; : PICK_REQUEST_STATUS; : PICK_ID; : SEGMENT_NAME; |
- Задать файл регистрации ошибок. |
|
ERROR_FILE |
: constant STRING : = «MY_ERROR_FILE» |
begin
- Открыть ЯГС и активизировать станции.
OPEN_GKS (ERROR_FILE);
OPEN_WS(METAFILE_WS_ID, METAFILE_CONNECTION, METAFILE_TYPE);
OPEN_WS(MY_WS_ID, SOME_CONNECTION, SOME_OUTIN_TYPE);
ACTIVATE_WS (MY_ WS_ ID);
- Установить устройство выбора в режим выборки.
SET_CHOICE_MODE (MY_WS_ID, SOME_CHOICE_DEVICE, SAMPLE_MODE, NOECHO);
- Интерпретировать элементы метафайла до считывания конца метафайла, loop
GET_ITEM_TYPE_FROM_GKSM (METAFILE_WS_ID, METAFILE_ITEM_TYPE, LENGTH);
if METAFILE_ITEM_TYPE=0 then exit; end if;
READ_ITEM_FROM_GKSM (METAFILE_WS_ID, MAX_LENGTH, METAFILE_DATA_RECORD);
INTERPRENT_ITEM (METAFILE_DATA_RECORD);
end loop;
- Закрыть станцию метафайла.
CLOSE_WS (METAFILE_WS_ID);
- Позволить пользователю выбирать состояния до выбора EXIT.
loop
REQUEST_PICK
(MY_WS_ID, SOME_PICK_DEVICE, PSTATUS, SEGMENT, PICK);
if PSTATUS = OK then
SAMPLE_CHOICE (MY_WS_ID, SOME_CHOICE_DEVICE, CSTATUS, CHOICE_NUMBER);
if CSTATUS=OK then
case CHOICE_NUMBER is
when 1 = > SET_HIGHLIGHTING (SEGMENT, HIGHLIGHTED);
when 2 = >SET_HIGHLIGHTING (SEGMENT, NORMAL);
when 3 = >SET_VISIBILITY (SEGMENT, INVISIBLE);
when 4 = >SET_VISIBILITY (SEGMENT, VICIBLE);
when others= >null;
end case;
end if;
end if;
end loop;
- Закрыть станцию и ЯГС.
DEACTIVATE_WS CLOSE_WS |
(MY_WS_ID); (MY_WS_ID); |
CLOSE_GKS;
end METAFILE;
B. 4. Пример программы 4: MANIPULATE
- ПРОГРАММА MANIPULATE
-
- ОПИСАНИЕ:
- Данная программа позволяет пользователю создать объект и затем манипулировать им, изменяя преобразование сегмента.
- СОГЛАШЕНИЯ:
- Уровень ЯГС: 2b
with GKS;
with GKS_TYPES;
use GKS;
use GKS_TYPES;
procedure POLYGON is |
||
POINTS POINT_1 POINT_2 POLIGON_SEGMENT SHIFT ZOOM ROTATE NEXT TRANSFORMATION TRANSFORMATION_1 TRANSFORMATION_2 RED AXIC_CHARACTER_HEIGHT CHOICE CHOICE_STATUS LOCATOR_STATUS MATRIX MATRIX_RESULT |
: WC.POINT_ARRAY (1 . . 500); : WC.PQINT : = (0.6, 0.4); : WC.POINT : = (0.4, 0.3); : SEGMENT_NAME : = 1; : constant CHOICE_VALUE : = 1; : constant CHOICE_VALUE : = 2; : constant CHOICE_VALUE : = 3; : POSITIVE : = 1; : TRANSFORMATION_NUMBER; : TRANSFORMATION_NUMBER; : TRANSFORMATION_NUMBER; : constant COLOUR_INDEX : = 2; : constant WC.MAGNITUDE : = 0.02; : CHOICE_VALUE; : CHOICE_REQUEST_STATUS; : INPUT_STATUS; : TRANSFORMATION_MATRIX; : TRANSFORMATION_MATRIX; |
|
- Задать переменные станции и файл регистрации ошибок. |
||
DISPLAY DISPLAY_CONNECTION DISPLAY_TYPE ERROR_FILE |
: constant WS_ID : constant STRING : constant WS_TYPE : constant STRING |
: = 1; : = «DDDIS»; : = 3; : = «MY_ERROR_FILE»; |
- Задать переменные сегмента станции. |
||
SEGSTORE SEG_CONNECTION SEG_TYPE |
: constant WS_ID : constant STRING : constant WS_TYPE |
: = 2; : = «DDSEG»; : = 4; |
- Задать переменные станции графопостроителя. |
||
PLOTTER PLOT_CONNECTION PLOT_TYPE |
: constant WS_ID : constant STRING : constant WS_TYPE |
: = 6; : = «PLOT»; : = 5; |
- Задайте окно мировой системы координат и другие атрибуты. |
||
WINDOW_BOUNDS VIEWPORT_BOUNDS TEXT_POSITION begin |
: WC.RECTANGLE_LIMITS : = (XMIN = > 0.0, XMAX = > 1.0, YMIN = > 0.0, YMAX = > 1.0); : NDC.RECTANGLE_LIMITS : = (XMIN = > 0.0, XMAX = > 1.0, YMIN = >0.0, YMAX = >1.0); : WC.POINT : = (0.5, 0.5); |
- Открыть ЯГС и активировать станцию.
OPEN_GKS (ERROR_FILE);
OPEN_WS (DISPLAY, DISPLAY_CONNECTION, DISPLAY_TYPE);
ACTIVATE_WS (DISPLAY);
OPEN_WS (SEGSTORE, SEG_CONNECTION, SEG_TYPE);
ACTIVATE_WS (SEGSTORE);
SET_WINDOW (1, WINDOW_BOUNDS);
SET_VIEWPORT (1, VIEWPORT_BOUNDS);
SET_VIEWPORT_INPUT_PRIORITY (1, 0, HIGHER);
- Построение сегмент POLYGON_SEGMENT
CREATE_SEGMENT (POLYGON_SEGMENT);
SET_POLYLINE_INDEX 3
REQUEST_LOCATOR DISPLAY LOCATOR_STATUS, TSANSFORMATION, POINTS (NEXT));
SELECT_NOHMALIZATICN_THANSFORMATION (TRANSFORMATION, _1);
loop
NEXT: NEXT + 1;
REQUEST_LOCATOR (DISPLAY, 1, LOCATOR_STATUS,
TRANSFORMATION POINTS (NEXT));
exit when LOCATOR_STATUS_NONE or
TRANSFORMATION/ = TRANSFORMATION_1 or
NEXT = 500;
end loop;
POINTS (NEXT) : = POINTS(1);
POLYLINE (POINTS);
CLOSE_SEGMENT;
EVALUATE_TRANSFORMATION_MATRIX (WC.POINT ((0.0, 0.0)), WC.VECTOR ((0.0, 0.0)), 0.0, (1.0, 1.0), MATRIX
- инициализировать матрицу преобразования
loop
REQUEST_CHOICE (DISPLAY, 1, CHOICE_STATUS, CHOICE);
exit when CHOICE_STATUS = NONE or CHOICE_STATUS = NOCHOICE;
case CHOICE is
-- сдвинуть многоугольник в данную позицию
when SHIFT = >
REQUEST_LOCATOR (DISPLAY, 1, LOCATOR_STATUS, TRANSFORMATION_2, POINT_1);
exit when LOCATOR_STATUS_NONE; REQUEST_LOCATOR (DISPLAY, 1, LOCATOR_STATUS, TRANSFORMATION, POINT_2);
exit when LOCATOR_STATUS=NONE or TRANSFORMATION / = TRANSFORMATION_2)
SELECT_NORMALIZATION_TRANSFORMATION (TRANSFORMATION_2)
ACCUMULATE_TRANSFORMATION_MATRIX ( |
|
SOURCE_TRANSFORMATION FIXED_POINT SHIFT_VECTOR ROTATION_ANGLE SCALE_FACTGRS RESULT_TRANSFORMATION |
= > MATRIX, = > WC.POINT’((0.0, 0.0)), = > WC.VECTOR’ ((POINT_1.X - POINT_2.X, POINT_1 Y - POINT_2.Y)), = > 0 0, = > (1.0, 1.0), = > MATRIX_RESULT); |
SET_SEGMENT_TRANSFORMATION (POLYGON_SEGMENT, MATRIX_RESULT); |
|
when ZOOM when ROTATE when others |
= > null; = > null; = > exit; |
end case;
UPDATE_WS (DISPLAY, PERFORM);
end loop;
- теперь полигон прорисован
DEACTIVATE_WS (DISPLAY);
DEACTIVATE_WS (SEGSTORE);
OPEN_WS (PLOTTER, PLOT_CONNECTION, PLOT_TYPE);
ACTIVATE_WS (PLOTTER);
- установить представления для этой станции
SET_COLOUR_REPRESENTATION (PLOTTER, RED, (1.0, 0 0, 0.0));
SET_POLYLINE_REPRESENTATION (PLOTTER, 3, 1, 1.5, RED);
SET_TEXT_REPRESENTATION (PLOTTER, 2, (0, STRING_PRECISION), 1.0, 0.0, RED);
SET_WS_VIEWPORT (PLOTTER, (0.0, 0.0, 0.5));
COPY_SEGMENT_TO_WS (PLOTTER, POLYGON_SEGMENT);
SET_TEXT_INDEX (2);
SET_CHAR_HEIGHT (AXIS_CHARACTER_HEIGHT);
TEXT ((0.5, 0.5), «This is polygon»);
DEACTIVATE_WS (PLOTTER);
CLOSE_WS (PLOTTER);
CLOSE_WS (DISPLAY);
CLOSE_WS (SEGSTORE);
CLOSE_GKS; end POLYGON;
B.5. Пример программы 5. PROGRAM SHWLN
- ПРОГРАММА SHOWLN
-
- ОПИСАНИЕ:
- Данная программа иллюстрирует существующие типы линии на выбранной пользователем станции. Она содержит типичную подпрограмму инициализации ЯГС и демонстрирует подпрограммы, которые не меняют каких-либо элементов списка состояний.
- СОГЛАШЕНИЯ:
- Уровень ЯГС 0a
with GKS_TYPES;
with GKS;
with TEXT_IO;
use GKS_TYPES;
use GKS;
use TEXT_IO;
procedure SHOWLN is
TYPE_OF_WS ERROR_IND WORKSTATION OP_STATE |
WS_TYPE; ERROR_NUMBER : = 0; WS_ID : = 1; OPERATING_STATE; |
package WS_TYPE_IO is new INTEGER_IO (WS_TYPE);
procedure INIT_GKS (WTYPE : in out WS_TYPE; ERRIND : in out ERROR_NUMBER) is
- Последовательность инициализации ЯГС.
ERROR_FILE : constant STRING : = ’SHOWLN_ERR_FILE’; |
|
GKS_WS_TYPES CATEGORY CONNECTION CONN_LENGTH begin OPEN-GKS (ERROR_FILE); |
WS_TYPES.LIST_OF; WS_CATEGORY; STRING (1. . 20); NATURAL;
|
- Запросить доступные типы станций и распечатать их.
INQ_LIST_OF_AVAILABLE_WS_TYPES (ERRIND, GKS_WS_TYPES); if ERRIND/ = 0 then
return;
end if;
PUT_LINE («The available output and outin workstation types are:»);
for I in 1 .. WS_TYPES.SIZE_OF_LIST (GKS_WS_TYPES) loop
INQ_WS_CATEGORY
(WS_TYPES.LIST_ELEMENT (I, GKS_WS_TYPES), ERRIND, CATEGORY);
if (CATEGORY = OUTPUT or CATEGORY = OUTIN) then
WS_TYPE_IO.PUT (WS_TYPES.LIST_ELEMENT (I, GKS_WS_TYPES)); PUT (””);
end if;
end loop;
NEW_LINE;
- Выберите одну станцию, чтобы открыть и активировать ее.
PUT_LINE («Please enter connection identifier and workstation type») GET_LINE (CONNECTION, CONN_LENGTH);
WS_TYPE_IO.GET (WTYPE);
OPEN_WS (WORKSTATION, CONNECTION (1 . . CONN_LENGTH), WTYPE);
ACTIVATE_WS (WORKSTATION);
- Проверьте режим работы для гарантирования успешных открытий и активирования.
begin
INQ_OPERATING_STATE_VALUE (OP_STATE);
if OP_STATE / = WSAC then
ERRIND : = 3;
return;
end if;
ERRIND : = 0;
end INIT_GKS;
procedure LINE_DEMO (WTYPE ERRIND STATUS REQ_WINDOW CUR_WINDOW REQ_VIEWPORT CUR_VIEWPORT LINETYPE_LIST NUM_WIDTHS NOMINAL_WIDTH RANGE_OF_WIDTHS NUM_INDICES LIST_OF_ASF SAVED_XFORM_NUM SAVED_PRIM_ATTR SAVED_INDV_ATTR DISTANCE PTS begin |
: in out WS_TYPE; : in out ERROR_NUMER) is : UPDATE_STATE; : NDC.RECTANGLE_LIMITS; : NDC.RECTANGLE_LIMITS; : DC.RECTANGLE_LIMITS; : DC.RECTANGLE_LIMITS; : LINETYPES.LIST_OF; : NATURAL; : DC.MAGNITUDE; : DC.RANGE_OF_MAGNITUTES; : NATURAL; : ASF_LIST := (others = > INDIVIDUAL) : TRANSFORMATION_NUMBER; : PRIMITIVE_ATTRIBUTE_VALUES; : INDIVIDUAL_ATTRIBUTE_VALUES; : NDC_TYPE; : WC.POINT_ARRAY ! 1 . . 2); |
- Проверить режим работы.
INQ_OPERATING_STATE_VALUE (OP_STATE);
if (OP_STATE / = WSAC and OP_STATE / = SGOP) then
ERRIND : = 5,
return;
end if;
- Узнать преобразование станция.
INQ_WS_TRANSFORMATION (WORKSTATION, ERRIND, STATUS,
REQ_WINDOW, CUR_WINDOW, REQ_VIEWPORT, CUR_VIEWPORT);
if ERRIND / = then
return;
end if;
- Узнать возможности ломаной.
INQ_POLYLINE_FACITIIES (WS_TYPE, ERRIND, LINETYPE_LIST, NUM_WIDTHS, NOMINAL_WIDTH, NOMINAL_WIDTH, RANGE_OF_WIDTHS, NUM_INDICES);
if ERRIND / = 0 then
return;
end if;
INQ_CURRENT_NORMALIZATION_TRANSFORMATIQN_NUMBER (ERRTND, SAVED_PRIM_ATTR);
INQ_CURRENT_INDIVIDUAL_ATTRIBUTE_VALUES (ERRIND, SAVE_INDV_ATTR);
- Установить номер преобразования нормирования, флаги выборки индивидуальных атрибутов, масштаб толщины линии (1.0), индекс цвета ломаной (1) и атрибуты приемлемого текста.
SELECT_NORMALIZATION_TRANSFORMATION (0);
SET_ASF (LIST_OF_ASF);
SET_LINEWIDTH_SCALE_FACTOR (1.0);
SET_POLYLINE_COLOUR_INDEX (1);
SET_CHAR_UP_VECTOR ((0.0, 1.0));
SET_TEXT + PATH (RIGHT);
SET_TEXT_ALIGNMENT ((LEFT, HALF));
SET_TEXT_FONT_AND_PRECISION ((1, STRING_PRECISION));
SET_CHAR_EXPANSION_FACTOR (1.0);
SET_CHAR_SPACING (0.0);
SET_TEXT_COLOUR_INDEX (1);
- Вычислить расстояние между линиями
DISTANCE : = (CUR_WINDOW.YMAX_CUR_WINDOW.YMIN) / NDC_TYPE (LINETYPES.SIZE_OF_LIST (LINETYPE_LIST));
- Установить высоту литер, равную половине расстояния между линиями, но не более, 1/20 высоты текущей станции.
if (DISTANCE/2.0) < ((CUR_WINDOW.YMAX - CUR_WINDOW.YMIN)/20.0
then SET_CHAR_HEIGHT (WC.MAGNITUDE (DISTANCE/2.0));
else
SET_CHAR_HEIGHT
(WC.MAGNITUDE ((CUR_WINDOW.YMAX - CUR_WINDOW.YMIN)/20.0));
end if;
- Отступление линии от левой границы к середине окна текущей станции.
PTS (1).Х : = WC_TYPE (CUR_WINDOW.XMIN);
PTS (1).Y : = WC_TYPE (CUR_WINDOW.YMAX - DISTANCE/2.0);
PTS (2).X ; = WC_TYPE (CUR_WINDOW.XMIN + CUR_WINDOW.XMAX/2.0)
- Цикл по существующим типам линий.
for I in 1...LINETYPES.SIZE_OF_LIST (LINETYPE_LIST) loop
SET_LINETYPE (LINETYPES.LIST_ELEMENT (1, LINETYPE_LIST));
PTS (2).Y : = PTS (1). Y;
POLYLINE (PTS);
PTS (1).Y : = PTS (1).Y - WC_TYPE (DISTANCE);
- Аннотировать тип линии.
TEXT (PTS (2, INTEGER’ IMAGE (INTEGER (LINETYPES.LIST_ELEMENT (1, LINETYPE.LIST) ) ) );
end loop;
- Восстановить номер преобразования нормирования и атрибуты.
SELECT_NORMALIZATION_TRANSFORMATION (0);
SET_ASF SET_LINEWIDTH_SCALE_FACTOR SET_POLYLINE_COLOUR_INDEX SET_CHAR_UP_VECTOR SET_TEXT_PATH SET_TEXT_ALIGNMENT SET_TEXT_FONT_AND_PRECISION SET_CHAR_EXPANSION_FACTOR SET_CHAR_SPACING SET_TEXT_COLOUR_INDEX ERRIND : = 0; end LINE_DEMO; |
(SAVED_INDU_ATTR.ASF); (SAVED_INDV_ATTR.WIDTH); (SAVED_INDV_ATTR.LINE_COLO UR); (SAVED_PRIM_ATTR.CHAR_UP_VECTOR); (SAVED_PRIM_ATTR.PATHT; (SAVED_PRIM_ATTR.ALIGHMENT); (SAVED_INDV_ATTR.FONT_PRECISION); (SAVED_INDV_ATTR.EXPANSION); (SAVED_INDV_ATTR.SPACING); (SAVED_INDV_ATTR.TEXT_COLOUR);
|
- Главная процедура SHOWLN.
begin
- Вызов процедуры инициализации.
INIT_GKS (TYPE_OF_WS, ERROR_IND)
if ERROR_IND = 0 then
- Вызов подпрограммы демонстрации типов линий.
LINE_DEMO (TYPE_OF_WS, ERROR_IND);
end if;
- Все закрыть.
EMERGEN CY_CLOSE_GKS;
end SHOWLN;
(Это приложение не является составной частью стандарта» но дает дополнительную информацию).
Встраивание функций ЯГС как подпрограмм в пакет Ада реализует естественным образом: данные «состояния» ЯГС декларируют как переменные, локальные для тела пакета; они непосредственно доступны и модифицируются из подпрограмм ЯГС. Такой подход принимают, когда прикладные программы используют только последовательно управляемые структуры. Проблема состоит в том, что одновременные вызовы программ ЯГС могут испортить переменные состояния; например, при одновременной попытке записать в них. Данная проблема существует, где имеется истинная параллельность (множество процессов) или она моделируется (использование одного процессора с мультиплексированием).
Далее приводится метод реализации, который позволяет преодолеть данную трудность без изменения интерфейса с ЯГС со стороны прикладных программ на языке Ада. Коротко идея состоит в том, чтобы защитить данные тела пакета (например, переменные состояния), локализуя их в задаче, содержащейся в теле пакета. Для каждой подпрограммы, которая обращается к данным, будут существовать соответствующие входы, декларированные в задаче. Одно и то же имя может быть использовано для входа и подпрограммы, применяющей средства совмещения в языке Ада. Тело задачи похоже на монитор, то есть, это цикл, содержащий селективное ожидание с переходом для каждого входа. Предложение приема выполняет действительное считывание или запись информации по состоянию, как требуется соответствующими подпрограммами ЯГС. Тело каждой подпрограммы ЯГС сжимается просто до вызова входа задачи. Таким образом, даже если две задачи из пользовательского прикладного программного обеспечения одновременно вызывают подпрограммы, которые модифицируют или обращаются к переменным состояния, это будет приводить к вызовам входа задачи, которые ставятся в очередь и обслуживаются в порядке поступления. В данном случае опасность порчи переменных состояния отсутствует.
Для иллюстрации данного метода в следующем примере показано, как может быть написан скелет пакета ЯГС.
with GKS_TYPES;
use GKS_TYPES;
package GKS is;
procedure OPEN_GKS |
|
(ERROR_FILE AMOUNT_OF_MEMORY |
: in STRING : = DEFAULT_ERROR_FILE; : in NATURAL : = DEFAULT_MEMORY_UNITS); |
procedure OPEN_WS |
|
(WS CONNECTION TYPE_OF_WS |
: in WS_ID; : in STRING; : in WS_TYPE); |
procedure CLOSE_GKS;
…
end GKS;
- Версия для последовательных прикладных программ:
with ERROR_HANDLING;
package body GKS is
- Переменные состояния:
CURRENT_OPERATING_STATE : OPERATING_STATE : = GKCL; SET_OF_OPEN_WORKSTATIONS : WS_IDS.LIST_OF : =WS_IDS.NULL_LIST
procedure OPEN_GKS |
|
(ERROR_FILE AMOUNT_OF_MEMORY begin |
: in STRING : = DEFAULT_ERROR_FILE; : in NATURAL : = DEFAULT_MEMORY_UNITS) is |
…
if CURRENT_OPERATING_STATE/=GKCL then
ERROR_HANDLING (1, «OPEN_GKS»);
else
CURRENT_OPERATING_STATE : = GKOP;
end if;
…
end OPEN_GKS;
procedure OPEN_WS |
|
(WS CONNECTION TYPE_OF_WS begin |
: in WS_ID; : in STRING; : in WS_TYPE) is |
…
if' CURRENT_OPERATING_STATE not in GKOP.. SGOP then
ERROR_HANDLING (8, «OPEN_WS»);
else
CURRENT_OPERATING_STATE : = WSOP;
WS_IDS.ADD_TO_LIST (WS, SET_OF_OPEN_WORKSTATIONS);
end if;
…
end OPEN_WS;
procedure CLOSE_GKS is
begin
…
if CURRENT_OPERATING_STATE / = GKOP then
ERROR_HANDLING (2, «CLOSE_GKS»);
else
CURRENT_OPERATING_STATE : = GKCL;
end if;
…
end CLOSE_GKS;
…
end GKS;
- Версия для прикладных программ, использующих многозадачный режим работы:
with ERROR_HANDLING;
package body GKS is
task MONITOR is
entry OPEN_GKS
(ERROR_FILE AMOUNT_OF_MEMORY |
: in STRING : = DEFAULT_ERROR_FILE; : in NATURAL : = DEFAULT_MEMORY_UNITS); |
entry OPEN_WS (WS CONNECTION TYPE_OF_WS |
: in WS_ID; : in STRING; : in WS_TYPE); |
entry CLOSE_GKS;
…
end MONITOR;
task body MONITOR is
- Переменные состояния:
CURRENT_OPERATING_STATE SET_OF_OPEN_WORKSTATIONS begin loop begin accept OPEN_GKS (ERROR_FILE AMOUNT_OF_MEMORY |
: = OPERATING_STATE = GKCL; : = WS_IDS.LIST_OF : = WS_IDS.NULI LIST;
: in STRING DEFAULT_ERROR_FILE; : in NATURAL : = DEFAULT_MEMORY_UNITS); |
do
…
if CURRENT_OPERATING_STATE / = GKCL then
ERROR_HANDLING (1, «OPEN_GKS»);
else
CURRENT_OPERATING_STATE : = GKOP;
end if;
…
end OPEN_GKS;
accept OPEN_WS
(WS CONNECTION TYPE_OF_WS |
: in WS_ID; : in STRING; : in WS_TYPE) do |
…
if CURRENT_OPERATING_STATE / = not in GKOP.. SGOP then
ERROR_HANDLING (8, «OPEN_WS»);
else
CURRENT_OPERATING_STATE : = WSOP;
WS_IDS.ADD_TO_LIST (WS, SET_OF_OPEN_WORKSTATIONS);
end if;
…
end OPEN_WS;
or
accept CLOSE_GKS do
if CURRENT_OPERATING_STATE / = GKOP then
ERROR_HANDLING (2, «CLOSE_GKS»);
else
CURRENT_OPERATING_STATE : = GKCL;
end if;
…
end CLOSE_GKS;
or
terminate;
end select;
exception
when others = > null;
end;
end loop;
end MONITOR;
procedure OPEN_GKS
(ERROR_FILE AMOUNT_OF_MEMORY begin |
: in STRING : = DEFAULT_ERROR_FILE; : in NATURAL : = DEFAULT_MEMORY_UNITS) is |
MONITOR.OPEN_GKS (ERROR_FILE, AMOUNT_OF_MEMORY); end OPEN_GKS; |
|
(WS CONNECTION TYPE_OF_WS begin |
: in WS_ID; : in STRING; : in WS_TYPE) is |
MONITOR.OPEN.WS (WS, CONNECION, TYPE_OF_WS);
end OPEN_WS;
procedure CLOSE_GKS is
begin
MONITOR.CLOSE_GKS;
end CLOSE_GKS;
…
end GKS;
Несколько замечаний по взаимодействию с обработкой прерываний событий в случае, когда процедура ERROR_HANDLING вызывает GKS_ERROR. Отметим, что в обеих версиях тела пакета вызывается процедура ERROR_HANDLING. Предположим, что прикладная программа вызывает OPEN_GKS, когда ЯГС уже открыт. В последовательной версии вызов ERROR_HANDLING из тела процедуры OPEN_GKS вызовет распространение GKS_ERROR назад к прикладной программе, которая вызвала OPEN_GKS. В версии для многозадачного режима работы тот же самый эффект будет достигнут следующим образом В течение выполнения предложения приема для входа OPEN_GKS будет вызвана процедура ERROR_HANDLING и произойдет GKS_ERROR. В соответствии с семантикой языка Ада, так как это исключение не обрабатывается локальным обработчиком при приеме, оно распространяется (1) в точку, следующую за приемом, и (2) в точку вызова входа. В первом случае оно обрабатывается в блоке, включающем в себя предложение выбора; таким образом задача монитор может перейти к следующей итерации без разрыва. Для второго случая точка находится в теле процедуры OPEN_GKS. Так как здесь нет обработчика исключительных событий, то GKS_ERROR распространяется, как это и хотелось, назад к точке вызова в прикладной программе.
Завершение выполнения задачи MONITOR будет реализовано выбором альтернативы завершения, когда задачи прикладной программы закончатся.
Существует ряд вариаций метода, рассмотренного и проиллюстрированного выше, которые при реализации могут представлять интерес с точки зрения повышения потенциального параллелизма прикладных программ ЯГС, использующих многозадачный режим работы. С помощью только что описанного метода единый набор переменных состояния защищается одной задачей. Если информация о состоянии может быть разделена на независимые наборы с одной задачей монитором на набор, то задача прикладной программы, считывающая/записывающая переменные в один набор, может выполнять это одновременно с задачей, которая считывает/записывает в другой набор.
Другой вариант защиты переменных состояния состоит в том, чтобы различить функции ЯГС, просто считывающие значения данных, от тех, которые записывают их Метод, описанный выше, рассматривает «читателей» и «писателей» одинаково; таким образом он запрещает двум задачам прикладной программы одновременно считывать информацию о состоянии. Можно написать программу монитор таким образом, чтобы допускалось одновременное считывание задачами прикладной программы и запрещались одновременное записывание и одновременное считывание и записывание. Существует множество различных подходов к решению данной задачи, зависящих от учета программистом таких факторов, как:
- возможность задачи прикладной программы быть преждевременно прерванной;
- возможность задачи прикладной программы «голодать» по обслуживанию из-за того, как запрограммирован прием входов.
Реализация ЯГС, которые поддерживают многозадачные программы на языке Ада, могут быть использованы для программ, которые являются полностью последовательными, хотя эффективность при этом может несколько снизиться. При реализации может также возникнуть идея предоставить два тела пакета ЯГС: одно для последовательных применений, другое - для многозадачных.
(Это приложение не является составной частью стандарта, но дает дополнительную информацию.)
В настоящем приложении проясняются взаимоотношения между метафайлом GKSM и обобщенными примитивами вывода (ОПВ) и расширениями (ESC). Каждая функция ОПВ и ESC, являющаяся зарегистрированной, доступна для прикладных программ как отдельная процедура со своими собственными формальными параметрами и именем подпрограммы, как описано в п. 5.1.
Реализация ЯГС/Ада должна предоставлять возможность записывать и считывать зарегистрированные ОПВ и ESC в метафайл, даже если реализация не поддерживает функций ОПВ и ESC. Следовательно, чтобы данная возможность поддерживалась, форматы записей данных для зарегистрированных ОПВ и ESC должны существовать между реализациями
Например, пусть метафайл А генерируется в реализации ЯГС/Ада, которая поддерживает ОПВ-окружность. Метафайл А теперь имеет запись данных, содержащую идентификатор окружности, точку центра и радиус Далее метафайл А переносится в другую реализацию, которая не поддерживает ОПВ-окружность В новой среде будет генерироваться метафайл В, содержащий весь метафайл А и дополнительные графические данные. И важно, чтобы ОПВ-окружность из метафайла А был включен в метафайл В, даже если ни одна станция в этой среде не способна генерировать изображение окружности.
Для иллюстрации метода в следующем примере показаны фрагмент прикладного кода и реализация функции метафайла
INTERPRET_ITEM.
with GKS;
use GKS;
with GKS_TYPES;
use GKS_TYPES;
- Данная прикладная программа передает данные из метафайла А в метафайл В.
procedure TRANSFER_METAFILE is
- описание переменных
INPUT_METAFILE OUTPUT_METAFILE INPUT_METAFILE_TYPE OUTPUT_METAFILE_TYPE INPUT_METAFILE_CONNECTION_ID OUTPUT_METAFILE_CONNECTION_ID METAFILE_DATA_RECORD METAFILE_ITEM_TYPE LENGTH, MAX_LENGTH
|
: constant WS_ID : = 1; : constant WS_ID : = 2; : constant WS_TYPE : = 2; : constant WS_TYPE : = 3; : constant STRING : = «METAFILE_A»; : constant STRING : = «METAFILE_B»; : GKSM_DATA_RECORD; : GKSM_ITEM_TYPE; : NATURAL : = 500; |
ERROR_FILE : constant STRING = «MY_ERROR_FILE»; begin |
- Открыть ЯГС.
OPEN_GKS (ERROR_FILE);
- Открыть метафайлы ввода и вывода.
OPEN_WS (INPUT_METAFILE, INPUT_METAFILE_CONNECTION_ID, INPUT_METAFILE_TYPE);
OPEN_WS (OUTPUT_METAFILE, OUTPUT_METAFILE_CONNECTION_ID, OUTPUT_METAFILE_TYPE);
- Активизировать только метафайл ввода.
ACTIVATE_WS (OUTPUT_METAFILE);
- В данном цикле каждый элемент метафайла А считывается и передается в ЯГС посредством вызова функции INTERPRET_ITEM. Помните, что метафайл А содержит ОПВ-окружности, обрабатываемые функцией INTERPRET_IТЕМ, которая представлена далее в примере.
loop
GET_ITEM_TYPE_FROM_GKSM_(INPUT_METAFILE METAFILE_ITEM_TYPE, LENGTH);
if METAFILE_ITEM_TYPE = 0 then
exit; - выйти из цикла, метафайл полон.
end if;
READ_ITEM_FROM_GKSM (INPUT_METAFILE, MAX_LENGTH, METAFILE_DATA_RECORD);
INTERPRET_ITEM (METAFILE_DATA_RECORD);
end loop;
- Деактивируется только выходной файл.
DEAKTIVATE_WS (OUTPUT_METAFILE);
- Закрыть метафайлы ввода и вывода.
CLOSE_WS (INPUT_METAFILE);
CLOSE_WS (OUTPUT_METAFILE);
- Закрыть GKS.
CLOSE_GKS;
end TRANSFER_METAFILE;
- Пример прикладной программы опирается на реализацию функции INTERPRET_ITEM для распознавания ОПВ-окружности и передачи ОПВ в выходной метафайл. Это легко может быть выполнено следующим сегментом кода.
- Предположим, что личный тип GKSM_DATA_RECORD декларирован как тип записи дискриминанты с различными компонентами, основанными на типе элементов. Когда GKSM_DATA_RECORD содержит ОПВ, имеются различные поля, содержащие всю существующую информацию о ОПВ.
type GKSM_DATA_RECORD (TYPE_OF_ITEM LENGTH record case TYPE_OF_ITEM is when OPEN_GKS when POLYLINE when GDP |
: GKSM_ITEM_TYPE : = 0; : NATURAL : = 0) is
= > ... = > ... = > |
ID NUM_PTS INTEGER_DATA_LENGTH REAL_DATA_LENGTH LIST_OF_POINTS INTEGER_DATA REAL_DATA when... end case; end record; |
: GDP_ID; : POSITIVE; : NATURAL; : NATURAL; : WC.POINT_ARRAY (1 .. NUM_PTS); : INTEGER_ARRAY (1 .. INTEGER_DATA_LENGTH); : REAL_ARRAY (1 .. REAL_DATA_LENGTH); |
- Пример того, как реализация могла бы поддержать передачу нереализованного ОПВ через функцию INTERPRET_ITEM.
procedure INTERPRET_ITEM (ITEM : in GKSM_DATA_RECORD) is
REGISTERED_GDP_CIRCLE : constant GDP_ID: = 1;
begin
case ITEM TYPE_OF_ITEM is
when OPEN_GKS = > ...
when POLYLINE = > ...
when GDP = >
case ITEM ID is
when REGISTERED_GDP_SPLINE = > ...
when REGISTERED_GDP_ELLIPSE = > ...
when REGISTERED_GDP_CIRCLE = >
- Вызвать генератор метафайла, в котором запись данных ITEM как параметр записывается во все открытые и активные метафайлы.
when...
end case;
end case;
end INTERPRET_ITEM;
(Это приложение не является составной частью стандарта, но дает дополнительную информацию.)
Функция GET ITEM TYPE FROM GKSM возвращает тип следующего элемента метафайла, однако значение данного типа может изменяться в зависимости от реализации метафайла. Для того, чтобы можно было писать программы, независимые от реализации метафайла, предлагаются имена в Аде (см. таблицу). В реализации следует задать эти имена со значениями, которые соответствуют значениям, возвращаемым процедурой GET ITEM TYPE FROM GKSM.
Тип элемента GKSM |
Имя в Аде |
ФЛАГИ ВЫБОРКИ АТРИБУТОВ МАТРИЦА ЯЧЕЕК МАСШТАБ РАСШИРЕНИЯ ЛИТЕР МЕЖЛИТЕРНЫЙ ПРОСВЕТ ВЕКТОРА ЛИТЕРЫ ОЧИСТИТЬ СТАНЦИЮ ПРЯМОУГОЛЬНИК ОТСЕЧЕНИЯ ЗАКРЫТЬ СЕГМЕНТ ПРЕДСТАВЛЕНИЕ ЦВЕТА СОЗДАТЬ СЕГМЕНТ РЕЖИМ ЗАДЕРЖКИ УНИЧТОЖИТЬ СЕГМЕНТ КОНЕЦ ЗАПИСИ РАСШИРЕНИЕ ПОЛИГОНАЛЬНАЯ ОБЛАСТЬ ИНДЕКС ЦВЕТА ПОЛИГОНАЛЬНОЙ ОБЛАСТИ ИНДЕКС ПОЛИГОНАЛЬНОЙ ОБЛАСТИ ВИД ЗАПОЛНЕНИЯ ПОЛИГОНАЛЬНОЙ ОБЛАСТИ ПРЕДСТАВЛЕНИЕ ПОЛИГОНАЛЬНОИ ОБЛАСТИ ИНДЕКС ЗАПОЛНИТЕЛЯ ПОЛИГОНАЛЬНОИ ОБЛАСТИ ОБОБЩЕННЫЙ ПРИМИТИВ ВЫВОДА (ОПВ) ТИП ЛИНИИ МАСШТАБ ШИРИНЫ ЛИНИИ МАСШТАБ РАЗМЕРА МАРКЕРА ТИП МАРКЕРА СООБЩЕНИЕ ОПОРНАЯ ТОЧКА ШАБЛОНА ПРЕДСТАВЛЕНИЕ ШАБЛОНА ВЕКТОРА ШАБЛОНА ИДЕНТИФИКАТОР ВЫБОРА ЛОМАНАЯ ИНДЕКС ЦВЕТА ЛОМАНОЙ ИНДЕКС ЛОМАНОЙ ПРЕДСТАВЛЕНИЕ ЛОМАНОЙ ПОЛИМАРКЕР ИНДЕКС ЦВЕТА ПОЛИМАРКЕРА ПРЕДСТАВЛЕНИЕ ПОЛИМАРКЕРА ПЕРЕРИСОВАТЬ ВСЕ СЕГМЕНТЫ НА СТАНЦИИ ПЕРЕИМЕНОВАТЬ СЕГМЕНТЫ ЗАДАТЬ ЧУВСТВИТЕЛЬНОСТЬ К УКАЗАНИЮ ЗАДАТЬ ВЫДЕЛЕНИЕ ЗАДАТЬ ПРИОРИТЕТ СЕГМЕНТА ЗАДАТЬ ПРЕОБРАЗОВАНИЕ СЕГМЕНТА ЗАДАТЬ ВИДИМОСТЬ ТЕКСТ ВЫРАВНИВАНИЕ ТЕКСТА ИНДЕКС ЦВЕТА ТЕКСТА ШРИФТ И ТОЧНОСТЬ ТЕКСТА ИНДЕКС ТЕКСТА НАПРАВЛЕНИЕ ТЕКСТА ПРЕДСТАВЛЕНИЕ ТЕКСТА ОБНОВИТЬ ИЗОБРАЖЕНИЕ НА СТАНЦИИ НАЧАЛО ЗАПИСИ ПОЛЬЗОВАТЕЛЯ ПОЛЕ ВЫВОДА СТАНЦИИ ОКНО СТАНЦИИ |
GKSM_ASF GKSM_CELL_ARRAY GKSM_CHAR_EXPANSION_FACTOR GKSM_CHAR_SPACING GKCM_CHAR_VECTORS GKSM_CLEAR_WS GKSM_CLIPPING_RECTANGLE GKSM_CLOSE_SEGMENT GKSM_COLOUR_REPRESENTATION GKSM_CREATE_SEGMENT GKSM_DEFERRAL_STATE GKSM_DELETE_SEGMENT GKSM_END_ITEM GKSM_ESCAPE GKSM_FILL_AREA GKSM_FILL_AREA_COLOUR_INDEX GKSM_FILL_AREA_INDEX GKSM_FILL_AREA_INTERIOR_STYLE GKSM_FILL_AREA_REPRESENTATION GKSM_FILL_AREA_STYLE_INDEX GKSM_GDP GKSM_LINETYPE GKSM_LINEWIDTH_SCALE_FACTOR GKSM_MARKER_SIZE_SCALE_FACTOR GKSM_MARKER_TYPE GKSM_MESSAGE GKSM_PATTERN_REFERENCE_POINT GKSM_PATTERN_REPRESENTATION GKSM_PATTERN_VECTORS GKSM_PICK_ID GKSM_POLYLINE GKSM_POLYLINE_COLOUR_INDEX GKSM_POLYLINE_INDEX GKSM_POLYLINE_REPRESENTATION GKSM_POLYMARKER GKSM_POLYMARKER_COLOUR_INDEX GKSM_POLYMARKER_REPRESENTATION GKSM_REDRAW_ALL_SEGMENT_WS GKSM_RENAME_SEGMENT GKSM_SET_DETECTABILITY GKSM_SET_HIGHLIGHTING GKSM_SET_SEGMENT_PRIORITY GKSM_SET_SEGMENT_TRANSFORMATION GKSM_SET_VISIBLITY GKSM_TEXT GKSM_TEXT_ALIGNMENT GKSM_TEXT_COLOUR_INDEX GKSM_TEXT_FONT_AND_PRECISION GKSM_TEXT_INDEX GKSM_TEXT_PATH GKSM_TEXT_REPRESENTATION GKSM_UPDATE_WS GKSM_USER_ITEM GKSM_WS_VIEWPORT GKSM_WS_WINDOW |
(Это приложение не является составной частью стандарта, но дает дополнительную информацию.)
Ж.1. Функции ЯГС
ACCUMULATE TRANSFORMATION MATRIX |
. . . . . |
ACTIVATE WORKSTATION |
. . . . . |
ASSOCIATE SEGMENT WITH WORKSTATION |
. . . . . |
AWAIT EVENT |
. . . . . |
CELL ARRAY |
. . . . . |
CLEAR WORKSTATION |
. . . . . |
CLOSE CKS |
. . . . . |
CLOSE SEGMENT |
. . . . . |
CLOSE WORKSTATION |
. . . . . |
COPY SEGMENT TO WORKSTATION |
. . . . . |
CREATE SEGMENT |
. . . . . |
DEACTIVATE WORKSTATION |
. . . . . |
DELETE SEGMENT |
. . . . . |
DELETE SEGMENT FROM WORKSTATION |
. . . . . |
EMERGENCY CLOSE GKS |
. . . . . |
ERROR HANDLING |
. . . 4, 5 |
ERROR LOGGING |
. . . 5 |
ESCAPE |
. . . . . |
EVALUATE TRANSFORMATION MATRIX |
. . . . . |
FILL AREA |
. . . . . |
FLUSH DEVICE EVENTS |
. . . . . |
GENERALIZED D RAWING PRIMITIVE |
. . . . . |
GET CHOICE |
. . . . . |
GET ITEM TYPE FROM GKSM |
. . . . . |
GET LOCATOR |
. . . . . |
GET PICK |
. . . . . |
GET STRING |
. . . . . |
GET STROKE |
. . . . . |
GET VALUATOR |
. . . . . |
INITIALISE CHOICE |
. . . . . |
INITIALISE LOCATOR |
. . . . . |
INITIALISE PICK |
. . . . . |
INITIALISE STRING |
. . . . . |
INITIALISE STROKE |
. . . . . |
INITIALISE VALUATOR |
. . . . . |
INQUIRE CHOICE DEVICE STATE |
. . . . . |
INQUIRE CLIPPING |
. . . . . |
INQUIRE COLOUR FACILITIES |
. . . . . |
INQUIRE COLOUR REPRESENTATION |
. . . . . |
INQUIRE CURRENT INDIVIDUAL ATTRIBUTE VALUES |
. . . 4, |
INQUIRE CURRENT NORMALIZATION TRANSFORMATION NUMBER |
. . . . . |
INQUIRE CURRENT PICK-IDENTIFIER VALUE |
. . . . . |
INQUIRE CURRENT PRIMITIVE ATTRIBUTE VALUES |
. . . 4, 72 |
INQUIRE DEFAULT CHOICE DEVICE DATA |
. . . 90 |
INQUIRE DEFAULT DEFERRAL STATE VALUES |
. . . 84 |
INQUIRE DEFAULT LOCATOR DEVICE DATA |
. . . 89 |
INQUIRE DEFAULT PICK DEVICE DATA |
. . . 91 |
INQUIRE DEFAULT STRING DEVICE DATA |
. . . 91 |
INQUIRE DEFAULT STROKE DEVICE DATA |
. . . 90 |
INQUIRE DEFAULT VALUATOR DEVICE DATA |
. . . 90 |
INOUTRF DTSPT AY SPACF SITE |
. . . 83 |
INQUIRE DYNAMIC MODIFICATION OF SEGMENT ATTRIBUTES |
. . . 88 |
INQUIRE DYNAMIC MODIFICATION OF WORKSTATION ATTRIBUTES |
. . . 83 |
INQUIRE FILL AREA FACILITIES |
. . . 86 |
INQUIRE FILL AREA REPRESENTATION |
. . . 79 |
INQUIRE GENERALIZED DRAWING PRIMITIVE |
. . . 87 |
INQUIRE INPUT QUEUE OVERFLOW |
. . . 92 |
INQUIRE LEVEL OF GKS |
. . . 71 |
INQUIRE LIST OF AVAILABLE GENERALIZED DRAWING PRIMITIVES |
. . . 87 |
INQUIRE LIST OF AVAILABLE WORKSTATION TYPES |
. . . 71 |
INQUIRE LIST OF COLOUR INDICES |
. . . 79 |
INQUIRE LIST OF FILL AREA INDICES |
. . . 78 |
INQUIRE LIST OF NORMALIZATION TRANSFORMATION NUMBERS |
. . . 75 |
INQUIRE LIST OF PATTERN INDICES |
. . . 79 |
INQUIRE LIST OF POLYLINE INDICES |
. . . 77 |
INQUIRE LIST OF POLYMARKER INDICES |
. . . 77 |
INQUIRE LIST OF TEXT INDICES |
. . . 78 |
INQUIRE LOCATOR DEVICE STATE |
. . . 80 |
INQUIRE MAXIMUM LENGTH OF WORKSTATION STATE TABLES |
. . . 88 |
INQUIRE MAXIMUM NORMALIZATION TRANSFORMATION NUMBER |
. . . 72 |
INQUIRE MORE SIMULTANEOUS EVENTS |
. . . 76 |
INQUIRE NAME OF OPEN SEGMENT |
. . . 75 |
INQUIRE NORMALIZATION TRANSFORMATION |
. . . 75 |
INQUIRE NUMBER OF AVAILABLE LOGICAL INPUT DEVICES |
. . . 89 |
INQUIRE NUMBER OF SEGMENT PRIORITIES SUPPORTED |
. . . 88 |
INQUIRE OPERATING STATE VALUE |
. . . 71 |
INQUIRE PATTERN FACILITIES |
. . . 86 |
INQUIRE PATTERN REPRESENTATION |
. . . 79 |
INQUIRE PICK DEVICE STATE |
. . . 82 |
INQUIRE PIXEL |
. . . 92 |
INQUIRE PIXEL ARRAY DIMENSION |
. . . 92 |
INQUIRE PIXEL ARRAY |
. . . 92 |
INQUIRE POLYLINE FACILITIES |
. . . 84 |
INQUIRE POLYLINE REPRESENTATION |
. . . 77 |
INQUIRE POLYMARKER FACILITIES |
. . . 84 |
INQUIRE POLYMARKER REPRESENTATION |
. . . 77 |
INQUIRE PREDEFINED COLOUR REPRESENTATION |
. . . 87 |
INQUIRE PREDEFINED FILL AREA REPRESENTATION |
. . . 86 |
INQUIRE PREDEFINED PATTERN REPRESENTATION |
. . . 86 |
INQUIRE PREDEFINED POLYLINE PERPESENTATION |
. . . 84 |
INQUIRE PREDEFINED POLYMARKER REPRESENTATION |
. . . 85 |
INQUIRE PREDEFINED TEXT REPRESENTATION |
. . . 85 |
INQUIRE SEGMENT ATTRIBUTES |
. . . 91 |
INQUIRE SET OF ACTIVE WORKSTATIONS |
. . . 72 |
INQUIRE SET OF ASSOCIATED WORKSTATIONS |
. . . 91 |
INQUIRE SET OF OPEN WORKSTATIONS |
. . . 72 |
INQUIRE SET OF SEGMENT NAMES IN USE |
. . . 76 |
INQUIRE SET OF SEGMENT NAMES ON WORKSTATION |
. . . 80 |
INQUIRE STRING DEVICE STATE |
. . . 82 |
INQUIRE STROKE DEVICE STATE |
. . . 81 |
INQUIRE TEXT EXTENT |
. . . 78 |
INQUIRE TEXT FACILITIES |
. . . 83 |
INQUIRE TEXT REPRESENTATION |
. . . 78 |
INQUIRE VALUATOR DEVICE STATE |
. . . 81 |
INQUIRE WORKSTATION CATEGORY |
. . . 82 |
INQUIRE WORKSTATION CLASSIFICATION |
. . . 83 |
INQUIRE WORKSTATION CONNECTION AND TYPE |
. . . 76 |
INQUIRE WORKSTATION DEFERRAL AND UPDATE STATES |
. . . 76 |
INQUIRE WORKSTATION MAXIMUM NUMBERS |
. . . 71 |
INQUIRE WORKSTATION STATE |
. . . 76 |
INQUIRE WORKSTATION TRANSFORMATION |
. . . 80 |
INSERT SEGMENT |
. . . 63 |
INTERPRET ITEM |
. . . 71 |
MESSAGE |
. . . 53 |
OPEN GKS |
. . . 52 |
OPEN WORKSTATION |
. . . 52 |
POLYLINE |
. . . 55 |
POLYMARKER |
. . . 55 |
READ ITEM FROM GKSM |
. . . 71 |
REDRAW ALL SEGMENTS ON WORKSTATION |
. . . 53 |
RENAME SEGMENT |
. . . 62 |
REQUEST CHOICE |
. . . 67 |
REQUEST LOCATOR |
. . . 66 |
REQUEST PICK |
. . . 67 |
REQUEST STRING |
. . . 68 |
REQUEST STROKE |
. . . 67 |
REQUEST VALUATOR |
. . . 67 |
SAMPLE CHOICE |
. . . 69 |
SAMPLE LOCATOR |
. . . 68 |
SAMPLE PICK |
. . . 69 |
SAMPLE STRING |
. . . 69 |
SAMPLE STROKE |
. . . 68 |
SAMPLE VALUATOR |
. . . 68 |
SELECT NORMALIZATION TRANSFORMATION |
. . . 61 |
SET ASPECT SOURCE FLAGS |
. . . 59 |
SET CHARACTER EXPANSION FACTOR |
. . . 58 |
SET CHARACTER HEIGHT |
. . . 58 |
SET CHARACTER SPACING |
. . . 58 |
SET CHARACTER UP VECTOR |
. . . 58 |
SET CHOICE MODE |
. . . 66 |
SET CLIPPING INDICATOR |
. . . 61 |
SET COLOUR REPRESENTATION |
. . . 60 |
SET DEFERRAL STATE |
. . . 53 |
SET DETECTABILITY |
. . . 63 |
SET FILL AREA COLOUR INDEX |
. . . 58 |
SET FILL AREA INDEX |
. . . 58 |
SET FILL AREA INTERIOR STYLE |
. . . 59 |
SET FILL AREA REPRESENTATION |
. . . 60 |
SET FILL AREA STYLE INDEX |
. . . 59 |
SET HIGHLIGHTING |
. . . 63 |
SET LINETYPE |
. . . 57 |
SET LINEWIDTH SCALE FACTOR |
. . . 57 |
SET LOCATOR MODE |
. . . 65 |
SEI MARKER SIZE SCALE FACTOR |
. . . 57 |
SET MARKER TYPE |
. . . 57 |
SET PATTERN REFERENCE POINT |
. . . 59 |
SET LINEWIDTH SCALE FACTOR |
. . . 57 |
SET LOCATOR MODE |
. . . 65 |
SET MARKER SIZE SCALE FACTOR |
. . . 57 |
SET MARKER TYPE |
. . . 57 |
SET PATTERN REFERENCE POINT |
. . . 59 |
SET PATTERN REPRESENTATION |
. . . 60 |
SET PATTERN SIZE |
. . . 59 |
SET PICK IDENTIFIER |
. . . 59 |
SET PICK MODE |
. . . 66 |
SET POLYLINE COLOUR INDEX |
. . . 57 |
SET POLYLINE INDEX |
. . . 57 |
SET POLYLINE REPRESENTATION |
. . . 59 |
SET POLYMARKER COLOUR INDEX |
. . . 57 |
SET POLYMARKER INDEX |
. . . 57 |
SET POLYMARKER REPRESENTATION |
. . . 60 |
SET SEGMENT PRIORITY |
. . . 63 |
SET SEGMENT TRANSFORMATION |
. . . 63 |
SET STRING MODE |
. . . 66 |
SET STROKE MODE |
. . . 65 |
SET TEXT ALIGNMENT |
. . . 58 |
SET TEXT FONT AND PRECISION |
. . . 58 |
SET TEXT INDEX |
. . . 57 |
SET TEXT PATH |
. . . 58 |
SET TEXT REPRESENTATION |
. . . 60 |
SET VALUATOR MODE |
. . . 66 |
SET VIEWPORT |
. . . 61 |
SET VIEWPORT INPUT PRIORITY |
. . . 61 |
SET VISIBILITY |
. . . 63 |
SET WINDOW |
. . . 61 |
SET WORKSTATION VIEWPORT |
. . . 62 |
SET WORKSTATION WINDOW |
. . . 61 |
TEXT |
. . . 55 |
UPDATE WORKSTATION |
. . . 53 |
WRITE ITEM TO GKSM |
. . . 70 |
Ж.2. Процедуры языка Ада
ACCUMULATE_TRANSFORMATION_MATRIX |
. . . 93 |
ACTIVATE_WS |
. . . 52 |
ASSOCIATE_SEGMENT_WITH_WS |
. . . 62 |
AWAIT_EVENT |
. . . 69 |
CELL_ARRAY |
. . . 55 |
CLEAR_WS |
. . . 53 |
CLOSE_GKS |
. . . 52 |
CLOSE_SEGMENT |
. . . 62 |
CLOSE_WS |
. . . 52 |
COPY_SEGMENT_TO_WS |
. . . 63 |
CREATE_SEGMENT |
. . . 62 |
DEACTIVATE_WS |
. . . 53 |
DELETE_SEGMENT |
. . . 62 |
DELETE_SEGMENT_FROM_WS |
. . . 62 |
EMERGENCY_CLOSE_GKS |
. . . 94 |
ERROR_HANDLING |
. . . 4, 5, 94 |
ERROR_LOGGING |
. . . 5, 94 |
ESCAPE |
. . . 53 |
EVALUATE_TRANSFORMATION_MATRIX |
. . . 93 |
FILL_AREA |
. . . 55 |
FLUSH_DEVICE_EVENTS |
. . . 69 |
GDP |
. . . 55 |
GET_CHOICE |
. . . 70 |
GET_ITEM_TYPE_FROM_GKSM |
. . . 71 |
GET_LOCATOR |
. . . 70 |
GET_PICK |
. . . 70 |
GET_STRING |
. . . 70 |
GET_STROKE |
. . . 70 |
GET_VALUATOR |
. . . 70 |
INITIALISE_CHOICE |
. . . 64 |
INITIALISE_LOCATOR |
. . . 64 |
INITIALISE_PICK |
. . . 65 |
INITIALISE_STRING |
. . . 65 |
INITIALISE_STROKE |
. . . 64 |
INITIALISE_VALUATOR |
. . . 64 |
INQ_CHAR_BASE_VECTOR |
. . . 130 |
INQ_CHAR_EXPANSION_FACTOR |
. . . 131 |
INQ_CHAR_HEIGHT |
. . . 129 |
INQ_CHAR_SPACING |
. . . 131 |
INQ_CHAR_UP_VECTOR |
. . . 129 |
INQ_CHAR_WIDTH |
. . . 129 |
INQ_CHOICE_DEVICE_STATE |
. . . 81 |
INQ_CLIPPING |
. . . 73 |
INQ_COLOUR_FACILITIES |
. . . 79 |
INQ_COLOUR_REPRESENTATION |
. . . 4, 73 |
INQ_CURRENT_INDIVIDUAL_ATTRIBUTE_VALUES |
. . . 74 |
INQ_CURRENT_NORMALIZATION_TRANSFORMATION_NUMBER |
. . . 75 |
INQ_CURRENT_PICK_ID_VALUE |
. . . 73 |
INQ_CURRENT_PRIMITIVE_ATTRIBUTE_VALUES |
. . . 4, 72 |
INQ_DEFAULT_CHOICE_DEVICE_DATA |
. . . 90 |
INQ_DEFAULT_DEFERRAL_STATE_VAILUE |
. . . 84 |
INQ_DEFAULT_LOCATOR_DEVICE_DATA |
. . . 83 |
INQ_DEFAULT_PICK_DEVICE_DATA |
. . . 91 |
INQ_DEFAULT_STRING_DEVICE_DATA |
. . . 91 |
INQ_DEFAULT_STROKE_DEVICE_DATA |
. . . 90 |
INQ_DEFAULT_VALUATQR_DEVICE_1 |
. . . 90 |
INQ_DISPIAY_SPACE_SIZE |
. . . 88 |
INQ_DYNAMIC_MODIFICATION_OF |
. . . 83 |
INQ_DYNA MIC_MODIFICATION_OF |
. . . 83 |
INQ_FILL_AREA_COLOUR_IWDEX |
. . . 78 |
INQ_FILL_AREA_FACILITIES |
. . . 86 |
INQ_FILL_AREA_INDEX |
. . . 78 |
INQ_FILL_AREA_INTERIOR_STYLE |
. . . 131 |
INQ_FILL_AREA_REPRESENTATION |
. . . 133 |
INQ_FILL_AREA_STYLE_INDEX |
. . . 133 |
INQ_GDP |
. . . 87 |
INQ_INPUT_QUEUE_OVERFLOW |
. . . 140 |
INQ_LEVEL_OF_GKS |
. . . 74 |
INQ_LINETYPE |
. . . 130 |
INQ_LINEWIDTH_SCALE_FACTOR |
. . . 130 |
INQ_LIST_OF_ASF |
. . . 131 |
INQ_LIST_OF_AVAILABLE_GDP |
. . . 137 |
INQ_UST_OF_AVAILABLE_WS_TYPES |
. . . 129 |
INQ_LIST_OF_COLOUR_INMCES |
. . . 133 |
INQ_LIST_OF_FILL_AREA_INDICES |
. . . 133 |
INQ_LIST_OF_NORMALIZATION_TRANSFORMATION_NUMBERS |
. . . 131 |
INQ_LIST_OF_PATTERN_INDICES |
. . . 79 |
INQ_LIST_OF_POLYLINE_INDICES |
. . . 77 |
INQ_LIST_OF_POLYMARKER_INDICES |
. . . 77 |
INQ_LIST_OF_TEXT_INDICES |
. . . 78 |
INQ_LOCATOR_DEVICE_STATE |
. . . 80 |
INQ_M AX_LENGTH_OF_WS_STATE_TABLES |
. . . 88 |
INQ_MAX_NORMALIZATION_TRANSFORMATION_NUMBER |
. . . 72 |
INQ_MORE_SIMULTANEOUS_EVENTS |
. . . 76 |
INQ_NAME_OF_OPEN_SEGMENT |
. . . 75 |
INQ_NORMALIZATION_TRANSFORMATION |
. . . 75 |
INQ_NUMBER_OF_AVAILABLE_LOGICAL_INPUT_DEVICES |
. . . 88 |
INQ_NUMBER_OF_SEGMENT_PRIORITIES_SUPPORTED |
. . . 88 |
INQ_OPERATING_STATE_VALUE |
. . . 71 |
INQ_PATTERN_FACILITIES |
. . . 86 |
INQ_PATTFRN_HEIGHT_ VECTOR |
. . . 73 |
INQ_PATTERN_REFERENCE_POINT |
. . . 73 |
INQ_PATTERN_REPRESENTATION |
. . . 79 |
INQ_PATTERN_WIDTH_VECTOR |
. . . 73 |
INQ_PICK_DEVICE_STATE |
. . . 73 |
INQ_PIXEL |
. . . 92 |
INQ_PIXEL_ARRAY |
. . . 92 |
INQ_PIXEL_ARRAY_DIMENSION |
. . . 92 |
INQ_POLYLINE_COLOUR_INDEX |
. . . 74 |
INQ_POLYLINE_FACILITIES |
. . . 84 |
INQ_POLYLINE_INDEX |
. . . 72 |
INQ_POLYLINE_REPRESENTATION |
. . . 77 |
INQ_POLYMARKER_COLOUR_INDEX |
. . . 74 |
INQ_POLYMARKER_FACILITIES |
. . . 136 |
INQ_POLYMARKER_INDEX |
. . . 129 |
INQ_POLYMARKER_REPRESENTATION |
. . . 77 |
INQ_POLYMARKER_SIZE_SCALE_FACTOR |
. . . 74 |
INQ_POLYMARKER_TYPE |
. . . 74 |
INQ_PREDEFINED_CQLOUR_REPRESENTATION |
. . . 87 |
INQ_PREDEFINED_FILL_AREA_REPRESENTATION |
. . . 86 |
INQ_PREDEFINED_PATTERN_REPRESENTATION |
. . . 86 |
INQ_PREDEFINED_POLYLINE_REPRESENTATION |
. . . 84 |
INQ_PREDEFINED_POLYMARKER_REPRESENTATION |
. . . 85 |
INQ_PREDEFINED_TEXT_REPRESENTATION |
. . . 85 |
INQ_SEGMENT_ATTRIBUTES |
. . . 91 |
INQ_SET_OF_ACTIVE_WS |
. . . 72 |
INQ_SET_OF_ASSOCIATED_W |
. . . 91 |
INQ_SET_OF_OPEN_WS |
. . . 72 |
INQ_SET_OF_SEGMIENT_NAMES_IN_USE |
. . . 76 |
INQ_SET_OF_SEGMENT_NAMES_ON_WS |
. . . 80 |
INQ_STRRNG_DEVICE_STATE |
. . . 82 |
INQ_STROKE_DEVICE_STATE |
. . . 81 |
INQ_TEXT_ALIGNMENT |
. . . 73 |
INQ_TEXT_COLOUR_INDEX |
. . . 74 |
INQ_TEXT_EXTENT |
. . . 78 |
INQ_TEXT_FACILITIES |
. . . 85 |
INQ_TEXT_FONT_AND_PREGISION |
. . . 74 |
INQ_TEXT_INDEX |
. . . 72 |
INQ_TEXT_PATH |
. . . 73 |
INQ_TEXT_REPRESENTATION |
. . . 78 |
INQ_VALUATOR_DEVICE_STATE |
. . . 81 |
INQ_WS_CATEGORY |
. . . 82 |
INQ_WS_CLASSIFICATION |
. . . 83 |
INQ_WS_CONNECTION_AND_TYPE |
. . . 76 |
INQ_WS_DEFERRAL_AND_UPDATE_STATES |
. . . 76 |
INQ_WS_MAX_NUMBERS |
. . . 76 |
INQ_WS_STATE |
. . . 76 |
INQ_WS_TRANSFORMATION |
. . . 80 |
INSERT_SEGMENT |
. . . 63 |
INTERPRET_ITEM |
. . . 71 |
MESSAGE |
. . . 53 |
OPEN_GKS |
. . . 52 |
OPEN_WS |
. . . 52 |
POLYLINE |
. . . 55 |
POLYMARKER |
. . . 55 |
READ_ITEM_FROM_GKSM |
. . . 71 |
REDRAW_ALL_SEGMENTS_ON_WS |
. . . 53 |
RENAME_SEGMENT |
. . . 62 |
REQUEST_CHOICE |
. . . 67 |
REQUEST_LOCATOR |
. . . 66 |
REQUEST_PICK |
. . . 66 |
REQUEST_STRING |
. . . 68 |
REQUEST_STROKE |
. . . 67 |
REQUEST_VALUATOR |
. . . 67 |
SAMPLE_CHOICE |
. . . 69 |
SAMPLE_LOCATOR |
. . . 68 |
SAMPLE_PICK |
. . . 69 |
SAMPLE_STRING |
. . . 69 |
SAMPLE_STROKE |
. . . 68 |
SAMPLE_VALUATOR |
. . . 68 |
SELECT_NORMALIZATION_TRANSFORMATION |
. . . 61 |
SET_ASF |
. . . 59 |
SET_CHAR_EXPANSION_FACTOR |
. . . 58 |
SET_CHAR_HEIGHT |
. . . 58 |
SET_CHAR_SPACING |
. . . 58 |
SET_CHAR_UP_VECTOR |
. . . 58 |
SET_CHOICE_MODE |
. . . 66 |
SET_CLIPPING_INDICATOR |
. . . 61 |
SET_COLOUR_REPRESENTATION |
. . . 60 |
SET_DEFERRAL_STATE |
. . . 53 |
SET_DETECTABILITY |
. . . 63 |
SET_FILL_AREA_COLOUR_INDEX |
. . . 59 |
SET_FILL_AREA_INDEX |
. . . 58 |
SET_FILL_AREA_INTERIOR_STYLE |
. . . 59 |
SET_FILL_AREA_REPRESENTATION |
. . . 60 |
SET_FILL_AREA_STYLE_INDEX |
. . . 59 |
SET_HIGHLIGHTING |
. . . 63 |
SET_LINETYPE |
. . . 57 |
SET_LINEWIDTH_SCALE_FACTOR |
. . . 57 |
SET_LOCATOR_MODE |
. . . 65 |
SET_MARKER_SIZE_SCALE_FACTOR |
. . . 57 |
SET_MARKER_TYPE |
. . . 57 |
SET_PATTERN_REFERENCE_POINT |
. . . 59 |
SET_LINEWIDTH_SCALE_FACTOR |
. . . 57 |
SET_LOCATOR_MODE |
. . . 65 |
SET_MARKER_SIZE_SCALE_FACTOR |
. . . 57 |
SET_MARKER_TYPE |
. . . 57 |
SET_PATTERN_REFERENCE_POINT |
. . . 59 |
SET_PATTERN_REPRESENTATION |
. . . 60 |
SET_PATTERN_SIZE |
. . . 59 |
SET_PICK_ID |
. . . 59 |
SET_PICK_MODE |
. . . 66 |
SET_POLYLINE_COLOUR_INDEX |
. . . 57 |
SET_POLYLINE_INDEX |
. . . 57 |
SET_POLYLINE_REPRESENTATION |
. . . 59 |
SET_POLYMARKER_COLOUR_INDEX |
. . . 57 |
SET_POLYMARKER_INDEX |
. . . 57 |
SET_POLYMARKER_REPRESENTATION |
. . . 60 |
SET_SEGMENT_PRIORITY |
. . . 63 |
SET_SEGMENT_TRANSFORMATION |
. . . 63 |
SET_STRING_MODE |
. . . 66 |
SET_STROKE_MODE |
. . . 65 |
SET_TEXT_ALIGNMENT |
. . . 58 |
SET_TEXT_COLOUR_INDEX |
. . . 58 |
SET_TEXT_FONT_AND_PRECISION |
. . . 58 |
SET_TEXT_INDEX |
. . . 57 |
SET_TEXT_PATH |
. . . 58 |
SET_TEXT_REPRESENTATION |
. . . 60 |
SET_VALUATOR_MODE |
. . . 66 |
SET_VIEWPORT |
. . . 61 |
SET_VIEWPORT_INPUT_PRIORITY |
. . . 61 |
SET_VISIBILITY |
. . . 63 |
SET_WINDOW |
. . . 61 |
SET_WS_VIEWPORT |
. . . 63 |
SET_WS_WINDOW |
. . . 63 |
TEXT |
. . . 55 |
UPDATE_WS |
. . . 53 |
WRITE_ITEM_TO_GKSM |
. . . 70 |
1. ПОДГОТОВЛЕН И ВНЕСЕН ТК 22 «Информационная технология»
2.
УТВЕРЖДЕН И ВВЕДЕН В ДЕЙСТВИЕ Постановлением Госстандарта России от 28.12.92. №
1577
Настоящий стандарт подготовлен методом прямого применения международного
стандарта ИСО 8651-3-88 «Системы обработки информации. Машинная графика. Связь
ядра графической системы с языком программирования Ада»
3. ВВЕДЕН ВПЕРВЫЕ
4. ССЫЛОЧНЫЕ НОРМАТИВНО-ТЕХНИЧЕСКИЕ ДОКУМЕНТЫ
Обозначение НТД, на который дана ссылка |
Номер пункта |
Введение, 2, Приложение 2, Приложение |
СОДЕРЖАНИЕ