Initialize the project with basic code
This commit is contained in:
parent
a228617747
commit
3278c54743
3
.gitignore
vendored
Normal file
3
.gitignore
vendored
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
build/
|
||||||
|
compile_commands.json
|
||||||
|
.ccls-cache/
|
32
CMakeLists.txt
Normal file
32
CMakeLists.txt
Normal file
|
@ -0,0 +1,32 @@
|
||||||
|
cmake_minimum_required(VERSION 3.26.3)
|
||||||
|
|
||||||
|
include(FetchContent)
|
||||||
|
|
||||||
|
set(FETCHCONTENT_UPDATES_DISCONNECTED TRUE)
|
||||||
|
FetchContent_Declare(ftxui
|
||||||
|
GIT_REPOSITORY https://github.com/ArthurSonzogni/ftxui
|
||||||
|
GIT_TAG v3.0.0
|
||||||
|
)
|
||||||
|
|
||||||
|
FetchContent_GetProperties(ftxui)
|
||||||
|
if(NOT ftxui_POPULATED)
|
||||||
|
FetchContent_Populate(ftxui)
|
||||||
|
add_subdirectory(${ftxui_SOURCE_DIR} ${ftxui_BINARY_DIR} EXCLUDE_FROM_ALL)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
# ------------------------------------------------------------------------------
|
||||||
|
project(vis
|
||||||
|
VERSION 1.0
|
||||||
|
DESCRIPTION "Vi Scheduler (vis) is a simple TUI program built for managing your schedules in a calendar-like grid."
|
||||||
|
LANGUAGES CXX)
|
||||||
|
|
||||||
|
set(CMAKE_EXPORT_COMPILE_COMMANDS 1)
|
||||||
|
|
||||||
|
add_executable(vis src/main.cpp)
|
||||||
|
target_include_directories(vis PRIVATE src)
|
||||||
|
|
||||||
|
target_link_libraries(vis
|
||||||
|
PRIVATE ftxui::screen
|
||||||
|
PRIVATE ftxui::dom
|
||||||
|
PRIVATE ftxui::component # Not needed for this example.
|
||||||
|
)
|
39
src/main.cpp
Normal file
39
src/main.cpp
Normal file
|
@ -0,0 +1,39 @@
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <iostream>
|
||||||
|
#include <ftxui/dom/elements.hpp>
|
||||||
|
#include <ftxui/component/screen_interactive.hpp>
|
||||||
|
#include <ftxui/component/component.hpp>
|
||||||
|
#include <ftxui/component/event.hpp>
|
||||||
|
|
||||||
|
using namespace std;
|
||||||
|
using namespace ftxui;
|
||||||
|
|
||||||
|
int main() {
|
||||||
|
|
||||||
|
auto screen = ScreenInteractive::FitComponent();
|
||||||
|
|
||||||
|
auto component = Renderer([&screen] {
|
||||||
|
auto make_box = [](int x, int y, int i) {
|
||||||
|
string title = to_string(i);
|
||||||
|
return window(text(""), text(title) | hcenter | size(WIDTH, EQUAL, x) | size(HEIGHT, EQUAL, y));
|
||||||
|
};
|
||||||
|
|
||||||
|
Element calendar = hflow({
|
||||||
|
make_box(12,7,0),
|
||||||
|
make_box(7,7,1),
|
||||||
|
make_box(7,7,2),
|
||||||
|
make_box(7,7,3),
|
||||||
|
make_box(7,7,4),
|
||||||
|
make_box(7,7,5),
|
||||||
|
make_box(7,7,6),
|
||||||
|
make_box(7,7,7)
|
||||||
|
});
|
||||||
|
|
||||||
|
return window(text("Vi Scheduler"), vbox(calendar));
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
screen.Loop(component);
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user