// ---------------------------------------------------------------------------
// 
// -----------
void bToolPrintArea::track_draw(){
	if(!get_active()){
		return;
	}
i2dvertex	b;
ivx_rect	vr=*(_gapp->printMgr()->get_print_area());
	get_cur(&b);

	if(!get_on_drag()){
bGenericUnit*	u=_gapp->scaleMgr()->get();
		
		if(	(_d_(vr.bottom,b.v,u->conv())<3)&&
			(_d_(vr.right,b.h,u->conv())<3)	){
			set_curs(_cxyresize);
		}
		else if((_d_(vr.bottom,b.v,u->conv())<3)&&((vr.left<b.h)&&(b.h<vr.right))){
			set_curs(_cyresize);
		}
		else if((_d_(vr.right,b.h,u->conv())<3)&&((vr.top<b.v)&&(b.v<vr.bottom))){
			set_curs(_cxresize);
		}
		else if((_d_(vr.top,b.v,u->conv())<3)	||
				(_d_(vr.left,b.h,u->conv())<3)	){
			set_curs(_cmove);
		}
		else{
			set_curs();
		}
		return;
	}
}
// ---------------------------------------------------------------------------
// 
// -----------
void bToolMove::set_modifiers(int k){	
	bStdToolGeom::set_modifiers(k);
	if(!get_active()){
		return;
	}
	if(is_modifiers(optionKey)){
		set_curs(_ccopy);
		_copy=true;
	}
	else{
		set_curs();
		_copy=false;
	}
	_srep=!is_modifiers(shiftKey);
}
// ---------------------------------------------------------------------------
// 
// -----------
bool bToolRedraw::set_key(int k){
bool	b=false;
	
	if(_ec>0){
		switch(k){
			case kEnterCharCode:
			case kReturnCharCode:
				clearTempPathContext(true);
				validTempPathContext();
				if(get_locs()->count()>1){
					action(0);
				}
				(void)bToolGeomWithJoin::set_key(k);
				k=0;
				set_use_locs(false);
				set_obj(NULL);
				_ec=0;
				b=true;
				set_curs();
				break;
				
			case kEscapeCharCode:
				clearTempPathContext(true);
				validTempPathContext();				
				(void)bToolGeomWithJoin::set_key(k);
				k=0;
				set_use_locs(false);
				set_obj(NULL);
				b=true;
				_ec=0;
				set_curs();
				break;
			case kBackspaceCharCode:
				(void)bToolGeomWithJoin::set_key(k);
				clearTempPathContext(true);
				update(true);
				validTempPathContext();
				k=0;
				break;
		}
	}
	(void)bToolGeomWithJoin::set_key(k);
	return(b);
}
// ---------------------------------------------------------------------------
// 
// -----------
void bToolPrintArea::activate(){
	bStdToolPres::activate();
	switch(_dragmode){
		case kPrintAreaDragModeSet:
			break;
		case kPrintAreaDragModeMove:
			set_curs(_cmove);
			break;
		case kPrintAreaDragModeBottomResize:
			set_curs(_cyresize);
			break;
		case kPrintAreaDragModeRightResize:
			set_curs(_cxresize);
			break;
		case kPrintAreaDragModeFullResize:
			set_curs(_cxyresize);
			break;
		default:
			break;
	}
}
Beispiel #5
0
void setcurs_end()
{
	int y;
#ifdef NO_MENU
	if (0)
#else
	if (menuheight)
#endif
		y = menuheight;
	else {
		y = term_height-1;
		if (y > 20 && y < 23)
			y = 20;
	}
	set_curs(0, y);
	fflush(stdout);
}
// ---------------------------------------------------------------------------
// 
// -----------
void bToolJustification::set_modifiers(int k){	
	bStdToolPres::set_modifiers(k);
	if(!get_active()){
		return;
	}
	if(is_modifiers(cmdKey)){
		set_curs(_cright);
		_umode=kJustificationUserModeRight;
		set_use_track(false);
		set_use_drag(false);
	}
	else if(is_modifiers(optionKey)){
		set_curs(_cmiddle);
		_umode=kJustificationUserModeCenter;
		set_use_track(false);
		set_use_drag(false);
	}
	else if(is_modifiers(controlKey)){
		set_curs(_cleft);
		_umode=kJustificationUserModeLeft;
		set_use_track(false);
		set_use_drag(false);
	}
	else if(is_modifiers(shiftKey)){
		if(_fspc){
			set_curs(_cspace);
			_umode=kJustificationUserModeSpace;
			set_use_track(true);
			set_use_drag(true);
		}
		else{
			set_curs();
			_umode=kJustificationUserModeStd;
			set_use_track(true);
			set_use_drag(true);
		}
	}
	else{
		set_curs();
		_umode=kJustificationUserModeStd;
		if(get_on_drag()){
			set_use_track(true);
			set_use_drag(true);
		}
	}
}
Beispiel #7
0
void setcurs(int x, int y)
{
	x += win_x + margin_x;
	y += win_y;
	set_curs(x, y);
}
// ---------------------------------------------------------------------------
// 
// -----------
void bToolRedraw::activate(){
	bToolGeomWithJoin::activate();
	if(_ec>0){
		set_curs(_cdrw);
	}	
}
// ---------------------------------------------------------------------------
// 
// -----------
void bToolRedraw::clic(CGPoint pt, int count){
i2dvertex		br;
bGenericType*	tp;	
	
	if(_ec>1){
		if(count>1){
			if(get_locs()->count()>=1){
				action(0);
			}
			set_use_locs(false);
			set_obj(NULL);
			get_locs()->reset();
			_ec=0;
			set_curs();
		}
		
		if(get_join(&br)){
			bToolGeomWithJoin::clic(br,count);
		}
		else{
			bToolGeomWithJoin::clic(pt,count);
		}
		return;
	}
	else if((count>1)&&(_ec==1)){// =Annuler
		set_use_locs(false);
		set_obj(NULL);
		get_locs()->reset();
		_ec=0;
		set_curs();
	}
	
	if(!get_obj()){
		if(get_join(&br)){
			bToolGeomWithJoin::clic(br,count);
		}
		else{
			bToolGeomWithJoin::clic(pt,count);
		}
		return;
	}
	
	tp=_gapp->typesMgr()->get(get_obj()->getType());
	
	switch(tp->kind()){	
		case kBaseKindPolyline:
		case kBaseKindPolygon:
		case kBaseKindRaster:
			if(_ec==0){
				set_use_locs(true);
				if(get_join(&br)){
					bToolGeomWithJoin::clic(br,count);
				}
				else{
					bToolGeomWithJoin::clic(pt,count);
				}
				set_use_locs(false);
				get_clic(&_vxa);
				_ec++;
			}
			else if(_ec==1){
				if(get_join(&br)){
					bToolGeomWithJoin::clic(br,count);
					get_clic(&_vxb);
					if(!eq_ivx2(&_vxa,&_vxb)){
						set_clic(&_vxa);
						set_use_locs(true);
						_ec++;
						set_curs(_cdrw);
					}
					else{
						NSBeep();
					}
				}
				else{
					NSBeep();
				}			
			}
			else{
				if(get_join(&br)){
					bToolGeomWithJoin::clic(br,count);
				}
				else{
					bToolGeomWithJoin::clic(pt,count);
				}
				_ec++;
			}
			break;
			
		default:
			if(get_join(&br)){
				bToolGeomWithJoin::clic(br,count);
			}
			else{
				bToolGeomWithJoin::clic(pt,count);
			}
			break;
	}		
}