本文整理汇总了C++中WDL_String类的典型用法代码示例。如果您正苦于以下问题:C++ WDL_String类的具体用法?C++ WDL_String怎么用?C++ WDL_String使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了WDL_String类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: ReleaseMouseCapture
void IGraphics::OnMouseDown(int x, int y, IMouseMod* pMod)
{
ReleaseMouseCapture();
int c = GetMouseControlIdx(x, y);
if (c >= 0)
{
mMouseCapture = c;
mMouseX = x;
mMouseY = y;
IControl* pControl = mControls.Get(c);
int paramIdx = pControl->ParamIdx();
#if defined OS_WIN || defined VST3_API // on Mac, IGraphics.cpp is not compiled in a static library, so this can be #ifdef'd
if (mPlug->GetAPI() == kAPIVST3)
{
if (pMod->R && paramIdx >= 0)
{
ReleaseMouseCapture();
mPlug->PopupHostContextMenuForParam(paramIdx, x, y);
return;
}
}
#endif
#ifdef AAX_API
if (mAAXViewContainer && paramIdx >= 0)
{
uint32_t mods = GetAAXModifiersFromIMouseMod(pMod);
#ifdef OS_WIN
// required to get start/windows and alt keys
uint32_t aaxViewMods = 0;
mAAXViewContainer->GetModifiers(&aaxViewMods);
mods |= aaxViewMods;
#endif
WDL_String paramID;
paramID.SetFormatted(32, "%i", paramIdx+1);
if (mAAXViewContainer->HandleParameterMouseDown(paramID.Get(), mods) == AAX_SUCCESS)
{
return; // event handled by PT
}
}
#endif
if (paramIdx >= 0)
{
mPlug->BeginInformHostOfParamChange(paramIdx);
}
pControl->OnMouseDown(x, y, pMod);
}
}
示例2: GetDlgItem
void MainWnd::on_list_update()
{
WDL_PtrList<ShellAction> *actions = NULL;
App *the_app = NULL;
the_app = App::get();
actions = the_app->get_tasks();
#ifdef WIN32
HWND ctrl = GetDlgItem(m_hwnd, IDC_TASKS);
int sel_id = -1;
sel_id = ListView_GetCurSel(ctrl);
ListView_DeleteAllItems(ctrl);
if(!actions->GetSize())
return;
for(int i = 0; i < actions->GetSize(); i++)
{
LVITEM lvitem;
WDL_String tmp;
char buf[128];
ShellAction *action = actions->Get(i);
lvitem.mask = LVIF_TEXT | LVIF_PARAM;
lvitem.iItem = i;
lvitem.iSubItem = 0;
lvitem.lParam = (LPARAM)action->get_id();
lvitem.cchTextMax = strlen(action->get_title());
lvitem.pszText = action->get_title();
ListView_InsertItem(ctrl, &lvitem);
ListView_SetItemText(ctrl, i, 1, action->get_path());
tmp = "Every ";
itoa(action->get_interval(), buf, 10);
tmp.Append(buf);
tmp.Append(" ");
tmp.Append(RUN_TYPE_LABELS[action->get_interval_type()]);
ListView_SetItemText(ctrl, i, 2, tmp.Get());
}
if (sel_id >= 0 && m_selected_task)
{
ShellAction *action = the_app->get_task_by_id(sel_id + 1);
the_app->activate_task(action);
ListView_SetItemState(ctrl, sel_id, LVIS_SELECTED | LVIS_FOCUSED, LVIS_SELECTED | LVIS_FOCUSED);
}
#endif // WIN32
}
示例3: GetWindowThreadProcessId
BOOL CALLBACK IGraphicsWin::FindMainWindow(HWND hWnd, LPARAM lParam)
{
IGraphicsWin* pGraphics = (IGraphicsWin*) lParam;
if (pGraphics) {
DWORD wPID;
GetWindowThreadProcessId(hWnd, &wPID);
WDL_String str;
GetWndClassName(hWnd, &str);
if (wPID == pGraphics->mPID && !strcmp(str.Get(), pGraphics->mMainWndClassName.Get())) {
pGraphics->mMainWnd = hWnd;
return FALSE; // Stop enumerating.
}
}
return TRUE;
}
示例4: OpenRelatedProject
void OpenRelatedProject(COMMAND_T* pCmd)
{
if ((int)pCmd->user == g_relatedProjects.Get()->GetSize())
// Give the user the chance to add a related project if they selected the first open spot
if (MessageBox(g_hwndParent, __LOCALIZE("No related project found. Add one now?","sws_mbox"), __LOCALIZE("SWS Open Related Project","sws_mbox"), MB_YESNO) == IDYES)
AddRelatedProject();
if ((int)pCmd->user >= g_relatedProjects.Get()->GetSize())
return;
WDL_String* pStr = g_relatedProjects.Get()->Get((int)pCmd->user);
ReaProject* pProj;
// See if it's already opened
char cOpenedProj[256];
int i = 0;
while ((pProj = EnumProjects(i++, cOpenedProj, 256)))
{
if (_stricmp(cOpenedProj, pStr->Get()) == 0)
{
SelectProjectInstance(pProj);
return;
}
}
// Nope, open in new tab
// Save "prompt on new project" variable
int iNewProjOpts;
int sztmp;
int* pNewProjOpts = (int*)get_config_var("newprojdo", &sztmp);
iNewProjOpts = *pNewProjOpts;
*pNewProjOpts = 0;
pProj = EnumProjects(-1, NULL, 0);
Main_OnCommand(41929, 0); // New project tab (ignore default template)
Main_openProject(pStr->Get());
EnumProjects(-1, cOpenedProj, 256);
if (_stricmp(pStr->Get(), cOpenedProj))
{
Main_OnCommand(40860, 0); // 40860 = Close current project tab
SelectProjectInstance(pProj);
g_relatedProjects.Get()->Delete((int)pCmd->user, true);
}
*pNewProjOpts = iNewProjOpts;
}
示例5: handleTeamStreamMsg
void handleTeamStreamMsg(char* fullName , char* username , char* msgIn , bool isPrivate)
{
bool isEnableTeamStream = !strcmp(msgIn + TEAMSTREAM_CHAT_TRIGGER_LEN , "enabled") ;
WDL_String msgOut ; msgOut.Set(username) ;
msgOut.Append((isEnableTeamStream)? " is in TeamStream mode" : " is in NinJam mode") ;
chat_addline(USERNAME_TEAMSTREAM , msgOut.Get()) ;
int userId = TeamStream::AddUser(username , fullName) ; if (userId <= USERID_LOCAL) return ;
if (!isEnableTeamStream || !TeamStream::IsTeamStreamUsernameCollision(username))
TeamStream::SetTeamStreamMode(userId , isEnableTeamStream) ;
bool isFirstReply = (!TeamStream::GetNRemoteUsers()) ;
if (isPrivate) { if (isFirstReply) TeamStream::SendLinksReqChatMsg(fullName) ; }
else { TeamStream::SendTeamStreamChatMsg(true , fullName) ; TeamStream::SendChatColorChatMsg(true , fullName) ; }
// TODO: we could combine SendTeamStreamChatMsg() with SendChatColorChatMsg()
// TODO: in order for ID_TEAMSTREAM_LOAD/SAVE to work we need to check the current link order now
// if (!isPrivate) and SetLink() now if match (i think this means bringing back the m_links array)
// and to be sure to remove exitting users only from the listview but keep them in the array?
}
示例6: AppendTimestamp
const char* AppendTimestamp(const char* Mmm_dd_yyyy, const char* hh_mm_ss, const char* cStr)
{
static WDL_String str;
str.Set(cStr);
WDL_String tStr;
CompileTimestamp(Mmm_dd_yyyy, hh_mm_ss, &tStr);
str.Append(" ");
str.Append(tStr.Get());
return str.Get();
}
示例7: handleLinksMsg
void handleLinksMsg(char* senderUsername , char* msgIn)
{
WDL_String msgOut ; msgOut.Set("Link order:") ;
int linkIdx ; int lastUsernameIdx = LINKS_CHAT_TRIGGER_LEN ; int usernameLen = -1 ;
for (linkIdx = 0 ; linkIdx < N_LINKS ; ++linkIdx)
{
// parse username
lastUsernameIdx += usernameLen + 1 ; usernameLen = -1 ; char aChar ;
do aChar = msgIn[lastUsernameIdx + (++usernameLen)] ;
while (aChar && aChar != ' ') ; if (!usernameLen) return ;
char username[255] ; strncpy(username , msgIn + lastUsernameIdx , usernameLen) ; username[usernameLen] = '\0' ;
#if IS_CHAT_LINKS
// chat full link order
int userId = TeamStream::GetUserIdByName(username) ; msgOut.Append("\n") ;
char linkMsg[255] ; sprintf(linkMsg , "Link %d: %s" , linkIdx + 1 , username) ; msgOut.Append(linkMsg) ;
if (userId == USERID_NOBODY && strcmp(username , USERNAME_NOBODY)) msgOut.Append(" is not here") ;
#else IS_CHAT_LINKS
int userId = TeamStream::GetUserIdByName(username) ;
#endif IS_CHAT_LINKS
// set link
if (!isUsernameLocal(senderUsername))
if (TeamStream::IsUserIdReal(userId)) TeamStream::SetLink(userId , username , linkIdx , true) ;
else TeamStream::Set_Link_GUI(USERID_NOBODY , username , linkIdx , N_LINKS) ;
}
#if IS_CHAT_LINKS
chat_addline(USERNAME_TEAMSTREAM , msgOut.Get()) ;
#endif IS_CHAT_LINKS
}
示例8: if
WDL_String TeamStream::ParseCommandLineHost(LPSTR cmdParam)
{
// parse first cmd line arg (e.g. ninjam://ninbot.com:2049)
WDL_String hostAndPort ; hostAndPort.Set("") ; if (!cmdParam[0]) return hostAndPort ;
int isQuoted = (int)(cmdParam[0] == '"') ;
char param[256] ; strncpy(param , cmdParam + isQuoted , 255) ; int len = strlen(param) ;
int isSlash = (int)(param[len - (1 + isQuoted)] == '/') ;
param[len - isQuoted - isSlash] = '\0' ;
// tokenize and validate
char* prot = strtok(param , ":") ; if (!prot || strcmp(prot , "ninjam")) return hostAndPort ;
// validate host and port existance
hostAndPort.Set(param + 9) ; char* host ; int port ;
host = strtok(NULL , ":") ; char* p = strtok(NULL , ":") ; if (p) port = atoi(p) ;
if (host && strlen(host) > 2 && port >= MIN_PORT && port <= MAX_PORT)
host += 2 ; else return hostAndPort ; // strip leading slashes
// validate allowed host
if (!ValidateHost(host , true)) hostAndPort.Set(AUTOJOIN_FAIL) ; return hostAndPort ;
}
示例9: DoAnalyzeItem
void DoAnalyzeItem(COMMAND_T*)
{
WDL_TypedBuf<MediaItem*> items;
SWS_GetSelectedMediaItems(&items);
bool bDidWork = false;
for (int i = 0; i < items.GetSize(); i++)
{
MediaItem* mi = items.Get()[i];
int iChannels = ((PCM_source*)mi)->GetNumChannels();
if (iChannels)
{
bDidWork = true;
ANALYZE_PCM a;
memset(&a, 0, sizeof(a));
a.iChannels = iChannels;
a.dPeakVals = new double[iChannels];
a.dRMSs = new double[iChannels];
if (AnalyzeItem(mi, &a))
{
WDL_String str;
str.Set(__LOCALIZE("Peak level:","sws_analysis"));
for (int i = 0; i < iChannels; i++) {
str.Append(" ");
str.AppendFormatted(50, __LOCALIZE_VERFMT("Channel %d = %.2f dB","sws_analysis"), i+1, VAL2DB(a.dPeakVals[i]));
}
str.Append("\n");
str.Append(__LOCALIZE("RMS level:","sws_analysis"));
for (int i = 0; i < iChannels; i++) {
str.Append(" ");
str.AppendFormatted(50, __LOCALIZE_VERFMT("Channel %d = %.2f dB","sws_analysis"), i+1, VAL2DB(a.dRMSs[i]));
}
MessageBox(g_hwndParent, str.Get(), __LOCALIZE("Item analysis","sws_analysis"), MB_OK);
}
delete [] a.dPeakVals;
delete [] a.dRMSs;
}
}
if (!bDidWork)
{
MessageBox(NULL, __LOCALIZE("No items selected to analyze.","sws_analysis"), __LOCALIZE("SWS - Error","sws_analysis"), MB_OK);
return;
}
}
示例10: SearchDirectory
int SearchDirectory(vector<string> &refvecFiles, const char* cDir, const char* cExt, bool bSubdirs)
{
WDL_DirScan ds;
int iRet = ds.First(cDir);
int found = 0;
g_bAbortScan = false;
if (!iRet)
{
do
{
if (strcmp(ds.GetCurrentFN(), ".") == 0 || strcmp(ds.GetCurrentFN(), "..") == 0)
continue;
WDL_String foundFile;
ds.GetCurrentFullFN(&foundFile);
lstrcpyn(g_CurrentScanFile, foundFile.Get(), 1024);
if (bSubdirs && ds.GetCurrentIsDirectory())
{
found += SearchDirectory(refvecFiles, foundFile.Get(), cExt, true);
}
else
{
char* cFoundExt = strrchr(foundFile.Get(), '.');
if (cFoundExt)
{
cFoundExt++;
if ((!cExt && IsMediaExtension(cFoundExt, false)) || (cExt && _stricmp(cFoundExt, cExt) == 0))
{
refvecFiles.push_back(foundFile.Get());
found++;
}
}
}
}
while(!ds.Next() && !g_bAbortScan);
}
return found;
}
示例11: MatchesFilter
bool FilteredVisState::MatchesFilter(MediaTrack* tr)
{
static WDL_String sTrackName;
if (!m_parsedFilter->getnumtokens())
return true;
sTrackName.Set((char*)GetSetMediaTrackInfo(tr, "P_NAME", NULL));
if (!sTrackName.GetLength())
return false;
for (int i = 0; i < sTrackName.GetLength(); i++)
sTrackName.Get()[i] = tolower(sTrackName.Get()[i]);
for (int j = 0; j < m_parsedFilter->getnumtokens(); j++)
if (strstr(sTrackName.Get(), m_parsedFilter->gettoken_str(j)))
return true;
return false;
}
示例12: SetFilter
// TODO UTF8 support here
void FilteredVisState::SetFilter(const char* cFilter)
{
if (cFilter && cFilter[0])
m_sFilter.Set(cFilter);
else
m_sFilter.Set("");
static WDL_String sLCFilter;
sLCFilter.Set(m_sFilter.Get());
for (int i = 0; i < sLCFilter.GetLength(); i++)
sLCFilter.Get()[i] = tolower(sLCFilter.Get()[i]);
m_parsedFilter->parse(sLCFilter.Get());
}
示例13: chatmsg_cb
void chatmsg_cb(int user32, NJClient *inst, char **parms, int nparms)
{
if (!parms[0]) return;
if (!strcmp(parms[0],"TOPIC"))
{
if (parms[2])
{
WDL_String tmp;
if (parms[1] && *parms[1])
{
tmp.Set(parms[1]);
if (parms[2][0])
{
tmp.Append(" sets topic to: ");
tmp.Append(parms[2]);
}
else
{
tmp.Append(" removes topic.");
}
}
else
{
if (parms[2][0])
{
tmp.Set("Topic is: ");
tmp.Append(parms[2]);
}
else tmp.Set("No topic is set.");
}
g_topic.Set(parms[2]);
chat_addline("",tmp.Get());
}
}
else if (!strcmp(parms[0],"MSG"))
{
if (parms[1] && parms[2])
chat_addline(parms[1],parms[2]);
}
else if (!strcmp(parms[0],"PRIVMSG"))
{
if (parms[1] && parms[2])
{
WDL_String tmp;
tmp.Set("*");
tmp.Append(parms[1]);
tmp.Append("* ");
tmp.Append(parms[2]);
chat_addline(NULL,tmp.Get());
}
}
else if (!strcmp(parms[0],"JOIN") || !strcmp(parms[0],"PART"))
{
if (parms[1] && *parms[1])
{
WDL_String tmp(parms[1]);
tmp.Append(" has ");
tmp.Append(parms[0][0]=='P' ? "left" : "joined");
tmp.Append(" the server");
chat_addline("",tmp.Get());
}
}
}
示例14: chatRun
void chatRun(HWND hwndDlg)
{
WDL_String tmp;
g_client_mutex.Enter();
tmp.Set(m_append_text.Get());
m_append_text.Set("");
g_client_mutex.Leave();
if (!tmp.Get()[0]) return;
HWND m_hwnd=GetDlgItem(hwndDlg,IDC_CHATDISP);
SCROLLINFO si={sizeof(si),SIF_RANGE|SIF_POS|SIF_TRACKPOS,};
GetScrollInfo(m_hwnd,SB_VERT,&si);
{
int oldsels,oldsele;
SendMessage(m_hwnd,EM_GETSEL,(WPARAM)&oldsels,(LPARAM)&oldsele);
char txt[32768];
if(strlen(tmp.Get())>sizeof(txt)-1) return;
GetWindowText(m_hwnd,txt,sizeof(txt)-1);
txt[sizeof(txt)-1]=0;
while(strlen(txt)+strlen(tmp.Get())+4>sizeof(txt))
{
char *p=txt;
while(*p!=0 && *p!='\n') p++;
if(*p==0) return;
while (*p=='\n') p++;
strcpy(txt,p);
oldsels -= p-txt;
oldsele -= p-txt;
}
if (oldsels < 0) oldsels=0;
if (oldsele < 0) oldsele=0;
if(txt[0]) strcat(txt,"\n");
strcat(txt,tmp.Get());
CHARFORMAT2 cf2;
cf2.cbSize=sizeof(cf2);
cf2.dwMask=CFM_LINK;
cf2.dwEffects=0;
SendMessage(m_hwnd,EM_SETCHARFORMAT,SCF_ALL,(LPARAM)&cf2);
SetWindowText(m_hwnd,txt);
GetWindowText(m_hwnd,txt,sizeof(txt)-1);
txt[sizeof(txt)-1]=0;
char *t=txt;
char lt=' ';
int sub=0;
while (*t)
{
if (lt == ' ' || lt == '\n' || lt == '\r')
{
int isurl=0;
if (!strnicmp(t,"http:",5)) isurl=5;
else if (!strnicmp(t,"ftp:",4)) isurl=4;
else if (!strnicmp(t,"www.",4)) isurl=4;
if (isurl && t[isurl] != ' ' && t[isurl] != '\n' && t[isurl] != '\r' && t[isurl])
{
int spos=t-txt-sub;
t+=isurl;
while (*t && *t != ' ' && *t != '\n' && *t != '\r') { t++; }
SendMessage(m_hwnd,EM_SETSEL,spos,(t-txt)-sub);
CHARFORMAT2 cf2;
cf2.cbSize=sizeof(cf2);
cf2.dwMask=CFM_LINK;
cf2.dwEffects=CFE_LINK;
SendMessage(m_hwnd,EM_SETCHARFORMAT,SCF_SELECTION,(LPARAM)&cf2);
}
}
if (*t == '\n') sub++;
if (*t) lt=*t++;
}
SendMessage(m_hwnd,EM_SETSEL,oldsels,oldsele);
}
if (GetFocus() == m_hwnd)
{
SendMessage(m_hwnd, WM_VSCROLL, MAKEWPARAM(SB_THUMBPOSITION,si.nTrackPos),0);
}
else
{
GetScrollInfo(m_hwnd,SB_VERT,&si);
SendMessage(m_hwnd, WM_VSCROLL, MAKEWPARAM(SB_THUMBPOSITION,si.nMax),0);
}
}
示例15: chat_addline
void chat_addline(char *src, char *text)
{
WDL_String tmp;
if (src && *src && !strncmp(text,"/me ",4))
{
tmp.Set("* ");
tmp.Append(src);
tmp.Append(" ");
char *p=text+3;
while (*p == ' ') p++;
tmp.Append(p);
}
else
{
if (src&&*src)
{
tmp.Set("<");
tmp.Append(src);
tmp.Append("> ");
}
else if (src)
{
tmp.Set("*** ");
}
tmp.Append(text);
}
g_client_mutex.Enter();
if (m_append_text.Get()[0])
m_append_text.Append("\n");
m_append_text.Append(tmp.Get());
g_client_mutex.Leave();
}