#### Описание класса MEDIT

Многооконный текстовый редактор с менюшками и прибамбасами, построен на базе класса TEXTEDIT.

##### Атрибуты/свойства

Название атрибута | Значение атрибута
--- | ---
className | "MEDIT"
nTop | координата окна: левый верхний угол - строка
nLeft | координата окна: левый верхний угол - колонка
nBottom | координата окна: правый нижний угол - строка
nRight | координата окна: правый нижний угол - колонка

##### Методы/функции

Функция medit(par, ntop, nleft, nbot, nright, user_func, tab_size, bline, bpos, wline, wpos) - создает новый объект класса MEDIT
par - string, список имен файлов, которые предназначены для редактирования
ntop - кордината окна редактирования: левый верхний угол - строка
nleft - кордината окна редактирования: левый верхний угол - колонка
nbot - кордината окна редактирования: правый нижний угол - строка
nright - кордината окна редактирования: правый нижний угол - колонка
user_func - пользовательская функция
tab_size - шаг табуляции
bline - строка текста
bpos - позиция в строке
wline - позиция курсора в окне: строка
wpos - позиция курсора в окне: колонка

##### Возможности редактора

Работа с окнами | - открыть - открыть share-окно - закрыть - посмотреть список открытых окон
Работа с блоками | - блоки строчные/прямоугольные - копирование - перемещение - копрование в буфер - вставка блока из буфера - загрузка из файла - запись в файл
Работа с текстом | - всяческие перемещения и стандартное редактирование текста - форматирование строки/абзаца - рисование таблиц (псевдографика) - откат (настраиваемый размер буфера отката) - вставка по шаблону - настраивается пользователем (см. класс TEXTEDIT) - макроподстановки - настраивается пользователем (см. класс TEXTEDIT)

Операции поиска

- поиск(поиск с заменой) по шаблону, по регулярному выражению - ищет в тексте, в блоке, во всех окнах
- поиск парных символов (), {}, [], <>
- поиск структур по правилам CLIPPER:

- DO WHILE - LOOP - EXIT - ENDDO
- DO CASE - CASE - OTHERWISE - EXIT - ENDCASE
- FOR - EXIT - LOOP - NEXT
- IF - ELSE - ELSEIF - ENDIF
- BEGIN SEQUENCE - BREAK - RECOVER - END SEQUENCE

##### Настройка "горячих" клавиш по желанию пользователя.

"Пользовательские кнопки" при старте загружаются из файла keymaps.po. Он хранится в домашнем каталоге в директории ./clip и компилируется из файла keymaps.prg

Пример файла keymaps.prg

    /* User key_maps */
    #include "inkey.ch"

    function init_user_key(key_maps)
    local k

    	/* for debugger */
    	k:=key_maps:debug
    	/* Код клавиши 	  Команда */
    	k[ K_ESC ]	:=HASH_CallMenu
    	k[ K_F1 ] 	:=HASH_Help
    	     .........

    	/* for text editor */
    	k:=key_maps:edit

    	/* Код клавиши 	  Команда */
    	k[ K_ESC ]	:=HASH_CallMenu		// call Menu
    //	k[ ]	:=HASH_ExitSave		// exit from editor witch save
    //	k[ ]	:=HASH_ExitNoSave	//exit from editor witchout save

    	/* file/window function */
    	k[ K_F2 ]	:=HASH_SaveFile		// save File
    	k[ K_F3 ]	:=HASH_OpenFile		// open file
    	k[ K_SH_F3 ]	:=HASH_CreateNewFile	// create new file
    	k[ K_CTRL_N ]	:=HASH_NextWindow	// open next window
    //	k[  ]  	:=HASH_PrevWindow	// open previous window
    //	k[  ]	:=HASH_ReadOnly		// on/off read only options
    //	k[  ]	:=HASH_ListFiles	// listing opening files
    //	k[  ]	:=HASH_CloseWindow	// close current window
    //	k[  ]	:=HASH_Reload		// reload file
    		.............
    return key_maps

© Ю.Хныкин, uri@itk.ru, 2000
© Е.Корнилова, alena@itk.ru, 2000