all repos — fluxbox @ 876a70fce2d3c5d36172c74728d0d961af7ca9a5

custom fork of the fluxbox windowmanager

added padding: space between text and the border
akir akir
commit

876a70fce2d3c5d36172c74728d0d961af7ca9a5

parent

af9e76fce54ae0b2735273e41440e6d68f009bbd

2 files changed, 28 insertions(+), 7 deletions(-)

jump to
M src/FbTk/TextButton.ccsrc/FbTk/TextButton.cc

@@ -19,7 +19,7 @@ // 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.6 2004/09/11 22:58:20 fluxgen Exp $ +// $Id: TextButton.cc,v 1.7 2004/10/10 16:04:33 akir Exp $ #include "TextButton.hh" #include "Font.hh"

@@ -36,6 +36,8 @@ FbTk::Button(parent, 0, 0, 10, 10),

m_font(&font), m_text(text), m_justify(FbTk::LEFT), m_bevel(1), + m_left_padding(0), + m_right_padding(0), m_buffer(drawable(), width(), height(), depth()) { }

@@ -79,6 +81,19 @@ return;

m_bevel = bevel; } +void TextButton::setTextPaddingLeft(unsigned int leftpadding) { + m_left_padding = leftpadding; +} + +void TextButton::setTextPaddingRight(unsigned int rightpadding) { + m_right_padding = rightpadding; +} + +void TextButton::setTextPadding(unsigned int padding) { + setTextPaddingLeft(padding/2); + setTextPaddingRight(padding/2); +} + /// clear window and redraw text void TextButton::clear() { TextButton::clearArea(0, 0,

@@ -121,9 +136,6 @@ Button::clearArea(x, y, width, height, exposure);

updateTransparent(x, y, width, height); drawText(); } - - - } unsigned int TextButton::textWidth() const {

@@ -133,7 +145,7 @@

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, + int align_x = FbTk::doAlignment(width() - x_offset - m_left_padding - m_right_padding, bevel(), justify(), font(),

@@ -150,7 +162,7 @@ font().drawText(*drawable,

screenNumber(), gc(), // graphic context text().c_str(), textlen, // string and string size - align_x + x_offset, center_pos + y_offset); // position + align_x + x_offset + m_left_padding, center_pos + y_offset); // position } void TextButton::exposeEvent(XExposeEvent &event) {
M src/FbTk/TextButton.hhsrc/FbTk/TextButton.hh

@@ -19,7 +19,7 @@ // 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.5 2004/01/08 22:03:13 fluxgen Exp $ +// $Id: TextButton.hh,v 1.6 2004/10/10 16:04:33 akir Exp $ #ifndef FBTK_TEXTBUTTON_HH #define FBTK_TEXTBUTTON_HH

@@ -44,6 +44,9 @@ void setJustify(FbTk::Justify just);

void setText(const std::string &text); void setFont(const FbTk::Font &font); void setBevel(int bevel); + void setTextPadding(unsigned int padding); + void setTextPaddingLeft(unsigned int leftpadding); + void setTextPaddingRight(unsigned int rightpadding); void resize(unsigned int width, unsigned int height); void moveResize(int x, int y,

@@ -63,6 +66,8 @@ 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; } + unsigned int leftPadding() const { return m_left_padding; } + unsigned int rightPadding() const { return m_right_padding; } protected: virtual void drawText(int x_offset = 0, int y_offset = 0);

@@ -71,7 +76,11 @@ private:

const FbTk::Font *m_font; std::string m_text; FbTk::Justify m_justify; + int m_bevel; + unsigned int m_left_padding; ///< space between buttonborder and text + unsigned int m_right_padding; ///< space between buttonborder and text + FbTk::FbPixmap m_buffer; ///< for background buffer };