1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-25 19:37:35 +00:00

HelloWorld: Add a simple "Hello World!" app showing the basics.

This also introduces a Demos/ directory where I hope to add cool things.
This commit is contained in:
Andreas Kling 2019-05-08 01:18:36 +02:00
parent 1930d48a38
commit eaf03d4ddb
5 changed files with 65 additions and 0 deletions

3
Demos/HelloWorld/.gitignore vendored Normal file
View file

@ -0,0 +1,3 @@
HelloWorld
*.o
*.d

22
Demos/HelloWorld/Makefile Normal file
View file

@ -0,0 +1,22 @@
include ../../Makefile.common
OBJS = \
main.o
APP = HelloWorld
DEFINES += -DUSERLAND
all: $(APP)
$(APP): $(OBJS)
$(LD) -o $(APP) $(LDFLAGS) $(OBJS) -lgui -lcore -lc
.cpp.o:
@echo "CXX $<"; $(CXX) $(CXXFLAGS) -o $@ -c $<
-include $(OBJS:%.o=%.d)
clean:
@echo "CLEAN"; rm -f $(APPS) $(OBJS) *.d

37
Demos/HelloWorld/main.cpp Normal file
View file

@ -0,0 +1,37 @@
#include <LibGUI/GApplication.h>
#include <LibGUI/GWindow.h>
#include <LibGUI/GWidget.h>
#include <LibGUI/GLabel.h>
#include <LibGUI/GButton.h>
#include <LibGUI/GBoxLayout.h>
int main(int argc, char** argv)
{
GApplication app(argc, argv);
auto* window = new GWindow;
window->set_rect(100, 100, 240, 160);
window->set_title("Hello World!");
auto* main_widget = new GWidget;
window->set_main_widget(main_widget);
main_widget->set_fill_with_background_color(true);
main_widget->set_background_color(Color::White);
main_widget->set_layout(make<GBoxLayout>(Orientation::Vertical));
main_widget->layout()->set_margins({ 4, 4, 4, 4 });
auto* label = new GLabel(main_widget);
label->set_text("Hello World!");
auto* button = new GButton(main_widget);
button->set_caption("Good-bye");
button->set_size_policy(SizePolicy::Fill, SizePolicy::Fixed);
button->set_preferred_size({ 0, 20 });
button->on_click = [&] (GButton&) {
app.quit();
};
window->show();
return app.exec();
}

View file

@ -48,6 +48,8 @@ $make_cmd -C ../Games/Snake clean && \
$make_cmd -C ../Games/Snake && \ $make_cmd -C ../Games/Snake && \
$make_cmd -C ../Shell clean && \ $make_cmd -C ../Shell clean && \
$make_cmd -C ../Shell && \ $make_cmd -C ../Shell && \
$make_cmd -C ../Demos/HelloWorld clean && \
$make_cmd -C ../Demos/HelloWorld && \
$make_cmd clean &&\ $make_cmd clean &&\
$make_cmd && \ $make_cmd && \
sudo ./sync.sh sudo ./sync.sh

View file

@ -78,6 +78,7 @@ ln -s Snake mnt/bin/sn
cp -v ../Shell/Shell mnt/bin/Shell cp -v ../Shell/Shell mnt/bin/Shell
ln -s Shell mnt/bin/sh ln -s Shell mnt/bin/sh
cp -v kernel.map mnt/ cp -v kernel.map mnt/
cp -v ../Demos/HelloWorld/HelloWorld mnt/bin/HelloWorld
# Run local sync script, if it exists # Run local sync script, if it exists
if [ -f sync-local.sh ]; then if [ -f sync-local.sh ]; then