← Back to team overview

kicad-developers team mailing list archive

Show grid in eeschema status line

 

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();
 }


Follow ups