main.cpp 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  1. #include <LibCore/CTimer.h>
  2. #include <LibGUI/GApplication.h>
  3. #include <LibGUI/GBoxLayout.h>
  4. #include <LibGUI/GButton.h>
  5. #include <LibGUI/GCheckBox.h>
  6. #include <LibGUI/GGroupBox.h>
  7. #include <LibGUI/GLabel.h>
  8. #include <LibGUI/GProgressBar.h>
  9. #include <LibGUI/GRadioButton.h>
  10. #include <LibGUI/GScrollBar.h>
  11. #include <LibGUI/GSlider.h>
  12. #include <LibGUI/GSpinBox.h>
  13. #include <LibGUI/GTextBox.h>
  14. #include <LibGUI/GWidget.h>
  15. #include <LibGUI/GWindow.h>
  16. int main(int argc, char** argv)
  17. {
  18. GApplication app(argc, argv);
  19. auto* window = new GWindow;
  20. window->set_rect(100, 100, 320, 620);
  21. window->set_title("Widget Gallery");
  22. auto main_widget = GWidget::construct();
  23. window->set_main_widget(main_widget);
  24. main_widget->set_fill_with_background_color(true);
  25. main_widget->set_layout(make<GBoxLayout>(Orientation::Vertical));
  26. main_widget->layout()->set_margins({ 4, 4, 4, 4 });
  27. auto* checkbox1 = new GCheckBox("GCheckBox 1", main_widget);
  28. (void)checkbox1;
  29. auto* checkbox2 = new GCheckBox("GCheckBox 2", main_widget);
  30. checkbox2->set_enabled(false);
  31. auto* radio1 = new GRadioButton("GRadioButton 1", main_widget);
  32. (void)radio1;
  33. auto* radio2 = new GRadioButton("GRadioButton 2", main_widget);
  34. radio2->set_enabled(false);
  35. auto* button1 = new GButton("GButton 1", main_widget);
  36. (void)button1;
  37. auto* button2 = new GButton("GButton 2", main_widget);
  38. button2->set_enabled(false);
  39. auto progress1 = GProgressBar::construct(main_widget);
  40. auto timer = CTimer::construct(100, [&] {
  41. progress1->set_value(progress1->value() + 1);
  42. if (progress1->value() == progress1->max())
  43. progress1->set_value(progress1->min());
  44. });
  45. auto label1 = GLabel::construct("GLabel 1", main_widget);
  46. (void)label1;
  47. auto label2 = GLabel::construct("GLabel 2", main_widget);
  48. label2->set_enabled(false);
  49. auto textbox1 = new GTextBox(main_widget);
  50. textbox1->set_text("GTextBox 1");
  51. auto textbox2 = new GTextBox(main_widget);
  52. textbox2->set_text("GTextBox 2");
  53. textbox2->set_enabled(false);
  54. auto spinbox1 = GSpinBox::construct(main_widget);
  55. (void)spinbox1;
  56. auto spinbox2 = GSpinBox::construct(main_widget);
  57. spinbox2->set_enabled(false);
  58. auto vertical_slider_container = GWidget::construct(main_widget);
  59. vertical_slider_container->set_size_policy(SizePolicy::Fill, SizePolicy::Fixed);
  60. vertical_slider_container->set_preferred_size(0, 100);
  61. vertical_slider_container->set_layout(make<GBoxLayout>(Orientation::Horizontal));
  62. auto vslider1 = GSlider::construct(Orientation::Vertical, vertical_slider_container);
  63. (void)vslider1;
  64. auto vslider2 = GSlider::construct(Orientation::Vertical, vertical_slider_container);
  65. vslider2->set_enabled(false);
  66. auto vslider3 = GSlider::construct(Orientation::Vertical, vertical_slider_container);
  67. vslider3->set_max(5);
  68. vslider3->set_knob_size_mode(GSlider::KnobSizeMode::Proportional);
  69. auto slider1 = GSlider::construct(Orientation::Horizontal, main_widget);
  70. (void)slider1;
  71. auto slider2 = GSlider::construct(Orientation::Horizontal, main_widget);
  72. slider2->set_enabled(false);
  73. auto slider3 = GSlider::construct(Orientation::Horizontal, main_widget);
  74. slider3->set_max(5);
  75. slider3->set_knob_size_mode(GSlider::KnobSizeMode::Proportional);
  76. auto scrollbar1 = GScrollBar::construct(Orientation::Horizontal, main_widget);
  77. scrollbar1->set_size_policy(SizePolicy::Fill, SizePolicy::Fixed);
  78. scrollbar1->set_preferred_size(0, 16);
  79. scrollbar1->set_min(0);
  80. scrollbar1->set_max(100);
  81. scrollbar1->set_value(50);
  82. auto scrollbar2 = GScrollBar::construct(Orientation::Horizontal, main_widget);
  83. scrollbar2->set_size_policy(SizePolicy::Fill, SizePolicy::Fixed);
  84. scrollbar2->set_preferred_size(0, 16);
  85. scrollbar2->set_enabled(false);
  86. window->show();
  87. return app.exec();
  88. }