Layout.C 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193
  1. /*
  2. * Copyright (C) 2008 Emweb bvba
  3. *
  4. * See the LICENSE file for terms of use.
  5. */
  6. #include "DeferredWidget.h"
  7. #include "Layout.h"
  8. #include "TopicTemplate.h"
  9. Layout::Layout()
  10. : TopicWidget()
  11. {
  12. addText(tr("layout-intro"), this);
  13. }
  14. void Layout::populateSubMenu(Wt::WMenu *menu)
  15. {
  16. menu->addItem("Containers", containers())->setPathComponent("");
  17. menu->addItem("HTML Templates",
  18. deferCreate(boost::bind
  19. (&Layout::templates, this)));
  20. menu->addItem("Text",
  21. deferCreate(boost::bind
  22. (&Layout::text, this)));
  23. menu->addItem("Grouping widgets",
  24. deferCreate(boost::bind
  25. (&Layout::grouping, this)));
  26. menu->addItem("Layout managers",
  27. deferCreate(boost::bind
  28. (&Layout::layoutManagers, this)));
  29. menu->addItem("Dialogs",
  30. deferCreate(boost::bind
  31. (&Layout::dialogs, this)));
  32. menu->addItem("Images",
  33. deferCreate(boost::bind
  34. (&Layout::images, this)));
  35. menu->addItem("CSS",
  36. deferCreate(boost::bind
  37. (&Layout::css, this)));
  38. menu->addItem("Themes",
  39. deferCreate(boost::bind
  40. (&Layout::themes, this)));
  41. }
  42. #include "examples/Container.cpp"
  43. Wt::WWidget *Layout::containers()
  44. {
  45. Wt::WTemplate *result = new TopicTemplate("layout-Containers");
  46. result->bindWidget("Container", Container());
  47. return result;
  48. }
  49. #include "examples/Template.cpp"
  50. Wt::WWidget *Layout::templates()
  51. {
  52. Wt::WTemplate *result = new TopicTemplate("layout-Template");
  53. result->bindWidget("Template", Template());
  54. // Show the XML-template as text
  55. result->bindString("template-text", reindent(tr("WTemplate-example")),
  56. Wt::PlainText);
  57. return result;
  58. }
  59. #include "examples/TextPlain.cpp"
  60. #include "examples/TextXHTML.cpp"
  61. #include "examples/TextXSS.cpp"
  62. #include "examples/TextEvents.cpp"
  63. #include "examples/TextToolTip.cpp"
  64. #include "examples/TextDeferredToolTip.cpp"
  65. Wt::WWidget *Layout::text()
  66. {
  67. Wt::WTemplate *result = new TopicTemplate("layout-Text");
  68. result->bindWidget("TextPlain", TextPlain());
  69. result->bindWidget("TextXHTML", TextXHTML());
  70. result->bindWidget("TextXSS", TextXSS());
  71. result->bindWidget("TextEvents", TextEvents());
  72. result->bindWidget("TextToolTip", TextToolTip());
  73. result->bindWidget("TextDeferredToolTip", TextDeferredToolTip());
  74. return result;
  75. }
  76. #include "examples/GroupBox.cpp"
  77. #include "examples/PanelNoTitle.cpp"
  78. #include "examples/Panel.cpp"
  79. #include "examples/PanelCollapsible.cpp"
  80. Wt::WWidget *Layout::grouping()
  81. {
  82. Wt::WTemplate *result = new TopicTemplate("layout-Grouping");
  83. result->bindWidget("GroupBox", GroupBox());
  84. result->bindWidget("PanelNoTitle", PanelNoTitle());
  85. result->bindWidget("Panel", Panel());
  86. result->bindWidget("PanelCollapsible", PanelCollapsible());
  87. return result;
  88. }
  89. #include "examples/HBoxLayout.cpp"
  90. #include "examples/HBoxLayoutStretch.cpp"
  91. #include "examples/VBoxLayout.cpp"
  92. #include "examples/VBoxLayoutStretch.cpp"
  93. #include "examples/NestedLayout.cpp"
  94. #include "examples/GridLayout.cpp"
  95. #include "examples/BorderLayout.cpp"
  96. Wt::WWidget *Layout::layoutManagers()
  97. {
  98. Wt::WTemplate *result = new TopicTemplate("layout-Managers");
  99. result->bindWidget("HBoxLayout", HBoxLayout());
  100. result->bindWidget("HBoxLayoutStretch", HBoxLayoutStretch());
  101. result->bindWidget("VBoxLayout", VBoxLayout());
  102. result->bindWidget("VBoxLayoutStretch", VBoxLayoutStretch());
  103. result->bindWidget("NestedLayout", NestedLayout());
  104. result->bindWidget("GridLayout", GridLayout());
  105. result->bindWidget("BorderLayout", BorderLayout());
  106. return result;
  107. }
  108. #include "examples/Dialog.cpp"
  109. #include "examples/MessageBox.cpp"
  110. #include "examples/MessageBoxSync.cpp"
  111. Wt::WWidget *Layout::dialogs()
  112. {
  113. Wt::WTemplate *result = new TopicTemplate("layout-Dialogs");
  114. result->bindWidget("Dialog", Dialog());
  115. result->bindWidget("MessageBox", MessageBox());
  116. result->bindWidget("MessageBoxSync", MessageBoxSync());
  117. return result;
  118. }
  119. #include "examples/Image.cpp"
  120. #include "examples/ImageArea.cpp"
  121. Wt::WWidget *Layout::images()
  122. {
  123. Wt::WTemplate *result = new TopicTemplate("layout-Images");
  124. result->bindWidget("Image", Image());
  125. result->bindWidget("ImageArea", ImageArea());
  126. return result;
  127. }
  128. #include "examples/CSS.cpp"
  129. Wt::WWidget *Layout::css()
  130. {
  131. Wt::WTemplate *result = new TopicTemplate("layout-CSS");
  132. result->bindWidget("CSS", CSS());
  133. // Show the style sheet as text
  134. result->bindString("CSS-example-style", reindent(tr("CSS-example-style")),
  135. Wt::PlainText);
  136. return result;
  137. }
  138. Wt::WWidget *Layout::themes()
  139. {
  140. Wt::WTemplate *result = new TopicTemplate("layout-Themes");
  141. // Show the source code only for the theme example.
  142. result->bindString("Theme", reindent(tr("theme")), Wt::PlainText);
  143. return result;
  144. }