123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270 |
- /*=========================================================================
- Library: CTK
- Copyright (c) Kitware Inc.
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
- http://www.commontk.org/LICENSE
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
- =========================================================================*/
- // Qt includes
- #include <QApplication>
- #include <QString>
- #include <QTimer>
- // CTK includes
- #include "ctkRangeSlider.h"
- // STD includes
- #include <cstdlib>
- #include <iostream>
- //-----------------------------------------------------------------------------
- bool checkSlider(const ctkRangeSlider& slider)
- {
- return slider.minimum() <= slider.minimumValue() &&
- slider.minimumValue() <= slider.maximumValue() &&
- slider.maximumValue() <= slider.maximum();
- }
- //-----------------------------------------------------------------------------
- bool checkSlider(const ctkRangeSlider& slider,
- int min, int minVal, int maxVal, int max)
- {
- return slider.minimum() == min &&
- slider.minimumValue() == minVal &&
- slider.maximumValue() == maxVal &&
- slider.maximum() == max;
- }
- //-----------------------------------------------------------------------------
- int ctkRangeSliderTest1(int argc, char * argv [] )
- {
- QApplication app(argc, argv);
- ctkRangeSlider slider;
- if (!checkSlider(slider))
- {
- std::cerr << "ctkRangeSlider:: 1) "
- << slider.minimum() << " "
- << slider.minimumValue() << " "
- << slider.maximumValue() << " "
- << slider.maximum() << std::endl;
- return EXIT_FAILURE;
- }
- slider.setMinimum(40);
- slider.setMaximum(4000);
- slider.setValues(50, 500);
- if (!checkSlider(slider, 40, 50, 500, 4000))
- {
- std::cerr << "ctkRangeSlider:: 2) "
- << slider.minimum() << " "
- << slider.minimumValue() << " "
- << slider.maximumValue() << " "
- << slider.maximum() << std::endl;
- return EXIT_FAILURE;
- }
- slider.setValues(700, 60);
- if (!checkSlider(slider, 40, 60, 700, 4000))
- {
- std::cerr << "ctkRangeSlider:: 3) "
- << slider.minimum() << " "
- << slider.minimumValue() << " "
- << slider.maximumValue() << " "
- << slider.maximum() << std::endl;
- return EXIT_FAILURE;
- }
- slider.setValues(800, 900);
- if (!checkSlider(slider, 40, 800, 900, 4000))
- {
- std::cerr << "ctkRangeSlider:: 4) "
- << slider.minimum() << " "
- << slider.minimumValue() << " "
- << slider.maximumValue() << " "
- << slider.maximum() << std::endl;
- return EXIT_FAILURE;
- }
- slider.setValues(5000, 6000);
- if (!checkSlider(slider, 40, 4000, 4000, 4000))
- {
- std::cerr << "ctkRangeSlider:: 5) "
- << slider.minimum() << " "
- << slider.minimumValue() << " "
- << slider.maximumValue() << " "
- << slider.maximum() << std::endl;
- return EXIT_FAILURE;
- }
- slider.setRange(-15, 40);
- if (!checkSlider(slider, -15, 40, 40, 40))
- {
- std::cerr << "ctkRangeSlider:: 6) "
- << slider.minimum() << " "
- << slider.minimumValue() << " "
- << slider.maximumValue() << " "
- << slider.maximum() << std::endl;
- return EXIT_FAILURE;
- }
- // nothing happen yet but it would be nice if it moves the 2 values at
- // the same time.
- slider.triggerAction(QAbstractSlider::SliderSingleStepSub);
- if (!checkSlider(slider, -15, 40, 40, 40))
- {
- std::cerr << "ctkRangeSlider:: 7) "
- << slider.minimum() << " "
- << slider.minimumValue() << " "
- << slider.maximumValue() << " "
- << slider.maximum() << std::endl;
- return EXIT_FAILURE;
- }
- slider.setMaximumValue(30);
- if (!checkSlider(slider, -15, 30, 30, 40))
- {
- std::cerr << "ctkRangeSlider:: 8) "
- << slider.minimum() << " "
- << slider.minimumValue() << " "
- << slider.maximumValue() << " "
- << slider.maximum() << std::endl;
- return EXIT_FAILURE;
- }
- slider.setMinimumValue(40);
- if (!checkSlider(slider, -15, 40, 40, 40))
- {
- std::cerr << "ctkRangeSlider:: 9) "
- << slider.minimum() << " "
- << slider.minimumValue() << " "
- << slider.maximumValue() << " "
- << slider.maximum() << std::endl;
- return EXIT_FAILURE;
- }
- slider.setMinimumValue(-20);
- if (!checkSlider(slider, -15, -15, 40, 40))
- {
- std::cerr << "ctkRangeSlider:: 10) "
- << slider.minimum() << " "
- << slider.minimumValue() << " "
- << slider.maximumValue() << " "
- << slider.maximum() << std::endl;
- return EXIT_FAILURE;
- }
- slider.setTracking(false);
- slider.setPositions(-5, 30);
- if (!checkSlider(slider, -15, -15, 40, 40) ||
- slider.minimumPosition() != -5 ||
- slider.maximumPosition() != 30)
- {
- std::cerr << "ctkRangeSlider:: 10) "
- << slider.minimum() << " "
- << slider.minimumValue() << " "
- << slider.maximumValue() << " "
- << slider.maximum() << std::endl;
- std::cerr << "ctkRangeSlider:: 10) "
- << slider.minimumPosition() << " "
- << slider.maximumPosition() << std::endl;
- return EXIT_FAILURE;
- }
- slider.setValues(-10, 30);
- if (!checkSlider(slider, -15, -10, 30, 40) ||
- slider.minimumPosition() != -10 ||
- slider.maximumPosition() != 30)
- {
- std::cerr << "ctkRangeSlider:: 11) "
- << slider.minimum() << " "
- << slider.minimumValue() << " "
- << slider.maximumValue() << " "
- << slider.maximum() << std::endl;
- std::cerr << "ctkRangeSlider:: 11) "
- << slider.minimumPosition() << " "
- << slider.maximumPosition() << std::endl;
- return EXIT_FAILURE;
- }
- slider.setMaximumPosition(20);
- if (!checkSlider(slider, -15, -10, 30, 40) ||
- slider.minimumPosition() != -10 ||
- slider.maximumPosition() != 20)
- {
- std::cerr << "ctkRangeSlider:: 12) "
- << slider.minimum() << " "
- << slider.minimumValue() << " "
- << slider.maximumValue() << " "
- << slider.maximum() << std::endl;
- std::cerr << "ctkRangeSlider:: 12) "
- << slider.minimumPosition() << " "
- << slider.maximumPosition() << std::endl;
- return EXIT_FAILURE;
- }
- slider.setMinimumPosition(25);
- if (!checkSlider(slider, -15, -10, 30, 40) ||
- slider.minimumPosition() != 25 ||
- slider.maximumPosition() != 25)
- {
- std::cerr << "ctkRangeSlider:: 13) "
- << slider.minimum() << " "
- << slider.minimumValue() << " "
- << slider.maximumValue() << " "
- << slider.maximum() << std::endl;
- std::cerr << "ctkRangeSlider:: 13) "
- << slider.minimumPosition() << " "
- << slider.maximumPosition() << std::endl;
- return EXIT_FAILURE;
- }
- slider.setTracking(true);
- slider.setPositions(0, 10);
- if (!checkSlider(slider, -15, 0, 10, 40) ||
- slider.minimumPosition() != 0 ||
- slider.maximumPosition() != 10)
- {
- std::cerr << "ctkRangeSlider:: 14) "
- << slider.minimum() << " "
- << slider.minimumValue() << " "
- << slider.maximumValue() << " "
- << slider.maximum() << std::endl;
- std::cerr << "ctkRangeSlider:: 14) "
- << slider.minimumPosition() << " "
- << slider.maximumPosition() << std::endl;
- return EXIT_FAILURE;
- }
- slider.setValues(-5, 15);
- if (!checkSlider(slider, -15, -5, 15, 40) ||
- slider.minimumPosition() != -5 ||
- slider.maximumPosition() != 15)
- {
- std::cerr << "ctkRangeSlider:: 15) "
- << slider.minimum() << " "
- << slider.minimumValue() << " "
- << slider.maximumValue() << " "
- << slider.maximum() << std::endl;
- std::cerr << "ctkRangeSlider:: 15) "
- << slider.minimumPosition() << " "
- << slider.maximumPosition() << std::endl;
- return EXIT_FAILURE;
- }
- slider.setSymmetricMoves(true);
-
- if (slider.symmetricMoves() != true)
- {
- std::cerr << "ctkRangeSlider::setSymmetricMoves failed" << std::endl;
- return EXIT_FAILURE;
- }
- slider.show();
- if (argc < 2 || QString(argv[1]) != "-I" )
- {
- QTimer::singleShot(200, &app, SLOT(quit()));
- }
- return app.exec();
- }
|