kicad-developers team mailing list archive
-
kicad-developers team
-
Mailing list archive
-
Message #40778
Re: Show grid in eeschema status line
-
To:
kicad-developers@xxxxxxxxxxxxxxxxxxx
-
From:
"Steven A. Falco" <stevenfalco@xxxxxxxxx>
-
Date:
Fri, 24 May 2019 09:55:02 -0400
-
Autocrypt:
addr=stevenfalco@xxxxxxxxx; keydata= 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 4NNs
-
In-reply-to:
<aa5c5330-f331-8ca7-b791-ed9d34a3d518@gmail.com>
-
Openpgp:
preference=signencrypt
-
User-agent:
Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.7.0
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.
In the attached patch I tried to make the changes you suggested, Wayne. Please let me know if it is ok, or if there are still problems.
I find the panes confusing, because mainframe.cpp allocates 3 panes via "CreateStatusBar( 3 );", but I see higher numbers elsewhere in the code, such as EDA_DRAW_FRAME::DisplayToolMsg which uses "SetStatusText( msg, 5 );". I increased the count in mainframe.cpp to 4 to cover the my new grid pane, but I don't know if I really needed to do that.
Steve
diff --git a/common/legacy_gal/eda_draw_frame.cpp b/common/legacy_gal/eda_draw_frame.cpp
index f7408d35b..ddafae691 100644
--- a/common/legacy_gal/eda_draw_frame.cpp
+++ b/common/legacy_gal/eda_draw_frame.cpp
@@ -638,6 +638,34 @@ void EDA_DRAW_FRAME::SaveSettings( wxConfigBase* aCfg )
m_galDisplayOptions.WriteConfig( *aCfg, baseCfgName );
}
+void EDA_DRAW_FRAME::DisplayGridMsg()
+{
+ wxString line;
+ wxString gridformatter;
+
+ switch( m_UserUnits )
+ {
+ case INCHES:
+ gridformatter = "grid %.3f";
+ break;
+
+ case MILLIMETRES:
+ gridformatter = "grid %.4f";
+ break;
+
+ default:
+ gridformatter = "grid %f";
+ break;
+ }
+
+ wxRealPoint curr_grid_size = GetScreen()->GetGridSize();
+ double grid = To_User_Unit( GetUserUnits(), curr_grid_size.x );
+ line.Printf( gridformatter, grid );
+
+ SetStatusText( line, 5 );
+}
+
+
void EDA_DRAW_FRAME::AppendMsgPanel( const wxString& textUpper, const wxString& textLower,
COLOR4D color, int pad )
diff --git a/common/legacy_wx/eda_draw_frame.cpp b/common/legacy_wx/eda_draw_frame.cpp
index 35088a374..ccb28cd30 100644
--- a/common/legacy_wx/eda_draw_frame.cpp
+++ b/common/legacy_wx/eda_draw_frame.cpp
@@ -582,6 +582,61 @@ void EDA_DRAW_FRAME::DisplayUnitsMsg()
}
+void EDA_DRAW_FRAME::DisplayGridMsg()
+{
+ wxString line;
+ wxString gridformatter;
+
+ switch( m_UserUnits )
+ {
+ case INCHES:
+ gridformatter = "grid %.3f";
+ break;
+
+ case MILLIMETRES:
+ gridformatter = "grid %.4f";
+ break;
+
+ default:
+ gridformatter = "grid %f";
+ break;
+ }
+
+ wxRealPoint curr_grid_size = GetScreen()->GetGridSize();
+ double grid = To_User_Unit( GetUserUnits(), curr_grid_size.x );
+ line.Printf( gridformatter, grid );
+ SetStatusText( msg, 5 );
+}
+
+
+void EDA_DRAW_FRAME::DisplayGridMsg()
+{
+ wxString line;
+ wxString gridformatter;
+
+ switch( m_UserUnits )
+ {
+ case INCHES:
+ gridformatter = "grid %.3f";
+ break;
+
+ case MILLIMETRES:
+ gridformatter = "grid %.4f";
+ break;
+
+ default:
+ gridformatter = "grid %f";
+ break;
+ }
+
+ wxRealPoint curr_grid_size = GetScreen()->GetGridSize();
+ double grid = To_User_Unit( GetUserUnits(), curr_grid_size.x );
+ line.Printf( gridformatter, grid );
+
+ SetStatusText( line, 5 );
+}
+
+
void EDA_DRAW_FRAME::OnSize( wxSizeEvent& SizeEv )
{
m_FrameSize = GetClientSize( );
diff --git a/eeschema/sch_base_frame.cpp b/eeschema/sch_base_frame.cpp
index 14910f86e..3eddf8007 100644
--- a/eeschema/sch_base_frame.cpp
+++ b/eeschema/sch_base_frame.cpp
@@ -297,6 +297,9 @@ void SCH_BASE_FRAME::UpdateStatusBar()
// refresh units display
DisplayUnitsMsg();
+
+ // refresh grid display
+ DisplayGridMsg();
}
diff --git a/include/draw_frame.h b/include/draw_frame.h
index fcf16d738..2f33d1673 100644
--- a/include/draw_frame.h
+++ b/include/draw_frame.h
@@ -793,6 +793,11 @@ public:
*/
void DisplayUnitsMsg();
+ /**
+ * Display current grid pane on the status bar.
+ */
+ void DisplayGridMsg();
+
/* Handlers for block commands */
virtual void InitBlockPasteInfos();
diff --git a/kicad/mainframe.cpp b/kicad/mainframe.cpp
index 5554cd791..5735344af 100644
--- a/kicad/mainframe.cpp
+++ b/kicad/mainframe.cpp
@@ -66,10 +66,10 @@ KICAD_MANAGER_FRAME::KICAD_MANAGER_FRAME( wxWindow* parent,
m_AboutTitle = "KiCad";
// Create the status line (bottom of the frame)
- static const int dims[3] = { -1, -1, 100 };
+ static const int dims[4] = { -1, -1, -1, 100 };
- CreateStatusBar( 3 );
- SetStatusWidths( 3, dims );
+ CreateStatusBar( 4 );
+ SetStatusWidths( 4, dims );
// Give an icon
wxIcon icon;
Follow ups
References