/* * data.hh * This file is part of him-arabic * * Copyright (C) 2007 Mohammed Sameer * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, * Boston, MA 02111-1307, USA. */ #ifndef __DATA_HH__ #define __DATA_HH__ #include #include #include #include typedef enum { LAYOUT_DEFAULT, // LAYOUT_A, LAYOUT_B, // LAYOUT_A_B } LayoutType; class Key { public: bool expand; std::string name; }; class Data { public: Data(const std::string&); ~Data(); bool operator!(); std::vector >& get_layout(const LayoutType&) throw(std::string); private: Data& operator=(const Data&); Data(const Data&); void parse_rows(xmlNode *, std::vector >&); void parse_layout(xmlNode *); void parse_keys(xmlNode *, std::vector&); std::map > > layouts; }; #endif /* __DATA_HH__ */