本文整理汇总了C++中mglParse类的典型用法代码示例。如果您正苦于以下问题:C++ mglParse类的具体用法?C++ mglParse怎么用?C++ mglParse使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了mglParse类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: refresh
//-----------------------------------------------------------------------------
void MemPanel::refresh()
{
long n = parser.GetNumVar(), m=0;
for(long i=0;i<n;i++) if(parser.GetVar(i)) m++;
tab->setRowCount(m);
QString s;
QTableWidgetItem *it;
Qt::ItemFlags flags=Qt::ItemIsSelectable|Qt::ItemIsEnabled;
for(long i=m=0;i<n;i++)
{
mglDataA *v = parser.GetVar(i);
if(!v) continue;
s = QString::fromStdWString(v->s);
it = new QTableWidgetItem(s);
tab->setItem(m,0,it); it->setFlags(flags);
s.sprintf("%ld * %ld * %ld", v->GetNx(), v->GetNy(), v->GetNz());
it = new QTableWidgetItem(s);
tab->setItem(m,1,it); it->setFlags(flags);
it->setTextAlignment(Qt::AlignHCenter|Qt::AlignVCenter);
s.sprintf("%12ld", v->GetNN()*sizeof(mreal));
it = new QTableWidgetItem(s);
tab->setItem(m,2,it); it->setFlags(flags);
it->setTextAlignment(Qt::AlignRight|Qt::AlignVCenter);
if(v->o) refreshData((QWidget *)v->o);
m++;
}
tab->sortItems(colSort);
}
开发者ID:loonuh,项目名称:Overflows,代码行数:29,代码来源:mem_pnl.cpp
示例2: nameChanged
//-----------------------------------------------------------------------------
void NewCmdDialog::nameChanged(int s)
{
QString n=name->itemText(s), par, a;
int k;
if(n.isEmpty()) return;
QStringList ss; ss<<(pathHelp);
help->setSearchPaths(ss);
help->setSource(tr("mgl_en")+".html#"+n);
// clear old
kind->clear(); kinds.clear(); for(k=0;k<NUM_CH;k++) argn[k].clear();
// try to find the keyword
if(!parser.CmdType(n.toStdString().c_str())) return;
info->setText(QString::fromLocal8Bit(parser.CmdDesc(n.toStdString().c_str())));
par = QString::fromLocal8Bit(parser.CmdFormat(n.toStdString().c_str()));
int i0 = par.indexOf(' '); // first space if present
if(i0<0) { kind->addItem(par); return; } // no arguments
// parse kind of arguments
par = par.mid(i0);
for(k=0;k<NUM_CH;k++)
{
a = par.section('|',k,k);
if(a.isEmpty()) break;
a=a.trimmed();
kinds<<n+" "+a;
parse(argn[k],a);
}
kind->addItems(kinds); kind->setCurrentIndex(0); replace = false;
}
开发者ID:loonuh,项目名称:Overflows,代码行数:30,代码来源:newcmd_dlg.cpp
示例3: delData
//-----------------------------------------------------------------------------
void MemPanel::delData()
{
if(tab->rowCount()<1) return;
int n = tab->currentRow();
if(n<0) n = 0;
mglDataA *v = parser.FindVar(tab->item(n,0)->text().toStdString().c_str());
if(!v && v->o) ((QWidget *)v->o)->close();
parser.DeleteVar(tab->item(n,0)->text().toStdString().c_str());
refresh();
}
开发者ID:loonuh,项目名称:Overflows,代码行数:11,代码来源:mem_pnl.cpp
示例4: updateNames
//-----------------------------------------------------------------------------
void DataDialog::updateNames()
{
name->clear();
long i, n = parser.GetNumVar();
for(i=0;i<n;i++)
{
const mglDataA *v = parser.GetVar(i);
if(v) name->addItem(QString::fromStdWString(v->s));
}
}
开发者ID:loonuh,项目名称:Overflows,代码行数:11,代码来源:data_dlg.cpp
示例5: editPosChanged
void MainWindow::editPosChanged()
{
QString text = edit->selection(), dlm(" #;:\t");
int n = text.length(), i;
for(i=0;i<n;i++) if(dlm.contains(text[i])) break;
text.truncate(i);
QByteArray qxtext = text.toLatin1();
const char *ctext = qxtext.constData();
const char *desc = parser.CmdDesc(ctext);
const char *form = parser.CmdFormat(ctext);
if(form) setStatus(QString(desc)+": "+QString(form));
else setStatus(_("Not recognized"));
}
开发者ID:svn2github,项目名称:MathGL,代码行数:14,代码来源:udav_wnd.cpp
示例6: delAllData
//-----------------------------------------------------------------------------
void MemPanel::delAllData()
{
if(QMessageBox::information(this, tr("UDAV - delete all data"),
tr("Do you want to delete all data?"), QMessageBox::No,
QMessageBox::Yes)!=QMessageBox::Yes) return;
parser.DeleteAll(); refresh();
}
开发者ID:loonuh,项目名称:Overflows,代码行数:8,代码来源:mem_pnl.cpp
示例7: hist
//-----------------------------------------------------------------------------
void DatPanel::hist()
{
QLabel *l;
QLineEdit *id, *v1, *v2;
QSpinBox *nm;
QPushButton *b;
QDialog *d = new QDialog(this); d->setWindowTitle(tr("UDAV - Make histogram"));
QGridLayout *g = new QGridLayout(d);
l = new QLabel(tr("From"), d); g->addWidget(l,0,0);
l = new QLabel(tr("To"), d); g->addWidget(l,0,1);
v1 = new QLineEdit(d); g->addWidget(v1,1,0);
v2 = new QLineEdit(d); g->addWidget(v2,1,1);
l = new QLabel(tr("Number of points"), d); g->addWidget(l,2,0);
l = new QLabel(tr("Put in variable"), d); g->addWidget(l,2,1);
nm = new QSpinBox(d); nm->setRange(2,8192); g->addWidget(nm,3,0);
id = new QLineEdit(d); nm->setSingleStep(10); g->addWidget(id,3,1);
b = new QPushButton(tr("Cancel"), d); g->addWidget(b,4,0);
connect(b, SIGNAL(clicked()), d, SLOT(reject()));
b = new QPushButton(tr("OK"), d); g->addWidget(b,4,1);
connect(b, SIGNAL(clicked()), d, SLOT(accept())); b->setDefault(true);
// now execute dialog and get values
bool res = d->exec();
if(res && !v1->text().isEmpty() && !v2->text().isEmpty() && !id->text().isEmpty())
{
mglData *vv = dynamic_cast<mglData*>(parser.AddVar(id->text().toLocal8Bit().constData()));
if(vv) vv->Set(mgl_data_hist(var, nm->value(), v1->text().toDouble(), v2->text().toDouble(),0));
updateDataItems();
}
}
开发者ID:ClinicalGraphics,项目名称:MathGL,代码行数:30,代码来源:dat_pnl.cpp
示例8: prepareResult
//-----------------------------------------------------------------------------
void DataOpenDialog::prepareResult()
{
code = ""; numDataOpened++; data = name->text();
// prepare unique value of name for next time
char buf[32]; snprintf(buf,32,"mgl_%d",numDataOpened);
buf[31]=0; name->setText(buf);
mglData *v = dynamic_cast<mglData*>(parser.AddVar(data.toLocal8Bit().constData()));
if(!v) return;
int dd=0;
if(rA->isChecked()) // auto sizes
{
setlocale(LC_NUMERIC, "C"); v->Read(file.toLocal8Bit().constData()); setlocale(LC_NUMERIC, "");
if(v->nx==1) { v->nx = v->ny; v->ny = v->nz; }
code=QString("#read %1 '%2'\n").arg(data).arg(file);
}
else if(rM->isChecked()) // manual sizes
{
int x=nx->text().toInt(), y=ny->text().toInt(), z=nz->text().toInt();
setlocale(LC_NUMERIC, "C"); v->Read(file.toLocal8Bit().constData(),x,y,z); setlocale(LC_NUMERIC, "");
code=QString("#read %1 '%2' %3 %4 %5\n").arg(data).arg(file).arg(x).arg(y).arg(z);
}
else if(r2->isChecked()) // matrix
{
setlocale(LC_NUMERIC, "C"); v->ReadMat(file.toLocal8Bit().constData()); setlocale(LC_NUMERIC, "");
code=QString("#readmat %1 '%2'\n").arg(data).arg(file); dd=1;
}
else if(r3->isChecked()) // 3d-data
{
setlocale(LC_NUMERIC, "C"); v->ReadMat(file.toLocal8Bit().constData(),3); setlocale(LC_NUMERIC, "");
code=QString("#readmat %1 '%2' 3\n").arg(data).arg(file); dd=2;
}
if(scr->lineEdit()->text().isEmpty() || scr->lineEdit()->text()==tr("default"))
{
if(v->nz>1 || dd==2)
code+=QString("rotate 40 60\ncrange %1:box\nsurf3 %1\n").arg(data);
else if(v->ny>1 || dd==1)
code+=QString("rotate 40 60\ncrange %1:zrange %1:box\nsurf %1\n").arg(data);
else code+=QString("yrange %1:box\nplot %1\n").arg(data);
}
else
{
QString str;
QFile fp(scr->lineEdit()->text());
if(fp.open(QFile::ReadOnly | QIODevice::Text))
{
QTextStream in(&fp);
str = in.readAll();
code += str.arg(data);
}
}
QSettings settings("udav","UDAV");
settings.setPath(QSettings::IniFormat, QSettings::UserScope, "UDAV");
settings.beginGroup("/UDAV");
settings.setValue("/dataScr", dataScr);
settings.endGroup();
accept();
}
开发者ID:ClinicalGraphics,项目名称:MathGL,代码行数:60,代码来源:open_dlg.cpp
示例9: fillList
//-----------------------------------------------------------------------------
void NewCmdDialog::fillList()
{
type->addItem(QPixmap(plot_xpm), tr("1D plots"));
type->addItem(QPixmap(preview_xpm), tr("2D plots"));
type->addItem(QPixmap(":/png/weather-clouds.png"), tr("3D plots"));
type->addItem(QPixmap(tiles_xpm), tr("Dual plots"));
type->addItem(QPixmap(vect_xpm), tr("Vector plots"));
type->addItem(QPixmap(other_xpm), tr("Other plots"));
type->addItem(QPixmap(text_xpm), tr("Text and legend"));
type->addItem(QPixmap(table_xpm), tr("Create data and I/O"));
type->addItem(QPixmap(oper_dir_xpm), tr("Data transform"));
type->addItem(QPixmap(oper_dir_xpm), tr("Data handling"));
type->addItem(QPixmap(axis_xpm), tr("Axis and colorbar"));
type->addItem(QPixmap(axis_sh_xpm), tr("Axis setup"));
type->addItem(QPixmap(":/png/preferences-system.png"), tr("General setup"));
type->addItem(QPixmap(box_xpm), tr("Scale and rotate"));
type->addItem(QPixmap(":/png/media-playback-start.png"), tr("Program flow"));
type->addItem(QPixmap(curve_xpm), tr("Primitives"));
// now fill it automatically from parser for all categories
long i, n = parser.GetCmdNum();
for(i=0;i<n;i++)
{
const char *name = parser.GetCmdName(i);
switch(parser.CmdType(name))
{
case 1: cmds[5]<<name; break;
case 2: cmds[5]<<name; break;
case 3: cmds[12]<<name; break;
case 4: cmds[9]<<name; break;
case 5: cmds[7]<<name; break;
case 6: cmds[13]<<name; break;
case 7: cmds[14]<<name; break;
case 8: cmds[0]<<name; break;
case 9: cmds[1]<<name; break;
case 10: cmds[2]<<name; break;
case 11: cmds[3]<<name; break;
case 12: cmds[4]<<name; break;
case 13: cmds[10]<<name; break;
case 14: cmds[15]<<name; break;
case 15: cmds[11]<<name; break;
case 16: cmds[6]<<name; break;
case 17: cmds[8]<<name; break;
}
}
}
开发者ID:loonuh,项目名称:Overflows,代码行数:47,代码来源:newcmd_dlg.cpp
示例10: editData
//-----------------------------------------------------------------------------
void MemPanel::editData(int n)
{
if(tab->rowCount()<1) return;
if(n<0) n = tab->currentRow();
if(n<0) n = 0;
mglDataA *v = parser.FindVar(tab->item(n,0)->text().toStdString().c_str());
if(!v) return;
QWidget *t;
if(v->o) t = (QWidget *)v->o;
else t = newDataWnd(infoDlg,wnd,v);
t->showMaximized(); t->activateWindow();
}
开发者ID:loonuh,项目名称:Overflows,代码行数:13,代码来源:mem_pnl.cpp
示例11: newTable
//-----------------------------------------------------------------------------
void MemPanel::newTable()
{
bool ok;
QString name = QInputDialog::getText(this, tr("UDAV - New variable"),
tr("Enter name for new variable"), QLineEdit::Normal, "", &ok);
if(!ok || name.isEmpty()) return;
mglData *v = parser.AddVar(name.toStdString().c_str());
QWidget *t;
if(v->o) t = (QWidget *)v->o;
else t = newDataWnd(infoDlg,wnd,v);
t->showMaximized(); t->activateWindow();
refresh();
}
开发者ID:loonuh,项目名称:Overflows,代码行数:14,代码来源:mem_pnl.cpp
示例12: infoData
//-----------------------------------------------------------------------------
void MemPanel::infoData()
{
if(tab->rowCount()<1) return;
int n = tab->currentRow();
if(n<0) n = 0;
mglDataA *v = parser.FindVar(tab->item(n,0)->text().toStdString().c_str());
if(!v) return;
infoDlg->setVar(v);
QString s = QString::fromStdWString(v->s);
infoDlg->setWindowTitle(s + tr(" - UDAV preview"));
infoDlg->refresh();
infoDlg->show();
}
开发者ID:loonuh,项目名称:Overflows,代码行数:14,代码来源:mem_pnl.cpp
示例13: nameChanged
//-----------------------------------------------------------------------------
void DataDialog::nameChanged()
{
QString var = name->currentText();
wchar_t *txt=new wchar_t[var.length()+1];
var.toWCharArray(txt); txt[var.length()]=0;
mglData dat=parser.Calc(txt); delete []txt;
x1->setMaximum(dat.nx-1); x1->setValue(-1);
x2->setMaximum(dat.nx-1); x2->setValue(-1);
y1->setMaximum(dat.ny-1); y1->setValue(-1);
y2->setMaximum(dat.ny-1); y2->setValue(-1);
z1->setMaximum(dat.nz-1); z1->setValue(-1);
z2->setMaximum(dat.nz-1); z2->setValue(-1);
}
开发者ID:loonuh,项目名称:Overflows,代码行数:14,代码来源:data_dlg.cpp
示例14: updateRes
//-----------------------------------------------------------------------------
void DataDialog::updateRes()
{
result = name->currentText();
int nx1 = x1->value(), nx2 = x2->value(), ny1 = y1->value(), ny2 = y2->value(), nz1 = z1->value(), nz2 = z2->value();
if(nx1>=0 || ny1>=0 || nz1>=0 || nx2>=0 || ny2>=0 || nz2>=0)
result += "(" + (nx1<0?"":QString::number(nx1)) + ":" + (nx2<0?"":QString::number(nx2)) + "," +
(ny1<0?"":QString::number(ny1)) + ":" + (ny2<0?"":QString::number(ny2)) + "," +
(nz1<0?"":QString::number(nz1)) + ":" + (nz2<0?"":QString::number(nz2)) + ")";
if(oper->currentIndex()>0)
result = "{" + oper->currentText() + " " + result + " '" + dirs->currentText() + "'}";
wchar_t *txt=new wchar_t[result.length()+1];
result.toWCharArray(txt); txt[result.length()]=0;
mglData dat=parser.Calc(txt); delete []txt;
sizes->setText(tr("Result (will have sizes ") + QString::number(dat.nx)+"*"+QString::number(dat.ny)+"*"+QString::number(dat.nz)+")" );
res->setText(result);
}
开发者ID:loonuh,项目名称:Overflows,代码行数:17,代码来源:data_dlg.cpp
示例15: putArguments
//-----------------------------------------------------------------------------
void ArgsDialog::putArguments()
{
int len=0;
for(int i=0;i<10;i++)
if(a[i]->text().length()>len)
len = a[i]->text().length();
wchar_t *str = new wchar_t[len+2];
for(int i=0;i<10;i++)
{
QString s = a[i]->text();
int j, n = s.length();
for(j=0;j<n;j++) str[j] = (s[j]).unicode();
str[j] = 0;
parser.AddParam(i, str);
}
delete []str; accept();
}
开发者ID:svn2github,项目名称:MathGL,代码行数:18,代码来源:args_dlg.cpp
示例16: main
//-----------------------------------------------------------------------------
int main(int argc, char **argv)
{
char ch, iname[256]="";
mgl_suppress_warn(true);
while(1)
{
ch = getopt(argc, argv, "1:2:3:4:5:6:7:8:9:hL:s:");
if(ch>='1' && ch<='9') p.AddParam(ch-'0', optarg);
else if(ch=='s')
{
setlocale(LC_CTYPE, "");
FILE *fp = fopen(optarg,"r");
if(fp)
{
wchar_t ch;
while((ch=fgetwc(fp))!=WEOF) opt.push_back(ch);
fclose(fp);
}
}
else if(ch=='L') setlocale(LC_CTYPE, optarg);
else if(ch=='h' || (ch==-1 && optind>=argc))
{
printf("mglview show plot from MGL script or MGLD file.\nCurrent version is 2.%g\n",MGL_VER2);
printf("Usage:\tmglview [parameter(s)] scriptfile\n");
printf(
"\t-1 str set str as argument $1 for script\n"
"\t... ...\n"
"\t-9 str set str as argument $9 for script\n"
"\t-s opt set MGL script for setting up the plot\n"
"\t-L loc set locale to loc\n"
"\t- get script from standard input\n"
"\t-h print this message\n" );
ch = 'h'; break;
}
else if(ch==-1 && optind<argc)
{ strncpy(iname, argv[optind][0]=='-'?"":argv[optind],256); break; }
}
if(ch=='h') return 0;
bool mgld=(*iname && iname[strlen(iname)-1]=='d');
if(!mgld)
{
str = opt + L"\n";
setlocale(LC_CTYPE, "");
FILE *fp = *iname?fopen(iname,"r"):stdin;
if(fp)
{
wchar_t ch;
while((ch=fgetwc(fp))!=WEOF) str.push_back(ch);
fclose(fp);
}
else { printf("No file for MGL script\n"); return 0; }
}
mgl_ask_func = mgl_ask_gets;
mgl_ask_func = mgl_ask_qt;
mglQT gr(mgld?NULL:show, *iname?iname:"mglview");
if(mgld)
{
gr.Setup(false);
gr.NewFrame(); setlocale(LC_NUMERIC, "C");
if(!opt.empty())
{
p.Execute(&gr,opt.c_str());
printf("Setup script: %s\n",gr.Message());
gr.ImportMGLD(iname,true);
}
else gr.ImportMGLD(iname);
setlocale(LC_NUMERIC, ""); gr.EndFrame();
gr.Update();
}
if(!mglGlobalMess.empty()) printf("%s",mglGlobalMess.c_str());
return gr.Run();
}
开发者ID:loonuh,项目名称:Overflows,代码行数:75,代码来源:mglview.cpp
示例17: show
//-----------------------------------------------------------------------------
int show(mglGraph *gr)
{
p.Execute(gr,str.c_str());
printf("%s\n",gr->Message());
return 0;
}
开发者ID:loonuh,项目名称:Overflows,代码行数:7,代码来源:mglview.cpp
示例18: oper
//-----------------------------------------------------------------------------
void DatPanel::oper()
{
QLineEdit *f1;
QPushButton *b;
QDialog *d = new QDialog(this);
d->setWindowTitle(tr("UDAV - change data"));
QVBoxLayout *v = new QVBoxLayout(d);
QComboBox *c = new QComboBox(d); v->addWidget(c);
c->addItem(tr("Fill data by formula"));
c->addItem(tr("Transpose data with new dimensions"));
c->addItem(tr("Smooth data along direction(s)"));
c->addItem(tr("Summarize data along direction(s)"));
c->addItem(tr("Integrate data along direction(s)"));
c->addItem(tr("Differentiate data along direction(s)"));
c->addItem(tr("Laplace transform along direction(s)"));
c->addItem(tr("Swap data along direction(s)"));
c->addItem(tr("Mirror data along direction(s)"));
c->addItem(tr("Sin-Fourier transform along direction(s)"));
c->addItem(tr("Cos-Fourier transform along direction(s)"));
c->addItem(tr("Hankel transform along direction(s)"));
c->addItem(tr("Sew data along direction(s)"));
c->addItem(tr("Find envelope along direction(s)"));
c->setCurrentIndex(0);
f1 = new QLineEdit("z",d); v->addWidget(f1);
QHBoxLayout *h = new QHBoxLayout(); v->addLayout(h); h->addStretch(1);
b = new QPushButton(tr("Cancel"), d); h->addWidget(b);
connect(b, SIGNAL(clicked()), d, SLOT(reject()));
b = new QPushButton(tr("OK"), d); h->addWidget(b);
connect(b, SIGNAL(clicked()), d, SLOT(accept()));
b->setDefault(true);
// now execute dialog and get values
bool res = d->exec();
QString val = f1->text(), mgl;
int k = c->currentIndex();
QString self = QString::fromWCharArray(var->s.c_str());
if(res)
{
if(k<0)
{
QMessageBox::warning(d, tr("UDAV - make new data"),
tr("No action is selected. Do nothing."));
return;
}
switch(k)
{
case 0: mgl = "modify "+self+" '"+val+"'"; break;
case 1: mgl = "transpose "+self+" '"+val+"'"; break;
case 2: mgl = "smooth "+self+" '"+val+"'"; break;
case 3: mgl = "cumsum "+self+" '"+val+"'"; break;
case 4: mgl = "integrate "+self+" '"+val+"'"; break;
case 5: mgl = "diff "+self+" '"+val+"'"; break;
case 6: mgl = "diff2 "+self+" '"+val+"'"; break;
case 7: mgl = "swap "+self+" '"+val+"'"; break;
case 8: mgl = "mirror "+self+" '"+val+"'"; break;
case 9: mgl = "sinfft "+self+" '"+val+"'"; break;
case 10: mgl = "cosfft "+self+" '"+val+"'"; break;
case 11: mgl = "hankel "+self+" '"+val+"'"; break;
case 12: mgl = "sew "+self+" '"+val+"'"; break;
case 13: mgl = "envelop "+self+" '"+val+"'"; break;
}
}
if(!mgl.isEmpty())
{
mglGraph gr;
parser.Execute(&gr,mgl.toLocal8Bit().constData());
opers += mgl+"\n";
updateDataItems();
}
}
开发者ID:ClinicalGraphics,项目名称:MathGL,代码行数:71,代码来源:dat_pnl.cpp
示例19: highlightBlock
//-----------------------------------------------------------------------------
void QMGLSyntax::highlightBlock(const QString &text)
{
register int i, j, m = text.length(),s=0;
bool arg = false, nl = true;
QString num("+-.0123456789:");
i=0;
setCurrentBlockState(-1);
if(previousBlockState()==1)
{
bool cont=false;
j=i; i++;
for(;i<m && text[i]!='\'';i++)
{
if(text[i]>' ') cont=false;
if(text[i]=='\\') cont=true;
}
setFormat(j,i-j+1,mglColorScheme[1]);
if(cont && i==m) setCurrentBlockState(1);
}
for(;i<m;i++) // highlight paragraph
{
if(text[i]=='(') s++; if(text[i]==')') s--;
if(text[i]==' ' || text[i]=='\t') continue;
else if(text[i]=='#') // comment
{ setFormat(i,m-i,mglColorScheme[0]); break; }
else if(text[i]=='\'') // string
{
bool cont=false;
j=i; i++;
for(;i<m && text[i]!='\'';i++)
{
if(text[i]>' ') cont=false;
if(text[i]=='\\') cont=true;
}
setFormat(j,i-j+1,mglColorScheme[1]);
if(cont && i==m) setCurrentBlockState(1);
}
else if(nl) // keyword
{
char *s = new char[m+1];
for(j=i;j<text.length() && !text[j].isSpace() && text[j]!=':';j++)
s[j-i] = text[j].toLatin1();
s[j-i]=0;
int type = parser.CmdType(s);
if(type) setFormat(i,j-i+1,type!=7 ? (type==5 ? mglColorScheme[6] : mglColorScheme[2]) : mglColorScheme[7]);
delete []s;
}
else if(text[i]==';') { arg = true; nl = false; continue; }
else if(text[i]==':' && s==0) { nl=true; continue; }
else if(arg) // option
{
const char *o[13]={"xrange","yrange","zrange","cut","meshnum","alpha","light","ambient","diffuse","size","legend","number","value"};
unsigned l;
for(j=0;j<13;j++)
{
l = strlen(o[j]);
if(text.indexOf(o[j],i)==i && (i+l==long(text.length()) || text[i+l].isSpace()))
setFormat(i,l,mglColorScheme[3]);
}
}
else if(text[i]=='.' && i+1<text.length() && text[i+1].isLetter()) // suffix
{
for(j=i;j<text.length() && !text[j].isSpace();j++){};
setFormat(i,j-i+1,mglColorScheme[4]);
}
else if(num.contains(text[i])) // number
setFormat(i,1,mglColorScheme[5]);
else if((text[i]=='e' || text[i]=='E') && i+1<text.length() && num.contains(text[i-1]) && num.contains(text[i+1]) )
setFormat(i,1,mglColorScheme[5]);
else // number as its symbolic id
{
const char *o[]={"nan","inf","pi","on","off"};
int l[5] = {3, 3, 2, 2, 3};
for(j=0;j<5;j++)
if(text.indexOf(o[j],i)==i && (i+l[j]==text.length() || text[i+l[j]].isSpace()))
setFormat(i,l[j],mglColorScheme[5]);
}
arg = nl = false;
}
}
开发者ID:loonuh,项目名称:Overflows,代码行数:81,代码来源:qmglsyntax.cpp
示例20: main
//-----------------------------------------------------------------------------
int main(int argc, char **argv)
{
QString lang="";
QSettings settings("udav","UDAV");
settings.setPath(QSettings::IniFormat, QSettings::UserScope, "UDAV");
settings.beginGroup("/UDAV");
pathHelp = settings.value("/helpPath", MGL_DOC_DIR).toString();
pathFont = settings.value("/userFont", "").toString();
lang = settings.value("/udavLang", "").toString();
const char *loc="";
if(lang=="en") loc = "C.UTF8";
#if WIN32
if(lang=="ru") loc = "ru_RU.cp1251";
#else
if(lang=="ru") loc = "ru_RU.utf8";
#endif
if(lang=="es") { loc = "es_ES.utf8"; lang="en"; } // TODO remove lang="en"; then Spanish translation is ready !
mgl_textdomain(argv?argv[0]:NULL,loc);
bool showHint = settings.value("/showHint", true).toBool();
mglCompleter = settings.value("/completer", true).toBool();
settings.endGroup();
mgl_suppress_warn(true);
QCoreApplication::setAttribute(Qt::AA_X11InitThreads);
#ifdef WIN32
QCoreApplication::addLibraryPath("c:/plugins/");
QCoreApplication::addLibraryPath(QFileInfo(QString::fromLocal8Bit(argv[0])).absolutePath().append("/plugins/"));
#endif
mgl_ask_func = mgl_ask_qt;
QApplication a(argc, argv);
QTranslator translator;
//QTextCodec::setCodecForCStrings(QTextCodec::codecForName("UTF-8"));
#if defined(WIN32)
if(pathHelp.isEmpty()) pathHelp = a.applicationDirPath()+"\\";
#else
if(pathHelp.isEmpty()) pathHelp=MGL_DOC_DIR;
#endif
if(!lang.isEmpty())
{
if(!translator.load("udav_"+lang, UDAV_DIR))
translator.load("udav_"+lang, pathHelp);
a.installTranslator(&translator);
}
udavLoadDefCommands();
parser.AllowSetSize(true);
MainWindow *mw = new MainWindow();
if(argc>1)
{
QTextCodec *codec = QTextCodec::codecForLocale();
mw->load(codec->toUnicode(argv[1]), true);
}
mw->show();
mw->edit->edit->setFocus();
a.connect(&a, SIGNAL(lastWindowClosed()), &a, SLOT(quit()));
if(showHint) udavShowHint(mw);
return a.exec();
}
开发者ID:svn2github,项目名称:MathGL,代码行数:62,代码来源:udav_wnd.cpp
注:本文中的mglParse类示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论