You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							345 lines
						
					
					
						
							9.1 KiB
						
					
					
				
			
		
		
		
			
			
			
		
		
	
	
							345 lines
						
					
					
						
							9.1 KiB
						
					
					
				| /* | |
| * This program source code file is part of KiCad, a free EDA CAD application. | |
| * | |
| * Copyright (C) 2020-2023 KiCad Developers, see AUTHORS.txt for contributors. | |
| * | |
| * This program is free software; you can redistribute it and/or | |
| * modify it under the terms of the GNU General Public License | |
| * as published by the Free Software Foundation; either version 2 | |
| * of the License, or (at your option) any later version. | |
| * | |
| * This program is distributed in the hope that it will be useful, | |
| * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
| * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | |
| * GNU General Public License for more details. | |
| * | |
| * You should have received a copy of the GNU General Public License | |
| * along with this program; if not, you may find one here: | |
| * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html | |
| * or you may search the http://www.gnu.org website for the version 2 license, | |
| * or you may write to the Free Software Foundation, Inc., | |
| * 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA | |
| */ | |
| 
 | |
| #ifndef _EESCHEMA_SETTINGS_H | |
| #define _EESCHEMA_SETTINGS_H | |
|  | |
| #include <wx/aui/framemanager.h> | |
|  | |
| #include <settings/app_settings.h> | |
|  | |
| 
 | |
| using KIGFX::COLOR4D; | |
| 
 | |
| 
 | |
| extern const wxAuiPaneInfo& defaultNetNavigatorPaneInfo(); | |
| extern const wxAuiPaneInfo& defaultPropertiesPaneInfo(); | |
| 
 | |
| 
 | |
| 
 | |
| enum LINE_MODE | |
| { | |
|     LINE_MODE_FREE          = 0, | |
|     LINE_MODE_90            = 1, | |
|     LINE_MODE_45            = 2, | |
| 
 | |
|     LINE_MODE_COUNT, | |
| }; | |
| 
 | |
| 
 | |
