added padding: space between text and the border
This commit is contained in:
parent
af9e76fce5
commit
876a70fce2
2 changed files with 28 additions and 7 deletions
|
@ -19,7 +19,7 @@
|
|||
// 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 @@ TextButton::TextButton(const FbTk::FbWindow &parent,
|
|||
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 @@ void TextButton::setBevel(int bevel) {
|
|||
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 @@ void TextButton::clearArea(int x, int y,
|
|||
updateTransparent(x, y, width, height);
|
||||
drawText();
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
unsigned int TextButton::textWidth() const {
|
||||
|
@ -133,7 +145,7 @@ unsigned int TextButton::textWidth() const {
|
|||
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 @@ void TextButton::drawText(int x_offset, int y_offset) {
|
|||
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) {
|
||||
|
|
|
@ -19,7 +19,7 @@
|
|||
// 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 @@ public:
|
|||
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 @@ public:
|
|||
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
|
||||
};
|
||||
|
||||
|
|
Loading…
Reference in a new issue