Page 28 of 29

Re: box_lib.obj - библиотека gui компонентов

Posted: Wed Nov 18, 2020 9:56 pm
by IgorA
maxcodehack wrote:Это уже реализовано в C--
lib/gui/checkbox.h
Там вывод поверх 3d bar картинки галочки.
Там checkbox фиксированного размера, а в boxlib-е он может быть разных размеров, потому картинку поставить не получится. Наверное нужно придумывать что-то с векторными изображениями наподобие svg.

rev 8219
Обновил макросы в load_lib.
1) теперь в макрос @use_library можно передавать указатели на функции работы с памятью, как это было для макроса @use_library_mem. Макрос @use_library_mem оставил для совместимости
2) в структуре l_libs убрал указатель .cur_dir_path__ . В нем был указатель на буфер в котором содержится путь от куда была запущена программа. Этот буфер можно получить из заголовка программы по 32-му смещению. При объявлении структуры l_libs оставил cur_dir_path__ для совместимости, но теперь этот параметр не используется.

Re: box_lib.obj - библиотека gui компонентов

Posted: Wed Nov 18, 2020 10:00 pm
by maxcodehack
Насчет checkbox
Есть syscall для рисования линии, можно протсо расчитать размер, и нарисовать две линии, как \/, только одна короче другой

Re: box_lib.obj - библиотека gui компонентов

Posted: Fri Nov 20, 2020 11:18 pm
by IgorA
rev 8227
Добавил новый экспериментальный макрос load_lib.mac, отличие от старого макроса в том, что он требует намного меньше параметров для своего подключения. Для пробы перевел Animage на новый макрос. В новом макросе сообщения о неудачной загрузке библиотек создается в самом макросе и потому он не требует указатели на строки с текстом сообщения. Можно при желании переводить программы на использование нового макроса.

Re: box_lib.obj - библиотека gui компонентов

Posted: Sat Nov 21, 2020 2:36 am
by Leency
Годно, думаю, стоит перевести все приложения.

Re: box_lib.obj - библиотека gui компонентов

Posted: Sun Nov 22, 2020 4:48 pm
by IgorA
rev 8236, 8237
Программы free3d, use_mb, fasm, h2d2b, heed и несколько примеров перевел на новый макрос.

Re: box_lib.obj - библиотека gui компонентов

Posted: Wed Dec 09, 2020 12:07 am
by IgorA
rev 8346
Почистил код библиотеки box_lib, удалил неиспользуемые файлы, убрал лишние макросы, по функциям нового не добавлял

Re: box_lib.obj - библиотека gui компонентов

Posted: Mon Jan 11, 2021 11:51 am
by maxcodehack
Заметил, что если в компоненте (вроде бы) tree, нажать два-три раза по одно же строке, программа использующая ее падает. Например TextEdit: нажимаем на иконку как радуга, три раза кликаем в одном месте по появившемуся элементу tree -> падение
В компоненте list вроде тоже.

Re: box_lib.obj - библиотека gui компонентов

Posted: Mon Jan 11, 2021 11:32 pm
by IgorA
maxcodehack wrote:Заметил, что если в компоненте (вроде бы) tree, нажать два-три раза по одно же строке, программа использующая ее падает.
rev 8533
исправил tree, в ходе тестирования нашел и исправил еще одну проблему с t_edit

Re: box_lib.obj - библиотека gui компонентов

Posted: Tue Feb 02, 2021 4:47 pm
by rgimad
Обнаружен баг (или фича? ):
если в checkbox зажать левую кнопку мыши и водить курсором внутри чекбокса то чекбокс то включается, то выключается т.е мигает

Re: box_lib.obj - библиотека gui компонентов

Posted: Tue Feb 02, 2021 4:59 pm
by lev
Если мышь не отпускать, да по экрану ей водить много чего можно наловить. Например, в аттаче начните двигать ползунок скролла и, не отпуская кнопки, наедьте на второй скролл.

Re: box_lib.obj - библиотека gui компонентов

Posted: Wed Feb 03, 2021 1:37 am
by IgorA
rgimad wrote:Обнаружен баг (или фича? ):
мигало даже если водить мышей по тексту возле checkbox
rev #8568
уже не мигает
lev wrote:Если мышь не отпускать, да по экрану ей водить много чего можно наловить. Например, в аттаче начните двигать ползунок скролла и, не отпуская кнопки, наедьте на второй скролл.
это еще не смотрел, но возможно что проблема похожая на предыдущую

Re: box_lib.obj - библиотека gui компонентов

Posted: Tue Jan 04, 2022 12:32 am
by IgorA
rev #9568
По просьбе Coldy переименовал функцию edit_box в edit_box_draw. Для совместимости со старыми программами библиотека экспортирует функцию edit_box_draw 2 раза под именами edit_box и edit_box_draw.

Re: box_lib.obj - библиотека gui компонентов

Posted: Mon Jan 10, 2022 11:30 pm
by IgorA
rev #9610
Доработал и исправил функцию tl_node_poi_get_info элемента TreeList.
Подробности см. здесь http://forum.cantorsys.com/viewtopic.php?id=174
Spoiler:
TreeList.cur_pos + 1
исправлено единицу добавлять не надо.
но если свернуть какие-нибудь узлы, то неверно работает tl_node_poi_get_info — возвращает значения не того элемента.
Правильно работает только, когда все узлы развёрнуты.
исправлено.

Re: box_lib.obj - библиотека gui компонентов

Posted: Tue Jan 11, 2022 4:39 pm
by turbocat
Есть такая неприятность. В gcc и tcc edit_box_key работает не правильно(по понятным причинам), из-за чего приходится использовать костыль:

Code: Select all

void edit_box_key_safe(edit_box *e, ksys_oskey_t ch) {
    asm_inline (
        "pushl %2 \n\t"
        "call *%1 \n\t"
        ::"a"(ch.val), "m"(*edit_box_key), "m"(e)
        :"memory"
    );
}
Можно ли добавить подобную функцию в саму библиотеку?

Re: box_lib.obj - библиотека gui компонентов

Posted: Tue Jan 11, 2022 5:21 pm
by punk_joker
Напомни, какая с этой функцикй проблема? Для чего эта обертка? Знаю что сам ее писал, но уже непомню как работают асм вставки.