Difference between revisions of "Talk:SysFn00/ru"

From KolibriOS wiki
Jump to navigation Jump to search
m
Line 1: Line 1:
{|  border="1" width="100%" id="table1" class="wikitable" style="font-size:80%"
+
{|  border="1" width="100%" id="table1" class="wikitable" style="font-size:88%"
!  colspan="3" style="background:#ddddff" | <p align="center">Параметры
+
!  colspan="4" style="background:#ddddff" | <p align="center">Параметры
 
|-  
 
|-  
width="6%" colspan="3" align="center" | <b>eax</b>
+
!  colspan="4" align="center" | <b>eax</b>
 
|-  
 
|-  
 
|  align="center" | <tt>&nbsp;0..31</tt>
 
|  align="center" | <tt>&nbsp;0..31</tt>
|  0  
+
|  [[UInt32/ru|uint32]]
width="67%" | номер функции  
+
|  0
 +
Номер функции.
 
|-  
 
|-  
width="6%" colspan="3" align="center" | <b>ebx</b>
+
!  colspan="4" align="center" | <b>ebx</b>
 
|-  
 
|-  
 
|  align="center" | <tt>&nbsp;0..15</tt>
 
|  align="center" | <tt>&nbsp;0..15</tt>
размер по оси x
+
[[UInt16/ru|uint16]]
width="67%" rowspan="2" | обозначим далее xpos и xsize координатой и размером по оси x
+
|  ширина окна
 +
|  rowspan="2" | Расположение окна относительно оси X.
 
|-  
 
|-  
 
|  align="center" | <tt>16..31</tt>
 
|  align="center" | <tt>16..31</tt>
координата по оси x
+
[[Int16/ru|int16]]
 +
|  позиция окна по X
 
|-  
 
|-  
width="6%" colspan="3" align="center" | <b>ecx</b>
+
!  colspan="4" align="center" | <b>ecx</b>
 
|-  
 
|-  
 
|  align="center" | <tt>&nbsp;0..15</tt>
 
|  align="center" | <tt>&nbsp;0..15</tt>
размер по оси y
+
[[UInt16/ru|uint16]]
width="67%" rowspan="2" | обозначим далее ypos и ysize координатой и размером по оси y
+
|  высота окна
 +
|  rowspan="2" | Расположение окна относительно оси Y.
 
|-  
 
|-  
 
|  align="center" | <tt>16..31</tt>
 
|  align="center" | <tt>16..31</tt>
координата по оси y
+
[[Int16/ru|int16]]
 +
|  позиция окна по Y
 
|-  
 
|-  
width="6%" colspan="3" align="center" | <b>edx</b>
+
!  colspan="4" align="center" | <b>edx</b>
 
|-  
 
|-  
|  align="center" | <tt>&nbsp;0..&nbsp;7</tt>
+
|  align="center" | <tt>&nbsp;0..23</tt>
синая компонента цвета
+
[[RGB888/ru|rgb888]]
rowspan="3" | цвет рабочей области окна (игнорируется для стиля Y=2)
+
|  цвет клиентской области
|-
+
|   
|  align="center" | <tt>&nbsp;8..15</tt>
 
|  зелёная компонента цвета
 
|-
 
|  align="center" | <tt>16..23</tt>
 
красная компонента цвета
 
 
|-  
 
|-  
 
|  align="center" | <tt>24..27</tt>
 
|  align="center" | <tt>24..27</tt>
стиль окна
+
[[UInt4/ru|uint4]]
 +
|  тип окна
 
|
 
|
* 0 - тип I - окно фиксированных размеров
+
* 0 - тип окна I - окно фиксированных размеров;
* 1 - только определить область окна, ничего не рисовать
+
* 1 - только определить область окна, ничего не рисовать;
* 2 - тип II - окно изменяемых размеров
+
* 2 - тип окна II - окно изменяемых размеров;
* 3 - окно со скином
+
* 3 - тип окна III - окно со скином;
* 4 - окно со скином фиксированных размеров
+
* 4 - тип окна IV - окно со скином фиксированных размеров.
остальные возможные значения (от 5 до 15) зарезервированы, вызов функции с такими Y игнорируется
+
Остальные возможные значения (от 5 до 15) зарезервированы, вызов функции с такими значениями игнорируется.
 
|-  
 
|-  
 
|  align="center" | <tt>28</tt>
 
|  align="center" | <tt>28</tt>
A
+
[[Bit/ru|bit]]
1 - у окна есть заголовок; для стилей Y=3,4 адрес строки заголовка задаётся в edi, для прочих стилей используется подфункция 1 функции 71
+
|  флаг: текст заголовка
 +
Тип окна I-II: игнорируется.
 +
 
 +
Тип окна III-IV:
 +
* 0 - нет заголовка;
 +
* 1 - адрес строки заголовка задаётся в edi.
 +
 
 +
Для последующего изменения текста заголовка используется [[SysFn71|функция 71.1]].
 
|-  
 
|-  
 
|  align="center" | <tt>29</tt>
 
|  align="center" | <tt>29</tt>
B
+
[[Bit/ru|bit]]
|  1 - координаты всех графических примитивов задаются относительно клиентской области окна
+
флаг: начало координат
 +
|  Начало координат совпадает с:
 +
* 0 - левым верхним углом окна: 0 по горизонтали, 0 по вертикали;
 +
* 1 - левым верхним углом клиентской области: &lt;ширина рамки&gt; по горизонтали, &lt;высота заголовка&gt; по вертикали.
 
|-  
 
|-  
 
|  align="center" | <tt>30</tt>
 
|  align="center" | <tt>30</tt>
C
+
[[Bit/ru|bit]]
1 - не закрашивать рабочую область при отрисовке окна
+
|  флаг: сплошной фон
 +
Клиентская область при отрисовке окна:
 +
* 0 - заполняется;
 +
* 1 - не заполняется.
 
|-  
 
|-  
 
|  align="center" | <tt>31</tt>
 
|  align="center" | <tt>31</tt>
D
+
[[Bit/ru|bit]]
|  1 - градиентная заливка рабочей области, 0 - нормальная
+
флаг: градиентный фон
 +
|  Клиентская область заполняется:
 +
* 0 - сплошным цветом
 +
* 1 - градиентом от указанного цвета к чёрному
 +
|-
 +
!  colspan="4" align="center" | <b>esi</b>
 +
|-
 +
|  align="center" | <tt>&nbsp;0..23</tt>
 +
|  [[RGB888/ru|rgb888]]
 +
|  цвет заголовка окна
 +
|  Только для окон типа I и II.
 +
|-  
 +
|  align="center" | <tt>24</tt>
 +
|  [[Bit/ru|bit]]
 +
|  флаг: неперемещаемое окно
 +
|
 +
* 0 - окно может быть перемещено пользователем;
 +
* 1 - окно не может быть перемещено пользователем.
 +
|-
 +
|  align="center" | <tt>25..27</tt>
 +
 +
|  0
 +
|  Зарезервированы.
 
|-  
 
|-  
! width="6%" colspan="3" align="center" | <b>esi</b>
+
| align="center" | <tt>28..31</tt>
 +
|  [[UInt4/ru|uint4]]
 +
|  стиль заголовка окна
 +
|  Тип окна I-II:
 +
* 0 - нет градиента;
 +
* 4 - негативный градиент;
 +
* 8 - обычный градиент.
 +
Другие значения зарезервированы.
 +
 
 +
Тип окна III-IV: игнорируется.
 
|-  
 
|-  
| width="26%" colspan="2" | 0xXYRRGGBB
+
! colspan="4" align="center" | <b>edi</b>
|  width="67%" |  
 
Только для окон типа I и II
 
Цвет заголовка:
 
* RR, GG, BB определяют сам цвет
 
* Y=0 - обычное окно, Y=1 - неперемещаемое окно
 
* X определяет градиент заголовка: X=0 - нет градиента, X=8 - обычный градиент, для окон типа II X=4 - негативный градиент
 
* прочие значения X и Y зарезервированы
 
 
|-  
 
|-  
! width="6%" colspan="3" align="center" | <b>edi</b>
+
| align="center" rowspan="2" | <tt>&nbsp;0..32</tt>
 +
|  [[RGB888/ru|rgb888]]
 +
|  цвет рамки окна
 +
|  Только для окон типа I и II.
 
|-  
 
|-  
width="26%" colspan="2" | 0x00RRGGBB
+
[[Pointer/ru|pointer]]
width="67%" |  
+
адрес строки заголовка
  Только для окон типа I и II.
+
|  Только для окон типа III и IV при <b>edx</b><sub>28</sub> = 1.
Цвет рамки окна
 
 
|}
 
|}

