make tag editor proof against tiny screen size

This commit is contained in:
Andrzej Rybczak
2009-09-04 15:02:22 +02:00
parent 7da142a4c7
commit df0d62736e
2 changed files with 14 additions and 8 deletions

View File

@@ -45,15 +45,14 @@ TagEditor *myTagEditor = new TagEditor;
const std::string TagEditor::PatternsFile = config_dir + "patterns.list";
std::deque<std::string> TagEditor::Patterns;
const size_t TagEditor::MiddleColumnWidth = 26;
size_t TagEditor::LeftColumnWidth;
size_t TagEditor::MiddleColumnWidth;
size_t TagEditor::MiddleColumnStartX;
size_t TagEditor::RightColumnWidth;
size_t TagEditor::RightColumnStartX;
const size_t TagEditor::FParserDialogWidth = 30;
const size_t TagEditor::FParserDialogHeight = 6;
size_t TagEditor::FParserDialogWidth;
size_t TagEditor::FParserDialogHeight;
size_t TagEditor::FParserWidth;
size_t TagEditor::FParserWidthOne;
size_t TagEditor::FParserWidthTwo;
@@ -143,11 +142,14 @@ void TagEditor::Init()
void TagEditor::SetDimensions()
{
LeftColumnWidth = COLS/2-MiddleColumnWidth/2;
MiddleColumnWidth = std::min(26, COLS-2);
LeftColumnWidth = (COLS-MiddleColumnWidth)/2;
MiddleColumnStartX = LeftColumnWidth+1;
RightColumnWidth = COLS-LeftColumnWidth-MiddleColumnWidth-2;
RightColumnStartX = LeftColumnWidth+MiddleColumnWidth+2;
FParserDialogWidth = std::min(30, COLS);
FParserDialogHeight = std::min(size_t(6), MainHeight);
FParserWidth = COLS*0.9;
FParserHeight = std::min(size_t(LINES*0.8), MainHeight);
FParserWidthOne = FParserWidth/2;
@@ -162,6 +164,7 @@ void TagEditor::Resize()
Dirs->Resize(LeftColumnWidth, MainHeight);
TagTypes->Resize(MiddleColumnWidth, MainHeight);
Tags->Resize(RightColumnWidth, MainHeight);
FParserDialog->Resize(FParserDialogWidth, FParserDialogHeight);
FParser->Resize(FParserWidthOne, FParserHeight);
FParserLegend->Resize(FParserWidthTwo, FParserHeight);
FParserPreview->Resize(FParserWidthTwo, FParserHeight);
@@ -176,6 +179,9 @@ void TagEditor::Resize()
FParserLegend->MoveTo((COLS-FParserWidth)/2+FParserWidthOne, (MainHeight-FParserHeight)/2+MainStartY);
FParserPreview->MoveTo((COLS-FParserWidth)/2+FParserWidthOne, (MainHeight-FParserHeight)/2+MainStartY);
if (MainHeight < 5 && (w == FParserDialog || w == FParser || w == FParserHelper)) // screen too low
w = TagTypes; // fall back to main columns
hasToBeResized = 0;
}

View File

@@ -111,14 +111,14 @@ class TagEditor : public Screen<Window>
static const std::string PatternsFile;
static std::deque<std::string> Patterns;
static const size_t MiddleColumnWidth;
static size_t MiddleColumnWidth;
static size_t LeftColumnWidth;
static size_t MiddleColumnStartX;
static size_t RightColumnWidth;
static size_t RightColumnStartX;
static const size_t FParserDialogWidth;
static const size_t FParserDialogHeight;
static size_t FParserDialogWidth;
static size_t FParserDialogHeight;
static size_t FParserWidth;
static size_t FParserWidthOne;
static size_t FParserWidthTwo;