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 - function number
23
  * eax = 0 - function number
24
  * ebx = [coordinate on axis x]*65536 + [size on axis x]
24
  * ebx = [coordinate on axis x]*65536 + [size on axis x]
25
  * ecx = [coordinate on axis y]*65536 + [size on axis y]
25
  * ecx = [coordinate on axis y]*65536 + [size on axis y]
26
  * edx = 0xXYRRGGBB, where:
26
  * edx = 0xXYRRGGBB, where:
27
    * Y = style of the window:
27
    * Y = style of the window:
28
      * Y=0 - type I - fixed-size window
-
 
29
      * Y=1 - only define window area, draw nothing
28
      * Y=1 - only define window area, draw nothing
30
      * Y=2 - type II - variable-size window
-
 
31
      * Y=3 - skinned window
29
      * Y=3 - skinned window
32
      * Y=4 - skinned fixed-size window
30
      * Y=4 - skinned fixed-size window
-
 
31
      * Y=0,2 window types are outdated and should not be used anymore, 
-
 
32
        they are retained for compatibility with old programs.
33
      * other possible values (from 5 up to 15) are reserved,
33
      * other possible values (from 5 to 15) are reserved,
34
        function call with such Y is ignored
34
        function call with such Y is ignored
35
    * RR, GG, BB = accordingly red, green, blue components of a color
35
    * RR, GG, BB = accordingly red, green, blue components of a color
36
      of the working area of the window (are ignored for style Y=1)
36
      of the working area of the window (are ignored for style Y=1)
37
    * X = DCBA (bits)
37
    * X = DCBA (bits)
38
      * A = 1 - window has caption; for styles Y=3,4 caption string
38
      * A = 1 - window has caption
39
                  must be passed in edi, for other styles use
-
 
40
                  subfunction 1 of function 71
-
 
41
      * B = 1 - coordinates of all graphics primitives are relative to
39
      * B = 1 - coordinates of all graphics primitives are relative to
42
                  window client area
40
                  window client area
43
      * C = 1 - don't fill working area on window draw
41
      * C = 1 - don't fill working area on window draw
44
      * D = 0 - normal filling of the working area, 1 - gradient
42
      * D = 0 - normal filling of the working area, 1 - gradient
45
    The following parameters are intended for windows
43
    The following parameters are intended for windows
46
    of a type I and II, and ignored for styles Y=1,3:
44
    of a type I and II, and ignored for styles Y=1,3:
47
  * esi = 0xXYRRGGBB - color of the header
45
  * esi = 0xXYRRGGBB - color of the header
48
    * RR, GG, BB define color
46
    * RR, GG, BB define color
49
    * Y=0 - usual window, Y=1 - unmovable window (works for all window styles)
47
    * Y=0 - usual window, Y=1 - unmovable window (works for all window styles)
50
    * X defines a gradient of header: X=0 - no gradient,
-
 
51
      X=8 - usual gradient,
-
 
52
      for windows of a type II X=4 - negative gradient
-
 
53
    * other values of X and Y are reserved
48
    * X not used, other values of Y are reserved
54
  * edi = 0x00RRGGBB - color of the frame
49
  * edi = caption string for styles Y=3,4 (also can be set by func 71.1)
55
Returned value:
50
Returned value:
56
  * function does not return value
51
  * function does not return value
57
Remarks:
52
Remarks:
58
  * Position and sizes of the window are installed by the first
53
  * Position and sizes of the window are installed by the first
59
    call of this function and are ignored at subsequent; to change
54
    call of this function and are ignored at subsequent; to change
Line 77... Line 72...
77
    the left upper corner of the window, which, thus, is set as (0,0),
72
    the left upper corner of the window, which, thus, is set as (0,0),
78
    coordinates of the right lower corner essence (xsize,ysize).
73
    coordinates of the right lower corner essence (xsize,ysize).
79
  * The sizes of the window are understood in sence of coordinates
74
  * The sizes of the window are understood in sence of coordinates
80
    of the right lower corner. This concerns all other functions too.
75
    of the right lower corner. This concerns all other functions too.
81
    It means, that the real sizes are on 1 pixel more.
76
    It means, that the real sizes are on 1 pixel more.
82
  * The window of type I looks as follows:
-
 
83
    * draw external frame of color indicated in edi, 1 pixel in width
-
 
84
    * draw header - rectangle with the left upper corner (1,1) and
-
 
