mirror of
https://github.com/SpartanJ/eepp.git
synced 2026-06-05 21:16:28 +03:00
Status Bar + Build WIP
This commit is contained in:
71
src/tools/ecode/statusbuildoutputcontroller.cpp
Normal file
71
src/tools/ecode/statusbuildoutputcontroller.cpp
Normal 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
|
||||
Reference in New Issue
Block a user