📄 field.h
字号:
//// Copyright (c) 2005 by Istv醤 V醨adi//// This file is part of dxr3Player, a DVD player written specifically // for the DXR3 (aka Hollywood+) decoder card.// 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 OUTPUT_UNICHROME_OSD_FIELD_H#define OUTPUT_UNICHROME_OSD_FIELD_H//------------------------------------------------------------------------------#include "unichrome/LogicalWindow.h"//------------------------------------------------------------------------------namespace unichrome {class Unichrome;class Font;class Icon;}//------------------------------------------------------------------------------namespace output { namespace unichrome { namespace osd {//------------------------------------------------------------------------------/** * A field. */class Field : public ::unichrome::LogicalWindow{public: /** * Configuration for fields. */ class Config { public: /** * The margin of the value on the side it is adjusted to */ static const size_t valueMargin = 8; /** * The margin of the value on the top and bottom it is adjusted to */ static const size_t valueVerticalMargin = 4; /** * The unichrome device we are using. */ ::unichrome::Unichrome& videoDevice; /** * The value font. */ ::unichrome::Font& valueFont; /** * The background color. */ uint32_t backgroundColor;; /** * The height of the value font. */ size_t valueHeight; /** * The top of the value font. */ ssize_t valueTop; /** * The bottom of the value font. */ ssize_t valueBottom; /** * Construct the frame configuration. */ Config(::unichrome::Unichrome& videoDevice, ::unichrome::Font& valueFont, uint32_t backgroundColor, const char* charset = 0); /** * Get the recommended height of the field. */ size_t getRecommendedHeight() const; /** * Get the recommended width of the field for the given * string. */ size_t getRecommendedWidth(const char* text) const; };protected: /** * Our config. */ const Config& config; /** * The value colour. */ uint32_t valueColor;public: /** * Construct the field with the given config and size. Note that * the size is the net size, i.e. the circles will be out of this * size. */ Field(const Config& config, ::unichrome::Window& parentWindow, size_t x, size_t y, size_t width, size_t height, uint32_t valueColor); /** * Set the value of the field. */ void setValue(const char* value, bool rightJustify = false); /** * Set the value of the field from an Icon. */ void setValue(const ::unichrome::Icon& icon, bool rightJustify = false);protected: /** * Print the value without erasing the background. */ void printValue(const char* value, bool rightJustify);};//------------------------------------------------------------------------------} /* namespace output::unichrome::osd */ } /* namespace output::unichrome */ } /* namespace output *///------------------------------------------------------------------------------#endif // OUTPUT_UNICHROME_OSD_FIELD_H// Local variables:// mode: c++// End:
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -