13#include <tqlineedit.h>
16#include <tqfontmetrics.h>
19#include <tdeglobalsettings.h>
21#include <tdeparts/part.h>
22#include <tdetexteditor/viewcursorinterface.h>
24#include <tdetexteditor/viewstatusmsginterface.h>
27#include "partcontroller.h"
29KDevStatusBar::KDevStatusBar(TQWidget *parent,
const char *name)
30 : KStatusBar(parent, name), _cursorIface(0), _activePart(0)
32 TQWidget * w =
new TQWidget(
this );
33 addWidget( w, 1,
true );
36 _status =
new TQLabel(
this );
37 _status->setMinimumWidth(_status->fontMetrics().width(
"Line: XXXXX Col: XXX OVR NORM * "));
38 _status->setAlignment(TQWidget::AlignCenter);
39 addWidget(_status, 0,
true);
41 connect(PartController::getInstance(), TQ_SIGNAL(activePartChanged(KParts::Part*)),
42 this, TQ_SLOT(activePartChanged(KParts::Part*)));
46KDevStatusBar::~KDevStatusBar()
49void KDevStatusBar::activePartChanged(KParts::Part *part)
51 if ( _activePart && _activePart->widget() )
52 disconnect( _activePart->widget(), 0,
this, 0 );
58 if (part && part->widget())
60 if ((_viewmsgIface =
dynamic_cast<KTextEditor::ViewStatusMsgInterface*
>(part->widget())))
62 connect( part->widget(), TQ_SIGNAL( viewStatusMsg(
const TQString & ) ),
63 this, TQ_SLOT( setStatus(
const TQString & ) ) );
67 else if ((_cursorIface =
dynamic_cast<KTextEditor::ViewCursorInterface*
>(part->widget())))
69 connect(part->widget(), TQ_SIGNAL(cursorPositionChanged()),
this, TQ_SLOT(cursorPositionChanged()));
72 cursorPositionChanged();
82void KDevStatusBar::cursorPositionChanged()
87 _cursorIface->cursorPosition(&line, &col);
88 setCursorPosition(line, col);
92void KDevStatusBar::setStatus(
const TQString &str)
94 _status->setText(str);
98void KDevStatusBar::setCursorPosition(
int line,
int col)
100 _status->setText(i18n(
" Line: %1 Col: %2 ").arg(line+1).arg(col));
103void KDevStatusBar::addWidget ( TQWidget *widget,
int stretch,
bool permanent)
105 KStatusBar::addWidget(widget,stretch,permanent);
107 if(widget->sizeHint().height() + 4 > height())
108 setFixedHeight(widget->sizeHint().height() + 4);
111#include "statusbar.moc"