Add default info on status bar (fix #1874)

This commit is contained in:
Gaspar Capello 2018-11-12 17:52:05 -03:00 committed by David Capello
parent 7f68d5f2e8
commit b3771472c3
12 changed files with 56 additions and 19 deletions

View File

@ -135,7 +135,7 @@ bool ColorButton::onProcessMessage(Message* msg)
break;
case kMouseLeaveMessage:
StatusBar::instance()->clearText();
StatusBar::instance()->showDefaultText();
break;
case kMouseMoveMessage:

View File

@ -1642,7 +1642,7 @@ bool Editor::onProcessMessage(Message* msg)
case kMouseLeaveMessage:
m_brushPreview.hide();
StatusBar::instance()->clearText();
StatusBar::instance()->showDefaultText();
break;
case kMouseDownMessage:

View File

@ -524,7 +524,7 @@ bool StandbyState::onUpdateStatusBar(Editor* editor)
- gfx::PointF(editor->mainTilePosition());
if (!sprite) {
StatusBar::instance()->clearText();
StatusBar::instance()->showDefaultText();
}
// For eye-dropper
else if (ink->isEyedropper()) {
@ -549,12 +549,16 @@ bool StandbyState::onUpdateStatusBar(Editor* editor)
char buf[1024];
sprintf(
buf, ":pos: %d %d :%s: %d %d",
int(std::floor(spritePos.x)),
int(std::floor(spritePos.y)),
(mask ? "selsize": "size"),
(mask ? mask->bounds().w: sprite->width()),
(mask ? mask->bounds().h: sprite->height()));
buf, ":pos: %d %d :size: %d %d",
int(std::floor(spritePos.x)),
int(std::floor(spritePos.y)),
sprite->width(),
sprite->height());
if (mask)
sprintf(buf+std::strlen(buf), " :selsize: %d %d",
mask->bounds().w,
mask->bounds().h);
if (sprite->totalFrames() > 1) {
sprintf(

View File

@ -474,11 +474,14 @@ void MainWindow::onMouseOverTab(Tabs* tabs, TabView* tabView)
else
name = base::get_file_name(document->filename());
m_statusBar->setStatusText(250, "%s", name.c_str());
}
else {
m_statusBar->clearText();
m_statusBar->showDefaultText(document);
}
else
m_statusBar->showDefaultText();
}
void MainWindow::onMouseLeaveTab() {
m_statusBar->showDefaultText();
}
DropViewPreviewResult MainWindow::onFloatingTab(Tabs* tabs, TabView* tabView, const gfx::Point& pos)

View File

@ -90,6 +90,7 @@ namespace app {
void onContextMenuTab(Tabs* tabs, TabView* tabView) override;
void onTabsContainerDoubleClicked(Tabs* tabs) override;
void onMouseOverTab(Tabs* tabs, TabView* tabView) override;
void onMouseLeaveTab() override;
DropViewPreviewResult onFloatingTab(Tabs* tabs, TabView* tabView, const gfx::Point& pos) override;
void onDockingTab(Tabs* tabs, TabView* tabView) override;
DropTabResult onDropTab(Tabs* tabs, TabView* tabView, const gfx::Point& pos, bool clone) override;

View File

@ -912,7 +912,7 @@ void PaletteView::setStatusBar()
StatusBar* statusBar = StatusBar::instance();
if (m_hot.part == Hit::NONE) {
statusBar->clearText();
statusBar->showDefaultText();
return;
}
@ -930,7 +930,7 @@ void PaletteView::setStatusBar()
0, "", app::Color::fromIndex(i));
}
else {
statusBar->clearText();
statusBar->showDefaultText();
}
break;
@ -949,7 +949,7 @@ void PaletteView::setStatusBar()
destIndex, newPalSize);
}
else {
statusBar->clearText();
statusBar->showDefaultText();
}
break;
@ -963,7 +963,7 @@ void PaletteView::setStatusBar()
newPalSize);
}
else {
statusBar->clearText();
statusBar->showDefaultText();
}
break;
}

View File

@ -615,6 +615,28 @@ void StatusBar::clearText()
setStatusText(1, "");
}
void StatusBar::showDefaultText()
{
showDefaultText(current_editor ? current_editor->document(): nullptr);
}
void StatusBar::showDefaultText(Doc* doc)
{
clearText();
if (doc){
std::string buf = base::string_printf("%s :size: %d %d",
doc->name().c_str(),
doc->width(),
doc->height());
if (doc->getTransformation().bounds().w != 0) {
buf += base::string_printf(" :selsize: %d %d",
int(doc->getTransformation().bounds().w),
int(doc->getTransformation().bounds().h));
}
setStatusText(1, buf.c_str());
}
}
void StatusBar::updateFromEditor(Editor* editor)
{
if (editor)

View File

@ -56,6 +56,8 @@ namespace app {
~StatusBar();
void clearText();
void showDefaultText();
void showDefaultText(Doc* document);
bool setStatusText(int msecs, const char* format, ...);
void showTip(int msecs, const char* format, ...);

View File

@ -350,6 +350,8 @@ bool Tabs::onProcessMessage(Message* msg)
case kMouseLeaveMessage:
if (m_hot) {
m_hot.reset();
if (m_delegate)
m_delegate->onMouseLeaveTab();
invalidate();
}
return true;

View File

@ -95,6 +95,9 @@ namespace app {
// mouse just leave all tabs)
virtual void onMouseOverTab(Tabs* tabs, TabView* tabView) = 0;
// Called when the mouse is leaving a tab
virtual void onMouseLeaveTab() = 0;
// Called when the user is dragging a tab outside the Tabs
// bar.
virtual DropViewPreviewResult onFloatingTab(Tabs* tabs, TabView* tabView, const gfx::Point& pos) = 0;

View File

@ -3390,7 +3390,7 @@ void Timeline::updateStatusBar(ui::Message* msg)
}
}
sb->clearText();
sb->showDefaultText();
}
void Timeline::updateStatusBarForFrame(const frame_t frame,

View File

@ -264,7 +264,7 @@ bool ToolBar::onProcessMessage(Message* msg)
invalidate();
}
StatusBar::instance()->clearText();
StatusBar::instance()->showDefaultText();
break;
case kTimerMessage: