{"id":13589473,"url":"https://github.com/MaddyOff/ue4-canvas-gui","last_synced_at":"2025-04-08T09:32:59.509Z","repository":{"id":38070091,"uuid":"358156259","full_name":"MaddyOff/ue4-canvas-gui","owner":"MaddyOff","description":"It's a simple Canvas GUI for Unreal Engine 4 with mouse operation","archived":false,"fork":false,"pushed_at":"2021-04-15T08:25:32.000Z","size":1284,"stargazers_count":128,"open_issues_count":2,"forks_count":28,"subscribers_count":3,"default_branch":"main","last_synced_at":"2024-11-06T09:39:45.557Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/MaddyOff.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2021-04-15T06:47:11.000Z","updated_at":"2024-10-30T17:50:25.000Z","dependencies_parsed_at":"2022-09-13T06:50:42.747Z","dependency_job_id":null,"html_url":"https://github.com/MaddyOff/ue4-canvas-gui","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MaddyOff%2Fue4-canvas-gui","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MaddyOff%2Fue4-canvas-gui/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MaddyOff%2Fue4-canvas-gui/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MaddyOff%2Fue4-canvas-gui/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/MaddyOff","download_url":"https://codeload.github.com/MaddyOff/ue4-canvas-gui/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247814230,"owners_count":21000524,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-08-01T16:00:30.608Z","updated_at":"2025-04-08T09:32:58.782Z","avatar_url":"https://github.com/MaddyOff.png","language":"C++","funding_links":[],"categories":["UI","Game Development"],"sub_categories":["Unreal Engine: Resources"],"readme":"# ue4-canvas-gui\n\n## It's a simple Canvas GUI for Unreal Engine 4 with mouse operation.\n\nIncluded elements:\u003cbr\u003e\nRendering Text (left/center);\u003cbr\u003e\nRendering Rects;\u003cbr\u003e\nRendering Circles (filled and not);\u003cbr\u003e\nButton, Slider, Checkbox, Combobox, Hotkeys and ColorPicker.\u003cbr\u003e\n\u003cbr\u003e\nImplemented a simple post-render system to draw on top of menu and all.\u003cbr\u003e\n\u003cbr\u003e\n## Screenshots with default style:\u003cbr\u003e\n![EU4 GUI](screenshots/canvas1.jpg \"\")\n \n![EU4 GUI](screenshots/canvas2.jpg \"\")\n \n![EU4 GUI](screenshots/canvas3.jpg \"\")\n \nIngame render\n![EU4 GUI](screenshots/canvas4.jpg \"\")\n\n## Small \"How to use\" guide:\u003cbr\u003e\nFirst you need get **UCanvas** from game.\u003cbr\u003e\nAfter it you can draw like this:\u003cbr\u003e\n\n```cpp\n//I'll show you with an example Post Render Hook\nvoid PostRenderHook(UGameViewportClient* viewport, UCanvas* canvas)\n{\n\tZeroGUI::SetupCanvas(canvas);\n\tMenu::Tick();\n}\n\n//Menu.h\nvoid Tick()\n{\n\tZeroGUI::Input::Handle();\n\t\n\tstatic bool menu_opened = false;\n\tif (GetAsyncKeyState(VK_F2) \u0026 1) menu_opened = !menu_opened; //Our menu key\n\n\tif (ZeroGUI::Window(\"Superior UE4 GUI\", \u0026pos, FVector2D{ 500.0f, 400.0f }, menu_opened))\n\t{\n\t\t//Simple Tabs\n\t\tstatic int tab = 0;\n\t\tif (ZeroGUI::ButtonTab(\"Tab 1\", FVector2D{ 110, 25 }, tab == 0)) tab = 0;\n\t\tif (ZeroGUI::ButtonTab(\"Tab 2\", FVector2D{ 110, 25 }, tab == 1)) tab = 1;\n\t\tif (ZeroGUI::ButtonTab(\"Tab 3\", FVector2D{ 110, 25 }, tab == 2)) tab = 2;\n\t\tif (ZeroGUI::ButtonTab(\"Tab 4\", FVector2D{ 110, 25 }, tab == 3)) tab = 3;\n\t\tZeroGUI::NextColumn(130.0f);\n\t\t//\n\t\t\n\t\t//Some Elements\n\t\tstatic bool text_check = false;\n\t\tstatic float text_slider = 15.0f;\n\t\tstatic int test_hotkey = 0x2;\n\t\tstatic FLinearColor test_color{ 0.0f, 0.0f, 1.0f, 1.0f };\n\n\t\tZeroGUI::Checkbox(\"Test Checkbox\", \u0026text_check);\n\t\tZeroGUI::SliderFloat(\"Test Slider\", \u0026text_slider, 0.0f, 180.0f);\n\t\tZeroGUI::Hotkey(\"Test Hotkey\", FVector2D{ 80, 25 }, \u0026test_hotkey);\n\n\t\tZeroGUI::Text(\"Left aligned text!\");\n\t\tZeroGUI::Text(\"Outline and Center aligned text!\", true, true);\n\n\t\t//Element with padding\n\t\tZeroGUI::PushNextElementY(50.0f);\n\t\tZeroGUI::Combobox(\"Combobox\", FVector2D{ 100, 25 }, \u0026test_number, \"None\", \"First\", \"Second\", \"Third\", NULL); //NULL at end is required!\n\t\tZeroGUI::SameLine();//inline items\n\t\tif (ZeroGUI::Button(\"It's a Button!\", FVector2D{ 100, 25 })) { /*clicked!*/ }\n\n\t\t//Color Picker\n\t\tZeroGUI::ColorPicker(\"Color Picker\", \u0026test_color);\n\t}\n\tZeroGUI::Render();//Custom Render. I use it for drawing Combobox and ColorPicker over the menu\n\tZeroGUI::Draw_Cursor(menu_opened);\n}\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FMaddyOff%2Fue4-canvas-gui","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FMaddyOff%2Fue4-canvas-gui","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FMaddyOff%2Fue4-canvas-gui/lists"}