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
|
// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
||||||
// DEALINGS IN THE SOFTWARE.
|
// 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 "TextButton.hh"
|
||||||
#include "Font.hh"
|
#include "Font.hh"
|
||||||
|
@ -36,6 +36,8 @@ TextButton::TextButton(const FbTk::FbWindow &parent,
|
||||||
m_font(&font),
|
m_font(&font),
|
||||||
m_text(text),
|
m_text(text),
|
||||||
m_justify(FbTk::LEFT), m_bevel(1),
|
m_justify(FbTk::LEFT), m_bevel(1),
|
||||||
|
m_left_padding(0),
|
||||||
|
m_right_padding(0),
|
||||||
m_buffer(drawable(), width(), height(), depth()) {
|
m_buffer(drawable(), width(), height(), depth()) {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -79,6 +81,19 @@ void TextButton::setBevel(int bevel) {
|
||||||
m_bevel = 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
|
/// clear window and redraw text
|
||||||
void TextButton::clear() {
|
void TextButton::clear() {
|
||||||
TextButton::clearArea(0, 0,
|
TextButton::clearArea(0, 0,
|
||||||
|
@ -121,9 +136,6 @@ void TextButton::clearArea(int x, int y,
|
||||||
updateTransparent(x, y, width, height);
|
updateTransparent(x, y, width, height);
|
||||||
drawText();
|
drawText();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
unsigned int TextButton::textWidth() const {
|
unsigned int TextButton::textWidth() const {
|
||||||
|
@ -133,7 +145,7 @@ unsigned int TextButton::textWidth() const {
|
||||||
void TextButton::drawText(int x_offset, int y_offset) {
|
void TextButton::drawText(int x_offset, int y_offset) {
|
||||||
unsigned int textlen = text().size();
|
unsigned int textlen = text().size();
|
||||||
// do text alignment
|
// 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(),
|
bevel(),
|
||||||
justify(),
|
justify(),
|
||||||
font(),
|
font(),
|
||||||
|
@ -150,7 +162,7 @@ void TextButton::drawText(int x_offset, int y_offset) {
|
||||||
screenNumber(),
|
screenNumber(),
|
||||||
gc(), // graphic context
|
gc(), // graphic context
|
||||||
text().c_str(), textlen, // string and string size
|
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) {
|
void TextButton::exposeEvent(XExposeEvent &event) {
|
||||||
|
|
|
@ -19,7 +19,7 @@
|
||||||
// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
||||||
// DEALINGS IN THE SOFTWARE.
|
// 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
|
#ifndef FBTK_TEXTBUTTON_HH
|
||||||
#define FBTK_TEXTBUTTON_HH
|
#define FBTK_TEXTBUTTON_HH
|
||||||
|
@ -44,6 +44,9 @@ public:
|
||||||
void setText(const std::string &text);
|
void setText(const std::string &text);
|
||||||
void setFont(const FbTk::Font &font);
|
void setFont(const FbTk::Font &font);
|
||||||
void setBevel(int bevel);
|
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 resize(unsigned int width, unsigned int height);
|
||||||
void moveResize(int x, int y,
|
void moveResize(int x, int y,
|
||||||
|
@ -63,6 +66,8 @@ public:
|
||||||
inline const FbTk::Font &font() const { return *m_font; }
|
inline const FbTk::Font &font() const { return *m_font; }
|
||||||
unsigned int textWidth() const;
|
unsigned int textWidth() const;
|
||||||
int bevel() const { return m_bevel; }
|
int bevel() const { return m_bevel; }
|
||||||
|
unsigned int leftPadding() const { return m_left_padding; }
|
||||||
|
unsigned int rightPadding() const { return m_right_padding; }
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
virtual void drawText(int x_offset = 0, int y_offset = 0);
|
virtual void drawText(int x_offset = 0, int y_offset = 0);
|
||||||
|
@ -71,7 +76,11 @@ private:
|
||||||
const FbTk::Font *m_font;
|
const FbTk::Font *m_font;
|
||||||
std::string m_text;
|
std::string m_text;
|
||||||
FbTk::Justify m_justify;
|
FbTk::Justify m_justify;
|
||||||
|
|
||||||
int m_bevel;
|
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
|
FbTk::FbPixmap m_buffer; ///< for background buffer
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue