本文整理汇总了C++中GridBox类的典型用法代码示例。如果您正苦于以下问题:C++ GridBox类的具体用法?C++ GridBox怎么用?C++ GridBox使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了GridBox类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: TabDialog
ComponentDialog::ComponentDialog(SimpleData * nd)
: TabDialog(0, 0, FALSE, Qt::WA_DeleteOnClose), data(nd)
{
nd->get_browser_node()->edit_start();
if (nd->get_browser_node()->is_writable()) {
setOkButton(tr("OK"));
setCancelButton(tr("Cancel"));
}
else {
setOkButton(QString());
setCancelButton(tr("Close"));
}
setWindowTitle(tr("component dialog"));
BrowserComponent * bn = (BrowserComponent *) nd->get_browser_node();
init_uml_tab();
rqs = bn->get_required_classes();
init_l_tab(rq_page, rq_stereotypefilter, &ComponentDialog::rq_stereotypeFilterActivated,
SLOT(rq_stereotypeFilterActivated(const QString &)),
SLOT(require_cls()), SLOT(unrequire_cls()),
lb_rq_available, lb_rq, rqs, tr("Required classes"));
prs = bn->get_provided_classes();
init_l_tab(pr_page, pr_stereotypefilter, &ComponentDialog::pr_stereotypeFilterActivated,
SLOT(pr_stereotypeFilterActivated(const QString &)),
SLOT(provide_cls()), SLOT(unprovide_cls()),
lb_pr_available, lb_pr, prs, tr("Provided classes"));
rzs = bn->get_realizing_classes();
init_l_tab(rz_page, rz_stereotypefilter, &ComponentDialog::rz_stereotypeFilterActivated,
SLOT(rz_stereotypeFilterActivated(const QString &)),
SLOT(realize_cls()), SLOT(unrealize_cls()),
lb_rz_available, lb_rz, rzs, tr("Realizing classes"));
// USER : list key - value
GridBox * grid = new GridBox(2, this);
grid->setMargin(5);
grid->setSpacing(5);
grid->addWidget(kvtable = new KeyValuesTable((BrowserComponent *) data->get_browser_node(),
grid, !hasOkButton()));
addTab(grid, tr("Properties"));
//
connect(this, SIGNAL(currentChanged(QWidget *)),
this, SLOT(change_tabs(QWidget *)));
open_dialog(this);
}
示例2: GridBox
void ComponentDialog::init_uml_tab()
{
bool visit = !hasOkButton();
BrowserComponent * bn = (BrowserComponent *) data->get_browser_node();
VVBox * vbox;
GridBox * grid = new GridBox(2, this);
umltab = grid;
grid->setMargin(5);
grid->setSpacing(5);
grid->addWidget(new QLabel(tr("name : "), grid));
grid->addWidget(edname = new LineEdit(bn->get_name(), grid));
edname->setReadOnly(visit);
grid->addWidget(new QLabel(tr("stereotype : "), grid));
grid->addWidget(edstereotype = new QComboBox(grid));
edstereotype->setEditable(true);
edstereotype->addItem(toUnicode(data->get_stereotype()));
if (! visit) {
edstereotype->addItems(BrowserComponent::default_stereotypes());
edstereotype->addItems(ProfiledStereotypes::defaults(UmlComponent));
edstereotype->setAutoCompletion(completion());
}
edstereotype->setCurrentIndex(0);
QSizePolicy sp = edstereotype->sizePolicy();
sp.setHorizontalPolicy(QSizePolicy::Expanding);
edstereotype->setSizePolicy(sp);
grid->addWidget(vbox = new VVBox(grid));
vbox->addWidget(new QLabel(tr("description :"), vbox));
if (! visit)
{
SmallPushButton* sButton;
connect(sButton = new SmallPushButton(tr("Editor"), vbox), SIGNAL(clicked()),
this, SLOT(edit_description()));
vbox->addWidget(sButton);
}
grid->addWidget(comment = new MultiLineEdit(grid));
comment->setReadOnly(visit);
comment->setText(bn->get_comment());
QFont font = comment->font();
if (! hasCodec())
font.setFamily("Courier");
font.setFixedPitch(TRUE);
comment->setFont(font);
addTab(grid, "Uml");
}
示例3: GridBox
void ActivityDialog::init_tab(CondDialog & d, InfoData & cd,
const char * lbl, bool enabled)
{
GridBox * grid = new GridBox(2, this);
grid->setMargin(5);
grid->setSpacing(5);
grid->addWidget(new QLabel(tr("Pre\ncondition : "), grid));
grid->addWidget(d.edpre = new MultiLineEdit(grid));
d.edpre->setText(cd.first);
if (visit)
d.edpre->setReadOnly(TRUE);
grid->addWidget(new QLabel(tr("Post\ncondition : "), grid));
grid->addWidget(d.edpost = new MultiLineEdit(grid));
d.edpost->setText(cd.second);
if (visit)
d.edpost->setReadOnly(TRUE);
addTab(grid, lbl);
if (! enabled)
removePage(grid);
}
示例4: GridBox
void ParameterDialog::init_tab(QWidget *& tab, MultiLineEdit *& ed, const char * v,
const char * lbl, const char * sl, bool enabled)
{
bool visit = !hasOkButton();
GridBox * grid = new GridBox(2, this);
tab = grid;
grid->setMargin(5);
grid->setSpacing(5);
VVBox * vtab;
grid->addWidget(vtab = new VVBox(grid));
vtab->addWidget(new QLabel(tr("selection : "), vtab));
SmallPushButton* sButton;
if (! visit)
{
connect(sButton = new SmallPushButton(tr("Editor"), vtab), SIGNAL(clicked()), this, sl);
vtab->addWidget(sButton);
}
grid->addWidget(ed = new MultiLineEdit(grid));
QFont font = ed->font();
if (! hasCodec())
font.setFamily("Courier");
font.setFixedPitch(TRUE);
ed->setFont(font);
ed->setText(v);
if (visit)
ed->setReadOnly(TRUE);
addTab(grid, lbl);
if (! enabled)
removePage(grid);
}
示例5: Grid_RecalcBoxRouting
/**
* @brief This function recalculates the routing in and around the box bounded by min and max.
* @sa CMod_LoadRouting
* @sa Grid_RecalcRouting
* @param[in] mapTiles List of tiles the current (RMA-)map is composed of
* @param[in] routing The routing map (either server or client map)
* @param[in] box The box to recalc routing for
* @param[in] list The local models list (a local model has a name starting with * followed by the model number)
*/
void Grid_RecalcBoxRouting (mapTiles_t* mapTiles, Routing& routing, const GridBox& box, const char** list)
{
int x, y, z, actorSize, dir;
/* check unit heights */
for (actorSize = 1; actorSize <= ACTOR_MAX_SIZE; actorSize++) {
GridBox rBox(box); /* the box we will actually reroute */
/* Offset the initial X and Y to compensate for larger actors when needed. */
rBox.expandXY(actorSize - 1);
/* also start one level above the box to measure high floors correctly */
rBox.addOneZ();
for (y = rBox.getMinY(); y <= rBox.getMaxY(); y++) {
for (x = rBox.getMinX(); x <= rBox.getMaxX(); x++) {
/** @note RT_CheckCell goes from top (7) to bottom (0) */
for (z = rBox.getMaxZ(); z >= 0; z--) {
const int newZ = RT_CheckCell(mapTiles, routing, actorSize, x, y, z, list);
assert(newZ <= z);
z = newZ;
}
}
}
}
/* check connections */
for (actorSize = 1; actorSize <= ACTOR_MAX_SIZE; actorSize++) {
GridBox rBox(box); /* the box we will actually reroute */
rBox.expandXY(actorSize); /* for connections, expand by the full size of the actor */
rBox.addOneZ();
for (y = rBox.getMinY(); y <= rBox.getMaxY(); y++) {
for (x = rBox.getMinX(); x <= rBox.getMaxX(); x++) {
for (dir = 0; dir < CORE_DIRECTIONS; dir++) {
/* for places outside the model box, skip dirs that can not be affected by the model */
if (x > box.getMaxX() && dir != 1 && dir != 5 && dir != 6)
continue;
if (y > box.getMaxY() && dir != 3 && dir != 5 && dir != 7)
continue;
if (actorSize == ACTOR_SIZE_NORMAL) {
if (x < box.getMinX() && dir != 0 && dir != 4 && dir != 7)
continue;
if (y < box.getMinY() && dir != 2 && dir != 4 && dir != 6)
continue;
} else {
/* the position of 2x2 actors is their lower left cell */
if (x < box.getMinX() - 1 && dir != 0 && dir != 4 && dir != 7)
continue;
if (y < box.getMinY() - 1 && dir != 2 && dir != 4 && dir != 6)
continue;
}
// RT_UpdateConnectionColumn(mapTiles, routing, actorSize, x, y, dir, list);
RT_UpdateConnectionColumn(mapTiles, routing, actorSize, x, y, dir, list, rBox.getMinZ(), rBox.getMaxZ());
}
}
}
}
}
示例6: TabDialog
TransitionDialog::TransitionDialog(TransitionData * r)
: TabDialog(0, 0, true, Qt::WA_DeleteOnClose), rel(r)
{
r->browser_node->edit_start();
if (r->browser_node->is_writable()) {
setOkButton(tr("OK"));
setCancelButton(tr("Cancel"));
}
else {
setOkButton(QString());
setCancelButton(tr("Close"));
}
setWindowTitle(tr("Transition dialog"));
visit = !hasOkButton();
BrowserNode * bn = rel->browser_node;
GridBox * grid;
//
// general tab
//
grid = new GridBox(2, this);
umltab = grid;
grid->setMargin(5);
grid->setSpacing(5);
grid->addWidget(new QLabel(tr("name : "), grid));
grid->addWidget(edname = new LineEdit(bn->get_name(), grid));
edname->setReadOnly(visit);
grid->addWidget(new QLabel(tr("stereotype : "), grid));
grid->addWidget(edstereotype = new QComboBox(grid));
edstereotype->setEditable(!visit);
edstereotype->addItem(toUnicode(rel->get_stereotype()));
if (!visit) {
//edstereotype->addItems(rel->get_start()->default_stereotypes(type));
edstereotype->setAutoCompletion(completion());
edstereotype->addItems(ProfiledStereotypes::defaults(UmlTransition));
}
edstereotype->setCurrentIndex(0);
QSizePolicy sp = edstereotype->sizePolicy();
sp.setHorizontalPolicy(QSizePolicy::Expanding);
edstereotype->setSizePolicy(sp);
if (r->get_start_node() != r->get_end_node())
internal_cb = 0;
else {
grid->addWidget(new QLabel(grid));
grid->addWidget(internal_cb = new QCheckBox(tr("internal"), grid));
internal_cb->setChecked(r->internal());
}
VVBox * vtab;
grid->addWidget(vtab = new VVBox(grid));
vtab->addWidget(new QLabel(tr("description :"), vtab));
if (! visit)
{
SmallPushButton* sButton;
connect(sButton = new SmallPushButton(tr("Editor"), vtab), SIGNAL(clicked()),
this, SLOT(edit_description()));
vtab->addWidget(sButton);
}
grid->addWidget(comment = new MultiLineEdit(grid));
comment->setReadOnly(visit);
comment->setText(bn->get_comment());
//comment->setFont(font);
addTab(grid, "Uml");
// UML / OCL
init_tab(ocltab, uml, rel->uml, "Ocl", SLOT(edit_uml_trigger()),
SLOT(edit_uml_guard()), SLOT(edit_uml_expr()), TRUE);
// CPP
init_tab(cppTab, cpp, rel->cpp, "C++", SLOT(edit_cpp_trigger()),
SLOT(edit_cpp_guard()), SLOT(edit_cpp_expr()),
GenerationSettings::cpp_get_default_defs());
// Java
init_tab(javatab, java, rel->java, "Java", SLOT(edit_java_trigger()),
SLOT(edit_java_guard()), SLOT(edit_java_expr()),
GenerationSettings::java_get_default_defs());
// USER : list key - value
grid = new GridBox(2, this);
grid->setMargin(5);
grid->setSpacing(5);
grid->addWidget(kvtable = new KeyValuesTable(bn, grid, visit));
addTab(grid, tr("Properties"));
//
//.........这里部分代码省略.........
示例7: GridBox
void TransitionDialog::init_tab(QWidget *& tab, TransDialog & d, TransDef & td,
const char * lbl, const char * sl_trigger,
const char * sl_guard, const char * sl_expr,
bool enabled)
{
GridBox * grid = new GridBox(2, this);
VVBox * vtab;
SmallPushButton* sButton;
tab = grid;
grid->setMargin(5);
grid->setSpacing(5);
grid->addWidget(vtab = new VVBox(grid));
vtab->addWidget(new QLabel(tr("trigger : "), vtab));
if (! visit)
{
connect(sButton = new SmallPushButton(tr("Editor"), vtab), SIGNAL(clicked()),
this, sl_trigger);
vtab->addWidget(sButton);
}
grid->addWidget(d.edtrigger = new MultiLineEdit(grid));
QFont font = d.edtrigger->font();
if (! hasCodec())
font.setFamily("Courier");
font.setFixedPitch(TRUE);
d.edtrigger->setFont(font);
d.edtrigger->setText(td.trigger);
if (visit)
d.edtrigger->setReadOnly(TRUE);
grid->addWidget(vtab = new VVBox(grid));
vtab->addWidget(new QLabel(tr("guard\nconstraint : "), vtab));
if (! visit)
{
connect(sButton = new SmallPushButton(tr("Editor"), vtab), SIGNAL(clicked()),
this, sl_guard);
vtab->addWidget(sButton);
}
grid->addWidget(d.edguard = new MultiLineEdit(grid));
d.edguard->setFont(font);
d.edguard->setText(td.guard);
if (visit)
d.edguard->setReadOnly(TRUE);
grid->addWidget(vtab = new VVBox(grid));
vtab->addWidget(new QLabel(tr("activity\nexpression : "), vtab));
if (! visit)
{
connect(sButton = new SmallPushButton(tr("Editor"), vtab), SIGNAL(clicked()),
this, sl_expr);
vtab->addWidget(sButton);
}
grid->addWidget(d.edexpr = new MultiLineEdit(grid));
d.edexpr->setFont(font);
d.edexpr->setText(td.expr);
if (visit)
d.edexpr->setReadOnly(TRUE);
addTab(grid, lbl);
if (! enabled)
removePage(grid);
}
示例8: TabDialog
ClassInstanceDialog::ClassInstanceDialog(ClassInstanceData * i)
: TabDialog(0, "class instance dialog", FALSE, Qt::WA_DeleteOnClose),
inst(i), atbl(0), rtbl(0)
{
setWindowTitle(tr("Class instance dialog"));
BrowserNode * bn = inst->get_browser_node();
bn->edit_start();
if (bn->is_writable()) {
setOkButton(tr("OK"));
setCancelButton(tr("Cancel"));
}
else {
setOkButton(QString());
setCancelButton(tr("Close"));
}
visit = !hasOkButton();
GridBox * grid;
// general tab
grid = new GridBox(2, this);
grid->setMargin(5);
grid->setSpacing(5);
grid->addWidget(new QLabel(tr("name : "), grid));
grid->addWidget(edname = new LineEdit(bn->get_name(), grid));
if (visit)
edname->setReadOnly(TRUE);
grid->addWidget(new QLabel(tr("stereotype :"), grid));
grid->addWidget(edstereotype = new QComboBox( grid));
edstereotype->setEditable(!visit);
edstereotype->addItem(toUnicode(bn->get_stereotype()));
if (! visit) {
edstereotype->addItems(ProfiledStereotypes::defaults(UmlClassInstance));
edstereotype->setAutoCompletion(completion());
}
SmallPushButton * b;
grid->addWidget(b = new SmallPushButton(tr("class :"), grid));
connect(b, SIGNAL(clicked()), this, SLOT(menu_class()));
grid->addWidget(edtype = new QComboBox(grid));
if (visit) {
edtype->addItem(inst->get_class()->full_name());
nodes.append(inst->get_class());
}
else {
BrowserClass::instances(nodes);
nodes.full_names(list);
edtype->addItems(list);
edtype->setCurrentIndex(nodes.indexOf(inst->get_class()));
connect(edtype, SIGNAL(activated(int)), this, SLOT(type_changed(int)));
}
if (visit)
cl_container = 0;
else {
cl_container = (BrowserNode *) bn->parent();
if ((cl_container != 0) && !cl_container->is_writable())
cl_container = 0;
}
VVBox * vtab;
grid->addWidget(vtab = new VVBox(grid));
vtab->addWidget(new QLabel(tr("description :"), vtab));
if (! visit) {
connect(b =new SmallPushButton(tr("Editor"), vtab), SIGNAL(clicked()),
this, SLOT(edit_description()));
vtab->addWidget(b);
}
grid->addWidget(comment = new MultiLineEdit(grid));
comment->setReadOnly(visit);
comment->setText(bn->get_comment());
QFont font = comment->font();
if (! hasCodec())
font.setFamily("Courier");
font.setFixedPitch(TRUE);
comment->setFont(font);
addTab(grid, "Uml");
// attributes tab
//.........这里部分代码省略.........
示例9: QDialog
ConstrDestrCopyDialog::ConstrDestrCopyDialog(UmlClass * cl, bool have_constructor,
bool have_destructor, bool have_copy,
bool have_const_copy, bool have_assignment,
bool have_const_assignment)
: QDialog(0), target(cl)
{
setModal(true);
QVBoxLayout * vbox = new QVBoxLayout(this);
GridBox * g;
QList<QLabel*> labels;
QLabel * lbl;
vbox->setSpacing(5);
vbox->setMargin(5);
lbl = new QLabel(QString("<big><b>C++ utilities for the class <i><tt>") +
(const char *) cl->name() + "</tt></i></b></big>",
this);
lbl->setAlignment(Qt::AlignCenter);
vbox->addWidget(lbl);
// constructor
g = new GridBox(2, this);
vbox->addWidget(g);
labels.append(lbl = new QLabel((have_constructor)
? "the class already have contructor "
: "the class doesn't have contructor ",
g));
g->addWidget(lbl);
HHBox * h;
g->addWidget(h = new HHBox(g));
h->addWidget(add_constr = new QCheckBox("add constructor", h));
h->addWidget(constr_explicit = new QCheckBox("explicit", h));
// destructor
if (! have_destructor) {
g = new GridBox(2,this);
vbox->addWidget(g);
labels.append(lbl = new QLabel("the class doesn't have destructor ",
g));
g->addWidget(lbl);
h = new HHBox(g);
g->addWidget(h);
h->addWidget(add_destr = new QCheckBox("add destructor", h));
h->addWidget(virtual_destr = new QCheckBox("virtual", h));
}
else
add_destr = 0;
// copy contructor
if (have_copy) {
add_copy = 0;
if (!have_const_copy) {
g = new GridBox(2, this);
vbox->addWidget(g);
labels.append(lbl = new QLabel("the class doesn't have copy contructor \nwith const argument ",
g));
g->addWidget(lbl);
g->addWidget(add_const_copy = new QCheckBox("add copy constructor\nwith const argument",
g));
}
else
add_const_copy = 0;
}
else if (!have_const_copy) {
g = new GridBox(2, this);
vbox->addWidget(g);
labels.append(lbl = new QLabel("the class doesn't have copy contructor ",
g));
g->addWidget(lbl);
VVBox * v = new VVBox(g);
g->addWidget(v);
v->addWidget(add_const_copy = new QCheckBox("add copy constructor\nwith const argument",
v));
v->addWidget(add_copy = new QCheckBox("add copy constructor\nwith non const argument",
v));
}
else {
g = new GridBox(2,this);
vbox->addWidget(g);
labels.append(lbl = new QLabel("the class doesn't have copy contructor \nwith non const argument ",
g));
g->addWidget(lbl);
g->addWidget(add_copy = new QCheckBox("add copy constructor\nwith non const argument",
g));
add_const_copy = 0;
//.........这里部分代码省略.........
示例10: TabDialog
StateDialog::StateDialog(StateData * d)
: TabDialog(0, 0, FALSE, Qt::WA_DeleteOnClose), state(d)
{
d->browser_node->edit_start();
if (d->browser_node->is_writable()) {
setOkButton(tr("OK"));
setCancelButton(tr("Cancel"));
}
else {
setOkButton(QString());
setCancelButton(tr("Close"));
}
setWindowTitle(tr("State dialog"));
visit = !hasOkButton();
BrowserNode * bn = state->browser_node;
GridBox * grid;
//
// general tab
//
grid = new GridBox(2, this);
umltab = grid;
grid->setMargin(5);
grid->setSpacing(5);
grid->addWidget(new QLabel(tr("name : "), grid));
grid->addWidget(edname = new LineEdit(bn->get_name(), grid));
edname->setReadOnly(visit);
grid->addWidget(new QLabel(tr("stereotype : "), grid));
grid->addWidget(edstereotype = new QComboBox( grid));
edstereotype->setEditable(!visit);
edstereotype->addItem(toUnicode(state->get_stereotype()));
if (!visit) {
edstereotype->addItems(BrowserState::default_stereotypes());
edstereotype->addItems(ProfiledStereotypes::defaults(UmlState));
edstereotype->setAutoCompletion(completion());
}
edstereotype->setCurrentIndex(0);
QSizePolicy sp = edstereotype->sizePolicy();
sp.setHorizontalPolicy(QSizePolicy::Expanding);
edstereotype->setSizePolicy(sp);
SmallPushButton* sButton;
connect(sButton = new SmallPushButton(tr("specification :"), grid), SIGNAL(clicked()),
this, SLOT(menu_specification()));
grid->addWidget(sButton);
grid->addWidget(edspecification = new QComboBox(grid));
edspecification->setSizePolicy(sp);
if (visit) {
if (state->get_specification() == 0)
edspecification->addItem("");
else
edspecification->addItem(state->get_specification()->full_name(TRUE));
}
else {
edspecification->addItem("");
edspecification->setAutoCompletion(completion());
BrowserOperation::instances(opers);
opers.full_names(speclist);
edspecification->addItems(speclist);
edspecification->setCurrentIndex((state->get_specification() == 0)
? 0
: opers.indexOf(state->get_specification()) + 1);
}
switch (((BrowserNode *) bn->parent())->get_type()) {
case UmlState:
case UmlRegion:
if ((state->get_reference() != 0) || (bn->firstChild() == 0)) {
connect(sButton = new SmallPushButton(tr("reference :"), grid), SIGNAL(clicked()),
this, SLOT(menu_reference()));
grid->addWidget(sButton);
grid->addWidget(edreference = new QComboBox(grid));
edreference->setSizePolicy(sp);
if (visit) {
if (state->get_reference() == 0)
edreference->addItem("");
else
edreference->addItem(state->get_reference()->full_name(TRUE));
}
else {
edreference->addItem("");
edreference->setAutoCompletion(completion());
if (((BrowserState *) bn)->can_reference()) {
BrowserState::instances(states, TRUE);
QMutableListIterator<BrowserNode *> it(states);
while (it.hasNext()) {
BrowserState *state = (BrowserState *)it.next();
if (!((BrowserState *) bn)->can_reference(state) ||
//.........这里部分代码省略.........
示例11: Grid_RecalcRouting
/**
* @brief This function recalculates the routing surrounding the entity name.
* @sa CM_InlineModel
* @sa CM_CheckUnit
* @sa CM_UpdateConnection
* @sa CMod_LoadSubmodels
* @sa Grid_RecalcBoxRouting
* @param[in] mapTiles List of tiles the current (RMA-)map is composed of
* @param[in] routing The routing map (either server or client map)
* @param[in] name Name of the inline model to compute the mins/maxs for
* @param[in] box The box around the inline model (alternative to name)
* @param[in] list The local models list (a local model has a name starting with * followed by the model number)
*/
void Grid_RecalcRouting (mapTiles_t* mapTiles, Routing& routing, const char* name, const GridBox& box, const char** list)
{
if (box.isZero()) {
/* get inline model, if it is one */
if (*name != '*') {
Com_Printf("Called Grid_RecalcRouting with no inline model\n");
return;
}
const cBspModel_t* model = CM_InlineModel(mapTiles, name);
if (!model) {
Com_Printf("Called Grid_RecalcRouting with invalid inline model name '%s'\n", name);
return;
}
AABB absbox;
#if 1
/* An attempt to fix the 'doors starting opened' bug (# 3456).
* The main difference is the (missing) rotation of the halfVec.
* The results are better, but do not fix the problem. */
CalculateMinsMaxs(model->angles, model->cbmBox, model->origin, absbox);
#else
/* get the target model's dimensions */
if (VectorNotEmpty(model->angles)) {
vec3_t minVec, maxVec;
vec3_t centerVec, halfVec, newCenterVec;
vec3_t m[3];
/* Find the center of the extents. */
model->cbmBox.getCenter(centerVec);
/* Find the half height and half width of the extents. */
VectorSubtract(model->cbmBox.maxs, centerVec, halfVec);
/* Rotate the center about the origin. */
VectorCreateRotationMatrix(model->angles, m);
VectorRotate(m, centerVec, newCenterVec);
/* Set minVec and maxVec to bound around newCenterVec at halfVec size. */
VectorSubtract(newCenterVec, halfVec, minVec);
VectorAdd(newCenterVec, halfVec, maxVec);
/* Now offset by origin then convert to position (Doors do not have 0 origins) */
absbox.set(minVec, maxVec);
absbox.shift(model->origin);
} else { /* normal */
/* Now offset by origin then convert to position (Doors do not have 0 origins) */
absbox.set(model->cbmBox);
absbox.shift(model->origin);
}
#endif
GridBox rerouteBox(absbox);
/* fit min/max into the world size */
rerouteBox.clipToMaxBoundaries();
/* We now have the dimensions, call the generic rerouting function. */
Grid_RecalcBoxRouting(mapTiles, routing, rerouteBox, list);
} else {
/* use the passed box */
Grid_RecalcBoxRouting(mapTiles, routing, box, list);
}
}
示例12: QDialog
Dialog::Dialog() : QDialog(0)
{
setModal(true);
QVBoxLayout * vbox = new QVBoxLayout(this);
VGridBox * gbox;
BButtonGroup * bg;
HHBox * htab;
vbox->setMargin(5);
gbox = new VGridBox(10,this,"Filters");
vbox->addWidget(gbox);
gbox->addWidget(htab = new HHBox(gbox));
//htab->setMargin(5);
htab->addWidget(new QLabel("filter 1 : ", htab));
htab->addWidget(filter1_le = new LineEdit(htab));
htab->addWidget(new QLabel(" ", htab));
htab->addWidget(bg = new BButtonGroup(htab));
//bg->setRadioButtonExclusive(TRUE);
bg->addWidget(with1_rb = new QRadioButton("with", bg));
bg->addWidget(new QRadioButton("without", bg));
with1_rb->setChecked(TRUE);
//
gbox->addWidget(htab = new HHBox(gbox));
//htab->setMargin(5);
htab->addWidget(new QLabel("", htab));
htab->addWidget(bg = new BButtonGroup(htab));
//bg->setRadioButtonExclusive(TRUE);
bg->addWidget(and12_rb = new QRadioButton("and", bg));
bg->addWidget(new QRadioButton("or", bg));
and12_rb->setChecked(TRUE);
htab->addWidget(new QLabel("", htab));
//
gbox->addWidget(htab = new HHBox(gbox));
//htab->setMargin(5);
htab->addWidget(new QLabel("filter 2 : ", htab));
htab->addWidget(filter2_le = new LineEdit(htab));
htab->addWidget(new QLabel(" ", htab));
htab->addWidget(bg = new BButtonGroup(htab));
//bg->setRadioButtonExclusive(TRUE);
bg->addWidget(with2_rb = new QRadioButton("with", bg));
bg->addWidget(new QRadioButton("without", bg));
with2_rb->setChecked(TRUE);
//
gbox->addWidget(htab = new HHBox(gbox));
//htab->setMargin(5);
htab->addWidget(new QLabel("", htab));
htab->addWidget(bg = new BButtonGroup(htab));
//bg->setRadioButtonExclusive(TRUE);
bg->addWidget(and23_rb = new QRadioButton("and", bg));
bg->addWidget(new QRadioButton("or", bg));
and23_rb->setChecked(TRUE);
htab->addWidget(new QLabel("", htab));
//
gbox->addWidget(htab = new HHBox(gbox));
//htab->setMargin(5);
htab->addWidget(new QLabel("filter 3 : ", htab));
htab->addWidget(filter3_le = new LineEdit(htab));
htab->addWidget(new QLabel(" ", htab));
htab->addWidget(bg = new BButtonGroup(htab));
//bg->setRadioButtonExclusive(TRUE);
bg->addWidget(with3_rb = new QRadioButton("with", bg));
bg->addWidget(new QRadioButton("without", bg));
with3_rb->setChecked(TRUE);
//
//
gbox = new VGridBox(2,this,"Stereotype" );
vbox->addWidget(gbox);
gbox->addWidget(htab = new HHBox(gbox));
//htab->setMargin(5);
//.........这里部分代码省略.........
示例13: TabDialog
PseudoStateDialog::PseudoStateDialog(PseudoStateData * ps)
: TabDialog(0, 0, FALSE, Qt::WA_DeleteOnClose), pst(ps)
{
BrowserPseudoState * bn = (BrowserPseudoState *) pst->browser_node;
BrowserState * refst;
SmallPushButton* sButton;
switch (bn->get_type()) {
case EntryPointPS:
case ExitPointPS:
if (((BrowserNode *) bn->parent())->get_type() == UmlState) {
refst = ((StateData *)((BrowserNode *) bn->parent())->get_data())->get_reference();
break;
}
// no break
default:
refst = 0;
}
bn->edit_start();
if (bn->is_writable()) {
setOkButton(TR("OK"));
setCancelButton(TR("Cancel"));
}
else {
setOkButton(QString());
setCancelButton(TR("Close"));
}
QString s = stringify(bn->get_type());
int index = s.indexOf("_");
if (index != -1)
s.replace(index, 1, " ");
setCaption((s + " dialog"));
visit = !hasOkButton();
// general tab
GridBox * grid = new GridBox(2, this);
grid->setMargin(5);
grid->setSpacing(5);
grid->addWidget(new QLabel(TR("name : "), grid));
grid->addWidget(edname = new LineEdit(bn->get_name(), grid));
edname->setReadOnly(visit);
grid->addWidget(new QLabel(TR("stereotype : "), grid));
grid->addWidget(edstereotype = new QComboBox(grid));
edstereotype->setEditable(!visit);
edstereotype->addItem(toUnicode(pst->get_stereotype()));
if (! visit) {
edstereotype->addItems(BrowserPseudoState::default_stereotypes());
edstereotype->addItems(ProfiledStereotypes::defaults(bn->get_type()));
edstereotype->setAutoCompletion(completion());
}
edstereotype->setCurrentIndex(0);
QSizePolicy sp = edstereotype->sizePolicy();
sp.setHorizontalPolicy(QSizePolicy::Expanding);
edstereotype->setSizePolicy(sp);
if (refst != 0) {
connect(new SmallPushButton(TR("reference :"), grid), SIGNAL(clicked()),
this, SLOT(menu_reference()));
grid->addWidget(edreference = new QComboBox(grid));
edreference->setSizePolicy(sp);
BrowserNode * ref = ((pst->get_reference() == 0) ||
!bn->can_reference(pst->get_reference()))
? 0 : pst->get_reference();
if (visit) {
if (ref == 0)
edreference->addItem("");
else
edreference->addItem(ref->full_name(TRUE));
}
else {
edreference->addItem("");
edreference->setAutoCompletion(completion());
BrowserNode * child;
UmlCode k = bn->get_type();
for (child = refst->firstChild();
child != 0;
child = child->nextSibling()) {
if (!((BrowserNode *) child)->deletedp()) {
UmlCode kk = ((BrowserNode *) child)->get_type();
if (kk == k)
pseudostates.append((BrowserNode *) child);
else if (kk == UmlRegion) {
for (BrowserNode * schild = child->firstChild();
//.........这里部分代码省略.........
示例14: TabDialog
ActivityDialog::ActivityDialog(ActivityData * d)
: TabDialog(0, 0, FALSE, Qt::WA_DeleteOnClose), activity(d)
{
d->browser_node->edit_start();
if (d->browser_node->is_writable()) {
setOkButton(tr("OK"));
setCancelButton(tr("Cancel"));
}
else {
setOkButton(QString());
setCancelButton(tr("Close"));
}
setWindowTitle(tr("Activity dialog"));
visit = !hasOkButton();
BrowserNode * bn = activity->browser_node;
GridBox * grid;
//
// general tab
//
grid = new GridBox(2, this);
grid->setMargin(5);
grid->setSpacing(5);
grid->addWidget(new QLabel(tr("name : "), grid));
grid->addWidget(edname = new LineEdit(bn->get_name(), grid));
edname->setReadOnly(visit);
grid->addWidget(new QLabel(tr("stereotype : "), grid));
grid->addWidget(edstereotype = new QComboBox(grid));
edstereotype->setEditable(!visit);
edstereotype->addItem(toUnicode(activity->get_stereotype()));
if (!visit) {
edstereotype->addItems(BrowserActivity::default_stereotypes());
edstereotype->addItems(ProfiledStereotypes::defaults(UmlActivity));
edstereotype->setAutoCompletion(completion());
}
edstereotype->setCurrentIndex(0);
QSizePolicy sp = edstereotype->sizePolicy();
sp.setHorizontalPolicy(QSizePolicy::Expanding);
edstereotype->setSizePolicy(sp);
SmallPushButton* sButton;
connect(sButton = new SmallPushButton(tr("specification :"), grid), SIGNAL(clicked()),
this, SLOT(menu_specification()));
grid->addWidget(sButton);
grid->addWidget(edspecification = new QComboBox(grid));
edspecification->setSizePolicy(sp);
if (visit) {
if (activity->get_specification() == 0)
edspecification->addItem("");
else
edspecification->addItem(activity->get_specification()->full_name(TRUE));
}
else {
edspecification->addItem("");
edspecification->setAutoCompletion(completion());
BrowserOperation::instances(opers);
opers.full_names(list);
edspecification->addItems(list);
edspecification->setCurrentIndex((activity->get_specification() == 0)
? 0
: opers.indexOf(activity->get_specification()) + 1);
}
grid->addWidget(new QLabel(grid));
BButtonGroup * bg;
grid->addWidget(bg =
new BButtonGroup(3, Qt::Horizontal, QString(), grid));
bg->addWidget(readonly_cb = new QCheckBox(tr("read only"), bg));
if (activity->read_only)
readonly_cb->setChecked(TRUE);
readonly_cb->setDisabled(visit);
bg->addWidget(singlexec_cb = new QCheckBox(tr("single execution"), bg));
if (activity->single_execution)
singlexec_cb->setChecked(TRUE);
singlexec_cb->setDisabled(visit);
bg->addWidget(active_cb = new QCheckBox(tr("active"), bg));
if (activity->is_active)
active_cb->setChecked(TRUE);
active_cb->setDisabled(visit);
VVBox * vtab;
grid->addWidget(vtab = new VVBox(grid));
//.........这里部分代码省略.........
示例15: TabDialog
ParameterDialog::ParameterDialog(ParameterData * pa)
: TabDialog(0, 0, true, Qt::WA_DeleteOnClose), param(pa)
{
pa->browser_node->edit_start();
if (pa->browser_node->is_writable()) {
setOkButton(tr("OK"));
setCancelButton(tr("Cancel"));
}
else {
setOkButton(QString());
setCancelButton(tr("Close"));
}
visit = !hasOkButton();
setWindowTitle(tr("Parameter dialog"));
GridBox * grid;
HHBox * htab;
QString s;
// general tab
grid = new GridBox(2, this);
umltab = grid;
grid->setMargin(5);
grid->setSpacing(5);
grid->addWidget(new QLabel(tr("name :"), grid));
grid->addWidget(edname = new LineEdit(pa->name(), grid));
edname->setReadOnly(visit);
QFont font = edname->font();
if (! hasCodec())
font.setFamily("Courier");
font.setFixedPitch(TRUE);
grid->addWidget(new QLabel(tr("stereotype : "), grid));
grid->addWidget(edstereotype = new QComboBox(grid));
edstereotype->setEditable(!visit);
edstereotype->addItem(toUnicode(pa->stereotype));
if (! visit) {
edstereotype->addItems(BrowserParameter::default_stereotypes());
edstereotype->addItems(ProfiledStereotypes::defaults(UmlParameter));
edstereotype->setAutoCompletion(completion());
}
edstereotype->setCurrentIndex(0);
QSizePolicy sp = edstereotype->sizePolicy();
sp.setHorizontalPolicy(QSizePolicy::Expanding);
edstereotype->setSizePolicy(sp);
SmallPushButton* sButton;
connect(sButton = new SmallPushButton(tr("type :"), grid), SIGNAL(clicked()),
this, SLOT(menu_type()));
grid->addWidget(sButton);
grid->addWidget(edtype = new QComboBox( grid));
edtype->setEditable(!visit);
edtype->addItem(pa->get_type().get_full_type());
if (!visit) {
BrowserClass::instances(nodes);
nodes.full_names(list);
edtype->addItems(GenerationSettings::basic_types());
offset = edtype->count();
edtype->addItems(list);
edtype->setAutoCompletion(completion());
view = pa->browser_node->container(UmlClass);
}
edtype->setCurrentIndex(0);
edtype->setSizePolicy(sp);
grid->addWidget(new QLabel(tr("direction :"), grid));
grid->addWidget(htab = new HHBox(grid));
htab->addWidget(eddir = new QComboBox(htab));
UmlParamDirection dir = pa->get_dir();
eddir->addItem(stringify(dir));
if (! visit) {
if (dir != UmlInOut)
eddir->addItem(stringify(UmlInOut));
if (dir != UmlIn)
eddir->addItem(stringify(UmlIn));
if (dir != UmlOut)
eddir->addItem(stringify(UmlOut));
if (dir != UmlReturn)
eddir->addItem(stringify(UmlReturn));
//.........这里部分代码省略.........