void AddInSessionOrder(MCONTACT hContact, int mode, int ordernum, int writemode) { char szFormNumBuf[100]; mir_snprintf(szFormNumBuf, "%02u", ordernum); if (mode == 0) { ptrA szValue(db_get_sa(hContact, MODNAME, "LastSessionsMarks")); if (szValue) { int len = (int)mir_strlen(szValue); if (!len) len = 20; char *temp2 = (char*)_alloca(len - 1); strncpy(temp2, szValue, len - 2); temp2[len - 2] = '\0'; char *temp = (char*)_alloca(len + 1); mir_snprintf(temp, len + 1, "%02u%s", ordernum, temp2); for (int i = (g_ses_limit * 2); i < 20; i++) temp[i] = '0'; db_set_s(hContact, MODNAME, "LastSessionsOrder", temp); } else if (writemode == 1) { mir_snprintf(szFormNumBuf, "%02u%s", ordernum, "000000000000000000"); db_set_s(hContact, MODNAME, "LastSessionsOrder", szFormNumBuf); } } else if (mode == 1) { ptrA szValue(db_get_sa(hContact, MODNAME, "UserSessionsOrder")); if (szValue) { char *pszBuffer; if (mir_strlen(szValue) < (g_ses_count * 2)) { pszBuffer = (char*)mir_alloc((g_ses_count * 2) + 1); memset(pszBuffer, 0, ((g_ses_count * 2) + 1)); mir_strcpy(pszBuffer, szValue); } else pszBuffer = mir_strdup(szValue); int len = (int)mir_strlen(pszBuffer); len = (len == 0) ? 20 : len + 2; char *temp = (char*)_alloca(len + 1); mir_snprintf(temp, len + 1, "%02u%s", ordernum, szValue); db_set_s(hContact, MODNAME, "UserSessionsOrder", temp); mir_free(pszBuffer); } else if (writemode == 1) db_set_s(hContact, MODNAME, "UserSessionsOrder", szFormNumBuf); else db_set_s(hContact, MODNAME, "UserSessionsOrder", "00"); } }
void SVConditionParam::createCondition() { int nRow = numRows(); m_pLabel = new WText(m_szLabel, (WContainerWidget*)elementAt(nRow, 0)); elementAt(nRow, 0)->setContentAlignment(AlignTop | AlignLeft); elementAt(nRow, 0)->setStyleClass("cell_10"); string szValue (""); if(!m_szDefaultValue.empty()) szValue = chLeftBracket + m_szDefaultValue + chRightBracket; m_pConditionArea = new WTextArea(szValue, (WContainerWidget*)elementAt(nRow, 1)); if(m_pConditionArea) { //if(strcmp(m_szDefaultValue.substr(0, 1).c_str(), &chLeftBracket) == 0 ) // m_pConditionArea->setText(m_szDefaultValue); m_pConditionArea->setStyleClass(m_szStyle); } createShowButton(nRow); createHelp(nRow); m_pOperate = new WTable((WContainerWidget*)elementAt(nRow,1)); if(m_pOperate) { m_pOperate->setStyleClass("conditionset"); createHideButton(); createAddConidtion(); createButtonGroup(); m_pOperate->hide(); } }
void CJabberProto::SearchDeleteFromRecent(const TCHAR *szAddr, BOOL deleteLastFromDB) { //search in recent for (int i=0; i<10; i++) { char key[30]; mir_snprintf(key, SIZEOF(key), "RecentlySearched_%d", i); ptrT szValue( getTStringA(key)); if (szValue == NULL || _tcsicmp(szAddr, szValue)) continue; for (int j=i; j < 10; j++) { mir_snprintf(key, SIZEOF(key), "RecentlySearched_%d", j + 1); szValue = getTStringA(key); if (szValue != NULL) { mir_snprintf(key, SIZEOF(key), "RecentlySearched_%d", j); setTString(NULL, key, szValue); } else { if (deleteLastFromDB) { mir_snprintf(key, SIZEOF(key), "RecentlySearched_%d", j); delSetting(NULL,key); } break; } } break; } }
///////////////////////////////////////////////////////////////////////////////////////////////////////////// // 创建条件 ///////////////////////////////////////////////////////////////////////////////////////////////////////////// void SVConditionParam::createCondition() { int nRow = numRows(); m_pLabel = new WText(m_szLabel, elementAt(nRow, 0)); elementAt(nRow, 0)->setContentAlignment(AlignTop | AlignLeft); elementAt(nRow, 0)->setStyleClass("table_list_data_input_text"); GetRow(nRow)->setStyleClass("padding_top"); string szValue (""); if(!m_szDefaultValue.empty()) szValue = chLeftBracket + m_szDefaultValue + chRightBracket; m_pConditionArea = new WTextArea(szValue, elementAt(nRow, 1)); if(m_pConditionArea) m_pConditionArea->setStyleClass(m_szStyle); elementAt(nRow, 1)->setStyleClass("table_data_text"); createShowButton(nRow); createHelp(nRow); m_pOperate = new WTable(elementAt(nRow,1)); if(m_pOperate) { m_pOperate->setStyleClass("conditionset"); createHideButton(); createAddConidtion(); createButtonGroup(); m_pOperate->hide(); } }
static int DefaultOnClick(WPARAM hContact, LPARAM lParam, LPARAM param) { Info *p = (Info*)param; if (p == NULL) return 0; if (hContact == NULL) return 0; char *proto = GetContactProto(hContact); if (IsEmpty(proto)) return 0; bool found = false; for (int j = 0; !found && j < SIZEOF(p->db); j += 2) { if (p->db[j + 1] == NULL) break; ptrA szValue(db_get_sa(hContact, p->db[j] == NULL ? proto : p->db[j], p->db[j + 1])); if (!IsEmpty(szValue)) { p->OnClick(p, szValue); found = true; } } return 0; }
void AddSessionMark(MCONTACT hContact, int mode, char bit) { if (mode == 0) { ptrA szValue(db_get_sa(hContact, MODNAME, "LastSessionsMarks")); if (szValue) { char temp_1 = szValue[0]; for (int i = 0; i < g_ses_limit; i++) { char temp_2 = szValue[i + 1]; szValue[i + 1] = temp_1; temp_1 = temp_2; } for (int i = g_ses_limit; i < 10; i++) szValue[i] = '0'; szValue[0] = bit; db_set_s(hContact, MODNAME, "LastSessionsMarks", szValue); } else if (bit == '1') db_set_s(hContact, MODNAME, "LastSessionsMarks", "10000000000"); } else if (mode == 1) { ptrA szValue(db_get_sa(hContact, MODNAME, "UserSessionsMarks")); if (szValue) { char *pszBuffer; if (mir_strlen(szValue) < g_ses_count) { pszBuffer = (char*)mir_alloc(g_ses_count + 1); memset(pszBuffer, 0, (g_ses_count + 1)); mir_strcpy(pszBuffer, szValue); } else pszBuffer = szValue.detach(); char temp_1 = pszBuffer[0]; for (int i = 0; i < g_ses_count; i++) { char temp_2 = pszBuffer[i + 1]; pszBuffer[i + 1] = temp_1; temp_1 = temp_2; } pszBuffer[0] = bit; db_set_s(hContact, MODNAME, "UserSessionsMarks", pszBuffer); mir_free(pszBuffer); } else if (bit == '1') db_set_s(hContact, MODNAME, "UserSessionsMarks", "10000000000"); else db_set_s(hContact, MODNAME, "UserSessionsMarks", "00000000000"); } }
void SetSessionMark(MCONTACT hContact, int mode, char bit, unsigned int marknum) { if (mode == 0) { ptrA szValue(db_get_sa(hContact, MODNAME, "LastSessionsMarks")); if (szValue) { szValue[marknum] = bit; db_set_s(hContact, MODNAME, "LastSessionsMarks", szValue); } } else if (mode == 1) { ptrA szValue(db_get_sa(hContact, MODNAME, "UserSessionsMarks")); if (szValue) { szValue[marknum] = bit; db_set_s(hContact, MODNAME, "UserSessionsMarks", szValue); } } }
AsyncHttpRequest* operator<<(AsyncHttpRequest *pReq, const TCHAR_PARAM ¶m) { T2Utf szValue(param.tszValue); CMStringA &s = pReq->m_szParam; if (!s.IsEmpty()) s.AppendChar('&'); s.AppendFormat("%s=%s", param.szName, ptrA(pReq->bExpUrlEncode ? ExpUrlEncode(szValue) : mir_urlEncode(szValue))); return pReq; }
void CVkProto::OnReceiveUserInfo(NETLIBHTTPREQUEST *reply, AsyncHttpRequest *pReq) { debugLogA("CVkProto::OnReceiveUserInfo %d", reply->resultCode); if (reply->resultCode != 200) return; JSONROOT pRoot; JSONNODE *pResponse = CheckJsonResponse(pReq, reply, pRoot); if (pResponse == NULL) return; for (size_t i=0; ; i++) { JSONNODE *pRecord = json_at(pResponse, i); if (pRecord == NULL) break; LONG userid = json_as_int( json_get(pRecord, "uid")); if (userid == 0) return; MCONTACT hContact; if (userid == m_myUserId) hContact = NULL; else if ((hContact = FindUser(userid, false)) == NULL) return; CMString tszNick; ptrT szValue( json_as_string( json_get(pRecord, "first_name"))); if (szValue) { setTString(hContact, "FirstName", szValue); tszNick.Append(szValue); tszNick.AppendChar(' '); } if (szValue = json_as_string( json_get(pRecord, "last_name"))) { setTString(hContact, "LastName", szValue); tszNick.Append(szValue); } if (!tszNick.IsEmpty()) setTString(hContact, "Nick", tszNick); setByte(hContact, "Gender", json_as_int( json_get(pRecord, "sex")) == 2 ? 'M' : 'F'); if (szValue = json_as_string( json_get(pRecord, "bdate"))) { int d, m, y; if ( _stscanf(szValue, _T("%d.%d.%d"), &d, &m, &y) == 3) { setByte(hContact, "BirthDay", d); setByte(hContact, "BirthMonth", m); setWord(hContact, "BirthYear", y); } } szValue = json_as_string( json_get(pRecord, "photo_medium")); SetAvatarUrl(hContact, szValue); } }
int GetInSessionOrder(MCONTACT hContact, int mode, int count) { char szTemp[3]; if (mode == 0) { ptrA szValue(db_get_sa(hContact, MODNAME, "LastSessionsOrder")); if (szValue) { strncpy_s(szTemp, &szValue[count * 2], 2); return atoi(szTemp); } } else if (mode == 1) { ptrA szValue(db_get_sa(hContact, MODNAME, "UserSessionsOrder")); if (szValue) { strncpy_s(szTemp, &szValue[count * 2], 2); return atoi(szTemp); } } return 0; }
///////////////////////////////////////////////////////////////////////////////////////////////////////////// // 设置条件 ///////////////////////////////////////////////////////////////////////////////////////////////////////////// void SVConditionParam::SetCondition(MAPNODE &alertnode) { string szRelationCount (""); // 条件文本置空 if(m_pConditionArea) m_pConditionArea->setText(""); // 设置帮助文本 if(m_pHelpText) m_pHelpText->setText(m_szHelp); // 设置错误提示信息 if(m_pErrText) m_pErrText->setText(m_szTip); // 得到条件 FindNodeValue(alertnode, svConditionCount, szRelationCount); char szKey [16] = {0}; string szCondition (""), szReturn (""), szParamValue ("") , szRelation (""); int nCount = 0; // 展示条件 if(!szRelationCount.empty()) { nCount = atoi(szRelationCount.c_str()); for(int i = 1; i <= nCount; i++) { szRelation = ""; sprintf(szKey, svRelation, i); FindNodeValue(alertnode, szKey, szRelation); sprintf(szKey, svParamName, i); FindNodeValue(alertnode, szKey, szReturn); sprintf(szKey, svOperate, i); FindNodeValue(alertnode, szKey, szCondition); sprintf(szKey, svParamValue, i); FindNodeValue(alertnode, szKey, szParamValue); getParamLabel(szReturn); if(m_pConditionArea) { string szValue(""); if(!szRelation.empty()) szValue = chLeftBracket + szReturn + " " + szCondition + " " + szParamValue + chRightBracket + " " + szRelation + " "; else szValue = chLeftBracket + szReturn + " " + szCondition + " " + szParamValue + chRightBracket; m_pConditionArea->setText(m_pConditionArea->text() + szValue); } } } }
void SetInSessionOrder(MCONTACT hContact, int mode, int count, unsigned int ordernum) { char szTemp[3]; mir_snprintf(szTemp, "%02u", ordernum); if (mode == 0) { ptrA szValue(db_get_sa(hContact, MODNAME, "LastSessionsOrder")); if (szValue) { szValue[count * 2] = szTemp[0]; szValue[count * 2 + 1] = szTemp[1]; db_set_s(hContact, MODNAME, "LastSessionsOrder", szValue); } } else if (mode == 1) { ptrA szValue(db_get_sa(hContact, MODNAME, "UserSessionsOrder")); if (szValue) { szValue[count * 2] = szTemp[0]; szValue[count * 2 + 1] = szTemp[1]; db_set_s(hContact, MODNAME, "UserSessionsOrder", szValue); } } }
void RemoveSessionMark(MCONTACT hContact, int mode, int marknum) { if (mode == 0) { ptrA szValue(db_get_sa(hContact, MODNAME, "LastSessionsMarks")); if (szValue) { for (int i = marknum; i < g_ses_limit; i++) szValue[i] = szValue[i + 1]; for (int i = g_ses_limit; i < 10; i++) szValue[i] = '0'; db_set_s(hContact, MODNAME, "LastSessionsMarks", szValue); } } else if (mode == 1) { ptrA szValue(db_get_sa(hContact, MODNAME, "UserSessionsMarks")); if (szValue) { for (int i = marknum; i < g_ses_limit; i++) szValue[i] = szValue[i + 1]; db_set_s(hContact, MODNAME, "UserSessionsMarks", szValue); } } }
DWORD CSettingWindow::dwFromText(LPCTSTR lpszValue) { ASSERT(lpszValue); DWORD dwValue = 0; CString szValue(lpszValue); if(szValue==_T("常规")) dwValue = 0; else if (szValue==_T("粗体")) dwValue = 1; else if(szValue==_T("斜体")) dwValue = 2; else if(szValue==_T("粗体|斜体")) dwValue = 3; return dwValue; }
void CConfigPostHandler::onData(CHttpRequest *pRequest, const uint8_t *pData, size_t nLength) { for (size_t i = 0; i < nLength; i++) { if (m_nEscapeLeft) { m_nEscapeLeft--; m_cEscape <<= 4; if (pData[i] >= '0' && pData[i] <= '9') m_cEscape |= (pData[i] - '0'); else if (pData[i] >= 'a' && pData[i] <= 'z') m_cEscape |= (pData[i] - 'a') + 10; else if (pData[i] >= 'A' && pData[i] <= 'Z') m_cEscape |= (pData[i] - 'A') + 10; if (m_nEscapeLeft == 0) m_vBuffer.push_back(m_cEscape); } else if (pData[i] == '=') { DEBUG("Equal sign"); if (m_bHasKey) { m_vBuffer.push_back(pData[i]); } else { m_szKey = std::string(m_vBuffer.begin(), m_vBuffer.end()); m_vBuffer.clear(); m_bHasKey = true; } } else if (pData[i] == '&') { DEBUG("Ampersand"); if (!m_bHasKey) { m_szKey=std::string(m_vBuffer.begin(), m_vBuffer.end()); m_vBuffer.clear(); m_bHasKey=true; } std::string szValue(m_vBuffer.begin(), m_vBuffer.end()); DEBUG("Insert %s = %s", m_szKey.c_str(), szValue.c_str()); m_mValues[m_szKey]=szValue; m_vBuffer.clear(); m_bHasKey = false; } else if (pData[i] == '%') { m_cEscape = 0; m_nEscapeLeft = 2; } else if (pData[i] == '+') { m_vBuffer.push_back(' '); } else { m_vBuffer.push_back(pData[i]); } } }
void CJabberProto::SearchAddToRecent(const TCHAR *szAddr, HWND hwndDialog) { char key[30]; SearchDeleteFromRecent(szAddr); for (int j=9; j > 0; j--) { mir_snprintf(key, SIZEOF(key), "RecentlySearched_%d", j - 1); ptrT szValue( getTStringA(key)); if (szValue != NULL) { mir_snprintf(key, SIZEOF(key), "RecentlySearched_%d", j); setTString(NULL, key, szValue); } } mir_snprintf(key, SIZEOF(key), "RecentlySearched_%d", 0); setTString(key, szAddr); if (hwndDialog) JabberSearchAddUrlToRecentCombo(hwndDialog, szAddr); }
const string SVResString::getStringFromRes(const char *pcszResID) { string szValue(""); if(m_objRes != INVALID_VALUE) { MAPNODE resNode = GetResourceNode(m_objRes); if(resNode != INVALID_VALUE) { if(FindNodeValue(resNode, pcszResID, szValue)) m_lsResource[pcszResID] = szValue; else { m_lsResource[pcszResID] = pcszResID; szValue = pcszResID; } } } return szValue; }
void SVConditionParam::SetCondition(MAPNODE &alertnode) { string szRelationCount (""); if(m_pConditionArea) m_pConditionArea->setText(""); FindNodeValue(alertnode, "sv_conditioncount", szRelationCount); char szKey [16] = {0}; string szCondition (""), szReturn (""), szParamValue ("") , szRelation (""); int nCount = 0; if(!szRelationCount.empty()) { nCount = atoi(szRelationCount.c_str()); for(int i = 1; i <= nCount; i++) { szRelation = ""; sprintf(szKey, "sv_relation%d", i); FindNodeValue(alertnode, szKey, szRelation); sprintf(szKey, "sv_paramname%d", i); FindNodeValue(alertnode, szKey, szReturn); sprintf(szKey, "sv_operate%d", i); FindNodeValue(alertnode, szKey, szCondition); sprintf(szKey, "sv_paramvalue%d", i); FindNodeValue(alertnode, szKey, szParamValue); getParamLabel(szReturn); if(m_pConditionArea) { string szValue(""); if(!szRelation.empty()) szValue = chLeftBracket + szReturn + " " + szCondition + " " + szParamValue + chRightBracket + " " + szRelation + " "; else szValue = chLeftBracket + szReturn + " " + szCondition + " " + szParamValue + chRightBracket; m_pConditionArea->setText(m_pConditionArea->text() + szValue); } } } }
void CConfigPostHandler::onDataDone(CHttpRequest *pRequest) { //Handle last bit of data if (!m_bHasKey) { m_szKey=std::string(m_vBuffer.begin(), m_vBuffer.end()); m_vBuffer.clear(); m_bHasKey=true; } std::string szValue(m_vBuffer.begin(), m_vBuffer.end()); m_mValues[m_szKey]=szValue; m_vBuffer.clear(); m_bHasKey = false; // Start output m_szOutput = "<html><head>"; m_szOutput += "<title>Saving...</title>"; m_szOutput += "<meta http-equiv=\"refresh\" content=\"3;url=/\" />"; m_szOutput += "</head><body>"; // Write out config const uint8_t pHeader[] = CONFIG_HEADER; m_pWriter = new CConfigWriter(CONFIG_START_SECTOR, CONFIG_SECTOR_DIRECTION); m_pWriter->writeBytes(pHeader,sizeof(pHeader)); // Header config_run(this); m_pWriter->writeUInt(ConfigSectionEnd); m_pWriter->flush(true); delete m_pWriter; m_szOutput += "<p>Please wait for the unit to reboot...</p>"; m_szOutput += "</body></html>"; pRequest->startHeaders(200,"OK"); pRequest->sendHeader("Content-Type", "text/html"); pRequest->sendHeader("Content-Length", m_szOutput.length()); pRequest->sendHeader("Refresh","3;url=/"); pRequest->endHeaders(); pRequest->sendData((const uint8_t *)m_szOutput.c_str(), m_szOutput.length()); }
static void SetExtraIcons(MCONTACT hContact) { if (hContact == NULL) return; char *proto = GetContactProto(hContact); if ( IsEmpty(proto)) return; for (unsigned int i = 0; i < SIZEOF(infos); i++) { Info &p = infos[i]; for (unsigned int j = 0; j < SIZEOF(p.db); j += 2) { if (p.db[j + 1] == NULL) break; ptrA szValue(db_get_sa(hContact, p.db[j] == NULL ? proto : p.db[j], p.db[j + 1])); if (!IsEmpty(szValue)) { ExtraIcon_SetIcon(p.hExtraIcon, hContact, p.hIcolib); break; } } } }
void CEvaluate::EV(CDoubleMatrix &m, CResult *pResult) { double fSum = 0; int i=0, j=0, k=0, nSize=0, nRowIndex=0; CTString szValue("");//字符串 CTArray<int, int>arrFreq; CDoubleVector v; CPtrArray arr; tagDataPointValVal *pDPVV1 = NULL; tagDataPointValVal *pDPVV2 = NULL; tagDataPointValVal *pDPVV3 = NULL; //计算频率 v = m.col(0); arrFreq = CalcFrequence(v); int n = arrFreq.GetSize(); //评估结果值 CDoubleMatrix me(n,n); CalcEvalue(m,arrFreq,me); //表格及画图 CTLTable *pTable = new CTLTable; pTable->SetTitle("决策树预测比对表"); for (i=0; i<n+2; i++) { if (i==0) { szValue = ""; } else if(i<n+1) { szValue = GetLabel(arrFreq.GetAt(i-1)); } else { szValue = "合计"; } if (i > 0 && i < n+1) pTable->InsertColumn(i,"预测_"+szValue); else pTable->InsertColumn(i,szValue); if (i > 0) pTable->InsertItem(i-1,szValue); } for (i=0; i<n+1; i++) { for (j=0; j<n+1; j++) { if (i == n && j != n) { fSum = 0; for (k=0; k<n; k++) fSum += me(k)(j); } else if (i != n && j == n) { fSum = me(i).sum(); } else if (i==n && j== n) { fSum = 0; for (k=0; k<n; k++) fSum += me(k).sum(); } else { fSum = me(i)(j); } pTable->SetItemText(i,j+1,fSum); } } //添加表 CRsltElementTable *pETable = new CRsltElementTable("决策树预测比对表",pTable);//申请一个表对象类的对象 pResult->Add(pETable); //文本 CalcText(me,arrFreq,v); CRsltElementText *pText = new CRsltElementText("描述信息"); szValue.Format("正确率为:%.2f%",v(4)<DOUBLE_ZERO ? 0 : 100*v(1)/v(4)); pText->AddString(szValue); szValue.Format("覆盖率为:%.2f%",v(2)<DOUBLE_ZERO ? 0 : 100*v(0)/v(2)); pText->AddString(szValue); szValue.Format("准确率为:%.2f%",v(3)<DOUBLE_ZERO ? 0 : 100*v(0)/v(3)); pText->AddString(szValue); pResult->Add(pText); //计算图表 CalcChart(m, &arr); //画表 pTable = new CTLTable; pTable->SetTitle("决策树预测图表值"); pTable->InsertColumn(0,""); pTable->InsertColumn(1,"百分位"); pTable->InsertColumn(2,"Gain值"); pTable->InsertColumn(3,"Lift值"); j = 0; nSize = arr.GetSize(); pDPVV1 = new tagDataPointValVal[nSize]; pDPVV2 = new tagDataPointValVal[2]; pDPVV3 = new tagDataPointValVal[nSize]; for (i=nSize-1; i>=0; i--) { CEv *pEv = (CEv *)arr.GetAt(i); pDPVV1[j].fXVal = pEv->fX; pDPVV1[j].fYVal = pEv->fY; pDPVV3[j].fXVal = pEv->fX; pDPVV3[j].fYVal = pEv->fY/pEv->fX; szValue.Format("%d",j); pTable->InsertItem(j,szValue); pTable->SetItemText(j,1,pEv->fX); pTable->SetItemText(j,2,pEv->fY); pTable->SetItemText(j,3,pEv->fY/pEv->fX); j ++; } //直线 pDPVV2[0].fXVal = pDPVV1[0].fXVal; pDPVV2[0].fYVal = pDPVV1[0].fYVal; pDPVV2[1].fXVal = pDPVV1[nSize-1].fXVal; pDPVV2[1].fYVal = pDPVV1[nSize-1].fYVal; //添加图形 pETable = new CRsltElementTable("决策树预测图表值",pTable);//申请一个表对象类的对象 pResult->Add(pETable); //画图-Gain CTChartLine *pLine = new CTChartLine; pLine->SetLine(pDPVV1, nSize, ValVal); pLine->SetXAxilLabel("百分位数"); pLine->SetYAxilLabel("Gain值"); CRsltElementChart *pChart = new CRsltElementChart("Gain图",pLine); pResult->SetName("Gain图"); //直线 pLine->SetLine(pDPVV2, 2, ValVal); pResult->Add(pChart); //Lift图 pLine = new CTChartLine; pLine->SetLine(pDPVV3, nSize, ValVal); pLine->SetXAxilLabel("百分位数"); pLine->SetYAxilLabel("Lift值"); pChart = new CRsltElementChart("Lift图",pLine); pResult->SetName("Lift图"); pResult->Add(pChart); //释放内存 delete []pDPVV1; delete []pDPVV2; delete []pDPVV3; Release(&arr); }
// load options from database + set default if the setting does not exist void LoadOptions(void) { memset(&opt, 0, sizeof(opt)); // main options opt.StartupUpdate = db_get_b(NULL, WEATHERPROTONAME, "StartupUpdate", true); opt.AutoUpdate = db_get_b(NULL, WEATHERPROTONAME, "AutoUpdate", true); opt.UpdateTime = db_get_w(NULL, WEATHERPROTONAME, "UpdateTime", 30); opt.NoProtoCondition = db_get_b(NULL, WEATHERPROTONAME, "NoStatus", true); opt.UpdateOnlyConditionChanged = db_get_b(NULL, WEATHERPROTONAME, "CondChangeAsUpdate", true); opt.RemoveOldData = db_get_b(NULL, WEATHERPROTONAME, "RemoveOld", false); opt.MakeItalic = db_get_b(NULL, WEATHERPROTONAME, "MakeItalic", true); opt.AvatarSize = db_get_b(NULL, WEATHERPROTONAME, "AvatarSize", 128); // units opt.tUnit = db_get_w(NULL, WEATHERPROTONAME, "tUnit", 1); opt.wUnit = db_get_w(NULL, WEATHERPROTONAME, "wUnit", 2); opt.vUnit = db_get_w(NULL, WEATHERPROTONAME, "vUnit", 1); opt.pUnit = db_get_w(NULL, WEATHERPROTONAME, "pUnit", 4); opt.dUnit = db_get_w(NULL, WEATHERPROTONAME, "dUnit", 1); opt.eUnit = db_get_w(NULL, WEATHERPROTONAME, "eUnit", 2); ptrT szValue(db_get_tsa(NULL, WEATHERPROTONAME, "DegreeSign")); _tcsncpy_s(opt.DegreeSign, (szValue == NULL) ? _T("") : szValue, _TRUNCATE); opt.DoNotAppendUnit = db_get_b(NULL, WEATHERPROTONAME, "DoNotAppendUnit", 0); opt.NoFrac = db_get_b(NULL, WEATHERPROTONAME, "NoFractions", 0); // texts if (szValue = db_get_tsa(NULL, WEATHERPROTONAME, "DisplayText")) wSetData(&opt.cText, TranslateTS(szValue)); else SetTextDefault("C"); if (szValue = db_get_tsa(NULL, WEATHERPROTONAME, "BriefTextTitle")) wSetData(&opt.bTitle, TranslateTS(szValue)); else SetTextDefault("b"); if (szValue = db_get_tsa(NULL, WEATHERPROTONAME, "BriefText")) wSetData(&opt.bText, TranslateTS(szValue)); else SetTextDefault("B"); if (szValue = db_get_tsa(NULL, WEATHERPROTONAME, "NoteText")) wSetData(&opt.nText, TranslateTS(szValue)); else SetTextDefault("N"); if (szValue = db_get_tsa(NULL, WEATHERPROTONAME, "ExtText")) wSetData(&opt.eText, TranslateTS(szValue)); else SetTextDefault("E"); if (szValue = db_get_tsa(NULL, WEATHERPROTONAME, "HistoryText")) wSetData(&opt.hText, TranslateTS(szValue)); else SetTextDefault("H"); if (szValue = db_get_tsa(NULL, WEATHERPROTONAME, "ExtraText")) wSetData(&opt.xText, TranslateTS(szValue)); else SetTextDefault("X"); if (szValue = db_get_tsa(NULL, WEATHERPROTONAME, "StatusText")) wSetData(&opt.sText, TranslateTS(szValue)); else SetTextDefault("S"); // advanced opt.DisCondIcon = db_get_b(NULL, WEATHERPROTONAME, "DisableConditionIcon", false); // popup options opt.UsePopup = db_get_b(NULL, WEATHERPROTONAME, "UsePopUp", true); opt.UpdatePopup = db_get_b(NULL, WEATHERPROTONAME, "UpdatePopup", true); opt.AlertPopup = db_get_b(NULL, WEATHERPROTONAME, "AlertPopup", true); opt.PopupOnChange = db_get_b(NULL, WEATHERPROTONAME, "PopUpOnChange", true); opt.ShowWarnings = db_get_b(NULL, WEATHERPROTONAME, "ShowWarnings", true); // popup colors opt.BGColour = db_get_dw(NULL, WEATHERPROTONAME, "BackgroundColour", GetSysColor(COLOR_BTNFACE)); opt.TextColour = db_get_dw(NULL, WEATHERPROTONAME, "TextColour", GetSysColor(COLOR_WINDOWTEXT)); opt.UseWinColors = (BOOL)db_get_b(NULL, WEATHERPROTONAME, "UseWinColors", false); // popup actions opt.LeftClickAction = db_get_dw(NULL, WEATHERPROTONAME, "LeftClickAction", IDM_M2); opt.RightClickAction = db_get_dw(NULL, WEATHERPROTONAME, "RightClickAction", IDM_M1); // popup delay opt.pDelay = db_get_dw(NULL, WEATHERPROTONAME, "PopupDelay", 0); // popup texts if (szValue = db_get_tsa(NULL, WEATHERPROTONAME, "PopupTitle")) wSetData(&opt.pTitle, szValue); else SetTextDefault("P"); if (szValue = db_get_tsa(NULL, WEATHERPROTONAME, "PopupText")) wSetData(&opt.pText, szValue); else SetTextDefault("p"); // misc if (szValue = db_get_tsa(NULL, WEATHERPROTONAME, "Default")) _tcsncpy_s(opt.Default, szValue, _TRUNCATE); else opt.Default[0] = 0; }
void CVkProto::OnReceiveFriends(NETLIBHTTPREQUEST *reply, AsyncHttpRequest *pReq) { debugLogA("CVkProto::OnReceiveFriends %d", reply->resultCode); if (reply->resultCode != 200) return; JSONROOT pRoot; JSONNODE *pResponse = CheckJsonResponse(pReq, reply, pRoot), *pInfo; if (pResponse == NULL) return; bool bCleanContacts = getByte("AutoClean", 0) != 0; LIST<void> arContacts(10, PtrKeySortT); if (bCleanContacts) for (MCONTACT hContact = db_find_first(m_szModuleName); hContact; hContact = db_find_next(hContact, m_szModuleName)) if (!isChatRoom(hContact)) arContacts.insert((HANDLE)hContact); for (int i = 0; (pInfo = json_at(pResponse, i)) != NULL; i++) { ptrT szValue(json_as_string(json_get(pInfo, "uid"))); if (szValue == NULL) continue; CMString tszNick; MCONTACT hContact = FindUser(_ttoi(szValue), true); arContacts.remove((HANDLE)hContact); szValue = json_as_string(json_get(pInfo, "first_name")); if (szValue) { setTString(hContact, "FirstName", szValue); tszNick.Append(szValue); tszNick.AppendChar(' '); } if (szValue = json_as_string(json_get(pInfo, "last_name"))) { setTString(hContact, "LastName", szValue); tszNick.Append(szValue); } if (!tszNick.IsEmpty()) setTString(hContact, "Nick", tszNick); szValue = json_as_string(json_get(pInfo, "photo_medium")); SetAvatarUrl(hContact, szValue); setWord(hContact, "Status", (json_as_int(json_get(pInfo, "online")) == 0) ? ID_STATUS_OFFLINE : ID_STATUS_ONLINE); int iValue = json_as_int(json_get(pInfo, "sex")); if (iValue) setByte(hContact, "Gender", (iValue == 2) ? 'M' : 'F'); if ((iValue = json_as_int(json_get(pInfo, "timezone"))) != 0) setByte(hContact, "Timezone", iValue * -2); szValue = json_as_string(json_get(pInfo, "mobile_phone")); if (szValue && *szValue) setTString(hContact, "Cellular", szValue); szValue = json_as_string(json_get(pInfo, "home_phone")); if (szValue && *szValue) setTString(hContact, "Phone", szValue); } if (bCleanContacts) for (int i = 0; i < arContacts.getCount(); i++) CallService(MS_DB_CONTACT_DELETE, (WPARAM)arContacts[i], 0); }
static INT_PTR CALLBACK JabberSearchAdvancedDlgProc(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam) { JabberSearchData* dat = (JabberSearchData*)GetWindowLongPtr(hwndDlg, GWLP_USERDATA); switch (msg) { case WM_INITDIALOG: TranslateDialogDefault(hwndDlg); { dat = (JabberSearchData *)mir_calloc(sizeof(JabberSearchData)); dat->ppro = (CJabberProto*)lParam; SetWindowLongPtr(hwndDlg, GWLP_USERDATA, (LONG_PTR)dat); /* Server Combo box */ ptrA jud(dat->ppro->getStringA("Jud")); char *szServerName = (jud == NULL) ? "users.jabber.org": jud; SetDlgItemTextA(hwndDlg,IDC_SERVER,szServerName); SendDlgItemMessageA(hwndDlg,IDC_SERVER,CB_ADDSTRING,0,(LPARAM)szServerName); //TO DO: Add Transports here int i, transpCount = dat->ppro->m_lstTransports.getCount(); for (i=0; i < transpCount; i++) { TCHAR *szTransp = dat->ppro->m_lstTransports[i]; if (szTransp) JabberSearchAddUrlToRecentCombo(hwndDlg, szTransp); } for (i=0; i < 10; i++) { char key[30]; mir_snprintf(key, SIZEOF(key), "RecentlySearched_%d", i); ptrT szValue( dat->ppro->getTStringA(key)); if (szValue != NULL) JabberSearchAddUrlToRecentCombo(hwndDlg, szValue); } //TO DO: Add 4 recently used dat->lastRequestIq = dat->ppro->SearchRenewFields(hwndDlg,dat); } return TRUE; case WM_COMMAND: if (LOWORD(wParam) == IDC_SERVER) { switch (HIWORD(wParam)) { case CBN_SETFOCUS: PostMessage(GetParent(hwndDlg),WM_COMMAND, MAKEWPARAM(0,EN_SETFOCUS), (LPARAM)hwndDlg); return TRUE; case CBN_EDITCHANGE: EnableWindow(GetDlgItem(hwndDlg, IDC_GO),TRUE); return TRUE; case CBN_EDITUPDATE: JabberSearchFreeData(hwndDlg, dat); EnableWindow(GetDlgItem(hwndDlg, IDC_GO),TRUE); return TRUE; case CBN_SELENDOK: EnableWindow(GetDlgItem(hwndDlg, IDC_GO),TRUE); PostMessage(hwndDlg,WM_COMMAND,MAKEWPARAM(IDC_GO,BN_CLICKED),0); return TRUE; } } else if (LOWORD(wParam) == IDC_GO && HIWORD(wParam) == BN_CLICKED) { dat->ppro->SearchRenewFields(hwndDlg, dat); return TRUE; } break; case WM_SIZE: { //Resize IDC_FRAME to take full size RECT rcForm; GetWindowRect(hwndDlg, &rcForm); RECT rcFrame; GetWindowRect(GetDlgItem(hwndDlg, IDC_FRAME), &rcFrame); rcFrame.bottom = rcForm.bottom; SetWindowPos(GetDlgItem(hwndDlg,IDC_FRAME),NULL,0,0,rcFrame.right-rcFrame.left,rcFrame.bottom-rcFrame.top,SWP_NOZORDER|SWP_NOMOVE); GetWindowRect(GetDlgItem(hwndDlg,IDC_VSCROLL), &rcForm); SetWindowPos(GetDlgItem(hwndDlg,IDC_VSCROLL),NULL,0,0,rcForm.right-rcForm.left,rcFrame.bottom-rcFrame.top,SWP_NOZORDER|SWP_NOMOVE); JabberSearchRefreshFrameScroll(hwndDlg, dat); } return TRUE; case WM_USER+11: { dat->fSearchRequestIsXForm=TRUE; dat->xNode = (HXML)wParam; JabberFormCreateUI(GetDlgItem(hwndDlg, IDC_FRAME), dat->xNode, &dat->CurrentHeight,TRUE); ShowWindow(GetDlgItem(hwndDlg, IDC_FRAME), SW_SHOW); dat->nJSInfCount=1; return TRUE; } case WM_USER+10: { Data* MyDat = (Data*)lParam; if (MyDat) { dat->fSearchRequestIsXForm = (BOOL)wParam; dat->CurrentHeight = JabberSearchAddField(hwndDlg,MyDat); mir_free(MyDat->Label); mir_free(MyDat->Var); mir_free(MyDat->defValue); free(MyDat); } else { JabberSearchRefreshFrameScroll(hwndDlg,dat); ScrollWindow(GetDlgItem(hwndDlg, IDC_FRAME), 0, dat->curPos - 0, NULL, &(dat->frameRect)); SetScrollPos(GetDlgItem(hwndDlg, IDC_VSCROLL), SB_CTL, 0, FALSE); dat->curPos=0; } return TRUE; } case WM_MOUSEWHEEL: { int zDelta = GET_WHEEL_DELTA_WPARAM(wParam); if (zDelta) { int nScrollLines=0; SystemParametersInfo(SPI_GETWHEELSCROLLLINES,0,(void*)&nScrollLines,0); for (int i=0; i<(nScrollLines+1)/2; i++) SendMessage(hwndDlg,WM_VSCROLL, (zDelta<0)?SB_LINEDOWN:SB_LINEUP,0); } } return TRUE; case WM_VSCROLL: { int pos; if (dat != NULL) { pos = dat->curPos; switch (LOWORD(wParam)) { case SB_LINEDOWN: pos += 10; break; case SB_LINEUP: pos -= 10; break; case SB_PAGEDOWN: pos += (dat->CurrentHeight - 10); break; case SB_PAGEUP: pos -= (dat->CurrentHeight - 10); break; case SB_THUMBTRACK: pos = HIWORD(wParam); break; } if (pos > (dat->CurrentHeight - dat->frameHeight)) pos = dat->CurrentHeight - dat->frameHeight; if (pos < 0) pos = 0; if (dat->curPos != pos) { ScrollWindow(GetDlgItem(hwndDlg, IDC_FRAME), 0, dat->curPos - pos, NULL , &(dat->frameRect)); SetScrollPos(GetDlgItem(hwndDlg, IDC_VSCROLL), SB_CTL, pos, TRUE); RECT Invalid=dat->frameRect; if (dat->curPos - pos >0) Invalid.bottom=Invalid.top+(dat->curPos - pos); else Invalid.top=Invalid.bottom+(dat->curPos - pos); RedrawWindow(GetDlgItem(hwndDlg, IDC_FRAME), NULL, NULL, RDW_UPDATENOW |RDW_ALLCHILDREN); dat->curPos = pos; } } } return TRUE; case WM_DESTROY: JabberSearchFreeData(hwndDlg, dat); JabberFormDestroyUI(GetDlgItem(hwndDlg, IDC_FRAME)); mir_free(dat); SetWindowLongPtr(hwndDlg, GWLP_USERDATA, 0); return TRUE; } return FALSE; }
static void ProcessUserCmd( CGT_CDiagMsg* pdm, //for err msg ICG_IECFront* pIF, const CG_AttribList* pAttr, const CGT_CInstPath& ipath, CGT_CDmp& dmp, const CG_Symtab* pSym, //Prg,FB const CG_Resource* pRes //calling res. ) { TCHAR buffer[2*MAX_PATH]; TCHAR* pszField[4]; int nUserCmd = 0; const CG_DType* pType; int n; CG_Edipos edptmp; bool bGlobal; if(!pAttr) return; //usercmd= "Reset TMPC 14|iFileNumber|13" for(n = 0; n<pAttr->nAttribs; n++) //TODO diag msg, chsck var path and value .... { if(_tcsicmp(pAttr->pairs[n].pszKey, _T("usercmd"))) continue; edptmp = pAttr->pairs[n].edpVal; if(!FC_StringCopyToBuffer(buffer, FC_ARRAY_LEN(buffer), pAttr->pairs[n].pszVal)) { pdm->msg1(CG_E_ATTR_VALUE_TO_LONG, &edptmp, "256"); continue; } if(FC_StringSplitBuf(buffer,'|', pszField, 4, 1) != 3) { pdm->msg1(CG_E_TEXT, &edptmp, _T("usercmd: invalid menue description format")); pdm->userMsg(_T(" expeted: usercmd=\"<menue text>|<var path>|<literal value>\"\n")); continue; } CG_IncColEdipos(&edptmp, pszField[1] - buffer + 1); //+1 for attrip string start delim pType = CGT_ParseAccessPath(pdm, &edptmp, pIF, pszField[1], pSym, pRes, &bGlobal); if(!pType) continue; if(pType->pSym || pType->bIsArray) { pdm->msg1(CG_E_TEXT, &edptmp, pdm->jot1()<< _T("usercmd: '"<<pszField[1]<<"' points to non simple data type '")<<pType->pszName<<'\''); continue; } //if string type use pszField[2] as is, if non string parse the value //using the front end: FC_CString szValue(256); if(pType->type==CG_WSTRING || pType->type==CG_STRING) { szValue.load(pszField[2]); } else { CG_IncColEdipos(&edptmp, pszField[2] - pszField[1]); ICG_Expr* pValExpr = pIF->parseExprFromString(&edptmp, true, pszField[2], pSym?pSym->pszId:NULL, false); if(!pValExpr) continue; const CG_ExprTree* pLit = pValExpr->getExpr(pType->type); if(!pLit) { pdm->msg1(CG_E_TEXT, &edptmp, pdm->jot1()<<_T("usercmd: '"<<pszField[2]<<"' must be of datatype "<<pType->pszName)); pValExpr->Release(); continue; } else if(pLit->extyp != CG_LITERAL) { pdm->msg1(CG_E_TEXT, &edptmp, pdm->jot1()<<_T("usercmd: '"<<pszField[2]<<"' does not evaluate to a simple type literal")); pValExpr->Release(); continue; } szValue.load(pLit->lit.pLit->psz); pValExpr->Release(); } dmp<<_T("\n USER_ONLCMD")<<nUserCmd<<_T("=\""); dmp.dumpAsXMLUTF8(pszField[0], false)<<'|'; if(bGlobal) { //add pc1.Resource1 for(const TCHAR* psz=ipath; *psz && *psz!='.'; psz++) dmp<<*psz; dmp<<'.'; for(psz++; *psz && *psz!='.'; psz++) dmp<<*psz; dmp<<'.'<<pszField[1]; } else { //start with FB instance path: dmp<<ipath<<'.'<<pszField[1]; } dmp<<'|'<<pType->pszName<<'|'; dmp.dumpAsXMLUTF8(szValue, false)<<'"'; nUserCmd++; } }