00001 #ifndef image_h 00002 #define image_h 00003 00004 #include "tag.h" 00005 00006 /* <image src="images/a.gif" origfile="public/images/a.gif"> */ 00007 00009 class Image : private Tag 00010 { 00011 private: 00012 std::string origfile; 00013 00015 std::string alt; 00016 std::string src; 00017 std::string width; 00018 std::string height; 00019 std::string lowsrc; 00020 std::string border; 00021 00022 std::string current_dir; 00023 00024 public: 00025 Image( Line& line ); 00026 00027 void set_dir( std::string cd ) 00028 { current_dir = cd; } 00029 00030 std::string get_image() 00031 { return get_image( current_dir ); } 00032 00033 std::string get_image( std::string current_dir ); 00034 00035 bool operator!() const { return !Tag::is_valid_tag; } 00036 00037 std::string get_tag() 00038 { 00039 set_option( "current_dir", current_dir ); 00040 rebuild_tag(); 00041 return Tag::get_tag(); 00042 } 00043 00044 int get_level() { return Tag::get_level(); } 00045 00046 private: 00047 std::string create_tag( std::string file_name ); 00048 00053 bool percentage( std::string str, unsigned int &n ); 00054 00055 inline void delete_default_options(); 00056 }; 00057 00058 00059 #endif