Subversion Repositories Kolibri OS

Rev

Rev 6078 | Rev 6246 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 6078 Rev 6240
Line 23... Line 23...
23
  * eax = 0 - номер функции
23
  * eax = 0 - номер функции
24
  * ebx = [координата по оси x]*65536 + [размер по оси x]
24
  * ebx = [координата по оси x]*65536 + [размер по оси x]
25
  * ecx = [координата по оси y]*65536 + [размер по оси y]
25
  * ecx = [координата по оси y]*65536 + [размер по оси y]
26
  * edx = 0xXYRRGGBB, где:
26
  * edx = 0xXYRRGGBB, где:
27
    * Y = стиль окна:
27
    * Y = стиль окна:
28
      * Y=0 - тип I - окно фиксированных размеров
-
 
29
      * Y=1 - только определить область окна, ничего не рисовать
28
      * Y=1 - только определить область окна, ничего не рисовать
30
      * Y=2 - тип II - окно изменяемых размеров
-
 
31
      * Y=3 - окно со скином
29
      * Y=3 - окно со скином
32
      * Y=4 - окно со скином фиксированных размеров
30
      * Y=4 - окно со скином фиксированных размеров
-
 
31
      * Y=0,2 эти стили являются устаревшими и не должны более использоваться, 
-
 
32
        они оставлены для совместимости со старыми приложениями
33
      * остальные возможные значения (от 5 до 15) зарезервированы,
33
      * остальные возможные значения (от 5 до 15) зарезервированы,
34
        вызов функции с такими Y игнорируется
34
        вызов функции с такими Y игнорируется
35
    * RR, GG, BB = соответственно красная, зеленая, синяя
35
    * RR, GG, BB = соответственно красная, зеленая, синяя
36
      составляющие цвета рабочей области окна
36
      составляющие цвета рабочей области окна
37
      (игнорируется для стиля Y=1)
37
      (игнорируется для стиля Y=1)
38
    * X = DCBA (биты)
38
    * X = DCBA (биты)
39
      * A = 1 - у окна есть заголовок; для стилей Y=3,4 адрес строки
39
      * A = 1 - у окна есть заголовок
40
                  заголовка задаётся в edi, для прочих стилей
-
 
41
                  используется подфункция 1 функции 71
-
 
42
      * B = 1 - координаты всех графических примитивов задаются
40
      * B = 1 - координаты всех графических примитивов задаются
43
                  относительно клиентской области окна
41
                  относительно клиентской области окна
44
      * C = 1 - не закрашивать рабочую область при отрисовке окна
42
      * C = 1 - не закрашивать рабочую область при отрисовке окна
45
      * D = 0 - нормальная заливка рабочей области, 1 - градиентная
43
      * D = 0 - нормальная заливка рабочей области, 1 - градиентная
46
    Следующие параметры предназначены для окон типа I и II и
44
    Следующие параметры предназначены для окон типа I и II и
Line 50... Line 48...
50
    * Y=0 - обычное окно, Y=1 - неперемещаемое окно (работает для всех стилей окон)
48
    * Y=0 - обычное окно, Y=1 - неперемещаемое окно (работает для всех стилей окон)
51
    * X определяет градиент заголовка: X=0 - нет градиента,
49
    * X определяет градиент заголовка: X=0 - нет градиента,
52
      X=8 - обычный градиент,
50
      X=8 - обычный градиент,
53
      для окон типа II X=4 - негативный градиент
51
      для окон типа II X=4 - негативный градиент
54
    * прочие значения X и Y зарезервированы
52
    * прочие значения X и Y зарезервированы
55
  * edi = 0x00RRGGBB - цвет рамки
53
  * edi =  адрес строки заголовка для стилей Y=3,4 (также см. функцию 71.1)
56
Возвращаемое значение:
54
Возвращаемое значение:
57
  * функция не возвращает значения
55
  * функция не возвращает значения
58
Замечания:
56
Замечания:
59
  * Положение и размеры окна устанавливаются при первом вызове
57
  * Положение и размеры окна устанавливаются при первом вызове
60
    этой функции и игнорируются при последующих; для изменения
58
    этой функции и игнорируются при последующих; для изменения
Line 80... Line 78...
80
    угла окна, который, таким образом, задается как (0,0), координаты
78
    угла окна, который, таким образом, задается как (0,0), координаты
81
    правого нижнего угла суть (xsize,ysize).
79
    правого нижнего угла суть (xsize,ysize).
82
  * Размеры окна понимаются в смысле координат правого нижнего угла.
80
  * Размеры окна понимаются в смысле координат правого нижнего угла.
83
    Это же относится и ко всем остальным функциям.
81
    Это же относится и ко всем остальным функциям.
84
    Это означает, что реальные размеры на 1 пиксель больше.
82
    Это означает, что реальные размеры на 1 пиксель больше.
85
  * Вид окна типа I:
-
 
86
    * рисуется внешняя рамка цвета, указанного в edi,
-
 
87
      шириной 1 пиксель
-
 
88
    * рисуется заголовок - прямоугольник с левым верхним углом (1,1)
-
 
89
      и правым нижним (xsize-1,min(20,ysize-1)) цвета, указанного в esi
-
 
90
      (с учетом градиента)
-
 
91
    * если ysize>21, то закрашивается рабочая область окна -
-
 
92
      прямоугольник с левым верхним углом (1,21) и правым нижним
-
 
93
      (xsize-1,ysize-1) (размерами (xsize-1)*(ysize-21)) - цветом,
-
 
94
      указанным в edx (с учетом градиента)
-
 
95
    * если A=1 и строка заголовка установлена подфункцией 1
-
 
96
      функции 71, то она выводится в соответствующем месте заголовка
-
 
97
  * Вид окна стиля Y=1:
83
  * Вид окна стиля Y=1:
98
    * полностью определяется приложением
84
    * полностью определяется приложением
99
  * Вид окна типа II:
-
 
100
    * рисуется внешняя рамка шириной 1 пиксель "затенённого" цвета
-
 
101
      edi (все составляющие цвета уменьшаются в два раза)
-
 
102
    * рисуется промежуточная рамка шириной 3 пикселя цвета edi
-
 
103
    * рисуется внутренняя рамка шириной 1 пиксель
-
 
104
      "затенённого" цвета edi
-
 
105
    * рисуется заголовок - прямоугольник с левым верхним углом (4,4)
-
 
106
      и правым нижним (xsize-4,min(20,ysize)) цвета, указанного в esi
-
 
107
      (с учетом градиента)
-
 
108
    * если ysize>=26, то закрашивается рабочая область окна -
-
 
109
      прямоугольник с левым верхним углом (5,20) и правым нижним
-
 
110
      (xsize-5,ysize-5) - цветом, указанным в edx (с учетом градиента)
-
 
111
    * если A=1 и строка заголовка установлена подфункцией 1
-
 
112
      функции 71, то она выводится в соответствующем месте заголовка
-
 
113
  * Вид окна со скином:
85
  * Вид окна со скином Y=3,4:
114
    * рисуется внешняя рамка шириной 1 пиксель
86
    * рисуется внешняя рамка шириной 1 пиксель
115
      цвета 'outer' из скина
87
      цвета 'outer' из скина
116
    * рисуется промежуточная рамка шириной 3 пикселя
88
    * рисуется промежуточная рамка шириной 3 пикселя
117
      цвета 'frame' из скина
89
      цвета 'frame' из скина
118
    * рисуется внутренняя рамка шириной 1 пиксель
90
    * рисуется внутренняя рамка шириной 1 пиксель