85
      right lower (xsize-1,min(20,ysize-1)) color indicated in esi
-
 
86
      (taking a gradient into account)
-
 
87
    * if ysize>21, fill the working area of the window -
-
 
88
      rectangle with the left upper corner (1,21) and right lower
-
 
89
      (xsize-1,ysize-1) (sizes (xsize-1)*(ysize-21)) with color
-
 
90
      indicated in edx (taking a gradient into account)
-
 
91
    * if A=1 and caption has been already set by subfunction 1
-
 
92
      of function 71, it is drawn in the corresponding place of header
-
 
93
  * The window of style Y=1 looks as follows:
77
  * The window of style Y=1 looks as follows:
94
    * completely defined by the application
78
    * completely defined by the application
95
  * The window of type II looks as follows:
-
 
96
    * draw external frame of width 1 pixel with the "shaded" color
-
 
97
      edi (all components of the color decrease twice)
-
 
98
    * draw intermediate frame of width 3 pixels with color edi
-
 
99
    * draw internal frame of width 1 pixel with the "shaded" color edi
-
 
100
    * draw header - rectangle with the left upper corner (4,4)
-
 
101
      and right lower (xsize-4,min(20,ysize)) color, indicated in esi
-
 
102
      (taking a gradient into account)
-
 
103
    * if ysize>=26, fill the working area of the window -
-
 
104
      rectangle with the left upper corner (5,20) and right lower
-
 
105
      (xsize-5,ysize-5) with color indicated in edx
-
 
106
      (taking a gradient into account)
-
 
107
    * if A=1 and caption has been already set by subfunction 1
-
 
108
      of function 71, it is drawn in the corresponding place of header
-
 
109
  * The skinned window looks as follows:
79
  * The skinned window Y=3,4 looks as follows:
110
    * draw external frame of width 1 pixel
80
    * draw external frame of width 1 pixel
111
      with color 'outer' from the skin
81
      with color 'outer' from the skin
112
    * draw intermediate frame of width 3 pixel
82
    * draw intermediate frame of width 3 pixel
113
      with color 'frame' from the skin
83
      with color 'frame' from the skin
114
    * draw internal frame of width 1 pixel
84
    * draw internal frame of width 1 pixel
Line 4792... Line 4762...
4792
  * ebx = 2 - subfunction number
4762
  * ebx = 2 - subfunction number
4793
  * ecx = futex handle
4763
  * ecx = futex handle
4794
  * edx = control value
4764
  * edx = control value
4795
  * esi = timeout in system ticks or 0 for infinity
4765
  * esi = timeout in system ticks or 0 for infinity
4796
Returned value:
4766
Returned value:
4797
  * eax = 0 - successfull, -1 on timeout
4767
  * eax = 0 - successfull
4798
 
4768
	 -1 - timeout
-
 
4769
	 -2 - futex dword does not have the same value as edx
4799
Remarks:
4770
Remarks:
4800
  * This operation tests that the value at the futex dword still
4771
  * This functionn tests that the value at the futex dword still
4801
    contains the expected control value, and if so, then sleeps
4772
    contains the expected control value, and if so, then sleeps
4802
    waiting for a wake operation on the futex.
4773
    waiting for a wake operation on the futex.
4803
  * The futex handle must have been created by subfunction 0
4774
  * The futex handle must have been created by subfunction 0
Line 4804... Line 4775...
4804
 
4775
 
-
 
4776
======================================================================
-
 
4777
=============== Function 77, Subfunction 3, Futex wake ===============
-
 
4778
======================================================================
-
 
4779
Parameters:
-
 
4780
  * eax = 77 - function number
-
 
4781
  * ebx = 3 - subfunction number
-
 
4782
  * ecx = futex handle
-
 
4783
  * edx = number of waiters to wake
-
 
4784
Returned value:
-
 
4785
  * eax = number of waiters that were woken up
-
 
4786
 
-
 
4787
Remarks:
-
 
4788
  * This function wakes at most edx of the waiters that are
-
 
4789
    waiting (e.g., inside futex wait) on the futex dword
-
 
4790
  * The futex handle must have been created by subfunction 0
-
 
4791
 
4805
======================================================================
4792
======================================================================
4806
=============== Function -1 - terminate thread/process ===============
4793
=============== Function -1 - terminate thread/process ===============
4807
======================================================================
4794
======================================================================
4808
Parameters:
4795
Parameters:
4809
  * eax = -1 - function number
4796
  * eax = -1 - function number