diff --git a/Applications/PaintBrush/Makefile b/Applications/PaintBrush/Makefile index 7321b2dea3..260d0c6081 100644 --- a/Applications/PaintBrush/Makefile +++ b/Applications/PaintBrush/Makefile @@ -3,6 +3,7 @@ include ../../Makefile.common OBJS = \ PaintableWidget.o \ PaletteWidget.o \ + ToolboxWidget.o \ main.o APP = PaintBrush diff --git a/Applications/PaintBrush/ToolboxWidget.cpp b/Applications/PaintBrush/ToolboxWidget.cpp new file mode 100644 index 0000000000..8b8ef1410e --- /dev/null +++ b/Applications/PaintBrush/ToolboxWidget.cpp @@ -0,0 +1,36 @@ +#include "ToolboxWidget.h" +#include +#include + +ToolboxWidget::ToolboxWidget(GWidget* parent) + : GFrame(parent) +{ + set_background_color(Color::LightGray); + set_fill_with_background_color(true); + + set_frame_thickness(1); + set_frame_shape(FrameShape::Panel); + set_frame_shadow(FrameShadow::Raised); + + set_size_policy(SizePolicy::Fixed, SizePolicy::Fill); + set_preferred_size({ 48, 0 }); + + set_layout(make(Orientation::Vertical)); + layout()->set_margins({ 4, 4, 4, 4 }); + + auto add_tool = [&] (const StringView& name) { + auto* button = new GButton(name, this); + button->set_size_policy(SizePolicy::Fill, SizePolicy::Fixed); + button->set_preferred_size({ 0, 32 }); + button->set_checkable(true); + button->set_exclusive(true); + }; + + add_tool("Pen"); + add_tool("Buck"); + add_tool("Pick"); +} + +ToolboxWidget::~ToolboxWidget() +{ +} diff --git a/Applications/PaintBrush/ToolboxWidget.h b/Applications/PaintBrush/ToolboxWidget.h new file mode 100644 index 0000000000..514803439e --- /dev/null +++ b/Applications/PaintBrush/ToolboxWidget.h @@ -0,0 +1,13 @@ +#pragma once + +#include + +class ToolboxWidget final : public GFrame { +public: + explicit ToolboxWidget(GWidget* parent); + virtual ~ToolboxWidget() override; + + virtual const char* class_name() const override { return "ToolboxWidget"; } + +private: +}; diff --git a/Applications/PaintBrush/main.cpp b/Applications/PaintBrush/main.cpp index 4489c78dff..9e61c02ffa 100644 --- a/Applications/PaintBrush/main.cpp +++ b/Applications/PaintBrush/main.cpp @@ -1,5 +1,6 @@ #include "PaintableWidget.h" #include "PaletteWidget.h" +#include "ToolboxWidget.h" #include #include #include @@ -13,15 +14,21 @@ int main(int argc, char** argv) auto* window = new GWindow; window->set_title("PaintBrush"); - window->set_rect(100, 100, 600, 434); + window->set_rect(100, 100, 640, 480); - auto* main_widget = new GWidget(nullptr); - window->set_main_widget(main_widget); - main_widget->set_layout(make(Orientation::Vertical)); - main_widget->layout()->set_spacing(0); + auto* horizontal_container = new GWidget(nullptr); + window->set_main_widget(horizontal_container); + horizontal_container->set_layout(make(Orientation::Horizontal)); + horizontal_container->layout()->set_spacing(0); - auto* paintable_widget = new PaintableWidget(main_widget); - auto* palette_widget = new PaletteWidget(*paintable_widget, main_widget); + auto* toolbox_widget = new ToolboxWidget(horizontal_container); + + auto* vertical_container = new GWidget(horizontal_container); + vertical_container->set_layout(make(Orientation::Vertical)); + vertical_container->layout()->set_spacing(0); + + auto* paintable_widget = new PaintableWidget(vertical_container); + auto* palette_widget = new PaletteWidget(*paintable_widget, vertical_container); window->show();