SysFn48/ru: Difference between revisions
(добавлены подфункции 9-12) |
|||
Line 6: | Line 6: | ||
Параметры: | Параметры: | ||
* eax = 48 - номер функции | :* eax = 48 - номер функции | ||
* ebx = 0 - номер подфункции | :* ebx = 0 - номер подфункции | ||
* ecx = 0 - зарезервировано | :* ecx = 0 - зарезервировано | ||
Возвращаемое значение: | Возвращаемое значение: | ||
* функция не возвращает значения | :* функция не возвращает значения | ||
Замечания: | Замечания: | ||
* Функция перерисовывает экран после изменения параметров подфункциями 1 и 2. | :* Функция перерисовывает экран после изменения параметров подфункциями 1 и 2. | ||
* Вызов функции без предшествующих вызовов указанных подфункций игнорируется. | :* Вызов функции без предшествующих вызовов указанных подфункций игнорируется. | ||
* Вызов функции с ненулевым ecx игнорируется. | :* Вызов функции с ненулевым ecx игнорируется. | ||
'''Константы для регистров:''' | |||
::eax - SF_STYLE_SETTINGS (48) | |||
::ebx - SSF_APPLY (0) | |||
=== Подфункция 1 - установить стиль кнопок. === | === Подфункция 1 - установить стиль кнопок. === | ||
Параметры: | Параметры: | ||
* eax = 48 - номер функции | :* eax = 48 - номер функции | ||
* ebx = 1 - номер подфункции | :* ebx = 1 - номер подфункции | ||
* ecx = тип кнопок: | :* ecx = тип кнопок: | ||
:* 0 = плоские | ::* 0 = плоские | ||
:* 1 = объёмные | ::* 1 = объёмные | ||
Возвращаемое значение: | Возвращаемое значение: | ||
* функция не возвращает значения | :* функция не возвращает значения | ||
Замечания: | Замечания: | ||
* После вызова описываемой функции следует перерисовать экран подфункцией 0. | :* После вызова описываемой функции следует перерисовать экран подфункцией 0. | ||
* Тип кнопок влияет только на их прорисовку [[SysFn08/ru|функцией 8]]. | :* Тип кнопок влияет только на их прорисовку [[SysFn08/ru|функцией 8]]. | ||
'''Константы для регистров:''' | |||
::eax - SF_STYLE_SETTINGS (48) | |||
::ebx - SSF_SET_BUTTON_STYLE (1) | |||
=== Подфункция 2 - установить стандартные цвета окон. === | === Подфункция 2 - установить стандартные цвета окон. === | ||
Параметры: | Параметры: | ||
* eax = 48 - номер функции | :* eax = 48 - номер функции | ||
* ebx = 2 - номер подфункции | :* ebx = 2 - номер подфункции | ||
* ecx = указатель на таблицу цветов | :* ecx = указатель на таблицу цветов | ||
* edx = размер таблицы цветов (должен быть 192 байта для будущей совместимости) | :* edx = размер таблицы цветов (должен быть 192 байта для будущей совместимости) | ||
Формат таблицы цветов указан в описании подфункции 3. | ::Формат таблицы цветов указан в описании подфункции 3. | ||
Возвращаемое значение: | Возвращаемое значение: | ||
* функция не возвращает значения | :* функция не возвращает значения | ||
Замечания: | Замечания: | ||
* После вызова описываемой функции следует перерисовать экран подфункцией 0. | :* После вызова описываемой функции следует перерисовать экран подфункцией 0. | ||
* Таблица стандартных цветов влияет только на приложения, которые эту таблицу явным образом получают (подфункцией 3) и используют (указывая цвета из неё при вызовах функций рисования). | :* Таблица стандартных цветов влияет только на приложения, которые эту таблицу явным образом получают (подфункцией 3) и используют (указывая цвета из неё при вызовах функций рисования). | ||
* Таблица стандартных цветов входит в скин и устанавливается заново при установке скина (подфункции 8). | :* Таблица стандартных цветов входит в скин и устанавливается заново при установке скина (подфункции 8). | ||
* Таблицу цветов можно просматривать/изменять интерактивно с помощью приложения [[desktop/ru|desktop]]. | :* Таблицу цветов можно просматривать/изменять интерактивно с помощью приложения [[desktop/ru|desktop]]. | ||
'''Константы для регистров:''' | |||
::eax - SF_STYLE_SETTINGS (48) | |||
::ebx - SSF_SET_COLORS (2) | |||
=== Подфункция 3 - получить стандартные цвета окон. === | === Подфункция 3 - получить стандартные цвета окон. === | ||
Параметры: | Параметры: | ||
* eax = 48 - номер функции | :* eax = 48 - номер функции | ||
* ebx = 3 - номер подфункции | :* ebx = 3 - номер подфункции | ||
* ecx = указатель на буфер размером edx байт, куда будет записана таблица | :* ecx = указатель на буфер размером edx байт, куда будет записана таблица | ||
* edx = размер таблицы цветов (должен быть 192 байта для будущей совместимости) | :* edx = размер таблицы цветов (должен быть 192 байта для будущей совместимости) | ||
Возвращаемое значение: | Возвращаемое значение: | ||
* функция не возвращает значения | :* функция не возвращает значения | ||
Формат таблицы цветов: каждый элемент - dword-значение цвета 0x00RRGGBB | Формат таблицы цветов: каждый элемент - dword-значение цвета 0x00RRGGBB | ||
:* +0: dword: menu_body - цвет фона системного меню | :* +0: dword: menu_body - цвет фона системного меню | ||
Line 116: | Line 128: | ||
* При изменении таблицы стандартных цветов (подфункцией 2 с последующим применением изменений подфункцией 0 или при установке скина подфункцией 8) всем окнам посылается сообщение о необходимости перерисовки (событие с кодом 1). | * При изменении таблицы стандартных цветов (подфункцией 2 с последующим применением изменений подфункцией 0 или при установке скина подфункцией 8) всем окнам посылается сообщение о необходимости перерисовки (событие с кодом 1). | ||
* Стандартные цвета можно просматривать/изменять интерактивно с помощью приложения [[desktop/ru|desktop]]. | * Стандартные цвета можно просматривать/изменять интерактивно с помощью приложения [[desktop/ru|desktop]]. | ||
'''Константы для регистров:''' | |||
::eax - SF_STYLE_SETTINGS (48) | |||
::ebx - SSF_GET_COLORS (3) | |||
=== Подфункция 4 - получить высоту скина. === | === Подфункция 4 - получить высоту скина. === | ||
Параметры: | Параметры: | ||
* eax = 48 - номер функции | :* eax = 48 - номер функции | ||
* ebx = 4 - номер подфункции | :* ebx = 4 - номер подфункции | ||
Возвращаемое значение: | Возвращаемое значение: | ||
* eax = высота скина | :* eax = высота скина | ||
Замечания: | Замечания: | ||
* Высотой скина по определению считается высота заголовка окон, использующих скин. | :* Высотой скина по определению считается высота заголовка окон, использующих скин. | ||
* Смотри также общую структуру окна в описании [[SysFn00/ru|функции 0]]. | :* Смотри также общую структуру окна в описании [[SysFn00/ru|функции 0]]. | ||
'''Константы для регистров:''' | |||
::eax - SF_STYLE_SETTINGS (48) | |||
::ebx - SSF_GET_SKIN_HEIGHT (4) | |||
=== Подфункция 5 - получить рабочую область экрана. === | === Подфункция 5 - получить рабочую область экрана. === | ||
Параметры: | Параметры: | ||
* eax = 48 - номер функции | :* eax = 48 - номер функции | ||
* ebx = 5 - номер подфункции | :* ebx = 5 - номер подфункции | ||
Возвращаемое значение: | Возвращаемое значение: | ||
* eax = [left]*65536 + [right] | :* eax = [left]*65536 + [right] | ||
* ebx = [top]*65536 + [bottom] | :* ebx = [top]*65536 + [bottom] | ||
Замечания: | Замечания: | ||
* Рабочая область экрана определяет положение и координаты максимизированного окна. | :* Рабочая область экрана определяет положение и координаты максимизированного окна. | ||
* Рабочая область экрана при нормальной работе есть весь экран за вычетом панели (@panel). | :* Рабочая область экрана при нормальной работе есть весь экран за вычетом панели (@panel). | ||
* (left,top) - координаты левого верхнего угла, | :* (left,top) - координаты левого верхнего угла, | ||
:(right,bottom) - координаты правого нижнего. | ::(right,bottom) - координаты правого нижнего. | ||
:Таким образом, размер рабочей области по оси x определяется формулой right-left+1, по оси y - формулой bottom-right+1. | ::Таким образом, размер рабочей области по оси x определяется формулой right-left+1, по оси y - формулой bottom-right+1. | ||
* Смотри также функцию 14, позволяющую определить размеры всего экрана. | :* Смотри также [[SysFn14/ru|функцию 14]], позволяющую определить размеры всего экрана. | ||
* Есть парная функция установки рабочей области - подфункция 6. | :* Есть парная функция установки рабочей области - подфункция 6. | ||
'''Константы для регистров:''' | |||
::eax - SF_STYLE_SETTINGS (48) | |||
::ebx - SSF_GET_SCREEN_AREA (5) | |||
=== Подфункция 6 - установить рабочую область экрана. === | === Подфункция 6 - установить рабочую область экрана. === | ||
Параметры: | Параметры: | ||
* eax = 48 - номер функции | :* eax = 48 - номер функции | ||
* ebx = 6 - номер подфункции | :* ebx = 6 - номер подфункции | ||
* ecx = [left]*65536 + [right] | :* ecx = [left]*65536 + [right] | ||
* edx = [top]*65536 + [bottom] | :* edx = [top]*65536 + [bottom] | ||
Возвращаемое значение: | Возвращаемое значение: | ||
* функция не возвращает значения | :* функция не возвращает значения | ||
Замечания: | Замечания: | ||
* Рабочая область экрана определяет положение и координаты максимизированного окна. | :* Рабочая область экрана определяет положение и координаты максимизированного окна. | ||
* Эта функция используется только приложением @panel, устанавливающим рабочей областью весь экран за вычетом панели. | :* Эта функция используется только приложением @panel, устанавливающим рабочей областью весь экран за вычетом панели. | ||
* (left,top) - координаты левого верхнего угла, | :* (left,top) - координаты левого верхнего угла, | ||
:(right,bottom) - координаты правого нижнего. | ::(right,bottom) - координаты правого нижнего. | ||
:Таким образом, размер рабочей области по оси x определяется формулой right-left+1, по оси y - формулой bottom-right+1. | ::Таким образом, размер рабочей области по оси x определяется формулой right-left+1, по оси y - формулой bottom-right+1. | ||
* Если left>=right, то x-координаты рабочей области не изменяются. | :* Если left>=right, то x-координаты рабочей области не изменяются. | ||
:Если left<0, то left не устанавливается. Если right больше или равно ширины экрана, то right не устанавливается. | ::Если left<0, то left не устанавливается. Если right больше или равно ширины экрана, то right не устанавливается. | ||
:Аналогично по оси y. | ::Аналогично по оси y. | ||
* Смотри также функцию 14, позволяющую определить размеры всего экрана. | :* Смотри также [[SysFn14/ru|функцию 14]], позволяющую определить размеры всего экрана. | ||
* Есть парная функция получения рабочей области - подфункция 5. | :* Есть парная функция получения рабочей области - подфункция 5. | ||
* Эта функция автоматически перерисовывает экран, по ходу дела обновляет координаты и размеры максимизированных окон. | :* Эта функция автоматически перерисовывает экран, по ходу дела обновляет координаты и размеры максимизированных окон. | ||
:Все окна извещаются о необходимости перерисовки (событие 1). | ::Все окна извещаются о необходимости перерисовки (событие 1). | ||
'''Константы для регистров:''' | |||
::eax - SF_STYLE_SETTINGS (48) | |||
::ebx - SSF_SET_SCREEN_AREA (6) | |||
=== Подфункция 7 - получить область скина для текста заголовка. === | === Подфункция 7 - получить область скина для текста заголовка. === | ||
Line 171: | Line 200: | ||
Возвращает область заголовка окна со скином, предназначенную | Возвращает область заголовка окна со скином, предназначенную | ||
для вывода текста заголовка. | для вывода текста заголовка. | ||
Параметры: | <br>Параметры: | ||
* eax = 48 - номер функции | :* eax = 48 - номер функции | ||
* ebx = 7 - номер подфункции | :* ebx = 7 - номер подфункции | ||
Возвращаемое значение: | Возвращаемое значение: | ||
* eax = [left]*65536 + [right] | :* eax = [left]*65536 + [right] | ||
* ebx = [top]*65536 + [bottom] | :* ebx = [top]*65536 + [bottom] | ||
Замечания: | Замечания: | ||
* Использование/неиспользование этой функции - личное дело приложения. | :* Использование/неиспользование этой функции - личное дело приложения. | ||
* Рекомендуется учитывать значения, возвращаемые этой функцией, при выборе места для рисования текста заголовка (функцией 4) или какого-нибудь заменителя текста заголовка (по усмотрению приложения). | :* Рекомендуется учитывать значения, возвращаемые этой функцией, при выборе места для рисования текста заголовка ([[SysFn04/ru|функцией 4]]) или какого-нибудь заменителя текста заголовка (по усмотрению приложения). | ||
'''Константы для регистров:''' | |||
::eax - SF_STYLE_SETTINGS (48) | |||
::ebx - SSF_GET_SKIN_MARGINS (7) | |||
=== Подфункция 8 - установить используемый скин окон. === | === Подфункция 8 - установить используемый скин окон. === | ||
Параметры: | Параметры: | ||
* eax = 48 - номер функции | :* eax = 48 - номер функции | ||
* ebx = 8 - номер подфункции | :* ebx = 8 - номер подфункции | ||
* ecx = указатель на имя файла скина | :* ecx = указатель на имя файла скина | ||
Возвращаемое значение: | Возвращаемое значение: | ||
* eax = 0 - успешно | :* eax = 0 - успешно | ||
* eax = 1 - не удалось загрузить файл | :* eax = 1 - не удалось загрузить файл | ||
* eax = 2 - файл не является файлом скина | :* eax = 2 - файл не является файлом скина | ||
Замечания: | Замечания: | ||
* При успешной загрузке скина все окна извещаются о необходимости перерисовки (событие 1). | :* При успешной загрузке скина все окна извещаются о необходимости перерисовки (событие 1). | ||
* При загрузке система считывает скин из файла default.skn на рамдиске. | :* При загрузке система считывает скин из файла default.skn на рамдиске. | ||
* Пользователь может изменять скин статически, создав свой default.skn, или динамически с помощью приложения [[desktop/ru|desktop]]. | :* Пользователь может изменять скин статически, создав свой default.skn, или динамически с помощью приложения [[desktop/ru|desktop]]. | ||
'''Константы для регистров:''' | |||
::eax - SF_STYLE_SETTINGS (48) | |||
::ebx - SSF_SET_SKIN (8) | |||
=== Подфункция 9 - получить настройку сглаживания шрифтов. === | |||
Параметры: | |||
:* eax = 48 - номер функции | |||
:* ebx = 9 - номер подфункции | |||
Возвращаемое значение: | |||
:* eax = 2 - субпиксельное, 1 - обычное, 0 - выключить | |||
'''Константы для регистров:''' | |||
::eax - SF_STYLE_SETTINGS (48) | |||
::ebx - SSF_GET_FONT_SMOOTH (9) | |||
=== Подфункция 10 - настроить сглаживание шрифтов. === | |||
Параметры: | |||
:* eax = 48 - номер функции | |||
:* ebx = 10 - номер подфункции | |||
:* cl = 2 - субпиксельное, 1 - обычное, 0 - выключить | |||
'''Константы для регистров:''' | |||
::eax - SF_STYLE_SETTINGS (48) | |||
::ebx - SSF_SET_FONT_SMOOTH (10) | |||
=== Подфункция 11 - получить размер шрифтов. === | |||
Параметры: | |||
:* eax = 48 - номер функции | |||
:* ebx = 9 - номер подфункции | |||
Возвращаемое значение: | |||
:* eax = текущая высота шрифта в пикселях | |||
'''Константы для регистров:''' | |||
::eax - SF_STYLE_SETTINGS (48) | |||
::ebx - SSF_GET_FONT_SIZE (11) | |||
=== Подфункция 12 - установить размер шрифтов. === | |||
Параметры: | |||
:* eax = 48 - номер функции | |||
:* ebx = 10 - номер подфункции | |||
:* cl = новая высота шрифта в пикселях | |||
'''Константы для регистров:''' | |||
::eax - SF_STYLE_SETTINGS (48) | |||
::ebx - SSF_SET_FONT_SIZE (12) | |||
{{System_functions}} | {{System_functions}} | ||
[[Category: SysCalls]] | [[Category: SysCalls]] |
Revision as of 18:40, 17 January 2016
Функция 48 - стили отображения окон
Подфункция 0 - применить настройки экрана.
Параметры:
- eax = 48 - номер функции
- ebx = 0 - номер подфункции
- ecx = 0 - зарезервировано
Возвращаемое значение:
- функция не возвращает значения
Замечания:
- Функция перерисовывает экран после изменения параметров подфункциями 1 и 2.
- Вызов функции без предшествующих вызовов указанных подфункций игнорируется.
- Вызов функции с ненулевым ecx игнорируется.
Константы для регистров:
- eax - SF_STYLE_SETTINGS (48)
- ebx - SSF_APPLY (0)
Подфункция 1 - установить стиль кнопок.
Параметры:
- eax = 48 - номер функции
- ebx = 1 - номер подфункции
- ecx = тип кнопок:
- 0 = плоские
- 1 = объёмные
Возвращаемое значение:
- функция не возвращает значения
Замечания:
- После вызова описываемой функции следует перерисовать экран подфункцией 0.
- Тип кнопок влияет только на их прорисовку функцией 8.
Константы для регистров:
- eax - SF_STYLE_SETTINGS (48)
- ebx - SSF_SET_BUTTON_STYLE (1)
Подфункция 2 - установить стандартные цвета окон.
Параметры:
- eax = 48 - номер функции
- ebx = 2 - номер подфункции
- ecx = указатель на таблицу цветов
- edx = размер таблицы цветов (должен быть 192 байта для будущей совместимости)
- Формат таблицы цветов указан в описании подфункции 3.
Возвращаемое значение:
- функция не возвращает значения
Замечания:
- После вызова описываемой функции следует перерисовать экран подфункцией 0.
- Таблица стандартных цветов влияет только на приложения, которые эту таблицу явным образом получают (подфункцией 3) и используют (указывая цвета из неё при вызовах функций рисования).
- Таблица стандартных цветов входит в скин и устанавливается заново при установке скина (подфункции 8).
- Таблицу цветов можно просматривать/изменять интерактивно с помощью приложения desktop.
Константы для регистров:
- eax - SF_STYLE_SETTINGS (48)
- ebx - SSF_SET_COLORS (2)
Подфункция 3 - получить стандартные цвета окон.
Параметры:
- eax = 48 - номер функции
- ebx = 3 - номер подфункции
- ecx = указатель на буфер размером edx байт, куда будет записана таблица
- edx = размер таблицы цветов (должен быть 192 байта для будущей совместимости)
Возвращаемое значение:
- функция не возвращает значения
Формат таблицы цветов: каждый элемент - dword-значение цвета 0x00RRGGBB
- +0: dword: menu_body - цвет фона системного меню
- +4: dword: 3d_face - цвет фона для придания 3D эффекта
- +8: dword: 3d_dark - цвет темной обводки для придания 3D эффекта
- +12: dword: 3d_light - цвет светлой обводки для придания 3D эффекта
- +16: dword: win_title - цвет текста в заголовке окна приложения
- +20: dword: win_body - цвет фона окна
- +24: dword: btn_face - цвет активной кнопки
- +28: dword: btn_text - цвет текста активной кнопки
- +32: dword: win_text - цвет текста в рабочей области окна
- +36: dword: panel_frame - цвет рамки области панели
- +40: dword: win_face - цвет бордюра окна между внешней и внутренней рамкой
- +44: dword: win_inface - цвет бордюра "неактивного" окна между внешней и внутренней рамкой
- +48: dword: win_frame - цвет внешней рамки окна
- +52: dword: win_inframe - цвет внешней рамки "неактивного" окна
- +56: dword: win_border - цвет внутренней рамки окна
- +60: dword: win_inborder - цвет внутренней рамки "неактивного" окна
- +64: dword: win_graytext - цвет в оттенках серого в рабочей области окна.
- +68: dword: menu_frame - цвет рамки системного меню
- +72: dword: menu_text - цвет текста системного меню
- +76: dword: panel_body - цвет фона области панели
- +80: dword: panel_text - цвет текста области панели
- +84: dword: hint_frame - цвет рамки всплывающей подсказки
- +88: dword: hint_body - цвет фона всплывающей подсказки
- +92: dword: hint_text - цвет текста всплывающей подсказки
- +96: dword: btn_inface - цвет фона "неактивной" кнопки
- +100: dword: btn_fcface - цвет фона кнопки при наведении курсора (focus)
- +104: dword: btn_frame - цвет рамки кнопки
- +108: dword: btn_inframe - цвет рамки "неактивной" кнопки
- +112: dword: btn_fcframe - цвет рамки кнопки при наведении курсора (focus)
- +116: dword: btn_intext - цвет текста "неактивной" кнопки
- +120: dword: btn_fctext - цвет текста кнопки при наведении курсора (focus)
- +124: dword: gui_shadow - цвет тени от любого текста
- +128: dword: gui_face - цвет фона элемента (edit,listbox,checkbox...)
- +132: dword: gui_inface - цвет фона "неактивного" элемента
- +136: dword: gui_fcface - цвет фона элемента при наведении курсора
- +140: dword: gui_frame - цвет рамки элемента
- +144: dword: gui_inframe - цвет рамки "неактивного" элемента
- +148: dword: gui_fcframe - цвет рамки элемента при наведении курсора
- +152: dword: gui_text - цвет текста элемента
- +156: dword: gui_intext - цвет текста "неактивного" элемента
- +160: dword: gui_fctext - цвет текста элемента при наведении курсора
- +164: dword: gui_select - цвет выделения текста
- +168: dword: res_var_a - зарезервированно
- +172: dword: res_var_b - зарезервированно
- +176: dword: res_var_c - зарезервированно
- +180: dword: res_var_d - зарезервированно
- +184: dword: res_var_e - зарезервированно
- +188: dword: res_var_f - зарезервированно
Замечания:
- До ревизии #4788 скины использовали только первые 40 байт (причина разрозненности структуры таблицы - совместимость).
- Структура таблицы цветов описана в стандартном включаемом файле macros.inc под названием system_colors; например, можно писать:
sc sys_colors ; объявление переменной ... ; где-то надо вызвать ; описываемую функцию с ecx=sc mov ecx, [sc.win_text] ; читаем цвет текста ; в рабочей области окна
- Использование/неиспользование этих цветов - дело исключительно самой программы. Для использования нужно просто при вызове функций рисования указывать цвет, взятый из этой таблицы.
- При изменении таблицы стандартных цветов (подфункцией 2 с последующим применением изменений подфункцией 0 или при установке скина подфункцией 8) всем окнам посылается сообщение о необходимости перерисовки (событие с кодом 1).
- Стандартные цвета можно просматривать/изменять интерактивно с помощью приложения desktop.
Константы для регистров:
- eax - SF_STYLE_SETTINGS (48)
- ebx - SSF_GET_COLORS (3)
Подфункция 4 - получить высоту скина.
Параметры:
- eax = 48 - номер функции
- ebx = 4 - номер подфункции
Возвращаемое значение:
- eax = высота скина
Замечания:
- Высотой скина по определению считается высота заголовка окон, использующих скин.
- Смотри также общую структуру окна в описании функции 0.
Константы для регистров:
- eax - SF_STYLE_SETTINGS (48)
- ebx - SSF_GET_SKIN_HEIGHT (4)
Подфункция 5 - получить рабочую область экрана.
Параметры:
- eax = 48 - номер функции
- ebx = 5 - номер подфункции
Возвращаемое значение:
- eax = [left]*65536 + [right]
- ebx = [top]*65536 + [bottom]
Замечания:
- Рабочая область экрана определяет положение и координаты максимизированного окна.
- Рабочая область экрана при нормальной работе есть весь экран за вычетом панели (@panel).
- (left,top) - координаты левого верхнего угла,
- (right,bottom) - координаты правого нижнего.
- Таким образом, размер рабочей области по оси x определяется формулой right-left+1, по оси y - формулой bottom-right+1.
- Смотри также функцию 14, позволяющую определить размеры всего экрана.
- Есть парная функция установки рабочей области - подфункция 6.
Константы для регистров:
- eax - SF_STYLE_SETTINGS (48)
- ebx - SSF_GET_SCREEN_AREA (5)
Подфункция 6 - установить рабочую область экрана.
Параметры:
- eax = 48 - номер функции
- ebx = 6 - номер подфункции
- ecx = [left]*65536 + [right]
- edx = [top]*65536 + [bottom]
Возвращаемое значение:
- функция не возвращает значения
Замечания:
- Рабочая область экрана определяет положение и координаты максимизированного окна.
- Эта функция используется только приложением @panel, устанавливающим рабочей областью весь экран за вычетом панели.
- (left,top) - координаты левого верхнего угла,
- (right,bottom) - координаты правого нижнего.
- Таким образом, размер рабочей области по оси x определяется формулой right-left+1, по оси y - формулой bottom-right+1.
- Если left>=right, то x-координаты рабочей области не изменяются.
- Если left<0, то left не устанавливается. Если right больше или равно ширины экрана, то right не устанавливается.
- Аналогично по оси y.
- Смотри также функцию 14, позволяющую определить размеры всего экрана.
- Есть парная функция получения рабочей области - подфункция 5.
- Эта функция автоматически перерисовывает экран, по ходу дела обновляет координаты и размеры максимизированных окон.
- Все окна извещаются о необходимости перерисовки (событие 1).
Константы для регистров:
- eax - SF_STYLE_SETTINGS (48)
- ebx - SSF_SET_SCREEN_AREA (6)
Подфункция 7 - получить область скина для текста заголовка.
Возвращает область заголовка окна со скином, предназначенную
для вывода текста заголовка.
Параметры:
- eax = 48 - номер функции
- ebx = 7 - номер подфункции
Возвращаемое значение:
- eax = [left]*65536 + [right]
- ebx = [top]*65536 + [bottom]
Замечания:
- Использование/неиспользование этой функции - личное дело приложения.
- Рекомендуется учитывать значения, возвращаемые этой функцией, при выборе места для рисования текста заголовка (функцией 4) или какого-нибудь заменителя текста заголовка (по усмотрению приложения).
Константы для регистров:
- eax - SF_STYLE_SETTINGS (48)
- ebx - SSF_GET_SKIN_MARGINS (7)
Подфункция 8 - установить используемый скин окон.
Параметры:
- eax = 48 - номер функции
- ebx = 8 - номер подфункции
- ecx = указатель на имя файла скина
Возвращаемое значение:
- eax = 0 - успешно
- eax = 1 - не удалось загрузить файл
- eax = 2 - файл не является файлом скина
Замечания:
- При успешной загрузке скина все окна извещаются о необходимости перерисовки (событие 1).
- При загрузке система считывает скин из файла default.skn на рамдиске.
- Пользователь может изменять скин статически, создав свой default.skn, или динамически с помощью приложения desktop.
Константы для регистров:
- eax - SF_STYLE_SETTINGS (48)
- ebx - SSF_SET_SKIN (8)
Подфункция 9 - получить настройку сглаживания шрифтов.
Параметры:
- eax = 48 - номер функции
- ebx = 9 - номер подфункции
Возвращаемое значение:
- eax = 2 - субпиксельное, 1 - обычное, 0 - выключить
Константы для регистров:
- eax - SF_STYLE_SETTINGS (48)
- ebx - SSF_GET_FONT_SMOOTH (9)
Подфункция 10 - настроить сглаживание шрифтов.
Параметры:
- eax = 48 - номер функции
- ebx = 10 - номер подфункции
- cl = 2 - субпиксельное, 1 - обычное, 0 - выключить
Константы для регистров:
- eax - SF_STYLE_SETTINGS (48)
- ebx - SSF_SET_FONT_SMOOTH (10)
Подфункция 11 - получить размер шрифтов.
Параметры:
- eax = 48 - номер функции
- ebx = 9 - номер подфункции
Возвращаемое значение:
- eax = текущая высота шрифта в пикселях
Константы для регистров:
- eax - SF_STYLE_SETTINGS (48)
- ebx - SSF_GET_FONT_SIZE (11)
Подфункция 12 - установить размер шрифтов.
Параметры:
- eax = 48 - номер функции
- ebx = 10 - номер подфункции
- cl = новая высота шрифта в пикселях
Константы для регистров:
- eax - SF_STYLE_SETTINGS (48)
- ebx - SSF_SET_FONT_SIZE (12)
|