Revision as of 18:12, 3 April 2010

Параметры

eax
 0..31 uint32 0 Номер функции.
ebx
 0..15 uint16 ширина окна Расположение окна относительно оси X.
16..31 int16 позиция окна по X
ecx
 0..15 uint16 высота окна Расположение окна относительно оси Y.
16..31 int16 позиция окна по Y
edx
 0..23 rgb888 цвет клиентской области
24..27 uint4 тип окна
  • 0 - тип окна I - окно фиксированных размеров;
  • 1 - только определить область окна, ничего не рисовать;
  • 2 - тип окна II - окно изменяемых размеров;
  • 3 - тип окна III - окно со скином;
  • 4 - тип окна IV - окно со скином фиксированных размеров.

Остальные возможные значения (от 5 до 15) зарезервированы, вызов функции с такими значениями игнорируется.

28 bit флаг: текст заголовка Тип окна I-II: игнорируется.

Тип окна III-IV:

  • 0 - нет заголовка;
  • 1 - адрес строки заголовка задаётся в edi.

Для последующего изменения текста заголовка используется функция 71.1.

29 bit флаг: начало координат Начало координат совпадает с:
  • 0 - левым верхним углом окна: 0 по горизонтали, 0 по вертикали;
  • 1 - левым верхним углом клиентской области: <ширина рамки> по горизонтали, <высота заголовка> по вертикали.
30 bit флаг: сплошной фон Клиентская область при отрисовке окна:
  • 0 - заполняется;
  • 1 - не заполняется.
31 bit флаг: градиентный фон Клиентская область заполняется:
  • 0 - сплошным цветом
  • 1 - градиентом от указанного цвета к чёрному
esi
 0..23 rgb888 цвет заголовка окна Только для окон типа I и II.
24 bit флаг: неперемещаемое окно
  • 0 - окно может быть перемещено пользователем;
  • 1 - окно не может быть перемещено пользователем.
25..27 0 Зарезервированы.
28..31 uint4 стиль заголовка окна Тип окна I-II:
  • 0 - нет градиента;
  • 4 - негативный градиент;
  • 8 - обычный градиент.

Другие значения зарезервированы.

Тип окна III-IV: игнорируется.

edi
 0..32 rgb888 цвет рамки окна Только для окон типа I и II.
pointer адрес строки заголовка Только для окон типа III и IV при edx28 = 1.