Ejemplo n.º 1
0
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;
}
Ejemplo n.º 2
0
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"";
	}
}
Ejemplo n.º 3
0
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();
}
Ejemplo n.º 4
0
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"";
	}
}
Ejemplo n.º 5
0
void backline(void)
{
	SEH_PUSH("backline()");
	output(" "); for (int i = WhereX(); i > 0; i--) output("\b \b");
	output( " \r" );
}