13#include <tqlineedit.h>
16#include <tqfontmetrics.h>
19#include <tdeglobalsettings.h>
21#include <tdeparts/part.h>
22#include <tdetexteditor/viewcursorinterface.h>
23#include <tdeversion.h>
25#include <tdetexteditor/viewstatusmsginterface.h>
28#include "partcontroller.h"
30KDevStatusBar::KDevStatusBar(TQWidget *parent,
const char *name)
31 : KStatusBar(parent, name), _cursorIface(0), _activePart(0)
33 TQWidget * w =
new TQWidget(
this );
34 addWidget( w, 1,
true );
37 _status =
new TQLabel(
this );
38 _status->setMinimumWidth(_status->fontMetrics().width(
"Line: XXXXX Col: XXX OVR NORM * "));
39 _status->setAlignment(TQWidget::AlignCenter);
40 addWidget(_status, 0,
true);
42 connect(PartController::getInstance(), TQ_SIGNAL(activePartChanged(KParts::Part*)),
43 this, TQ_SLOT(activePartChanged(KParts::Part*)));
47KDevStatusBar::~KDevStatusBar()
50void KDevStatusBar::activePartChanged(KParts::Part *part)
52 if ( _activePart && _activePart->widget() )
53 disconnect( _activePart->widget(), 0,
this, 0 );
59 if (part && part->widget())
61 if ((_viewmsgIface =
dynamic_cast<KTextEditor::ViewStatusMsgInterface*
>(part->widget())))
63 connect( part->widget(), TQ_SIGNAL( viewStatusMsg(
const TQString & ) ),
64 this, TQ_SLOT( setStatus(
const TQString & ) ) );
68 else if ((_cursorIface =
dynamic_cast<KTextEditor::ViewCursorInterface*
>(part->widget())))
70 connect(part->widget(), TQ_SIGNAL(cursorPositionChanged()),
this, TQ_SLOT(cursorPositionChanged()));
73 cursorPositionChanged();
83void KDevStatusBar::cursorPositionChanged()
88 _cursorIface->cursorPosition(&line, &col);
89 setCursorPosition(line, col);
93void KDevStatusBar::setStatus(
const TQString &str)
95 _status->setText(str);
99void KDevStatusBar::setCursorPosition(
int line,
int col)
101 _status->setText(i18n(
" Line: %1 Col: %2 ").arg(line+1).arg(col));
104void KDevStatusBar::addWidget ( TQWidget *widget,
int stretch,
bool permanent)
106 KStatusBar::addWidget(widget,stretch,permanent);
108 if(widget->sizeHint().height() + 4 > height())
109 setFixedHeight(widget->sizeHint().height() + 4);
112#include "statusbar.moc"