00001 /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ 00002 /* 00003 * This file is part of the libetonyek project. 00004 * 00005 * This Source Code Form is subject to the terms of the Mozilla Public 00006 * License, v. 2.0. If a copy of the MPL was not distributed with this 00007 * file, You can obtain one at http://mozilla.org/MPL/2.0/. 00008 */ 00009 00010 #ifndef KEYOUTPUT_H_INCLUDED 00011 #define KEYOUTPUT_H_INCLUDED 00012 00013 #include "KEYStyle.h" 00014 #include "KEYTransformation.h" 00015 00016 namespace libetonyek 00017 { 00018 00019 class KEYPresentationInterface; 00020 class KEYStyleContext; 00021 00024 class KEYOutput 00025 { 00026 // disable assignment 00027 KEYOutput &operator=(const KEYOutput &other); 00028 00029 public: 00038 KEYOutput(KEYPresentationInterface *painter, KEYStyleContext &context); 00039 00045 KEYOutput(const KEYOutput &output, const KEYTransformation &tr); 00046 00056 KEYOutput(const KEYOutput &output, const KEYStylePtr_t &style); 00057 00068 KEYOutput(const KEYOutput &output, const KEYTransformation &tr, const KEYStylePtr_t &style); 00069 00074 KEYOutput(const KEYOutput &other); 00075 00081 ~KEYOutput(); 00082 00087 KEYPresentationInterface *getPainter() const; 00088 00093 const KEYTransformation &getTransformation() const; 00094 00099 const KEYStyleContext &getStyleContext() const; 00100 00101 private: 00102 KEYPresentationInterface *const m_painter; 00103 KEYStyleContext &m_styleContext; 00104 KEYTransformation m_transformation; 00105 bool m_stylePushed; 00106 }; 00107 00108 } 00109 00110 #endif // KEYOUTPUT_H_INCLUDED 00111 00112 /* vim:set shiftwidth=2 softtabstop=2 expandtab: */