libtdepim
krsqueezedtextlabel.cpp00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #include "krsqueezedtextlabel.h"
00022 #include "kstringhandler.h"
00023 #include <tqtooltip.h>
00024
00025 KRSqueezedTextLabel::KRSqueezedTextLabel( const TQString &text , TQWidget *parent, const char *name )
00026 : TQLabel ( parent, name ) {
00027 setSizePolicy(TQSizePolicy( TQSizePolicy::Expanding, TQSizePolicy::Fixed ));
00028 fullText = text;
00029 squeezeTextToLabel();
00030 }
00031
00032 KRSqueezedTextLabel::KRSqueezedTextLabel( TQWidget *parent, const char *name )
00033 : TQLabel ( parent, name ) {
00034 setSizePolicy(TQSizePolicy( TQSizePolicy::Expanding, TQSizePolicy::Fixed ));
00035 }
00036
00037 void KRSqueezedTextLabel::resizeEvent( TQResizeEvent * ) {
00038 squeezeTextToLabel();
00039 }
00040
00041 TQSize KRSqueezedTextLabel::minimumSizeHint() const
00042 {
00043 TQSize sh = TQLabel::minimumSizeHint();
00044 sh.setWidth(-1);
00045 return sh;
00046 }
00047
00048 TQSize KRSqueezedTextLabel::sizeHint() const
00049 {
00050 return TQSize(contentsRect().width(), TQLabel::sizeHint().height());
00051 }
00052
00053 void KRSqueezedTextLabel::setText( const TQString &text ) {
00054 fullText = text;
00055 squeezeTextToLabel();
00056 }
00057
00058 void KRSqueezedTextLabel::squeezeTextToLabel() {
00059 TQFontMetrics fm(fontMetrics());
00060 int labelWidth = size().width();
00061 int textWidth = fm.width(fullText);
00062 if (textWidth > labelWidth) {
00063 TQString squeezedText = KStringHandler::rPixelSqueeze(fullText, fm, labelWidth);
00064 TQLabel::setText(squeezedText);
00065
00066 TQToolTip::remove( this );
00067 TQToolTip::add( this, fullText );
00068
00069 } else {
00070 TQLabel::setText(fullText);
00071
00072 TQToolTip::remove( this );
00073 TQToolTip::hide();
00074
00075 }
00076 }
00077
00078 void KRSqueezedTextLabel::setAlignment( int alignment )
00079 {
00080
00081 TQString tmpFull(fullText);
00082 TQLabel::setAlignment(alignment);
00083 fullText = tmpFull;
00084 }
00085
00086 #include "krsqueezedtextlabel.moc"
|