main.cpp 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. #include <LibGUI/GWindow.h>
  2. #include <LibGUI/GWidget.h>
  3. #include <LibGUI/GBoxLayout.h>
  4. #include <LibGUI/GApplication.h>
  5. #include <LibGUI/GStatusBar.h>
  6. #include <LibGUI/GToolBar.h>
  7. #include <LibGUI/GMenuBar.h>
  8. #include <LibGUI/GTextEditor.h>
  9. #include <LibGUI/GAction.h>
  10. #include <LibGUI/GFontDatabase.h>
  11. #include <LibCore/CFile.h>
  12. #include <AK/StringBuilder.h>
  13. #include "VBForm.h"
  14. #include "VBWidget.h"
  15. #include <unistd.h>
  16. #include <stdio.h>
  17. #include <signal.h>
  18. #include <fcntl.h>
  19. static GWindow* make_toolbox_window();
  20. int main(int argc, char** argv)
  21. {
  22. GApplication app(argc, argv);
  23. auto* form1 = new VBForm("Form1");
  24. auto menubar = make<GMenuBar>();
  25. auto app_menu = make<GMenu>("Visual Builder");
  26. app_menu->add_action(GAction::create("Quit", { Mod_Alt, Key_F4 }, [] (const GAction&) {
  27. GApplication::the().quit(0);
  28. return;
  29. }));
  30. menubar->add_menu(move(app_menu));
  31. auto file_menu = make<GMenu>("File");
  32. menubar->add_menu(move(file_menu));
  33. auto edit_menu = make<GMenu>("Edit");
  34. menubar->add_menu(move(edit_menu));
  35. auto help_menu = make<GMenu>("Help");
  36. help_menu->add_action(GAction::create("About", [] (const GAction&) {
  37. dbgprintf("FIXME: Implement Help/About\n");
  38. }));
  39. menubar->add_menu(move(help_menu));
  40. app.set_menubar(move(menubar));
  41. auto* window = new GWindow;
  42. window->set_title(form1->name());
  43. window->set_rect(120, 200, 640, 400);
  44. window->set_main_widget(form1);
  45. window->set_should_exit_event_loop_on_close(true);
  46. window->show();
  47. auto* toolbox = make_toolbox_window();
  48. toolbox->show();
  49. return app.exec();
  50. }
  51. GWindow* make_toolbox_window()
  52. {
  53. auto* window = new GWindow;
  54. window->set_title("Widgets");
  55. window->set_rect(20, 200, 80, 300);
  56. auto* widget = new GWidget;
  57. widget->set_fill_with_background_color(true);
  58. window->set_main_widget(widget);
  59. return window;
  60. }