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 |