diff options
Diffstat (limited to 'app/bin/cselect.c')
| -rw-r--r-- | app/bin/cselect.c | 448 | 
1 files changed, 303 insertions, 145 deletions
diff --git a/app/bin/cselect.c b/app/bin/cselect.c index a1158bc..3c13336 100644 --- a/app/bin/cselect.c +++ b/app/bin/cselect.c @@ -83,7 +83,9 @@ BOOL_T TListSearch(track_p T)  {  	for (int i=0; i<tlist_da.cnt-1; i++) {  		\ -		if (Tlist(i) == T) { return TRUE; } +		if (Tlist(i) == T) { +			return TRUE; +		}  	}  	return FALSE;  } @@ -96,7 +98,6 @@ static wMenu_p selectPopup2TYM;  static wMenuPush_p menuPushModify;  static wMenuPush_p rotateAlignMI;  static wMenuPush_p descriptionMI; -static wMenuPush_p tiesMI;  static wMenuPush_p hideMI;  static wMenuPush_p bridgeMI;  static wMenuPush_p roadbedMI; @@ -213,6 +214,13 @@ void CreateDescribeAnchor(coOrd pos)  	wSetCursor(mainD.d,wCursorNone);  } +/** + * Draw anchor for activable objects ie. objects that can be double clicked + * upon. Usually these are notes. + * + * \param pos position of object + */ +  void CreateActivateAnchor(coOrd pos)  {  	DIST_T d = tempD.scale*0.15; @@ -220,23 +228,23 @@ void CreateActivateAnchor(coOrd pos)  	DYNARR_APPEND(trkSeg_t,anchors_da,1);  	int i = anchors_da.cnt-1;  	anchors(i).type = SEG_CRVLIN; -	anchors(i).lineWidth = 0; -	c.x -= d*3/4; +	anchors(i).lineWidth = 0.1; +	c.x += d*1/4; +	c.y += d * 1 / 4;  	anchors(i).u.c.center = c; -	anchors(i).u.c.a0 = 0.0; -	anchors(i).u.c.a1 = 360.0; -	anchors(i).u.c.radius = d; +	anchors(i).u.c.a0 = 70.0; +	anchors(i).u.c.a1 = 320.0; +	anchors(i).u.c.radius = d*0.75;  	anchors(i).color = wDrawColorPowderedBlue; +  	DYNARR_APPEND(trkSeg_t,anchors_da,1);  	i = anchors_da.cnt-1; -	c.x += d*1.5; -	anchors(i).type = SEG_CRVLIN; -	anchors(i).lineWidth = 0; -	anchors(i).u.c.center = pos; -	anchors(i).u.c.a0 = 0.0; -	anchors(i).u.c.a1 = 360.0; -	anchors(i).u.c.radius = d; -	anchors(i).color = wDrawColorPowderedBlue; +	anchors(i).type = SEG_STRLIN; +	anchors(i).lineWidth = 0.15; +	anchors(i).u.l.pos[0] = c; +	Translate(&anchors(i).u.l.pos[1], anchors(i).u.l.pos[0], NormalizeAngle(45), +	          d*1.25); +	anchors(i).color = wDrawColorBlue;  	wSetCursor(mainD.d,wCursorNone);  } @@ -527,9 +535,13 @@ EXPORT void HighlightSelectedTracks(  		return;  	}  	while ( TrackIterate( &trk ) ) { -		if (trk == trk_ignore) { continue; } +		if (trk == trk_ignore) { +			continue; +		}  		if(GetTrkSelected(trk)) { -			if (!GetLayerVisible( GetTrkLayer( trk ))) { continue; } +			if (!GetLayerVisible( GetTrkLayer( trk ))) { +				continue; +			}  			if (keep) {  				DrawTrack(trk,&tempD,selectedColor);  			} else if (invert) { @@ -556,7 +568,9 @@ static void SelectConnectedTracks(  	DYNARR_RESET( track_p, tlist_da );  	TlistAppend( trk );  	InfoCount( 0 ); -	if (!display_only) { wDrawDelayUpdate( mainD.d, FALSE ); } +	if (!display_only) { +		wDrawDelayUpdate( mainD.d, FALSE ); +	}  	for (inx=0; inx<tlist_da.cnt; inx++) {  		if ( inx > 0 && (selectedTrackCount == 0) && !display_only ) {  			return; @@ -580,12 +594,17 @@ static void SelectConnectedTracks(  			trk1 = GetTrkEndTrk( trk, ep );  			if (trk1 && !TListSearch(trk1) && GetLayerVisible( GetTrkLayer( trk1 ))) {  				if (GetTrkSelected(trk1)) { -					if (display_only) { DrawTrack(trk1,&tempD,wDrawColorPreviewSelected ); } -				} else { TlistAppend( trk1 ); } +					if (display_only) { +						DrawTrack(trk1,&tempD,wDrawColorPreviewSelected ); +					} +				} else { +					TlistAppend( trk1 ); +				}  			}  		} -		if (display_only && !GetLayerFrozen(GetTrkLayer(trk))) { DrawTrack(trk,&tempD,wDrawColorPreviewSelected ); } -		else if (!GetTrkSelected(trk)) { +		if (display_only && !GetLayerFrozen(GetTrkLayer(trk))) { +			DrawTrack(trk,&tempD,wDrawColorPreviewSelected ); +		} else if (!GetTrkSelected(trk)) {  			if (GetLayerModule(GetTrkLayer(trk))) {  				continue;  			} else if (GetLayerFrozen(GetTrkLayer(trk))) { @@ -659,7 +678,7 @@ EXPORT void DoSelectedTracks( doSelectedTrackCallBack_t doit )  } -static BOOL_T SelectedTracksAreFrozen( void ) +EXPORT BOOL_T SelectedTracksAreFrozen( void )  {  	track_p trk;  	trk = NULL; @@ -742,7 +761,9 @@ EXPORT int SelectDelete( void )  		}  	} -	if (doingDouble || (GetCurrentCommand() == modifyCmdInx)) { return 1; } +	if (doingDouble || (GetCurrentCommand() == modifyCmdInx)) { +		return 1; +	}  	if (SelectedTracksAreFrozen()) {  		return 0; @@ -965,7 +986,9 @@ EXPORT void SelectCurrentLayer( void * unused )  {  	track_p trk;  	trk = NULL; -	if (GetLayerFrozen(curLayer)) { return; } +	if (GetLayerFrozen(curLayer)) { +		return; +	}  	while ( TrackIterate( &trk ) ) {  		if ((!GetTrkSelected(trk)) && GetTrkLayer(trk) == curLayer) {  			SelectOneTrack( trk, TRUE ); @@ -1063,23 +1086,6 @@ EXPORT void AddElevations( DIST_T delta )  } -EXPORT void DoRefreshCompound( void * unused ) -{ -	if (SelectedTracksAreFrozen()) { -		return; -	} -	if (selectedTrackCount>0) { -		UndoStart( _("Refresh Compound"), "refresh compound" ); -		DoSelectedTracks( RefreshCompound ); -		RefreshCompound( NULL, FALSE ); -		UndoEnd(); -		MainRedraw(); // DoRefreshCompound -	} else { -		ErrorMessage( MSG_NO_SELECTED_TRK ); -	} -} - -  static drawCmd_t tempSegsD = {  	NULL, &tempSegDrawFuncs, 0, 1, 0.0, {0.0, 0.0}, {0.0, 0.0}, Pix2CoOrd, CoOrd2Pix  }; @@ -1161,10 +1167,18 @@ static BOOL_T GetBoundsDoIt( track_p trk, BOOL_T unused )  		getSelectedBoundsLo = lo;  		getSelectedBoundsHi = hi;  	} else { -		if ( lo.x < getSelectedBoundsLo.x ) { getSelectedBoundsLo.x = lo.x; } -		if ( lo.y < getSelectedBoundsLo.y ) { getSelectedBoundsLo.y = lo.y; } -		if ( hi.x > getSelectedBoundsHi.x ) { getSelectedBoundsHi.x = hi.x; } -		if ( hi.y > getSelectedBoundsHi.y ) { getSelectedBoundsHi.y = hi.y; } +		if ( lo.x < getSelectedBoundsLo.x ) { +			getSelectedBoundsLo.x = lo.x; +		} +		if ( lo.y < getSelectedBoundsLo.y ) { +			getSelectedBoundsLo.y = lo.y; +		} +		if ( hi.x > getSelectedBoundsHi.x ) { +			getSelectedBoundsHi.x = hi.x; +		} +		if ( hi.y > getSelectedBoundsHi.y ) { +			getSelectedBoundsHi.y = hi.y; +		}  	}  	getSelectedBoundsCount++;  	return TRUE; @@ -1402,7 +1416,9 @@ static void MoveTracks(  	for ( inx=0; inx<tlist_da.cnt; inx++ ) {  		trk = Tlist(inx);  		UndoModify( trk ); -		if (QueryTrack(trk, Q_IS_CORNU)) { continue; } +		if (QueryTrack(trk, Q_IS_CORNU)) { +			continue; +		}  		if (move) {  			MoveTrack( trk, base );  		} @@ -1424,7 +1440,9 @@ static void MoveTracks(  		UndoModify( trk );  		BOOL_T fixed_end;  		fixed_end = FALSE; -		if (!QueryTrack(trk, Q_IS_CORNU)) { continue; } +		if (!QueryTrack(trk, Q_IS_CORNU)) { +			continue; +		}  		for (int i=0; i<2; i++) {  			track_p te;  			if ((te = GetTrkEndTrk(trk,i)) && !GetTrkSelected(te)) { @@ -1509,7 +1527,9 @@ static void MoveTracks(  	ClrAllTrkBits(TB_UNDRAWN);  	DoRedraw();  	wSetCursor( mainD.d, defaultCursor ); -	if (undo) { UndoEnd(); } +	if (undo) { +		UndoEnd(); +	}  	InfoCount( trackCount );  } @@ -1574,7 +1594,9 @@ wBool_t FindEndIntersection(coOrd base, coOrd orig, ANGLE_T angle, track_p * t1,  		for (int i=0; i<GetTrkEndPtCnt(ts); i++) { //All EndPoints  			track_p ct;  			if ((ct = GetTrkEndTrk(ts,i))!=NULL) { -				if (GetTrkSelected(ct) || QueryTrack(ts,Q_IS_CORNU)) { continue; }   // Another selected track or Cornu - ignore +				if (GetTrkSelected(ct) || QueryTrack(ts,Q_IS_CORNU)) { +					continue;    // Another selected track or Cornu - ignore +				}  			}  			coOrd pos1 = GetTrkEndPos(ts,i); @@ -1588,7 +1610,9 @@ wBool_t FindEndIntersection(coOrd base, coOrd orig, ANGLE_T angle, track_p * t1,  			pos2 = pos1;  			track_p tt;  			if ((tt=OnTrackIgnore(&pos2,FALSE,TRUE,ts))!=NULL) { -				if (GetTrkGauge(ts) != GetTrkGauge(tt)) { continue; }	//Ignore if different gauges +				if (GetTrkGauge(ts) != GetTrkGauge(tt)) { +					continue;    //Ignore if different gauges +				}  				if (!GetTrkSelected(tt)) {							//Ignore if new track is selected  					EPINX_T epp = PickUnconnectedEndPointSilent(pos2, tt);  					if (epp>=0) { @@ -1630,9 +1654,15 @@ void DrawHighlightLayer(int layer)  	BOOL_T initial = TRUE;  	coOrd layer_hi = zero,layer_lo = zero;  	while ( TrackIterate( &ts ) ) { -		if ( !GetLayerVisible( GetTrkLayer( ts))) { continue; } -		if (!GetTrkSelected(ts)) { continue; } -		if (GetTrkLayer(ts) != layer) { continue; } +		if ( !GetLayerVisible( GetTrkLayer( ts))) { +			continue; +		} +		if (!GetTrkSelected(ts)) { +			continue; +		} +		if (GetTrkLayer(ts) != layer) { +			continue; +		}  		coOrd hi,lo;  		GetBoundingBox(ts, &hi, &lo);  		if (initial) { @@ -1640,10 +1670,18 @@ void DrawHighlightLayer(int layer)  			layer_lo = lo;  			initial = FALSE;  		} else { -			if (layer_hi.x < hi.x ) { layer_hi.x = hi.x; } -			if (layer_hi.y < hi.y ) { layer_hi.y = hi.y; } -			if (layer_lo.x > lo.x ) { layer_lo.x = lo.x; } -			if (layer_lo.y > lo.y ) { layer_lo.y = lo.y; } +			if (layer_hi.x < hi.x ) { +				layer_hi.x = hi.x; +			} +			if (layer_hi.y < hi.y ) { +				layer_hi.y = hi.y; +			} +			if (layer_lo.x > lo.x ) { +				layer_lo.x = lo.x; +			} +			if (layer_lo.y > lo.y ) { +				layer_lo.y = lo.y; +			}  		}  	}  	wDrawPix_t margin = (10.5*mainD.scale/mainD.dpi); @@ -1769,7 +1807,9 @@ static STATUS_T CmdMove(  		drawEnable = enableMoveDraw;  		base.x = pos.x - orig.x;  		base.y = pos.y - orig.y; -		if ((MyGetKeyState() & WKEY_ALT) == 0) { SnapPos( &base ); } +		if ((MyGetKeyState() & WKEY_ALT) == 0) { +			SnapPos( &base ); +		}  		SetMoveD( TRUE, base, 0.0 );  		if (((MyGetKeyState()&(WKEY_ALT)) == 0) == magneticSnap) {  // ALT  			if (FindEndIntersection(base,zero,0.0,&t1,&ep1,&t2,&ep2)) { @@ -1804,7 +1844,9 @@ static STATUS_T CmdMove(  		return C_TERMINATE;  	case C_CMDMENU: -		if (doingMove) { UndoEnd(); } +		if (doingMove) { +			UndoEnd(); +		}  		doingMove = FALSE;  		base = pos;  		track_p trk = OnTrack(&pos, FALSE, FALSE);  //Note pollutes pos if turntable @@ -1861,8 +1903,12 @@ static STATUS_T CmdMove(  		break;  	case wActionExtKey: -		if (state) { return C_CONTINUE; } -		if (SelectedTracksAreFrozen()) { return C_TERMINATE; } +		if (state) { +			return C_CONTINUE; +		} +		if (SelectedTracksAreFrozen()) { +			return C_TERMINATE; +		}  		if ((MyGetKeyState() &  		     (WKEY_SHIFT | WKEY_CTRL)) == (WKEY_SHIFT | WKEY_CTRL)) {  //Both  			base = zero; @@ -1887,7 +1933,9 @@ static STATUS_T CmdMove(  			drawEnable = enableMoveDraw;  			GetMovedTracks(TRUE); -			if (!doingMove) { UndoStart( _("Move Tracks"), "move" ); } +			if (!doingMove) { +				UndoStart( _("Move Tracks"), "move" ); +			}  			doingMove = TRUE;  			SetMoveD( TRUE, base, 0.0 );  			MoveTracks( FALSE, TRUE, FALSE, base, zero, 0.0, FALSE ); @@ -2022,7 +2070,9 @@ static STATUS_T CmdRotate(  			onTrackInSplit = TRUE;  			trk = OnTrack( &pos, TRUE, FALSE );  			onTrackInSplit = FALSE; -			if ( trk == NULL ) { return C_CONTINUE; } +			if ( trk == NULL ) { +				return C_CONTINUE; +			}  			angle1 = NormalizeAngle( GetAngleAtPoint( trk, pos, NULL, NULL ) );  			if ( rotateAlignState == 1 ) {  				if ( !GetTrkSelected(trk) ) { @@ -2051,7 +2101,9 @@ static STATUS_T CmdRotate(  					//if ( NormalizeAngle( FindAngle( base, pos1 ) - angle1 ) < 180.0 )  					//	angle = NormalizeAngle( angle + 180.0 );  					/*printf( "angle 1 = %0.3f\n", angle );*/ -					if ( angle1 > 180.0 ) { angle1 -= 180.0; } +					if ( angle1 > 180.0 ) { +						angle1 -= 180.0; +					}  					InfoMessage( _("Angle %0.3f"), angle1 );  				}  				GetMovedTracks(TRUE); @@ -2086,7 +2138,9 @@ static STATUS_T CmdRotate(  			if ( NormalizeAngle( FindAngle( pos, pos1 ) - angle1 ) < 180.0 ) {  				angle = NormalizeAngle( angle + 180.0 );  			} -			if ( angle1 > 180.0 ) { angle1 -= 180.0; } +			if ( angle1 > 180.0 ) { +				angle1 -= 180.0; +			}  			InfoMessage( _("Angle %0.3f"), angle1 );  			SetMoveD( FALSE, orig, angle );  			/*printf( "angle 2 = %0.3f\n", angle );*/ @@ -2104,8 +2158,11 @@ static STATUS_T CmdRotate(  				direction_set = FALSE;  			} else {  				if (!direction_set) { -					if (DifferenceBetweenAngles(baseAngle,angle)>=0) { clockwise = TRUE; } -					else { clockwise = FALSE; } +					if (DifferenceBetweenAngles(baseAngle,angle)>=0) { +						clockwise = TRUE; +					} else { +						clockwise = FALSE; +					}  					direction_set = TRUE;  				} else {  					if (clockwise) { @@ -2127,9 +2184,13 @@ static STATUS_T CmdRotate(  			if ( (MyGetKeyState() & (WKEY_CTRL|WKEY_SHIFT)) ==  			     (WKEY_CTRL|WKEY_SHIFT) ) {  //Both Shift+Ctrl  				if (clockwise) { -					if (diff_angle<0) { diff_angle+=360; } +					if (diff_angle<0) { +						diff_angle+=360; +					}  				} else { -					if (diff_angle>0) { diff_angle-=360; } +					if (diff_angle>0) { +						diff_angle-=360; +					}  				}  				diff_angle = floor((diff_angle+7.5)/15.0)*15.0;  				angle = baseAngle+diff_angle; @@ -2249,15 +2310,21 @@ static STATUS_T CmdRotate(  				                                    base));  				DIST_T dist = FindDistance(orig,base); -				if (dist>(60.0/BASE_DPI)*mainD.scale) { dist = (60.0/BASE_DPI)*mainD.scale; } +				if (dist>(60.0/BASE_DPI)*mainD.scale) { +					dist = (60.0/BASE_DPI)*mainD.scale; +				}  				if (direction_set) {  					if (clockwise) { -						if (a<0) { a = a + 360; } +						if (a<0) { +							a = a + 360; +						}  						DrawArc( &tempD, orig, dist/2, FindAngle(orig,orig_base), a, FALSE, 0,  						         wDrawColorBlue);  					} else { -						if (a>0) { a = a - 360; } +						if (a>0) { +							a = a - 360; +						}  						DrawArc( &tempD, orig, dist/2, FindAngle(orig,base), fabs(a), FALSE, 0,  						         wDrawColorBlue);  					} @@ -2266,8 +2333,11 @@ static STATUS_T CmdRotate(  					ANGLE_T arrow_a = NormalizeAngle(FindAngle(orig,orig_base)+a/2);  					coOrd arr1,arr2,arr3;  					Translate(&arr2,orig,arrow_a,dist/2); -					if (clockwise) { arrow_a +=90; } -					else { arrow_a -=90; } +					if (clockwise) { +						arrow_a +=90; +					} else { +						arrow_a -=90; +					}  					Translate(&arr1,arr2,arrow_a+135,d/2);  					Translate(&arr3,arr2,arrow_a-135,d/2);  					DrawLine( &tempD, arr1, arr2, 0, wDrawColorBlue ); @@ -2304,15 +2374,19 @@ static track_p SelectTrackByIndex(TRKINX_T ti, char * message )  		if (!GetLayerFrozen( GetTrkLayer( trk ) ) ) {  			if (GetLayerModule(GetTrkLayer(trk))) {  				DoModuleTracks(GetTrkLayer(trk),DrawSingleTrack,TRUE); -				snprintf(message, STR_LONG_SIZE, "%s %d",_("In module layer:"), +				snprintf(message, STR_LONG_SIZE, "%s %u",_("In module layer:"),  				         GetTrkLayer(trk)+1);  			} else { -				if (!GetLayerVisible(GetTrkLayer(trk))) { FlipLayer(I2VP(GetTrkLayer(trk))); } -				if (!GetTrkVisible(trk) && drawTunnel==0 ) { drawTunnel = 1; } //Force DRAW_TUNNEL_DASH +				if (!GetLayerVisible(GetTrkLayer(trk))) { +					FlipLayer(I2VP(GetTrkLayer(trk))); +				} +				if (!GetTrkVisible(trk) && drawTunnel==0 ) { +					drawTunnel = 1;    //Force DRAW_TUNNEL_DASH +				}  				SelectOneTrack(trk,TRUE);  			}  		} else { -			snprintf(message, STR_LONG_SIZE, "%s %d",_("Frozen Layer:"),GetTrkLayer(trk)+1); +			snprintf(message, STR_LONG_SIZE, "%s %u",_("Frozen Layer:"),GetTrkLayer(trk)+1);  			trk = NULL;  		}  	} else { @@ -2342,7 +2416,9 @@ EXPORT void SelectByIndex( void* string)  			}  		}  		cp = strtok(NULL,","); -		if (cp) { single = FALSE; } +		if (cp) { +			single = FALSE; +		}  	}  	DoZoomExtents(I2VP(1)); @@ -2446,7 +2522,9 @@ track_p FindTrackDescription(coOrd pos, EPINX_T * ep_o, int * mode_o,  				}  			}  		} -		if (IsClose(dd)) { break; } +		if (IsClose(dd)) { +			break; +		}  		if ( *mode_o == 0 || !QueryTrack( trk1, Q_HAS_DESC ) ) {  			continue;  		} @@ -2454,7 +2532,9 @@ track_p FindTrackDescription(coOrd pos, EPINX_T * ep_o, int * mode_o,  			continue;  		}  		if ( ( GetTrkBits( trk1 ) & TB_HIDEDESC ) != 0 ) { -			if ( !show_hidden ) { continue; } +			if ( !show_hidden ) { +				continue; +			}  		}  		d = CompoundDescriptionDistance( pos, trk1, &dpos, show_hidden, &hidden_t );  		if ( d < dd ) { @@ -2516,18 +2596,36 @@ track_p FindTrackDescription(coOrd pos, EPINX_T * ep_o, int * mode_o,  	coOrd pos1 = pos;  	if ((trk != NULL) && IsClose(dd) ) { -		if (ep_o) { *ep_o = ep; } -		if (mode_o) { *mode_o = mode; } -		if (hidden_o) { *hidden_o = hidden; } +		if (ep_o) { +			*ep_o = ep; +		} +		if (mode_o) { +			*mode_o = mode; +		} +		if (hidden_o) { +			*hidden_o = hidden; +		}  		return trk;  	} else {  // Return other track for description (not near to description but nearest to track) -		if ((trk1 = OnTrack(&pos1, FALSE, FALSE))==NULL) { return NULL; } -		if (!QueryTrack( trk1, Q_HAS_DESC )) { return NULL; } -		if (GetLayerFrozen(GetTrkLayer(trk1))) { return NULL; } +		if ((trk1 = OnTrack(&pos1, FALSE, FALSE))==NULL) { +			return NULL; +		} +		if (!QueryTrack( trk1, Q_HAS_DESC )) { +			return NULL; +		} +		if (GetLayerFrozen(GetTrkLayer(trk1))) { +			return NULL; +		}  		if (IsClose(FindDistance(pos,pos1))) { -			if (mode_o) { *mode_o = -1; } -			if (ep_o) { *ep_o = -1; } -			if (hidden_o) { *hidden_o = GetTrkBits( trk1 ) & TB_HIDEDESC; } +			if (mode_o) { +				*mode_o = -1; +			} +			if (ep_o) { +				*ep_o = -1; +			} +			if (hidden_o) { +				*hidden_o = GetTrkBits( trk1 ) & TB_HIDEDESC; +			}  			return trk1;  		}  	} @@ -2564,7 +2662,9 @@ STATUS_T CmdMoveDescription(  		SetAllTrackSelect( FALSE );  	/* no break */  	case wActionMove: -		if ( labelWhen < 2 || mainD.scale > labelScale ) { return C_CONTINUE; } +		if ( labelWhen < 2 || mainD.scale > labelScale ) { +			return C_CONTINUE; +		}  		mode = moveDescMode  		       -1;   // -1 means everything, 0 means elevations only, 1 means descriptions only  		if ((moveDescTrk=FindTrackDescription(pos,&ep,&mode,TRUE,&hidden))!=NULL) { @@ -2590,8 +2690,12 @@ STATUS_T CmdMoveDescription(  		InfoMessage( _("Select and drag a description") );  		break;  	case C_TEXT: -		if (!moveDescTrk) { return C_CONTINUE; } -		if (mode == 0) { return C_CONTINUE; } +		if (!moveDescTrk) { +			return C_CONTINUE; +		} +		if (mode == 0) { +			return C_CONTINUE; +		}  		bChanged = FALSE;  		if (action>>8 == 's') {  			if ( ( GetTrkBits( moveDescTrk ) & TB_HIDEDESC) != 0 ) { @@ -2710,8 +2814,12 @@ STATUS_T CmdMoveDescription(  		} else {  			moveDescPos = pos;  		} -		if ( moveDescTrk == NULL ) { break; } -		if ( ! QueryTrack( moveDescTrk, Q_HAS_DESC ) ) { break; } +		if ( moveDescTrk == NULL ) { +			break; +		} +		if ( ! QueryTrack( moveDescTrk, Q_HAS_DESC ) ) { +			break; +		}  		if ( moveDescM == NULL ) {  			moveDescM = MenuRegister( "Move Desc Toggle" );  			moveDescMI = wMenuToggleCreate( moveDescM, "", _("Show/Hide Description"), 0, @@ -2892,7 +3000,9 @@ static BOOL_T SelectArea(  			subtract = (action == C_RUP);  			cnt = 0;  			trk = NULL; -			if (add && (selectMode == 0)) { SetAllTrackSelect( FALSE ); }		//Remove all tracks first +			if (add && (selectMode == 0)) { +				SetAllTrackSelect( FALSE );    //Remove all tracks first +			}  			while ( TrackIterate( &trk ) ) {  				GetBoundingBox( trk, &hi, &lo );  				if (GetLayerVisible( GetTrkLayer( trk ) ) && @@ -2954,7 +3064,9 @@ static BOOL_T SelectArea(  		}  		//Draw to-be selected tracks versus not.  		trk = NULL; -		if (selectMode == 1 && add) { HighlightSelectedTracks(NULL, TRUE, TRUE); } +		if (selectMode == 1 && add) { +			HighlightSelectedTracks(NULL, TRUE, TRUE); +		}  		while ( TrackIterate( &trk ) ) {  			GetBoundingBox( trk, &hi, &lo );  			if (GetLayerVisible( GetTrkLayer( trk ) ) && @@ -3007,7 +3119,9 @@ static STATUS_T SelectTrack(  		SetAllTrackSelect( FALSE );							//Unselect all  		return C_CONTINUE;  	} -	if (trk == NULL) { return C_CONTINUE; } +	if (trk == NULL) { +		return C_CONTINUE; +	}  	if (!CheckTrackLayerSilent( trk ) ) {  		if (GetLayerFrozen(GetTrkLayer(trk)) ) {  			trk = NULL; @@ -3054,7 +3168,9 @@ static STATUS_T Activate( coOrd pos)  	if (GetLayerModule(GetTrkLayer(trk))) {  		return C_CONTINUE;  	} -	if (QueryTrack(trk,Q_IS_ACTIVATEABLE)) { ActivateTrack(trk); } +	if (QueryTrack(trk,Q_IS_ACTIVATEABLE)) { +		ActivateTrack(trk); +	}  	return C_CONTINUE; @@ -3064,8 +3180,12 @@ track_p IsInsideABox(coOrd pos)  {  	track_p ts = NULL;  	while ( TrackIterate( &ts ) ) { -		if (!GetLayerVisible( GetTrkLayer( ts))) { continue; } -		if (!GetTrkSelected(ts)) { continue; } +		if (!GetLayerVisible( GetTrkLayer( ts))) { +			continue; +		} +		if (!GetTrkSelected(ts)) { +			continue; +		}  		coOrd hi,lo;  		GetBoundingBox(ts, &hi, &lo);  		double boundary = mainD.scale*5/mainD.dpi; @@ -3081,26 +3201,41 @@ void DrawHighlightBoxes(BOOL_T highlight_selected, BOOL_T select,                          track_p not_this)  {  	track_p ts = NULL; -	coOrd origin,max; +	coOrd origin,max = {0.0, 0.0};  	BOOL_T first = TRUE;  	while ( TrackIterate( &ts ) ) { -		if ( !GetLayerVisible( GetTrkLayer( ts))) { continue; } -		if (!GetTrkSelected(ts)) { continue; } +		if ( !GetLayerVisible( GetTrkLayer( ts))) { +			continue; +		} +		if (!GetTrkSelected(ts)) { +			continue; +		}  		if (GetLayerModule(GetTrkLayer(ts))) {  			DrawHighlightLayer(GetTrkLayer(ts));  		}  		coOrd hi,lo; -		if (highlight_selected && (ts != not_this)) { DrawTrack(ts,&tempD,select?wDrawColorPreviewSelected:wDrawColorPreviewUnselected ); } +		if (highlight_selected && (ts != not_this)) { +			DrawTrack(ts,&tempD,select?wDrawColorPreviewSelected: +			          wDrawColorPreviewUnselected ); +		}  		GetBoundingBox(ts, &hi, &lo);  		if (first) {  			origin = lo;  			max = hi;  			first = FALSE;  		} else { -			if (lo.x <origin.x) { origin.x = lo.x; } -			if (lo.y <origin.y) { origin.y = lo.y; } -			if (hi.x >max.x) { max.x = hi.x; } -			if (hi.y >max.y) { max.y = hi.y; } +			if (lo.x <origin.x) { +				origin.x = lo.x; +			} +			if (lo.y <origin.y) { +				origin.y = lo.y; +			} +			if (hi.x >max.x) { +				max.x = hi.x; +			} +			if (hi.y >max.y) { +				max.y = hi.y; +			}  		}  	}  	if (!first) { @@ -3164,7 +3299,7 @@ static STATUS_T CmdSelect(  	STATUS_T rc=C_CONTINUE;  	static track_p trk = NULL; -	typedef enum {NOSHOW,SHOWMOVE,SHOWROTATE,SHOWMODIFY,SHOWACTIVATE} showType; +//	typedef enum {NOSHOW,SHOWMOVE,SHOWROTATE,SHOWMODIFY,SHOWACTIVATE} showType;  //	static showType showMode;  	mode = AREA; @@ -3208,7 +3343,9 @@ static STATUS_T CmdSelect(  		coOrd p = pos;  		trk = OnTrack( &p, FALSE, FALSE );  		track_p ht; -		if ((selectedTrackCount==0) && (trk == NULL)) { return C_CONTINUE; } +		if ((selectedTrackCount==0) && (trk == NULL)) { +			return C_CONTINUE; +		}  		if (trk && !CheckTrackLayerSilent( trk ) ) {  			if (GetLayerFrozen(GetTrkLayer(trk)) ) {  				trk = NULL; @@ -3234,11 +3371,19 @@ static STATUS_T CmdSelect(  						if (QueryTrack(ht,Q_IS_ACTIVATEABLE)) {  							CreateActivateAnchor(pos);  //							showMode = SHOWACTIVATE; -						} else { wSetCursor(mainD.d,defaultCursor); } +						} else { +							wSetCursor(mainD.d,defaultCursor); +						}  					} -				} else { wSetCursor(mainD.d,defaultCursor); } -			} else { wSetCursor(mainD.d,defaultCursor); } -		} else { wSetCursor(mainD.d,defaultCursor); } +				} else { +					wSetCursor(mainD.d,defaultCursor); +				} +			} else { +				wSetCursor(mainD.d,defaultCursor); +			} +		} else { +			wSetCursor(mainD.d,defaultCursor); +		}  		break;  	case C_DOWN: @@ -3268,7 +3413,8 @@ static STATUS_T CmdSelect(  			doingRotate = FALSE;  			SelectArea( action, pos );  			break; -		default: ; +		default: +			;  		}  		trk = NULL;  		return rc; @@ -3310,7 +3456,8 @@ static STATUS_T CmdSelect(  			doingRotate = FALSE;  			SelectArea( action, pos );  			break; -		default: ; +		default: +			;  		}  		if ((action&0xFF) == wActionExtKey  		    && ((MyGetKeyState() & (WKEY_SHIFT|WKEY_CTRL)) == @@ -3344,7 +3491,8 @@ static STATUS_T CmdSelect(  			SelectArea( action, pos );  			rc = C_CONTINUE;  			break; -		default: ; +		default: +			;  		}  		doingMove = FALSE;  		doingRotate = FALSE; @@ -3373,11 +3521,13 @@ static STATUS_T CmdSelect(  			            0 );  			return C_CONTINUE;  		} -		BOOL_T AreaSelect = FALSE;  		// Draw the selected area, no-op if none selected  		if (mode==AREA) { +			BOOL_T AreaSelect = FALSE;  			AreaSelect = SelectArea( action, pos ); -			if (AreaSelect) { return C_CONTINUE; } +			if (AreaSelect) { +				return C_CONTINUE; +			}  		}  		// Highlight a whole Module's worth of tracks if we are hovering over one @@ -3510,7 +3660,9 @@ static STATUS_T CmdSelect(  				    (QueryTrack( ht, Q_IS_DRAW ) && !QueryTrack( ht, Q_IS_TEXT ))) {  					doingDouble = TRUE;  					CallModify(C_START,pos); -					if (doingDouble == FALSE) { return C_CONTINUE; } +					if (doingDouble == FALSE) { +						return C_CONTINUE; +					}  					CallModify(C_LDOUBLE,pos);  				} else if (QueryTrack( ht, Q_IS_ACTIVATEABLE)) {  					return Activate(pos); @@ -3575,28 +3727,32 @@ static STATUS_T CmdSelect(  			CallModify(C_OK,pos);  			CallModify(C_FINISH,pos);  		} -		if (doingMove) { UndoEnd(); } +		if (doingMove) { +			UndoEnd(); +		}  		doingDouble = FALSE;  		wSetCursor(mainD.d,defaultCursor);  		break;  	default: -		if (doingDouble) { return CallModify(action, pos); } +		if (doingDouble) { +			return CallModify(action, pos); +		}  	}  	return C_CONTINUE;  } -#include "bitmaps/select.xpm3" -#include "bitmaps/delete.xpm3" -#include "bitmaps/tunnel.xpm3" -#include "bitmaps/ties.xpm3" -#include "bitmaps/bridge.xpm3" -#include "bitmaps/roadbed.xpm3" -#include "bitmaps/move.xpm3" -#include "bitmaps/rotate.xpm3" -#include "bitmaps/reflect.xpm3" -#include "bitmaps/description.xpm3" +#include "bitmaps/select.image3" +#include "bitmaps/delete.image3" +#include "bitmaps/tunnel.image3" +#include "bitmaps/ties.image3" +#include "bitmaps/bridge.image3" +#include "bitmaps/roadbed.image3" +#include "bitmaps/move.image3" +#include "bitmaps/rotate.image3" +#include "bitmaps/reflect.image3" +#include "bitmaps/description.image3"  static void SetMoveMode( char * line ) @@ -3611,7 +3767,9 @@ static void SetMoveMode( char * line )  static void moveDescription( void * unused )  { -	if (!moveDescTrk) { return; } +	if (!moveDescTrk) { +		return; +	}  	int hidden = GetTrkBits( moveDescTrk) &TB_HIDEDESC ;  	if (hidden) {  		ClrTrkBits( moveDescTrk, TB_HIDEDESC ); @@ -3625,7 +3783,7 @@ static void moveDescription( void * unused )  EXPORT void InitCmdSelect( wMenu_p menu )  {  	selectCmdInx = AddMenuButton( menu, CmdSelect, "cmdSelect", _("Select"), -	                              wIconCreatePixMap(select_xpm3[iconSize]), +	                              wIconCreatePixMap(select_image3[iconSize]),  	                              LEVEL0, IC_CANCEL|IC_POPUP|IC_LCLICK|IC_CMDMENU|IC_WANT_MOVE|IC_WANT_MODKEYS,  	                              ACCL_SELECT, NULL );  } @@ -3756,7 +3914,7 @@ EXPORT void InitCmdSelect2( wMenu_p menu )  EXPORT void InitCmdDelete( void )  {  	wIcon_p icon; -	icon = wIconCreatePixMap( delete_xpm3[iconSize] ); +	icon = wIconCreatePixMap( delete_image3[iconSize] );  	AddToolbarButton( "cmdDelete", icon, IC_SELECTED,  	                  (wButtonCallBack_p)SelectDelete, 0 );  } @@ -3764,28 +3922,28 @@ EXPORT void InitCmdDelete( void )  EXPORT void InitCmdTies( void )  {  	wIcon_p icon; -	icon = wIconCreatePixMap( ties_xpm3[iconSize] ); +	icon = wIconCreatePixMap( ties_image3[iconSize] );  	AddToolbarButton( "cmdTies", icon, IC_SELECTED|IC_POPUP, SelectTies, NULL );  }  EXPORT void InitCmdTunnel( void )  {  	wIcon_p icon; -	icon = wIconCreatePixMap( tunnel_xpm3[iconSize] ); +	icon = wIconCreatePixMap( tunnel_image3[iconSize] );  	AddToolbarButton( "cmdTunnel", icon, IC_SELECTED|IC_POPUP, SelectTunnel, NULL );  }  EXPORT void InitCmdBridge( void)  {  	wIcon_p icon; -	icon = wIconCreatePixMap( bridge_xpm3[iconSize] ); +	icon = wIconCreatePixMap( bridge_image3[iconSize] );  	AddToolbarButton( "cmdBridge", icon, IC_SELECTED|IC_POPUP, SelectBridge, NULL );  }  EXPORT void InitCmdRoadbed( void)  {  	wIcon_p icon; -	icon = wIconCreatePixMap( roadbed_xpm3[iconSize] ); +	icon = wIconCreatePixMap( roadbed_image3[iconSize] );  	AddToolbarButton( "cmdRoadbed", icon, IC_SELECTED|IC_POPUP, SelectRoadbed,  	                  NULL );  } @@ -3794,7 +3952,7 @@ EXPORT void InitCmdRoadbed( void)  EXPORT void InitCmdMoveDescription( wMenu_p menu )  {  	AddMenuButton( menu, CmdMoveDescription, "cmdMoveLabel", _("Move Description"), -	               wIconCreatePixMap(description_xpm3[iconSize]), +	               wIconCreatePixMap(description_image3[iconSize]),  	               LEVEL0, IC_STICKY|IC_POPUP3|IC_CMDMENU|IC_WANT_MOVE, ACCL_MOVEDESC, I2VP( 0 ));  } @@ -3802,12 +3960,12 @@ EXPORT void InitCmdMoveDescription( wMenu_p menu )  EXPORT void InitCmdMove( wMenu_p menu )  {  	moveCmdInx = AddMenuButton( menu, CmdMove, "cmdMove", _("Move"), -	                            wIconCreatePixMap(move_xpm3[iconSize]), +	                            wIconCreatePixMap(move_image3[iconSize]),  	                            LEVEL0, IC_STICKY|IC_SELECTED|IC_CMDMENU|IC_WANT_MOVE, ACCL_MOVE, NULL );  	rotateCmdInx = AddMenuButton( menu, CmdRotate, "cmdRotate", _("Rotate"), -	                              wIconCreatePixMap(rotate_xpm3[iconSize]), +	                              wIconCreatePixMap(rotate_image3[iconSize]),  	                              LEVEL0, IC_STICKY|IC_SELECTED|IC_CMDMENU|IC_WANT_MOVE, ACCL_ROTATE, NULL );  	flipCmdInx = AddMenuButton( menu, CmdFlip, "cmdFlip", _("Flip"), -	                            wIconCreatePixMap(reflect_xpm3[iconSize]), +	                            wIconCreatePixMap(reflect_image3[iconSize]),  	                            LEVEL0, IC_STICKY|IC_SELECTED|IC_CMDMENU, ACCL_FLIP, NULL );  }  | 
