/programs/develop/libraries/box_lib/branch/COPYING.TXT |
---|
0,0 → 1,347 |
GNU GENERAL PUBLIC LICENSE |
Version 2, June 1991 |
Copyright (C) 1989, 1991 Free Software Foundation, Inc. |
675 Mass Ave, Cambridge, MA 02139, USA |
Everyone is permitted to copy and distribute verbatim copies |
of this license document, but changing it is not allowed. |
Preamble |
The licenses for most software are designed to take away your |
freedom to share and change it. By contrast, the GNU General Public |
License is intended to guarantee your freedom to share and change free |
software--to make sure the software is free for all its users. This |
General Public License applies to most of the Free Software |
Foundation's software and to any other program whose authors commit to |
using it. (Some other Free Software Foundation software is covered by |
the GNU Library General Public License instead.) You can apply it to |
your programs, too. |
When we speak of free software, we are referring to freedom, not |
price. Our General Public Licenses are designed to make sure that you |
have the freedom to distribute copies of free software (and charge for |
this service if you wish), that you receive source code or can get it |
if you want it, that you can change the software or use pieces of it |
in new free programs; and that you know you can do these things. |
To protect your rights, we need to make restrictions that forbid |
anyone to deny you these rights or to ask you to surrender the rights. |
These restrictions translate to certain responsibilities for you if you |
distribute copies of the software, or if you modify it. |
For example, if you distribute copies of such a program, whether |
gratis or for a fee, you must give the recipients all the rights that |
you have. You must make sure that they, too, receive or can get the |
source code. And you must show them these terms so they know their |
rights. |
We protect your rights with two steps: (1) copyright the software, and |
(2) offer you this license which gives you legal permission to copy, |
distribute and/or modify the software. |
Also, for each author's protection and ours, we want to make certain |
that everyone understands that there is no warranty for this free |
software. If the software is modified by someone else and passed on, we |
want its recipients to know that what they have is not the original, so |
that any problems introduced by others will not reflect on the original |
authors' reputations. |
Finally, any free program is threatened constantly by software |
patents. We wish to avoid the danger that redistributors of a free |
program will individually obtain patent licenses, in effect making the |
program proprietary. To prevent this, we have made it clear that any |
patent must be licensed for everyone's free use or not licensed at all. |
The precise terms and conditions for copying, distribution and |
modification follow. |
GNU GENERAL PUBLIC LICENSE |
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION |
0. This License applies to any program or other work which contains |
a notice placed by the copyright holder saying it may be distributed |
under the terms of this General Public License. The "Program", below, |
refers to any such program or work, and a "work based on the Program" |
means either the Program or any derivative work under copyright law: |
that is to say, a work containing the Program or a portion of it, |
either verbatim or with modifications and/or translated into another |
language. (Hereinafter, translation is included without limitation in |
the term "modification".) Each licensee is addressed as "you". |
Activities other than copying, distribution and modification are not |
covered by this License; they are outside its scope. The act of |
running the Program is not restricted, and the output from the Program |
is covered only if its contents constitute a work based on the |
Program (independent of having been made by running the Program). |
Whether that is true depends on what the Program does. |
1. You may copy and distribute verbatim copies of the Program's |
source code as you receive it, in any medium, provided that you |
conspicuously and appropriately publish on each copy an appropriate |
copyright notice and disclaimer of warranty; keep intact all the |
notices that refer to this License and to the absence of any warranty; |
and give any other recipients of the Program a copy of this License |
along with the Program. |
You may charge a fee for the physical act of transferring a copy, and |
you may at your option offer warranty protection in exchange for a fee. |
2. You may modify your copy or copies of the Program or any portion |
of it, thus forming a work based on the Program, and copy and |
distribute such modifications or work under the terms of Section 1 |
above, provided that you also meet all of these conditions: |
a) You must cause the modified files to carry prominent notices |
stating that you changed the files and the date of any change. |
b) You must cause any work that you distribute or publish, that in |
whole or in part contains or is derived from the Program or any |
part thereof, to be licensed as a whole at no charge to all third |
parties under the terms of this License. |
c) If the modified program normally reads commands interactively |
when run, you must cause it, when started running for such |
interactive use in the most ordinary way, to print or display an |
announcement including an appropriate copyright notice and a |
notice that there is no warranty (or else, saying that you provide |
a warranty) and that users may redistribute the program under |
these conditions, and telling the user how to view a copy of this |
License. (Exception: if the Program itself is interactive but |
does not normally print such an announcement, your work based on |
the Program is not required to print an announcement.) |
These requirements apply to the modified work as a whole. If |
identifiable sections of that work are not derived from the Program, |
and can be reasonably considered independent and separate works in |
themselves, then this License, and its terms, do not apply to those |
sections when you distribute them as separate works. But when you |
distribute the same sections as part of a whole which is a work based |
on the Program, the distribution of the whole must be on the terms of |
this License, whose permissions for other licensees extend to the |
entire whole, and thus to each and every part regardless of who wrote it. |
Thus, it is not the intent of this section to claim rights or contest |
your rights to work written entirely by you; rather, the intent is to |
exercise the right to control the distribution of derivative or |
collective works based on the Program. |
In addition, mere aggregation of another work not based on the Program |
with the Program (or with a work based on the Program) on a volume of |
a storage or distribution medium does not bring the other work under |
the scope of this License. |
3. You may copy and distribute the Program (or a work based on it, |
under Section 2) in object code or executable form under the terms of |
Sections 1 and 2 above provided that you also do one of the following: |
a) Accompany it with the complete corresponding machine-readable |
source code, which must be distributed under the terms of Sections |
1 and 2 above on a medium customarily used for software interchange; or, |
b) Accompany it with a written offer, valid for at least three |
years, to give any third party, for a charge no more than your |
cost of physically performing source distribution, a complete |
machine-readable copy of the corresponding source code, to be |
distributed under the terms of Sections 1 and 2 above on a medium |
customarily used for software interchange; or, |
c) Accompany it with the information you received as to the offer |
to distribute corresponding source code. (This alternative is |
allowed only for noncommercial distribution and only if you |
received the program in object code or executable form with such |
an offer, in accord with Subsection b above.) |
The source code for a work means the preferred form of the work for |
making modifications to it. For an executable work, complete source |
code means all the source code for all modules it contains, plus any |
associated interface definition files, plus the scripts used to |
control compilation and installation of the executable. However, as a |
special exception, the source code distributed need not include |
anything that is normally distributed (in either source or binary |
form) with the major components (compiler, kernel, and so on) of the |
operating system on which the executable runs, unless that component |
itself accompanies the executable. |
If distribution of executable or object code is made by offering |
access to copy from a designated place, then offering equivalent |
access to copy the source code from the same place counts as |
distribution of the source code, even though third parties are not |
compelled to copy the source along with the object code. |
4. You may not copy, modify, sublicense, or distribute the Program |
except as expressly provided under this License. Any attempt |
otherwise to copy, modify, sublicense or distribute the Program is |
void, and will automatically terminate your rights under this License. |
However, parties who have received copies, or rights, from you under |
this License will not have their licenses terminated so long as such |
parties remain in full compliance. |
5. You are not required to accept this License, since you have not |
signed it. However, nothing else grants you permission to modify or |
distribute the Program or its derivative works. These actions are |
prohibited by law if you do not accept this License. Therefore, by |
modifying or distributing the Program (or any work based on the |
Program), you indicate your acceptance of this License to do so, and |
all its terms and conditions for copying, distributing or modifying |
the Program or works based on it. |
6. Each time you redistribute the Program (or any work based on the |
Program), the recipient automatically receives a license from the |
original licensor to copy, distribute or modify the Program subject to |
these terms and conditions. You may not impose any further |
restrictions on the recipients' exercise of the rights granted herein. |
You are not responsible for enforcing compliance by third parties to |
this License. |
7. If, as a consequence of a court judgment or allegation of patent |
infringement or for any other reason (not limited to patent issues), |
conditions are imposed on you (whether by court order, agreement or |
otherwise) that contradict the conditions of this License, they do not |
excuse you from the conditions of this License. If you cannot |
distribute so as to satisfy simultaneously your obligations under this |
License and any other pertinent obligations, then as a consequence you |
may not distribute the Program at all. For example, if a patent |
license would not permit royalty-free redistribution of the Program by |
all those who receive copies directly or indirectly through you, then |
the only way you could satisfy both it and this License would be to |
refrain entirely from distribution of the Program. |
If any portion of this section is held invalid or unenforceable under |
any particular circumstance, the balance of the section is intended to |
apply and the section as a whole is intended to apply in other |
circumstances. |
It is not the purpose of this section to induce you to infringe any |
patents or other property right claims or to contest validity of any |
such claims; this section has the sole purpose of protecting the |
integrity of the free software distribution system, which is |
implemented by public license practices. Many people have made |
generous contributions to the wide range of software distributed |
through that system in reliance on consistent application of that |
system; it is up to the author/donor to decide if he or she is willing |
to distribute software through any other system and a licensee cannot |
impose that choice. |
This section is intended to make thoroughly clear what is believed to |
be a consequence of the rest of this License. |
8. If the distribution and/or use of the Program is restricted in |
certain countries either by patents or by copyrighted interfaces, the |
original copyright holder who places the Program under this License |
may add an explicit geographical distribution limitation excluding |
those countries, so that distribution is permitted only in or among |
countries not thus excluded. In such case, this License incorporates |
the limitation as if written in the body of this License. |
9. The Free Software Foundation may publish revised and/or new versions |
of the General Public License from time to time. Such new versions will |
be similar in spirit to the present version, but may differ in detail to |
address new problems or concerns. |
Each version is given a distinguishing version number. If the Program |
specifies a version number of this License which applies to it and "any |
later version", you have the option of following the terms and conditions |
either of that version or of any later version published by the Free |
Software Foundation. If the Program does not specify a version number of |
this License, you may choose any version ever published by the Free Software |
Foundation. |
10. If you wish to incorporate parts of the Program into other free |
programs whose distribution conditions are different, write to the author |
to ask for permission. For software which is copyrighted by the Free |
Software Foundation, write to the Free Software Foundation; we sometimes |
make exceptions for this. Our decision will be guided by the two goals |
of preserving the free status of all derivatives of our free software and |
of promoting the sharing and reuse of software generally. |
NO WARRANTY |
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY |
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN |
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES |
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED |
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF |
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS |
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE |
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, |
REPAIR OR CORRECTION. |
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING |
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR |
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, |
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING |
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED |
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY |
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER |
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE |
POSSIBILITY OF SUCH DAMAGES. |
END OF TERMS AND CONDITIONS |
Appendix: How to Apply These Terms to Your New Programs |
If you develop a new program, and you want it to be of the greatest |
possible use to the public, the best way to achieve this is to make it |
free software which everyone can redistribute and change under these terms. |
To do so, attach the following notices to the program. It is safest |
to attach them to the start of each source file to most effectively |
convey the exclusion of warranty; and each file should have at least |
the "copyright" line and a pointer to where the full notice is found. |
<one line to give the program's name and a brief idea of what it does.> |
Copyright (C) 19yy <name of author> |
This program is free software; you can redistribute it and/or modify |
it under the terms of the GNU General Public License as published by |
the Free Software Foundation; either version 2 of the License, or |
(at your option) any later version. |
This program is distributed in the hope that it will be useful, |
but WITHOUT ANY WARRANTY; without even the implied warranty of |
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
GNU General Public License for more details. |
You should have received a copy of the GNU General Public License |
along with this program; if not, write to the Free Software |
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. |
Also add information on how to contact you by electronic and paper mail. |
If the program is interactive, make it output a short notice like this |
when it starts in an interactive mode: |
Gnomovision version 69, Copyright (C) 19yy name of author |
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. |
This is free software, and you are welcome to redistribute it |
under certain conditions; type `show c' for details. |
The hypothetical commands `show w' and `show c' should show the appropriate |
parts of the General Public License. Of course, the commands you use may |
be called something other than `show w' and `show c'; they could even be |
mouse-clicks or menu items--whatever suits your program. |
You should also get your employer (if you work as a programmer) or your |
school, if any, to sign a "copyright disclaimer" for the program, if |
necessary. Here is a sample; alter the names: |
Yoyodyne, Inc., hereby disclaims all copyright interest in the program |
`Gnomovision' (which makes passes at compilers) written by James Hacker. |
<signature of Ty Coon>, 1 April 1989 |
Ty Coon, President of Vice |
This General Public License does not permit incorporating your program into |
proprietary programs. If your program is a subroutine library, you may |
consider it more useful to permit linking proprietary applications with the |
library. If this is what you want to do, use the GNU Library General |
Public License instead of this License. |
/programs/develop/libraries/box_lib/branch/bl_sys.mac |
---|
0,0 → 1,10 |
;include 'editbox.mac' ;macro which should make life easier :) specially for editbox |
include 'checkbox.mac' ;macro implements checkbox |
;include 'optionbox.mac' ;macro implements optionbox |
;include 'scrollbar.mac' ;macro implements scrollbar |
;include 'd_button.mac' ;macro implements dinamic_button |
;include 'menubar.mac' ;macro implements menubar |
;include 'filebrowser.mac' ;macro implements filebrowser |
;include 'tree_list.mac' ;macro implements tree_list, image_list, list_box |
;include 'pathshow.mac' ;macro implements pathshow |
;include 't_edit.mac' ;macro implements text_editor |
/programs/develop/libraries/box_lib/branch/box_lib.asm |
---|
0,0 → 1,316 |
; Copyright (C) KolibriOS team 2004-2010. All rights reserved. |
; Refer to the GNU General Public license (the "GPL") for full details. |
; |
;***************************************************************************** |
; Box_Lib - library of graphical components |
; |
; Authors: |
; Alexey Teplov aka <Lrz> |
; Marat Zakiyanov aka Mario79, aka Mario |
; Evtikhov Maxim aka Maxxxx32 |
; Eugene Grechnikov aka Diamond |
; hidnplayr |
; Igor Afanasiev aka IgorA |
;***************************************************************************** |
format MS COFF |
public EXPORTS |
section '.flat' code readable align 16 |
include '../../../../macros.inc' |
include '../../../../proc32.inc' |
include 'bl_sys.mac' |
include 'box_lib.mac' ;macro which should make life easier :) |
;----------------------------------------------------------------------------- |
mem.alloc dd ? ;ôóíêöèÿ äëÿ âûäåëåíèÿ ïàìÿòè |
mem.free dd ? ;ôóíêöèÿ äëÿ îñâîáîæäåíèÿ ïàìÿòè |
mem.realloc dd ? ;ôóíêöèÿ äëÿ ïåðåðàñïðåäåëåíèÿ ïàìÿòè |
dll.load dd ? |
;---------------------------------------------------- |
;EditBox |
;---------------------------------------------------- |
align 16 |
;use_editbox_draw ;macro reveals the function of the display. |
align 16 |
;use_editbox_key ;macro reveals processing function of the keypad. |
align 16 |
;use_editbox_mouse ;macro reveals processing function of the mouse. |
;---------------------------------------------------- |
;CheckBox |
;---------------------------------------------------- |
align 16 |
use_checkbox_draw ;macro reveals the function of the display. |
align 16 |
use_checkbox_mouse ;macro reveals processing function of the mouse. |
;-------------------------------------------------- |
;radiobutton Group |
;-------------------------------------------------- |
align 16 |
;use_optionbox_driver ;macro that control the operating modes |
align 16 |
;use_optionbox_draw ;macro reveals the function of the display. |
align 16 |
;use_optionbox_mouse ;macro reveals processing function of the mouse. |
;-------------------------------------------------- |
;scrollbar Group |
;-------------------------------------------------- |
align 16 |
;use_scroll_bar |
align 16 |
;use_scroll_bar_vertical |
align 16 |
;use_scroll_bar_horizontal |
;-------------------------------------------------- |
;dinamic button Group |
;-------------------------------------------------- |
align 16 |
;use_dinamic_button |
;-------------------------------------------------- |
;menubar Group |
;-------------------------------------------------- |
align 16 |
;use_menu_bar |
;-------------------------------------------------- |
;filebrowser Group |
;-------------------------------------------------- |
align 16 |
;use_file_browser |
;-------------------------------------------------- |
;tree list |
;-------------------------------------------------- |
align 16 |
;use_tree_list |
;-------------------------------------------------- |
;PathShow Group |
;-------------------------------------------------- |
align 16 |
;use_path_show |
;-------------------------------------------------- |
;text editor |
;-------------------------------------------------- |
align 16 |
;use_text_edit |
;input: |
; eax = óêàçàòåëü íà ôóíêöèþ âûäåëåíèÿ ïàìÿòè |
; ebx = ... îñâîáîæäåíèÿ ïàìÿòè |
; ecx = ... ïåðåðàñïðåäåëåíèÿ ïàìÿòè |
; edx = ... çàãðóçêè áèáëèîòåêè (ïîêà íå èñïîëüçóåòñÿ) |
align 16 |
lib_init: |
mov [mem.alloc], eax |
mov [mem.free], ebx |
mov [mem.realloc], ecx |
mov [dll.load], edx |
ret |
align 16 |
EXPORTS: |
dd sz_init, lib_init |
dd sz_version, 0x00000001 |
;dd sz_edit_box, edit_box |
;dd sz_edit_box_key, edit_box_key |
;dd sz_edit_box_mouse, edit_box_mouse |
;dd sz_edit_box_set_text, edit_box_set_text |
;dd szVersion_ed, 0x00000001 |
dd sz_check_box_draw, check_box_draw |
dd sz_check_box_mouse, check_box_mouse |
dd szVersion_ch, 0x00000001 |
;dd sz_option_box_draw, option_box_draw |
;dd sz_option_box_mouse, option_box_mouse |
;dd szVersion_op, 0x00000001 |
;dd sz_Scrollbar_ver_draw, scroll_bar_vertical.draw |
;dd sz_Scrollbar_ver_mouse, scroll_bar_vertical.mouse |
;dd sz_Scrollbar_hor_draw, scroll_bar_horizontal.draw |
;dd sz_Scrollbar_hor_mouse, scroll_bar_horizontal.mouse |
;dd szVersion_scrollbar, 0x00010001 |
;dd sz_Dbutton_draw, dinamic_button.draw |
;dd sz_Dbutton_mouse, dinamic_button.mouse |
;dd szVersion_dbutton, 0x00010001 |
;dd sz_Menu_bar_draw, menu_bar.draw |
;dd sz_Menu_bar_mouse, menu_bar.mouse |
;dd sz_Menu_bar_activate, menu_bar.activate |
;dd szVersion_menu_bar, 0x00010002 |
;dd sz_FileBrowser_draw, fb_draw_panel |
;dd sz_FileBrowser_mouse, fb_mouse |
;dd sz_FileBrowser_key, fb_key |
;dd szVersion_FileBrowser, 0x00010001 |
;dd sz_tl_data_init, tl_data_init |
;dd sz_tl_data_clear, tl_data_clear |
;dd sz_tl_info_clear, tl_info_clear |
;dd sz_tl_key, tl_key |
;dd sz_tl_mouse, tl_mouse |
;dd sz_tl_draw, tl_draw |
;dd sz_tl_info_undo, tl_info_undo |
;dd sz_tl_info_redo, tl_info_redo |
;dd sz_tl_node_add, tl_node_add |
;dd sz_tl_node_set_data, tl_node_set_data |
;dd sz_tl_node_get_data, tl_node_get_data |
;dd sz_tl_node_delete, tl_node_delete |
;dd sz_tl_cur_beg, tl_cur_beg |
;dd sz_tl_cur_next, tl_cur_next |
;dd sz_tl_cur_perv, tl_cur_perv |
;dd sz_tl_node_close_open, tl_node_close_open |
;dd sz_tl_node_lev_inc, tl_node_lev_inc |
;dd sz_tl_node_lev_dec, tl_node_lev_dec |
;dd sz_tl_node_move_up, tl_node_move_up |
;dd sz_tl_node_move_down, tl_node_move_down |
;dd sz_tl_node_poi_get_info, tl_node_poi_get_info |
;dd sz_tl_node_poi_get_next_info, tl_node_poi_get_next_info |
;dd sz_tl_node_poi_get_data, tl_node_poi_get_data |
;dd sz_tl_save_mem, tl_save_mem |
;dd sz_tl_load_mem, tl_load_mem |
;dd sz_tl_get_mem_size, tl_get_mem_size |
;dd sz_tl_version_tree_list, 0x00000001 |
;dd sz_PathShow_prepare, path_show.prepare |
;dd sz_PathShow_draw, path_show.draw |
;dd szVersion_path_show, 0x00010001 |
;dd sz_ted_but_save_file, ted_but_save_file |
;dd sz_ted_but_sumb_upper, ted_but_sumb_upper |
;dd sz_ted_but_sumb_lover, ted_but_sumb_lover |
;dd sz_ted_can_save, ted_can_save |
;dd sz_ted_clear, ted_clear |
;dd sz_ted_delete, ted_delete |
;dd sz_ted_draw, ted_draw |
;dd sz_ted_init, ted_init |
;dd sz_ted_init_scroll_bars, ted_init_scroll_bars |
;dd sz_ted_init_syntax_file, ted_init_syntax_file |
;dd sz_ted_is_select, ted_is_select |
;dd sz_ted_key, ted_key |
;dd sz_ted_mouse, ted_mouse |
;dd sz_ted_open_file, ted_open_file |
;dd sz_ted_text_add, ted_text_add |
;dd sz_ted_but_select_word, ted_but_select_word |
;dd sz_ted_but_cut, ted_but_cut |
;dd sz_ted_but_copy, ted_but_copy |
;dd sz_ted_but_paste, ted_but_paste |
;dd sz_ted_but_undo, ted_but_undo |
;dd sz_ted_but_redo, ted_but_redo |
;dd sz_ted_but_reverse, ted_but_reverse |
;dd sz_ted_but_find_next, ted_but_find_next |
;dd sz_ted_text_colored, ted_text_colored |
;dd sz_ted_version, 0x00000002 |
dd 0,0 |
sz_init db 'lib_init',0 |
sz_version db 'version',0 |
sz_edit_box db 'edit_box',0 |
sz_edit_box_key db 'edit_box_key',0 |
sz_edit_box_mouse db 'edit_box_mouse',0 |
sz_edit_box_set_text db 'edit_box_set_text',0 |
szVersion_ed db 'version_ed',0 |
sz_check_box_draw db 'check_box_draw',0 |
sz_check_box_mouse db 'check_box_mouse',0 |
szVersion_ch db 'version_ch',0 |
sz_option_box_draw db 'option_box_draw',0 |
sz_option_box_mouse db 'option_box_mouse',0 |
szVersion_op db 'version_op',0 |
sz_Scrollbar_ver_draw db 'scrollbar_v_draw',0 |
sz_Scrollbar_ver_mouse db 'scrollbar_v_mouse',0 |
sz_Scrollbar_hor_draw db 'scrollbar_h_draw',0 |
sz_Scrollbar_hor_mouse db 'scrollbar_h_mouse',0 |
szVersion_scrollbar db 'version_scrollbar',0 |
sz_Dbutton_draw db 'dbutton_draw',0 |
sz_Dbutton_mouse db 'dbutton_mouse',0 |
szVersion_dbutton db 'version_dbutton',0 |
sz_Menu_bar_draw db 'menu_bar_draw',0 |
sz_Menu_bar_mouse db 'menu_bar_mouse',0 |
sz_Menu_bar_activate db 'menu_bar_activate',0 |
szVersion_menu_bar db 'version_menu_bar',0 |
sz_FileBrowser_draw db 'FileBrowser_draw',0 |
sz_FileBrowser_mouse db 'FileBrowser_mouse',0 |
sz_FileBrowser_key db 'FileBrowser_key',0 |
szVersion_FileBrowser db 'version_FileBrowser',0 |
sz_tl_data_init db 'tl_data_init',0 |
sz_tl_data_clear db 'tl_data_clear',0 |
sz_tl_info_clear db 'tl_info_clear',0 |
sz_tl_key db 'tl_key',0 |
sz_tl_mouse db 'tl_mouse',0 |
sz_tl_draw db 'tl_draw',0 |
sz_tl_info_undo db 'tl_info_undo',0 |
sz_tl_info_redo db 'tl_info_redo',0 |
sz_tl_node_add db 'tl_node_add',0 |
sz_tl_node_set_data db 'tl_node_set_data',0 |
sz_tl_node_get_data db 'tl_node_get_data',0 |
sz_tl_node_delete db 'tl_node_delete',0 |
sz_tl_cur_beg db 'tl_cur_beg',0 |
sz_tl_cur_next db 'tl_cur_next',0 |
sz_tl_cur_perv db 'tl_cur_perv',0 |
sz_tl_node_close_open db 'tl_node_close_open',0 |
sz_tl_node_lev_inc db 'tl_node_lev_inc',0 |
sz_tl_node_lev_dec db 'tl_node_lev_dec',0 |
sz_tl_node_move_up db 'tl_node_move_up',0 |
sz_tl_node_move_down db 'tl_node_move_down',0 |
sz_tl_node_poi_get_info db 'tl_node_poi_get_info',0 |
sz_tl_node_poi_get_next_info db 'tl_node_poi_get_next_info',0 |
sz_tl_node_poi_get_data db 'tl_node_poi_get_data',0 |
sz_tl_save_mem db 'tl_save_mem',0 |
sz_tl_load_mem db 'tl_load_mem',0 |
sz_tl_get_mem_size db 'tl_get_mem_size',0 |
sz_tl_version_tree_list db 'version_tree_list',0 |
sz_PathShow_prepare db 'PathShow_prepare',0 |
sz_PathShow_draw db 'PathShow_draw',0 |
szVersion_path_show db 'version_PathShow',0 |
sz_ted_but_save_file db 'ted_but_save_file',0 |
sz_ted_but_sumb_upper db 'ted_but_sumb_upper',0 |
sz_ted_but_sumb_lover db 'ted_but_sumb_lover',0 |
sz_ted_can_save db 'ted_can_save',0 |
sz_ted_clear db 'ted_clear',0 |
sz_ted_delete db 'ted_delete',0 |
sz_ted_draw db 'ted_draw',0 |
sz_ted_init db 'ted_init',0 |
sz_ted_init_scroll_bars db 'ted_init_scroll_bars',0 |
sz_ted_init_syntax_file db 'ted_init_syntax_file',0 |
sz_ted_is_select db 'ted_is_select',0 |
sz_ted_key db 'ted_key',0 |
sz_ted_mouse db 'ted_mouse',0 |
sz_ted_open_file db 'ted_open_file',0 |
sz_ted_text_add db 'ted_text_add',0 |
sz_ted_but_select_word db 'ted_but_select_word',0 |
sz_ted_but_cut db 'ted_but_cut',0 |
sz_ted_but_copy db 'ted_but_copy',0 |
sz_ted_but_paste db 'ted_but_paste',0 |
sz_ted_but_undo db 'ted_but_undo',0 |
sz_ted_but_redo db 'ted_but_redo',0 |
sz_ted_but_reverse db 'ted_but_reverse',0 |
sz_ted_but_find_next db 'ted_but_find_next',0 |
sz_ted_text_colored db 'ted_text_colored',0 |
sz_ted_version db 'version_text_edit',0 |
/programs/develop/libraries/box_lib/branch/box_lib.mac |
---|
0,0 → 1,361 |
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
;Basic macros for use EditBox ; |
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
ed_width equ [edi] ;øèðèíà êîìïîíåíòà |
ed_left equ [edi+4] ;ïîëîæåíèå ïî îñè õ |
ed_top equ [edi+8] ;ïîëîæåíèå ïî îñè ó |
ed_color equ [edi+12] ;öâåò ôîíà êîìïîíåíòà |
shift_color equ [edi+16] ;=0x6a9480 äëÿ ïðèìåðà âîçüåì æåëåíûé öâåò áîêñà |
ed_focus_border_color equ [edi+20] ;öâåò ðàìêè êîìïîíåíòà |
ed_blur_border_color equ [edi+24] ;öâåò íå àêòèâíîãî êîìïîíåíòà |
ed_text_color equ [edi+28] ;öâåò òåêñòà |
ed_max equ [edi+32] ;êîë-âî ñèìâîëîâ êîòîðûå ìîæíî ìàêñèìàëüíî ââåñòè |
ed_text equ [edi+36] ;óêàçàòåëü íà áóôåð |
ed_mouse_variable equ [edi+40] ; óêàçàòåëü íà ïåðåìåííóþ äëÿ áîêñà/ãðóïïû |
ed_flags equ [edi+44] ;ôëàãè |
bp_flags equ [ebp+44] ;â íåêîòîðûõ ïðîöåäóðàõ edi èñïîëüçóåòñÿ, âçàìåí óêàçàòåëü õðàíèòüñÿ â ebp |
ed_size equ [edi+48] ;êîë-âî ñèìâîëîâ |
bp_size equ [ebp+48] ;êîë-âî ñèìâïîëîâ, äëÿ àäðåñàöèè èñïëüçóåòñÿ ebpá edi çàíÿò |
ed_pos equ [edi+52] ;ïîçèöèÿ êóðñîðà |
ed_offset equ [edi+56] ;ñìåùåíèå |
cl_curs_x equ [edi+60] ;ïðåäûäóùåå êîîðäèíàòà êóðñîðà ïî õ |
cl_curs_y equ [edi+64] ;ïðåäûäóùåå êîîðäèíàòà êóðñîðà ïî ó |
ed_shift_pos equ [edi+68] ;ïîëîæåíèå êóðñîðà |
ed_shift_pos_old equ [edi+72] ;ñòàðîå ïîëîæåíèå êóðñîðà |
ed_struc_size=76 |
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
;Bit mask from editbox |
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
ed_figure_only= 1000000000000000b ;îäíè ñèìâîëû |
ed_always_focus= 100000000000000b |
ed_focus= 10b ;ôîêóñ ïðèëîæåíèÿ |
ed_shift_on= 1000b ;åñëè íå óñòàíîâëåí -çíà÷èò âïåðâûå íàæàò shift,åñëè áûë óñòàíîâëåí, çíà÷èò ìû óæå ÷òî - òî äåëàëè óäåðæèâàÿ shift |
ed_shift_on_off=1111111111110111b |
ed_shift= 100b ;âêëþ÷àåòñÿ ïðè íàæàòèè íà shift ò.å. åñëè íàæèìàþ |
ed_shift_off= 1111111111111011b |
ed_shift_bac= 10000b ;áèò äëÿ î÷èñòêè âûäåëåíîãî shift ò.å. ïðè óñòàíîâêå ãîâîðèò ÷òî åñòü âûäåëåíèå |
ed_shift_bac_cl=1111111111101111b ;î÷èñòêà ïðè óäàëåíèè âûäåëåíèÿ |
ed_shift_cl= 1111111111100011b |
ed_shift_mcl= 1111111111111011b |
ed_left_fl= 100000b |
ed_right_fl= 1111111111011111b |
ed_offset_fl= 1000000b |
ed_offset_cl= 1111111110111111b |
ed_insert= 10000000b |
ed_insert_cl= 1111111101111111b |
ed_mouse_on = 100000000b |
ed_mous_adn_b= 100011000b |
ed_mouse_on_off=1111111011111111b |
ed_height=14 ; âûñîòà |
struc edit_box width,left,top,color,shift_color,focus_border_color,\ |
blur_border_color,text_color,max,text,mouse_variable,flags,size,pos |
{ |
.width dd width |
.left dd left |
.top dd top |
.color dd color |
.shift_color dd shift_color |
.focus_border_color dd focus_border_color |
.blur_border_color dd blur_border_color |
.text_color dd text_color |
.max dd max |
.text dd text |
.mouse_variable dd mouse_variable |
.flags dd flags+0 |
.size dd size+0 |
.pos dd pos+0 |
.offset dd 0 |
.cl_curs_x dd 0 |
.cl_curs_y dd 0 |
.shift dd 0 |
.shift_old dd 0 |
} |
macro edit_boxes_set_sys_color start,end,color_table |
{ |
mov edi,start |
mov ecx,((end-start)/ed_struc_size) |
mov esi,color_table |
@@: |
mov eax,dword [esi+36] |
mov ebx,dword [esi+20] |
push dword eax |
pop dword ed_focus_border_color |
shr bh,1 |
shr bl,1 |
shr ah,1 |
shr al,1 |
add ah,bh |
add al,bl |
ror eax,16 |
ror ebx,16 |
shr bl,1 |
shr al,1 |
add al,bl |
ror eax,16 |
mov dword ed_blur_border_color,eax |
mov dword shift_color,eax |
add edi,ed_struc_size |
loop @b |
} |
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
;Basic macros for use CheckBox ; |
;Last change 03.10.2010 |
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
ch_struc_size=36 ;ðàçìåð ñòðóêòóðû |
ch_flag_en=10b ;ôëàã óñòàíîâëåííîãî ÷åê áîêñà. |
ch_left_s equ [ebp] ;êîðäèíàòà íà÷àëà ðèñîâàíèÿ ïî õ |
ch_top_s equ [ebp+4] ;êîîðäèíàòà íà÷àëà ðèñîâàíèÿ ïî ó |
ch_text_margin equ [ebp+8] ;=4 ðàññòîÿíèå îò ïðÿìîóãîëüíèêà ÷åê áîêñà äî íàäïèñè |
ch_color equ [ebp+12] ;öâåò âíóòðè checkbox |
ch_border_color equ [ebp+16] ; or [edi+4] ;öâåò ðàìêè checkbox åå ìîæíî çàäàòü ñàìîñòîÿòåëüíî |
ch_text_color equ [ebp+20] ;[edi+4] ;öâåò òåêñòà |
ch_text_ptr equ [ebp+24] ;óêàçàòåëü íà íà÷àëî òåêñòîâîé ñòðîêè |
ch_text_length equ [ebp+28] ;äëèííà ñòðîêè |
ch_flags equ [ebp+32] ;ôëàãè |
struc check_box left_s,top_s,ch_text_margin,color,border_color,text_color,text,ch_text_length,flags |
{ ;ñòðóêòóðà ïàðàìåòðîâ äëÿ ÷åê áîêñà |
.left_s: dd left_s ;+0 ïîëîæåíèå ïî õ dw + ðàçìåð dw |
.top_s: dd top_s ;+4 ïîëîæåíèå ïî ó dw + ðàçìåð dw |
.ch_text_margin: dd ch_text_margin ;ðàññòîÿíèå îò ïðÿìîóãîëüíèêà ÷åê áîêñà äî íàäïèñè |
.color: dd color ;öâåò âíóòðè ÷åêáîêñà |
.border_color: dd border_color ;öâåò ðàìêè |
.text_color: dd text_color ;öâåò íàäïèñè |
.text: dd text ;àäðåñ â êîäå ïðîãðàììû ãäå ðàñïîëîæåí òåêñò |
.ch_text_length: dd ch_text_length ;äëèííà ñòðîêè ñ ñèìâîëàìè |
.flags: dd flags+0 ; ôëàãè |
} |
macro check_boxes_set_sys_color start,end,color_table |
{ |
mov ebp,start |
mov ecx,((end-start)/ch_struc_size) |
mov esi,color_table |
@@: |
push dword [esi+32] ;öâåò òåêñòà â ðàáî÷åé îáëàñòè îêíà |
pop dword ch_text_color |
push dword [esi+36] ;öâåò ãðàôèêè â îêíå (ðàçäåëèòåëüíûå ëèíèè è ò.ï.) |
pop dword ch_border_color |
add ebp,ch_struc_size |
loop @b |
} |
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
;Basic macros for use OptionBox ; |
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
struc option_box point_gr,left,top,op_text_margin,op_size,color,border_color,text_color,text,op_text_length,flags |
{ ;ñòðóêòóðà ïàðàìåòðîâ äëÿ ÷åê áîêñà |
op_flag_en=10b |
.option_group: dd point_gr |
.left: dw left ;+0 ;ïîëîæåíèå ïî õ |
.top: dw top ;ïîëîæåíèå ïî ó |
.ch_text_margin: dd op_text_margin ;ðàññòîÿíèå îò ïðÿìîóãîëüíèêà ÷åê áîêñà äî íàäïèñè |
.ch_size: dd op_size ;ðàçìåð êâàäðàòà ÷åê áîêñà, äëÿ ïðèìåðà 12 |
.color: dd color ;öâåò âíóòðè ÷åêáîêñà |
.border_color: dd border_color ;öâåò ðàìêè |
.text_color: dd text_color ;öâåò íàäïèñè |
.text: dd text ;àäðåñ â êîäå ïðîãðàììû ãäå ðàñïîëîæåí òåêñò |
.ch_text_length: dd op_text_length ;äëèííà ñòðîêè ñ ñèìâîëàìè |
.flags: dd flags+0 ; ôëàãè |
} |
option_group equ [edi] |
op_left equ [edi+4] ;êîîðäèíàòà íà÷àëà ðèñîâàíèÿ ïî õ |
op_top equ [edi+6] ;êîîðäèíàòà íà÷àëà ðèñîâàíèÿ ïî ó |
op_text_margin equ [edi+8] ;=4 ðàññòîÿíèå îò ïðÿìîóãîëüíèêà ÷åê áîêñà äî íàäïèñè |
op_size equ [edi+12] ;12 ðàçìåð êâàäðàòà ÷åê áîêñà |
op_color equ [edi+16] |
op_border_color equ [edi+20] ; or [edi+4] ;öâåò ðàìêè checkbox åå ìîæíî çàäàòü ñàìîñòîÿòåëüíî |
op_text_color equ [edi+24];[edi+4] ;öâåò òåêñòà |
op_text_ptr equ [edi+28] ;óêàçàòåëü íà íà÷àëî òåêñòîâîé ñòðîêè |
op_text_length equ [edi+32] |
op_flags equ [edi+36] ;ôëàãè |
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
;Basic macros for use TreeList ; |
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
struc tree_list info_size,info_max_count,style, img_cx,img_cy,\ |
col_bkg,col_zag,col_txt, box_l,box_t,box_w,box_h, capt_cy,info_capt_offs,\ |
info_capt_len,el_focus, p_scrol,on_press { |
.data_info dd 0 |
.info_size dw info_size |
.info_max_count dd info_max_count |
.style dd style |
.data_nodes dd 0 |
.data_img dd 0 |
.img_cx dw img_cx |
.img_cy dw img_cy |
.data_img_sys dd 0 |
.ch_tim dd 0 |
.ls_tim dd 0 |
.tim_undo dd 0 |
.cur_pos dd 0 |
.col_bkg dd col_bkg |
.col_zag dd col_zag |
.col_txt dd col_txt |
.box_left dd box_l |
.box_top dd box_t |
.box_width dd box_w |
.box_height dd box_h |
.capt_cy dw capt_cy |
.info_capt_offs dw info_capt_offs |
.info_capt_len dw info_capt_len |
.el_focus dd el_focus |
.p_scrol dd p_scrol |
rb 4 |
.on_activate dd 0 |
.on_press dd on_press |
} |
tl_info_size equ word[edi +4] ;ðàçìåð äàííûõ âûäåëÿåìûõ äëÿ êàæäîãî óçëà (ïîëüçîâàòåëüñüêèå äàííûå + òåêñò äëÿ ïîäïèñè) |
tl_info_max_count equ dword[edi+6] ;ìàêñèìàëüíîå êîëè÷åñòâî óçëîâ, êîòîðûå ìîæíî äîáàâèòü â ýëåìåíò |
tl_style equ dword[edi+10] ;ñòèëè ýëåìåíòà |
tl_data_nodes equ dword[edi+14] ;óêàçàòåëü íà ñòðóêòóðû óçëîâ |
tl_data_img equ dword[edi+18] ;óêàçàòåëü íà èçîáðàæåíèÿ ñ èêîíêàìè óçëîâ |
tl_img_cx equ word[edi+22] ;øèðèíà èêîíîê |
tl_img_cy equ word[edi+24] ;âûñîòà èêîíîê |
tl_data_img_sys equ dword[edi+26] ;óêàçàòåëü íà ñèñòåìíûå èçîáðàæåíèÿ (ñòðåëêè, ïëþñèêè) |
tl_ch_tim equ dword[edi+30] ;êîëè÷åñòâî èçìåíåíèé â ôàéëå |
tl_tim_undo equ dword[edi+38] ;êîëè÷åñòâî îòìåíåííûõ äåéñòâèé |
tl_cur_pos equ dword[edi+42] ;ïîçèöèÿ êóðñîðà |
tl_col_bkg equ dword[edi+46] ;öâåò ôîíà |
tl_col_zag equ dword[edi+50] ;öâåò çàãîëîâêà |
tl_col_txt equ dword[edi+54] ;öâåò òåêñòà |
tl_box_left equ dword[edi+58] |
tl_box_top equ dword[edi+62] |
tl_box_width equ dword[edi+66] |
tl_box_height equ dword[edi+70] |
tl_capt_cy equ word[edi+74] ;âûñîòà ïîäïèñè |
tl_info_capt_offs equ word[edi+76] ;ñäâèã äëÿ íà÷àëà òåêñòà (ïîäïèñè óçëà) |
tl_info_capt_len equ word[edi+78] ;äëèííà òåêñòà ïîäïèñè óçëà (åñëè = 0 òî äî êîíöà ñòðóêòóðû) |
tl_el_focus equ dword[edi+80] ;óêàçàòåëü íà ñòðóêòóðó ýëåìåíòà â ôîêóñå |
tl_p_scrol equ dword[edi+84] ;óêàçàòåëü íà ñòðóêòóðó ñêðîëëèíãà |
tl_on_press equ dword[edi+96] ;óêàçàòåëü íà ôóíêöèþ, êîòîðàÿ âûçûâàåòñÿ ïðè íàæàòèè Enter |
;data_info dd ? ;+ 0 óêàçàòåëü íà îñíîâíûå äàíûå |
;ls_tim dd ? ;+34 âðåìÿ ïîñëåäíåãî ñîõðàíåíèÿ |
;on_activate dd ? ;+92 óêàçàòåëü íà ôóíêöèþ ïðè àêòèâèðîâàíèè óçëà |
;êîíñòàíòû ñòèëÿ |
tl_key_no_edit equ 1b ;ýëåìåíò íåëüçÿ ðåäàêòèðîâàòü íà êëàâèàòóðå (èçìåíÿòü óðîâíè, óäàëÿòü) |
tl_draw_par_line equ 10b ;ðèñîâàòü ëèíèè ê ðîäèòåëüñêîìó óçëó |
tl_list_box_mode equ 100b ;ñòèëü íå îòîáðàæàåò óðîâíè (êàê â ListBox âñå îäíîãî óðîâíÿ) |
;êîíñòàíòû äëÿ ôóíêöèé |
tl_err_save_memory_size equ 10b ;íå õâàòàåò ïàìÿòè äëÿ ñîõðàíåíèÿ ýëåìåíòà |
tl_err_load_caption equ 1b ;â ïàìÿòè íåò çàãîëîâêà 'tree' |
tl_err_load_info_size equ 100b ;íå ñîâïàäàåò ðàçìåð èíôîðìàöèîííîé ñòðóêòóðû ïðè îòêðûòèè |
tl_load_mode_add equ 0x20000 ;îïöèÿ ñ÷èòûâàíèÿ â ðåæèìå äîáàâëåíèÿ èíôîðìàöèè |
tl_save_load_heder_size equ 26 ;ðàçìåð çàãîëîâêà äëÿ çàïèñè/÷òåíèÿ ýëåìåíòîâ |
tl_offs_box equ 58 ;íà÷àëî BOX ñòðóêòóðû äëÿ tree_list |
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
;Basic macros for use TextEditor ; |
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
ted_wnd_l equ dword[edi+ 0] ;îêíî ðåäàêòîðà: îòñòóï ñëåâà |
ted_wnd_t equ dword[edi+ 4] ;îêíî ðåäàêòîðà: îòñòóï ñâåðõó |
ted_wnd_w equ dword[edi+ 8] ;îêíî ðåäàêòîðà: øèðèíà |
ted_wnd_h equ dword[edi+12] ;îêíî ðåäàêòîðà: âûñîòà |
ted_rec_l equ dword[edi+16] ;øèðèíà ïàíåëè â îêíå |
ted_rec_t equ dword[edi+20] ;âûñîòà ïàíåëè â îêíå |
ted_rec_w equ dword[edi+24] ;øèðèíà ñèìâîëà (çíàêîìåñòà) â îêíå |
ted_rec_h equ dword[edi+28] ;âûñîòà ñèìâîëà (çíàêîìåñòà) â îêíå |
ted_drag_m equ byte[edi+32] ;âûäåëåíèå îò ìûøè |
ted_drag_k equ byte[edi+33] ;âûäåëåíèå îò êëàâèàòóðû |
ted_sel_x0 equ dword[edi+34] ;êîîðäèíàòà âûäåëåíèÿ x0 |
ted_sel_y0 equ dword[edi+38] ;êîîðäèíàòà âûäåëåíèÿ y0 |
ted_sel_x1 equ dword[edi+42] ;êîîðäèíàòà âûäåëåíèÿ x1 |
ted_sel_y1 equ dword[edi+46] ;êîîðäèíàòà âûäåëåíèÿ y1 |
;çàïàñíûå êîîðäèíàòû âûäåëåíèÿ |
ted_seln_x0 equ dword[edi+50] |
ted_seln_y0 equ dword[edi+54] |
ted_seln_x1 equ dword[edi+58] |
ted_seln_y1 equ dword[edi+62] |
ted_tex equ dword[edi+66] ;óêàçàòåëü íà ïàìÿòü äëÿ õðàíåíèÿ òåêñòà |
ted_tex_1 equ dword[edi+70] ;óêàçàòåëü íà 1-þ ñòðêóòðó ñèìâîëà |
ted_tex_end equ dword[edi+74] ;óêàçàòåëü íà ïîñëåäíþþ ñòðóêòóðó ñèìâîëà |
ted_cur_x equ dword[edi+78] ;êîîðäèíàòà x êóðñîðà |
ted_cur_y equ dword[edi+82] ;êîîðäèíàòà y êóðñîðà |
ted_max_chars equ dword[edi+86] ;ìàêñèìàëüíîå ÷èñëî ñèìâîëîâ â îäíîì äîêóìåíòå |
ted_colors_text_count equ dword[edi+90] ;êîëëè÷åñòâî öâåòîâ òåêñòà |
ted_key_words_count equ dword[edi+94] ;êîëëè÷åñòâî êëþ÷åâûõ ñëîâ |
ted_color_cursor equ dword[edi+98] ;öâåò êóðñîðà |
ted_color_wnd_capt equ dword[edi+102] ;öâåò ïîëåé âîêðóã îêíà |
ted_color_wnd_work equ dword[edi+106] ;öâåò ôîíà îêíà |
ted_color_wnd_bord equ dword[edi+110] ;öâåò òåêñòà íà ïîëÿõ |
ted_color_select equ dword[edi+114] ;öâåò âûäåëåíèÿ |
ted_color_cur_text equ dword[edi+118] ;öâåò ñèìâîëà ïîä êóðñîðîì |
ted_color_wnd_text equ dword[edi+122] ;öâåò òåêñòà â îêíå |
ted_syntax_file equ dword[edi+126] ;óêàçàòåëü íà íà÷àëî ôàéëà ñèíòàêñèñà |
ted_syntax_file_size equ dword[edi+130] ;ìàêñèìàëüíûé ðàçìåð ôàéëà ñèíòàêñèñà |
ted_text_colors equ dword[edi+134] ;óêàçàòåëü íà ìàññèâ öâåòîâ òåêñòà |
ted_help_text_f1 equ dword[edi+138] ;óêàçàòåëü íà òåêñò ñïðàâêè (ïî íàæàòèè F1) |
ted_help_id equ dword[edi+142] ;èäåíòèôèêàòîð äëÿ ñïðàâêè |
ted_key_words_data equ dword[edi+146] ;óêàçàòåëü íà ñòðóêòóðû êëþ÷åâûõ ñëîâ TexColViv |
ted_tim_ch equ dword[edi+150] ;êîëëè÷åñòâî èçìåíåíèé â ôàéëå |
ted_tim_undo equ dword[edi+154] ;êîëëè÷åñòâî îòìåíåííûõ äåéñòâèé |
ted_tim_ls equ dword[edi+158] ;âðåìÿ ïîñëåäíåãî ñîõðàíåíèÿ |
ted_tim_co equ dword[edi+162] ;âðåìÿ ïîñëåäíåé öâåòîâîé ðàçìåòêè |
ted_el_focus equ dword[edi+166] ;óêàçàòåëü íà ïåðåìåííóþ ýëåìåíòà â ôîêóñå |
ted_err_save equ byte[edi+170] ;îøèáêà ñîõðàíåíèÿ ôàéëà |
ted_panel_id equ byte[edi+171] ;íîìåð îòêðûòîé ïàíåëè |
ted_key_new equ byte[edi+172] ;ñèìâîë, êîòîðûé áóäåò äîáàâëÿòñÿ ñ êëàâèàòóðû |
ted_symbol_new_line equ byte[edi+173] ;ñèìâîë çàâåðøåíèÿ ñòðîêè |
ted_scr_w equ dword[edi+174] ;âåðòèêàëüíûé ñêðîëëèíã |
ted_scr_h equ dword[edi+178] ;ãîðèçîíòàëüíûé ñêðîëëèíã |
ted_arr_key_pos equ dword[edi+182] ;óêàçàòåëü íà ìàññèâ ïîçèöèé êëþ÷åâûõ ñëîâ |
ted_buffer equ dword[edi+186] ;óêàçàòåëü íà áóôåð êîïèðîâàíèÿ/âñòàâêè |
ted_buffer_find equ dword[edi+190] ;óêàçàòåëü íà áóôåð äëÿ ïîèñêà |
ted_cur_ins equ byte[edi+194] ;ðåæèì ðàáîòû êóðñîðà (îáû÷íûé èëè çàìåíà) |
ted_mode_color equ byte[edi+195] ;ðåæèì âûäåëåíèÿ ñëîâ öâåòîì (0-âûêë. 1-âêë.) |
ted_mode_invis equ byte[edi+196] ;ðåæèì ïîêàçà íåïå÷àòàåìûõ ñèìâîëîâ |
ted_gp_opt equ byte[edi+197] ;îïöèè âîçâðàùàåìûå ôóíêöèåé ted_get_pos_by_cursor |
ted_fun_on_key_ctrl_o equ dword[edi+198] ;óêàçàòåëü íà ôóíêöèþ âûçûâàåìóþ ïðè íàæàòèè Ctrl+O (îòêðûòèå ôàéëà) |
ted_fun_on_key_ctrl_f equ dword[edi+202] ;... Ctrl+F (âûçîâà/ñêðûòèÿ ïàíåëè ïîèñêà) |
ted_fun_on_key_ctrl_n equ dword[edi+206] ;... Ctrl+N (ñîçäàíèå íîâîãî äîêóìåíòà) |
ted_fun_on_key_ctrl_s equ dword[edi+210] ;... Ctrl+S |
ted_buffer_size equ dword[edi+214] ;ðàçìåð áóôåðà êîïèðîâàíèÿ/âñòàâêè |
ted_fun_find_err equ dword[edi+218] ;óêàçàòåëü íà ôóíêöèþ âûçûâàåìóþ åñëè ïîèñê çàêîí÷èëñÿ íåóäà÷íî |
ted_fun_init_synt_err equ dword[edi+222] ;óêàçàòåëü íà ôóíêöèþ âûçûâàåìóþ ïðè îøèáî÷íîì îòêðûòèè ôàéëà ñèíòàêñèñà |
ted_fun_draw_panel_buttons equ dword[edi+226] ;óêàçàòåëü íà ôóíêöèþ ðèñîâàíèÿ ïàíåëè ñ êíîïêàìè |
ted_fun_draw_panel_find equ dword[edi+230] ;óêàçàòåëü íà ôóíêöèþ ðèñîâàíèÿ ïàíåëè ïîèñêà |
ted_fun_draw_panel_syntax equ dword[edi+234] ;óêàçàòåëü íà ôóíêöèþ ðèñîâàíèÿ ïàíåëè ñèíòàêñèñà |
ted_fun_save_err equ dword[edi+238] ;óêàçàòåëü íà ôóíêöèþ âûçûâàåìóþ åñëè ñîõðàíåíèå ôàéëà çàêîí÷èëîñü íåóäà÷íî |
ted_increase_size equ dword[edi+242] ;÷èñëî ñèìâîëîâ íà êîòîðûå áóäåò óâå÷èâàòüñÿ ïàìÿòü ïðè íåõâàòêå |
ted_ptr_free_symb equ dword[edi+246] ;óêàçàòåëü íà ñâîáîäíóþ ïàìÿòü, â êîòîðóþ ìîæíî äîáàâëÿòü ñèìâîë (èñïîëüçóåòñÿ âíóòðè ýëåìåíòà äëÿ óñêîðåíèÿ âñòàâêè òåêñòà) |
;------------------------------------------------------------------------------ |
ted_opt_ed_move_cursor equ 1 ;äâèãàòü êóðñîð ïîñëå äîáàâëåíèÿ òåêñòà |
ted_opt_ed_change_time equ 2 ;äîáàâëÿòü èçìåíåíèÿ ïðè ðåäàêòèðîâàíèè òåêñòà |
ted_offs_sel equ 34 ;ñìåùåíèå ñòðóêòóðû sel |
ted_offs_seln equ 50 ;ñìåùåíèå ñòðóêòóðû seln |
ted_offs_count_colors equ 90 ;ñìåùåíèå ïåðåìåííîé êîëëè÷åñòâà öâåòîâ |
ted_offs_key_new equ 172 |
ted_offs_symbol_new_line equ 173 ;ñìåùåíèå ñèìâîëà íîâîé ñòðîêè |
;------------------------------------------------------------------------------ |
; *** scroll bar constant *** |
sb_offs_size_x equ 0 |
sb_offs_start_x equ 2 |
sb_offs_size_y equ 4 |
sb_offs_start_y equ 6 |
sb_offs_max_area equ 16 |
sb_offs_cur_area equ 20 |
sb_offs_position equ 24 |
sb_offs_bckg_col equ 28 |
sb_offs_frnt_col equ 32 |
sb_offs_line_col equ 36 |
sb_offs_redraw equ 40 |
sb_offs_delta2 equ 46 |
sb_offs_all_redraw equ 80 |
;------------------------------------------------------------------------------ |
/programs/develop/libraries/box_lib/branch/checkbox.asm |
---|
0,0 → 1,147 |
;***************************************************************************** |
; Example for Box_lib: checkbox |
; Copyright (c) 2007-2010, Alexey Teplov aka <Lrz> |
; All rights reserved. |
; |
; Redistribution and use in source and binary forms, with or without |
; modification, are permitted provided that the following conditions are met: |
; * Redistributions of source code must retain the above copyright |
; notice, this list of conditions and the following disclaimer. |
; * Redistributions in binary form must reproduce the above copyright |
; notice, this list of conditions and the following disclaimer in the |
; documentation and/or other materials provided with the distribution. |
; * Neither the name of the <organization> nor the |
; names of its contributors may be used to endorse or promote products |
; derived from this software without specific prior written permission. |
; |
; THIS SOFTWARE IS PROVIDED BY Alexey Teplov ''AS IS'' AND ANY |
; EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED |
; WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE |
; DISCLAIMED. IN NO EVENT SHALL <copyright holder> BE LIABLE FOR ANY |
; DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES |
; (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; |
; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND |
; ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
; (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS |
; SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
;****************************************************************************** |
use32 |
org 0x0 |
;------------ <head> from kolibrios programm |
db 'MENUET01' |
dd 0x01 |
dd START |
dd MEM_END |
dd PRIL_END |
dd PRIL_END |
dd 0x0 |
dd cur_dir_path |
;------------ </head> |
;------------ <include macros> |
include '../../../../macros.inc' |
include '../load_lib.mac' |
include 'box_lib.mac' |
;include 'macros.inc' |
;include 'load_lib.mac' |
;------------ </include macros> |
;------------ <init library> |
@use_library |
;------------ </init library> |
;--------------------------------------------------------------------- |
;--- Start of program ---------------------------------------------- |
;--------------------------------------------------------------------- |
START: |
sys_load_library library_name, cur_dir_path, library_path, system_path, \ |
err_message_found_lib, head_f_l, myimport, err_message_import, head_f_i |
test eax,eax |
jnz exit |
window: |
call draw_window ;ïåðâîíà÷àëüíî íåîáõîäèìî íàðèñîâàòü îêíî |
align 4 |
still: ;îñíîâíîé îáðàáîò÷èê |
mcall 10 ;Îæèäàòü ñîáûòèÿ |
dec eax |
jz window |
dec eax |
jz key |
dec eax |
jz button |
push dword check1 |
call [check_box_mouse] |
push dword check2 |
call [check_box_mouse] |
jmp still ;åñëè íè÷åãî èç ïåðå÷èñëåííîãî òî ñíîâà â öèêë |
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
button: |
mcall 17 ;ïîëó÷èòü èäåíòèôèêàòîð íàæàòîé êëàâèøè |
test ah,ah ;åñëè â ah 0, òî ïåðåéòè íà îáðàáîò÷èê ñîáûòèé still |
jz still |
exit: mcall -1 |
key: |
mcall 2 ;çàãðóçèì çíà÷åíèå 2 â ðåãèñòîð eax è ïîëó÷èì êîä íàæàòîé êëàâèøè |
jmp still |
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>> |
align 4 |
draw_window: ;ðèñîâàíèå îêíà ïðèëîæåíèÿ |
mcall 12,1 |
mcall 0,(50*65536+390),(30*65536+200),0x33AABBCC,0x805080DD,hed |
push dword check1 |
call [check_box_draw] |
push dword check2 |
call [check_box_draw] |
mcall 12,2 |
ret |
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> |
;DATA äàííûå |
;Âñåãäà ñîáëþäàòü ïîñëåäîâàòåëüíîñòü â èìåíè. |
system_path db '/sys/lib/' |
library_name db 'box_lib.obj',0 |
; Åñëè åñòü æåëàíèå ðàçúåäèíèòü, òî íóæíî èñïîëüçîâàòü ñëåäóþùèþ êîíñòðóêöèþ |
;system_path db '/sys/lib/box_lib.obj',0 |
;... ëþáàÿ ïîñëåäîâàòåëüíîñòü äðóãèõ êîìàíä è îïðåäåëåíèé. |
;library_name db 'box_lib.obj',0 |
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
err_message_found_lib db 'Sorry I cannot load library box_lib.obj',0 |
head_f_i: |
head_f_l db 'System error',0 |
err_message_import db 'Error on load import library box_lib.obj',0 |
myimport: |
check_box_draw dd aCheck_box_draw |
check_box_mouse dd aCheck_box_mouse |
version_ch dd aVersion_ch |
dd 0,0 |
aCheck_box_draw db 'check_box_draw',0 |
aCheck_box_mouse db 'check_box_mouse',0 |
aVersion_ch db 'version_ch',0 |
;--------------------------------------------------------------------- |
check1 check_box (10 shr 16 + 12),(45 shr 16 + 12),6,0x80AABBCC,0,0,check_text,14,ch_flag_en |
check2 check_box (10 shr 16 + 12),(60 shr 16 + 12),6,0x80AABBCC,0,0,check_text2,15 |
;--------------------------------------------------------------------- |
hed db 'CheckBox Exemples <Lrz> date 03.10.2010',0 |
hed_end: |
;--------------------------------------------------------------------- |
check_text db 'First checkbox' |
check_text2 db 'Second checkbox' |
;--------------------------------------------------------------------- |
MEM_END: |
cur_dir_path rb 1024 |
library_path rb 1024 |
rb 1024 ;for stack |
PRIL_END: |
/programs/develop/libraries/box_lib/branch/checkbox.bat |
---|
0,0 → 1,2 |
@fasm -m 16384 checkbox.asm checkbox.kex |
if exist checkbox.kex @kpack checkbox.kex |
/programs/develop/libraries/box_lib/branch/checkbox.mac |
---|
0,0 → 1,136 |
;Ïîñëåäíàÿ ìîäèôèêàöèÿ 03.10.2010 |
;ôàéë ñîçäàí 13.02.2009 <Lrz> Íà êîä ïðèìåíåíà GPL2 ëèöåíçèÿ |
;Ìàêðîñ äëÿ ñèñòåìíîé áèáëèîòåêè box_lib.obj |
;Checkbox |
macro use_checkbox_draw |
{ |
check_box_draw: |
pusha ;ñîõðàíèì âñå ðåãèñòðû |
; mov edi,dword [esp+36] |
; mov ebx,ch_left_s |
; mov ecx,ch_top_s |
; mov edx,dword ch_border_color |
; mov eax,13 |
; mcall ;ðèñóåì ðàìêó |
mcall 13,ch_left_s,ch_top_s,ch_border_color |
mov edx,dword ch_color |
add ebx,1 shl 16 - 2 |
add ecx,1 shl 16 - 2 |
mcall ;çàêðàøèâàåì âíóòðåííîñòè ÷åêáîêñà |
test dword ch_flags,2 ;äîñòàòü çíà÷åíèå áèòà èç ïåðåìåííîé è ïîìåñòèòü â ôëàã CF |
jz @f ;â åñëè CF=1, òî âûïîëíèì ñëåäóþùóþ ïðîöåäóðó èíà÷å ïåðåéòè íà íèæíþþ @@ |
call check_box_draw_ch ;íàðèñîâàòü âêëþ÷åííûé ÷åê áîêñ |
@@: |
;---------------------------- |
;ðàñ÷åò êóäà áóäåò ïðîèçâåäåí âûâîä òåêñòà |
;---------------------------- |
mov ebx,ch_left ;çàãðóçèòü çíà÷åíèå õ äëÿ ÷åê áîêñà |
add ebx,dword ch_size |
add ebx,dword ch_text_margin ;äîáàâèòü ðàçìåð ñòîðîíû è ðàññòîÿíèå íà êîòîðîì íà÷íåòñÿ âûâîä òåêñòà |
shl ebx,16 ;ñäâèíåì íà 16 ðàçðÿäîâ â ëåâî (óìíîæèì íà 65536) |
mov bx,word ch_top ;çàãðóçèì çíà÷åíèå ïî y |
add ebx,ch_size |
mov ecx,dword ch_text_color ;çàãðóçèì öâåò íàäïèñè + flags |
sub ebx,7 ;äîáàâèì çíà÷åíèå äëèíû ñòîðîíû -9+2 |
mov edx,dword ch_text_ptr ;óêàæåì àäðåñ îò êóäà íóæíî âûâîäèòü ñòðîêó |
mov esi,dword ch_text_length |
mov eax,4 ;âíåñåì â eax çíà÷åíèå âûâîäà íàäïèñè íà êàíâó |
mcall ;Âûâîä |
popa ;âîññòàíîâèòü çíà÷åíèÿ ðåãèñòðîâ èç ñòåêà |
ret 4 ;âûéäåì èç ïðîöåäóðû |
check_box_clear_ch: ;î÷èñòêà ÷åê áîêñà |
mov edx,dword ch_color ;öâåò âíóòðè ÷åê áîêñà |
jmp @f ;áåçóñëîâíûé ïðûæîê íà íèæíþþ ìåòêó @@ |
check_box_draw_ch: ;íàðèñîâàòü âêëþ÷åííûé ÷åê áîêñ |
mov edx,dword ch_border_color ;çàãðóçèòü öâåò |
@@: |
movzx ebx,word ch_left ;çàãðóçèòü êîîðäèíàòó ïî õ |
mov eax,dword ch_size |
mov di,ax |
shr eax,2 |
push ax |
push ax |
add ebx,eax |
shl ebx,16 ;ñäâèíåì íà 16 ðàçðÿäîâ â ëåâî (óìíîæèì íà 65536) |
pop ax |
lea eax,[eax*2] |
sub bp,ax ;ñîõðàíèì ðåãèñòð bx â ðåãèñòðå óêàçàòåëÿ áàçû |
mov bx,bp |
movzx ecx,word ch_top ;çàãðóçèòü êîîðäèíàòó ïî ó |
pop ax |
add cx,ax |
shl ecx,16 ;ñäâèíåì íà 16 ðàçðÿäîâ â ëåâî (óìíîæèì íà 65536) |
mov cx,bp ;çàãðóçèì çíà÷åíèÿ ðåãèñòðà óêàçàòåëÿ áàçû â cx |
mov eax,13 ;â eax - çíà÷åíèÿ ôóíêöèè äëÿ âûâîäà ïîëîñû ò.å. ïî ñóòè ïðÿìîóãîëüíèêà, êîòîðûé îòîáðàæàåò âêëþ÷åííûé êîìïîíåíò ÷åê áîêñ |
mcall ;âûâîä |
ret ;âûéòè èç ïðîöåäóðû |
} |
macro use_checkbox_mouse |
{ |
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
;Îáðàáîò÷èê mouse |
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
check_box_mouse: ;îáðàáîòêà ìûøè |
pusha |
mov edi,dword [esp+36] |
mov eax,37 ;áóäåì ÷òî òî äåëàòü åñëè ó íàñ ÷òî - íèòü íàæàòî |
mov ebx,2 ;âíåñòè â ðåãèñòð çíà÷åíèå 2 |
mcall ;ïðîâåðêà íå íàæàë ëè ïîëüçîâàòåëü êíîïêó ìûøêè |
test eax,eax ;ïðîâåðêà åñëè ó íàñ â eax=0, òî óñòàíîâèì ôëàã è âûéäåì |
jnz @f ;ïåðåéòè íà íèæíþþ ìåòêó @@ |
btr dword ch_flags,2 ;èçâëå÷åíèå çíà÷åíèÿ çàäàííîãî áèòà â ôëàã cf è èçìåíåíèå åãî çíà÷åíèÿ íà íóëåâîå. |
jmp check_box_mouse_end |
@@: |
bts dword ch_flags,2 ;ïðîâåðêà ôëàãà ò.å. ïåðåíîñ â cf çíà÷åíèå áèòà è óñòàíîâêà áèòà â ñîñòîÿíèå âêëþ÷åíî |
jc check_box_mouse_end ;åñëè CF=1 òî ïåðåéòè â êîíåö ò.å. ýòî âûõîä |
mov esi,dword ch_text_length ;çàãðóçèòü êîë-âî ñèìâîëîâ â òåêñòîâîé ñòðîêå |
;Óìíîæåíèå íà 6 Áûñòðîå óìíîæåíèå ìîæíî âîñïîëüçîâàòüñÿ ëþáûì ìç ìåòîäîâ, íî íà ñòàðûõ Ïðîöåññîðàõ (386,486,P1)áûñòðåå áóäåò ñ èíñòðóêöèåé Lea |
lea esi,[eax*3] |
shl esi,1 |
; imul esi,6 ; èëè ìîæíî è òàê óìíîæèòü íà 6 |
add esi,dword ch_text_margin ;äîáàâèòü 3 - ðàññòîÿíèå îò ÷åê áîêñà äî íàäïèñè |
mov eax,37 ;ïîëó÷èì êîîðäèíàòû ìûøêè |
mov ebx,1 ;äîáàâèòü 1 |
mcall ;ïîëó÷èòü êîîðäèíàòû êóðñîðà îòíîñèòåëüíî îêíà |
movzx ebx,word ch_top ;çàãðóçèòü â bx çíà÷åíèå êîîðäèíàòû ó |
cmp ax,bx ;ñðàâíèòü ñ ñ êîîðäèíàòîé êóðñîðà |
jl check_box_mouse_end ;SF <> OF åñëè ìåíüøå |
add ebx,dword ch_size ;äîáàâèòü ðàçìåð |
cmp ax,bx ;ñðàâíèòü |
jg check_box_mouse_end ;ZF = 0 è SF = OF åñëè áîëüøå |
shr eax,16 ;ðàçäåëèì íà 65536 èëè ïðîñòî ñäâèíåì áèòû íà 16 çíà÷åíèé |
movzx ebx,word ch_left ;ïðîèçâåäåì àíàëîãè÷íîå ñðàâíåíèå |
cmp ax,bx ;ñðàâíèòü ðåãèñòðû |
jl check_box_mouse_end ;åñëè ìåíüøå |
add ebx,dword ch_size ;äîáàâèòü äëèíó ñòîðîíû ïðÿìîóãîëüíèêà |
add ebx,esi ;Ó÷åñòü â çíà÷åíèè ïî õ åùå è äëèíó íàäïèñè ê ÷åêáîêñó |
cmp ax,bx ;ñòðàâíèòü ðåãèñòðû |
jg check_box_mouse_end ;åñëè áîëüøå |
bts dword ch_flags,1 ;èçâëå÷åíèå çíà÷åíèÿ çàäàííîãî áèòà â ôëàã cf è èçìåíåíèå åãî çíà÷åíèÿ íà 1. |
jc @f ;CF=1 òî ïåðåéòè íà íèæíþþ @@ |
call check_box_draw_ch ;îòîáðàçèòü âêëþ÷åííûé ÷åê áîêñ |
; mov dword [esp+24],1 ;äàëüíåéøàÿ ïðîâåðêà ÷åê áîêñîâ áåñìûñëåíà, ïî ýòîìó â ñòåê, ãäå ðàñïîëàãàåòñÿ ecx ïîìåñòèòì 0 |
jmp check_box_mouse_end ;âûéòè |
@@: |
btr word ch_flags,1 ;èçâëå÷åíèå çíà÷åíèÿ çàäàííîãî áèòà â ôëàã cf è èçìåíåíèå åãî çíà÷åíèÿ íà íóëåâîå. |
call check_box_clear_ch ;âûêëþ÷èòü ÷åê áîêñ ò.å. íà ìåñòå çàêðàøåííîãî ïðÿìîóãîëüíèêà îòîáðàçèòü öâåò ôîíà. |
check_box_mouse_end: |
popa ;âîññòàíîâèòü ðåãèñòðû èç ñòåêà |
ret 4 ;âûéòè |
} |
/programs/develop/libraries/box_lib/branch/readme.txt |
---|
0,0 → 1,5 |
# This is exeperemental source code for trunk, not stable. |
# Ýòî ýêñïåðèìåíòàëüíûå íàáðîñêè, êîòîðûå â äàëüíåéøåì áóäóò âêëþ÷åíû â trunk. |
# Ïðè÷èíà ïîÿâëåíèÿ: Ìíîé áûëà ïîòåðÿíà ðàáîòà ïî èçìåíåíèþ áèáëèîòåêè box_lib, ò.ê. ïðèõîäèòüñÿ ðàáîòàòü íà ðàçíûõ ÏÊ, |
# â ðàçíîå âðåìÿ, è â ðàçíûõ ìåñòàõ. |
# <Lrz>, 03/10/2010. |
/programs/develop/libraries/box_lib/branch/run.bat |
---|
0,0 → 1,4 |
if not exist bin mkdir bin |
@fasm.exe -m 16384 box_lib.asm bin\box_lib.obj |
@kpack bin\box_lib.obj |
pause |
/programs/develop/libraries/box_lib/branch |
---|
Property changes: |
Added: tsvn:logminsize |
+5 |
\ No newline at end of property |
/programs/develop/libraries/box_lib/trunk/box_lib.mac |
---|
103,20 → 103,21 |
} |
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
;Basic macros for use CheckBox ; |
;Last change 25.09.2010 |
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; |
ch_struc_size=36 |
ch_flag_en=10b ;í«¥¬¥â ¢ë¡à |
ch_struc_size=36 ;à §¬¥à áâàãªâãàë |
ch_flag_en=10b ;ä« £ ãáâ ®¢«¥®£® 祪 ¡®ªá . |
ch_left equ [edi] ;ª®®à¤¨ â ç « à¨á®¢ ¨ï ¯® å |
ch_top equ [edi+2] ;ª®®à¤¨ â ç « à¨á®¢ ¨ï ¯® ã |
ch_text_margin equ [edi+4] ;=4 à ááâ®ï¨¥ ®â ¯àאַ㣮«ì¨ª 祪 ¡®ªá ¤® ¤¯¨á¨ |
ch_size equ [edi+8] ;12 à §¬¥à ª¢ ¤à â 祪 ¡®ªá |
ch_color equ [edi+12] ;梥⠢ãâਠcheckbox |
ch_border_color equ [edi+16] ; or [edi+4] ;梥â à ¬ª¨ checkbox ¥¥ ¬®¦® § ¤ âì á ¬®áâ®ïâ¥«ì® |
ch_text_color equ [edi+20] ;[edi+4] ;梥â ⥪áâ |
ch_text_ptr equ [edi+24] ;㪠§ ⥫ì ç «® ⥪á⮢®© áâப¨ |
ch_text_length equ [edi+28] |
ch_flags equ [edi+32] ;ä« £¨ |
ch_left equ [ebp] ;ª®à¤¨ â ç « à¨á®¢ ¨ï ¯® å |
ch_top equ [ebp+2] ;ª®®à¤¨ â ç « à¨á®¢ ¨ï ¯® ã |
ch_text_margin equ [ebp+4] ;=4 à ááâ®ï¨¥ ®â ¯àאַ㣮«ì¨ª 祪 ¡®ªá ¤® ¤¯¨á¨ |
ch_size equ [ebp+8] ;12 à §¬¥à ª¢ ¤à â 祪 ¡®ªá |
ch_color equ [ebp+12] ;梥⠢ãâਠcheckbox |
ch_border_color equ [ebp+16] ; or [edi+4] ;梥â à ¬ª¨ checkbox ¥¥ ¬®¦® § ¤ âì á ¬®áâ®ïâ¥«ì® |
ch_text_color equ [ebp+20] ;[edi+4] ;梥â ⥪áâ |
ch_text_ptr equ [ebp+24] ;㪠§ ⥫ì ç «® ⥪á⮢®© áâப¨ |
ch_text_length equ [ebp+28] ;¤«¨ áâப¨ |
ch_flags equ [ebp+32] ;ä« £¨ |
struc check_box left,top,ch_text_margin,ch_size,color,border_color,text_color,text,ch_text_length,flags |
{ ;áâàãªâãà ¯ à ¬¥â஢ ¤«ï 祪 ¡®ªá |
138,8 → 139,6 |
mov ecx,((end-start)/ch_struc_size) |
mov esi,color_table |
@@: |
; push dword [esi+20] ;梥â à ¡®ç¥© ®¡« á⨠®ª |
; pop dword ch_color |
push dword [esi+32] ;梥â ⥪áâ ¢ à ¡®ç¥© ®¡« á⨠®ª |
pop dword ch_text_color |
push dword [esi+36] ;梥⠣à 䨪¨ ¢ ®ª¥ (à §¤¥«¨â¥«ìë¥ «¨¨¨ ¨ â.¯.) |
/programs/develop/libraries/box_lib/trunk/checkbox.mac |
---|
40,8 → 40,7 |
mov edx,dword ch_text_ptr ;óêàæåì àäðåñ îò êóäà íóæíî âûâîäèòü ñòðîêó |
mov esi,dword ch_text_length |
;âíåñåì â eax çíà÷åíèå âûâîäà íàäïèñè íà êàíâó |
mov eax,4 |
mov eax,4 ;âíåñåì â eax çíà÷åíèå âûâîäà íàäïèñè íà êàíâó |
mcall ;Âûâîä |
popa ;âîññòàíîâèòü çíà÷åíèÿ ðåãèñòðîâ èç ñòåêà |
ret 4 ;âûéäåì èç ïðîöåäóðû |
54,7 → 53,7 |
@@: |
movzx ebx,word ch_left ;çàãðóçèòü êîîðäèíàòó ïî õ |
mov eax,dword ch_size |
mov bp,ax |
mov di,ax |
shr eax,2 |
push ax |