/* Procedure pour afficher les boutons et popup * @param SDL_Surface* window * Surface de la fenetre * @param S_GameState gameState * Etat du jeu */ void DisplayBoardOverlays(SDL_Surface* window, S_GameState gameState) { switch (gameState.currentStage) { case WAITING_FIRST_ROLL: DisplayButton(window, CENTER_X, CENTER_Y, "Lancer", gameState.selected == BUTTON1); break; case WAITING_ROLL_DBL: // On affiche les boutons que si le joueur est humain if (IsHuman(&gameState, 1)) { DisplayButton(window, (gameState.currentPlayer == EPlayer1) ? CENTER_LEFT : CENTER_RIGHT, CENTER_Y - 20, "Doubler", gameState.selected == BUTTON1); DisplayButton(window, (gameState.currentPlayer == EPlayer1) ? CENTER_LEFT : CENTER_RIGHT, CENTER_Y + 20, "Lancer", gameState.selected == BUTTON2); } break; case WAITING_ROLL: // On affiche les boutons que si le joueur est humain if (IsHuman(&gameState, 1)) { DisplayButton(window, (gameState.currentPlayer == EPlayer1) ? CENTER_LEFT : CENTER_RIGHT, CENTER_Y, "Lancer", gameState.selected == BUTTON1); } break; case FIRST_ROLL_POPUP: DisplayDice(window, gameState); // On affiche la popup que si un humain joue if (gameState.gameConfig.mode != AI_AI) { if (gameState.currentPlayer == EPlayer1) DisplayPopup(window, 3, "Le joueur", gameState.gameConfig.namePlayer1, "commence."); else DisplayPopup(window, 3, "Le joueur", gameState.gameConfig.namePlayer2, "commence."); DisplayButton(window, CENTER_X, 320, "OK", gameState.selected == BUTTON1); } break; case SELECT_ZONE_DST: DisplayNumbers(window, gameState); DisplayDice(window, gameState); if (gameState.gameConfig.option && gameState.gameConfig.mode != AI_AI) DisplayHelp(window, gameState); break; case PASS_POPUP: DisplayDice(window, gameState); // On affiche la popup que si le joueur est humain if (IsHuman(&gameState, 1)) { if (gameState.currentPlayer == EPlayer1) DisplayPopup(window, 3, "Le joueur", gameState.gameConfig.namePlayer1, "passe son tour."); else DisplayPopup(window, 3, "Le joueur", gameState.gameConfig.namePlayer2, "passe son tour."); DisplayButton(window, CENTER_X, 320, "OK", gameState.selected == BUTTON1); } break; case DOUBLE_POPUP: // On affiche la popup que si le joueur adverse est humain if (IsHuman(&gameState, 0)) { if (gameState.currentPlayer == EPlayer1) DisplayPopup(window, 3, "Le joueur", gameState.gameConfig.namePlayer1, "veut doubler."); else DisplayPopup(window, 3, "Le joueur", gameState.gameConfig.namePlayer2, "veut doubler."); DisplayButton(window, CENTER_X - 60, 320, "Accepter", gameState.selected == BUTTON1); DisplayButton(window, CENTER_X + 60, 320, "Refuser", gameState.selected == BUTTON2); } break; case FINISH_GAME_POPUP: DisplayDice(window, gameState); // On affiche la popup que si un joueur est humain if (gameState.gameConfig.mode != AI_AI) { if (gameState.currentPlayer == EPlayer1) DisplayPopup(window, 3, "Le joueur", gameState.gameConfig.namePlayer1, "a gagné la manche."); else DisplayPopup(window, 3, "Le joueur", gameState.gameConfig.namePlayer2, "a gagné la manche."); DisplayButton(window, CENTER_X, 320, "OK", gameState.selected == BUTTON1); } break; case FINISH_MATCH_POPUP: DisplayDice(window, gameState); if (gameState.currentPlayer == EPlayer1) DisplayPopup(window, 3, "Le joueur", gameState.gameConfig.namePlayer1, "a gagné le match."); else DisplayPopup(window, 3, "Le joueur", gameState.gameConfig.namePlayer2, "a gagné le match."); DisplayButton(window, CENTER_X, 320, "Menu", gameState.selected == BUTTON1); break; default: DisplayNumbers(window, gameState); DisplayDice(window, gameState); break; } }
void CPropertyList::OnSelchange() { CRect rect; CString lBoxSelText; static int recurse = 0; //m_curSel = GetCurSel(); GetItemRect(m_curSel,rect); rect.left = m_nDivider; CPropertyItem* pItem = (CPropertyItem*) GetItemDataPtr(m_curSel); if (updateInspectors) { g_Inspectors->entityDlg.SetKeyVal(pItem->m_propName, pItem->m_curValue); } if (m_btnCtrl) { m_btnCtrl.ShowWindow(SW_HIDE); } if (pItem->m_nItemType==PIT_COMBO) { //display the combo box. If the combo box has already been //created then simply move it to the new location, else create it m_nLastBox = 0; if (m_cmbBox) { m_cmbBox.MoveWindow(rect); } else { rect.bottom += 300; m_cmbBox.Create(CBS_DROPDOWNLIST | WS_VSCROLL | WS_VISIBLE | WS_CHILD | WS_BORDER,rect,this,IDC_PROPCMBBOX); m_cmbBox.SetFont(&m_SSerif8Font); } //add the choices for this particular property CString cmbItems = pItem->m_cmbItems; lBoxSelText = pItem->m_curValue; m_cmbBox.ResetContent(); m_cmbBox.AddString(""); int i,i2; i=0; while ((i2=cmbItems.Find('|',i)) != -1) { m_cmbBox.AddString(cmbItems.Mid(i,i2-i)); i=i2+1; } m_cmbBox.ShowWindow(SW_SHOW); //m_cmbBox.SetFocus(); //jump to the property's current value in the combo box int j = m_cmbBox.FindStringExact(0,lBoxSelText); if (j != CB_ERR) { m_cmbBox.SetCurSel(j); } else { m_cmbBox.SetCurSel(0); } //m_cmbBox.ShowDropDown(); } else if (pItem->m_nItemType==PIT_EDIT) { //display edit box m_nLastBox = 1; m_prevSel = m_curSel; rect.bottom -= 3; if (m_editBox) { m_editBox.MoveWindow(rect); } else { m_editBox.Create(ES_LEFT | ES_AUTOHSCROLL | WS_VISIBLE | WS_CHILD | WS_BORDER,rect,this,IDC_PROPEDITBOX); m_editBox.SetFont(&m_SSerif8Font); } lBoxSelText = pItem->m_curValue; m_editBox.ShowWindow(SW_SHOW); m_editBox.SetFocus(); //set the text in the edit box to the property's current value bool b = updateInspectors; updateInspectors = false; m_editBox.SetWindowText(lBoxSelText); updateInspectors = b; } else if (pItem->m_nItemType != PIT_VAR) { DisplayButton(rect); } }
LRESULT CMainFrame::OnRegLeftDbClick(WPARAM wParam,LPARAM lParam) { HTREEITEM hItem = (HTREEITEM) wParam; if(hItem == NULL || hItem == pRegTreeView->GetTreeCtrl().GetRootItem() || m_MissionData.m_RecvSocket == 0) return FALSE; char m_KeyName[1024] = {0}; if(!GetMyRegLeftPath(hItem,m_KeyName)) return FALSE; m_MissionData.m_Command = CLIENT_REG_QUERY; strcpy(m_MissionData.m_TransData,m_KeyName); m_MissionData.m_TransLen = strlen(m_KeyName); if(!ProcessOneTrans(&m_MissionData)) { ShowResponse(m_MissionData.m_Command); return FALSE; } if(m_MissionData.m_Command == NOT_FIND_ANY_FILE) { pRegListView->GetListCtrl().DeleteAllItems(); pRegListView->GetListCtrl().InsertItem(0,"(默认)",1); pRegListView->GetListCtrl().SetItemText(0,1,"REG_SZ"); pRegListView->GetListCtrl().SetItemText(0,2,"(数值未设置)"); DisplayButton(&pRegTreeView->GetTreeCtrl(),hItem,0); return FALSE; } else if(m_MissionData.m_Command != 0) { ShowResponse(m_MissionData.m_Command); DisplayButton(&pRegTreeView->GetTreeCtrl(),hItem,0); return FALSE; } DWORD dwFileSize = m_MissionData.m_TransLen; BYTE * m_DesBuf = (LPBYTE) m_MissionData.m_TransData; if (pRegTreeView->GetTreeCtrl().ItemHasChildren(hItem)) { HTREEITEM hNextItem; HTREEITEM hChildItem = pRegTreeView->GetTreeCtrl().GetChildItem(hItem); while (hChildItem != NULL) { hNextItem = pRegTreeView->GetTreeCtrl().GetNextItem(hChildItem,TVGN_NEXT); pRegTreeView->GetTreeCtrl().DeleteItem(hChildItem); hChildItem = hNextItem; } } pRegListView->GetListCtrl().DeleteAllItems(); REGINFO m_RegInfo = {0}; TV_INSERTSTRUCT tvstruct; int nItem = 0; BOOL IsHasChild = FALSE; for(ULONG i = 0; i < (dwFileSize/sizeof(REGINFO)); i++) { memset(&m_RegInfo,0,sizeof(REGINFO)); memcpy(&m_RegInfo,m_DesBuf + i * sizeof(REGINFO),sizeof(REGINFO)); m_RegInfo.m_Name[m_RegInfo.m_NameLen] = 0; if(!m_RegInfo.m_IsKey) { if(m_RegInfo.m_DataType == REG_SZ) { nItem = pRegListView->GetListCtrl().InsertItem (pRegListView->GetListCtrl().GetItemCount(),m_RegInfo.m_Name,1); pRegListView->GetListCtrl().SetItemText(nItem,1,"REG_SZ"); m_RegInfo.m_Data[m_RegInfo.m_Datalen] = 0; pRegListView->GetListCtrl().SetItemText(nItem,2,m_RegInfo.m_Data); } else if(m_RegInfo.m_DataType == REG_BINARY) { nItem = pRegListView->GetListCtrl().InsertItem (pRegListView->GetListCtrl().GetItemCount(),m_RegInfo.m_Name,0); pRegListView->GetListCtrl().SetItemText(nItem,1,"REG_BINARY"); char m_Tmpbuf[4096] = {0}; BcdToAsc((BYTE*) m_RegInfo.m_Data,(BYTE*) m_Tmpbuf,m_RegInfo.m_Datalen); pRegListView->GetListCtrl().SetItemText(nItem,2,m_Tmpbuf); } else { nItem = pRegListView->GetListCtrl().InsertItem (pRegListView->GetListCtrl().GetItemCount(),m_RegInfo.m_Name,0); pRegListView->GetListCtrl().SetItemText(nItem,1,"REG_DWORD"); char m_Tmpbuf[40] = {0}; sprintf(m_Tmpbuf,"0x%08lx(%ld)",(UINT) *((DWORD*) m_RegInfo.m_Data), (UINT) *((DWORD*) m_RegInfo.m_Data)); pRegListView->GetListCtrl().SetItemText(nItem,2,m_Tmpbuf); } } else { tvstruct.hParent = hItem; tvstruct.hInsertAfter = TVI_LAST; tvstruct.item.iImage = 0; tvstruct.item.iSelectedImage = 1; tvstruct.item.pszText = m_RegInfo.m_Name; tvstruct.item.mask = TVIF_IMAGE | TVIF_SELECTEDIMAGE | TVIF_TEXT; HTREEITEM m_Parent = pRegTreeView->GetTreeCtrl().InsertItem(&tvstruct); DisplayButton(&pRegTreeView->GetTreeCtrl(),m_Parent,1); pRegTreeView->GetTreeCtrl().SetItemData(m_Parent,0); IsHasChild = TRUE; } } if(!IsHasChild) { DisplayButton(&pRegTreeView->GetTreeCtrl(),hItem,0); } pRegTreeView->GetTreeCtrl().Expand(hItem,TVE_EXPAND); return TRUE; }