diff options
Diffstat (limited to 'tksao/frame/basecommand.C')
-rw-r--r-- | tksao/frame/basecommand.C | 56 |
1 files changed, 4 insertions, 52 deletions
diff --git a/tksao/frame/basecommand.C b/tksao/frame/basecommand.C index 81872ff..7c6186c 100644 --- a/tksao/frame/basecommand.C +++ b/tksao/frame/basecommand.C @@ -452,72 +452,24 @@ void Base::cropCenterCmd(const Vector& vv, void Base::cropBeginCmd(const Vector& vv) { + useCrop = 1; cropBegin = vv; cropEnd = vv; } void Base::cropMotionCmd(const Vector& vv) { - Vector ss = mapToRef(cropBegin, Coord::CANVAS); - - // erase - if (cropBegin[0]!=cropEnd[0] || cropBegin[1]!=cropEnd[1]) { - Vector tt = mapToRef(cropEnd, Coord::CANVAS); - - Vector ll = mapFromRef(ss, Coord::CANVAS); - Vector lr = mapFromRef(Vector(tt[0],ss[1]), Coord::CANVAS); - Vector ur = mapFromRef(tt, Coord::CANVAS); - Vector ul = mapFromRef(Vector(ss[0],tt[1]), Coord::CANVAS); - - BBox bb(ll); - bb.bound(lr); - bb.bound(ur); - bb.bound(ul); - - redrawNow(bb.expand(2)); - } - cropEnd = vv; - // and draw to window - { - Vector tt = mapToRef(cropEnd, Coord::CANVAS); - - Vector ll = mapFromRef(ss, Coord::WINDOW); - Vector lr = mapFromRef(Vector(tt[0],ss[1]), Coord::WINDOW); - Vector ur = mapFromRef(tt, Coord::WINDOW); - Vector ul = mapFromRef(Vector(ss[0],tt[1]), Coord::WINDOW); - - XDrawLine(display,Tk_WindowId(tkwin),selectGCXOR,ll[0],ll[1],lr[0],lr[1]); - XDrawLine(display,Tk_WindowId(tkwin),selectGCXOR,lr[0],lr[1],ur[0],ur[1]); - XDrawLine(display,Tk_WindowId(tkwin),selectGCXOR,ur[0],ur[1],ul[0],ul[1]); - XDrawLine(display,Tk_WindowId(tkwin),selectGCXOR,ul[0],ul[1],ll[0],ll[1]); - } + update(PIXMAP); } void Base::cropEndCmd(const Vector& vv) { - Vector ss = mapToRef(cropBegin, Coord::CANVAS); - - // erase - if (cropBegin[0]!=cropEnd[0] || cropBegin[1]!=cropEnd[1]) { - Vector tt = mapToRef(cropEnd, Coord::CANVAS); - - Vector ll = mapFromRef(ss, Coord::CANVAS); - Vector lr = mapFromRef(Vector(tt[0],ss[1]), Coord::CANVAS); - Vector ur = mapFromRef(tt, Coord::CANVAS); - Vector ul = mapFromRef(Vector(ss[0],tt[1]), Coord::CANVAS); - - BBox bb(ll); - bb.bound(lr); - bb.bound(ur); - bb.bound(ul); - redrawNow(bb.expand(2)); - } - - // and crop + useCrop = 0; cropEnd = vv; if (cropBegin[0]!=cropEnd[0] || cropBegin[1]!=cropEnd[1]) { + Vector ss = mapToRef(cropBegin, Coord::CANVAS); Vector tt = mapToRef(cropEnd, Coord::CANVAS); if (!isMosaic()) { |