Subversion Repositories Kolibri OS

Rev

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

Rev 131 Rev 133
Line 8... Line 8...
8
 
8
 
9
======================================================================
9
======================================================================
10
============== Function 0 - define and draw the window. ==============
10
============== Function 0 - define and draw the window. ==============
11
======================================================================
11
======================================================================
12
Defines an application window. Draws a frame of the window, header and
12
Defines an application window. Draws a frame of the window, header and
13
working area. For skinned windows defines standard buttons for close
13
working area. For skinned windows defines standard close and minimize
14
and minimize.
14
buttons.
15
Parameters:
15
Parameters:
16
  * eax = 0 - function number
16
  * eax = 0 - function number
17
  * ebx = [coordinate on axis x]*65536 + [size on axis x]
17
  * ebx = [coordinate on axis x]*65536 + [size on axis x]
18
  * ecx = [coordinate on axis y]*65536 + [size on axis y]
18
  * ecx = [coordinate on axis y]*65536 + [size on axis y]
Line 109... Line 109...
109
      (0,0) - (xsize,_skinh-1)
109
      (0,0) - (xsize,_skinh-1)
110
    * if ysize>=26, fill the working area of the window -
110
    * if ysize>=26, fill the working area of the window -
111
      rectangle with the left upper corner (5,_skinh) and right lower
111
      rectangle with the left upper corner (5,_skinh) and right lower
112
      (xsize-5,ysize-5) with color indicated in edx
112
      (xsize-5,ysize-5) with color indicated in edx
113
      (taking a gradient into account)
113
      (taking a gradient into account)
114
    * define two standard buttons: for close and minimize
114
    * define two standard buttons: close and minimize
115
      (see function 8)
115
      (see function 8)
116
    * if A=1 and edi contains (nonzero) pointer to caption string,
116
    * if A=1 and edi contains (nonzero) pointer to caption string,
117
      it is drawn in place in header defined in the skin
117
      it is drawn in place in header defined in the skin
118
    * value _skinh is accessible as the result of call
118
    * value _skinh is accessible as the result of call
119
      subfunction 4 of function 48
119
      subfunction 4 of function 48
Line 980... Line 980...
980
  * Recommended delay of the mouse (in subsubfunction 3) = 10. Lower
980
  * Recommended delay of the mouse (in subsubfunction 3) = 10. Lower
981
    value is not handled by COM mice. At the very large values the
981
    value is not handled by COM mice. At the very large values the
982
    movement of the mouse on 1 pixel is impossible and the cursor will
982
    movement of the mouse on 1 pixel is impossible and the cursor will
983
    jump on the value of installed speed (subsubfunction 1). The
983
    jump on the value of installed speed (subsubfunction 1). The
984
    installed value is not inspected by the kernel code.
984
    installed value is not inspected by the kernel code.
-
 
985
    Mouse delay can be regulated through the application SETUP.
985
  * The subsubfunction 4 does not check the passed value. Before
986
  * The subsubfunction 4 does not check the passed value. Before
986
    its call find out current screen resolution (with function 14)
987
    its call find out current screen resolution (with function 14)
987
    and check that the value of position is inside the limits of the
988
    and check that the value of position is inside the limits of the
988
    screen.
989
    screen.
Line 1822... Line 1823...
1822
  * ebx = [start coordinate on axis x]*65536 +
1823
  * ebx = [start coordinate on axis x]*65536 +
1823
              [end coordinate on axis x]
1824
              [end coordinate on axis x]
1824
  * ecx = [start coordinate on axis y]*65536 +
1825
  * ecx = [start coordinate on axis y]*65536 +
1825
              [end coordinate on axis y]
1826
              [end coordinate on axis y]
1826
  * edx = 0x00RRGGBB - color
1827
  * edx = 0x00RRGGBB - color
-
 
1828
    edx = 0x01xxxxxx - draw inversed line
-
 
