Main Page | Class Hierarchy | Alphabetical List | Class List | File List | Class Members

uargs.hpp

00001 /* ==================================================== ======== ======= * 00002 * 00003 * uargs.hh : class for creating argument lists (additive notation). 00004 * Ubit Project [Elc][2003] 00005 * Author: Eric Lecolinet 00006 * 00007 * Part of the Ubit Toolkit: A Brick Construction Game Model for Creating GUIs 00008 * 00009 * (C) 1999-2003 Eric Lecolinet @ ENST Paris 00010 * WWW: http://www.enst.fr/~elc/ubit Email: elc@enst.fr (subject: ubit) 00011 * 00012 * *********************************************************************** 00013 * COPYRIGHT NOTICE : 00014 * THIS PROGRAM IS DISTRIBUTED WITHOUT ANY WARRANTY AND WITHOUT EVEN THE 00015 * IMPLIED WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. 00016 * YOU CAN REDISTRIBUTE IT AND/OR MODIFY IT UNDER THE TERMS OF THE GNU 00017 * GENERAL PUBLIC LICENSE AS PUBLISHED BY THE FREE SOFTWARE FOUNDATION; 00018 * EITHER VERSION 2 OF THE LICENSE, OR (AT YOUR OPTION) ANY LATER VERSION. 00019 * SEE FILES 'COPYRIGHT' AND 'COPYING' FOR MORE DETAILS. 00020 * *********************************************************************** 00021 * 00022 * ==================================================== [Elc:03] ======= * 00023 * ==================================================== ======== ======= */ 00024 00025 #ifndef _uargs_hh 00026 #define _uargs_hh 00027 //pragma ident "@(#)uargs.hh ubit:03.04.00" 00028 00029 00030 class UArgsImpl; 00031 00044 class UArgs { 00045 friend class UGroup; 00046 friend class UBox; 00047 friend class UArgsImpl; 00048 00049 UArgs& operator=(const UArgs&); // assigment is forbidden 00050 class UArgsChain* children; 00051 00052 public: 00053 static const UArgs none; 00054 00055 UArgs(); 00056 ~UArgs(); 00057 UArgs(const UArgs&); 00058 UArgs(const UArgsImpl&); 00059 UArgs(const char*); 00060 UArgs(class UBrick*); 00061 UArgs(class UBrick&); 00062 UArgs(class ULink&); 00063 UArgs(class ULink*); 00064 00065 UArgs& operator+=(const UArgs&); 00066 00067 friend const UArgsImpl& operator+(const UArgsImpl&, const char*); 00068 friend const UArgsImpl& operator+(const UArgsImpl&, class UBrick*); 00069 friend const UArgsImpl& operator+(const UArgsImpl&, class UBrick&); 00070 friend const UArgsImpl& operator+(const UArgsImpl&, class ULink&); 00071 friend const UArgsImpl& operator+(const UArgsImpl&, class ULink*); 00072 friend const UArgsImpl& operator+(const UArgsImpl&, const UArgs&); 00073 }; 00074 00075 /* ==================================================== ======== ======= */ 00076 00079 class UArgsImpl { 00080 friend class UGroup; 00081 friend class UBox; 00082 friend class UArgs; 00083 00084 UArgsImpl& operator=(const UArgsImpl&); // assigment is forbidden 00085 class UArgsChain* children; 00086 00087 public: 00088 UArgsImpl(); 00089 ~UArgsImpl(); 00090 UArgsImpl(const UArgsImpl&); 00091 UArgsImpl(const UArgs&); 00092 UArgsImpl(const char*); 00093 UArgsImpl(class UBrick*); 00094 UArgsImpl(class UBrick&); 00095 UArgsImpl(class ULink&); 00096 UArgsImpl(class ULink*); 00097 00098 friend const UArgsImpl& operator+(const UArgsImpl&, const char*); 00099 friend const UArgsImpl& operator+(const UArgsImpl&, class UBrick*); 00100 friend const UArgsImpl& operator+(const UArgsImpl&, class UBrick&); 00101 friend const UArgsImpl& operator+(const UArgsImpl&, class ULink&); 00102 friend const UArgsImpl& operator+(const UArgsImpl&, class ULink*); 00103 friend const UArgsImpl& operator+(const UArgsImpl&, const UArgs&); 00104 }; 00105 00106 #endif 00107 /* ==================================================== [TheEnd] ======= */ 00108 /* ==================================================== [Elc:02] ======= */

Generated on Tue Jul 27 18:01:54 2004 for Ubit[Eric.Lecolinet@enst.fr] by doxygen 1.3.7