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); }
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(); };
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); } }
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; }
void Button::SetSelectedTexture(sf::Texture* texture){ delete mSelectedSprite; mSelectedSprite = new sf::Sprite(*texture); ResizeButton(GetSize()); };