virtual BOOL CreateChildren(pugi::xml_node xmlNode) { pugi::xml_node xmlItem = xmlNode.first_child(); while(xmlItem) { SWindow *pMenuItem = CreateMenuItem(xmlItem.name()); if(pMenuItem) { InsertChild(pMenuItem); pMenuItem->InitFromXml(xmlItem); pMenuItem->SetAttribute(L"pos",L"0,[0",TRUE); } xmlItem = xmlItem.next_sibling(); } return TRUE; }
void CMainDlg::OnTimer2( UINT_PTR idEvent ) { SWindow *pCon = FindChildByName(L"home_left_con"); SWindow *pLw = FindChildByName(L"home_left_window_0"); BOOL bKill = FALSE; switch (idEvent) { case m_HomeTimerID: if (pCon && pLw) { float ftar = (float)-m_tarHomeRadio; float fnow = pLw->GetLayout()->fOffsetX; if (ftar > fnow) { fnow +=(float)0.2; if (fnow >= ftar) { bKill = TRUE; fnow = ftar; } } else if (ftar < fnow) { fnow -= (float)0.2; if (fnow <= ftar) { bKill = TRUE; fnow = ftar; } } else bKill = TRUE; if (bKill){ CSimpleWnd::KillTimer(idEvent); Home_MoveRadio(); } wchar_t buf[12] = {0}; int n = swprintf(buf, sizeof(buf), L"%f,0", fnow); pLw->SetAttribute(L"offset",buf); pCon->Invalidate(); } break; default: SetMsgHandled(FALSE); } }
void CMainDlg::Home_MoveRadio() { SWindow *pRa = FindChildByName(L"home_radio"); if (pRa) { switch (m_tarHomeRadio) { case 0: pRa->SetAttribute(L"pos",L"|-20,-30"); pRa->SetAttribute(L"offset",L"-1,0"); break; case 1: pRa->SetAttribute(L"pos",L"|,-30"); pRa->SetAttribute(L"offset",L"0,0"); break; case 2: pRa->SetAttribute(L"pos",L"|20,-30"); pRa->SetAttribute(L"offset",L"1,0"); break; } } }