本文整理汇总了C++中Selection::IsEmpty方法的典型用法代码示例。如果您正苦于以下问题:C++ Selection::IsEmpty方法的具体用法?C++ Selection::IsEmpty怎么用?C++ Selection::IsEmpty使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Selection
的用法示例。
在下文中一共展示了Selection::IsEmpty方法的9个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: RGBColorToBGRA
void
Layer::Clear(rgb_color color)
{
// This will copy the color (including alpha) to every pixel in this layer.
// If the selection is not empty, the color will be copied only to the
// selected points
Selection* selection = fImageView->GetSelection();
// we will copy the color to this in correct order
uint32 color_bits = RGBColorToBGRA(color);
uint32* bits = (uint32*)fLayerData->Bits();
if (selection->IsEmpty()) {
int32 bitslength = fLayerData->BitsLength() / 4;
for (int32 i = 0; i < bitslength; ++i)
*bits++ = color_bits;
} else {
BRect bounds = selection->GetBoundingRect();
int32 left = (int32)bounds.left;
int32 top = (int32)bounds.top;
int32 right = (int32)bounds.right;
int32 bottom = (int32)bounds.bottom;
int32 bpr = fLayerData->BytesPerRow()/4;
for (int32 y = top; y <= bottom; ++y) {
for (int32 x = left; x <= right; ++x) {
if (selection->ContainsPoint(x,y))
*(bits + x + y * bpr) = color_bits;
}
}
}
}
示例2: CreateManipulator
Manipulator* StretchTool::CreateManipulator (
Viewer* v, Event& e, Transformer* rel
) {
GraphicView* views = v->GetGraphicView();
Selection* s = v->GetSelection(), *newSel;
GraphicView* gv;
Manipulator* m = nil;
Iterator i;
newSel = views->ViewIntersecting(e.x-SLOP, e.y-SLOP, e.x+SLOP, e.y+SLOP);
if (newSel->IsEmpty()) {
s->Clear();
} else {
newSel->First(i);
gv = newSel->GetView(i);
if (s->Includes(gv)) {
s->Remove(gv);
s->Prepend(gv);
} else {
s->Clear();
s->Append(gv);
s->Update();
}
if (!s->IsEmpty())
m = gv->CreateManipulator(v, e, rel, this);
}
delete newSel;
return m;
}
示例3: Execute
void BackCmd::Execute () {
Clipboard* cb = GetClipboard();
Editor* ed = GetEditor();
if (cb == nil) {
Selection* s = ed->GetSelection();
if (s->IsEmpty()) {
return;
}
SetClipboard(cb = new Clipboard);
GraphicView* views = ed->GetViewer()->GetGraphicView();
s->Sort(views);
Iterator i;
for (s->First(i); !s->Done(i); s->Next(i)) {
s->GetView(i)->Interpret(this);
}
} else {
Clipboard* oldcb = cb;
SetClipboard(cb = new Clipboard);
Iterator i;
for (oldcb->First(i); !oldcb->Done(i); oldcb->Next(i)) {
oldcb->GetComp(i)->Interpret(this);
}
delete oldcb;
}
if (!cb->IsEmpty()) {
ed->GetComponent()->Interpret(this);
}
}
示例4: Reversible
boolean Command::Reversible () {
boolean reversible = true;
Clipboard* cb = GetClipboard();
if (cb == nil) {
Editor* ed = GetEditor();
Selection* s = (ed == nil) ? nil : ed->GetSelection();
reversible = (s == nil) || !s->IsEmpty();
} else {
reversible = !cb->IsEmpty();
}
return reversible;
}
示例5: Execute
void Command::Execute () {
Selection* s = _editor->GetSelection();
Clipboard* cb = GetClipboard();
if (!s->IsEmpty() || (cb != nil && !cb->IsEmpty())) {
Iterator i;
if (cb == nil) {
SetClipboard(cb = new Clipboard);
cb->Init(s);
}
for (cb->First(i); !cb->Done(i); cb->Next(i)) {
cb->GetComp(i)->Interpret(this);
}
unidraw->Update();
}
}
示例6: Execute
void AlignToGridCmd::Execute () {
Selection* s = _editor->GetSelection();
if (!s->IsEmpty()) {
Clipboard* cb = GetClipboard();
Iterator i;
if (cb == nil) {
for (s->First(i); !s->Done(i); s->Next(i)) {
s->GetView(i)->Interpret(this);
}
SetClipboard(cb = new Clipboard);
cb->Init(s);
} else {
for (cb->First(i); !cb->Done(i); cb->Next(i)) {
Move(cb->GetComp(i));
}
}
unidraw->Update();
}
}
示例7: Export
boolean GraphExportCmd::Export (const char* pathname) {
Editor* editor = GetEditor();
Selection* s = editor->GetSelection();
GraphIdrawComp* real_top = (GraphIdrawComp*)editor->GetComponent();
boolean ok = false;
char* old_format = NULL;
boolean empty = s->IsEmpty();
GraphIdrawComp* false_top = new GraphIdrawComp();
Iterator i;
empty ? real_top->First(i) : s->First(i);
while (empty ? !real_top->Done(i) : !s->Done(i)) {
if (chooser_->idraw_format() || chooser_->postscript_format()) {
OverlayComp* oc = empty
? new OverlayComp(real_top->GetComp(i)->GetGraphic()->Copy())
: new OverlayComp(s->GetView(i)->GetGraphicComp()->GetGraphic()->Copy());
false_top->Append(oc);
} else {
OverlayComp* oc = empty
? (OverlayComp*)real_top->GetComp(i)->Copy()
: (OverlayComp*)s->GetView(i)->GetGraphicComp()->Copy();
false_top->Append(oc);
}
empty ? real_top->Next(i) : s->Next(i);
}
OverlayPS* ovpsv;
if (chooser_->idraw_format() || chooser_->postscript_format())
ovpsv = (OverlayPS*) false_top->Create(POSTSCRIPT_VIEW);
else {
ovpsv = (OverlayPS*) false_top->Create(SCRIPT_VIEW);
if(strcmp(chooser_->format(), "dot")==0) {
old_format = OverlayScript::format() ? strnew(OverlayScript::format()) : NULL;
OverlayScript::format("dot");
}
}
if (ovpsv != nil) {
filebuf fbuf;
char* tmpfilename;
if (chooser_->to_printer()) {
tmpfilename = tmpnam(nil);
false_top->SetPathName(tmpfilename);
ok = fbuf.open(tmpfilename, output) != 0;
} else {
ok = fbuf.open(pathname, output) != 0;
}
if (ok) {
ostream out(&fbuf);
false_top->Attach(ovpsv);
ovpsv->SetCommand(this);
if (!chooser_->idraw_format() && !chooser_->postscript_format())
((GraphIdrawScript*)ovpsv)->SetByPathnameFlag(chooser_->by_pathname_flag());
ovpsv->Update();
ok = ovpsv->Emit(out);
fbuf.close();
if (chooser_->to_printer()) {
char cmd[CHARBUFSIZE];
if (strstr(pathname, "%s")) {
char buf[CHARBUFSIZE];
sprintf(buf, pathname, tmpfilename);
sprintf(cmd, "(%s;rm %s)&", buf, tmpfilename);
} else
sprintf(cmd, "(%s %s;rm %s)&", pathname, tmpfilename, tmpfilename);
ok = system(cmd) == 0;
}
}
delete ovpsv;
}
delete false_top;
if (old_format) {
OverlayScript::format(old_format);
delete old_format;
}
return ok;
}
示例8: Interpret
void OverlaysComp::Interpret (Command* cmd) {
Editor* ed = cmd->GetEditor();
if (
(cmd->IsA(DELETE_CMD) || cmd->IsA(CUT_CMD)) &&
ed->GetComponent() != this
) {
Iterator i;
for (First(i); !Done(i); Next(i)) {
GetComp(i)->Interpret(cmd);
}
} else if (cmd->IsA(DELETE_CMD)) {
Clipboard* cb = cmd->GetClipboard();
Selection* s = ed->GetSelection();
if (cb == nil) {
if (s->IsEmpty()) {
return;
}
cmd->SetClipboard(cb = new Clipboard);
cb->Init(s);
}
s->Clear();
Iterator i;
for (cb->First(i); !cb->Done(i); cb->Next(i)) {
OverlayComp* comp = (OverlayComp*)cb->GetComp(i);
unidraw->CloseDependents(comp);
comp->Interpret(cmd);
StorePosition(comp, cmd);
Remove(comp);
}
Notify();
unidraw->Update();
} else if (cmd->IsA(CUT_CMD)) {
Clipboard* cb = cmd->GetClipboard();
Selection* s = ed->GetSelection();
if (cb == nil) {
if (s->IsEmpty()) {
return;
}
GraphicView* views = ed->GetViewer()->GetGraphicView();
s->Sort(views);
cmd->SetClipboard(cb = new Clipboard);
cb->Init(s);
Clipboard* globalcb = unidraw->GetCatalog()->GetClipboard();
globalcb->DeleteComps();
globalcb->CopyInit(s);
}
s->Clear();
Iterator i;
for (cb->First(i); !cb->Done(i); cb->Next(i)) {
OverlayComp* comp = (OverlayComp*)cb->GetComp(i);
unidraw->CloseDependents(comp);
comp->Interpret(cmd);
StorePosition(comp, cmd);
Remove(comp);
}
Notify();
unidraw->Update();
} else if (cmd->IsA(PASTE_CMD)) {
Clipboard* cb = cmd->GetClipboard();
Iterator i;
if (cb == nil) {
Clipboard* globalcb = unidraw->GetCatalog()->GetClipboard();
if (globalcb->IsEmpty()) {
return;
}
cmd->SetClipboard(cb = globalcb->DeepCopy());
}
for (cb->First(i); !cb->Done(i); cb->Next(i)) {
Append((OverlayComp*)cb->GetComp(i));
}
Notify();
SelectClipboard(cb, ed);
unidraw->Update();
} else if (cmd->IsA(DUP_CMD)) {
GraphicView* views = ed->GetViewer()->GetGraphicView();
OverlayComp* prev, *dup1;
Iterator i, pos;
Clipboard* cb = cmd->GetClipboard();
const float offset = 8;
MoveCmd move(ed, offset, offset);
if (cb == nil) {
OverlaySelection* s = (OverlaySelection*)ed->GetSelection();
if (s->IsEmpty()) {
return;
}
//.........这里部分代码省略.........
示例9: Execute
void OvExportCmd::Execute () {
Editor* ed = GetEditor();
#if 0
Selection* s = ed->GetSelection();
if (s->IsEmpty()) {
GAcknowledgeDialog::post
(ed->GetWindow(), "Nothing selected for export", nil, "no selection");
return;
}
#endif
Style* style;
boolean reset_caption = false;
if (chooser_ == nil) {
style = new Style(Session::instance()->style());
style->attribute("subcaption", "Export selected graphics to file:");
style->attribute("open", "Export");
const char *formats_svg[] = {"EPS", "idraw EPS", "drawtool", "SVG"};
const char *formats_nosvg[] = {"EPS", "idraw EPS", "drawtool"};
const char *svg_arg = unidraw->GetCatalog()->GetAttribute("svgexport");
const boolean svg_flag = svg_arg && strcmp(svg_arg, "true")==0;
const char **formats = svg_flag ? formats_svg : formats_nosvg;
int nformats = (svg_flag ? sizeof(formats_svg) : sizeof(formats_nosvg)) / sizeof(char*);
const char *commands[] = {"ghostview %s", "idraw %s", "drawtool %s", "netscape %s"};
chooser_ = new ExportChooser(".", WidgetKit::instance(), style,
formats, nformats, commands, nil, true);
Resource::ref(chooser_);
} else {
style = chooser_->style();
}
boolean again;
while (again = chooser_->post_for(ed->GetWindow())) {
const String* str = chooser_->selected();
if (str != nil) {
NullTerminatedString ns(*str);
const char* name = ns.string();
style->attribute("caption", " " );
chooser_->twindow()->repair();
chooser_->twindow()->display()->sync();
Catalog* catalog = unidraw->GetCatalog();
boolean ok = true;
if (!chooser_->to_printer() && catalog->Exists(name) && catalog->Writable(name)) {
char buf[CHARBUFSIZE];
sprintf(buf, "\"%s\" already exists,", name);
GConfirmDialog* dialog = new GConfirmDialog(buf, "Overwrite?");
Resource::ref(dialog);
ok = dialog->post_for(ed->GetWindow());
Resource::unref(dialog);
}
if (ok) {
ed->GetWindow()->cursor(hourglass);
chooser_->twindow()->cursor(hourglass);
if (Export(ns.string())) {
again = false;
break;
}
style->attribute("caption", "Export failed!" );
reset_caption = true;
ed->GetWindow()->cursor(arrow);
chooser_->twindow()->cursor(arrow);
}
}
}
chooser_->unmap();
if (reset_caption) {
style->attribute("caption", " " );
}
if (!again)
ed->GetWindow()->cursor(arrow);
return;
}