kicad/include
Seth Hillbrand f3d65b5156 Revise method of selecting footprints in contrast
When working in high contrast mode, we want to be able to select a
footprint with only elements in, e.g. silk and fab layers.

The previous design for footprint IsOnLayer had one behavior of every
other element and a different behavior for footprints.  This leads to
multiple bugs as new features use the overloaded IsOnLayer expecting it
to report if the element exists on a layer or not.

For footprints, we need a different routine to determine whether or not
to select the footprint when clicking on it.  IsOnLayer will report if
the footprint has any elements on a specific layer but we don't want to
use the bbox for a hittest because large footprints with through hole
pads will exist on every layer and have an enormous bbox.  Instead, we
filter footprints based on the hittest of each element.  This behaves in
a more logical fashion, allowing you to select a footprint by clicking
on a visible element of that footprint.

Fixes https://gitlab.com/kicad/code/kicad/-/issues/15284
2023-08-01 10:43:13 -07:00
..
bitmaps Grid Overrides: support grids-per-type that override the current grid. 2023-07-25 10:17:57 -04:00
cli Fix commit 0a881e09, not working on wxWidgets 3.1.5/msys2 2022-12-08 15:39:10 +01:00
core QA: PCB Fields bug fixes 2023-06-20 18:34:52 +00:00
database Database libraries performance improvements 2023-06-22 18:49:37 -04:00
dialogs Grid Overrides: support grids-per-type that override the current grid. 2023-07-25 10:17:57 -04:00
drawing_sheet Move drawing sheet datastructures to EDA_IU_SCALE. 2023-06-12 22:34:25 +01:00
font Fix more C5266 warnings 2023-05-18 22:08:50 -04:00
gal Get rid of VECTOR2U. 2023-06-28 20:48:07 +00:00
kicad_curl Init curl in InitPgm for thread safety 2023-04-15 09:18:54 -04:00
libeval Properties: update evaluator locale when creating editors 2022-12-06 17:56:33 -05:00
libeval_compiler Bug fixes for layer expression processing. 2022-09-16 14:14:43 +01:00
plotters PDF plotting: support bitmaps with transparency. 2023-07-07 23:29:46 +05:00
plugins Get rid of anonymous struct typedefs 2021-07-01 18:28:41 -04:00
preview_items Unify go-back-one-step processing for drawing tools (and router). 2023-06-19 17:14:32 +01:00
project Move some MRU paths from app to project. 2023-07-12 17:30:42 +01:00
properties Properties: rework color editor 2023-07-16 17:37:36 -04:00
settings Grid Overrides: support grids-per-type that override the current grid. 2023-07-25 10:17:57 -04:00
tool Grid Overrides: support grids-per-type that override the current grid. 2023-07-25 10:17:57 -04:00
view Fix a few doxygen errors (no actual code change) 2023-04-19 16:20:24 +02:00
widgets Implement y axis locking for secondary y axes. 2023-07-20 17:21:19 +01:00
advanced_config.h Add a "hyperzoom" mode for debugging "up close". 2023-06-20 14:19:21 +01:00
array_axis.h Replace boost::optional with std::optional 2022-08-25 15:50:47 -07:00
array_options.h Move EDA_ANGLE to KiMath lib 2022-01-14 17:12:24 -08:00
asset_archive.h Get rid of anonymous struct typedefs 2021-07-01 18:28:41 -04:00
base64.h Plot SVG embedded 2019-12-08 08:57:33 -08:00
base_screen.h Yeet the last of wxSize/wxPoint to stop leaking gdicmn everywhere 2023-02-18 22:57:18 -05:00
base_units.h Readability improvements. 2022-09-19 11:18:20 +01:00
bin_mod.h Include optimization: move some things from common.h to point-of-use 2021-03-20 12:09:18 -04:00
bitmap_base.h Put background color behind transparent bitmaps in eeschema printing. 2023-07-03 02:15:05 +03:00
bitmap_store.h Add support mode for dark mode to SCINTILLA_TRICKS. 2021-09-14 00:18:50 +01:00
bitmaps.h We don't keep a CHANGELOG.TXT 2021-10-05 19:46:53 -07:00
board_design_settings.h Split StyleFootprints into separate bools for fields vs text & graphics. 2023-07-10 17:15:57 +01:00
board_item.h Revise method of selecting footprints in contrast 2023-08-01 10:43:13 -07:00
board_printout.h More EDA_RECE yeetage. 2022-08-31 17:19:50 +01:00
build_version.h Avoid rebuilding with each commit 2023-01-04 11:32:15 -08:00
callback_gal.h ADDED: knockout pcb and fp text. 2022-03-08 13:22:20 +00:00
class_draw_panel_gal.h Improve GAL panel refresh logic. 2023-07-03 02:15:05 +03:00
collector.h Remove a bunch of blind (and a few redundant) static_casts. 2023-07-13 14:14:45 +01:00
commit.h Implement undo/redo for footprint children. 2023-07-15 17:37:31 +01:00
common.h Fields Table: convert special strings like Quantity to named variables 2023-08-01 10:55:32 -04:00
config_map.h
config_params.h Header clean up round 1. 2020-12-18 09:04:26 -05:00
confirm.h Be smarter about releasing lockfiles 2023-07-21 15:40:19 -07:00
dialog_shim.h First <ESC> after an edit in a textEdit cancels the edit. 2023-04-10 15:13:43 +01:00
dsnlexer.h Enable warnings on msvc 2023-04-11 00:17:50 +00:00
eda_base_frame.h Make sure Help menu is at end of menubar. 2023-06-26 14:11:13 +01:00
eda_dde.h We don't keep a CHANGELOG.TXT 2021-10-05 19:46:53 -07:00
eda_doc.h Fix eda_doc not looking for schematic locally 2022-05-10 21:28:48 -04:00
eda_draw_frame.h Grid Overrides: support grids-per-type that override the current grid. 2023-07-25 10:17:57 -04:00
eda_item.h Swap non-temp and non-edit flags for SCH_ITEMs. 2023-07-08 18:37:47 +01:00
eda_item_flags.h More undo cleanup. 2023-07-16 14:43:29 +01:00
eda_list_dialog.h Size columns after we've restored saved size of dialog. 2023-01-06 14:33:44 +00:00
eda_pattern_match.h Require regular expressions to be explicit. 2023-06-16 15:37:58 +01:00
eda_search_data.h Allow EDA_COMBINED_MATCHER use in KiCad find architecture. 2023-06-10 14:50:06 +01:00
eda_shape.h Replace SHAPE_T::RECT by SHAPE_T::RECTANGLE: RECT creates a collision name 2023-07-25 09:11:55 +02:00
eda_text.h Move drawing sheet datastructures to EDA_IU_SCALE. 2023-06-12 22:34:25 +01:00
eda_tools.h Fix shadowed definition of EAGLE constant 2022-09-24 01:37:57 +01:00
eda_units.h When importing legacy PCB dimension: Use automatic dimension when Unit couldn't be determined 2023-02-28 11:59:47 +00:00
enum_vector.h Make comparison operators const. 2023-06-21 08:49:26 +00:00
env_paths.h Normalize drawing sheet path to env vars & prj, not just prj. 2021-10-02 23:39:45 +01:00
env_vars.h Replace boost::optional with std::optional 2022-08-25 15:50:47 -07:00
eseries.h Move E-series resistor selector table out of resistor value 2023-06-26 23:21:40 +00:00
executable_names.h
file_history.h Class name <-> file name sync. 2022-12-29 18:05:57 +00:00
filename_resolver.h Update KICAD6->KICAD7 2023-01-23 22:21:12 +00:00
filter_reader.h Cleanup wx includes in the filter reader 2021-06-04 01:26:58 +01:00
fmt.h database_connection.cpp: Fix compil issues on msys2. these issues are 2022-08-26 18:15:57 +02:00
footprint_editor_settings.h Prefer MRU path to LastImportExportPath for importing footprints. 2023-07-09 22:28:26 +01:00
footprint_filter.h Pass wxString objects by reference instead of on the stack. 2021-07-27 08:41:27 -04:00
footprint_info.h Added a sort-order dropdown to lib-tree filters. 2023-05-01 21:26:43 +01:00
fp_lib_table.h Fp editor: do not change item UUIDs when loading a footprint from library. 2021-03-30 12:58:22 +02:00
frame_type.h Move gerbview colors to preferences dialog. 2022-09-10 16:11:24 +01:00
gbr_metadata.h Cleanup. No (intentional) functional changes. 2023-06-06 12:30:35 +01:00
gbr_netlist_metadata.h More wxT-ification. 2022-02-09 17:04:32 +00:00
gestfich.h Remove printing files from Project Manager 2021-11-12 20:18:32 +00:00
gl_context_mgr.h Fix broken Doxygen comment specifiers. 2021-01-25 07:42:36 -05:00
gl_utils.h fix a #pragma syntax on mingw/gcc 2023-02-08 20:29:04 +01:00
gr_basic.h RIP EDA_RECT. 2022-08-31 23:57:24 +01:00
gr_text.h Give up on trying to calculate text bounding boxes. 2023-05-26 18:44:33 +01:00
grid_tricks.h Respect readOnly cells in GRID_TRICKS. 2023-02-25 11:02:12 +00:00
hash_eda.h Utilize our combine_hash routine for multiple hash 2022-08-26 08:45:13 -07:00
hashtables.h RIP EDA_RECT. 2022-08-31 23:57:24 +01:00
hotkey_store.h Minor Coverity and compil warnings fixes. 2023-07-17 16:19:22 +02:00
hotkeys_basic.h Hotkeys: add support for alternate hotkeys 2023-07-13 10:11:46 -04:00
html_window.h Substitute all wxHtmlWindow with HTML_WINDOW 2021-10-12 07:07:15 +00:00
i18n_utility.h
id.h Try a slightly different tack for cancelling net highlighting. 2022-07-19 10:31:49 +01:00
import_export.h
inspectable.h Properties: move to custom editor for distances; refactoring 2022-11-06 11:40:45 -05:00
ki_exception.h Fix source comment/doc typos (follow-up) 2021-07-13 10:48:17 +00:00
kiface_base.h PCM: auto reload global libs after dialog is run 2023-02-17 17:24:32 +00:00
kiface_ids.h All the preferences, all the time. 2021-12-24 13:08:44 +00:00
kiid.h Sheet instance handling improvements. 2022-12-26 08:30:03 -05:00
kiway.h Clear the playerFrame lookup cache when closing frames. 2023-06-11 20:34:24 +01:00
kiway_express.h We don't keep a CHANGELOG.TXT 2021-10-05 19:46:53 -07:00
kiway_holder.h Fix a few doxygen errors (no actual code change) 2023-04-19 16:20:24 +02:00
kiway_mgr.h We don't keep a CHANGELOG.TXT 2021-10-05 19:46:53 -07:00
kiway_player.h Separate BITMAP2CMP_PANEL from BITMAP2CMP_FRAME. 2023-06-15 17:39:10 +01:00
launch_ext.h Fix opening files with spaces on Linux 2021-11-07 14:31:14 +00:00
layer_ids.h Eechema: Do Not Place markers: add a specific setting for their color. 2023-07-16 20:46:30 +02:00
lib_id.h Support sub-libraries in symbol library browser 2023-01-22 19:25:15 -05:00
lib_table_base.h Increased mutex safety. 2023-06-05 11:01:10 +01:00
lib_table_grid.h Refactor: Move DIALOG_PLUGIN_OPTIONS to common and use enum for event ID 2023-05-28 23:56:41 +02:00
lib_table_grid_tricks.h Refactor: Move DIALOG_PLUGIN_OPTIONS to common and use enum for event ID 2023-05-28 23:56:41 +02:00
lib_tree_item.h Added a sort-order dropdown to lib-tree filters. 2023-05-01 21:26:43 +01:00
lib_tree_model.h Added a sort-order dropdown to lib-tree filters. 2023-05-01 21:26:43 +01:00
lib_tree_model_adapter.h Remove dead code, and some formatting cleanup. 2023-07-16 14:43:29 +01:00
locale_io.h Quiet gcc and clang warnings 2022-06-22 08:55:44 -07:00
lockfile.h Be smarter about releasing lockfiles 2023-07-21 15:40:19 -07:00
logging.h Header clean up round 3. 2020-12-19 18:29:10 -05:00
macros.h string_utils: Add From_UTF8( const char* cstring ) and From_UTF8( const std::string aString ), 2023-07-16 08:21:43 +02:00
macros_swig.h We don't keep a CHANGELOG.TXT 2021-10-05 19:46:53 -07:00
mail_type.h ADDED footprint associations dialog. 2023-07-11 14:52:05 +01:00
marker_base.h More EDA_RECE yeetage. 2022-08-31 17:19:50 +01:00
markup_parser.h Markup fixes. 2023-04-17 17:56:54 +01:00
menus_helpers.h Remove transitive inclusion of bitmaps.h 2021-03-07 16:08:57 -05:00
multivector.h Make multivector.h header order independent. 2023-03-23 13:26:32 -04:00
netclass.h Fix Doxygen directives in numerous headers 2023-03-24 13:02:13 +00:00
newstroke_font.h
observable.h Header clean up round 3. 2020-12-19 18:29:10 -05:00
origin_transforms.h Header clean up round 3. 2020-12-19 18:29:10 -05:00
origin_viewitem.h Yeet the last of wxSize/wxPoint to stop leaking gdicmn everywhere 2023-02-18 22:57:18 -05:00
outline_mode.h python wrap: fix undefined FILLED/SKETCH constants in pcbnew.py 2020-10-21 13:23:06 +02:00
pad_shapes.h Replace PAD_SHAPE::RECT by PAD_SHAPE::RECTANGLE to avoid a collision NAME with a windows header on MSYS2, creating many compil warnings. No actual code change. 2023-06-02 12:18:24 +02:00
page_info.h Yeet the last of wxSize/wxPoint to stop leaking gdicmn everywhere 2023-02-18 22:57:18 -05:00
painter.h Rename layer ids file. 2021-07-29 16:03:25 +01:00
panel_hotkeys_editor.h Expunge update UI event handler from paged dialog object. 2021-12-27 18:40:12 -05:00
panel_text_variables.h Variable substitution framework. 2020-03-30 14:15:59 +01:00
paths.h Simplify locale data path setting... 2022-02-21 13:08:29 -05:00
pcb_base_frame.h ADDED: Change watcher for libraries 2023-05-31 13:46:00 -07:00
pcb_display_options.h PCB: Add bitmap layer per board layer 2022-07-14 11:23:23 +00:00
pcb_group.h Revise method of selecting footprints in contrast 2023-08-01 10:43:13 -07:00
pcb_screen.h Yeet the last of wxSize/wxPoint to stop leaking gdicmn everywhere 2023-02-18 22:57:18 -05:00
pgm_base.h Be smarter about releasing lockfiles 2023-07-21 15:40:19 -07:00
policy_keys.h Add policy to alter curl revoke settings on windows 2023-07-13 19:01:04 -04:00
printout.h Header clean up round 4. 2020-12-21 10:18:10 -05:00
profile.h Add legacy CTOR for PROF_COUNTER 2021-12-15 12:52:08 -08:00
progress_reporter.h Decouple PROGRESS_REPORTER interface from implementations. 2021-08-14 21:05:49 +01:00
project.h Cleanup 3D caches before d'tors run. 2022-12-05 22:39:09 +00:00
ptree.h Header clean up round 4. 2020-12-21 10:18:10 -05:00
rc_item.h Eeschema: ERC checks handle connections between a common sub-circuit 2023-01-24 14:11:01 +00:00
refdes_utils.h We don't keep a CHANGELOG.TXT 2021-10-05 19:46:53 -07:00
render_settings.h Reduce compiler warnings. 2022-12-13 00:47:19 +00:00
reporter.h Use external REPORTER for EESCHEMA_JOBS_HANDLER / PCB_JOBS_HANDLER 2023-06-10 23:35:32 +02:00
richio.h More robust file reading for simulator files. 2023-04-24 13:52:52 +01:00
scintilla_tricks.h Push much of text var autocomplete down into SCINTILLA_TRICKS. 2023-05-25 10:24:50 +01:00
scoped_set_reset.h Header clean up round 4. 2020-12-21 10:18:10 -05:00
search_stack.h Fix broken search stack behavior. 2021-11-13 07:52:25 -05:00
status_popup.h Work around focus issues for status popups. 2022-09-04 21:08:01 +01:00
streamwrapper.h Header clean up round 4. 2020-12-21 10:18:10 -05:00
string_utf8_map.h Rename PROPERTIES to STRING_UTF8_MAP for clarity 2022-11-06 11:51:52 -05:00
string_utils.h string_utils: Add From_UTF8( const char* cstring ) and From_UTF8( const std::string aString ), 2023-07-16 08:21:43 +02:00
stroke_params.h Push UNITS_PROVIDER down into a low-level mixin. 2022-09-19 17:10:59 +01:00
sync_queue.h Header clean up round 4. 2020-12-21 10:18:10 -05:00
systemdirsappend.h Fix paths for Copy default global library table. 2023-01-27 09:24:52 +03:00
template_fieldnames.h Fields: Description now mandatory 2023-06-20 18:34:52 +00:00
textentry_tricks.h Header clean up round 4. 2020-12-21 10:18:10 -05:00
thread_pool.h ADDED: Threadpool 2022-06-24 22:59:24 +00:00
title_block.h Fix issue with predefined variable texts ${COMMENT0} to ${COMMENT9} 2021-02-21 18:29:14 +01:00
trace_helpers.h Schematic import bug fix. 2022-12-15 09:58:39 -05:00
transform.h TRANSFORM doesn't need knowledge of wx 2023-03-16 21:07:06 +01:00
undo_redo_container.h Add action info to Undo/Redo menus. 2023-06-07 14:37:34 +01:00
units_provider.h Fix a few more doxygen errors (no actual code change) 2023-04-19 20:24:42 +02:00
utf8.h Start expunging NULL. 2021-07-15 15:44:45 -04:00
validators.h Validators: drop unused is m_isLibEditor 2023-06-20 18:34:52 +00:00
wildcards_and_files_ext.h Don't copy lock files during project Save As. 2023-07-16 15:40:17 +01:00
wx_filename.h Implement output targeting of symlib/fplib upgrade per request 2022-12-06 21:20:27 -05:00
wxstream_helper.h Use heap instead of stack for CopyStreamData 2021-11-10 22:05:44 -05:00
xnode.h Header clean up round 4. 2020-12-21 10:18:10 -05:00
zoom_defines.h Add a "hyperzoom" mode for debugging "up close". 2023-06-20 14:19:21 +01:00