void QuickView::PrintText(const string& Str) { if (WhereY()>m_Y2-3 || WhereX()>m_X2-2) return; Global->FS << fmt::MaxWidth(m_X2-2-WhereX()+1)<<Str; }
void FolderTree::DrawEdit() { int FindY=Y2-2; const wchar_t *SearchTxt=MSG(MFoldTreeSearch); GotoXY(X1+1,FindY); SetColor(COL_PANELTEXT); Global->FS << SearchTxt<<L" "; FindEdit->SetPosition(X1+StrLength(SearchTxt)+2,FindY,Min(X2-1,X1+25),FindY); FindEdit->SetObjectColor(COL_DIALOGEDIT); FindEdit->Show(); if (WhereX()<X2) { SetColor(COL_PANELTEXT); Global->FS << fmt::MinWidth(X2-WhereX())<<L""; } }
void HMenu::ShowMenu() { string strTmpStr; GotoXY(X1+2,Y1); for (int i=0; i<ItemCount; i++) { ItemX[i]=WhereX(); if (Item[i].Selected) SetColor(COL_HMENUSELECTEDTEXT); else SetColor(COL_HMENUTEXT); strTmpStr=L" "; strTmpStr+=Item[i].Name; strTmpStr+=L" "; HiText(strTmpStr,ColorIndexToColor(Item[i].Selected ? COL_HMENUSELECTEDHIGHLIGHT:COL_HMENUHIGHLIGHT)); } ItemX[ItemCount]=WhereX(); }
void KeyBar::DisplayObject() { GotoXY(X1,Y1); AltState=CtrlState=ShiftState=0; #if 1 //Maximus: на таблетках лучше бы все кнопки показать, для пальцетыканья int KeyWidth=(X2-X1+2)/12; #else int KeyWidth=(X2-X1-1)/12; #endif #if 1 //Maximus: на таблетках лучше бы все кнопки показать, для пальцетыканья if (KeyWidth<3) KeyWidth=3; #else if (KeyWidth<8) KeyWidth=8; #endif int LabelWidth=KeyWidth-2; for (int i=0; i<KEY_COUNT; i++) { #if 1 //Maximus: на таблетках лучше бы все кнопки показать, для пальцетыканья if (WhereX()+2>X2) break; else if ((i+1)==KEY_COUNT) LabelWidth=X2-WhereX()-1; #else if (WhereX()+LabelWidth>=X2) break; #endif SetColor(COL_KEYBARNUM); FS<<i+1; SetColor(COL_KEYBARTEXT); const wchar_t *Label=L""; if (IntKeyState.ShiftPressed) { ShiftState=IntKeyState.ShiftPressed; if (IntKeyState.CtrlPressed) { CtrlState=IntKeyState.CtrlPressed; if (!IntKeyState.AltPressed) // Ctrl-Alt-Shift - это особый случай :-) { if (i<KeyCounts [KBL_CTRLSHIFT]) Label=KeyTitles [KBL_CTRLSHIFT][i]; } else if (!(Opt.CASRule&1) || !(Opt.CASRule&2)) { if (i<KeyCounts [KBL_CTRLALTSHIFT]) Label=KeyTitles [KBL_CTRLALTSHIFT][i]; } } else if (IntKeyState.AltPressed) { if (i<KeyCounts [KBL_ALTSHIFT]) Label=KeyTitles [KBL_ALTSHIFT][i]; AltState=IntKeyState.AltPressed; } else { if (i<KeyCounts [KBL_SHIFT]) Label=KeyTitles [KBL_SHIFT][i]; } } else if (IntKeyState.CtrlPressed) { CtrlState=IntKeyState.CtrlPressed; if (IntKeyState.AltPressed) { if (i<KeyCounts [KBL_CTRLALT]) Label=KeyTitles [KBL_CTRLALT][i]; AltState=IntKeyState.AltPressed; } else { if (i<KeyCounts [KBL_CTRL]) Label=KeyTitles [KBL_CTRL][i]; } } else if (IntKeyState.AltPressed) { AltState=IntKeyState.AltPressed; if (i<KeyCounts [KBL_ALT]) Label=KeyTitles [KBL_ALT][i]; } else if (i<KeyCounts [KBL_MAIN] && !(DisableMask & (1<<i))) Label=KeyTitles [KBL_MAIN][i]; if (!Label) Label=L""; string strLabel=Label; if (strLabel.Contains(L'|')) { UserDefinedList LabelList(ULF_NOTRIM|ULF_NOUNQUOTE, L"|"); if(LabelList.Set(Label) && !LabelList.IsEmpty()) { string strLabelTest, strLabel2; strLabel=LabelList.GetNext(); const wchar_t *Label2; while ((Label2=LabelList.GetNext()) != nullptr) { strLabelTest=strLabel; strLabelTest+=Label2; if (StrLength(strLabelTest) <= LabelWidth) if (StrLength(Label2) > StrLength(strLabel2)) strLabel2=Label2; } strLabel+=strLabel2; } } FS<<fmt::LeftAlign()<<fmt::ExactWidth(LabelWidth)<<strLabel; if (i<KEY_COUNT-1) { SetColor(COL_KEYBARBACKGROUND); Text(L" "); } } int Width=X2-WhereX()+1; if (Width>0) { SetColor(COL_KEYBARTEXT); FS<<fmt::MinWidth(Width)<<L""; } }
void backline(void) { SEH_PUSH("backline()"); output(" "); for (int i = WhereX(); i > 0; i--) output("\b \b"); output( " \r" ); }