bool LobbyForm::DoModal(int *presult, Sfx sfxShow, Sfx sfxHide) { char name[kcbPlayerName*2]; handler_.GetPlayerName(name, sizeof(name)); LabelControl *plbl = (LabelControl *)GetControlPtr(kidcPlayerName); plbl->Show(false); plbl = (LabelControl *)GetControlPtr(kidcPlayerNameLabel); const char *s = base::Format::ToString("%s / %s", name, server_name_.c_str()); plbl->SetText(s); ListControl *plstc = (ListControl *)GetControlPtr(kidcRoomList); Rect rcList; plstc->GetRect(&rcList); Font *pfnt = plstc->GetFont(); int cxPrivate = pfnt->GetTextExtent("PRIVATE"); int cxStart = rcList.Width() / 20; // 10; plstc->SetTabStops(0, cxStart, rcList.Width() - cxStart - cxPrivate); plstc->SetTabFlags(0, kfLstTabEllipsis, 0); GetControlPtr(kidcJoinRoom)->Show(false); Show(true); gptra->SetCallback(this); dword result = gptra->JoinLobby(this); if (result != knLobbyJoinResultSuccess) { gptra->SetCallback(NULL); ShowJoinMessage(result); *presult = 0; return false; } bool success = ShellForm::DoModal(presult, sfxShow, sfxHide); gptra->LeaveLobby(); gptra->SetCallback(NULL); return success; }
void ChooseServerForm::PositionColumns() { ListControl *plstc = (ListControl *)GetControlPtr(kidcServerList); Rect rcList; plstc->GetRect(&rcList); Font *pfnt = plstc->GetFont(); LabelControl *plblPlayers = (LabelControl *)GetControlPtr(kidcNumPlayers); int cxNumPlayers = pfnt->GetTextExtent(plblPlayers->GetText()); int xNumPlayers = rcList.right - cxNumPlayers; LabelControl *plblStatus = (LabelControl *)GetControlPtr(kidcServerStatus); int cxStatus = pfnt->GetTextExtent(plblStatus->GetText()); int xStatus = xNumPlayers - 40 - cxStatus; int xLocation = rcList.left + (xStatus - rcList.left) / 2; int xName = rcList.left; plstc->SetTabStops(xName - rcList.left, xLocation - rcList.left, xStatus + cxStatus / 2 - rcList.left, xNumPlayers + cxNumPlayers / 2 - rcList.left); plstc->SetTabFlags(0, 0, kfLstTabCenterOn, kfLstTabCenterOn); word ids[] = { kidcServerName, kidcServerLocation, kidcServerStatus, kidcNumPlayers }; int ax[] = { xName, xLocation, xStatus, xNumPlayers }; for (int i = 0; i < ARRAYSIZE(ids); i++) { LabelControl *plbl = (LabelControl *)GetControlPtr(ids[i]); Rect rcCtl; plbl->GetRect(&rcCtl); plbl->SetPosition(ax[i], rcCtl.top); } }
bool DownloadMissionPackForm::ShowInfo(bool fRequest) { ListControl *plstc = (ListControl *)GetControlPtr(kidcMissionPackList); IndexEntry *entry = (IndexEntry *)plstc->GetSelectedItemData(); if (entry == NULL) { GetControlPtr(kidcDiscuss)->Show(false); return false; } const json::JsonMap *map = gppim->GetInfoMap(&entry->packid); if (map == NULL) { if (fRequest) { if (entry->packid.id == PACKID_CUSTOMURL) { ShowStatus(CTX_INFO, "Press Download to download from a custom URL"); } else { gppim->Start(&entry->packid, CTX_INFO, this); ShowStatus(CTX_INFO, "Loading Mission Pack info..."); } } GetControlPtr(kidcDiscuss)->Show(false); return false; } const char *author = GetString(map, "a", "unknown"); const char *desc = GetString(map, "d", "no description"); const char *s = base::Format::ToString("By %s: %s", author, desc); delete map; LabelControl *plbl = (LabelControl *)GetControlPtr(kidcMissionPackInfo); plbl->SetText((char *)s); GetControlPtr(kidcDiscuss)->Show(true); return true; }
void CreateGameForm::OnControlNotify(word idc, int nNotify) { if (idc == kidcCategories) { RadioButtonBarControl *prbbc = (RadioButtonBarControl *)GetControlPtr(kidcCategories); int iButtonSelected = prbbc->GetSelectionIndex(); if (iButtonSelected < 0) { iButtonSelected = 0; } MissionType mtNew = MissionTypeFromIndex(iButtonSelected); if (mtNew == m_mt) { return; } SwitchToMissionType(mtNew); // If in Add-On category, and there is nothing there, show this // label, otherwise hide it bool fShowLabel = false; ListControl *plstc = m_aplstc[IndexFromMissionType(kmtMultiplayerAddOn)]; if (m_mt == kmtMultiplayerAddOn) { if (plstc->GetCount() == 0) { fShowLabel = true; } } LabelControl *plbl = (LabelControl *)GetControlPtr(kidcAddOnMessage); if (fShowLabel) { plbl->Show(true); if (m_mt == kmtMultiplayerAddOn) { plstc->Show(false); } } else { plbl->Show(false); if (m_mt == kmtMultiplayerAddOn) { plstc->Show(true); } } } if (idc == kidcChallengeList || idc == kidcAddOnList) { UpdateLabels(); } // Handle button hiding bool fShow = true; ListControl *plstc = m_aplstc[IndexFromMissionType(m_mt)]; if (plstc->GetSelectedItemIndex() == -1) { fShow = false; } GetControlPtr(kidcOk)->Show(fShow); }
void ChooseServerForm::ShowHide() { ListControl *plstc = (ListControl *)GetControlPtr(kidcServerList); ButtonControl *pbtn = (ButtonControl *)GetControlPtr(kidcOk); int index = plstc->GetSelectedItemIndex(); if (index < 0 || index >= infos_.size()) { pbtn->Show(false); return; } ServerInfo& info = infos_[index]; if (strcmp(info.status.c_str(), "ok") != 0) { pbtn->Show(false); return; } pbtn->Show(true); }
extern "C" long FAR PASCAL _export VScrollWndProc (HWND hwnd, WORD message, WPARAM wParam, LPARAM lParam) { BOOL bCallDef = TRUE; WNDPROC DefWndProc = (WNDPROC)GetControlPtr(hwnd); // This should never happen, SKJ WndProc is already stuffed in ADBG_ASSERT_E(DefWndProc, return 0L, "Invalid WndProc"); switch (message) { case WM_PAINT: { PAINTSTRUCT ps; bCallDef = IsWindowVisible(hwnd); if (bCallDef == FALSE) // i.e. if scroll bar is not visible { BeginPaint(hwnd, &ps); EndPaint(hwnd, &ps); return 0L; } } default: break; } return CallWindowProc ((WNDPROC)DefWndProc, hwnd, message, wParam, lParam) ; }
bool LobbyForm::OnFilterEvent(Event *pevt) { if (pevt->eType == askStringEvent) { if (gptra == NULL) { return true; } char s[512]; HostGetAskString(s, sizeof(s)); ListControl *plstc = (ListControl *)GetControlPtr(kidcRoomList); dword roomid = (dword)(pword)plstc->GetSelectedItemData(); RoomMap::iterator it = map_.find(roomid); if (it != map_.end()) { it->second.password = s; InitiateJoinRoom(it->second); } return true; } if (pevt->eType == connectionCloseEvent) { HtMessageBox(kfMbWhiteBorder, "Comm Problem", "The server has closed your connection."); EndForm(kidcCancel); return true; } if (pevt->eType == showMessageEvent) { HtMessageBox(kfMbWhiteBorder, "Server Message", message_.c_str()); message_ = ""; return true; } return false; }
void LobbyForm::OnLurkerCount(dword count) { lurkers_ = count; if (zipdone_) { LabelControl *plbl = (LabelControl *)GetControlPtr(kidcLurkerCount); plbl->SetText(base::Format::ToString("Lurkers: %d", count)); } }
void ChooseServerForm::Refresh(bool show_errors) { bool success = RequestInfos(); ListControl *plstc = (ListControl *)GetControlPtr(kidcServerList); plstc->Clear(); if (infos_.size() == 0) { if (success) { errorstr_ = "The multiplayer service is down for maintenance. Try again later."; } if (show_errors) { HtMessageBox(kfMbWhiteBorder, "Service Message", errorstr_.c_str()); } else { errors_ = true; } } else { for (int i = 0; i < infos_.size(); i++) { const ServerInfo& info = infos_[i]; const char *s = base::Format::ToString("%s\t%s\t%s\t%d", info.name.c_str(), info.location.c_str(), info.status.c_str(), info.player_count); plstc->Add(s); } plstc->Select(0, true); } ShowHide(); }
void ChooseServerForm::OnControlSelected(word idc) { switch (idc) { case kidcOk: { ListControl *plstc = (ListControl *)GetControlPtr(kidcServerList); int index = plstc->GetSelectedItemIndex(); if (index >= 0 && index < infos_.size()) { dword result = Connect(infos_[index]); if (result == knTransportOpenResultSuccess) { EndForm(kidcOk); break; } ShowTransportError(result); } } break; case kidcRefresh: Refresh(); break; case kidcCancel: EndForm(kidcCancel); break; } }
/** 设置页面显示内容 * * \param pszTitle 标题 * \param pURL 链接 * \param pDes 描述 * \return 无 */ void TWebForm::SetText(const TUChar* pszTitle, const char* pURL, const char* pDes) { TUChar *pText; #if 0 TLabel* pTitle; pTitle = static_cast<TLabel*>(GetControlPtr(APP_RS_ID_formWeb_Label1047)); if (pTitle && pszTitle) { pText = new TUChar[strlen(pszTitle)+1]; TUString::StrUtf8ToStrUnicode(pText, (Char*)pszTitle); pTitle->SetCaption(pText, FALSE); delete [] pText; pText = NULL; } #endif ////测试浏览器 //TCOM_WebBrowser_DataType_Obj* dt = TCOM_WebBrowser_DataType_Obj::create(); //if(dt != NULL) //{ // //const TUChar *pszAddress = GetControlCaption(APP_ST_ID_FormSyetemStyleTest_Field1039); // pText = new TUChar[strlen(pURL)+1]; // TUString::StrUtf8ToStrUnicode(pText, (Char*)pURL); // dt->LoadUrl(pText); // delete [] pText; // pText = NULL; // dt->Release(); //} //设定网页显示的起始位置(左上角坐标) TRectangle WebRet(0,0,0,0); WebRet.SetRect(0, TITLEBAR_H, SCR_W, SCR_H - STATUSBAR_H - TITLEBAR_H); m_pWebPanel = TBrowser::TWebPanel::create(this, WebRet, NULL); m_pWebPanelTComObj = m_pWebPanel->getParentClient(); UInt32 ulAccountID = (UInt32)(static_cast<TApp_KaiXinApp*>(GetApplication()))->GetConnectID(); m_pWebPanelTComObj->setNetAccountID(ulAccountID); m_pWebPanelTComObj->setAutoConnect(FALSE); m_pWebPanelTComObj->AddRef(); //加载一个URL 链接 并于上面指定的区域中显示 pText = new TUChar[strlen(pURL)+1]; if (pText) { m_pWebPanel->setAutoZoomSupport(TRUE); MemSet(pText, 0, (strlen(pURL)+1) * sizeof(TUChar)); TUString::StrUtf8ToStrUnicode(pText, (Char*)pURL); m_pWebPanel->loadUrl(pText); delete [] pText; pText = NULL; } }
void CreateGameForm::UpdateLabels() { // Update Game Speed label char szT[80]; GetSpeedMultiplierString(szT, m_tGameSpeed); LabelControl *plbl = (LabelControl *)GetControlPtr(kidcGameSpeedLabel); plbl->SetText(szT); // Update Mission Pack Info label plbl = (LabelControl *)GetControlPtr(kidcMissionPackInfo); ListControl *plstc = m_aplstc[IndexFromMissionType(m_mt)]; if (plstc->GetSelectedItemIndex() == -1) { plbl->SetText(""); return; } int i = (int)plstc->GetSelectedItemData(); MissionIdentifier miid; if (!m_pml->GetMissionIdentifier(i, &miid)) { plbl->SetText(""); return; } json::JsonMap *map = gppim->GetInfoMap(&miid.packid); if (map == NULL) { MissionDescription md; if (!m_pml->GetMissionDescription(i, &md)) { plbl->SetText(""); return; } const char *s; if (miid.packid.id == PACKID_MAIN) { s = base::Format::ToString("%s by Spiffcode, Inc.", md.szPackName); } else { s = md.szPackName; } plbl->SetText((char *)s); return; } const char *szAuthor = GetString(map, "a"); const char *szTitle = GetString(map, "t"); const char *s = base::Format::ToString("%s by %s", szTitle, szAuthor); plbl->SetText((char *)s); delete map; }
void DownloadMissionPackForm::ShowStatus(void *ctx, const char *psz) { if (ctx == CTX_INDEX) { ListControl *plstc = (ListControl *)GetControlPtr(kidcMissionPackList); plstc->Clear(); plstc->SetTabStops(0); plstc->SetTabFlags(0); plstc->Add(psz, NULL); } if (ctx == CTX_INFO) { LabelControl *plbl = (LabelControl *)GetControlPtr(kidcMissionPackInfo); plbl->SetText((char *)psz); } // Force the frame draw, since this gets called while the main loop // is "asleep". gpmfrmm->DrawFrame(false); }
void DownloadMissionPackForm::HideShow() { ListControl *plstc = (ListControl *)GetControlPtr(kidcMissionPackList); LabelControl *plbl = (LabelControl *)GetControlPtr(kidcMissionPackInfo); ButtonControl *pbtn = (ButtonControl *)GetControlPtr(kidcOk); int selected = plstc->GetSelectedItemIndex(); if (selected < 0) { gppim->Reset(); plbl->SetText(""); pbtn->Show(false); GetControlPtr(kidcDiscuss)->Show(false); return; } // Get the pack info for this pack IndexEntry *entry = (IndexEntry *)plstc->GetSelectedItemData(); if (entry == NULL) { return; } char *psz = NULL; switch (gppackm->IsInstalled(&entry->packid)) { case 0: psz = "DOWNLOAD"; break; case 1: psz = "REMOVE"; break; case 2: psz = "UPGRADE"; break; } if (psz != NULL) { pbtn->SetText(psz); } pbtn->Show(true); ShowInfo(true); }
void LobbyForm::OnCreateRoom() { char roomname[kcbRoomname]; char password[kcbPassword]; if (!CreateRoomForm::DoForm(roomname, sizeof(roomname), password, sizeof(password))) { return; } if (gptra == NULL) { return; } dword roomid; dword result = gptra->CreateRoom(roomname, password, &roomid); switch (result) { case knLobbyCreateRoomResultSuccess: { // Update the list and select the created room, in case // the join fails. Refresh(-1); ListControl *plstc = (ListControl *)GetControlPtr(kidcRoomList); refresh_ = false; plstc->Select(FindIndex(roomid), true, true); refresh_ = true; // OnAddRoom has been called already. Shove the password // into the info and join the room. RoomMap::iterator it = map_.find(roomid); if (it != map_.end()) { it->second.password = password; InitiateJoinRoom(it->second); } } break; case knLobbyCreateRoomResultFail: HtMessageBox(kfMbWhiteBorder, "Create Room", "Error creating this room."); break; case knLobbyCreateRoomResultFull: HtMessageBox(kfMbWhiteBorder, "Create Room", "Too many rooms. Join an existing room"); break; case knLobbyCreateRoomResultExists: HtMessageBox(kfMbWhiteBorder, "Create Room", "A room with this name already exists."); break; } }
void LobbyForm::OnTimeout(int id) { refresh_ = false; ListControl *plstc = (ListControl *)GetControlPtr(kidcRoomList); dword roomid = (dword)(pword)plstc->GetSelectedItemData(); if (!selected_main_) { roomid = kroomidMain; } plstc->Clear(); RoomMap::iterator it = map_.begin(); for (; it != map_.end(); it++) { RoomInfo& info = it->second; const char *s; if (info.priv) { s = base::Format::ToString("\t%s (%d %s, %d %s)\tPRIVATE", info.name.c_str(), info.cPlayers, info.cPlayers == 1 ? "player" : "players", info.cGames, info.cGames == 1 ? "game" : "games"); } else { s = base::Format::ToString("\t%s (%d %s, %d %s)", info.name.c_str(), info.cPlayers, info.cPlayers == 1 ? "player" : "players", info.cGames, info.cGames == 1 ? "game" : "games"); } plstc->Add(s, (void *)(uintptr_t)info.roomid); } int selected = FindIndex(roomid); if (selected < 0 && map_.size() != 0) { plstc->Select(0, true, true); } else { plstc->Select(selected, true); selected_main_ = true; } Control *pctl = GetControlPtr(kidcJoinRoom); refresh_ = true; pctl->Show(plstc->GetSelectedItemIndex() >= 0); }
void CreateGameForm::SwitchToMissionType(MissionType mt) { m_mt = mt; RadioButtonBarControl *prbbc = (RadioButtonBarControl *)GetControlPtr(kidcCategories); prbbc->SetSelectionIndex(IndexFromMissionType(mt)); for (int i = 0; i < ARRAYSIZE(m_aplstc); i++) { bool fShow = false; if (i == IndexFromMissionType(mt)) { fShow = true; } m_aplstc[i]->Show(fShow); } UpdateLabels(); }
/** * 从profile中读取大头像, 如果本地没有则进行下载 * * \param pApp * \param ResponseInfoPhoto * * \return */ Boolean TPhotosGetAlbumsForm::_UpdateProfilePhoto(TApplication* pApp, tResponseUsersGetInfo* ResponseInfoPhoto) { if(ResponseInfoPhoto == NULL) return FALSE; if(ResponseInfoPhoto->nArraySize > 0) { TBitmap* pDownLoadBitmap = NULL; pDownLoadBitmap = LoadImgByUrl(ResponseInfoPhoto->Array[0].headurl); if(pDownLoadBitmap == NULL) { RenRenAPICommon_DownloadPhoto(ResponseInfoPhoto->Array[0].headurl, this->GetWindowHwndId(), FEED_PROFILE_IMAGE_INDEX); } else { TMaskButton* pLogo = NULL; pLogo = static_cast<TMaskButton*>(GetControlPtr(m_ProfileImageID)); if(pLogo) { TRectangle rc; TBitmap * pProfileImageTmp = NULL; //Profile的头像 pLogo->GetBounds(&rc); pProfileImageTmp = TBitmap::Create(RR_HEAD_W, RR_HEAD_W, pDownLoadBitmap->GetDepth()); pProfileImageTmp->QuickZoom(pDownLoadBitmap, TRUE, TRUE,RGBA(0,0,0,255)); pLogo->SetCaption(TUSTR_Re_NULL,0,0); pLogo->SetImage(pProfileImageTmp, (rc.Width()-pProfileImageTmp->GetWidth())/2, (rc.Height()-pProfileImageTmp->GetHeight())/2); pLogo->Draw(); //如果先Desroy,则会崩溃,很奇怪,原因不明,暂时这么处理 if( pProfileImage != NULL) { pProfileImage->Destroy(); pProfileImage = NULL; } pProfileImage = pProfileImageTmp; } //释放图片 pDownLoadBitmap->Destroy(); pDownLoadBitmap = NULL; } } return TRUE; }
void LobbyForm::OnJoinRoom() { ListControl *plstc = (ListControl *)GetControlPtr(kidcRoomList); dword roomid = (dword)(pword)plstc->GetSelectedItemData(); RoomMap::iterator it = map_.find(roomid); if (it == map_.end()) { return; } if (it->second.priv) { HostInitiateAsk("Enter Password:", kcbPassword - 1, it->second.password.c_str(), knKeyboardAskDefault, true); return; } InitiateJoinRoom(it->second); }
bool DownloadMissionPackForm::Init(FormMgr *pfrmm, IniReader *pini, word idf) { if (!ShellForm::Init(pfrmm, pini, idf)) { return false; } // Start downloading the mission pack index if (!idxl_.Start(CTX_INDEX, this)) { return false; } // No operation is available until a mission is selected GetControlPtr(kidcOk)->Show(false); GetControlPtr(kidcDiscuss)->Show(false); // Show status ShowStatus(CTX_INDEX, "Contacting Server..."); // Position Column labels PositionColumns(); // Set info label to use ellipsis LabelControl *plbl = (LabelControl *)GetControlPtr(kidcMissionPackInfo); plbl->SetFlags(plbl->GetFlags() | kfLblEllipsis); // No sorting yet idSortIndicator_ = 0; sort_ = HttpIndexLoader::SORT_UNSORTED; return true; }
void LoadGameForm::SelectLast(bool fLast) { ListControl *plstc = (ListControl *)GetControlPtr(kidcGameList); int nGameSelect; if (fLast) { nGameSelect = m_nGameLast; if (nGameSelect == -1) nGameSelect = 0; } else { nGameSelect = m_nGameLast + 1; if (nGameSelect == plstc->GetCount()) nGameSelect = 0; } plstc->Select(nGameSelect); }
bool ChooseServerForm::DoModal(int *pnResult) { // Hide Connect button until there is something to connect to LabelControl *plbl = (LabelControl *)GetControlPtr(kidcOk); plbl->Show(false); // Position the columns PositionColumns(); Refresh(false); // If there is a single entry this client can connect to, use it without // presenting UI if (infos_.size() == 1) { Control *pctl = GetControlPtr(kidcOk); if (pctl->GetFlags() & kfCtlVisible) { const ServerInfo& info = infos_[0]; if (Connect(info) == knTransportOpenResultSuccess) { *pnResult = kidcOk; return true; } } } return ShellForm::DoModal(pnResult); }
void LoadGameForm::OnControlSelected(word idc) { switch (idc) { case kidcOk: { ListControl *plstc = (ListControl *)GetControlPtr(kidcGameList); int nGame = ((int)plstc->GetSelectedItemData()) - 1; EndForm(nGame); } return; case kidcCancel: ShellForm::OnControlSelected(idc); break; } }
/*响应窗口创建事件*/ void TAboutForm::OnWinCreate(void) { m_BackBtn = SetAppBackButton(this); SetAppTilte(this, APP_KA_ID_STRING_About); TCtrl*pAboutVersion = static_cast<TCtrl*>(GetControlPtr(APP_KA_ID_AboutForm_About2)); TUChar pszString[128] = {0}; TUChar pszVersion[128] = {0}; TUString::StrCopy(pszString, TResource::LoadConstString(APP_KA_ID_STRING_VersionFormat)); TUString::StrUtf8ToStrUnicode(pszVersion, (const Char *)KAIXIN_VERSION_STR); TUString::StrCat(pszString, pszVersion); pAboutVersion->SetCaption(pszString, FALSE); }
void DownloadMissionPackForm::ShowIndex(const PackId *ppackidSelect) { // Add entries to the list ListControl *plstc = (ListControl *)GetControlPtr(kidcMissionPackList); plstc->SetTabStops(x0_, x1_, x2_, x3_); plstc->SetTabFlags(kfLstTabCenter, kfLstTabEllipsis, kfLstTabCenterOn, kfLstTabCenterOn); plstc->Clear(); int iSelect = 0; int cAdded = 0; int c = idxl_.GetCount(); for (int i = 0; i < c; i++) { const IndexEntry *pentry = idxl_.GetEntry(i); // Show either single player packs, or multiplayer packs. // If a pack has both single and multiplayer missions, show // these in both cases. if (pentry->packid.id != PACKID_CUSTOMURL) { if (fMultiplayer_) { if (pentry->cPlayersMax == 1) { continue; } } else { if (pentry->cPlayersMin != 1) { continue; } } } // Remember which entry to select if (iSelect == 0 && ppackidSelect != NULL) { if (memcmp(ppackidSelect, &pentry->packid, sizeof(*ppackidSelect)) == 0) { iSelect = cAdded; } } plstc->Add(GetItemString(pentry), (void *)pentry); cAdded++; } if (cAdded > 0) { plstc->Select(iSelect, true, true); } }
// 窗口初始化 Boolean TMessageCenterForm::_OnWinInitEvent(TApplication * pApp, EventType * pEvent) { int iRet =0, nIndex = 0; int nMsg[KX_MESSAGE_END] = {0}; tResponseMessageCenter* Response = NULL; iRet = KaiXinAPI_JsonParse(KX_MessageCenter, (void **)&Response); m_BackBtn = SetAppBackButton(this); SetAppTilte(this,APP_KA_ID_STRING_MsgCenter);//消息中心 if(iRet == 1) { TCoolBarList* pCoolBarList = static_cast<TCoolBarList*>(GetControlPtr(APP_KA_ID_MessageCenter_Form_MsgList)); for(int i = 0; i < Response->nCount; i++ ) { nMsg[ Response->pNotices[i].Type - 1 ] = Response->pNotices[i].Num; } KaiXinUserInfo.NoticeCount[0] = 0; for(int i = 0; i < KX_MESSAGE_END; i++ ) { TUChar MsgInfo[32]; TBarListItem* pListItem = NULL; pListItem = pCoolBarList->Rows()->FirstRow()->GetItem(i); KaiXinUserInfo.NoticeCount[i+1] = nMsg[i]; KaiXinUserInfo.NoticeCount[0] += nMsg[i]; //set the font color if( nMsg[i] > 0 ) { pListItem->SetCaptionFontColor(COLOR_RED); } else { pListItem->SetCaptionFontColor(GRAY); } TUString::StrPrintF(MsgInfo, TResource::LoadConstString(APP_KA_ID_STRING_MessageCenter_Info),nMsg[i]); pListItem->SetCaption(MsgInfo); } } if( Response ) { delete Response; } return TRUE; }
extern "C" long FAR PASCAL _export hScrollWndProc (HWND hwnd, WORD message, WPARAM wParam, LPARAM lParam) { WNDPROC DefWndProc = (WNDPROC)GetControlPtr(hwnd); ADBG_ASSERT_E(DefWndProc, return 0L, "Invalid WndProc"); switch (message) { case WM_PAINT: { PAINTSTRUCT ps; BeginPaint(hwnd, &ps); EndPaint(hwnd, &ps); return 0L; } default: break; } return CallWindowProc ((WNDPROC)DefWndProc, hwnd, message, wParam, lParam) ; }
void TCommentDetailForm::SetTitleString(AppCommentDetailType appCommentDetailType) { TLabel* tLabel = static_cast< TLabel* >(GetControlPtr(this->m_nTitleLblID)); if(tLabel) { switch(appCommentDetailType) { case ReceivedUserCommentList: { tLabel->SetCaption(TResource::LoadConstString(APP_KA_ID_STRING_ReceivedUserCommentList),FALSE); break; } case SentUserCommentList: { tLabel->SetCaption(TResource::LoadConstString(APP_KA_ID_STRING_SentUserCommentList),FALSE); break; } case ReceivedCommentList: { tLabel->SetCaption(TResource::LoadConstString(APP_KA_ID_STRING_ReceivedCommentList),FALSE); break; } case SentCommentList: { tLabel->SetCaption(TResource::LoadConstString(APP_KA_ID_STRING_SentCommentList),FALSE); break; } case FriendCommentList: { tLabel->SetCaption(TResource::LoadConstString(APP_KA_ID_STRING_FriendsCommentList),FALSE); break; } case ReceivedAnObjectCommentList: { tLabel->SetCaption(TResource::LoadConstString(APP_KA_ID_STRING_ReceivedAnObjectCommentList),FALSE); break; } default: break; } } }
Boolean TAboutForm::EventHandler(TApplication * appP, EventType * eventP) { Boolean handled = FALSE; switch(eventP->eType) { case EVENT_WinPaint: { DrawWindow(); handled = TRUE; break; } case EVENT_CtrlSelect: { if(m_BackBtn == eventP->sParam1) { handled = TRUE; this->CloseWindow(); return handled; } switch(eventP->sParam1) { case RES_SYSTEM_WINDOW_TITLE_BUTTON_ID: { handled = TRUE; if(handled == TRUE) { handled = FALSE; } else handled = TRUE; } break; default: { return OnCtlSelect(GetControlPtr(eventP->sParam1),eventP); } break; } } break; case EVENT_WinEraseClient: { TDC dc(this); WinEraseClientEventType *pEraseEvent = reinterpret_cast< WinEraseClientEventType* >( eventP ); TRectangle rc(pEraseEvent->rc); TRectangle rcBack(5, 142, 310, 314); this->GetBounds(&rcBack); // 刷主窗口背景色 dc.SetBackColor(RGB_COLOR_WHITE); // 擦除 dc.EraseRectangle(&rc, 0); dc.DrawBitmapsH(TResource::LoadConstBitmap(APP_KA_ID_BITMAP_title_bg), 0, 0, SCR_W, GUI_API_STYLE_ALIGNMENT_LEFT); //dc.DrawBitmapsH(TResource::LoadConstBitmap(APP_KA_ID_BITMAP_bottom_bg), 0, rcBack.Bottom()-68, //320, GUI_API_STYLE_ALIGNMENT_LEFT|GUI_API_STYLE_ALIGNMENT_TOP); pEraseEvent->result = 1; handled = TRUE; } break; case EVENT_MenuSelect: { handled = OnMenuSelect(eventP->sParam1); } break; case EVENT_CtrlContextMenu: { handled = OnCtlContextMenu(eventP); break; } case EVENT_MenuOpen: { OnBeforeMenuOpen(); } break; case EVENT_WinInit: { OnWinCreate(); } break; case EVENT_WinClose: { handled = TRUE; OnClosed(); if(handled) handled = FALSE; else handled = TRUE; } break; case EVENT_KeyCommand: { // 抓取右软键事件 if (eventP->sParam1 == SYS_KEY_SOFTKEY_RIGHT_UP || eventP->sParam1 == SYS_KEY_SOFTKEY_RIGHT_LONG) { // 模拟退出按钮选中消息 HitControl(m_BackBtn); handled = TRUE; } } break; } if (handled == FALSE) return TWindow::EventHandler(appP,eventP); return handled; }
void DownloadMissionPackForm::OnControlSelected(word idc) { if (idc == kidcCancel) { EndForm(idc); return; } ListControl *plstc = (ListControl *)GetControlPtr(kidcMissionPackList); IndexEntry *entry = (IndexEntry *)plstc->GetSelectedItemData(); if (entry == NULL) { return; } switch (idc) { case kidcOk: switch (gppackm->IsInstalled(&entry->packid)) { case 0: // If this is a custom URL entry handle specially if (entry->packid.id == PACKID_CUSTOMURL) { HandleCustomURL(); break; } // fall through case 2: // Pack not install or needs upgrade. In either case, download if (DownloadMissionPack(&entry->packid, NULL, true)) { fWantsPlay_ = true; packidPlay_ = entry->packid; EndForm(kidcOk); } plstc->SetSelectedItemText(GetItemString(entry)); HideShow(); break; case 1: // Pack is installed, so this action means remove if (HtMessageBox(kidfMessageBoxQuery, kfMbWhiteBorder | kfMbKeepTimersEnabled, "Remove Mission Pack", "Are you sure?")) { gppackm->Remove(&entry->packid); if (idxl_.OnRemoved(&entry->packid)) { ShowIndex(); } else { plstc->SetSelectedItemText(GetItemString(entry)); } HideShow(); } break; } break; case kidcDiscuss: { json::JsonMap *map = gppim->GetInfoMap(&entry->packid); if (map != NULL) { const json::JsonObject *obj = map->GetObject("di"); if (obj != NULL && obj->type() == json::JSONTYPE_STRING) { HostOpenUrl(((const json::JsonString *)obj)->GetString()); } delete map; } } break; } }