added padding: space between text and the border
akir akir
2 files changed,
28 insertions(+),
7 deletions(-)
M
src/FbTk/TextButton.cc
→
src/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.hh
→
src/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 };