/
vTech
/
FcApps
Обзор
Документация
Войти
/
vTech
/
FcApps
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
src/FcUI_Test.h
181 строка
5 KB
vTech
alpha_00
03 дек 2025, 17:45
03 дек 2025, 17:45
ab8382d
Код
Авторство
О чём код?
#ifndef _FCUI_TEST_H_ #define _FCUI_TEST_H_ #include "FcLibs.h" #define FCFONT_TEXTURE_HEIGHT 720 #define FCFONT_TEXTURE_WIDTH 1280 void pButtonFunc(FCUI_OBJECT type, void* pUI, void* pData1, void* pData2){ FcUI_t* mUI = (FcUI_t*)pUI; FcUI_Button_t* mButton; FcUI_TextView_t* mTextView; FcUI_RadioButton_t* mRadioButton; switch (type) { case FCUI_OBJECT_BUTTON: mButton = (FcUI_Button_t*)pData1; break; case FCUI_OBJECT_TEXTVIEW: mTextView = (FcUI_TextView_t*)pData1; break; case FCUI_OBJECT_RADIOBUTTON: mRadioButton = (FcUI_RadioButton_t*)pData1; break; } } void testInput(FcUI_Input_data_t* pInput, void* pUI) { FcUI_t* mUI = (FcUI_t*)pUI; //FcImage_RGBA_t* mImage; size_t mWidth, mHeight; TCHAR* mText = TEXT("Hello World!"); //mImage = FcImage_RGBA(mWidth, mHeight); switch (pInput->mType) { case FCUI_INPUT_DEVICE_MOUSE: switch (pInput->mEvent.mMouse.mouseKeyCode) { case FCWINDOW_MOUSE_Left_PRESS: break; case FCWINDOW_MOUSE_ScrollUp: //FcUI_Font_AtlasView(mUI); break; case FCWINDOW_MOUSE_ScrollDown: break; } break; case FCUI_INPUT_DEVICE_KEYBOARD: if (pInput->mEvent.mKeyboard.keyEvent == FCWINDOW_KEYBOARD_PRESS) { break; } } //FcImage_RGBA_free(mImage); } void pTimer(FcWindowGL_WINAPI_t* pWindow, void* data_0, void* data_1, void* data_2) { } int FcUI_Test(FcPlatform_t* pPlatform) { FcError_t mError; FcWindow_openConsole(); //FcTest_Space(pPlatform); FcUI_Setting_t mConfig; FcUI_Font_Config_t mFontConfig; FcUI_Object_TextView_t mTextView; FcUI_Object_Button_t mButton; FcUI_Object_Slider_t mSlider; FcUI_Object_RadioButton_t mRadioButton; FcUI_t mUI = {0}; memset(&mConfig, 0, sizeof(mConfig)); mConfig.mWindowConfig.mY = 100; mConfig.mWindowConfig.mX = 100; mConfig.mWindowConfig.mWidth = 1280; mConfig.mWindowConfig.mHeight = 800; mConfig.mWindowConfig.mFullscreen = false; mConfig.mWindowConfig.mVSync = true; mConfig.mGraphicsSetting.mTypeConfig = FCUI_CONFIG_GRAPHICS_GL_0; mConfig.mGraphicsSetting.pResizeWindow = NULL; mConfig.mGraphicsSetting.mData = NULL; FCUISAFECALLF(mError, FcUI_Object(&mConfig.mObjects)); mFontConfig.mType = FCUI_FONT_ATLAS_SDF; mFontConfig.mData.mBasic.mHeight = 2048; mFontConfig.mData.mBasic.mWidth = 2048; mFontConfig.mData.mBasic.mPixelHeight = 144; memcpy(mFontConfig.mDictionary, TEXT("1234567890qwertyuiop[]asdfghjkl:'zxcvbnm,./QWERTYUIOP[]ASDFGHJKL;'ZXCVBNM,./"), sizeof(TEXT("1234567890qwertyuiop[]asdfghjkl:'zxcvbnm,./QWERTYUIOP[]ASDFGHJKL;'ZXCVBNM,./"))); memcpy(mFontConfig.mFontName, TEXT("C:\\Windows\\Fonts\\Inkfree.ttf"), sizeof(TEXT("C:\\Windows\\Fonts\\Inkfree.ttf"))); FcUI_Object_add_font(&mConfig.mObjects, &mFontConfig); for (size_t i = 0; i < 16; i++) { mRadioButton.mX = 250 + i * 32; mRadioButton.mY = 200; mRadioButton.mHeight = 16; mRadioButton.mID = i; mRadioButton.mDefaultColor = 0xff11ffff; mRadioButton.mSelectColor = 0x00335577; mRadioButton.mType = FCUI_OBJECT_BUTTON; mRadioButton.mCallback = pButtonFunc; FCUISAFECALLF(mError, FcUI_Object_add_radioButton(&mConfig.mObjects, &mRadioButton)); } for (size_t i = 0; i < 9; i++) { mButton.mX = 250 + i * 100; mButton.mY = 100; mButton.mHeight = 32; mButton.mWidth = 80; mButton.mFontHeight = 32; mButton.mID = i; mButton.mDefaultColor = 0x55ffffff; mButton.mSelectColor = 0x00116699; mButton.mTextColor = 0xffffffff; mButton.mText[0] = 32 + i; mButton.mText[1] = 'k' + i; mButton.mText[2] = 0; mButton.mType = FCUI_OBJECT_BUTTON; mButton.mCallback = pButtonFunc; FCUISAFECALLF(mError, FcUI_Object_add_button(&mConfig.mObjects, &mButton)); } for (size_t i = 0; i < 2; i++) { mTextView.mX = 250 + i * 250; mTextView.mY = 400; mTextView.mHeight = 200; mTextView.mWidth = 200; mTextView.mFontHeight = 16; mTextView.mID = i; mTextView.mDefaultColor = 0x3366ff33; mTextView.mSelectColor = 0x00116699; mTextView.mTextColor = 0xffffffff; memcpy(mTextView.mText, "Hello, World!", sizeof("Hello, World!")); mTextView.mType = FCUI_OBJECT_TEXTVIEW; mTextView.mCallback = pButtonFunc; FCUISAFECALLF(mError, FcUI_Object_add_textView(&mConfig.mObjects, &mTextView)); } for (size_t i = 0; i < 1; i++) { mSlider.mX = 100; mSlider.mY = 100; mSlider.mHeight = 50; mSlider.mWidth = 150; mSlider.mID = i; mSlider.mMinValue = 0; mSlider.mMaxValue = 10; mSlider.mCurrentValue = 30; mSlider.mDefaultColor = 0x3366ff33; mSlider.mTextColor = 0xffffffff; mSlider.mSelectColor = 0x00116699; mSlider.mType = FCUI_OBJECT_SLIDER; mSlider.mCallback = pButtonFunc; FCUISAFECALLF(mError, FcUI_Object_add_slider(&mConfig.mObjects, &mSlider)); } FcUI_Input_t mInput; mInput.mFunction = &testInput; for (ptrdiff_t i = 0;i < 1; i++){ memset(&mUI, 0, sizeof(mUI)); FCUISAFECALLF(mError, FcUI(&mUI, pPlatform, &mConfig)); FCUISAFECALLF(mError, FcUI_set_Input(&mUI, &mInput)); FCUISAFECALLF(mError, FcUI_setTimer1(&mUI, 1000, pTimer, &mUI)); FCUISAFECALLF(mError, FcUI_dispatch(&mUI)); FCUISAFECALLF(mError, FcUI_free(&mUI)); } FcUI_Object_free(&mConfig.mObjects); gError: //getchar(); return 0; } #endif //_FCUI_TEST_H_