1829
          (low 24 bits are ignored)
1827
Returned value:
1830
Returned value:
1828
  * function does not return value
1831
  * function does not return value
1829
Remarks:
1832
Remarks:
1830
  * Coordinates are relative to the window.
1833
  * Coordinates are relative to the window.
1831
  * End point is also drawn.
1834
  * End point is also drawn.
Line 2871... Line 2874...
2871
  * '/hd0/1/menuet/pics/tanzania.bmp',0
2874
  * '/hd0/1/menuet/pics/tanzania.bmp',0
2872
Existing subfunctions:
2875
Existing subfunctions:
2873
  * subfunction 0 - read file/folder
2876
  * subfunction 0 - read file/folder
2874
  * subfunction 1 - rewrite file
2877
  * subfunction 1 - rewrite file
2875
  * subfunction 2 - delete file/folder
2878
  * subfunction 2 - delete file/folder
2876
  * subfunction 3 - write to existing file
-
 
2877
  * subfunction 4 - make folder
2879
  * subfunction 4 - make folder
2878
  * subfunction 5 - rename/move file/folder
2880
  * subfunction 5 - rename/move file/folder
2879
  * subfunction 8 - LBA-read from device
2881
  * subfunction 8 - LBA-read from device
2880
  * subfunction 15 - get file system information
2882
  * subfunction 15 - get file system information
2881
  * subfunction 16 - start application
2883
  * subfunction 16 - start application
Line 2988... Line 2990...
2988
    folder. The code working with hard disk deletes not empty folders
2990
    folder. The code working with hard disk deletes not empty folders
2989
    correctly (i.e. recursively with all files and nested folders).
2991
    correctly (i.e. recursively with all files and nested folders).
2990
    Function 58 does not support folders on ramdisk.
2992
    Function 58 does not support folders on ramdisk.
Line 2991... Line 2993...
2991
 
2993
 
2992
======================================================================
-
 
2993
==== Function 58, subfunction 3 - write data to the existing file. ===
-
 
2994
======================================================================
-
 
2995
Parameters:
-
 
2996
  * eax = 58 - function number
-
 
2997
  * ebx = pointer to the information structure
-
 
2998
Format of the information structure:
-
 
2999
  * +0: dword: 3 = subfunction number
-
 
3000
  * +4: dword: starting position in the file; -1 = append to the end
-
 
3001
  * +8: dword: number of bytes to write
-
 
3002
  * +12 = +0xC: dword: pointer to data to write
-
 
3003
  * +16 = +0x10: dword: pointer to buffer for system operations
-
 
3004
    (4096 bytes)
-
 
3005
  * +20 = +0x14: ASCIIZ-name of file, the rules of names forming are
-
 
3006
    given in the general description
-
 
3007
Returned value:
-
 
3008
  * eax = 0 - success, otherwise file system error code
-
 
3009
  * ebx destroyed
-
 
3010
Remarks:
-
 
3011
  * This function is obsolete, use subfunction 3 of function 70.
-
 
3012
  * Ramdisk and floppies do not support this function, it is only
-
 
3013
    for hard disks.
-
 
3014
  * File must already exist (otherwise function returns 5, not found).
-
 
3015
    To create files use subfunction 1.
-
 
3016
  * If the starting position is greater than file size, the function
-
 
3017
    returns eax=6(EOF). If the end position is greater than file size,
-
 
3018
    file is extended.
-
 
3019
  * The code of write processing for hard disk interpretes zero
-
 
3020
    value of the field +8 as the instruction to truncate the file to
-
 
3021
    the size, given in the field +4. However the code of processing
-
 
3022
    58th function blocks this possibility for applications by
-
 
3023
    immediate return (with eax=0) in the case of zero size.
-
 
3024
 
-
 
