本文整理汇总了C++中wxArrayString类的典型用法代码示例。如果您正苦于以下问题:C++ wxArrayString类的具体用法?C++ wxArrayString怎么用?C++ wxArrayString使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了wxArrayString类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: setTextPopUpList
//Hack to allow use (events) of wxmenu inside a tool like simpletexttool
void ddDrawingView::setTextPopUpList(wxArrayString &strings, wxMenu &mnu)
{
//DD-TODO: choose a better id for event
mnu.Disconnect(wxEVT_COMMAND_MENU_SELECTED,(wxObjectEventFunction)(wxEventFunction) (wxCommandEventFunction) &ddDrawingView::OnTextPopupClick,NULL,this);
int sz = strings.size(); //to avoid warning
wxMenuItem *item = NULL;
wxMenu *submenu = NULL;
bool isSubItem;
bool subItemsDisable=false;
for(int i=0 ; i < sz ; i++){
//DD-TODO: only create options for what I need, this can be improved later
//String "--submenu##menu item**sub menu title" and "--subitem--" create and add items to last created submenu
isSubItem=false;
item=NULL;
if(strings[i].Contains(wxT("--submenu")))
{
if(strings[i].Contains(wxT("--disable")))
subItemsDisable=true;
else
subItemsDisable=false;
submenu = new wxMenu(strings[i].SubString(strings[i].find(wxT("**"))+2,strings[i].length()));
mnu.AppendSubMenu(submenu,strings[i].SubString(strings[i].find(wxT("##"))+2,strings[i].find(wxT("**"))-1));
}
else if(strings[i].Contains(wxT("--subitem")))
{
isSubItem=true;
if(submenu)
{
if(strings[i].Contains(wxT("--checked")))
{
item=submenu->AppendCheckItem(i,strings[i].SubString(strings[i].find(wxT("**"))+2,strings[i].length()));
}
else
{
item=submenu->Append(i,strings[i].SubString(strings[i].find(wxT("**"))+2,strings[i].length()));
}
}
else
{
wxMessageDialog *error = new wxMessageDialog(NULL, wxT("Error setting text popup strings list"), wxT("Error!"), wxOK | wxICON_ERROR);
error->ShowModal();
delete error;
}
}
else if(strings[i].Contains(wxT("--separator--")))
{
mnu.AppendSeparator();
}
else if(strings[i].Contains(wxT("--checked")))
{
item = mnu.AppendCheckItem(i, strings[i].SubString(strings[i].find(wxT("**"))+2,strings[i].length()));
}
else if(strings[i].Contains(wxT("**")))
{
item = mnu.Append(i, strings[i].SubString(strings[i].find(wxT("**"))+2,strings[i].length()));
}
else
{
item = mnu.Append(i, strings[i]);
}
if(item && strings[i].Contains(wxT("--checked")))
{
item->Check(true);
}
if( item && ( strings[i].Contains(wxT("--disable")) || (submenu && isSubItem && subItemsDisable) ) )
{
item->Enable(false);
}
}
//DD-TODO: create a better version of this hack
mnu.Connect(wxEVT_COMMAND_MENU_SELECTED,(wxObjectEventFunction)(wxEventFunction) (wxCommandEventFunction) &ddDrawingView::OnTextPopupClick,NULL,this);
}
开发者ID:xiul,项目名称:Database-Designer-for-pgAdmin,代码行数:75,代码来源:ddDrawingView.cpp
示例2: DoInsertItems
void wxListBox::DoInsertItems(const wxArrayString& items, unsigned int pos)
{
wxCHECK_RET( m_list != NULL, wxT("invalid listbox") );
// VZ: notice that InsertItems knows nothing about sorting, so calling it
// from outside (and not from our own Append) is likely to break
// everything
// code elsewhere supposes we have as many items in m_clientList as items
// in the listbox
wxASSERT_MSG( m_clientList.GetCount() == GetCount(),
wxT("bug in client data management") );
InvalidateBestSize();
GList *children = m_list->children;
unsigned int length = g_list_length(children);
wxCHECK_RET( pos <= length, wxT("invalid index in wxListBox::InsertItems") );
unsigned int nItems = items.GetCount();
int index;
if (m_strings)
{
for (unsigned int n = 0; n < nItems; n++)
{
index = m_strings->Add( items[n] );
if (index != (int)GetCount())
{
GtkAddItem( items[n], index );
wxList::compatibility_iterator node = m_clientList.Item( index );
m_clientList.Insert( node, (wxObject*) NULL );
}
else
{
GtkAddItem( items[n] );
m_clientList.Append( (wxObject*) NULL );
}
}
}
else
{
if (pos == length)
{
for ( unsigned int n = 0; n < nItems; n++ )
{
GtkAddItem( items[n] );
m_clientList.Append((wxObject *)NULL);
}
}
else
{
wxList::compatibility_iterator node = m_clientList.Item( pos );
for ( unsigned int n = 0; n < nItems; n++ )
{
GtkAddItem( items[n], pos+n );
m_clientList.Insert( node, (wxObject *)NULL );
}
}
}
wxASSERT_MSG( m_clientList.GetCount() == GetCount(),
wxT("bug in client data management") );
}
开发者ID:Bluehorn,项目名称:wxPython,代码行数:68,代码来源:listbox.cpp
示例3: SkipToEOL
void Tokenizer::ReadToEOL(wxArrayString& tokens)
{
// need to force the tokenizer skip raw expression
const TokenizerState oldState = m_State;
m_State = tsReadRawExpression;
const unsigned int undoIndex = m_TokenIndex;
const unsigned int undoLine = m_LineNumber;
SkipToEOL(false);
const unsigned int lastBufferLen = m_BufferLen - m_TokenIndex;
m_TokenIndex = undoIndex;
m_LineNumber = undoLine;
int level = 0;
wxArrayString tmp;
while (m_BufferLen - m_TokenIndex > lastBufferLen)
{
while (SkipComment())
;
wxString token = DoGetToken();
if (token[0] <= _T(' ') || token == _T("\\"))
continue;
if (token[0] == _T('('))
++level;
if (level == 0)
{
if (tmp.IsEmpty())
{
if (!token.Trim().IsEmpty())
tokens.Add(token);
}
else
{
wxString blockStr;
for (size_t i = 0; i < tmp.GetCount(); ++i)
blockStr << tmp[i];
tokens.Add(blockStr.Trim());
tmp.Clear();
}
}
else
tmp.Add(token);
if (token[0] == _T(')'))
--level;
}
if (!tmp.IsEmpty())
{
if (level == 0)
{
wxString blockStr;
for (size_t i = 0; i < tmp.GetCount(); ++i)
blockStr << tmp[i];
tokens.Add(blockStr.Trim());
}
else
{
for (size_t i = 0; i < tmp.GetCount(); ++i)
{
if (!tmp[i].Trim().IsEmpty())
tokens.Add(tmp[i]);
}
}
}
m_State = oldState;
}
开发者ID:stahta01,项目名称:EmBlocks,代码行数:71,代码来源:tokenizer.cpp
示例4: loadExtensions
bool Materials::loadExtensions(FileName directoryName, wxString& error, wxArrayString& warnings)
{
directoryName.Mkdir(0755, wxPATH_MKDIR_FULL); // Create if it doesn't exist
wxDir ext_dir(directoryName.GetPath());
if(ext_dir.IsOpened() == false)
{
error = wxT("Could not open extensions directory.");
return false;
}
wxString filename;
if(!ext_dir.GetFirst(&filename))
{
// No extensions found
return true;
}
do
{
FileName fn;
fn.SetPath(directoryName.GetPath());
fn.SetFullName(filename);
if(fn.GetExt() != wxT("xml"))
continue;
xmlDocPtr doc = xmlParseFile(fn.GetFullPath().mb_str());
if(doc)
{
xmlNodePtr root = xmlDocGetRootElement(doc);
if(xmlStrcmp(root->name,(const xmlChar*)"materialsextension") != 0){
xmlFreeDoc(doc);
warnings.push_back(filename + wxT(": Invalid rootheader."));
continue;
}
std::string ext_name, ext_url, ext_author, ext_author_link, ext_desc, ext_client_str;
StringVector clientVersions;
if(
!readXMLValue(root, "name", ext_name) ||
!readXMLValue(root, "author", ext_author) ||
!readXMLValue(root, "description", ext_desc))
{
warnings.push_back(filename + wxT(": Couldn't read extension attributes (name, author, description)."));
continue;
}
readXMLValue(root, "url", ext_url);
ext_url.erase(std::remove(ext_url.begin(), ext_url.end(), '\''), ext_url.end());
readXMLValue(root, "authorurl", ext_author_link);
ext_author_link.erase(std::remove(ext_author_link.begin(), ext_author_link.end(), '\''), ext_author_link.end());
MaterialsExtension* me = newd MaterialsExtension(ext_name, ext_author, ext_desc);
me->url = ext_url;
me->author_url = ext_author_link;
if(readXMLValue(root, "client", ext_client_str))
{
size_t last_pos = std::numeric_limits<size_t>::max();
size_t pos;
do
{
size_t to_pos = (last_pos == std::numeric_limits<size_t>::max()? 0 : last_pos+1);
pos = ext_client_str.find(';', to_pos);
if(size_t(pos) != std::string::npos)
{
clientVersions.push_back(ext_client_str.substr(to_pos, pos-(to_pos)));
last_pos = pos;
}
else
{
clientVersions.push_back(ext_client_str.substr(to_pos));
break;
}
} while(true);
for(StringVector::iterator iter = clientVersions.begin();
iter != clientVersions.end();
++iter)
{
me->addVersion(*iter);
}
std::sort(me->version_list.begin(), me->version_list.end(), VersionComparisonPredicate);
me->version_list.erase(std::unique(me->version_list.begin(), me->version_list.end()), me->version_list.end());
}
else
{
warnings.push_back(filename + wxT(": Extension is not available for any version."));
}
extensions.push_back(me);
if(me->isForVersion(gui.GetCurrentVersionID()))
{
unserializeMaterials(filename, root, error, warnings);
}
}
else
//.........这里部分代码省略.........
开发者ID:mattyx14,项目名称:rme,代码行数:101,代码来源:materials.cpp
示例5: GetIncludeFile
void ChoiceBookWrapper::GetIncludeFile(wxArrayString& headers) const { headers.Add(wxT("#include <wx/choicebk.h>")); }
开发者ID:eranif,项目名称:codelite,代码行数:1,代码来源:choice_book_wrapper.cpp
示例6: NormalizeFilename
void BuildLineInfo::NormalizeFilename(const wxArrayString& directories, const wxString& cygwinPath)
{
wxFileName fn(this->GetFilename());
if(fn.IsAbsolute()) {
SetFilename(fn.GetFullPath());
return;
} else if(fn.IsAbsolute(wxPATH_UNIX) && IS_WINDOWS && !cygwinPath.IsEmpty()) {
wxFileName cygfile(fn);
wxString path = cygwinPath + cygfile.GetFullPath();
SetFilename(wxFileName(path).GetFullPath());
return;
}
if(directories.IsEmpty()) {
SetFilename(fn.GetFullName());
return;
}
// we got a relative file name
int dircount = directories.GetCount();
for(int i = dircount - 1; i >= 0; --i) {
wxFileName tmp = fn;
if(tmp.Normalize(wxPATH_NORM_ALL & ~wxPATH_NORM_LONG)) {
// Windows sanity
if(IS_WINDOWS && tmp.GetVolume().length() > 1) {
// Invalid file path
SetFilename("");
return;
}
if(tmp.FileExists() && tmp.MakeAbsolute(directories.Item(i))) {
SetFilename(tmp.GetFullPath());
return;
}
}
}
// One more try: the above will fail if the project isn't stored in the cwd that Normalize() assumes
// So see if one of 'directories' is the correct path to use
for(int i = dircount - 1; i >= 0; --i) {
wxFileName tmp = fn;
if(tmp.Normalize(wxPATH_NORM_ALL & ~wxPATH_NORM_LONG, directories.Item(i))) {
// Windows sanity
if(IS_WINDOWS && tmp.GetVolume().length() > 1) {
// Invalid file path
SetFilename("");
return;
}
if(tmp.FileExists()) {
SetFilename(tmp.GetFullPath());
return;
}
}
}
// failed.. keep it as fullname only
SetFilename(fn.GetFullName());
}
开发者ID:massimiliano76,项目名称:codelite,代码行数:62,代码来源:new_build_tab.cpp
示例7: GetIncludeFile
void DataViewListCtrlWrapper::GetIncludeFile(wxArrayString& headers) const { headers.Add("#include <wx/dataview.h>"); }
开发者ID:eranif,项目名称:codelite,代码行数:1,代码来源:data_view_list_ctrl_wrapper.cpp
示例8: GetLanguages
void GetLanguages(wxArrayString &langCodes, wxArrayString &langNames)
{
wxArrayString tempNames;
wxArrayString tempCodes;
LangHash localLanguageName;
LangHash reverseHash;
localLanguageName["bg"] = "Balgarski";
localLanguageName["ca"] = "Catalan";
localLanguageName["da"] = "Dansk";
localLanguageName["de"] = "Deutsch";
localLanguageName["en"] = "English";
localLanguageName["es"] = "Español";
localLanguageName["fi"] = "Suomi";
localLanguageName["fr"] = "Français";
localLanguageName["it"] = "Italiano";
localLanguageName["ja"] = "Nihongo";
localLanguageName["hu"] = "Magyar";
localLanguageName["mk"] = "Makedonski";
localLanguageName["nl"] = "Nederlands";
localLanguageName["nb"] = "Norsk";
localLanguageName["pl"] = "Polski";
localLanguageName["pt"] = "Português";
localLanguageName["ru"] = "Russky";
localLanguageName["sl"] = "Slovenscina";
localLanguageName["sv"] = "Svenska";
localLanguageName["uk"] = "Ukrainska";
localLanguageName["zh"] = "Chinese(Simplified)";
wxArrayString audacityPathList = wxGetApp().audacityPathList;
wxGetApp().AddUniquePathToPathList(wxString::Format("%s/share/locale",
INSTALL_PREFIX),
audacityPathList);
wxString lastCode = "";
int i;
for(i=wxLANGUAGE_UNKNOWN; i<wxLANGUAGE_USER_DEFINED;i++) {
const wxLanguageInfo *info = wxLocale::GetLanguageInfo(i);
if (!info)
continue;
wxString fullCode = info->CanonicalName;
wxString code = fullCode.Left(2);
wxString name = info->Description;
bool found = false;
if (localLanguageName[fullCode] != "") {
name = localLanguageName[fullCode];
}
if (localLanguageName[code] != "") {
name = localLanguageName[code];
}
if (fullCode.Length() < 2)
continue;
if (TranslationExists(audacityPathList, fullCode)) {
tempCodes.Add(fullCode);
tempNames.Add(name);
found = true;
}
if (code != lastCode) {
if (TranslationExists(audacityPathList, code)) {
tempCodes.Add(code);
tempNames.Add(name);
found = true;
}
if (code == "en" && !found) {
tempCodes.Add(code);
tempNames.Add(name);
found = true;
}
}
lastCode = code;
}
// Sort
unsigned int j;
for(j=0; j<tempNames.GetCount(); j++)
reverseHash[tempNames[j]] = tempCodes[j];
tempNames.Sort();
for(j=0; j<tempNames.GetCount(); j++) {
langNames.Add(tempNames[j]);
langCodes.Add(reverseHash[tempNames[j]]);
}
}
开发者ID:ruthmagnus,项目名称:audacity,代码行数:93,代码来源:Languages.cpp
示例9: CHECK_PTR_RET_FALSE
bool CodeCompletionManager::GetDefinitionsAndSearchPaths(clEditor* editor, wxArrayString& searchPaths,
wxArrayString& definitions)
{
// Sanity
CHECK_PTR_RET_FALSE(editor);
if(editor->GetProjectName().IsEmpty()) return false;
if(!clCxxWorkspaceST::Get()->IsOpen()) return false;
// Support only C/C++ files
if(!FileExtManager::IsCxxFile(editor->GetFileName().GetFullName())) return false;
// Get the file's project and get the build configuration settings
// for it
ProjectPtr proj = clCxxWorkspaceST::Get()->GetProject(editor->GetProjectName());
CHECK_PTR_RET_FALSE(proj);
BuildConfigPtr buildConf = proj->GetBuildConfiguration();
CHECK_PTR_RET_FALSE(buildConf);
CompilerPtr compiler = buildConf->GetCompiler();
CHECK_PTR_RET_FALSE(compiler);
#if 0
if(buildConf->IsCustomBuild()) {
definitions = proj->GetPreProcessors();
CL_DEBUG("CxxPreProcessor will use the following macros:");
CL_DEBUG_ARR(definitions);
// Custom builds are handled differently
CompilationDatabase compileDb;
compileDb.Open();
if(compileDb.IsOpened()) {
// we have compilation database for this workspace
wxString compileLine, cwd;
compileDb.CompilationLine(editor->GetFileName().GetFullPath(), compileLine, cwd);
CL_DEBUG("Pre Processor dimming: %s\n", compileLine);
CompilerCommandLineParser cclp(compileLine, cwd);
searchPaths = cclp.GetIncludes();
// get the mcros
definitions << cclp.GetMacros();
}
}
#endif
// get the include paths based on the project settings (this is per build configuration)
searchPaths = proj->GetIncludePaths();
CL_DEBUG("CxxPreProcessor will use the following include paths:");
CL_DEBUG_ARR(searchPaths);
// get the compiler include paths
// wxArrayString compileIncludePaths = compiler->GetDefaultIncludePaths();
// includePaths.insert(includePaths.end(), compileIncludePaths.begin(), compileIncludePaths.end());
definitions = proj->GetPreProcessors();
// get macros out of workspace
wxString strWorkspaceMacros = clCxxWorkspaceST::Get()->GetParserMacros();
wxArrayString workspaceMacros = wxStringTokenize(strWorkspaceMacros, wxT("\n\r"), wxTOKEN_STRTOK);
for(size_t i = 0; i < workspaceMacros.GetCount(); i++)
definitions.Add(workspaceMacros.Item(i).Trim().Trim(false).c_str());
CL_DEBUG("CxxPreProcessor will use the following macros:");
CL_DEBUG_ARR(definitions);
// Append the compiler builtin macros
wxArrayString builtinMacros = compiler->GetBuiltinMacros();
definitions.insert(definitions.end(), builtinMacros.begin(), builtinMacros.end());
return true;
}
开发者ID:jiapei100,项目名称:codelite,代码行数:71,代码来源:code_completion_manager.cpp
示例10: ProcessFile
void HeadersDetectorDlg::ProcessFile( ProjectFile* file, wxArrayString& includes )
{
// We do not care about proper encoding right now.
// Libraries should never use any native characters in names
// of their includes and in case of any multibyte encoding
// multibyte charcters shouldn't hurt us
// Encoding detector tends to work really slow in some cases
wxString Ext = file->file.GetExt();
Ext.MakeLower();
static const wxChar* Exts[] =
{
_T("h"), _T("hxx"), _T("hpp"),
_T("c"), _T("cpp"), _T("cxx"),
0
};
bool validExt = false;
for ( const wxChar** ptr = Exts; *ptr; ptr++ )
{
if ( Ext == *ptr )
{
validExt = true;
break;
}
}
if ( !validExt )
return;
wxFile fl( file->file.GetFullPath() );
if ( !fl.IsOpened() ) return;
wxFileOffset contentLength = fl.Length();
if ( contentLength <= 0 )
return;
char* content = new char[contentLength+1];
char* line = new char[contentLength+1];
if ( fl.Read(content,contentLength) != contentLength )
{
delete[] line;
delete[] content;
return;
}
content[contentLength] = 0;
bool blockComment = false;
for ( size_t pos = 0; pos < static_cast<size_t>(contentLength); )
{
// Fetching next line
char last = 0;
bool lineEnd = false;
int lineLength = 0;
bool lineComment = false;
bool inStr = false;
bool inChar = false;
bool lastCharAdded = false;
do
{
char ch = content[pos++];
bool thisCharAdded = false;
switch ( ch )
{
case '\n':
if ( content[pos] == '\r' )
pos++;
// Continue to \r
case '\r':
if ( last != '\\' )
{
lineEnd = true;
break;
}
else if ( lastCharAdded )
{
// Removing last char since it was '\'
// which is removed in the
// preprocessor level
lineLength--;
}
break;
case '*':
if ( blockComment )
{
if ( content[pos] == '/' )
{
pos++;
blockComment = false;
break;
}
}
else if ( !lineComment )
{
thisCharAdded = true;
line[lineLength++] = ch;
}
break;
//.........这里部分代码省略.........
开发者ID:SaturnSDK,项目名称:Saturn-SDK-IDE,代码行数:101,代码来源:headersdetectordlg.cpp
示例11: BuildRemoteList
//=============================================================================
// Function: BuildRemoteList
// Purpose: Append Network Neighborhood items to the list.
// Notes: - Mounted gets transalated into Connected. FilteredAdd is told
// to ignore the Mounted flag since we need to handle it in a weird
// way manually.
// - The resulting list is sorted alphabetically.
//=============================================================================
static bool BuildRemoteList(wxArrayString& list, NETRESOURCE* pResSrc,
unsigned flagsSet, unsigned flagsUnset)
{
// NN query depends on dynamically loaded library.
if (!s_pWNetOpenEnum || !s_pWNetEnumResource || !s_pWNetCloseEnum)
{
wxLogError(_("Failed to load mpr.dll."));
return false;
}
// Don't waste time doing the work if the flags conflict.
if (flagsSet & wxFS_VOL_MOUNTED && flagsUnset & wxFS_VOL_MOUNTED)
return false;
//----------------------------------------------
// Generate the list according to the flags set.
//----------------------------------------------
BuildListFromNN(list, pResSrc, flagsSet, flagsUnset);
list.Sort(CompareFcn);
//-------------------------------------------------------------------------
// If mounted only is requested, then we only need one simple pass.
// Otherwise, we need to build a list of all NN volumes and then apply the
// list of mounted drives to it.
//-------------------------------------------------------------------------
if (!(flagsSet & wxFS_VOL_MOUNTED))
{
// generate.
wxArrayString mounted;
BuildListFromNN(mounted, pResSrc, flagsSet | wxFS_VOL_MOUNTED, flagsUnset & ~wxFS_VOL_MOUNTED);
mounted.Sort(CompareFcn);
// apply list from bottom to top to preserve indexes if removing items.
ssize_t iList = list.GetCount()-1;
for (ssize_t iMounted = mounted.GetCount()-1; iMounted >= 0 && iList >= 0; iMounted--)
{
int compare;
wxString all(list[iList]);
wxString mount(mounted[iMounted]);
while (compare =
wxStricmp(list[iList].c_str(), mounted[iMounted].c_str()),
compare > 0 && iList >= 0)
{
iList--;
all = list[iList];
}
if (compare == 0)
{
// Found the element. Remove it or mark it mounted.
if (flagsUnset & wxFS_VOL_MOUNTED)
list.RemoveAt(iList);
else
s_fileInfo[list[iList]].m_flags |= wxFS_VOL_MOUNTED;
}
iList--;
}
}
return true;
} // BuildRemoteList
开发者ID:3v1n0,项目名称:wxWidgets,代码行数:73,代码来源:volume.cpp
示例12: GetIncludeFile
void GLCanvasWrapper::GetIncludeFile(wxArrayString& headers) const { headers.Add("#include <wx/glcanvas.h>"); }
开发者ID:eranif,项目名称:codelite,代码行数:1,代码来源:gl_canvas_wrapper.cpp
示例13: CHECK_PTR_RET_FALSE
bool CodeCompletionManager::GetDefinitionsAndSearchPaths(LEditor* editor,
wxArrayString& searchPaths,
wxArrayString& definitions)
{
// Sanity
CHECK_PTR_RET_FALSE(editor);
if(editor->GetProjectName().IsEmpty())
return false;
if(!WorkspaceST::Get()->IsOpen())
return false;
// Support only C/C++ files
if(!FileExtManager::IsCxxFile(editor->GetFileName().GetFullName()))
return false;
// Get the file's project and get the build configuration settings
// for it
ProjectPtr proj = WorkspaceST::Get()->GetProject(editor->GetProjectName());
CHECK_PTR_RET_FALSE(proj);
BuildConfigPtr buildConf = proj->GetBuildConfiguration();
CHECK_PTR_RET_FALSE(buildConf);
CompilerPtr compiler = buildConf->GetCompiler();
CHECK_PTR_RET_FALSE(compiler);
if(buildConf->IsCustomBuild()) {
// Custom builds are handled differently
CompilationDatabase compileDb;
compileDb.Open();
if(compileDb.IsOpened()) {
// we have compilation database for this workspace
wxString compileLine, cwd;
compileDb.CompilationLine(editor->GetFileName().GetFullPath(), compileLine, cwd);
CL_DEBUG("Pre Processor dimming: %s\n", compileLine);
CompilerCommandLineParser cclp(compileLine, cwd);
searchPaths = cclp.GetIncludes();
// get the mcros
definitions = cclp.GetMacros();
} else {
// we will probably will fail...
return false;
}
} else {
// get the include paths based on the project settings (this is per build configuration)
searchPaths = proj->GetIncludePaths();
CL_DEBUG("CxxPreProcessor will use the following include paths:");
CL_DEBUG_ARR(searchPaths);
// get the compiler include paths
// wxArrayString compileIncludePaths = compiler->GetDefaultIncludePaths();
// includePaths.insert(includePaths.end(), compileIncludePaths.begin(), compileIncludePaths.end());
definitions = proj->GetPreProcessors();
CL_DEBUG("CxxPreProcessor will use the following macros:");
CL_DEBUG_ARR(definitions);
}
// Append the compiler builtin macros
wxArrayString builtinMacros = compiler->GetBuiltinMacros();
definitions.insert(definitions.end(), builtinMacros.begin(), builtinMacros.end());
return true;
}
开发者ID:05storm26,项目名称:codelite,代码行数:67,代码来源:code_completion_manager.cpp
示例14: generateList
wxString ddDatabaseDesign::generateList(wxArrayString tables, wxArrayInt options, pgConn *connection, wxString schemaName)
{
int i;
// Validate
if(tables.Count() != options.Count())
{
// shouldn't it be a WXASSERT?
wxMessageBox(_("Invalid number of arguments in call of function generate tables of list"), _("Error at generation process"), wxICON_ERROR | wxOK);
return wxEmptyString;
}
int tablesCount = tables.Count();
for(i = 0; i < tablesCount; i++)
{
ddTableFigure *table = getTable(tables[i]);
if(table == NULL)
{
// shouldn't it be a WXASSERT?
wxMessageBox(_("Metadata of table to be generated not found at database designer model"), _("Error at generation process"), wxICON_ERROR | wxOK);
return wxEmptyString;
}
}
// Start building of CREATE + ALTER PK(s) + ALTER UK(s) + ALTER FK(s)
wxString out;
out += wxT(" \n");
out += wxT("--\n-- ");
out += _("Generating Create sentence(s) for table(s) ");
out += wxT(" \n--\n");
out += wxT(" \n");
for(i = 0; i < tablesCount; i++)
{
if(options[i] == DDGENCREATE || options[i] == DDGENDROPCRE)
{
ddTableFigure *table = getTable(tables[i]);
if(options[i] == DDGENDROPCRE)
{
out += wxT(" \n");
out += wxT("DROP TABLE \"") + table->getTableName() + wxT("\";");
out += wxT(" \n");
}
out += wxT(" \n");
out += table->generateSQLCreate(schemaName);
out += wxT(" \n");
}
}
out += wxT(" \n");
out += wxT(" \n");
out += wxT(" \n");
out += wxT("--\n-- ");
out += _("Generating Pk sentence for table(s) ");
out += wxT(" \n--\n");
out += wxT(" \n");
out += wxT(" \n");
for(i = 0; i < tablesCount; i++)
{
if(options[i] == DDGENCREATE || options[i] == DDGENDROPCRE)
{
ddTableFigure *table = getTable(tables[i]);
out += table->generateSQLAlterPks(schemaName);
}
}
out += wxT(" \n");
out += wxT(" \n");
out += wxT(" \n");
out += wxT("--\n-- ");
out += _("Generating Uk sentence(s) for table(s) ");
out += wxT(" \n--\n");
out += wxT(" \n");
out += wxT(" \n");
for(i = 0; i < tablesCount; i++)
{
if(options[i] == DDGENCREATE || options[i] == DDGENDROPCRE)
{
ddTableFigure *table = getTable(tables[i]);
out += table->generateSQLAlterUks(schemaName);
}
}
out += wxT(" \n");
out += wxT(" \n");
out += wxT(" \n");
out += wxT("--\n-- ");
out += _("Generating Fk sentence(s) for table(s) ");
out += wxT(" \n--\n");
out += wxT(" \n");
out += wxT(" \n");
for(i = 0; i < tablesCount; i++)
{
if(options[i] == DDGENCREATE || options[i] == DDGENDROPCRE)
{
ddTableFigure *table = getTable(tables[i]);
out += table->generateSQLAlterFks(schemaName);
}
}
//Start generation of alter table instead of create
//Check there is some
int countAlter = 0;
for(i = 0; i < tablesCount; i++)
//.........这里部分代码省略.........
开发者ID:SokilV,项目名称:pgadmin3,代码行数:101,代码来源:ddDatabaseDesign.cpp
示例15: wxGetAvailableDrives
size_t wxGetAvailableDrives(wxArrayString &paths, wxArrayString &names, wxArrayInt &icon_ids)
{
#ifdef wxHAS_FILESYSTEM_VOLUMES
#ifdef __WXWINCE__
// No logical drives; return "\"
paths.Add(wxT("\\"));
names.Add(wxT("\\"));
icon_ids.Add(wxFileIconsTable::computer);
#elif defined(__WIN32__) && wxUSE_FSVOLUME
// TODO: this code (using wxFSVolumeBase) should be used for all platforms
// but unfortunately wxFSVolumeBase is not implemented everywhere
const wxArrayString as = wxFSVolumeBase::GetVolumes();
for (size_t i = 0; i < as.GetCount(); i++)
{
wxString path = as[i];
wxFSVolume vol(path);
int imageId;
switch (vol.GetKind())
{
case wxFS_VOL_FLOPPY:
if ( (path == wxT("a:\\")) || (path == wxT("b:\\")) )
imageId = wxFileIconsTable::floppy;
else
imageId = wxFileIconsTable::removeable;
break;
case wxFS_VOL_DVDROM:
case wxFS_VOL_CDROM:
imageId = wxFileIconsTable::cdrom;
break;
case wxFS_VOL_NETWORK:
if (path[0] == wxT('\\'))
continue; // skip "\\computer\folder"
imageId = wxFileIconsTable::drive;
break;
case wxFS_VOL_DISK:
case wxFS_VOL_OTHER:
default:
imageId = wxFileIconsTable::drive;
break;
}
paths.Add(path);
names.Add(vol.GetDisplayName());
icon_ids.Add(imageId);
}
#elif defined(__OS2__)
APIRET rc;
ULONG ulDriveNum = 0;
ULONG ulDriveMap = 0;
rc = ::DosQueryCurrentDisk(&ulDriveNum, &ulDriveMap);
if ( rc == 0)
{
size_t i = 0;
while (i < 26)
{
if (ulDriveMap & ( 1 << i ))
{
const wxString path = wxFileName::GetVolumeString(
'A' + i, wxPATH_GET_SEPARATOR);
const wxString name = wxFileName::GetVolumeString(
'A' + i, wxPATH_NO_SEPARATOR);
// Note: If _filesys is unsupported by some compilers,
// we can always replace it by DosQueryFSAttach
char filesysname[20];
#ifdef __WATCOMC__
ULONG cbBuffer = sizeof(filesysname);
PFSQBUFFER2 pfsqBuffer = (PFSQBUFFER2)filesysname;
APIRET rc = ::DosQueryFSAttach(name.fn_str(),0,FSAIL_QUERYNAME,pfsqBuffer,&cbBuffer);
if (rc != NO_ERROR)
{
filesysname[0] = '\0';
}
#else
_filesys(name.fn_str(), filesysname, sizeof(filesysname));
#endif
/* FAT, LAN, HPFS, CDFS, NFS */
int imageId;
if (path == wxT("A:\\") || path == wxT("B:\\"))
imageId = wxFileIconsTable::floppy;
else if (!strcmp(filesysname, "CDFS"))
imageId = wxFileIconsTable::cdrom;
else if (!strcmp(filesysname, "LAN") ||
!strcmp(filesysname, "NFS"))
imageId = wxFileIconsTable::drive;
else
imageId = wxFileIconsTable::drive;
paths.Add(path);
names.Add(name);
icon_ids.Add(imageId);
}
i ++;
}
}
#else // !__WIN32__, !__OS2__
/* If we can switch to the drive, it exists. */
for ( char drive = 'A'; drive <= 'Z'; drive++ )
{
const wxString
//.........这里部分代码省略.........
开发者ID:Aced14,项目名称:pcsx2,代码行数:101,代码来源:dirctrlg.cpp
示例16: AppendArray
void AppendArray(const wxArrayString& from, wxArrayString& to)
{
for (unsigned int i = 0; i < from.GetCount(); ++i)
to.Add(from[i]);
}
开发者ID:gk7huki,项目名称:codeblocks_sf,代码行数:5,代码来源:globals.cpp
示例17: ItemType
bool ItemDatabase::loadFromOtbVer1(BinaryNode* itemNode, wxString& error, wxArrayString& warnings)
{
uint8_t u8;
for( ; itemNode != nullptr; itemNode = itemNode->advance())
{
if(!itemNode->getU8(u8))
{
// Invalid!
warnings.push_back(wxT("Invalid item type encountered..."));
continue;
}
if(u8 == ITEM_GROUP_DEPRECATED)
continue;
ItemType* t = newd ItemType();
t->group = ItemGroup_t(u8);
switch(t->group)
{
case ITEM_GROUP_NONE:
case ITEM_GROUP_GROUND:
case ITEM_GROUP_SPLASH:
case ITEM_GROUP_FLUID:
case ITEM_GROUP_WEAPON:
case ITEM_GROUP_AMMUNITION:
case ITEM_GROUP_ARMOR:
case ITEM_GROUP_WRITEABLE:
case ITEM_GROUP_KEY:
break;
case ITEM_GROUP_DOOR: t->type = ITEM_TYPE_DOOR; break;
case ITEM_GROUP_CONTAINER: t->type = ITEM_TYPE_CONTAINER; break;
case ITEM_GROUP_RUNE: t->client_chargeable = true; break;
case ITEM_GROUP_TELEPORT: t->type = ITEM_TYPE_TELEPORT; break;
case ITEM_GROUP_MAGICFIELD: t->type = ITEM_TYPE_MAGICFIELD; break;
default:
warnings.push_back(wxT("Unknown item group declaration"));
}
uint32_t flags;
if(itemNode->getU32(flags))
{
t->blockSolid = ((flags & FLAG_BLOCK_SOLID) == FLAG_BLOCK_SOLID);
t->blockProjectile = ((flags & FLAG_BLOCK_PROJECTILE) == FLAG_BLOCK_PROJECTILE);
t->blockPathFind = ((flags & FLAG_BLOCK_PATHFIND) == FLAG_BLOCK_PATHFIND);
// These are irrelevant
//t->hasHeight = ((flags & FLAG_HAS_HEIGHT) == FLAG_HAS_HEIGHT);
//t->useable = ((flags & FLAG_USEABLE) == FLAG_USEABLE);
t->pickupable = ((flags & FLAG_PICKUPABLE) == FLAG_PICKUPABLE);
t->moveable = ((flags & FLAG_MOVEABLE) == FLAG_MOVEABLE);
t->stackable = ((flags & FLAG_STACKABLE) == FLAG_STACKABLE);
t->floorChangeDown = ((flags & FLAG_FLOORCHANGEDOWN) == FLAG_FLOORCHANGEDOWN);
t->floorChangeNorth = ((flags & FLAG_FLOORCHANGENORTH) == FLAG_FLOORCHANGENORTH);
t->floorChangeEast = ((flags & FLAG_FLOORCHANGEEAST) == FLAG_FLOORCHANGEEAST);
t->floorChangeSouth = ((flags & FLAG_FLOORCHANGESOUTH) == FLAG_FLOORCHANGESOUTH);
t->floorChangeWest = ((flags & FLAG_FLOORCHANGEWEST) == FLAG_FLOORCHANGEWEST);
// Now this is confusing, just accept that the ALWAYSONTOP flag means it's always on bottom, got it?!
t->alwaysOnBottom = ((flags & FLAG_ALWAYSONTOP) == FLAG_ALWAYSONTOP);
t->isVertical = ((flags & FLAG_VERTICAL) == FLAG_VERTICAL);
t->isHorizontal = ((flags & FLAG_HORIZONTAL) == FLAG_HORIZONTAL);
t->isHangable = ((flags & FLAG_HANGABLE) == FLAG_HANGABLE);
t->allowDistRead = ((flags & FLAG_ALLOWDISTREAD) == FLAG_ALLOWDISTREAD);
t->rotable = ((flags & FLAG_ROTABLE) == FLAG_ROTABLE);
t->canReadText = ((flags & FLAG_READABLE) == FLAG_READABLE);
}
uint8_t attribute;
while(itemNode->getU8(attribute))
{
uint16_t datalen;
if(!itemNode->getU16(datalen))
{
warnings.push_back(wxT("Invalid item type property"));
break;
}
switch(attribute)
{
case ITEM_ATTR_SERVERID:
{
if(datalen != sizeof(uint16_t))
{
error = wxT("items.otb: Unexpected data length of server id block (Should be 2 bytes)");
return false;
}
if(!itemNode->getU16(t->id))
warnings.push_back(wxT("Invalid item type property (2)"));
if(max_item_id < t->id)
max_item_id = t->id;
} break;
case ITEM_ATTR_CLIENTID:
{
if(datalen != sizeof(uint16_t))
{
error = wxT("items.otb: Unexpected data length of client id block (Should be 2 bytes)");
return false;
}
//.........这里部分代码省略.........
开发者ID:LaloHao,项目名称:rme,代码行数:101,代码来源:items.cpp
示例18: update_channels
bool progress_dialog::update_channels( wxArrayString& channel_sections, bool install )
{
wxString command_string;
wxString current_section_string;
size_t number_of_sections = channel_sections.GetCount();
size_t current_section_array_index;
if ( number_of_sections == 0 ) {
return FALSE;
}
// If a before_group_command was specified, execute it. TRUE means wait for it to finish
wxString before_group_command;
before_group_command = the_configuration->Read( "/PLUCKER_DESKTOP/before_group_command", wxT( "" ) );
if ( before_group_command != wxT( "" ) ) {
m_progress_listbox->Append( _( "Executing command before spidering channels..." ) );
wxExecute( before_group_command, TRUE );
}
if ( m_abort_updating_signal_was_entered ) {
return FALSE;
}
if ( ! m_abort_updating_signal_was_entered ) {
// Give a notice that we are starting, as takes a few secs to spark up python
m_progress_listbox->Append( _( "Initializing Plucker spidering engine..." ) );
// Set the channels updated gauge (and statictext) to say zero of total complete
set_channels_updated_gauge( 0, (int)number_of_sections );
}
// Before calling plucker-build, need to set
|
请发表评论