00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035 #ifndef MORE_IOMANIP_H
00036 #define MORE_IOMANIP_H
00037
00038
00039 #include <string>
00040 #include <iomanip>
00041
00042
00043 namespace more {
00044 namespace io {
00045
00046
00047 struct setwp
00048 {
00049 setwp(int w, int p) : width(w), precision(p) {}
00050 friend std::ostream& operator<<(std::ostream& os, setwp const& x);
00051 private:
00052 int width, precision;
00053 };
00054
00055 struct osfill
00056 {
00057 osfill(int w, char c = ' ') : width(w), ch(c) {}
00058 friend std::ostream& operator<<(std::ostream& os, osfill const& x);
00059 private:
00060 int width;
00061 char ch;
00062 };
00063
00064 struct oscenter
00065 {
00066 oscenter(std::string s, int w, char c = ' ')
00067 : str(s), width(w), ch(c) {}
00068 friend std::ostream& operator<<(std::ostream& os, oscenter const& x);
00069 private:
00070 std::string str;
00071 int width;
00072 char ch;
00073 };
00074
00075
00076 enum tslang_t
00077 {
00078 tslang_none,
00079 tslang_terminfo,
00080 tslang_latex_text,
00081 tslang_latex_math,
00082 tslang_html,
00083 };
00084
00085 void set_tslang(std::ios_base&, tslang_t);
00086 tslang_t tslang(std::ios_base&);
00087
00088 bool has_bold(std::ios_base&);
00089 bool has_underline(std::ios_base&);
00090 bool has_italic(std::ios_base&);
00091 bool has_stadout(std::ios_base&);
00092 bool has_scripts(std::ios_base&);
00093 bool has_rec_scripts(std::ios_base);
00094
00095
00096 template<typename Char, typename Traits>
00097 std::basic_ostream<Char, Traits>&
00098 set_bold(std::basic_ostream<Char, Traits>& os);
00099
00100
00101 template<typename Char, typename Traits>
00102 std::basic_ostream<Char, Traits>&
00103 clr_bold(std::basic_ostream<Char, Traits>& os);
00104
00105
00106 template<typename Char, typename Traits>
00107 std::basic_ostream<Char, Traits>&
00108 set_underline(std::basic_ostream<Char, Traits>& os);
00109
00110
00111 template<typename Char, typename Traits>
00112 std::basic_ostream<Char, Traits>&
00113 clr_underline(std::basic_ostream<Char, Traits>& os);
00114
00115
00116 template<typename Char, typename Traits>
00117 std::basic_ostream<Char, Traits>&
00118 set_italic(std::basic_ostream<Char, Traits>& os);
00119
00120
00121 template<typename Char, typename Traits>
00122 std::basic_ostream<Char, Traits>&
00123 clr_italic(std::basic_ostream<Char, Traits>& os);
00124
00125
00126 template<typename Char, typename Traits>
00127 std::basic_ostream<Char, Traits>&
00128 set_standout(std::basic_ostream<Char, Traits>& os);
00129
00130
00131 template<typename Char, typename Traits>
00132 std::basic_ostream<Char, Traits>&
00133 clr_standout(std::basic_ostream<Char, Traits>& os);
00134
00135
00136 template<typename Char, typename Traits>
00137 std::basic_ostream<Char, Traits>&
00138 beg_super(std::basic_ostream<Char, Traits>& os);
00139
00140
00141 template<typename Char, typename Traits>
00142 std::basic_ostream<Char, Traits>&
00143 end_super(std::basic_ostream<Char, Traits>& os);
00144
00145
00146 template<typename Char, typename Traits>
00147 std::basic_ostream<Char, Traits>&
00148 beg_sub(std::basic_ostream<Char, Traits>& os);
00149
00150
00151 template<typename Char, typename Traits>
00152 std::basic_ostream<Char, Traits>&
00153 end_sub(std::basic_ostream<Char, Traits>& os);
00154
00155
00156 }}
00157
00158 #endif