Add crude terminal width detection.
This at least keeps it from wrapping very badly. I'll expand on this once the rest of my changes get good commits.
This commit is contained in:
@@ -6,6 +6,7 @@
|
|||||||
#include <filesystem>
|
#include <filesystem>
|
||||||
|
|
||||||
#include <Alepha/ProgramOptions.h>
|
#include <Alepha/ProgramOptions.h>
|
||||||
|
#include <Alepha/Console.h>
|
||||||
|
|
||||||
#include <Alepha/Utility/enroll.h>
|
#include <Alepha/Utility/enroll.h>
|
||||||
|
|
||||||
@@ -79,10 +80,15 @@ main( const int argcnt, const char *const argvec[] )
|
|||||||
|
|
||||||
const int rowWidth= widest + C::filePadding + C::sizeWidth + 1 + C::modeBitsWidth + 2 + ( O::twoDigitDate ? C::shortDateWidth : C::dateWidth )+ 1 + C::timeWidth;
|
const int rowWidth= widest + C::filePadding + C::sizeWidth + 1 + C::modeBitsWidth + 2 + ( O::twoDigitDate ? C::shortDateWidth : C::dateWidth )+ 1 + C::timeWidth;
|
||||||
|
|
||||||
|
const int terminalWidth= Alepha::Console::main().getScreenWidth();
|
||||||
|
|
||||||
std::cout << "[1;36;96m";
|
std::cout << "[1;36;96m";
|
||||||
for( int i= 0; i < rowWidth; ++i ) std::cout << "\u2500";
|
for( int i= 0; i < rowWidth; ++i ) std::cout << "\u2500";
|
||||||
|
if( terminalWidth >= ( rowWidth * 2 + 1 ) )
|
||||||
|
{
|
||||||
std::cout << "\u252c";
|
std::cout << "\u252c";
|
||||||
for( int i= 0; i < rowWidth; ++i ) std::cout << "\u2500";
|
for( int i= 0; i < rowWidth; ++i ) std::cout << "\u2500";
|
||||||
|
}
|
||||||
std::cout << "[m" << std::endl;
|
std::cout << "[m" << std::endl;
|
||||||
|
|
||||||
std::size_t fileCount= 0;
|
std::size_t fileCount= 0;
|
||||||
@@ -123,7 +129,7 @@ main( const int argcnt, const char *const argvec[] )
|
|||||||
std::cout << std::setw( 2 ) << std::setfill( '0' ) << entry.minute;
|
std::cout << std::setw( 2 ) << std::setfill( '0' ) << entry.minute;
|
||||||
std::cout << "\e[m";
|
std::cout << "\e[m";
|
||||||
|
|
||||||
if( side == false )
|
if( terminalWidth >= ( rowWidth * 2 + 1 ) and side == false )
|
||||||
{
|
{
|
||||||
std::cout << "[1;36;96m\u2502[m";
|
std::cout << "[1;36;96m\u2502[m";
|
||||||
side= true;
|
side= true;
|
||||||
@@ -138,8 +144,11 @@ main( const int argcnt, const char *const argvec[] )
|
|||||||
|
|
||||||
std::cout << "[1;36;96m";
|
std::cout << "[1;36;96m";
|
||||||
for( int i= 0; i < rowWidth; ++i ) std::cout << "\u2500";
|
for( int i= 0; i < rowWidth; ++i ) std::cout << "\u2500";
|
||||||
|
if( terminalWidth >= ( rowWidth * 2 + 1 ) )
|
||||||
|
{
|
||||||
std::cout << "\u2534";
|
std::cout << "\u2534";
|
||||||
for( int i= 0; i < rowWidth; ++i ) std::cout << "\u2500";
|
for( int i= 0; i < rowWidth; ++i ) std::cout << "\u2500";
|
||||||
|
}
|
||||||
std::cout << "[m" << std::endl;
|
std::cout << "[m" << std::endl;
|
||||||
|
|
||||||
std::cout << std::setw( C::sizeWidth ) << std::setfill( ' ' ) << std::right << "\e[;1;36;96m" << fileCount;
|
std::cout << std::setw( C::sizeWidth ) << std::setfill( ' ' ) << std::right << "\e[;1;36;96m" << fileCount;
|
||||||
|
|||||||
Reference in New Issue
Block a user