/
vTech
/
FcApps
Обзор
Документация
Войти
/
vTech
/
FcApps
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
FcLibs/FcParser/src/UI/Layout/FcParser_UI_Layout_Linear.h
64 строки
2 KB
vTech
alpha_00
03 дек 2025, 17:45
03 дек 2025, 17:45
ab8382d
Код
Авторство
О чём код?
#ifndef __FCPARSER_UI_LAYOUT_LINEAR_H__ #define __FCPARSER_UI_LAYOUT_LINEAR_H__ /// <LINEAR> /// { /// width : 0123456..., /// height : 0123456..., /// color : 0xffffffff, /// orientation : horizontal / vertical /// } /// <LINEAR> typedef struct _FcParser_UI_Layout_Linear_t { long mWidth; long mHeight; long mDefaultColor; long mOrientation; }FcParser_UI_Layout_Linear_t; FCPARSERDEF FcParser_Error_t FcParser_UI_Layout_Linear_size(const char** ppText, unsigned* pSize); FCPARSERDEF FcParser_Error_t FcParser_UI_Layout_Linear_size(const char** ppText, unsigned* pSize) { unsigned i; const char* mText; char* mTextOffset; unsigned mFlags; FcParser_Error_t mError = FCPARSER_ERROR_NOERROR; mText = NULL; mTextOffset = NULL; if (!ppText || !pSize) { mError = FCPARSER_ERROR_PARAMETERS; goto gError; } enum { width = 0x1, height = 0x2, color = 0x4, orientation = 0x8 }; mText = *ppText; mFlags = 0; do { if (FcString_equal_p0p1P0c(mText, "width=", &mText, 6)) (void)strtol(mText, &mTextOffset, 10), mText = mTextOffset + (*mText == ';'), mFlags |= width; else if (FcString_equal_p0p1P0c(mText, "height=", &mText, 7)) (void)strtol(mText, &mTextOffset, 10), mText += *mText == ';', mFlags |= height; else if (FcString_equal_p0p1P0c(mText, "orientation=", &mText, 12)) (void)strtol(mText, &mTextOffset, 10), mText += *mText == ';', mFlags |= orientation; else if (FcString_equal_p0p1P0c(mText, "color=", &mText, 6)) (void)strtol(mText, &mTextOffset, 16), mText += *mText == ';', mFlags |= color; else mError = FCPARSER_ERROR_FCPARSER_LAYOUT_LINEAR_OPTIONS; } while (!mError && mFlags != 0x1F); if (mError) { mError = mFlags & width ? FCPARSER_ERROR_FCPARSER_LAYOUT_LINEAR_WIDTH : mError; mError = mFlags & height ? FCPARSER_ERROR_FCPARSER_LAYOUT_LINEAR_HEIGHT : mError; mError = mFlags & color ? FCPARSER_ERROR_FCPARSER_LAYOUT_LINEAR_COLOR : mError; mError = mFlags & orientation ? FCPARSER_ERROR_FCPARSER_LAYOUT_LINEAR_ORIENTATION : mError; } *pSize += sizeof(FcParser_UI_Layout_Linear_t); return mError; gError: return mError; } #endif //__FCPARSER_UI_LAYOUT_LINEAR_H__