main.cpp 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. /*
  2. * Copyright (c) 2019-2020, Jesse Buhagiar <jooster669@gmail.com>
  3. *
  4. * SPDX-License-Identifier: BSD-2-Clause
  5. */
  6. #include "DisplaySettings.h"
  7. #include <LibGUI/Action.h>
  8. #include <LibGUI/Application.h>
  9. #include <LibGUI/BoxLayout.h>
  10. #include <LibGUI/Icon.h>
  11. #include <LibGUI/Menu.h>
  12. #include <LibGUI/Menubar.h>
  13. #include <LibGUI/TabWidget.h>
  14. #include <LibGUI/Window.h>
  15. #include <LibGfx/Bitmap.h>
  16. #include <stdio.h>
  17. #include <unistd.h>
  18. int main(int argc, char** argv)
  19. {
  20. if (pledge("stdio thread recvfd sendfd rpath cpath wpath unix", nullptr) < 0) {
  21. perror("pledge");
  22. return 1;
  23. }
  24. auto app = GUI::Application::construct(argc, argv);
  25. if (pledge("stdio thread recvfd sendfd rpath cpath wpath", nullptr) < 0) {
  26. perror("pledge");
  27. return 1;
  28. }
  29. auto app_icon = GUI::Icon::default_icon("app-display-settings");
  30. // Let's create the tab pane that we'll hook our widgets up to :^)
  31. auto tab_widget = GUI::TabWidget::construct();
  32. tab_widget->add_tab<DisplaySettingsWidget>("Display Settings");
  33. tab_widget->set_fill_with_background_color(true); // No black backgrounds!
  34. auto window = GUI::Window::construct();
  35. dbgln("main window: {}", window);
  36. window->set_title("Display Settings");
  37. window->resize(360, 410);
  38. window->set_resizable(false);
  39. window->set_main_widget(tab_widget.ptr());
  40. window->set_icon(app_icon.bitmap_for_size(16));
  41. auto menubar = GUI::Menubar::construct();
  42. auto& file_menu = menubar->add_menu("&File");
  43. file_menu.add_action(GUI::CommonActions::make_quit_action([&](const GUI::Action&) {
  44. app->quit();
  45. }));
  46. auto& help_menu = menubar->add_menu("&Help");
  47. help_menu.add_action(GUI::CommonActions::make_about_action("Display Settings", app_icon, window));
  48. window->set_menubar(move(menubar));
  49. window->show();
  50. return app->exec();
  51. }