• Main Page
  • Related Pages
  • Modules
  • Namespaces
  • Classes
  • Files
  • File List

props.hh

00001 // Copyright (C) 2008, 2009 EPITA Research and Development Laboratory (LRDE)
00002 //
00003 // This file is part of Olena.
00004 //
00005 // Olena is free software: you can redistribute it and/or modify it under
00006 // the terms of the GNU General Public License as published by the Free
00007 // Software Foundation, version 2 of the License.
00008 //
00009 // Olena is distributed in the hope that it will be useful,
00010 // but WITHOUT ANY WARRANTY; without even the implied warranty of
00011 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00012 // General Public License for more details.
00013 //
00014 // You should have received a copy of the GNU General Public License
00015 // along with Olena.  If not, see <http://www.gnu.org/licenses/>.
00016 //
00017 // As a special exception, you may use this file as part of a free
00018 // software project without restriction.  Specifically, if other files
00019 // instantiate templates or use macros or inline functions from this
00020 // file, or you compile this file and link it with other files to produce
00021 // an executable, this file does not by itself cause the resulting
00022 // executable to be covered by the GNU General Public License.  This
00023 // exception does not however invalidate any other reasons why the
00024 // executable file might be covered by the GNU General Public License.
00025 
00026 #ifndef MLN_TRAIT_WINDOW_PROPS_HH
00027 # define MLN_TRAIT_WINDOW_PROPS_HH
00028 
00037 # include <string>
00038 # include <mln/trait/undef.hh>
00039 
00040 
00041 
00042 //  Properties of windows.
00043 //  ========================
00044 
00045 //  size:       /any/
00046 //                |
00047 //                + -- fixed
00048 //                |
00049 //                + -- unknown
00050 
00051 //  support:    /any/
00052 //                |
00053 //                + -- regular
00054 //                |
00055 //                + -- irregular
00056 
00057 //  definition: /any/
00058 //                |
00059 //                + -- unique
00060 //                |
00061 //                + -- /multiple/
00062 //                       |
00063 //                       + -- n_ary
00064 //                       |
00065 //                       + -- varying
00066 
00067 
00068 namespace mln
00069 {
00070 
00071   namespace trait
00072   {
00073 
00074     namespace window
00075     {
00076 
00077 
00079       struct size
00080       {
00082         struct any { protected: any() {} };
00083 
00085         struct fixed   : any { std::string name() const { return "size::fixed"; } };
00086 
00088         struct unknown : any { std::string name() const { return "size::unknown"; } };
00089       };
00090 
00091 
00093       struct support
00094       {
00096         struct any { protected: any() {} };
00097 
00099         struct regular   : any { std::string name() const { return "support::regular"; } };
00100 
00102         struct irregular : any { std::string name() const { return "support::irregular"; } };
00103       };
00104 
00105 
00107       struct definition
00108       {
00110         struct any { protected: any() {} };
00111 
00113         struct unique : any { std::string name() const { return "definition::unique"; } };
00114 
00116         struct multiple : any { protected: multiple() {} };
00117 
00119         struct n_ary : multiple { std::string name() const { return "definition::n_ary"; } };
00120 
00122         struct varying : multiple { std::string name() const { return "definition::varying"; } };
00123       };
00124 
00125 
00126     } // end of namespace mln::trait::window
00127 
00128   } // end of namespace mln::trait
00129 
00130 
00131 } // end of namespace mln
00132 
00133 
00134 #endif // ! MLN_TRAIT_WINDOW_PROPS_HH

Generated on Tue Oct 4 2011 15:24:20 for Milena (Olena) by  doxygen 1.7.1