Library/ru: Difference between revisions
mNo edit summary |
No edit summary |
||
(18 intermediate revisions by 3 users not shown) | |||
Line 1: | Line 1: | ||
{| class="wikitable" border="1" | |||
! Имя библиотеки | |||
! Краткое описание | |||
! Тема на форуме | |||
|- | |||
| '''[[Box lib/ru|Box lib]]''' | |||
| Библиотека box_lib.obj содержит разные элементы управления, которые можно использовать при написании приложений. | |||
| http://board.kolibrios.org/viewtopic.php?f=24&t=1220 | |||
Библиотека предоставляет средства для выполнения основных операций ввода-вывода, таких как открытие, закрытие, чтение, изменение, урезание файлов, получение и установка позиции файлового указателя. Также присутствуют методы для перебора файлов в пределах определённой директории с именами, соответствующими маске. | |- | ||
| '''[[OpenDialog/ru|OpenDialog]]''' | |||
| Является подобием Windows компонента Microsoft Common Dialog Control или его аналогов в Linux (там их вообще несколько разных присутствует), и служит для выбор пути. | |||
| | |||
|- | |||
| '''[[Libs-dev/libio/ru|libio]]''' | |||
| Библиотека предоставляет средства для выполнения основных операций ввода-вывода, таких как открытие, закрытие, чтение, изменение, урезание файлов, получение и установка позиции файлового указателя. Также присутствуют методы для перебора файлов в пределах определённой директории с именами, соответствующими маске. | |||
Ею должны, в общем случае, пользоваться программы, которым необходимо производить низкоуровневые файловые операции. | Ею должны, в общем случае, пользоваться программы, которым необходимо производить низкоуровневые файловые операции. | ||
| | |||
|- | |||
| '''[[Libs-dev/libini/ru|libini]]''' | |||
| Библиотека предоставляет средства для работы с INI файлами, представляющими собой текстовые файлы с набором ключей и значений, которые пользователь имеет возможность изменять вручную в любом внешнем редакторе. | |||
Библиотека предоставляет средства для работы с INI файлами, представляющими собой текстовые файлы с набором ключей и значений, которые пользователь имеет возможность изменять вручную в любом внешнем редакторе. | |||
Ею должны, в общем случае, пользоваться программы, которым необходимо сохранять и загружать свои настройки платформо-независимым образом. | Ею должны, в общем случае, пользоваться программы, которым необходимо сохранять и загружать свои настройки платформо-независимым образом. | ||
| http://board.kolibrios.org/viewtopic.php?f=24&t=1114 | |||
|- | |||
| '''[[Libs-dev/libimg/ru|libimg]]''' | |||
| Библиотека предоставляет средства для работы с графическими файлами и контейнерами. Она расширяема и может прозрачным образом декодировать изображения в разных форматах, идентифицируя их по файловым сигнатурам и другими эвристическими способами. | |||
Библиотека предоставляет средства для работы с графическими файлами и контейнерами. Она расширяема и может прозрачным образом декодировать изображения в разных форматах, идентифицируя их по файловым сигнатурам и другими эвристическими способами. | |||
Ею должны, в общем случае, пользоваться программы, которым необходимо отображать картинки в их пользовательском интерфейсе (например, иконки на кнопках). | Ею должны, в общем случае, пользоваться программы, которым необходимо отображать картинки в их пользовательском интерфейсе (например, иконки на кнопках). | ||
| http://board.kolibrios.org/viewtopic.php?f=24&t=1728 | |||
|- | |||
| '''[[Libs-dev/libgfx/ru|libgfx]]''' | |||
| Библиотека предоставляет средства для рисования различных графических примитивов, таких как точки, линии, простые и закрашенные прямоугольники, круги и т.п. Она использует абстракцию холста, чтобы иметь возможность буферизированной отрисовки. | |||
Библиотека предоставляет средства для рисования различных графических примитивов, таких как точки, линии, простые и закрашенные прямоугольники, круги и т.п. Она использует абстракцию холста, чтобы иметь возможность буферизированной отрисовки. | |||
Ею должны, в общем случае, пользоваться программы, которым необходимо рисовать графику на экране (что, в принципе, относится ко всем существующим программам, так как Kolibri является полностью графической операционной системой). | Ею должны, в общем случае, пользоваться программы, которым необходимо рисовать графику на экране (что, в принципе, относится ко всем существующим программам, так как Kolibri является полностью графической операционной системой). | ||
| | |||
|- | |||
| '''[[Buf2d/ru|buf2d]]''' | |||
| Эта библиотека создана для работы с 2d изображениями. С ее помощью можно создавать буфера с изображениями в памяти, и при необходимости выводить их на экран. Изображения можно накладывать одно на другое, поддерживается работа с прозрачными изображениями. Есть функции рисования линий, кривых Безье, прямоугольников, окружностей. Также есть функции для рисований воксельной графики. | |||
| http://board.kolibrios.org/viewtopic.php?f=24&t=1319 | |||
|- | |||
| '''xml''' | |||
| Библиотека для разбора xml | |||
| http://board.kolibrios.org/viewtopic.php?f=24&t=1701 | |||
|- | |||
| '''exif''' | |||
| Просмотр данных EXIF изображений | |||
| http://board.kolibrios.org/viewtopic.php?f=24&t=2757 | |||
|- | |||
| '''libcrash''' | |||
| Криптографические хэш функции и проч. | |||
| http://board.kolibrios.org/viewtopic.php?f=24&t=2189 | |||
|- | |||
| '''[[Console|console]]''' | |||
| Работа с консолью | |||
| http://board.kolibrios.org/viewtopic.php?f=24&t=930 | |||
|- | |||
| '''[[Network_library|network]]''' | |||
| Some network functions | |||
|} | |||
=Тестирование библиотек= | =Тестирование библиотек= |
Latest revision as of 21:37, 10 June 2021
Имя библиотеки | Краткое описание | Тема на форуме |
---|---|---|
Box lib | Библиотека box_lib.obj содержит разные элементы управления, которые можно использовать при написании приложений. | http://board.kolibrios.org/viewtopic.php?f=24&t=1220 |
OpenDialog | Является подобием Windows компонента Microsoft Common Dialog Control или его аналогов в Linux (там их вообще несколько разных присутствует), и служит для выбор пути. | |
libio | Библиотека предоставляет средства для выполнения основных операций ввода-вывода, таких как открытие, закрытие, чтение, изменение, урезание файлов, получение и установка позиции файлового указателя. Также присутствуют методы для перебора файлов в пределах определённой директории с именами, соответствующими маске.
Ею должны, в общем случае, пользоваться программы, которым необходимо производить низкоуровневые файловые операции. |
|
libini | Библиотека предоставляет средства для работы с INI файлами, представляющими собой текстовые файлы с набором ключей и значений, которые пользователь имеет возможность изменять вручную в любом внешнем редакторе.
Ею должны, в общем случае, пользоваться программы, которым необходимо сохранять и загружать свои настройки платформо-независимым образом. |
http://board.kolibrios.org/viewtopic.php?f=24&t=1114 |
libimg | Библиотека предоставляет средства для работы с графическими файлами и контейнерами. Она расширяема и может прозрачным образом декодировать изображения в разных форматах, идентифицируя их по файловым сигнатурам и другими эвристическими способами.
Ею должны, в общем случае, пользоваться программы, которым необходимо отображать картинки в их пользовательском интерфейсе (например, иконки на кнопках). |
http://board.kolibrios.org/viewtopic.php?f=24&t=1728 |
libgfx | Библиотека предоставляет средства для рисования различных графических примитивов, таких как точки, линии, простые и закрашенные прямоугольники, круги и т.п. Она использует абстракцию холста, чтобы иметь возможность буферизированной отрисовки.
Ею должны, в общем случае, пользоваться программы, которым необходимо рисовать графику на экране (что, в принципе, относится ко всем существующим программам, так как Kolibri является полностью графической операционной системой). |
|
buf2d | Эта библиотека создана для работы с 2d изображениями. С ее помощью можно создавать буфера с изображениями в памяти, и при необходимости выводить их на экран. Изображения можно накладывать одно на другое, поддерживается работа с прозрачными изображениями. Есть функции рисования линий, кривых Безье, прямоугольников, окружностей. Также есть функции для рисований воксельной графики. | http://board.kolibrios.org/viewtopic.php?f=24&t=1319 |
xml | Библиотека для разбора xml | http://board.kolibrios.org/viewtopic.php?f=24&t=1701 |
exif | Просмотр данных EXIF изображений | http://board.kolibrios.org/viewtopic.php?f=24&t=2757 |
libcrash | Криптографические хэш функции и проч. | http://board.kolibrios.org/viewtopic.php?f=24&t=2189 |
console | Работа с консолью | http://board.kolibrios.org/viewtopic.php?f=24&t=930 |
network | Some network functions |
Тестирование библиотек
В исходных кодах присутствует директория .test, содержащая различные тесты библиотек. Они спроектированы независимыми друг от друга и должны генерировать (или содержать заранее сгенерированные) тестовые данные, которые приводят к одинаковым результатам независимо от порядка их выполнения.
Программа KIV была изначально основана на одном из таких тестов (002), использующем библиотеки libio и libimg, чтобы показать их возможности в небольшой графической программе, способной отображать картинку по пути, переданному в качестве параметра командной строки.
Стиль кодирования
Все публичные функции содержатся в файле <имя библиотеки>.asm, вспомогательные публичные определения — в файле <имя библиотеки>.inc. Все остальные специфичные для библиотеки (приватные и вспомогательные) основные функции и определения отделены в файлы <имя библиотеки>_p.asm и <имя библиотеки>_p.inc. Также могут присутствовать отдельные файлы с говорящими именами, предоставляющие дополнительную функциональность.
Функции, находящиеся в публичных файлах, используют соглашение об именовании <имя области функции>.<имя функции>. Функции, содержащиеся в приватных файлах, используют соглашение об именовании <имя библиотеки>._.<имя функции>. Это позволяет разделить код библиотек при статической сборке.
Используется специфический тип описательных комментариев к функциям, что позволит в будущем генерировать документацию автоматически.