void CLabelPreview::SelectLabel(int nLabel) { if (m_nSelectedLabel != nLabel) { ShowSelection(NULL, FALSE); m_nSelectedLabel = nLabel; ShowSelection(NULL, TRUE); } }
int PlayerEquip(void *bkg) { int cmd1, cmd2, prev1 = 0, prev2 = 0; int done1 = 0, done2; debug(D_NORMAL, "\n"); done2 = gOptions.twoPlayers ? 0 : 1; while (!done1 || !done2) { memcpy(GetDstScreen(), bkg, SCREEN_MEMSIZE); GetPlayerCmd(&cmd1, &cmd2); if (KeyDown(keyEsc)) return 0; // hack to exit from menu if (gOptions.twoPlayers) { if (cmd1 == prev1) cmd1 = 0; else prev1 = cmd1; // if (!done1) // || !gPlayer1Data.weaponCount < MAX_WEAPONS) done1 = !WeaponSelection(CenterOfLeft(50), CHARACTER_PLAYER1, &gPlayer1Data, cmd1, done1); ShowSelection(CenterOfLeft(50), &gPlayer1Data,CHARACTER_PLAYER1); ShowPlayerControls(CenterOfLeft(100), &gPlayer1Data); if (cmd2 == prev2) cmd2 = 0; else prev2 = cmd2; // if (!done2) // || gPlayer2Data.weaponCount < MAX_WEAPONS) done2 = !WeaponSelection(CenterOfRight(50), CHARACTER_PLAYER2, &gPlayer2Data, cmd2, done2); ShowSelection(CenterOfRight(50), &gPlayer2Data, CHARACTER_PLAYER2); ShowPlayerControls(CenterOfRight(100), &gPlayer2Data); } else { if (cmd1 == prev1) cmd1 = 0; else prev1 = cmd1; if (!done1) // || gPlayer1Data.weaponCount <= 0) done1 = !WeaponSelection(CenterX(80), CHARACTER_PLAYER1, &gPlayer1Data, cmd1, done1); ShowSelection(CenterX(80), &gPlayer1Data, CHARACTER_PLAYER1); ShowPlayerControls(CenterX(100), &gPlayer1Data); } CopyToScreen(); } WaitForRelease(); return 1; }
int PlayerEquip(void *bkg) { int done1 = 0, done2; debug(D_NORMAL, "\n"); done2 = gOptions.twoPlayers ? 0 : 1; while (!done1 || !done2) { int cmd1 = 0; int cmd2 = 0; InputPoll(&gJoysticks, &gKeyboard); memcpy(GetDstScreen(), bkg, GraphicsGetMemSize(&gGraphicsDevice.cachedConfig)); GetPlayerCmd(&cmd1, &cmd2, 1); if (KeyIsPressed(&gKeyboard, keyEsc)) return 0; // hack to exit from menu if (gOptions.twoPlayers) { done1 = !WeaponSelection(CenterOfLeft(50), CHARACTER_PLAYER1, &gPlayer1Data, cmd1, done1); ShowSelection(CenterOfLeft(50), &gPlayer1Data,CHARACTER_PLAYER1); ShowPlayerControls(CenterOfLeft(100), &gConfig.Input.PlayerKeys[0]); done2 = !WeaponSelection(CenterOfRight(50), CHARACTER_PLAYER2, &gPlayer2Data, cmd2, done2); ShowSelection(CenterOfRight(50), &gPlayer2Data, CHARACTER_PLAYER2); ShowPlayerControls(CenterOfRight(100), &gConfig.Input.PlayerKeys[1]); } else { done1 = !WeaponSelection(CenterX(80), CHARACTER_PLAYER1, &gPlayer1Data, cmd1, done1); ShowSelection(CenterX(80), &gPlayer1Data, CHARACTER_PLAYER1); ShowPlayerControls(CenterX(100), &gConfig.Input.PlayerKeys[0]); } CopyToScreen(); SDL_Delay(10); } return 1; }
void CLabelPreview::OnPaint() { CPaintDC dc(this); // device context for painting if (m_pLabelData != NULL) { CRect crClient; GetClientRect(&crClient); m_pLabelData->DrawPage(&dc, crClient, FALSE, &m_crDrawn); ShowSelection(&dc, TRUE); } }
/*---------------------------------------------------------------------- VerticalScroll scrolls forward (delta > 0) or backward (delta < 0). Moves by raster-op a part of the window and displays the new part: - forwardr by RedrawFrameBottom, - backward by RedrawFrameTop. The parameter selection is 1 if threre is a selection, 0 if not. ----------------------------------------------------------------------*/ void VerticalScroll (int frame, int delta, int selection) { int y, height; int max, width; int lframe, hframe; PtrBox srcbox; ViewFrame *pFrame; PtrAbstractBox pAb; ThotBool add; if (delta != 0 && GL_prepare (frame)) { pFrame = &ViewFrameTable[frame - 1]; if (pFrame->FrReady && pFrame->FrAbstractBox) { pAb = pFrame->FrAbstractBox; /* On termine l'insertion courante */ CloseTextInsertion (); srcbox = pAb->AbBox; /* Limites du scroll */ if (srcbox) { /* A priori pas de paves ajoutes */ add = FALSE; /* Au plus, la limite du document + le debordement vertical*/ GetSizesFrame (frame, &lframe, &hframe); max = srcbox->BxYOrg + srcbox->BxHeight - pFrame->FrYOrg - hframe; if (!pAb->AbTruncatedTail && delta > max) { JumpIntoView (frame, 100); return; } if (pAb->AbTruncatedTail) max = delta; if (pAb->AbTruncatedHead) y = delta; else { y = -pFrame->FrYOrg; /* Il faut respecter la marge initiale si elle est positive */ if (srcbox->BxYOrg < 0) y += srcbox->BxYOrg; } /* Le Scroll est possible --> Calcule l'amplitude du Scroll*/ if ((delta > 0 && max > 0) || (delta < 0 && y < 0)) { if (delta > 0) { /* SCROLL forward */ if (delta > max) delta = max; y = delta; height = hframe - y; if (lframe > srcbox->BxWidth) /* pay attention to positioning boxes */ width = srcbox->BxWidth; else width = lframe + 1; Scroll (frame, width, height, 0, y, 0, 0); height = pFrame->FrYOrg + hframe; DefClip (frame, pFrame->FrXOrg, height, pFrame->FrXOrg + lframe, height + delta); add = RedrawFrameBottom (frame, delta, NULL); } else { /* SCROLL backward */ if (delta < y) delta = y; height = hframe + delta; if (lframe > srcbox->BxWidth) /* pay attention to positioning boxes */ width = srcbox->BxWidth; else width = lframe + 1; y = -delta; Scroll (frame, width, height, 0, 0, 0, y); height = pFrame->FrYOrg; DefClip (frame, pFrame->FrXOrg, height + delta, pFrame->FrXOrg + lframe, height); add = RedrawFrameTop (frame, -delta); } /* recompute scrolls */ CheckScrollingWidthHeight (frame); UpdateScrollbars (frame); } if (selection != 0) if (add) { ClearViewSelMarks (frame); /* On supprime l'ancienne selection */ ShowSelection (pFrame->FrAbstractBox, FALSE); /* On reprend la nouvelle */ /* On reallume la selection deja visualisee */ } #ifdef _GL /* to be sure the scrolled page has been displayed */ GL_Swap( frame ); #endif /* _GL */ } } } }