7 #ifndef __IPREGOPTIONS_HPP__
8 #define __IPREGOPTIONS_HPP__
41 const std::string& value,
42 const std::string& description
45 description_(description)
65 const std::string& name,
66 const std::string& short_description,
67 const std::string& long_description,
68 const std::string& registering_category,
72 short_description_(short_description),
73 long_description_(long_description),
74 registering_category_(registering_category),
86 short_description_(copy.short_description_),
87 long_description_(copy.long_description_),
88 registering_category_(copy.registering_category_),
90 has_lower_(copy.has_lower_),
92 has_upper_(copy.has_upper_),
94 valid_strings_(copy.valid_strings_),
95 counter_(copy.counter_)
109 virtual const std::string&
Name()
const
115 const std::string& name
123 return short_description_;
129 return long_description_;
134 const std::string& short_description
137 short_description_ = short_description;
142 const std::string& long_description
145 long_description_ = long_description;
151 return registering_category_;
156 const std::string& registering_category
159 registering_category_ = registering_category;
205 return lower_strict_;
229 lower_strict_ = strict, has_lower_ =
true;
239 return (
Index) lower_;
272 return upper_strict_;
296 upper_strict_ = strict;
307 return (
Index) upper_;
328 const std::string value,
329 const std::string description)
332 valid_strings_.push_back(
string_entry(value, description));
342 return default_number_;
350 const Number& default_value
354 default_number_ = default_value;
364 return (
Index) default_number_;
372 const Index& default_value
376 default_number_ = (
Number) default_value;
386 return default_string_;
398 return MapStringSettingToEnum(default_string_);
406 const std::string& default_value
410 default_string_ = default_value;
420 return valid_strings_;
432 if( has_lower_ && ((lower_strict_ ==
true && value <= lower_) || (lower_strict_ ==
false && value < lower_)) )
436 if( has_upper_ && ((upper_strict_ ==
true && value >= upper_) || (upper_strict_ ==
false && value > upper_)) )
452 if( has_lower_ && value < lower_ )
456 if( has_upper_ && value > upper_ )
467 virtual bool IsValidStringSetting(
468 const std::string& value
474 virtual std::string MapStringSetting(
475 const std::string& value
483 virtual Index MapStringSettingToEnum(
484 const std::string& value
489 virtual void OutputDescription(
494 virtual void OutputShortDescription(
499 virtual void OutputLatexDescription(
504 virtual void OutputDoxygenDescription(
523 void MakeValidLatexString(
528 std::string MakeValidLatexNumber(
532 std::string MakeValidHTMLNumber(
537 bool string_equal_insensitive(
538 const std::string& s1,
539 const std::string& s2
562 current_registering_category_(
"Uncategorized")
580 const std::string& registering_category
583 current_registering_category_ = registering_category;
589 return current_registering_category_;
593 virtual void AddNumberOption(
594 const std::string& name,
595 const std::string& short_description,
597 const std::string& long_description =
""
601 virtual void AddLowerBoundedNumberOption(
602 const std::string& name,
603 const std::string& short_description,
607 const std::string& long_description =
""
611 virtual void AddUpperBoundedNumberOption(
612 const std::string& name,
613 const std::string& short_description,
617 const std::string& long_description =
""
621 virtual void AddBoundedNumberOption(
622 const std::string& name,
623 const std::string& short_description,
629 const std::string& long_description =
""
633 virtual void AddIntegerOption(
634 const std::string& name,
635 const std::string& short_description,
637 const std::string& long_description =
""
641 virtual void AddLowerBoundedIntegerOption(
642 const std::string& name,
643 const std::string& short_description,
646 const std::string& long_description =
""
650 virtual void AddUpperBoundedIntegerOption(
651 const std::string& name,
652 const std::string& short_description,
655 const std::string& long_description =
""
659 virtual void AddBoundedIntegerOption(
660 const std::string& name,
661 const std::string& short_description,
665 const std::string& long_description =
""
669 virtual void AddStringOption(
670 const std::string& name,
671 const std::string& short_description,
672 const std::string& default_value,
673 const std::vector<std::string>& settings,
674 const std::vector<std::string>& descriptions,
675 const std::string& long_description =
""
679 virtual void AddStringOption1(
680 const std::string& name,
681 const std::string& short_description,
682 const std::string& default_value,
683 const std::string& setting1,
684 const std::string& description1,
685 const std::string& long_description =
""
688 virtual void AddStringOption2(
689 const std::string& name,
690 const std::string& short_description,
691 const std::string& default_value,
692 const std::string& setting1,
693 const std::string& description1,
694 const std::string& setting2,
695 const std::string& description2,
696 const std::string& long_description =
""
699 virtual void AddStringOption3(
700 const std::string& name,
701 const std::string& short_description,
702 const std::string& default_value,
703 const std::string& setting1,
704 const std::string& description1,
705 const std::string& setting2,
706 const std::string& description2,
707 const std::string& setting3,
708 const std::string& description3,
709 const std::string& long_description =
""
712 virtual void AddStringOption4(
713 const std::string& name,
714 const std::string& short_description,
715 const std::string& default_value,
716 const std::string& setting1,
717 const std::string& description1,
718 const std::string& setting2,
719 const std::string& description2,
720 const std::string& setting3,
721 const std::string& description3,
722 const std::string& setting4,
723 const std::string& description4,
724 const std::string& long_description =
""
727 virtual void AddStringOption5(
728 const std::string& name,
729 const std::string& short_description,
730 const std::string& default_value,
731 const std::string& setting1,
732 const std::string& description1,
733 const std::string& setting2,
734 const std::string& description2,
735 const std::string& setting3,
736 const std::string& description3,
737 const std::string& setting4,
738 const std::string& description4,
739 const std::string& setting5,
740 const std::string& description5,
741 const std::string& long_description =
""
744 virtual void AddStringOption6(
745 const std::string& name,
746 const std::string& short_description,
747 const std::string& default_value,
748 const std::string& setting1,
749 const std::string& description1,
750 const std::string& setting2,
751 const std::string& description2,
752 const std::string& setting3,
753 const std::string& description3,
754 const std::string& setting4,
755 const std::string& description4,
756 const std::string& setting5,
757 const std::string& description5,
758 const std::string& setting6,
759 const std::string& description6,
760 const std::string& long_description =
""
763 virtual void AddStringOption7(
764 const std::string& name,
765 const std::string& short_description,
766 const std::string& default_value,
767 const std::string& setting1,
768 const std::string& description1,
769 const std::string& setting2,
770 const std::string& description2,
771 const std::string& setting3,
772 const std::string& description3,
773 const std::string& setting4,
774 const std::string& description4,
775 const std::string& setting5,
776 const std::string& description5,
777 const std::string& setting6,
778 const std::string& description6,
779 const std::string& setting7,
780 const std::string& description7,
781 const std::string& long_description =
""
784 virtual void AddStringOption8(
785 const std::string& name,
786 const std::string& short_description,
787 const std::string& default_value,
788 const std::string& setting1,
789 const std::string& description1,
790 const std::string& setting2,
791 const std::string& description2,
792 const std::string& setting3,
793 const std::string& description3,
794 const std::string& setting4,
795 const std::string& description4,
796 const std::string& setting5,
797 const std::string& description5,
798 const std::string& setting6,
799 const std::string& description6,
800 const std::string& setting7,
801 const std::string& description7,
802 const std::string& setting8,
803 const std::string& description8,
804 const std::string& long_description =
""
807 virtual void AddStringOption9(
808 const std::string& name,
809 const std::string& short_description,
810 const std::string& default_value,
811 const std::string& setting1,
812 const std::string& description1,
813 const std::string& setting2,
814 const std::string& description2,
815 const std::string& setting3,
816 const std::string& description3,
817 const std::string& setting4,
818 const std::string& description4,
819 const std::string& setting5,
820 const std::string& description5,
821 const std::string& setting6,
822 const std::string& description6,
823 const std::string& setting7,
824 const std::string& description7,
825 const std::string& setting8,
826 const std::string& description8,
827 const std::string& setting9,
828 const std::string& description9,
829 const std::string& long_description =
""
832 virtual void AddStringOption10(
833 const std::string& name,
834 const std::string& short_description,
835 const std::string& default_value,
836 const std::string& setting1,
837 const std::string& description1,
838 const std::string& setting2,
839 const std::string& description2,
840 const std::string& setting3,
841 const std::string& description3,
842 const std::string& setting4,
843 const std::string& description4,
844 const std::string& setting5,
845 const std::string& description5,
846 const std::string& setting6,
847 const std::string& description6,
848 const std::string& setting7,
849 const std::string& description7,
850 const std::string& setting8,
851 const std::string& description8,
852 const std::string& setting9,
853 const std::string& description9,
854 const std::string& setting10,
855 const std::string& description10,
856 const std::string& long_description =
""
864 const std::string& name
868 virtual void OutputOptionDocumentation(
870 std::list<std::string>& categories
874 virtual void OutputLatexOptionDocumentation(
876 std::list<std::string>& categories
880 virtual void OutputDoxygenOptionDocumentation(
882 std::list<std::string>& categories
891 return registered_options_;