all repos — fluxbox @ 8bf640a79948368a9bb325af6176a1676ef36b71

custom fork of the fluxbox windowmanager

moved to FbTk
fluxgen fluxgen
commit

8bf640a79948368a9bb325af6176a1676ef36b71

parent

51fe5995b15236220499d3502a5ec6bd4882a771

2 files changed, 0 insertions(+), 156 deletions(-)

jump to
D src/TextButton.cc

@@ -1,92 +0,0 @@

-// TextButton.cc for Fluxbox Window Manager -// Copyright (c) 2003 Henrik Kinnunen (fluxgen[at]fluxbox.org) -// -// Permission is hereby granted, free of charge, to any person obtaining a -// copy of this software and associated documentation files (the "Software"), -// to deal in the Software without restriction, including without limitation -// the rights to use, copy, modify, merge, publish, distribute, sublicense, -// and/or sell copies of the Software, and to permit persons to whom the -// Software is furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in -// all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL -// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -// DEALINGS IN THE SOFTWARE. - -// $Id: TextButton.cc,v 1.4 2003/08/13 10:12:36 fluxgen Exp $ - -#include "TextButton.hh" -#include "Font.hh" - -#include <iostream> -using namespace std; - -TextButton::TextButton(const FbTk::FbWindow &parent, - const FbTk::Font &font, - const std::string &text): - FbTk::Button(parent, 0, 0, 10, 10), - m_font(&font), - m_text(text), - m_justify(FbTk::LEFT), m_bevel(1) { - -} - -void TextButton::setJustify(FbTk::Justify just) { - m_justify = just; -} - -void TextButton::setText(const std::string &text) { - m_text = text; -} - -void TextButton::setFont(const FbTk::Font &font) { - // no need to set new font if it's the same - if (&font == m_font) - return; - m_font = &font; - clear(); // redraw text with new font -} - -/// set bevel and redraw text -void TextButton::setBevel(int bevel) { - if (m_bevel == bevel) - return; - m_bevel = bevel; -} - -/// clear window and redraw text -void TextButton::clear() { - FbTk::Button::clear(); - drawText(); -} - -unsigned int TextButton::textWidth() const { - return font().textWidth(text().c_str(), text().size()); -} - -void TextButton::drawText(int x_offset, int y_offset) { - unsigned int textlen = text().size(); - // do text alignment - int align_x = FbTk::doAlignment(width() - x_offset, - bevel(), - justify(), - font(), - text().c_str(), text().size(), - textlen // return new text len - ); - - // center text by default - int center_pos = height()/2 + font().ascent()/2; - - font().drawText(window(), // drawable - screenNumber(), - gc(), // graphic context - text().c_str(), textlen, // string and string size - align_x + x_offset, center_pos + y_offset); // position -}
D src/TextButton.hh

@@ -1,64 +0,0 @@

-// TextButton.hh for Fluxbox Window Manager -// Copyright (c) 2003 Henrik Kinnunen (fluxgen[at]fluxbox.org) -// -// Permission is hereby granted, free of charge, to any person obtaining a -// copy of this software and associated documentation files (the "Software"), -// to deal in the Software without restriction, including without limitation -// the rights to use, copy, modify, merge, publish, distribute, sublicense, -// and/or sell copies of the Software, and to permit persons to whom the -// Software is furnished to do so, subject to the following conditions: -// -// The above copyright notice and this permission notice shall be included in -// all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL -// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -// DEALINGS IN THE SOFTWARE. - -// $Id: TextButton.hh,v 1.3 2003/08/11 14:42:03 fluxgen Exp $ - -#ifndef TEXTBUTTON_HH -#define TEXTBUTTON_HH - -#include "Button.hh" -#include "Text.hh" -#include <string> - -namespace FbTk { -class Font; -}; - -/// Displays a text on a button -class TextButton: public FbTk::Button { -public: - TextButton(const FbTk::FbWindow &parent, - const FbTk::Font &font, const std::string &text); - - void setJustify(FbTk::Justify just); - void setText(const std::string &text); - void setFont(const FbTk::Font &font); - void setBevel(int bevel); - /// clears window and redraw text - void clear(); - - inline FbTk::Justify justify() const { return m_justify; } - inline const std::string &text() const { return m_text; } - inline const FbTk::Font &font() const { return *m_font; } - unsigned int textWidth() const; - int bevel() const { return m_bevel; } - -protected: - void drawText(int x_offset = 0, int y_offset = 0); - -private: - const FbTk::Font *m_font; - std::string m_text; - FbTk::Justify m_justify; - int m_bevel; -}; - -#endif // TEXTBUTTON_HH