Library/ru: Difference between revisions
Punk Joker (talk | contribs) m (→GUI Libraries) |
Punk Joker (talk | contribs) m (→Libs-dev) |
||
Line 9: | Line 9: | ||
Libs-dev в настоящий момент состоит из четырёх библиотек общего назначения: '''libio''' (программирование ввода-вывода), '''libini''' (поддержка INI файлов), '''libimg''' (манипуляции с графическими файлами) and '''libgfx''' (удобное API для рисования). | Libs-dev в настоящий момент состоит из четырёх библиотек общего назначения: '''libio''' (программирование ввода-вывода), '''libini''' (поддержка INI файлов), '''libimg''' (манипуляции с графическими файлами) and '''libgfx''' (удобное API для рисования). | ||
===libio=== | ===libio=== | ||
Библиотека предоставляет средства для выполнения основных операций ввода-вывода, таких как открытие, закрытие, чтение, изменение, урезание файлов, получение и установка позиции файлового указателя. Также присутствуют методы для перебора файлов в пределах определённой директории с именами, соответствующими маске. | Библиотека предоставляет средства для выполнения основных операций ввода-вывода, таких как открытие, закрытие, чтение, изменение, урезание файлов, получение и установка позиции файлового указателя. Также присутствуют методы для перебора файлов в пределах определённой директории с именами, соответствующими маске. | ||
Ею должны, в общем случае, пользоваться программы, которым необходимо производить низкоуровневые файловые операции. | Ею должны, в общем случае, пользоваться программы, которым необходимо производить низкоуровневые файловые операции.'''[[Libs-dev/libio/ru|Подробнее...]]''' | ||
===libini=== | ===libini=== | ||
Библиотека предоставляет средства для работы с INI файлами, представляющими собой текстовые файлы с набором ключей и значений, которые пользователь имеет возможность изменять вручную в любом внешнем редакторе. | Библиотека предоставляет средства для работы с INI файлами, представляющими собой текстовые файлы с набором ключей и значений, которые пользователь имеет возможность изменять вручную в любом внешнем редакторе. | ||
Ею должны, в общем случае, пользоваться программы, которым необходимо сохранять и загружать свои настройки платформо-независимым образом. | Ею должны, в общем случае, пользоваться программы, которым необходимо сохранять и загружать свои настройки платформо-независимым образом.'''[[Libs-dev/libini/ru|Подробнее...]]''' | ||
===libimg=== | ===libimg=== | ||
Библиотека предоставляет средства для работы с графическими файлами и контейнерами. Она расширяема и может прозрачным образом декодировать изображения в разных форматах, идентифицируя их по файловым сигнатурам и другими эвристическими способами. | Библиотека предоставляет средства для работы с графическими файлами и контейнерами. Она расширяема и может прозрачным образом декодировать изображения в разных форматах, идентифицируя их по файловым сигнатурам и другими эвристическими способами. | ||
Ею должны, в общем случае, пользоваться программы, которым необходимо отображать картинки в их пользовательском интерфейсе (например, иконки на кнопках). | Ею должны, в общем случае, пользоваться программы, которым необходимо отображать картинки в их пользовательском интерфейсе (например, иконки на кнопках).'''[[Libs-dev/libimg/ru|Подробнее...]]''' | ||
===libgfx=== | ===libgfx=== | ||
Библиотека предоставляет средства для рисования различных графических примитивов, таких как точки, линии, простые и закрашенные прямоугольники, круги и т.п. Она использует абстракцию холста, чтобы иметь возможность буферизированной отрисовки. | Библиотека предоставляет средства для рисования различных графических примитивов, таких как точки, линии, простые и закрашенные прямоугольники, круги и т.п. Она использует абстракцию холста, чтобы иметь возможность буферизированной отрисовки. | ||
Ею должны, в общем случае, пользоваться программы, которым необходимо рисовать графику на экране (что, в принципе, относится ко всем существующим программам, так как Kolibri является полностью графической операционной системой). | Ею должны, в общем случае, пользоваться программы, которым необходимо рисовать графику на экране (что, в принципе, относится ко всем существующим программам, так как Kolibri является полностью графической операционной системой).'''[[Libs-dev/libgfx/ru|Подробнее...]]''' | ||
=Тестирование библиотек= | =Тестирование библиотек= |
Revision as of 03:46, 9 January 2014
GUI Libraries
Box lib
Библиотека box_lib.obj содержит разные элементы управления, которые можно использовать при написании приложений. Подробнее...
OpenDialog
Является подобием Windows компонента Microsoft Common Dialog Control или его аналогов в Linux (там их вообще несколько разных присутствует), и служит для выбор пути. Подробнее...
Libs-dev
Libs-dev в настоящий момент состоит из четырёх библиотек общего назначения: libio (программирование ввода-вывода), libini (поддержка INI файлов), libimg (манипуляции с графическими файлами) and libgfx (удобное API для рисования).
libio
Библиотека предоставляет средства для выполнения основных операций ввода-вывода, таких как открытие, закрытие, чтение, изменение, урезание файлов, получение и установка позиции файлового указателя. Также присутствуют методы для перебора файлов в пределах определённой директории с именами, соответствующими маске.
Ею должны, в общем случае, пользоваться программы, которым необходимо производить низкоуровневые файловые операции.Подробнее...
libini
Библиотека предоставляет средства для работы с INI файлами, представляющими собой текстовые файлы с набором ключей и значений, которые пользователь имеет возможность изменять вручную в любом внешнем редакторе.
Ею должны, в общем случае, пользоваться программы, которым необходимо сохранять и загружать свои настройки платформо-независимым образом.Подробнее...
libimg
Библиотека предоставляет средства для работы с графическими файлами и контейнерами. Она расширяема и может прозрачным образом декодировать изображения в разных форматах, идентифицируя их по файловым сигнатурам и другими эвристическими способами.
Ею должны, в общем случае, пользоваться программы, которым необходимо отображать картинки в их пользовательском интерфейсе (например, иконки на кнопках).Подробнее...
libgfx
Библиотека предоставляет средства для рисования различных графических примитивов, таких как точки, линии, простые и закрашенные прямоугольники, круги и т.п. Она использует абстракцию холста, чтобы иметь возможность буферизированной отрисовки.
Ею должны, в общем случае, пользоваться программы, которым необходимо рисовать графику на экране (что, в принципе, относится ко всем существующим программам, так как Kolibri является полностью графической операционной системой).Подробнее...
Тестирование библиотек
В исходных кодах присутствует директория .test, содержащая различные тесты библиотек. Они спроектированы независимыми друг от друга и должны генерировать (или содержать заранее сгенерированные) тестовые данные, которые приводят к одинаковым результатам независимо от порядка их выполнения.
Программа KIV была изначально основана на одном из таких тестов (002), использующем библиотеки libio и libimg, чтобы показать их возможности в небольшой графической программе, способной отображать картинку по пути, переданному в качестве параметра командной строки.
Стиль кодирования
Все публичные функции содержатся в файле <имя библиотеки>.asm, вспомогательные публичные определения — в файле <имя библиотеки>.inc. Все остальные специфичные для библиотеки (приватные и вспомогательные) основные функции и определения отделены в файлы <имя библиотеки>_p.asm и <имя библиотеки>_p.inc. Также могут присутствовать отдельные файлы с говорящими именами, предоставляющие дополнительную функциональность.
Функции, находящиеся в публичных файлах, используют соглашение об именовании <имя области функции>.<имя функции>. Функции, содержащиеся в приватных файлах, используют соглашение об именовании <имя библиотеки>._.<имя функции>. Это позволяет разделить код библиотек при статической сборке.
Используется специфический тип описательных комментариев к функциям, что позволит в будущем генерировать документацию автоматически.