KiCad PCB EDA Suite
pin_shape.cpp
Go to the documentation of this file.
1 /*
2  * This program source code file is part of KiCad, a free EDA CAD application.
3  *
4  * Copyright (C) 2004-2015 KiCad Developers, see change_log.txt for contributors.
5  *
6  * This program is free software; you can redistribute it and/or
7  * modify it under the terms of the GNU General Public License
8  * as published by the Free Software Foundation; either version 2
9  * of the License, or (at your option) any later version.
10  *
11  * This program is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14  * GNU General Public License for more details.
15  *
16  * You should have received a copy of the GNU General Public License
17  * along with this program; if not, you may find one here:
18  * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
19  * or you may search the http://www.gnu.org website for the version 2 license,
20  * or you may write to the Free Software Foundation, Inc.,
21  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
22  */
23 
29 #include "pin_shape.h"
30 
31 #include <macros.h>
32 
33 
35 {
36  wxString name;
38 };
39 
40 /*
41 * Conversion map between PLOT_DASH_TYPE values and style names displayed
42 */
43 // clang-format off
44 const std::map<GRAPHIC_PINSHAPE, struct pinShapeStruct> pinShapes = {
45  { GRAPHIC_PINSHAPE::LINE, { _( "Line" ), pinshape_normal_xpm } },
46  { GRAPHIC_PINSHAPE::INVERTED, { _( "Inverted" ), pinshape_invert_xpm } },
48  { GRAPHIC_PINSHAPE::INVERTED_CLOCK, { _( "Inverted clock" ), pinshape_clock_invert_xpm } },
52  { GRAPHIC_PINSHAPE::FALLING_EDGE_CLOCK, { _( "Falling edge clock" ), pinshape_clock_fall_xpm } },
53  { GRAPHIC_PINSHAPE::NONLOGIC, { _( "NonLogic" ), pinshape_nonlogic_xpm } },
54 };
55 // clang-format on
56 
57 
58 wxString GetText( GRAPHIC_PINSHAPE aShape )
59 {
60  auto findIt = pinShapes.find( aShape );
61 
62  wxCHECK_MSG( findIt != pinShapes.end(), wxT( "?" ), "Could not find pinshape in lookup map" );
63 
64  return findIt->second.name;
65 }
66 
67 
69 {
70  auto findIt = pinShapes.find( aShape );
71 
72  wxCHECK_MSG( findIt != pinShapes.end(), nullptr, "Could not find pinshape in lookup map" );
73 
74  return findIt->second.bitmap;
75 }
const BITMAP_OPAQUE pinshape_active_low_input_xpm[1]
PNG memory record (file in memory).
Definition: bitmap_def.h:29
const BITMAP_OPAQUE pinshape_normal_xpm[1]
const BITMAP_OPAQUE pinshape_active_low_output_xpm[1]
const BITMAP_OPAQUE * bitmap
Definition: pin_shape.cpp:37
BITMAP_DEF GetBitmap(GRAPHIC_PINSHAPE aShape)
Definition: pin_shape.cpp:68
const BITMAP_OPAQUE pinshape_clock_invert_xpm[1]
Pin shape handling.
wxString name
Definition: pin_shape.cpp:36
const BITMAP_OPAQUE pinshape_clock_fall_xpm[1]
This file contains miscellaneous commonly used macros and functions.
GRAPHIC_PINSHAPE
Definition: pin_shape.h:35
const BITMAP_OPAQUE pinshape_invert_xpm[1]
wxString GetText(GRAPHIC_PINSHAPE aShape)
Definition: pin_shape.cpp:58
const BITMAP_OPAQUE pinshape_clock_normal_xpm[1]
const std::map< GRAPHIC_PINSHAPE, struct pinShapeStruct > pinShapes
Definition: pin_shape.cpp:44
const BITMAP_OPAQUE pinshape_clock_active_low_xpm[1]
const BITMAP_OPAQUE pinshape_nonlogic_xpm[1]
#define _(s)
Definition: 3d_actions.cpp:33