ctkRangeSliderTest1.cpp 8.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248
  1. /*=========================================================================
  2. Library: CTK
  3. Copyright (c) Kitware Inc.
  4. All rights reserved.
  5. Distributed under a BSD License. See LICENSE.txt file.
  6. This software is distributed "AS IS" WITHOUT ANY WARRANTY; without even
  7. the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
  8. See the above copyright notice for more information.
  9. =========================================================================*/
  10. // Qt includes
  11. #include <QApplication>
  12. #include <QString>
  13. // CTK includes
  14. #include "ctkRangeSlider.h"
  15. // STD includes
  16. #include <cstdlib>
  17. #include <iostream>
  18. //-----------------------------------------------------------------------------
  19. bool checkSlider(const ctkRangeSlider& slider)
  20. {
  21. return slider.minimum() <= slider.minimumValue() &&
  22. slider.minimumValue() <= slider.maximumValue() &&
  23. slider.maximumValue() <= slider.maximum();
  24. }
  25. //-----------------------------------------------------------------------------
  26. bool checkSlider(const ctkRangeSlider& slider,
  27. int min, int minVal, int maxVal, int max)
  28. {
  29. return slider.minimum() == min &&
  30. slider.minimumValue() == minVal &&
  31. slider.maximumValue() == maxVal &&
  32. slider.maximum() == max;
  33. }
  34. //-----------------------------------------------------------------------------
  35. int ctkRangeSliderTest1(int argc, char * argv [] )
  36. {
  37. QApplication app(argc, argv);
  38. ctkRangeSlider slider;
  39. if (!checkSlider(slider))
  40. {
  41. std::cerr << "ctkRangeSlider:: 1) "
  42. << slider.minimum() << " "
  43. << slider.minimumValue() << " "
  44. << slider.maximumValue() << " "
  45. << slider.maximum() << std::endl;
  46. return EXIT_FAILURE;
  47. }
  48. slider.setMinimum(40);
  49. slider.setMaximum(4000);
  50. slider.setValues(50, 500);
  51. if (!checkSlider(slider, 40, 50, 500, 4000))
  52. {
  53. std::cerr << "ctkRangeSlider:: 2) "
  54. << slider.minimum() << " "
  55. << slider.minimumValue() << " "
  56. << slider.maximumValue() << " "
  57. << slider.maximum() << std::endl;
  58. return EXIT_FAILURE;
  59. }
  60. slider.setValues(700, 60);
  61. if (!checkSlider(slider, 40, 60, 700, 4000))
  62. {
  63. std::cerr << "ctkRangeSlider:: 3) "
  64. << slider.minimum() << " "
  65. << slider.minimumValue() << " "
  66. << slider.maximumValue() << " "
  67. << slider.maximum() << std::endl;
  68. return EXIT_FAILURE;
  69. }
  70. slider.setValues(800, 900);
  71. if (!checkSlider(slider, 40, 800, 900, 4000))
  72. {
  73. std::cerr << "ctkRangeSlider:: 4) "
  74. << slider.minimum() << " "
  75. << slider.minimumValue() << " "
  76. << slider.maximumValue() << " "
  77. << slider.maximum() << std::endl;
  78. return EXIT_FAILURE;
  79. }
  80. slider.setValues(5000, 6000);
  81. if (!checkSlider(slider, 40, 4000, 4000, 4000))
  82. {
  83. std::cerr << "ctkRangeSlider:: 5) "
  84. << slider.minimum() << " "
  85. << slider.minimumValue() << " "
  86. << slider.maximumValue() << " "
  87. << slider.maximum() << std::endl;
  88. return EXIT_FAILURE;
  89. }
  90. slider.setRange(-15, 40);
  91. if (!checkSlider(slider, -15, 40, 40, 40))
  92. {
  93. std::cerr << "ctkRangeSlider:: 6) "
  94. << slider.minimum() << " "
  95. << slider.minimumValue() << " "
  96. << slider.maximumValue() << " "
  97. << slider.maximum() << std::endl;
  98. return EXIT_FAILURE;
  99. }
  100. // nothing happen yet but it would be nice if it moves the 2 values at
  101. // the same time.
  102. slider.triggerAction(QAbstractSlider::SliderSingleStepSub);
  103. if (!checkSlider(slider, -15, 40, 40, 40))
  104. {
  105. std::cerr << "ctkRangeSlider:: 7) "
  106. << slider.minimum() << " "
  107. << slider.minimumValue() << " "
  108. << slider.maximumValue() << " "
  109. << slider.maximum() << std::endl;
  110. return EXIT_FAILURE;
  111. }
  112. slider.setMaximumValue(30);
  113. if (!checkSlider(slider, -15, 30, 30, 40))
  114. {
  115. std::cerr << "ctkRangeSlider:: 8) "
  116. << slider.minimum() << " "
  117. << slider.minimumValue() << " "
  118. << slider.maximumValue() << " "
  119. << slider.maximum() << std::endl;
  120. return EXIT_FAILURE;
  121. }
  122. slider.setMinimumValue(40);
  123. if (!checkSlider(slider, -15, 40, 40, 40))
  124. {
  125. std::cerr << "ctkRangeSlider:: 9) "
  126. << slider.minimum() << " "
  127. << slider.minimumValue() << " "
  128. << slider.maximumValue() << " "
  129. << slider.maximum() << std::endl;
  130. return EXIT_FAILURE;
  131. }
  132. slider.setMinimumValue(-20);
  133. if (!checkSlider(slider, -15, -15, 40, 40))
  134. {
  135. std::cerr << "ctkRangeSlider:: 10) "
  136. << slider.minimum() << " "
  137. << slider.minimumValue() << " "
  138. << slider.maximumValue() << " "
  139. << slider.maximum() << std::endl;
  140. return EXIT_FAILURE;
  141. }
  142. slider.setTracking(false);
  143. slider.setPositions(-5, 30);
  144. if (!checkSlider(slider, -15, -15, 40, 40) ||
  145. slider.minimumPosition() != -5 ||
  146. slider.maximumPosition() != 30)
  147. {
  148. std::cerr << "ctkRangeSlider:: 10) "
  149. << slider.minimum() << " "
  150. << slider.minimumValue() << " "
  151. << slider.maximumValue() << " "
  152. << slider.maximum() << std::endl;
  153. std::cerr << "ctkRangeSlider:: 10) "
  154. << slider.minimumPosition() << " "
  155. << slider.maximumPosition() << std::endl;
  156. return EXIT_FAILURE;
  157. }
  158. slider.setValues(-10, 30);
  159. if (!checkSlider(slider, -15, -10, 30, 40) ||
  160. slider.minimumPosition() != -10 ||
  161. slider.maximumPosition() != 30)
  162. {
  163. std::cerr << "ctkRangeSlider:: 11) "
  164. << slider.minimum() << " "
  165. << slider.minimumValue() << " "
  166. << slider.maximumValue() << " "
  167. << slider.maximum() << std::endl;
  168. std::cerr << "ctkRangeSlider:: 11) "
  169. << slider.minimumPosition() << " "
  170. << slider.maximumPosition() << std::endl;
  171. return EXIT_FAILURE;
  172. }
  173. slider.setMaximumPosition(20);
  174. if (!checkSlider(slider, -15, -10, 30, 40) ||
  175. slider.minimumPosition() != -10 ||
  176. slider.maximumPosition() != 20)
  177. {
  178. std::cerr << "ctkRangeSlider:: 12) "
  179. << slider.minimum() << " "
  180. << slider.minimumValue() << " "
  181. << slider.maximumValue() << " "
  182. << slider.maximum() << std::endl;
  183. std::cerr << "ctkRangeSlider:: 12) "
  184. << slider.minimumPosition() << " "
  185. << slider.maximumPosition() << std::endl;
  186. return EXIT_FAILURE;
  187. }
  188. slider.setMinimumPosition(25);
  189. if (!checkSlider(slider, -15, -10, 30, 40) ||
  190. slider.minimumPosition() != 25 ||
  191. slider.maximumPosition() != 25)
  192. {
  193. std::cerr << "ctkRangeSlider:: 13) "
  194. << slider.minimum() << " "
  195. << slider.minimumValue() << " "
  196. << slider.maximumValue() << " "
  197. << slider.maximum() << std::endl;
  198. std::cerr << "ctkRangeSlider:: 13) "
  199. << slider.minimumPosition() << " "
  200. << slider.maximumPosition() << std::endl;
  201. return EXIT_FAILURE;
  202. }
  203. slider.setTracking(true);
  204. slider.setPositions(0, 10);
  205. if (!checkSlider(slider, -15, 0, 10, 40) ||
  206. slider.minimumPosition() != 0 ||
  207. slider.maximumPosition() != 10)
  208. {
  209. std::cerr << "ctkRangeSlider:: 14) "
  210. << slider.minimum() << " "
  211. << slider.minimumValue() << " "
  212. << slider.maximumValue() << " "
  213. << slider.maximum() << std::endl;
  214. std::cerr << "ctkRangeSlider:: 14) "
  215. << slider.minimumPosition() << " "
  216. << slider.maximumPosition() << std::endl;
  217. return EXIT_FAILURE;
  218. }
  219. slider.setValues(-5, 15);
  220. if (!checkSlider(slider, -15, -5, 15, 40) ||
  221. slider.minimumPosition() != -5 ||
  222. slider.maximumPosition() != 15)
  223. {
  224. std::cerr << "ctkRangeSlider:: 15) "
  225. << slider.minimum() << " "
  226. << slider.minimumValue() << " "
  227. << slider.maximumValue() << " "
  228. << slider.maximum() << std::endl;
  229. std::cerr << "ctkRangeSlider:: 15) "
  230. << slider.minimumPosition() << " "
  231. << slider.maximumPosition() << std::endl;
  232. return EXIT_FAILURE;
  233. }
  234. return EXIT_SUCCESS;
  235. }