diff --git a/programs/develop/kol_f_edit/about.png b/programs/develop/kol_f_edit/about.png deleted file mode 100644 index 71a02559f5..0000000000 Binary files a/programs/develop/kol_f_edit/about.png and /dev/null differ diff --git a/programs/develop/kol_f_edit/box_l.ced b/programs/develop/kol_f_edit/box_l.ced index bd91b698be..a37f47235b 100644 Binary files a/programs/develop/kol_f_edit/box_l.ced and b/programs/develop/kol_f_edit/box_l.ced differ diff --git a/programs/develop/kol_f_edit/ced_code_g.inc b/programs/develop/kol_f_edit/ced_code_g.inc index cbab3e041e..51d7f117ee 100644 --- a/programs/develop/kol_f_edit/ced_code_g.inc +++ b/programs/develop/kol_f_edit/ced_code_g.inc @@ -1,7 +1,7 @@ ; -; в этом файле собраны функции создающие програмный код +; ў н⮬ д ©«Ґ б®Ўа л дгЄжЁЁ ᮧ¤ ойЁҐ Їа®Ја ¬л© Є®¤ ; -u_object object ;временный объект для задания смещений +u_object object ;ўаҐ¬Ґл© ®ЎкҐЄв ¤«п § ¤ Ёп ᬥ饨© macro insert_coma { @@ -20,7 +20,7 @@ macro insert_sp stdcall [ted_text_add], tedit0,txt_sp,1,ted_opt_ed_move_cursor } -;функция вставляет текстовую строку в текстовый редактор +;дгЄжЁп ўбв ў«пҐв ⥪бв®ўго бва®Єг ў ⥪бв®ўл© аҐ¤ Єв®а align 4 proc insert_text, txt:dword push eax @@ -33,7 +33,7 @@ proc insert_text, txt:dword ret endp -;вставляет указанное свойство из объекта в текстовый редактор +;ўбв ў«пҐв гЄ § ®Ґ ⥪бв®ў®Ґ бў®©бвў® Ё§ ®ЎкҐЄв ў ⥪бв®ўл© аҐ¤ Єв®а align 4 proc insert_text_prop, p_obj:dword,index:dword push eax edx @@ -46,7 +46,31 @@ proc insert_text_prop, p_obj:dword,index:dword ret endp -;функция вставляет 2 параметра по 16 бит в виде: +;ўбв ў«пҐв гЄ § ®Ґ ЎЁв®ў®Ґ бў®©бвў® Ё§ ®ЎкҐЄв ў ⥪бв®ўл© аҐ¤ Єв®а +align 4 +proc insert_bit_prop, p_obj:dword,index:dword + push ebx ecx edi + mov ebx,[p_obj] + mov ecx,[index] + test_bool_prop ebx,ecx + jnc @f ;Ґб«Ё Ї®«м§®ў вҐ«м Ґ ўлЎа « ў ®ЎкҐЄвҐ ¤ ®Ґ бў®©бвў® + mov ebx,dword[ebx] + call find_obj_in_opt + mov ecx,dword[edi+obj_opt.bit_val-obj_opt] ;ecx - ᬥ饨Ґ § 票© бў®©бвў (Є®бв в) + cmp byte[ecx],0 + je @f ;Ґб«Ё г ®ЎкҐЄв Ґв § ¤ ле ЎЁв®ўле бў®©бвў + add ecx,obj_opt ;¤®Ў ў«пҐ¬ з «® д ©« б ®ЇжЁп¬Ё + stdcall get_string_by_ind, ecx,[index] + cmp byte[edi],0 + je @f ;Ґб«Ё г ®ЎкҐЄв ЎЁв®ў®Ґ бў®©бвў® Їгб⮥ + stdcall insert_text, txt_plus + stdcall insert_text, edi + @@: + pop edi ecx ebx + ret +endp + +;дгЄжЁп ўбв ў«пҐв 2 Ї а ¬Ґва Ї® 16 ЎЁв ў ўЁ¤Ґ: ; (_p1_ shl 16 + _p2_) align 4 proc insert_2_prop_16_bit, obj:dword, p_hi:dword, p_lo:dword @@ -59,7 +83,7 @@ proc insert_2_prop_16_bit, obj:dword, p_hi:dword, p_lo:dword ret endp -;вставляем строку вида: +;ўбв ў«пҐ¬ бва®Єг ўЁ¤ : ; txt_(n) db (s) align 4 proc insert_text_label_data, obj:dword, col:dword @@ -145,18 +169,18 @@ macro insert_ret align 4 but_update: call draw_constructor - cmp byte[show_mode],0 ;условие видимости окна конструктора + cmp byte[show_mode],0 ;гб«®ўЁҐ ўЁ¤Ё¬®бвЁ ®Є Є®бвагЄв®а jne @f stdcall [buf2d_draw], buf_fon @@: call code_gen - cmp byte[show_mode],1 ;условие видимости текстового окна + cmp byte[show_mode],1 ;гб«®ўЁҐ ўЁ¤Ё¬®б⨠⥪бв®ў®Ј® ®Є jne @f stdcall [ted_draw], tedit0 @@: ret -;функция создающая код всего файла +;дгЄжЁп ᮧ¤ ой п Є®¤ ўбҐЈ® д ©« align 4 code_gen: stdcall [ted_clear], tedit0,1 @@ -166,14 +190,14 @@ pushad xor bl,bl call code_gen_obj stdcall [ted_text_add], tedit0,\ - txt_nl,1,ted_opt_ed_move_cursor+ted_opt_ed_change_time ;добавляем символ новой строки с опцией ted_opt_ed_change_time для возможности сохранения файла - stdcall [ted_init_scroll_bars], tedit0, 4 ;меняем размеры скроллингов + txt_nl,1,ted_opt_ed_move_cursor+ted_opt_ed_change_time ;¤®Ў ў«пҐ¬ бЁ¬ў®« ®ў®© бва®ЄЁ б ®ЇжЁҐ© ted_opt_ed_change_time ¤«п ў®§¬®¦®бвЁ б®еа ҐЁп д ©« + stdcall [ted_init_scroll_bars], tedit0, 4 ;¬ҐпҐ¬ а §¬Ґал бЄа®««ЁЈ®ў popad ret ;input: -; bl - уровень объекта -; esi - указатель на узел +; bl - га®ўҐм ®ЎкҐЄв +; esi - гЄ § ⥫м 㧥« align 4 code_gen_obj: push ebx edx @@ -185,13 +209,13 @@ push ebx edx jl .find_no stdcall dword[tl_node_poi_get_data], esi,tree2 - pop eax ;получаем данные узла + pop eax ;Ї®«гз Ґ¬ ¤ лҐ г§« cmp eax,0 je .find_no cmp dword[eax],C_STR jne .no_struct - stdcall get_obj_text_col, eax,1 ;edx - указатель на 1-е свойство структуры + stdcall get_obj_text_col, eax,1 ;edx - гЄ § ⥫м 1-Ґ бў®©бвў® бвагЄвгал stdcall insert_text,txt_struc cmp byte[edx],0 jne @f @@ -202,7 +226,7 @@ push ebx edx cmp byte[edx],0 je @f - ;если структура задана макросом + ;Ґб«Ё бвагЄвга § ¤ ¬ Єа®б®¬ insert_sp stdcall insert_text_prop, eax,1 insert_nl @@ -211,19 +235,19 @@ push ebx edx insert_nl stdcall dword[tl_node_poi_get_next_info], esi,tree2 - pop esi ;переходим к следущему узлу + pop esi ;ЇҐаҐе®¤Ё¬ Є б«Ґ¤г饬г 㧫г cmp esi,0 je .end_st cmp byte[esi+2],bl ;lev jle .end_st push bx mov bl,byte[esi+2] - call code_gen_obj ;рекурсивный вызов дочерних объектов + call code_gen_obj ;४габЁўл© ўл§®ў ¤®зҐаЁе ®ЎкҐЄв®ў pop bx .end_st: cmp byte[edx],0 je @f - ;если структура задана макросом + ;Ґб«Ё бвагЄвга § ¤ ¬ Єа®б®¬ stdcall insert_text, txt_skob_fc insert_nl jmp .beg_iterat @@ -233,42 +257,38 @@ push ebx edx .no_struct: cmp dword[eax],C_TXT jne @f - stdcall get_code_text,eax ;обработка объекта + stdcall get_code_text,eax ;®Ўа Ў®вЄ ®ЎкҐЄв @@: cmp dword[eax],C_INC jne @f - stdcall get_code_incl,eax ;обработка объекта - @@: - cmp dword[eax],C_COM - jne @f - stdcall get_code_comment,eax ;обработка объекта + stdcall get_code_incl,eax ;®Ўа Ў®вЄ ®ЎкҐЄв @@: cmp dword[eax],C_VAR jne @f - stdcall get_code_variable,eax,ebx ;обработка объекта + stdcall get_code_variable,eax,ebx ;®Ўа Ў®вЄ ®ЎкҐЄв @@: cmp dword[eax],C_WND jne @f - stdcall get_code_window,eax ;обработка объекта + stdcall get_code_window,eax ;®Ўа Ў®вЄ ®ЎкҐЄв @@: cmp dword[eax],C_ACO jne @f - stdcall get_code_auto,eax ;обработка объекта + stdcall get_code_auto,eax ;®Ўа Ў®вЄ ®ЎкҐЄв @@: - cmp dword[eax],C_KEY ;клавиатура + cmp dword[eax],C_KEY ;Є« ўЁ вга jne @f - stdcall get_code_key,eax ;обработка объекта + stdcall get_code_key,eax ;®Ўа Ў®вЄ ®ЎкҐЄв @@: stdcall dword[tl_node_poi_get_next_info], esi,tree2 - pop esi ;переходим к следущему узлу + pop esi ;ЇҐаҐе®¤Ё¬ Є б«Ґ¤г饬г 㧫г jmp .beg_iterat .find_no: pop edx ebx ret -;добавление объекта с програмным кодом (текстом) +;¤®Ў ў«ҐЁҐ ®ЎкҐЄв б Їа®Ја ¬л¬ Є®¤®¬ (⥪б⮬) align 4 proc get_code_text, p_obj:dword ;pushad @@ -279,7 +299,7 @@ proc get_code_text, p_obj:dword ret endp -;обработка объекта создающего автоматичексие коды +;®Ўа Ў®вЄ ®ЎкҐЄв ᮧ¤ о饣® ўв®¬ вЁзҐЄбЁҐ Є®¤л align 4 proc get_code_auto, p_obj:dword pushad @@ -295,16 +315,16 @@ proc get_code_auto, p_obj:dword @@: test_bool_prop ebx,BIT_MOD_ACM jae @f - ;автоматические события от мыши + ; ўв®¬ вЁзҐбЄЁҐ б®ЎлвЁп ®в ¬лиЁ call get_code_auto_m @@: test_bool_prop ebx,BIT_MOD_ABU jae @f - ;создание функции button + ;ᮧ¤ ЁҐ дгЄжЁЁ button insert_but_beg - call get_code_auto_but ;коды вызова кнопок + call get_code_auto_but ;Є®¤л ўл§®ў Є®Ї®Є insert_but_end - call get_code_a_but_fun ;коды функций, вызываемых при нажатии кнопок + call get_code_a_but_fun ;Є®¤л дгЄжЁ©, ўл§лў Ґ¬ле ЇаЁ ¦ вЁЁ Є®Ї®Є @@: test_bool_prop ebx,BIT_MOD_ACD jae @f @@ -322,7 +342,7 @@ proc get_code_auto, p_obj:dword call get_code_auto_data_dop mov edx,C_LIB - stdcall find_obj_in_file,edx ;eax - указатель на структуру библиотеки + stdcall find_obj_in_file,edx ;eax - гЄ § ⥫м бвагЄвгаг ЎЁЎ«Ё®вҐЄЁ cmp eax,0 je @f insert_nl @@ -340,7 +360,7 @@ proc get_code_auto, p_obj:dword stdcall insert_text, txt_ll_start call get_code_auto_data_libs_struc stdcall insert_text, txt_ll_end - call get_code_auto_data_libs ;таблицы импорта библиотек + call get_code_auto_data_libs ;в Ў«Ёжл Ё¬Ї®ав ЎЁЎ«Ё®вҐЄ @@: insert_nl popad @@ -357,7 +377,7 @@ proc get_code_auto_m je .find_no stdcall dword[tl_node_poi_get_data], esi,tree2 - pop ebx ;получаем данные узла + pop ebx ;Ї®«гз Ґ¬ ¤ лҐ г§« cmp ebx,0 je .find_no @@ -375,7 +395,7 @@ proc get_code_auto_m @@: stdcall dword[tl_node_poi_get_next_info], esi,tree2 - pop esi ;переходим к следущему узлу + pop esi ;ЇҐаҐе®¤Ё¬ Є б«Ґ¤г饬г 㧫г jmp .beg_iterat .find_no: @@ -383,11 +403,11 @@ proc get_code_auto_m ret endp -;создание данных (структур объектов) +;ᮧ¤ ЁҐ ¤ ле (бвагЄвга ®ЎкҐЄв®ў) align 4 proc get_code_auto_data_el pushad - insert_nl ;отступ для форматирования + insert_nl ;®вбвгЇ ¤«п д®а¬ вЁа®ў Ёп stdcall dword[tl_node_poi_get_info], 0,tree2 pop esi @@ -396,7 +416,7 @@ proc get_code_auto_data_el je .find_no stdcall dword[tl_node_poi_get_data], esi,tree2 - pop ebx ;получаем данные узла + pop ebx ;Ї®«гз Ґ¬ ¤ лҐ г§« cmp ebx,0 je .find_no @@ -424,31 +444,34 @@ proc get_code_auto_data_el stdcall insert_text, txt_mouse_dd - stdcall insert_text, txt_0 ;тут будут свойства editbox а пока просто ставим 0 - xchg eax,edx ;сохраняем значение edx + stdcall insert_text, txt_0 ;бў®©бвў editbox + stdcall insert_bit_prop, ebx,BIT_MOD_EDIT_FOC + stdcall insert_bit_prop, ebx,BIT_MOD_EDIT_FIO + + xchg eax,edx ;б®еа 塞 § 票Ґ edx stdcall get_obj_text_col,ebx,10 - cmp byte[edx],0 ;проверяем пустая ли строка при запуске editbox + cmp byte[edx],0 ;Їа®ўҐа塞 Їгбв п «Ё бва®Є ЇаЁ § ЇгбЄҐ editbox je .null_string - xchg eax,edx ;востанавливаем значение edx + xchg eax,edx ;ў®бв ў«Ёў Ґ¬ § 票Ґ edx stdcall insert_text, txt_coma stdcall insert_text, txt_txt - stdcall insert_text,edx - stdcall insert_text,txt_met_end - stdcall insert_text,txt_minus + stdcall insert_text, edx + stdcall insert_text, txt_met_end + stdcall insert_text, txt_minus stdcall insert_text, txt_txt - stdcall insert_text,edx - stdcall insert_text,txt_minus + stdcall insert_text, edx + stdcall insert_text, txt_minus stdcall insert_text, txt_1 stdcall insert_text, txt_coma stdcall insert_text, txt_txt - stdcall insert_text,edx - stdcall insert_text,txt_met_end - stdcall insert_text,txt_minus + stdcall insert_text, edx + stdcall insert_text, txt_met_end + stdcall insert_text, txt_minus stdcall insert_text, txt_txt - stdcall insert_text,edx - stdcall insert_text,txt_minus + stdcall insert_text, edx + stdcall insert_text, txt_minus stdcall insert_text, txt_1 .null_string: insert_nl @@ -459,7 +482,7 @@ proc get_code_auto_data_el @@: stdcall dword[tl_node_poi_get_next_info], esi,tree2 - pop esi ;переходим к следущему узлу + pop esi ;ЇҐаҐе®¤Ё¬ Є б«Ґ¤г饬г 㧫г jmp .beg_iterat .find_no: @@ -470,7 +493,7 @@ endp align 4 proc get_code_auto_data_el_cbox pushad - insert_nl ;отступ для форматирования + insert_nl ;®вбвгЇ ¤«п д®а¬ вЁа®ў Ёп stdcall dword[tl_node_poi_get_info], 0,tree2 pop esi @@ -479,7 +502,7 @@ proc get_code_auto_data_el_cbox je .find_no stdcall dword[tl_node_poi_get_data], esi,tree2 - pop ebx ;получаем данные узла + pop ebx ;Ї®«гз Ґ¬ ¤ лҐ г§« cmp ebx,0 je .find_no @@ -504,8 +527,6 @@ proc get_code_auto_data_el_cbox stdcall insert_text, txt_coma stdcall insert_text_prop, ebx,7 stdcall insert_text, txt_coma - ;stdcall insert_text, txt_bit_31 - ;stdcall insert_text, txt_plus stdcall insert_text_prop, ebx,8 stdcall insert_text, txt_coma stdcall insert_text, txt_br @@ -516,28 +537,12 @@ proc get_code_auto_data_el_cbox stdcall insert_text, edx stdcall insert_text, txt_coma - ;флаги + ;д« ЈЁ stdcall insert_text,txt_0 - test_bool_prop ebx,BIT_MOD_CHE - jnc @f - stdcall insert_text,txt_plus - stdcall insert_text,txt_bit_che - @@: - test_bool_prop ebx,BIT_MOD_CHE_T - jnc @f - stdcall insert_text,txt_plus - stdcall insert_text,txt_bit_che_t - @@: - test_bool_prop ebx,BIT_MOD_CHE_M - jnc @f - stdcall insert_text,txt_plus - stdcall insert_text,txt_bit_che_m - @@: - test_bool_prop ebx,BIT_MOD_CHE_B - jnc @f - stdcall insert_text,txt_plus - stdcall insert_text,txt_bit_che_b - @@: + stdcall insert_bit_prop, ebx,BIT_MOD_CHE + stdcall insert_bit_prop, ebx,BIT_MOD_CHE_T + stdcall insert_bit_prop, ebx,BIT_MOD_CHE_M + stdcall insert_bit_prop, ebx,BIT_MOD_CHE_B insert_nl .no_check: @@ -547,7 +552,7 @@ proc get_code_auto_data_el_cbox @@: stdcall dword[tl_node_poi_get_next_info], esi,tree2 - pop esi ;переходим к следущему узлу + pop esi ;ЇҐаҐе®¤Ё¬ Є б«Ґ¤г饬г 㧫г jmp .beg_iterat .find_no: @@ -555,11 +560,11 @@ proc get_code_auto_data_el_cbox ret endp -;данные для библиотек +;¤ лҐ ¤«п ЎЁЎ«Ё®вҐЄ align 4 proc get_code_auto_data_libs_param pushad - insert_nl ;отступ для форматирования + insert_nl ;®вбвгЇ ¤«п д®а¬ вЁа®ў Ёп stdcall dword[tl_node_poi_get_info], 0,tree2 pop esi @@ -568,7 +573,7 @@ proc get_code_auto_data_libs_param je .find_no stdcall dword[tl_node_poi_get_data], esi,tree2 - pop ebx ;получаем данные узла + pop ebx ;Ї®«гз Ґ¬ ¤ лҐ г§« cmp ebx,0 je .find_no @@ -615,7 +620,7 @@ proc get_code_auto_data_libs_param @@: stdcall dword[tl_node_poi_get_next_info], esi,tree2 - pop esi ;переходим к следущему узлу + pop esi ;ЇҐаҐе®¤Ё¬ Є б«Ґ¤г饬г 㧫г jmp .beg_iterat .find_no: @@ -623,11 +628,11 @@ proc get_code_auto_data_libs_param ret endp -;данные для библиотек +;¤ лҐ ¤«п ЎЁЎ«Ё®вҐЄ align 4 proc get_code_auto_data_libs_struc pushad - ;insert_nl ;отступ для форматирования + ;insert_nl ;®вбвгЇ ¤«п д®а¬ вЁа®ў Ёп stdcall dword[tl_node_poi_get_info], 0,tree2 pop esi @@ -636,7 +641,7 @@ proc get_code_auto_data_libs_struc je .find_no stdcall dword[tl_node_poi_get_data], esi,tree2 - pop ebx ;получаем данные узла + pop ebx ;Ї®«гз Ґ¬ ¤ лҐ г§« cmp ebx,0 je .find_no @@ -681,7 +686,7 @@ proc get_code_auto_data_libs_struc @@: stdcall dword[tl_node_poi_get_next_info], esi,tree2 - pop esi ;переходим к следущему узлу + pop esi ;ЇҐаҐе®¤Ё¬ Є б«Ґ¤г饬г 㧫г jmp .beg_iterat .find_no: @@ -689,11 +694,11 @@ proc get_code_auto_data_libs_struc ret endp -;данные для библиотек +;¤ лҐ ¤«п ЎЁЎ«Ё®вҐЄ align 4 proc get_code_auto_data_libs pushad - insert_nl ;отступ для форматирования + insert_nl ;®вбвгЇ ¤«п д®а¬ вЁа®ў Ёп stdcall dword[tl_node_poi_get_info], 0,tree2 pop esi @@ -702,7 +707,7 @@ proc get_code_auto_data_libs je .find_no stdcall dword[tl_node_poi_get_data], esi,tree2 - pop ebx ;получаем данные узла + pop ebx ;Ї®«гз Ґ¬ ¤ лҐ г§« cmp ebx,0 je .find_no @@ -718,7 +723,7 @@ proc get_code_auto_data_libs @@: stdcall dword[tl_node_poi_get_next_info], esi,tree2 - pop esi ;переходим к следущему узлу + pop esi ;ЇҐаҐе®¤Ё¬ Є б«Ґ¤г饬г 㧫г jmp .beg_iterat .find_no: @@ -734,23 +739,23 @@ pushad mov bl,byte[esi+2] mov edi,esi stdcall dword[tl_node_poi_get_data], esi,tree2 - pop edx ;получение данных родительского объекта + pop edx ;Ї®«г票Ґ ¤ ле தЁвҐ«мбЄ®Ј® ®ЎкҐЄв cmp edx,0 je @f @@: stdcall dword[tl_node_poi_get_next_info], esi,tree2 - pop esi ;переходим к следущему узлу + pop esi ;ЇҐаҐе®¤Ё¬ Є б«Ґ¤г饬г 㧫г cmp esi,0 je @f cmp byte[esi+2],bl ;lev jle @f stdcall dword[tl_node_poi_get_data], esi,tree2 - pop ecx ;получаем данные узла + pop ecx ;Ї®«гз Ґ¬ ¤ лҐ г§« cmp ecx,0 je @f cmp dword[ecx],C_IFN jne @b - ;вставка указателя на функцию + ;ўбв ўЄ гЄ § ⥫п дгЄжЁо test_bool_prop ecx,BIT_MOD_IMPORT_FUNCT_COMMENT jae .no_com_0 stdcall insert_text, txt_com @@ -758,7 +763,7 @@ pushad insert_tab stdcall insert_text_prop, ecx,0 stdcall insert_text, txt_dd - stdcall insert_text_prop, edx,3 ;приставка к функции + stdcall insert_text_prop, edx,3 ;ЇаЁбв ўЄ Є дгЄжЁЁ stdcall insert_text_prop, ecx,0 insert_nl jmp @b @@ -767,24 +772,24 @@ pushad mov esi,edi @@: stdcall dword[tl_node_poi_get_next_info], esi,tree2 - pop esi ;переходим к следущему узлу + pop esi ;ЇҐаҐе®¤Ё¬ Є б«Ґ¤г饬г 㧫г cmp esi,0 je @f cmp byte[esi+2],bl ;lev jle @f stdcall dword[tl_node_poi_get_data], esi,tree2 - pop ecx ;получаем данные узла + pop ecx ;Ї®«гз Ґ¬ ¤ лҐ г§« cmp ecx,0 je @f cmp dword[ecx],C_IFN jne @b - ;вставка имени импортированной функции + ;ўбв ўЄ Ё¬ҐЁ Ё¬Ї®авЁа®ў ®© дгЄжЁЁ test_bool_prop ecx,BIT_MOD_IMPORT_FUNCT_COMMENT jae .no_com_1 stdcall insert_text, txt_com .no_com_1: insert_tab - stdcall insert_text_prop, edx,3 ;приставка к функции + stdcall insert_text_prop, edx,3 ;ЇаЁбв ўЄ Є дгЄжЁЁ stdcall insert_text_prop, ecx,0 stdcall insert_text, txt_db stdcall insert_text, txt_str_beg @@ -800,7 +805,7 @@ popad align 4 proc get_code_auto_data_dop pushad - insert_nl ;отступ для форматирования + insert_nl ;®вбвгЇ ¤«п д®а¬ вЁа®ў Ёп stdcall dword[tl_node_poi_get_info], 0,tree2 pop esi @@ -809,13 +814,15 @@ proc get_code_auto_data_dop je .find_no stdcall dword[tl_node_poi_get_data], esi,tree2 - pop ebx ;получаем данные узла + pop ebx ;Ї®«гз Ґ¬ ¤ лҐ г§« cmp ebx,0 je .find_no cmp dword[ebx],C_EDB jne @f ;1,2,3,4,...,6,...8,...,10 - w,x,y,col_fon,...,col_frame,...,col_txt,...,txt + + ;д®а¬Ёа㥬 ⥪бв®ўлҐ ¤ лҐ ¤«п editbox-®ў stdcall insert_text, txt_txt mov edx,fp_icon stdcall get_obj_id_str, ebx,edx @@ -854,7 +861,7 @@ proc get_code_auto_data_dop jmp @f - .no_text: ;первоначально текст не задан + .no_text: ;ЇҐаў® з «м® вҐЄбв Ґ § ¤ stdcall insert_text, txt_times stdcall insert_text_prop,ebx,9 @@ -870,7 +877,7 @@ proc get_code_auto_data_dop @@: stdcall dword[tl_node_poi_get_next_info], esi,tree2 - pop esi ;переходим к следущему узлу + pop esi ;ЇҐаҐе®¤Ё¬ Є б«Ґ¤г饬г 㧫г jmp .beg_iterat .find_no: @@ -878,7 +885,7 @@ proc get_code_auto_data_dop ret endp -;связываем кнопки с функциями +;бўп§лў Ґ¬ Є®ЇЄЁ б дгЄжЁп¬Ё align 4 proc get_code_auto_but pushad @@ -889,7 +896,7 @@ proc get_code_auto_but je .find_no stdcall dword[tl_node_poi_get_data], esi,tree2 - pop ebx ;получаем данные узла + pop ebx ;Ї®«гз Ґ¬ ¤ лҐ г§« cmp ebx,0 je .find_no @@ -922,7 +929,7 @@ proc get_code_auto_but @@: stdcall dword[tl_node_poi_get_next_info], esi,tree2 - pop esi ;переходим к следущему узлу + pop esi ;ЇҐаҐе®¤Ё¬ Є б«Ґ¤г饬г 㧫г jmp .beg_iterat .find_no: @@ -930,7 +937,7 @@ proc get_code_auto_but ret endp -;берем коды для функций нажатий на кнопки +;ЎҐаҐ¬ Є®¤л ¤«п дгЄжЁ© ¦ вЁ© Є®ЇЄЁ align 4 proc get_code_a_but_fun pushad @@ -941,7 +948,7 @@ proc get_code_a_but_fun je .find_no stdcall dword[tl_node_poi_get_data], esi,tree2 - pop ebx ;получаем данные узла + pop ebx ;Ї®«гз Ґ¬ ¤ лҐ г§« cmp ebx,0 je .find_no @@ -962,7 +969,7 @@ proc get_code_a_but_fun @@: stdcall dword[tl_node_poi_get_next_info], esi,tree2 - pop esi ;переходим к следущему узлу + pop esi ;ЇҐаҐе®¤Ё¬ Є б«Ґ¤г饬г 㧫г jmp .beg_iterat .find_no: @@ -977,7 +984,7 @@ proc get_code_key, p_obj:dword mov ebx,dword[p_obj] insert_key_beg - call get_code_funct_key ;коды вызова кнопок + call get_code_funct_key ;Є®¤л ўл§®ў Є®Ї®Є insert_key_end insert_nl @@ -995,7 +1002,7 @@ proc get_code_funct_key je .find_no stdcall dword[tl_node_poi_get_data], esi,tree2 - pop ebx ;получаем данные узла + pop ebx ;Ї®«гз Ґ¬ ¤ лҐ г§« cmp ebx,0 je .find_no @@ -1007,7 +1014,7 @@ proc get_code_funct_key @@: stdcall dword[tl_node_poi_get_next_info], esi,tree2 - pop esi ;переходим к следущему узлу + pop esi ;ЇҐаҐе®¤Ё¬ Є б«Ґ¤г饬г 㧫г jmp .beg_iterat .find_no: @@ -1015,7 +1022,7 @@ proc get_code_funct_key ret endp -;объекты подключения файлов 'include ...' +;®ЎкҐЄвл Ї®¤Є«о票п д ©«®ў 'include ...' align 4 proc get_code_incl, p_obj:dword pushad @@ -1037,15 +1044,7 @@ proc get_code_incl, p_obj:dword ret endp -align 4 -proc get_code_comment, p_obj:dword - insert_com - stdcall insert_text_prop, dword[p_obj],0 - insert_nl - ret -endp - -;создаем код задания окна +;ᮧ¤ Ґ¬ Є®¤ § ¤ Ёп ®Є align 4 proc get_code_window, p_obj:dword pushad @@ -1107,13 +1106,13 @@ proc get_code_window, p_obj:dword call get_code_draw_obj - stdcall insert_text, txt_draw_we ;код завершающий функцию рисования + stdcall insert_text, txt_draw_we ;Є®¤ § ўҐаи ойЁ© дгЄжЁо аЁб®ў Ёп popad ret endp -;формируем вызов функций для рисования объектов +;д®а¬Ёа㥬 ўл§®ў дгЄжЁ© ¤«п аЁб®ў Ёп ®ЎкҐЄв®ў align 4 proc get_code_draw_obj pushad @@ -1124,7 +1123,7 @@ proc get_code_draw_obj je .find_no stdcall dword[tl_node_poi_get_data], esi,tree2 - pop ebx ;получаем данные узла + pop ebx ;Ї®«гз Ґ¬ ¤ лҐ г§« cmp ebx,0 je .find_no @@ -1226,7 +1225,7 @@ proc get_code_draw_obj stdcall insert_text, txt_i_40 insert_nl @@: - cmp dword[ebx],C_DTT ;рисование текста через сист. ф. 4 + cmp dword[ebx],C_DTT ;аЁб®ў ЁҐ ⥪бв зҐаҐ§ бЁбв. д. 4 jne .ob_draw_text insert_tab stdcall insert_text, txt_mov @@ -1247,24 +1246,9 @@ proc get_code_draw_obj insert_reg txt_ecx insert_coma stdcall insert_text_prop, ebx,3 - test_bool_prop ebx,BIT_MOD_TXT_ASCII_0 - jnc @f - ;or ecx,0x80000000 - бит для строки ASCIIZ - stdcall insert_text,txt_plus - stdcall insert_text,txt_bit_31 - @@: - test_bool_prop ebx,BIT_MOD_TXT_NO_TRAN - jnc @f - ;or ecx,0x40000000 - бит для не прозрачного текста - stdcall insert_text,txt_plus - stdcall insert_text,txt_bit_30 - @@: - test_bool_prop ebx,BIT_MOD_TXT_CHAR2 - jnc @f - ;or ecx,0x40000000 - бит для 2-го сист. шрифта - stdcall insert_text,txt_plus - stdcall insert_text,txt_bit_28 - @@: + stdcall insert_bit_prop, ebx,BIT_MOD_TXT_ASCII_0 ;31 - ЎЁв ¤«п бва®ЄЁ ASCIIZ + stdcall insert_bit_prop, ebx,BIT_MOD_TXT_NO_TRAN ;30 - ЎЁв ¤«п Ґ Їа®§а з®Ј® ⥪бв + stdcall insert_bit_prop, ebx,BIT_MOD_TXT_CHAR2 ;28 - ЎЁв ¤«п 2-Ј® бЁбв. иаЁдв insert_nl insert_tab @@ -1284,7 +1268,7 @@ proc get_code_draw_obj stdcall insert_text, txt_mov insert_reg txt_edi insert_coma - stdcall insert_text_prop, ebx,4 ;цвет фона + stdcall insert_text_prop, ebx,4 ;梥в д® insert_nl @@: @@ -1294,7 +1278,7 @@ proc get_code_draw_obj .ob_draw_text: stdcall dword[tl_node_poi_get_next_info], esi,tree2 - pop esi ;переходим к следущему узлу + pop esi ;ЇҐаҐе®¤Ё¬ Є б«Ґ¤г饬г 㧫г jmp .beg_iterat .find_no: @@ -1302,7 +1286,7 @@ proc get_code_draw_obj ret endp -;создать код объявления переменной +;ᮧ¤ вм Є®¤ ®Ўкпў«ҐЁп ЇҐаҐ¬Ґ®© align 4 proc get_code_variable, p_obj:dword,o_lev:dword pushad @@ -1311,30 +1295,30 @@ proc get_code_variable, p_obj:dword,o_lev:dword mov ecx,dword[o_lev] cmp cl,0 - je .no_tab ;избегаем зацикливания (0-1 = 2^32-1) + je .no_tab ;Ё§ЎҐЈ Ґ¬ § жЁЄ«Ёў Ёп (0-1 = 2^32-1) and ecx,0xff cld @@: - insert_tab ;формирование отступа перед переменной + insert_tab ;д®а¬Ёа®ў ЁҐ ®вбвгЇ ЇҐаҐ¤ ЇҐаҐ¬Ґ®© loop @b .no_tab: - stdcall insert_text_prop, ebx,0 ;имя переменной + stdcall insert_text_prop, ebx,0 ;Ё¬п ЇҐаҐ¬Ґ®© insert_sp - mov ecx,dword[ebx+u_object.typid-u_object] ;ecx - относительный индекс родительского объекта (в памяти) + mov ecx,dword[ebx+u_object.typid-u_object] ;ecx - ®в®бЁвҐ«мл© Ё¤ҐЄб தЁвҐ«мбЄ®Ј® ®ЎкҐЄв (ў Ї ¬пвЁ) xor eax,eax mov ax,[tree2.info_size] - imul ecx,eax ;умножаем индекс на размер структуры - add ecx,[tree2.data_info] ;ecx - указатель данные родительского узла + imul ecx,eax ;㬮¦ Ґ¬ Ё¤ҐЄб а §¬Ґа бвагЄвгал + add ecx,[tree2.data_info] ;ecx - гЄ § вҐ«м ¤ лҐ а®¤ЁвҐ«мбЄ®Ј® 㧫 - ;проверку на правильность ecx ??? + ;Їа®ўҐаЄг Їа ўЁ«м®бвм ecx ??? - stdcall insert_text_prop, ecx,0 ;тип переменной + stdcall insert_text_prop, ecx,0 ;вЁЇ ЇҐаҐ¬Ґ®© insert_sp - stdcall insert_text_prop, ebx,1 ;значение + stdcall insert_text_prop, ebx,1 ;§ 票Ґ - stdcall get_obj_text_col,ebx,2 ;комментарий + stdcall get_obj_text_col,ebx,2 ;Є®¬¬Ґв аЁ© stdcall str_len,edx cmp eax,1 jl @f @@ -1350,14 +1334,14 @@ endp -;--- текстовые константы --- +;--- ⥪бв®ўлҐ Є®бв вл --- txt_str_beg db 39,0 txt_str_end db 39,',0',0 txt_coma db ',',0 txt_skob_o db '(',0 txt_skob_c db ')',0 -txt_skob_fo db '{',0 ;скобка фигурная открывающая -txt_skob_fc db '}',0 ;скобка фигурная закрывающая +txt_skob_fo db '{',0 ;бЄ®ЎЄ дЁЈга п ®вЄалў ой п +txt_skob_fc db '}',0 ;бЄ®ЎЄ дЁЈга п § Єалў ой п txt_i_40 db 'int 0x40',13,0 txt_0 db '0',0 txt_1 db '1',0 @@ -1396,14 +1380,10 @@ txt_head_l db 'head_f_l',0 txt_err_m_i_lib db 'err_msg_import_',0 txt_head_i db 'head_f_i',0 txt_ll_end db 'l_libs_end:',13,0 -txt_bit_28 db '0x10000000',0 +;txt_bit_28 db '0x10000000',0 txt_bit_29 db '0x20000000',0 txt_bit_30 db '0x40000000',0 -txt_bit_31 db '0x80000000',0 -txt_bit_che db 'ch_flag_en',0 -txt_bit_che_t db 'ch_flag_top',0 -txt_bit_che_m db 'ch_flag_middle',0 -txt_bit_che_b db 'ch_flag_bottom',0 +;txt_bit_31 db '0x80000000',0 txt_0x33000000 db '0x33000000',0 ;tmp txt_struc db 'struc',0 txt_t db 't',0 @@ -1460,9 +1440,9 @@ txt_key_2: db 9,'jmp still',13 txt_key_3: -;получаем порядковый номер объекта относительно памяти элемента tree2 +;Ї®«гз Ґ¬ Ї®ап¤Є®ўл© ®¬Ґа ®ЎкҐЄв ®в®бЁвҐ«м® Ї ¬пвЁ н«Ґ¬Ґв tree2 ;output: -; txt_buf - строка с номером объекта +; txt_buf - бва®Є б ®¬Ґа®¬ ®ЎкҐЄв align 4 proc get_obj_id_str, p_obj:dword, txt_buf:dword push eax ecx edx @@ -1480,9 +1460,9 @@ proc get_obj_id_str, p_obj:dword, txt_buf:dword ret endp -;получаем порядковый номер объекта относительно памяти элемента tree2 +;Ї®«гз Ґ¬ Ї®ап¤Є®ўл© ®¬Ґа ®ЎкҐЄв ®в®бЁвҐ«м® Ї ¬пвЁ н«Ґ¬Ґв tree2 ;output: -; eax - номер объекта +; eax - ®¬Ґа ®ЎкҐЄв align 4 proc get_obj_id, p_obj:dword push ecx edx @@ -1496,7 +1476,35 @@ proc get_obj_id, p_obj:dword ret endp -;--- текстовые функции --- +;--- ⥪бв®ўлҐ дгЄжЁЁ --- + +;ўлЎЁа Ґ¬ бва®Єг Ё§ ¬ бЁў , Ї® гЄ § ®¬г Ё¤ҐЄбг +;input: +; str - гЄ § вҐ«м ¬ бЁў бва®Є +; ind - Ё¤ҐЄб ЁбЄ®¬®© бва®ЄЁ +;output: +; edi - гЄ § вҐ«м ©¤Ґго бва®Єг +align 4 +proc get_string_by_ind, str:dword, ind:dword +push eax ebx ecx + mov edi,[str] + mov ebx,[ind] + xor al,al ;0 - бЁ¬ў®« Є®ж бва®ЄЁ + @@: + cmp ebx,0 + jle @f ;Ґб«Ё ©¤Ґ бва®Є б гЄ § л¬ Ё¤ҐЄб®¬ + xor ecx,ecx + dec ecx ;ecx - зЁб«® Їа®б¬ ваЁў Ґ¬ле Ў ©в + cld + repne scasb ;ЁйҐ¬ Є®Ґж бва®ЄЁ (al=0) + cmp byte[edi],0 + je @f ;Ґб«Ё б«Ґ¤го饩 бва®ЄЁ Ґв ўл室 Ё§ жЁЄ« + dec ebx + jmp @b + @@: +pop ecx ebx eax + ret +endp align 4 proc mem_clear, mem:dword, len:dword @@ -1566,17 +1574,17 @@ tl_convert_to_str: align 4 .str: - mov ecx,0x0a ;задается система счисления изменяются регистры ebx,eax,ecx,edx входные параметры eax - число - ;преревод числа в ASCII строку входные данные ecx=система счисленя edi адрес куда записывать, будем строку, причем конец переменной - cmp eax,ecx ;сравнить если в eax меньше чем в ecx то перейти на @@-1 т.е. на pop eax + mov ecx,0x0a ;§ ¤ Ґвбп бЁб⥬ бзЁб«ҐЁп Ё§¬Ґповбп ॣЁбвал ebx,eax,ecx,edx ўе®¤лҐ Ї а ¬Ґвал eax - зЁб«® + ;ЇаҐаҐў®¤ зЁб« ў ASCII бва®Єг ўе®¤лҐ ¤ лҐ ecx=бЁб⥬ бзЁб«Ґп edi ¤аҐб Єг¤ § ЇЁблў вм, Ўг¤Ґ¬ бва®Єг, ЇаЁзҐ¬ Є®Ґж ЇҐаҐ¬Ґ®© + cmp eax,ecx ;ба ўЁвм Ґб«Ё ў eax ¬ҐмиҐ зҐ¬ ў ecx в® ЇҐаҐ©вЁ @@-1 в.Ґ. pop eax jb @f - xor edx,edx ;очистить edx - div ecx ;разделить - остаток в edx - push edx ;положить в стек - ;dec edi ;смещение необходимое для записи с конца строки - call .str ;перейти на саму себя т.е. вызвать саму себя и так до того момента пока в eax не станет меньше чем в ecx + xor edx,edx ;®зЁбвЁвм edx + div ecx ;а §¤Ґ«Ёвм - ®бв в®Є ў edx + push edx ;Ї®«®¦Ёвм ў б⥪ + ;dec edi ;ᬥ饨Ґ Ґ®Ўе®¤Ё¬®Ґ ¤«п § ЇЁбЁ б Є®ж бва®ЄЁ + call .str ;ЇҐаҐ©вЁ б ¬г ᥡп в.Ґ. ўл§ў вм б ¬г бҐЎп Ё в Є ¤® в®Ј® ¬®¬Ґв Ї®Є ў eax Ґ бв Ґв ¬ҐмиҐ зҐ¬ ў ecx pop eax - @@: ;cmp al,10 ;проверить не меньше ли значение в al чем 10 (для системы счисленя 10 данная команда - лишная)) - or al,0x30 ;данная команда короче чем две выше - stosb ;записать элемент из регистра al в ячеку памяти es:edi + @@: ;cmp al,10 ;Їа®ўҐаЁвм Ґ ¬ҐмиҐ «Ё § 票Ґ ў al 祬 10 (¤«п бЁб⥬л бзЁб«Ґп 10 ¤ п Є®¬ ¤ - «Ёи п)) + or al,0x30 ;¤ п Є®¬ ¤ Є®а®зҐ 祬 ¤ўҐ ўлиҐ + stosb ;§ ЇЁб вм н«Ґ¬Ґв Ё§ ॣЁбва al ў п祪㠯 ¬пвЁ es:edi ret \ No newline at end of file diff --git a/programs/develop/kol_f_edit/docs/about.png b/programs/develop/kol_f_edit/docs/about.png new file mode 100644 index 0000000000..5e23336fc4 Binary files /dev/null and b/programs/develop/kol_f_edit/docs/about.png differ diff --git a/programs/develop/kol_f_edit/docs/prop_auto.png b/programs/develop/kol_f_edit/docs/prop_auto.png new file mode 100644 index 0000000000..c804a025bd Binary files /dev/null and b/programs/develop/kol_f_edit/docs/prop_auto.png differ diff --git a/programs/develop/kol_f_edit/docs/prop_code.png b/programs/develop/kol_f_edit/docs/prop_code.png new file mode 100644 index 0000000000..272ad182fc Binary files /dev/null and b/programs/develop/kol_f_edit/docs/prop_code.png differ diff --git a/programs/develop/kol_f_edit/docs/prop_ifun.png b/programs/develop/kol_f_edit/docs/prop_ifun.png new file mode 100644 index 0000000000..fca0134fab Binary files /dev/null and b/programs/develop/kol_f_edit/docs/prop_ifun.png differ diff --git a/programs/develop/kol_f_edit/docs/prop_libr.png b/programs/develop/kol_f_edit/docs/prop_libr.png new file mode 100644 index 0000000000..7d7f429b62 Binary files /dev/null and b/programs/develop/kol_f_edit/docs/prop_libr.png differ diff --git a/programs/develop/kol_f_edit/docs/prop_stru.png b/programs/develop/kol_f_edit/docs/prop_stru.png new file mode 100644 index 0000000000..698a30ab4f Binary files /dev/null and b/programs/develop/kol_f_edit/docs/prop_stru.png differ diff --git a/programs/develop/kol_f_edit/docs/prop_type.png b/programs/develop/kol_f_edit/docs/prop_type.png new file mode 100644 index 0000000000..e3339b5c93 Binary files /dev/null and b/programs/develop/kol_f_edit/docs/prop_type.png differ diff --git a/programs/develop/kol_f_edit/docs/prop_vari.png b/programs/develop/kol_f_edit/docs/prop_vari.png new file mode 100644 index 0000000000..5de3ab56af Binary files /dev/null and b/programs/develop/kol_f_edit/docs/prop_vari.png differ diff --git a/programs/develop/kol_f_edit/docs/property.png b/programs/develop/kol_f_edit/docs/property.png new file mode 100644 index 0000000000..17edc7b22f Binary files /dev/null and b/programs/develop/kol_f_edit/docs/property.png differ diff --git a/programs/develop/kol_f_edit/docs/readme.htm b/programs/develop/kol_f_edit/docs/readme.htm new file mode 100644 index 0000000000..9f1eae8b8a --- /dev/null +++ b/programs/develop/kol_f_edit/docs/readme.htm @@ -0,0 +1,160 @@ + +
+Оглавление
+Программа для автоматизации создания интерфейса. + Многие функции программы пока еще не сделаны, потому возможности ее практического использования минимальные. + Лицензия свободная.
+ +Внешний вид программы.
+ +1) Открываем шаблон программы из файла min_prog.ced или box_l.ced + (min_prog.ced - "минимальная" программа, box_l.ced - программа с подключением библиотеки box_lib.obj, планируеться добавление других шаблонов)
+2) Редактируем объекты в подключенном файле *.ced
+3) Создаем *.asm код в текстовом окне кнопкой на панели. Сохраняем *.asm код на диск (работоспособность получившегося файла не гарантируется, т. к. многие элементы еще доконца не запрограмированы)
+4) Редактируем получившийся *.asm файл любым текстовым редактором
+ +Програмный код создается на основе свойств объектов, внесенных в файл проэкта. Все объекты внутри програмы представляються структурами вида:
+struct object + id dd ? ;идентификатор объекта + txt rb MAX_LEN_OBJ_TXT ;текстовые свойства + lvl db 0 + clo db 0 + typid dd ? ;номер объекта определяющего тип переменной + modif dd ? ;битовые свойства +ends+
В зависимости от вида объекта не все его параметры могут использоваться. + Большая часть свойств объекта задается параметрами: txt (текстовые свойства), typid и modif (битовые свойства). + Редактирование оъектов совершается через окно свойств объекта. + При создании объекта текстовые свойства вносятся в текстовые поля (элементы editbox слевой стороны окна); + битовые свойства задаются флажками (находятся справой стороны в нижнем углу окна) а тип объекта выбирается из списка, который доступен только при редактировании переменных (находятся справой стороны в верхнем углу окна).
+Для открытия окна со свойствами объекта нужно выбрать редактируемый объект и нажать [Enter] или кнопку на панели инструментов.
+ +Переменные в програмном коде имеют разные типы данных. Этот объект служит для задания типов данных, с которыми в последствии можно связывать объекты переменных. Один объект типа данных может много раз использоваться для задания типов переменных.
+ +Объект переменной содержит 3 текстовых свойства: 1) имя переменной, 2) значение по умолчанию, 3) комментарий; + и одну ссылку на объект типа данного или объект структуры.
+ +Объект структуры содержит 2 текстовых свойства: 1) имя структуры, 2) параметры для макроса. Свойство параметры для макроса не обязательно для заполнения. + Структура должна содержать в себе переменные. Все объекты переменных структуры должны быть расположены уровнем ниже чем объект структуры, таким образом программа при создании кода определит где находится начало и конец данных структуры.
+ +Объект содержащий програмный код, который вставляется в генерируемую программу. + Длина кода ограничивается размером константы MAX_LEN_OBJ_TXT (200 символов). + Подобный объект нужен для задания каких-либо готовых пользовательских функций или для выхода из нестандартных заранее не предусмотренных ситуаций. + Может возникнуть ситуация, когда через использование других объектов решение задачи может оказаться нецелесообразным, например такой код:
+struct p + a dd ? + b dd ? +ends+
Можно создать из 3-х обектов: 1-на структура и 2 переменные или обойтись 1-м объектом asm кода.
+ +Для програмирования некоторых объектов необходимо написание кода в разных местах программы. + Но один объект не может создавать свой код в разных местах. Для решения этой задачи был создан объект авто кода. + Он может автоматически создавать коды других объектов. + Этот объект содержит текстовое свойство, которое используется как подсказка пользователю, но в програмный код не попадает. + Также содержит флаги, от которых зависит какой именно код будет создаваться, вот они:
+Этот объект работает в связке с другими объектами, а сам по себе никакого кода не создает.
+ +Данный объект служит для создания структуры импорта библиотеки. Содержит параметры:
+Для создания програмного кода этого объекта нужен объект авто кода с включенной опцией коды элементов. + Этот объект используется вместе с объектами функция из библиотеки, которые должны быть дочерними для него.
+ + + + +Игорь А. (IgorA) - разработка программы.
+ + + \ No newline at end of file diff --git a/programs/develop/kol_f_edit/kol_f_edit.asm b/programs/develop/kol_f_edit/kol_f_edit.asm index 0bf8f976e8..a0ce632d85 100644 --- a/programs/develop/kol_f_edit/kol_f_edit.asm +++ b/programs/develop/kol_f_edit/kol_f_edit.asm @@ -20,7 +20,7 @@ include 'obj_codes.inc' @use_library_mem mem.Alloc,mem.Free,mem.ReAlloc, dll.Load -hed db 'kol_f_edit 18.12.10',0 +hed db 'kol_f_edit 22.12.10',0 sizeof.TreeList equ 20 ;need for element 'tree_list' @@ -37,7 +37,7 @@ buf2d_bits equ byte[edi+20] ; MAX_CED_OBJECTS equ 200 MAX_OPT_FIELDS equ 11 -MAX_OBJ_TYPES equ 18 ;¬ ЄбЁ¬ «м®Ґ зЁб«® ®ЎкҐЄв®ў +MAX_OBJ_TYPES equ 17 ;¬ ЄбЁ¬ «м®Ґ зЁб«® ®ЎкҐЄв®ў MAX_OBJ_CAPTIONS equ 1000 ;а §¬Ґа ¤®Ї®«ЁвҐ«мле Ї®¤ЇЁбҐ© Ї®¤ЇЁбҐ© WND_CAPT_COLOR equ 0xb0d0ff BUF_SIZE equ 1000 @@ -58,8 +58,8 @@ BIT_MOD_CHE_B equ 3 ;бЁ BIT_MOD_TXT_ASCII_0 equ 0 ;⥪бв § Є зЁў. 0 BIT_MOD_TXT_NO_TRAN equ 1 ;⥪б⠯஧а зл© BIT_MOD_TXT_CHAR2 equ 2 ;⥪бв 2-¬ иаЁд⮬ -;CPP_MOD_EDIT_FOC equ 1 ;EditBox ў д®Єгᥠ-;CPP_MOD_EDIT_FIO equ 2 ; +BIT_MOD_EDIT_FOC equ 0 ;EditBox ў д®Єгᥠ+BIT_MOD_EDIT_FIO equ 1 ; ;CPP_MOD_RE_GR equ 1 ;Ја ¤ЁҐвл© Їаאַ㣮«мЁЄ BIT_MOD_BUT_NFON equ 0 ;бвЁ«м Button Ґ аЁб®ў вм Є®ЇЄг BIT_MOD_BUT_NBORD equ 1 ;бвЁ«м Button Ґ аЁб®ў вм Ја Ёжг @@ -121,7 +121,8 @@ struct ObjOpt caption rb MAX_OPT_CAPTION Col rw MAX_OPT_FIELDS img rw MAX_OPT_FIELDS ;Ё¤ҐЄбл Є авЁ®Є (ў д ©«Ґ 'icon.bmp') - bit_prop dd 0 ;ЎЁв®ўлҐ бў®©бвў + bit_prop dd 0 ;ЎЁв®ўлҐ бў®©бвў (Ї®¤ЇЁбЁ, §ў Ёп) + bit_val dd 0 ;ЎЁв®ўлҐ бў®©бвў (§ 票п, Є®бв вл) ends SKIN_H equ 22 @@ -728,7 +729,7 @@ proc get_obj_npp, p_obj_str:dword pop edx @@: cmp edx,0 - je @f + je .no_exist cmp edx,ebx je @f @@ -736,6 +737,8 @@ proc get_obj_npp, p_obj_str:dword stdcall [tl_node_poi_get_next_info], edx,tree2 pop edx ;ЇҐаҐе®¤Ё¬ Є б«Ґ¤г饬г 㧫г jmp @b + .no_exist: ;Є®Ј¤ Ё¤Ґв ббл«Є Ґ бгйҐбвўгойЁ© ®ЎкҐЄв + xor eax,eax ;®Ўг«пҐ¬ гЄ § ⥫м, зв®-Ўл Ґ б®еа пвм ў д ©« ¬гб®а @@: pop edx ebx ret @@ -1209,7 +1212,7 @@ import_buf2d_lib: buf2d_line dd sz_buf2d_line buf2d_rect_by_size dd sz_buf2d_rect_by_size buf2d_filled_rect_by_size dd sz_buf2d_filled_rect_by_size - buf2d_circle dd sz_buf2d_circle + ;buf2d_circle dd sz_buf2d_circle buf2d_img_hdiv2 dd sz_buf2d_img_hdiv2 buf2d_img_wdiv2 dd sz_buf2d_img_wdiv2 buf2d_conv_24_to_8 dd sz_buf2d_conv_24_to_8 @@ -1217,10 +1220,10 @@ import_buf2d_lib: buf2d_bit_blt dd sz_buf2d_bit_blt buf2d_bit_blt_transp dd sz_buf2d_bit_blt_transp buf2d_bit_blt_alpha dd sz_buf2d_bit_blt_alpha - buf2d_cruve_bezier dd sz_buf2d_cruve_bezier + ;buf2d_curve_bezier dd sz_buf2d_curve_bezier buf2d_convert_text_matrix dd sz_buf2d_convert_text_matrix buf2d_draw_text dd sz_buf2d_draw_text - buf2d_crop_color dd sz_buf2d_crop_color + ;buf2d_crop_color dd sz_buf2d_crop_color buf2d_offset_h dd sz_buf2d_offset_h dd 0,0 sz_lib_init db 'lib_init',0 @@ -1232,7 +1235,7 @@ dd 0,0 sz_buf2d_line db 'buf2d_line',0 sz_buf2d_rect_by_size db 'buf2d_rect_by_size',0 ;аЁб®ў ЁҐ Їаאַ㣮«мЁЄ , 2-п Є®®а¤Ё в § ¤ Ї® а §¬Ґаг sz_buf2d_filled_rect_by_size db 'buf2d_filled_rect_by_size',0 - sz_buf2d_circle db 'buf2d_circle',0 ;аЁб®ў ЁҐ ®Єа㦮бвЁ + ;sz_buf2d_circle db 'buf2d_circle',0 ;аЁб®ў ЁҐ ®Єа㦮бвЁ sz_buf2d_img_hdiv2 db 'buf2d_img_hdiv2',0 sz_buf2d_img_wdiv2 db 'buf2d_img_wdiv2',0 sz_buf2d_conv_24_to_8 db 'buf2d_conv_24_to_8',0 @@ -1240,10 +1243,10 @@ dd 0,0 sz_buf2d_bit_blt db 'buf2d_bit_blt',0 sz_buf2d_bit_blt_transp db 'buf2d_bit_blt_transp',0 sz_buf2d_bit_blt_alpha db 'buf2d_bit_blt_alpha',0 - sz_buf2d_cruve_bezier db 'buf2d_cruve_bezier',0 + ;sz_buf2d_curve_bezier db 'buf2d_curve_bezier',0 sz_buf2d_convert_text_matrix db 'buf2d_convert_text_matrix',0 sz_buf2d_draw_text db 'buf2d_draw_text',0 - sz_buf2d_crop_color db 'buf2d_crop_color',0 + ;sz_buf2d_crop_color db 'buf2d_crop_color',0 sz_buf2d_offset_h db 'buf2d_offset_h',0 align 4 diff --git a/programs/develop/kol_f_edit/min_prog.ced b/programs/develop/kol_f_edit/min_prog.ced index b7c090844a..d6ba7d0d9d 100644 Binary files a/programs/develop/kol_f_edit/min_prog.ced and b/programs/develop/kol_f_edit/min_prog.ced differ diff --git a/programs/develop/kol_f_edit/ob_o.asm b/programs/develop/kol_f_edit/ob_o.asm index a0629b733e..1d1f145fca 100644 --- a/programs/develop/kol_f_edit/ob_o.asm +++ b/programs/develop/kol_f_edit/ob_o.asm @@ -2,7 +2,7 @@ include 'obj_codes.inc' -macro ObjOpt id,bl_type,graph,info,caption,Col,img,bit_prop +macro ObjOpt id,bl_type,graph,info,caption,Col,img,bit_prop,bit_val { dd id db bl_type @@ -13,7 +13,8 @@ rb @b+30-$ rb @b+MAX_OPT_CAPTION-$ dw Col dw img ;Ё¤ҐЄбл Є авЁ®Є (ў д ©«Ґ 'icon.bmp') -dd bit_prop+0 +dd bit_prop+0 ;гЄ § вҐ«м §ў Ёп ЎЁв®ўле бў®©бвў +dd bit_val+0 ;гЄ § вҐ«м § 票п (Є®бв вл) ЎЁв®ўле бў®©бвў } ObjOpt C_TDF, 0,0,'’ЁЇ ¤ ®Ј®','',\ @@ -37,14 +38,14 @@ ObjOpt C_EDB, 1,1,' 'Ё¬п бвагЄвгал editbox*иЁаЁ Ї®«п*®вбвгЇ б«Ґў *®вбв㯠ᢥаег*梥в д® *梥⠢뤥«ҐЁп ЇаЁ 㤥নў ЁЁ shift Ё«Ё ¬лиЄ®©*梥в а ¬ЄЁ*梥в а ¬ЄЁ ЇаЁ Ґ ЄвЁў®¬ Ї®«Ґ*梥в ⥪бв *¬ ЄбЁ¬ «м п ¤«Ё ⥪бв * з «мл© вҐЄбв',\ <30, 40, 50, 60, 80,100,120,140,160,170, 0>,\ <10, 26, 15, 16, 25, 25, 25, 25, 25, -1, 4>,\ - txt_bit_edit + txt_bit_edit,txt_bit_edit.v ObjOpt C_OPT, 1,1,'ђ ¤Ё® Є®ЇЄ ','Ё¬п*®вбвгЇ б«Ґў *®вбв㯠ᢥаег*梥в д® ўгваЁ*梥в а ¬ЄЁ Ё ўгва. Ј «®зЄЁ*梥в ⥪бв *Ї®¤ЇЁбм*®вбвгЇ ¤® ¤ЇЁбЁ*а §¬Ґа Єў ¤а в ',\ <40, 50, 60, 80,100,120,180,190, 0, 0, 0>,\ < 9, 15, 16, 25, 25, 25, 4, 26, 27, -1, -1> ObjOpt C_CHB, 1,1,'”« ¦®Є','Ё¬п бвагЄвгал*®вбвгЇ б«Ґў *®вбв㯠ᢥаег*иЁаЁ *ўлб®в *®вбвгЇ ¤® ¤ЇЁбЁ*梥в д® ўгваЁ*梥в а ¬ЄЁ Ё ўгва. Ј «®зЄЁ*梥в ⥪бв *Ї®¤ЇЁбм',\ <40, 50, 60, 70, 80, 90,110,130,150, 0, 0>,\ < 8, 15, 16, 26, 27, 26, 25, 25, 25, 4,-1>,\ - txt_bit_che + txt_bit_che,txt_bit_che.v ObjOpt C_TXT, 1,0,'asm Є®¤','',\ < 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0>,\ <11, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1> @@ -52,9 +53,6 @@ ObjOpt C_WND, 1,1,' <98,100,110,120,130,150,170, 0, 0, 0, 0>,\ <12, -1, 15, 16, 26, 27, 25, 25, -1, -1, -1>,\ txt_bit_wnd -ObjOpt C_COM, 1,0,'Љ®¬¬Ґв аЁ©','бва®Є Є®¬¬Ґв аЁп',\ - < 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0>,\ - < 5, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1> ObjOpt C_INC, 1,0,'‚Є«о票Ґ д ©« ','Ё¬п д ©« *Є®¬¬Ґв аЁ©',\ <100, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0>,\ < 6, 5, -1, -1, -1, -1, -1, -1, -1, -1, -1> @@ -68,7 +66,7 @@ ObjOpt C_IFN, 1,0,' ObjOpt C_DTT, 1,1,'ђЁб®ў ЁҐ ⥪бв ','⥪бв®ў п бва®Є *Є®®а¤Ё в Ї® x*Є®®а¤Ё в Ї® y*梥в ⥪бв *梥в д® (Ґб«Ё Ґбвм)',\ <40, 50, 60, 80, 0, 0, 0, 0, 0, 0, 0>,\ < 4, 15, 16, 25, 25, -1, -1, -1, -1, -1, -1>,\ - txt_bit_caption + txt_bit_caption,txt_bit_caption.v ObjOpt C_REC, 1,1,'Џаאַ㣮«мЁЄ','梥в*®вбвгЇ б«Ґў *®вбв㯠ᢥаег*иЁаЁ *ўлб®в ',\ <20, 40, 60, 80, 0, 0, 0, 0, 0, 0, 0>,\ <25, 15, 16, 26, 27, -1, -1, -1, -1, -1, -1> @@ -95,11 +93,21 @@ txt_bit_wnd db ' txt_bit_edit db 'ў д®ЄгбҐ',0 db 'жЁдал ®в 0-9',0 db 0 +.v: + db 'ed_focus',0 + db 'ed_figure_only',0 + db 0 txt_bit_che db 'check_box ўлЎа ',0 db '⥪бв cўҐаег',0 db '⥪бв Ї® жҐваг',0 db '⥪бв cЁ§г',0 db 0 +.v: + db 'ch_flag_en',0 + db 'ch_flag_top',0 + db 'ch_flag_middle',0 + db 'ch_flag_bottom',0 + db 0 txt_bit_but db 'Ґ аЁб®ў вм Є®ЇЄг',0 db 'Ґ аЁб®ў вм Ја Ёжг ЇаЁ ¦ вЁЁ',0 db 0 @@ -107,5 +115,10 @@ txt_bit_caption db ' db '§ «ЁўЄ д® ',0 db '2-© иаЁдв',0 db 0 +.v: + db '0x80000000',0 + db '0x40000000',0 + db '0x10000000',0 + db 0 txt_bit_ifn db '§ Є®¬ҐвЁа®ў вм дгЄжЁо',0 db 0 diff --git a/programs/develop/kol_f_edit/obj_codes.inc b/programs/develop/kol_f_edit/obj_codes.inc index 221e8095de..c4bc553ada 100644 --- a/programs/develop/kol_f_edit/obj_codes.inc +++ b/programs/develop/kol_f_edit/obj_codes.inc @@ -6,9 +6,8 @@ C_TDF equ 'Type' ;typedef C_ACO equ 'Auto' ; ўв®¬ вЁзҐбЄЁҐ Є®¤л (auto code) C_STR equ ('s' shl 24) ;struct C_INC equ ('#' shl 24) ;include -C_TXT equ ('d' shl 24) ;Ў«®Є Є®¤ (¤ ле) +C_TXT equ 'Code' ;Ў«®Є Є®¤ (¤ ле) C_VAR equ ('-' shl 24) ;ЇҐаҐ¬Ґ п -C_COM equ (';' shl 24) ;Є®¬¬Ґв аЁ© C_WND equ ('w' shl 24) ;®Є® C_CHB equ 'ChkB' ;CheckBox C_OPT equ ('o' shl 24) ;OptionBox diff --git a/programs/develop/kol_f_edit/readme.htm b/programs/develop/kol_f_edit/readme.htm deleted file mode 100644 index 4172eea27f..0000000000 --- a/programs/develop/kol_f_edit/readme.htm +++ /dev/null @@ -1,70 +0,0 @@ - - -Программа для автоматизации создания интерфейса. - Многие функции программы пока еще не сделаны, потому возможности ее практического использования минимальные. - Лицензия свободная.
- -Внешний вид программы.
- -1) Открываем шаблон программы из файла min_prog.ced или box_l.ced - (min_prog.ced - "минимальная" программа, box_l.ced - программа с подключением библиотеки box_lib.obj, планируеться добавление других шаблонов)
-2) Редактируем объекты в подключенном файле *.ced (более подробные инструкции по редактированию добавлю когда программа будет готова)
-3) Создаем *.asm код в текстовом окне кнопкой на панели. Сохраняем *.asm код на диск (работоспособность получившегося файла не гарантируется, т. к. многие элементы еще доконца не запрограмированы)
-4) Редактируем получившийся *.asm файл любым текстовым редактором
- -Игорь А. (IgorA) - разработка программы.
- - - \ No newline at end of file diff --git a/programs/develop/libraries/buf2d/trunk/about.htm b/programs/develop/libraries/buf2d/trunk/about.htm index fbccd17939..3a23887fdb 100644 --- a/programs/develop/libraries/buf2d/trunk/about.htm +++ b/programs/develop/libraries/buf2d/trunk/about.htm @@ -62,7 +62,7 @@ table { font-size: 15px; } С ее помощью можно создавать буфера с изображениями в памяти, и при необходимости выводить их на экран. Изображения можно накладывать одно на другое, поддерживается работа с прозрачными изображениями, есть функция рисования лини пока на этом все. -Последнее обновление библиотеки 02.11.10.
+Последнее обновление библиотеки 22.12.10.
Поддерживается 3 формата буферов. @@ -161,7 +161,7 @@ buf_0:
Рисует в буфере изображение из другого буфера в указанных координатах, при этом учитывается прозрачность. Буфер который будет нарисован должен быть 8 битным, а тот в котором рисуют 24 битным.
-Рисует по трем точкам отрезок кривой безье.
07.10.10 - доработана функция buf_bit_blt (при попытке нарисовать изображение за пределами правого края буфера приложение вызвавшее функцию падало).
11.10.10 - исправлено задание цветов в некоторых функциях, красный и синий цвета поменял местами. Теперь цвета совпадают с сисемными функциями.
02.11.10 - добавлена функция buf2d_flood_fill.
+22.12.10 - изменено имя функции buf2d_cruve_bezier на buf2d_curve_bezier.