← Back to team overview

kicad-developers team mailing list archive

Re: Show grid in eeschema status line

 

On 5/23/19 1:59 PM, Wayne Stambaugh wrote:
> Hey Steve,
> 
> Adding "grid" to the coordinates in the status bar is not correct.
> These are the cursor coordinates not the grid coordinates.  To add the
> current grid size to the status bar, you would need to add another pane
> to status bar and fetch the current grid setting from the current SCREEN
> object.

Thanks!  I'll play around with that.

	Steve

> 
> Cheers,
> 
> Wayne
> 
> On 5/18/19 3:48 PM, Steven A. Falco wrote:
>> I decided to try adding the current grid size to the status line of eeschema and the symbol editor, so as to make the N/shift-N hotkeys easier to use.  Below is what I came up with.
>>
>> Is this something that could be accepted?  I don't know if it fits with the style of the KiCad code - I have mostly written embedded C SW, not C++.
>>
>> 	Steve
>>
>> --- eeschema/sch_base_frame.cpp	2019-05-18 15:17:14.692949429 -0400
>> +++ /home/sfalco/sch_base_frame.cpp	2019-05-18 15:36:11.266193897 -0400
>> @@ -257,17 +246,17 @@
>>      {
>>      case INCHES:
>>          absformatter = "X %.3f  Y %.3f";
>> -        locformatter = "dx %.3f  dy %.3f  dist %.3f";
>> +        locformatter = "grid %.3f  dx %.3f  dy %.3f  dist %.3f";
>>          break;
>>  
>>      case MILLIMETRES:
>>          absformatter = "X %.2f  Y %.2f";
>> -        locformatter = "dx %.2f  dy %.2f  dist %.2f";
>> +        locformatter = "grid %.4f  dx %.2f  dy %.2f  dist %.2f";
>>          break;
>>  
>>      case UNSCALED_UNITS:
>>          absformatter = "X %f  Y %f";
>> -        locformatter = "dx %f  dy %f  dist %f";
>> +        locformatter = "grid %f  dx %f  dy %f  dist %f";
>>          break;
>>  
>>      case DEGREES:
>> @@ -282,6 +271,9 @@
>>      double dx = (double)GetCrossHairPosition().x - (double)screen->m_O_Curseur.x;
>>      double dy = (double)GetCrossHairPosition().y - (double)screen->m_O_Curseur.y;
>>  
>> +    wxRealPoint curr_grid_size = GetScreen()->GetGridSize();
>> +    double grid = To_User_Unit( GetUserUnits(), curr_grid_size.x );
>> +
>>      dXpos = To_User_Unit( GetUserUnits(), dx );
>>      dYpos = To_User_Unit( GetUserUnits(), dy );
>>  
>> @@ -292,9 +284,10 @@
>>      }
>>  
>>      // We already decided the formatter above
>> -    line.Printf( locformatter, dXpos, dYpos, hypot( dXpos, dYpos ) );
>> +    line.Printf( locformatter, grid, dXpos, dYpos, hypot( dXpos, dYpos ) );
>>      SetStatusText( line, 3 );
>>  
>>      // refresh units display
>>      DisplayUnitsMsg();
>>  }
>>
>> _______________________________________________
>> Mailing list: https://launchpad.net/~kicad-developers
>> Post to     : kicad-developers@xxxxxxxxxxxxxxxxxxx
>> Unsubscribe : https://launchpad.net/~kicad-developers
>> More help   : https://help.launchpad.net/ListHelp
>>
> 
> _______________________________________________
> Mailing list: https://launchpad.net/~kicad-developers
> Post to     : kicad-developers@xxxxxxxxxxxxxxxxxxx
> Unsubscribe : https://launchpad.net/~kicad-developers
> More help   : https://help.launchpad.net/ListHelp
> 



References