3025
======================================================================
2994
======================================================================
3026
============== Function 58, subfunction 4 - make folder. =============
2995
============== Function 58, subfunction 4 - make folder. =============
3027
======================================================================
2996
======================================================================
3028
Parameters:
2997
Parameters:
3029
  * eax = 58 - function number
2998
  * eax = 58 - function number
Line 4098... Line 4067...
4098
Available subfunctions:
4067
Available subfunctions:
4099
  * subfunction 0 - read file
4068
  * subfunction 0 - read file
4100
  * subfunction 1 - read folder
4069
  * subfunction 1 - read folder
4101
  * subfunction 2 - create/rewrite file
4070
  * subfunction 2 - create/rewrite file
4102
  * subfunction 3 - write to existing file
4071
  * subfunction 3 - write to existing file
-
 
4072
  * subfunction 4 - set file size
4103
  * subfunction 5 - get attributes of file/folder
4073
  * subfunction 5 - get attributes of file/folder
4104
  * subfunction 6 - set attributes of file/folder
4074
  * subfunction 6 - set attributes of file/folder
4105
  * subfunction 7 - start application
4075
  * subfunction 7 - start application
4106
For CD-drives due to hardware limitations only subfunctions
4076
For CD-drives due to hardware limitations only subfunctions
4107
0,1,5 and 7 are available, other subfunctions return error
4077
0,1,5 and 7 are available, other subfunctions return error
Line 4285... Line 4255...
4285
  * The only result of write 0 bytes is update in the file attributes
4255
  * The only result of write 0 bytes is update in the file attributes
4286
    date/time of modification and access to the current date/time.
4256
    date/time of modification and access to the current date/time.
4287
  * If beginning and/or ending position is greater than file size
4257
  * If beginning and/or ending position is greater than file size
4288
    (except for the previous case), the file is expanded to needed
4258
    (except for the previous case), the file is expanded to needed
4289
    size with zero characters.
4259
    size with zero characters.
-
 
4260
  * The function is not supported for CD (returns error code 2).
-
 
4261
 
-
 
4262
======================================================================
-
 
4263
============ Function 70, subfunction 4 - set end of file. ===========
-
 
4264
======================================================================
-
 
4265
Parameters:
-
 
4266
  * eax = 70 - function number
-
 
4267
  * ebx = pointer to the information structure
-
 
4268
Format of the information structure:
-
 
4269
  * +0: dword: 4 = subfunction number
-
 
4270
  * +4: dword: low dword of new file size
-
 
4271
  * +8: dword: high dword of new file size (must be 0 for FAT)
-
 
4272
  * +12 = +0xC: dword: 0 (reserved)
-
 
4273
  * +16 = +0x10: dword: 0 (reserved)
-
 
4274
  * +20 = +0x14: ASCIIZ-name of file, the rules of names forming are
-
 
4275
    given in the general description
-
 
4276
    or
-
 
4277
  * +20 = +0x14: db 0
-
 
4278
  * +21 = +0x15: dd pointer to ASCIIZ-string with file name
-
 
4279
Returned value:
-
 
4280
  * eax = 0 - success, otherwise file system error code
-
 
4281
  * ebx destroyed
-
 
4282
Remarks:
-
 
4283
  * If the new file size is less than old one, file is truncated.
-
 
4284
    If the new size is greater than old one, file is expanded with
-
 
4285
    characters with code 0. If the new size is equal to old one,
-
 
4286
    the only result of call is set date/time of modification and
-
 
4287
    access to the current date/time.
-
 
4288
  * If there is not enough free space on disk for expansion, the
-
 
4289
    function will expand to maximum possible size and then return
-
 
4290
    error code 8.
-
 
4291
  * The function is not supported for CD (returns error code 2).
Line 4290... Line 4292...
4290
 
4292
 
4291
======================================================================
4293
======================================================================
4292
==== Function 70, subfunction 5 - get information on file/folder. ====
4294
==== Function 70, subfunction 5 - get information on file/folder. ====
4293
======================================================================
4295
======================================================================