示例#1
0
void
KeyboardWidget::MoveButtons(const PixelRect &rc)
{
  MoveButtonsToRow(rc, _T("1234567890"), 0);
  MoveButtonsToRow(rc, _T("QWERTYUIOP"), 1);
  MoveButtonsToRow(rc, _T("ASDFGHJKL"), 2, button_width / 3);
  MoveButtonsToRow(rc, _T("ZXCVBNM,."), 3, button_width);

  if (IsLandscape(rc)) {
    MoveButton(_T('-'),
               rc.left + button_width * 9,
               rc.top + Layout::Scale(160));

    MoveButton(_T(' '),
               rc.left + Layout::Scale(80),
               rc.top + Layout::Scale(160));
    ResizeButton(_T(' '), Layout::Scale(93), Layout::Scale(40));
  } else {
    MoveButton(_T('-'),
               rc.left + button_width * 8,
               rc.top + button_height * 4);

    MoveButton(_T(' '),
               rc.left + button_width * 2,
               rc.top + button_height * 4);
    ResizeButton(_T(' '), button_width * 11 / 2, button_height);
  }

  if (show_shift_button)
    shift_button.Move(rc.left, rc.top + 3 * button_height);
}
示例#2
0
Button::Button(	sf::RenderWindow* window,
				sf::Vector2f* pos,
				sf::String* string,
				sf::Font* font,
				sf::Texture* unselected,
				sf::Texture* selected,
				sf::Vector2f* buttonArea)
				: mWindow(window){

	mButtonArea = new sf::FloatRect();
	mTimeDisabled = new sf::Clock();
	mEnabled = true;

	if (unselected != nullptr && selected != nullptr){
		if (unselected == nullptr){
			unselected = selected;
		}
		if (selected == nullptr){
			selected = unselected;
		}

		if (font != nullptr && string != nullptr){
			mText = new sf::Text(*string, *font);
			mFont = font;
			mString = string;
		}

		mUnselectedTexture = unselected;
		mSelectedTexture = selected;
		mUnselectedSprite = new sf::Sprite(*unselected);
		mSelectedSprite = new sf::Sprite(*selected);

		if (pos != nullptr){
			mUnselectedSprite->setPosition(*pos);
			mSelectedSprite->setPosition(*pos);
			delete pos;
		}

		if (buttonArea != nullptr){
			ResizeButton(*buttonArea);
			delete buttonArea;
		}
		else{
			float factorX = mUnselectedSprite->getGlobalBounds().width / mSelectedSprite->getGlobalBounds().width;
			float factorY = mUnselectedSprite->getGlobalBounds().height / mSelectedSprite->getGlobalBounds().height;

			mUnselectedSprite->setScale(factorX, factorY);
			
		}
		*mButtonArea = mSelectedSprite->getGlobalBounds();
		mButtonArea->left = mSelectedSprite->getGlobalBounds().left;
		mButtonArea->top = mSelectedSprite->getGlobalBounds().top;
	}

	SetTextParameters();
};
示例#3
0
void
KeyboardControl::MoveButtons()
{
  MoveButtonsToRow(_T("1234567890"), 0);
  MoveButtonsToRow(_T("QWERTYUIOP"), 1);
  MoveButtonsToRow(_T("ASDFGHJKL"), 2, button_width / 3);
  MoveButtonsToRow(_T("ZXCVBNM,."), 3, button_width * 2 / 3);

  if (IsLandscape()) {
    MoveButton(_T('-'), button_width * 9, Layout::Scale(160));

    MoveButton(_T(' '), Layout::Scale(80), Layout::Scale(160));
    ResizeButton(_T(' '), Layout::Scale(93), Layout::Scale(40));
  } else {
    MoveButton(_T('-'), button_width * 8, button_height * 4);

    MoveButton(_T(' '), button_width * 2, button_height * 4);
    ResizeButton(_T(' '), button_width * 11 / 2, button_height);
  }
}
示例#4
0
BOOL CSkinListProgressCtrl::DeleteItem( int nItem )
{
	CButtonEntry* pButtonEntry=0;

	int Index = 0;

	DWORD dwMissionID;
	dwMissionID = GetItemData( nItem );

	POSITION pos = m_ButtonEntries.GetStartPosition();

	while (pos != NULL) 
	{
		m_ButtonEntries.GetNextAssoc(pos, Index, pButtonEntry);
	//	if (pButtonEntry) delete pButtonEntry;
		if (pButtonEntry)
		{
			if (pButtonEntry->dwMissionID == dwMissionID)
			{
			//	TRACE("ShowWindow(%d)\n", dwMissionID);
			//	pButtonEntry->m_Btn.DestroyWindow();
			//	pButtonEntry->m_Btn.ShowWindow(SW_HIDE);
			//	if (pButtonEntry) delete pButtonEntry;
			//	m_ProgEntries.RemoveKey(Index);

				TRACE("DeleteItemButton(%d): MissionID = %d\n", Index, dwMissionID );

				pButtonEntry->m_Btn.ShowWindow(SW_HIDE);

				pButtonEntry->m_Index = -1;
				pButtonEntry->dwMissionID = -1;

				break;
			}
		}

	}

	CProgressEntry* pProgEntry = 0;
	pos = m_ProgEntries.GetStartPosition();
	Index = 0;
	while (pos != NULL) 
	{
		m_ProgEntries.GetNextAssoc(pos, Index, pProgEntry);
	//	if (pButtonEntry) delete pButtonEntry;
		if (pProgEntry)
		{
			if (pProgEntry->dwMissionID == dwMissionID)
			{
				//	TRACE("m_Prog.ShowWindow(%d)\n", dwMissionID);
			//	pProgEntry->m_Prog.ShowWindow(SW_HIDE);
			//	pProgEntry->m_Prog.DestroyWindow();
			//	pButtonEntry->m_Btn.ShowWindow(SW_HIDE);
			//	if (pProgEntry) delete pProgEntry;
			//	m_ProgEntries.RemoveKey(Index);
				TRACE("DeleteItemProg(%d): MissionID = %d\n", Index, dwMissionID );

				pProgEntry->m_Prog.ShowWindow(SW_HIDE);

				pProgEntry->m_Index = -1;
				pProgEntry->dwMissionID = -1;			
				break;
			}
		}

	}


	BOOL bResult = CListCtrl::DeleteItem( nItem );

	if ( GetItemCount() > 0 )
	{
		Reflash();
		ResizeButton();
		ResizeProg();
	}

	this->Invalidate();
	return bResult;
}
示例#5
0
void Button::SetSelectedTexture(sf::Texture* texture){
	delete mSelectedSprite;
	mSelectedSprite = new sf::Sprite(*texture);
	ResizeButton(GetSize());
};