Status Bar + Build WIP

This commit is contained in:
Martín Lucas Golini
2023-04-07 20:01:16 -03:00
parent 74b271002e
commit 3d86c2e1e3
23 changed files with 693 additions and 65 deletions

View File

@@ -0,0 +1,71 @@
#include "statusbuildoutputcontroller.hpp"
#include "ecode.hpp"
namespace ecode {
StatusBuildOutputController::StatusBuildOutputController( UISplitter* mainSplitter,
UISceneNode* uiSceneNode, App* app ) :
mMainSplitter( mainSplitter ),
mUISceneNode( uiSceneNode ),
mApp( app ),
mSplitter( mApp->getSplitter() ) {}
void StatusBuildOutputController::toggle() {
if ( nullptr == mContainer ) {
show();
return;
}
if ( mMainSplitter->getLastWidget() != nullptr ) {
if ( mMainSplitter->getLastWidget() == mContainer ) {
hide();
} else {
show();
}
} else {
show();
}
}
void StatusBuildOutputController::hide() {
if ( mContainer && mContainer->isVisible() ) {
mContainer->setParent( mUISceneNode );
mContainer->setVisible( false );
mApp->getStatusBar()->updateState();
if ( mSplitter->getCurWidget() )
mSplitter->getCurWidget()->setFocus();
}
}
void StatusBuildOutputController::show() {
if ( nullptr == mContainer ) {
mMainSplitter->updateLayout();
mContainer = createContainer();
mContainer->setId( "build_output" );
mContainer->setVisible( false );
}
if ( !mContainer->isVisible() ) {
mApp->hideLocateBar();
mApp->hideSearchBar();
mApp->hideGlobalSearchBar();
if ( mMainSplitter->getLastWidget() != nullptr ) {
mMainSplitter->getLastWidget()->setVisible( false );
mMainSplitter->getLastWidget()->setParent( mUISceneNode );
}
mContainer->setParent( mMainSplitter );
mContainer->setVisible( true );
mContainer->setFocus();
mApp->getStatusBar()->updateState();
}
}
UICodeEditor* StatusBuildOutputController::createContainer() {
UICodeEditor* editor = UICodeEditor::NewOpt( true, true );
editor->setLocked( true );
editor->setLineBreakingColumn( 0 );
editor->setShowLineNumber( false );
return editor;
}
} // namespace ecode