| class EESCHEMA_SETTINGS : public APP_SETTINGS_BASE | |
| { | |
| public: | |
|     struct APPEARANCE | |
|     { | |
|         wxString edit_symbol_visible_columns; | |
|         int edit_symbol_width; | |
|         int edit_symbol_height; | |
|         wxString edit_sheet_visible_columns; | |
|         int edit_sheet_width; | |
|         int edit_sheet_height; | |
|         wxString edit_label_visible_columns; | |
|         int edit_label_width; | |
|         int edit_label_height; | |
|         int  erc_severities; | |
|         bool footprint_preview; | |
|         bool print_sheet_reference; | |
|         wxString default_font; | |
|         bool show_hidden_pins; | |
|         bool show_hidden_fields; | |
|         bool show_directive_labels; | |
|         bool show_erc_warnings; | |
|         bool show_erc_errors; | |
|         bool show_erc_exclusions; | |
|         bool show_op_voltages; | |
|         bool show_op_currents; | |
|         bool show_illegal_symbol_lib_dialog; | |
|         bool show_page_limits; | |
|         bool show_sexpr_file_convert_warning; | |
|         bool show_sheet_filename_case_sensitivity_dialog; | |
|     }; | |
| 
 | |
|     struct AUI_PANELS | |
|     { | |
|         int  hierarchy_panel_docked_width;  // width of hierarchy tree panel and pane when docked | |
|         int  hierarchy_panel_docked_height; // height of hierarchy tree panel and pane when docked | |
|         int  hierarchy_panel_float_width;   // width of hierarchy tree panel when floating | |
|         int  hierarchy_panel_float_height;  // height of hierarchy tree panel when floating | |
|         int  search_panel_height;           // height of the search panel | |
|         int  search_panel_width;            // width of the search panel | |
|         int  search_panel_dock_direction;   // docking direction of the search panel | |
|         bool schematic_hierarchy_float;     // show hierarchy tree panel as floating | |
|         bool show_schematic_hierarchy;      // show hierarchy tree pane | |
|         bool show_search;                   // show the search panel | |
|         wxSize net_nav_panel_docked_size; | |
|         wxPoint net_nav_panel_float_pos; | |
|         wxSize net_nav_panel_float_size; | |
|         bool float_net_nav_panel; | |
|         bool show_net_nav_panel; | |
|         int  properties_panel_width; | |
|         float properties_splitter_proportion; | |
|         bool show_properties; | |
|     }; | |
| 
 | |
|     struct AUTOPLACE_FIELDS | |
|     { | |
|         bool enable; | |
|         bool allow_rejustify; | |
|         bool align_to_grid; | |
|     }; | |
| 
 | |
|     struct BOM_PLUGIN_SETTINGS | |
|     { | |
|         BOM_PLUGIN_SETTINGS() = default; | |
| 
 | |
|         BOM_PLUGIN_SETTINGS( const wxString& aName, const wxString& aPath ) : | |
|                 name( aName ), | |
|                 path( aPath ) | |
|         {} | |
| 
 | |
|         wxString name; | |
|         wxString path; | |
|         wxString command; | |
|     }; | |
| 
 | |
|     struct NETLIST_PLUGIN_SETTINGS | |
|     { | |
|         NETLIST_PLUGIN_SETTINGS() = default; | |
| 
 | |
|         NETLIST_PLUGIN_SETTINGS( const wxString& aName, const wxString& aPath ) : | |
|                 name( aName ), | |
|                 path( aPath ) | |
|         {} | |
| 
 | |
|         wxString name; | |
|         wxString path; | |
|         wxString command; | |
|     }; | |
| 
 | |
|     struct DRAWING | |
|     { | |
|         int      default_bus_thickness; | |
|         int      default_junction_size; | |
|         int      default_line_thickness; | |
|         int      default_repeat_offset_x; | |
|         int      default_repeat_offset_y; | |
|         int      default_wire_thickness; | |
|         int      default_text_size; | |
|         int      pin_symbol_size; | |
|         double   text_offset_ratio; | |
|         COLOR4D  default_sheet_border_color; | |
|         COLOR4D  default_sheet_background_color; | |
|         wxString field_names; | |
|         int      line_mode; | |
|         int      repeat_label_increment; | |
|         bool     intersheets_ref_show; | |
|         bool     intersheets_ref_own_page; | |
|         bool     intersheets_ref_short; | |
|         wxString intersheets_ref_prefix; | |
|         wxString intersheets_ref_suffix; | |
|         bool     auto_start_wires; | |
|         std::vector<double> junction_size_mult_list; | |
|         // Pulldown index for user default junction dot size (e.g. smallest = 0, small = 1, etc) | |
|         int      junction_size_choice; | |
|     }; | |
| 
 | |
|     struct INPUT | |
|     { | |
|         bool drag_is_move; | |
|         bool esc_clears_net_highlight; | |
|     }; | |
| 
 | |
|     struct SELECTION | |
|     { | |
|         int  selection_thickness; | |
|         int  highlight_thickness; | |
|         bool draw_selected_children; | |
|         bool fill_shapes; | |
|         bool select_pin_selects_symbol; | |
|     }; | |
| 
 | |
|     struct PAGE_SETTINGS | |
|     { | |
|         bool export_paper; | |
|         bool export_revision; | |
|         bool export_date; | |
|         bool export_title; | |
|         bool export_company; | |
|         bool export_comment1; | |
|         bool export_comment2; | |
|         bool export_comment3; | |
|         bool export_comment4; | |
|         bool export_comment5; | |
|         bool export_comment6; | |
|         bool export_comment7; | |
|         bool export_comment8; | |
|         bool export_comment9; | |
|     }; | |
| 
 | |
|     struct PANEL_ANNOTATE | |
|     { | |
|         bool automatic; | |
|         bool recursive; | |
|         int scope; | |
|         int options; | |
|         int method; | |
|         int messages_filter; | |
|         int sort_order; | |
|     }; | |
| 
 | |
|     struct PANEL_BOM | |
|     { | |
|         wxString selected_plugin; | |
|         std::vector<BOM_PLUGIN_SETTINGS> plugins; | |
|     }; | |
| 
 | |
|     struct PANEL_FIELD_EDITOR | |
|     { | |
|         std::map<std::string, int> field_widths; | |
|         int                        width; | |
|         int                        height; | |
|         int                        page; | |
|         wxString                   export_filename; | |
|     }; | |
| 
 | |
|     struct PANEL_LIB_VIEW | |
|     { | |
|         int lib_list_width; | |
|         int cmp_list_width; | |
|         bool show_pin_electrical_type; | |
|         bool show_pin_numbers; | |
|         WINDOW_SETTINGS window; | |
|     }; | |
| 
 | |
|     struct PANEL_NETLIST | |
|     { | |
|         std::vector<NETLIST_PLUGIN_SETTINGS> plugins; | |
|     }; | |
| 
 | |
|     struct PANEL_PLOT | |
|     { | |
|         bool     background_color; | |
|         bool     color; | |
|         wxString color_theme; | |
|         int      format; | |
|         bool     frame_reference; | |
|         int      hpgl_paper_size; | |
|         double   hpgl_pen_size; | |
|         int      hpgl_origin; | |
|         bool     open_file_after_plot; | |
|     }; | |
| 
 | |
|     struct PANEL_SYM_CHOOSER | |
|     { | |
|         int  sash_pos_h; | |
|         int  sash_pos_v; | |
|         int  width; | |
|         int  height; | |
|         int  sort_mode; | |
|         bool keep_symbol; | |
|         bool place_all_units; | |
|     }; | |
| 
 | |
|     struct SIMULATOR | |
|     { | |
|         int plot_panel_width; | |
|         int plot_panel_height; | |
|         int signal_panel_height; | |
|         int cursors_panel_height; | |
|         int             measurements_panel_height; | |
|         bool white_background; | |
|         WINDOW_SETTINGS window; | |
|     }; | |
| 
 | |
|     struct FIND_REPLACE_EXTRA | |
|     { | |
|         bool search_all_fields; | |
|         bool search_all_pins; | |
|         bool search_current_sheet_only; | |
|         bool search_selected_only; | |
| 
 | |
|         bool replace_references; | |
|     }; | |
| 
 | |
|     EESCHEMA_SETTINGS(); | |
| 
 | |
|     virtual ~EESCHEMA_SETTINGS() {} | |
| 
 | |
|     virtual bool MigrateFromLegacy( wxConfigBase* aLegacyConfig ) override; | |
| 
 | |
|     static std::vector<BOM_PLUGIN_SETTINGS> DefaultBomPlugins(); | |
| 
 | |
| 
 | |
| protected: | |
|     virtual std::string getLegacyFrameName() const override { return "SchematicFrame"; } | |
| 
 | |
| private: | |
|     bool migrateBomSettings(); | |
| 
 | |
|     nlohmann::json bomSettingsToJson() const; | |
| 
 | |
|     static std::vector<BOM_PLUGIN_SETTINGS> bomSettingsFromJson( const nlohmann::json& aObj ); | |
| 
 | |
|     nlohmann::json netlistSettingsToJson() const; | |
|     static std::vector<NETLIST_PLUGIN_SETTINGS> netlistSettingsFromJson( const nlohmann::json& aObj ); | |
| 
 | |
| public: | |
|     APPEARANCE m_Appearance; | |
| 
 | |
|     AUTOPLACE_FIELDS m_AutoplaceFields; | |
| 
 | |
|     AUI_PANELS m_AuiPanels; | |
| 
 | |
|     DRAWING m_Drawing; | |
| 
 | |
|     FIND_REPLACE_EXTRA m_FindReplaceExtra; | |
| 
 | |
|     INPUT m_Input; | |
| 
 | |
|     PAGE_SETTINGS m_PageSettings; | |
| 
 | |
|     PANEL_ANNOTATE m_AnnotatePanel; | |
| 
 | |
|     PANEL_BOM m_BomPanel; | |
| 
 | |
|     PANEL_FIELD_EDITOR m_FieldEditorPanel; | |
| 
 | |
|     PANEL_LIB_VIEW m_LibViewPanel; | |
| 
 | |
|     PANEL_NETLIST m_NetlistPanel; | |
| 
 | |
|     PANEL_PLOT m_PlotPanel; | |
| 
 | |
|     PANEL_SYM_CHOOSER m_SymChooserPanel; | |
| 
 | |
|     SELECTION m_Selection; | |
| 
 | |
|     SIMULATOR m_Simulator; | |
| 
 | |
|     bool m_RescueNeverShow; | |
| 
 | |
|     wxString m_lastSymbolLibDir; | |
| }; | |
| 
 | |
| 
 | |
| #endif
 |