feat: c++20 support, and compiler macros for appname and title

This commit is contained in:
hexlocation 2025-02-08 11:07:30 +00:00
parent 0ff2dae233
commit d0f6bb3480
2 changed files with 9 additions and 4 deletions

View file

@ -9,6 +9,10 @@
#include <String.h> #include <String.h>
#include <StringView.h> #include <StringView.h>
#include <GroupLayoutBuilder.h> #include <GroupLayoutBuilder.h>
#include <format>
#define APP_NAME "Renga"
#define APP_AUTHOR "hex_andre"
// quick and dirty function to quickly make text labels // quick and dirty function to quickly make text labels
BStringView *MakeText(const char* text) BStringView *MakeText(const char* text)
@ -16,7 +20,7 @@ BStringView *MakeText(const char* text)
return new BStringView("rstr", text); return new BStringView("rstr", text);
} }
App::App(void) : BApplication("application/x-vnd.hex-Renga") App::App(void) : BApplication(std::format("application/x-vnd.{}-{}", APP_AUTHOR, APP_NAME).c_str())
{ {
// Initialize BRect frame for window // Initialize BRect frame for window
BRect frame(100, 100, 500, 400); BRect frame(100, 100, 500, 400);
@ -24,7 +28,7 @@ App::App(void) : BApplication("application/x-vnd.hex-Renga")
// Initialize parent group for all UI elements to sit in. This is so they all get grouped nicely together // Initialize parent group for all UI elements to sit in. This is so they all get grouped nicely together
BGroupLayout *pGroup = new BGroupLayout(B_HORIZONTAL); BGroupLayout *pGroup = new BGroupLayout(B_HORIZONTAL);
// Create window // Create window
BWindow *window = new BWindow(frame, "Hello World!", B_TITLED_WINDOW, B_QUIT_ON_WINDOW_CLOSE); BWindow *window = new BWindow(frame, std::format("{} by {}", APP_NAME, APP_AUTHOR).c_str(), B_TITLED_WINDOW, B_QUIT_ON_WINDOW_CLOSE);
// Set window layout to parent group created earlier // Set window layout to parent group created earlier
window->SetLayout(pGroup); window->SetLayout(pGroup);

View file

@ -1,10 +1,11 @@
BINARY=renga BINARY=renga
CPP=g++ CPP=clang
FLAGS=-lbe -std=c++20 -lstdc++
all: build all: build
build: build:
$(CPP) App.cpp -o $(BINARY) -lbe $(CPP) App.cpp -o $(BINARY) $(FLAGS)
test: build test: build
./renga ./renga