From a1ff326181fb79debc3231f449666275b95cd168 Mon Sep 17 00:00:00 2001 From: jean-pierre charras Date: Sat, 25 Feb 2012 20:55:40 +0100 Subject: [PATCH] Pcbnew: better icon for zone unfill. Minor code cleaning in 3D viewer --- 3d-viewer/3d_canvas.cpp | 48 +-- 3d-viewer/3d_draw.cpp | 4 +- 3d-viewer/3d_frame.cpp | 11 +- 3d-viewer/3d_toolbar.cpp | 2 +- 3d-viewer/3d_viewer.h | 42 +- bitmaps_png/CMakeLists.txt | 1 + bitmaps_png/cpp_26/zone_unfill.cpp | 112 +++++ bitmaps_png/sources/zone_unfill.svg | 623 ++++++++++++++++++++++++++++ include/bitmaps.h | 1 + pcbnew/onrightclick.cpp | 4 +- 10 files changed, 785 insertions(+), 63 deletions(-) create mode 100644 bitmaps_png/cpp_26/zone_unfill.cpp create mode 100644 bitmaps_png/sources/zone_unfill.svg diff --git a/3d-viewer/3d_canvas.cpp b/3d-viewer/3d_canvas.cpp index 627359a0ec..090550566f 100644 --- a/3d-viewer/3d_canvas.cpp +++ b/3d-viewer/3d_canvas.cpp @@ -71,24 +71,14 @@ END_EVENT_TABLE() EDA_3D_CANVAS::EDA_3D_CANVAS( EDA_3D_FRAME* parent, int* attribList ) : -#if wxCHECK_VERSION( 2, 7, 0 ) wxGLCanvas( parent, -1, attribList, wxDefaultPosition, wxDefaultSize, wxFULL_REPAINT_ON_RESIZE ) -#else - wxGLCanvas( parent, -1, wxDefaultPosition, wxDefaultSize, - wxFULL_REPAINT_ON_RESIZE ) -#endif { m_init = false; m_gllist = 0; - m_Parent = parent; m_ortho = false; - -#if wxCHECK_VERSION( 2, 7, 0 ) - // Explicitly create a new rendering context instance for this canvas. m_glRC = new wxGLContext( this ); -#endif DisplayStatus(); } @@ -98,10 +88,7 @@ EDA_3D_CANVAS::~EDA_3D_CANVAS() { ClearLists(); m_init = false; - -#if wxCHECK_VERSION( 2, 7, 0 ) delete m_glRC; -#endif } @@ -129,24 +116,24 @@ void EDA_3D_CANVAS::SetView3D( int keycode ) switch( keycode ) { case WXK_LEFT: - g_Draw3d_dx -= delta_move; + m_draw3dOffset.x -= delta_move; break; case WXK_RIGHT: - g_Draw3d_dx += delta_move; + m_draw3dOffset.x += delta_move; break; case WXK_UP: - g_Draw3d_dy += delta_move; + m_draw3dOffset.y += delta_move; break; case WXK_DOWN: - g_Draw3d_dy -= delta_move; + m_draw3dOffset.y -= delta_move; break; case WXK_HOME: g_Parm_3D_Visu.m_Zoom = 1.0; - g_Draw3d_dx = g_Draw3d_dy = 0; + m_draw3dOffset.x = m_draw3dOffset.y = 0; trackball( g_Parm_3D_Visu.m_Quat, 0.0, 0.0, 0.0, 0.0 ); break; @@ -171,7 +158,7 @@ void EDA_3D_CANVAS::SetView3D( int keycode ) case 'r': case 'R': - g_Draw3d_dx = g_Draw3d_dy = 0; + m_draw3dOffset.x = m_draw3dOffset.y = 0; for( ii = 0; ii < 4; ii++ ) g_Parm_3D_Visu.m_Rot[ii] = 0.0; @@ -313,9 +300,9 @@ void EDA_3D_CANVAS::OnMouseMove( wxMouseEvent& event ) /* Current zoom and an additional factor are taken into account * for the amount of panning. */ const double PAN_FACTOR = 8.0 * g_Parm_3D_Visu.m_Zoom; - g_Draw3d_dx -= PAN_FACTOR * + m_draw3dOffset.x -= PAN_FACTOR * ( g_Parm_3D_Visu.m_Beginx - event.GetX() ) / size.x; - g_Draw3d_dy -= PAN_FACTOR * + m_draw3dOffset.y -= PAN_FACTOR * (event.GetY() - g_Parm_3D_Visu.m_Beginy) / size.y; } @@ -461,14 +448,14 @@ void EDA_3D_CANVAS::DisplayStatus() { wxString msg; - msg.Printf( wxT( "dx %3.2f" ), g_Draw3d_dx ); - m_Parent->SetStatusText( msg, 1 ); + msg.Printf( wxT( "dx %3.2f" ), m_draw3dOffset.x ); + Parent()->SetStatusText( msg, 1 ); - msg.Printf( wxT( "dy %3.2f" ), g_Draw3d_dy ); - m_Parent->SetStatusText( msg, 2 ); + msg.Printf( wxT( "dy %3.2f" ), m_draw3dOffset.y ); + Parent()->SetStatusText( msg, 2 ); msg.Printf( wxT( "View: %3.1f" ), 45 * g_Parm_3D_Visu.m_Zoom ); - m_Parent->SetStatusText( msg, 3 ); + Parent()->SetStatusText( msg, 3 ); } @@ -496,7 +483,8 @@ void EDA_3D_CANVAS::InitGL() { m_init = true; g_Parm_3D_Visu.m_Zoom = 1.0; - ZBottom = 1.0; ZTop = 10.0; + m_ZBottom = 1.0; + m_ZTop = 10.0; glDisable( GL_CULL_FACE ); // show back faces @@ -549,7 +537,7 @@ void EDA_3D_CANVAS::InitGL() // position viewer glMatrixMode( GL_MODELVIEW ); glLoadIdentity(); - glTranslatef( 0.0F, 0.0F, -( ZBottom + ZTop) / 2 ); + glTranslatef( 0.0F, 0.0F, -( m_ZBottom + m_ZTop) / 2 ); // clear color and depth buffers glClearColor( g_Parm_3D_Visu.m_BgColor.m_Red, @@ -595,7 +583,7 @@ void EDA_3D_CANVAS::SetLights() */ void EDA_3D_CANVAS::TakeScreenshot( wxCommandEvent& event ) { - wxFileName fn( m_Parent->m_Parent->GetScreen()->GetFileName() ); + wxFileName fn( Parent()->Parent()->GetScreen()->GetFileName() ); wxString FullFileName; wxString file_ext, mask; bool fmt_is_jpeg = false; @@ -607,7 +595,7 @@ void EDA_3D_CANVAS::TakeScreenshot( wxCommandEvent& event ) { file_ext = fmt_is_jpeg ? wxT( "jpg" ) : wxT( "png" ); mask = wxT( "*." ) + file_ext; - FullFileName = m_Parent->m_Parent->GetScreen()->GetFileName(); + FullFileName = Parent()->Parent()->GetScreen()->GetFileName(); fn.SetExt( file_ext ); FullFileName = EDA_FileSelector( _( "3D Image filename:" ), wxEmptyString, diff --git a/3d-viewer/3d_draw.cpp b/3d-viewer/3d_draw.cpp index 534c880976..074ad03e44 100644 --- a/3d-viewer/3d_draw.cpp +++ b/3d-viewer/3d_draw.cpp @@ -117,7 +117,7 @@ void EDA_3D_CANVAS::Redraw( bool finish ) GLfloat mat[4][4]; // Translate motion first, so rotations don't mess up the orientation... - glTranslatef( g_Draw3d_dx, g_Draw3d_dy, 0.0F ); + glTranslatef( m_draw3dOffset.x, m_draw3dOffset.y, 0.0F ); build_rotmatrix( mat, g_Parm_3D_Visu.m_Quat ); glMultMatrixf( &mat[0][0] ); @@ -145,7 +145,7 @@ void EDA_3D_CANVAS::Redraw( bool finish ) GLuint EDA_3D_CANVAS::CreateDrawGL_List() { - PCB_BASE_FRAME* pcbframe = m_Parent->m_Parent; + PCB_BASE_FRAME* pcbframe = Parent()->Parent(); BOARD* pcb = pcbframe->GetBoard(); TRACK* track; SEGZONE* segzone; diff --git a/3d-viewer/3d_frame.cpp b/3d-viewer/3d_frame.cpp index b4140358b9..44fc345b8d 100644 --- a/3d-viewer/3d_frame.cpp +++ b/3d-viewer/3d_frame.cpp @@ -16,10 +16,6 @@ #include Info_3D_Visu g_Parm_3D_Visu; -double g_Draw3d_dx; -double g_Draw3d_dy; -double ZBottom; -double ZTop; double DataScale3D; // 3D conversion units. @@ -40,7 +36,6 @@ EDA_3D_FRAME::EDA_3D_FRAME( PCB_BASE_FRAME* parent, const wxString& title, long { m_FrameName = wxT( "Frame3D" ); m_Canvas = NULL; - m_Parent = parent; m_HToolBar = NULL; m_VToolBar = NULL; m_InternalUnits = 10000; // Internal units = 1/10000 inch @@ -101,9 +96,9 @@ void EDA_3D_FRAME::OnCloseWindow( wxCloseEvent& Event ) { SaveSettings(); - if( m_Parent ) + if( Parent() ) { - m_Parent->m_Draw3DFrame = NULL; + Parent()->m_Draw3DFrame = NULL; } Destroy(); @@ -177,7 +172,7 @@ void EDA_3D_FRAME::Process_Zoom( wxCommandEvent& event ) g_Parm_3D_Visu.m_Rot[ii] = 0.0; g_Parm_3D_Visu.m_Zoom = 1.0; - g_Draw3d_dx = g_Draw3d_dy = 0; + m_Canvas->SetOffset(0.0, 0.0); trackball( g_Parm_3D_Visu.m_Quat, 0.0, 0.0, 0.0, 0.0 ); break; diff --git a/3d-viewer/3d_toolbar.cpp b/3d-viewer/3d_toolbar.cpp index 752c1015d1..c5806e3e6f 100644 --- a/3d-viewer/3d_toolbar.cpp +++ b/3d-viewer/3d_toolbar.cpp @@ -132,7 +132,7 @@ void EDA_3D_FRAME::ReCreateMenuBar() bool full_options = true; // If called from the display frame of CvPcb, only some options are relevant - if( m_Parent->GetName() == wxT( "CmpFrame" ) ) + if( Parent()->GetName() == wxT( "CmpFrame" ) ) // Called from CvPcb: do not display all options full_options = false; diff --git a/3d-viewer/3d_viewer.h b/3d-viewer/3d_viewer.h index 4744019de9..703fc70382 100644 --- a/3d-viewer/3d_viewer.h +++ b/3d-viewer/3d_viewer.h @@ -167,26 +167,27 @@ public: Info_3D_Visu(); class EDA_3D_CANVAS : public wxGLCanvas { -public: - EDA_3D_FRAME* m_Parent; - private: - bool m_init; - GLuint m_gllist; + bool m_init; + GLuint m_gllist; /// Tracks whether to use Orthographic or Perspective projection - //TODO: Does this belong here, or in EDA_3D_FRAME ??? - bool m_ortho; + // TODO: Does this belong here, or in EDA_3D_FRAME ??? + bool m_ortho; + wxGLContext* m_glRC; + wxRealPoint m_draw3dOffset; // offset to draw the 3 mesh. + double m_ZBottom; // position of the back layer + double m_ZTop; // position of the front layer -#if wxCHECK_VERSION( 2, 7, 0 ) - wxGLContext* m_glRC; -#endif public: EDA_3D_CANVAS( EDA_3D_FRAME* parent, int* attribList = 0 ); ~EDA_3D_CANVAS(); + EDA_3D_FRAME* Parent() { return (EDA_3D_FRAME*)GetParent(); } + void ClearLists(); + // Event functions: void OnPaint( wxPaintEvent& event ); void OnEraseBackground( wxEraseEvent& event ); void OnChar( wxKeyEvent& event ); @@ -195,13 +196,13 @@ public: void OnRightClick( wxMouseEvent& event ); void OnPopUpMenu( wxCommandEvent& event ); void TakeScreenshot( wxCommandEvent& event ); + void OnEnterWindow( wxMouseEvent& event ); + + // Display functions + GLuint DisplayCubeforTest(); // Just a test function void SetView3D( int keycode ); void DisplayStatus(); void Redraw( bool finish = false ); - GLuint DisplayCubeforTest(); - - void OnEnterWindow( wxMouseEvent& event ); - void Render(); /** @@ -211,6 +212,11 @@ public: GLuint CreateDrawGL_List(); void InitGL(); void SetLights(); + void SetOffset(double aPosX, double aPosY) + { + m_draw3dOffset.x = aPosX; + m_draw3dOffset.y = aPosY; + } void Draw3D_Track( TRACK* track ); /** @@ -263,10 +269,8 @@ public: class EDA_3D_FRAME : public wxFrame { -public: - PCB_BASE_FRAME* m_Parent; private: - wxString m_FrameName; // name used for writing and reading setup. It is "Frame3D" + wxString m_FrameName; // name used for writing and reading setup. It is "Frame3D" EDA_3D_CANVAS* m_Canvas; wxAuiToolBar* m_HToolBar; wxAuiToolBar* m_VToolBar; @@ -284,6 +288,7 @@ public: m_auimgr.UnInit(); }; + PCB_BASE_FRAME* Parent() { return (PCB_BASE_FRAME*)GetParent(); } void Exit3DFrame( wxCommandEvent& event ); void OnCloseWindow( wxCloseEvent& Event ); void ReCreateMenuBar(); @@ -331,9 +336,6 @@ void SetGLColor( int color ); void Set_Object_Data( std::vector< S3D_Vertex >& aVertices ); extern Info_3D_Visu g_Parm_3D_Visu; -extern double g_Draw3d_dx, g_Draw3d_dy; -extern double ZBottom, ZTop; extern double DataScale3D; // 3D scale units. -extern int gl_attrib[]; #endif /* __3D_VIEWER_H__ */ diff --git a/bitmaps_png/CMakeLists.txt b/bitmaps_png/CMakeLists.txt index 45bf77cb87..2a1b4b08b5 100644 --- a/bitmaps_png/CMakeLists.txt +++ b/bitmaps_png/CMakeLists.txt @@ -496,6 +496,7 @@ set( BMAPS_MID window_close zip_tool zip + zone_unfill zoom zoom_area zoom_fit_in_page diff --git a/bitmaps_png/cpp_26/zone_unfill.cpp b/bitmaps_png/cpp_26/zone_unfill.cpp new file mode 100644 index 0000000000..2eef46163e --- /dev/null +++ b/bitmaps_png/cpp_26/zone_unfill.cpp @@ -0,0 +1,112 @@ + +/* Do not modify this file, it was automatically generated by the + * PNG2cpp CMake script, using a *.png file as input. + */ + +#include + +static const unsigned char png[] = { + 0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, 0x0d, 0x49, 0x48, 0x44, 0x52, + 0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x1a, 0x08, 0x06, 0x00, 0x00, 0x00, 0xa9, 0x4a, 0x4c, + 0xce, 0x00, 0x00, 0x05, 0xf1, 0x49, 0x44, 0x41, 0x54, 0x48, 0xc7, 0x9d, 0x96, 0x0b, 0x50, 0x53, + 0x47, 0x14, 0x86, 0xb7, 0x0d, 0x06, 0x45, 0x2d, 0x2d, 0xb5, 0x2a, 0x25, 0xe2, 0x03, 0xb1, 0x38, + 0x02, 0x09, 0xa2, 0x96, 0x8a, 0xa0, 0x9d, 0x8a, 0x22, 0x3a, 0x8a, 0xb5, 0x8a, 0x4a, 0xa8, 0x5a, + 0xed, 0x4c, 0xd5, 0xa1, 0xea, 0x08, 0x64, 0x1c, 0x64, 0x44, 0x85, 0xe9, 0x54, 0x11, 0x14, 0x54, + 0x1e, 0x3e, 0xa6, 0xc2, 0x40, 0x44, 0x01, 0x45, 0x90, 0x87, 0x80, 0x21, 0x08, 0x44, 0xde, 0x20, + 0x02, 0x06, 0x42, 0x0b, 0x08, 0x21, 0x40, 0x82, 0x20, 0xbe, 0x50, 0xe0, 0xef, 0xde, 0x54, 0xac, + 0x25, 0x11, 0xb1, 0x3b, 0xf3, 0xcd, 0xdc, 0xbd, 0x7b, 0xee, 0xfd, 0xf7, 0x9c, 0xdd, 0x3d, 0x67, + 0x09, 0x00, 0x32, 0x52, 0x4a, 0x4a, 0x4a, 0xf4, 0x32, 0x32, 0x32, 0x3c, 0x93, 0x92, 0x92, 0x84, + 0xf1, 0xf1, 0xf1, 0x77, 0xc3, 0xc2, 0xc2, 0x4a, 0xc2, 0xc3, 0xc3, 0x45, 0x01, 0x01, 0x01, 0xcb, + 0xdf, 0xf7, 0xed, 0x88, 0x04, 0x2a, 0x2b, 0x2b, 0x8d, 0x8a, 0x8a, 0x8a, 0x2e, 0x95, 0x97, 0x97, + 0x37, 0x96, 0x96, 0x96, 0x22, 0x2f, 0x2f, 0x17, 0x42, 0xa1, 0x10, 0x21, 0x21, 0x21, 0x38, 0x7a, + 0xf4, 0x28, 0x83, 0x92, 0xf6, 0xd7, 0xff, 0x6f, 0x21, 0xa6, 0xc9, 0x64, 0xb2, 0x23, 0x4d, 0x4d, + 0x4d, 0x0a, 0x95, 0x4a, 0x85, 0x8e, 0x8e, 0x0e, 0xd0, 0x3e, 0x24, 0x12, 0x09, 0xa8, 0x57, 0x08, + 0x0e, 0x0e, 0x86, 0xbf, 0xbf, 0x3f, 0x04, 0x02, 0x01, 0x12, 0x13, 0x13, 0x4b, 0x19, 0xfb, 0x0f, + 0x16, 0x2a, 0x2e, 0x2e, 0x9e, 0xd4, 0xd8, 0xd8, 0x98, 0xa5, 0x52, 0x29, 0x5f, 0xd1, 0x86, 0x17, + 0x2f, 0x5e, 0x40, 0xa9, 0x54, 0x42, 0x2a, 0x95, 0x22, 0x3f, 0x3f, 0x1f, 0xc9, 0xc9, 0xc9, 0xa0, + 0x61, 0x83, 0x9f, 0x9f, 0x1f, 0xbc, 0xbd, 0xbd, 0x51, 0x58, 0x58, 0xf8, 0x8a, 0x0a, 0x73, 0x3f, + 0x48, 0x48, 0x2c, 0x16, 0x7f, 0x2a, 0x97, 0xb7, 0xdc, 0x63, 0xbc, 0x18, 0x14, 0xe9, 0xee, 0xee, + 0x46, 0x73, 0x73, 0x33, 0xaa, 0xaa, 0xaa, 0x68, 0xe8, 0xf2, 0x18, 0x0f, 0x70, 0xf1, 0xe2, 0x45, + 0x1c, 0x3e, 0x7c, 0x18, 0xb1, 0xb1, 0xb1, 0xa0, 0x93, 0x42, 0x45, 0x45, 0xc5, 0x35, 0xea, 0xd4, + 0x47, 0x23, 0x12, 0x4a, 0x4d, 0x4d, 0xd5, 0x95, 0xd6, 0x4a, 0x8b, 0x6b, 0x6a, 0x6a, 0xd4, 0xa1, + 0xea, 0xec, 0xec, 0x04, 0x23, 0xd8, 0xd2, 0xd2, 0x82, 0xba, 0xba, 0x3a, 0x94, 0x95, 0x95, 0x41, + 0x24, 0x12, 0x81, 0x6e, 0x06, 0x5c, 0xb8, 0x70, 0x01, 0xa1, 0xa1, 0xa1, 0x60, 0x6c, 0xe5, 0x72, + 0x39, 0x68, 0x88, 0x07, 0x62, 0x62, 0x62, 0x96, 0x8e, 0x48, 0x88, 0x2e, 0xf6, 0x89, 0xa4, 0x84, + 0x78, 0x88, 0xe8, 0x4f, 0xb2, 0x03, 0x03, 0x91, 0xe2, 0xe5, 0x85, 0xf8, 0x5d, 0xbb, 0x90, 0xe8, + 0xe3, 0x83, 0x9b, 0x41, 0x41, 0x48, 0x8d, 0x8c, 0x44, 0x7a, 0x7a, 0xba, 0xda, 0x8b, 0xa8, 0xa8, + 0x28, 0xd4, 0xd7, 0xd7, 0x43, 0xa1, 0x50, 0xa0, 0xbd, 0xbd, 0x1d, 0xad, 0x8d, 0x05, 0xa8, 0x2f, + 0x89, 0xb8, 0x47, 0xbd, 0x62, 0x0d, 0x2b, 0xc4, 0xb8, 0x9d, 0x2e, 0xf0, 0x6a, 0x8b, 0xd7, 0xd3, + 0x43, 0x14, 0x1d, 0x0a, 0xa5, 0x1c, 0xa7, 0xf8, 0x52, 0x3c, 0x28, 0x3b, 0x29, 0x6e, 0x94, 0x2d, + 0xe3, 0xc7, 0x23, 0xc8, 0xd5, 0x15, 0x0d, 0x0d, 0x0d, 0x6f, 0xbc, 0x66, 0xd6, 0xef, 0xb1, 0xec, + 0x2c, 0xda, 0x44, 0xb6, 0x74, 0x22, 0x29, 0xfc, 0xf7, 0x09, 0xe9, 0x44, 0x72, 0x38, 0xaf, 0x52, + 0xe9, 0xeb, 0x04, 0x4a, 0xa4, 0x36, 0xb1, 0x51, 0xa3, 0x70, 0xd2, 0xd9, 0x19, 0xed, 0xad, 0xad, + 0x78, 0xf2, 0xe4, 0x09, 0x7a, 0x7a, 0x7a, 0xd0, 0xd5, 0xd5, 0x85, 0xc7, 0xca, 0x1a, 0xf4, 0x75, + 0x8a, 0xd1, 0x53, 0xe6, 0x8a, 0x07, 0x39, 0x7e, 0xad, 0x16, 0x16, 0x16, 0x63, 0x87, 0x13, 0x22, + 0xa1, 0x93, 0x27, 0xab, 0x85, 0x86, 0x8a, 0x9d, 0xa4, 0x5e, 0x84, 0x7f, 0xbf, 0x16, 0xf5, 0x5e, + 0xbb, 0x50, 0x73, 0xe9, 0x9c, 0x7a, 0x83, 0xf4, 0xf7, 0xf7, 0xe3, 0xf9, 0xf3, 0xe7, 0xe8, 0x51, + 0xc9, 0xd0, 0xdf, 0x25, 0x01, 0xfa, 0x1e, 0xa3, 0xb5, 0x20, 0x08, 0xcd, 0x9e, 0x9b, 0x90, 0xe5, + 0xb3, 0x3f, 0x8b, 0x99, 0xf8, 0x3b, 0xd7, 0xe8, 0xb4, 0xa5, 0x65, 0x6a, 0x86, 0xbe, 0x3e, 0x6e, + 0xe8, 0xea, 0x22, 0x82, 0xcb, 0x45, 0xfc, 0xf6, 0xed, 0x10, 0x47, 0x44, 0xa0, 0x3c, 0x47, 0x8c, + 0x26, 0xaf, 0x9d, 0x78, 0xb4, 0xc1, 0x01, 0x5d, 0xfc, 0x55, 0x90, 0x45, 0x9e, 0xc7, 0xcb, 0x97, + 0x2f, 0xf1, 0x5c, 0x55, 0x84, 0x67, 0xb2, 0x63, 0xe8, 0x53, 0x65, 0xa2, 0xbd, 0xe6, 0x0e, 0x5a, + 0xf6, 0x6d, 0x55, 0xdb, 0x3c, 0x72, 0x5b, 0x85, 0xf4, 0x2d, 0xeb, 0x4e, 0x0d, 0x8a, 0x69, 0x08, + 0xed, 0x21, 0xc4, 0x25, 0x67, 0xd6, 0x2c, 0xa4, 0x1d, 0x3f, 0xae, 0x9e, 0x75, 0x6f, 0x6f, 0x2f, + 0x5a, 0xeb, 0x6a, 0xd1, 0xb4, 0xf7, 0x67, 0x28, 0x9d, 0x97, 0xbc, 0x41, 0xb5, 0x7e, 0x19, 0xaa, + 0x8e, 0xf1, 0x71, 0xef, 0xaa, 0x35, 0xba, 0x2b, 0x76, 0xa3, 0x25, 0xff, 0x04, 0x1e, 0xee, 0xde, + 0xfc, 0x1f, 0x1b, 0xa5, 0xcb, 0x72, 0x88, 0x36, 0x3b, 0x07, 0x30, 0x62, 0x1a, 0x42, 0x8e, 0x84, + 0xcc, 0xbf, 0x36, 0x7d, 0xfa, 0x23, 0x9a, 0x76, 0x9e, 0x31, 0xf1, 0x67, 0x28, 0xf0, 0xde, 0x0f, + 0x85, 0x93, 0x2d, 0xda, 0x86, 0xd0, 0xbe, 0x66, 0x09, 0x24, 0x9e, 0x36, 0x78, 0x10, 0xe7, 0x84, + 0x86, 0x1d, 0xce, 0x1a, 0xe3, 0x0c, 0x0d, 0xab, 0x97, 0xf4, 0x6e, 0xe7, 0xce, 0x59, 0xa6, 0x21, + 0x64, 0x4f, 0x88, 0x55, 0xac, 0x89, 0x49, 0x73, 0x66, 0x66, 0xe6, 0x45, 0x7a, 0x2e, 0xf0, 0xf4, + 0xe9, 0x53, 0x48, 0xee, 0xdc, 0x81, 0x78, 0x93, 0x33, 0x5a, 0x96, 0x2e, 0x80, 0x7c, 0x08, 0xad, + 0x8e, 0xb6, 0x68, 0xa4, 0xa1, 0x92, 0x6b, 0x19, 0x93, 0x39, 0xcc, 0x43, 0x20, 0xdf, 0xa9, 0x9e, + 0x7a, 0x34, 0x59, 0x43, 0xe8, 0x1b, 0x42, 0x2c, 0x12, 0xe6, 0xcc, 0x91, 0xbb, 0xbb, 0xbb, 0x1b, + 0xd3, 0x24, 0xda, 0xc9, 0x6c, 0x5f, 0x66, 0x2d, 0x8a, 0x0a, 0x0a, 0x20, 0xda, 0xe8, 0x8c, 0x87, + 0xf6, 0x73, 0xd1, 0x3c, 0x02, 0xea, 0x96, 0x58, 0x23, 0x7a, 0x9f, 0x2d, 0xf2, 0x63, 0xec, 0x07, + 0x4e, 0x9f, 0x3e, 0x6d, 0xa7, 0x21, 0x34, 0x97, 0x90, 0xd9, 0x09, 0x5c, 0x6e, 0x1b, 0xb3, 0x03, + 0x69, 0x9a, 0xf9, 0xbd, 0xb6, 0xb6, 0x56, 0x1d, 0xbe, 0x41, 0xb1, 0x5b, 0x1b, 0xd6, 0xa0, 0xc1, + 0xc6, 0x02, 0x8d, 0xc3, 0x50, 0x6d, 0xcb, 0xc5, 0x15, 0x9f, 0x8d, 0x90, 0x8a, 0xdc, 0xf1, 0x57, + 0xda, 0x42, 0xc4, 0x0a, 0xff, 0x88, 0xd3, 0x10, 0x32, 0x27, 0xc4, 0x24, 0x8e, 0xcb, 0x55, 0x31, + 0xcf, 0x0e, 0x0e, 0x0e, 0xfa, 0x34, 0x53, 0x3f, 0xa4, 0x4d, 0x2d, 0xc4, 0xe4, 0xbd, 0x92, 0xe2, + 0x62, 0xdc, 0x5e, 0xbb, 0x12, 0x7f, 0xce, 0x35, 0xd3, 0x4a, 0xad, 0xf5, 0x6c, 0x08, 0x0f, 0x38, + 0x41, 0x96, 0x77, 0x18, 0xed, 0xe5, 0x3e, 0xb8, 0x2f, 0x3a, 0x08, 0x9a, 0x96, 0x72, 0xb5, 0x09, + 0x4d, 0xb9, 0x6c, 0x6e, 0xfe, 0x68, 0xb0, 0x4f, 0xeb, 0xcc, 0x7e, 0x1a, 0x42, 0x75, 0x06, 0x18, + 0x18, 0x18, 0x40, 0xd3, 0x5d, 0x09, 0xa4, 0x4b, 0x17, 0x41, 0x66, 0x6e, 0xa2, 0x1d, 0x4b, 0x53, + 0x14, 0xef, 0x76, 0x44, 0x63, 0xbe, 0x07, 0xe4, 0x25, 0xbe, 0xc8, 0x48, 0x4f, 0xc2, 0xd9, 0xb3, + 0x67, 0xcf, 0x68, 0x08, 0x4d, 0x22, 0x64, 0x62, 0xf4, 0xcc, 0x99, 0x5d, 0x6f, 0x1d, 0x62, 0x36, + 0xad, 0xaa, 0x55, 0x4c, 0xd6, 0xae, 0x4e, 0x4b, 0x45, 0xf5, 0x62, 0x1b, 0x48, 0x4d, 0x8d, 0x87, + 0xc7, 0x6c, 0x3a, 0x0a, 0x77, 0x2c, 0x87, 0x38, 0x2b, 0x09, 0x71, 0x71, 0x71, 0xdd, 0xae, 0xae, + 0xae, 0x26, 0xda, 0x8a, 0xdd, 0xb8, 0x30, 0x23, 0x23, 0xc5, 0xdb, 0xef, 0x68, 0x25, 0x75, 0x4b, + 0x0e, 0x09, 0xc6, 0xbd, 0xf9, 0x3c, 0x54, 0x4f, 0x35, 0x1c, 0x19, 0x33, 0x38, 0xb8, 0xcd, 0xdf, + 0xd8, 0xef, 0x7d, 0xe0, 0xc0, 0xaf, 0xe4, 0x5d, 0x15, 0x71, 0x35, 0x9b, 0x6d, 0xf9, 0x96, 0xf0, + 0xc7, 0x61, 0x3c, 0xcb, 0x4d, 0x65, 0xe6, 0x66, 0xfd, 0x95, 0x86, 0x13, 0x30, 0x94, 0x5c, 0x13, + 0x0e, 0x12, 0x16, 0x4e, 0x40, 0x85, 0x96, 0xb1, 0xfb, 0x9c, 0x49, 0x10, 0x7d, 0x6d, 0x2d, 0x5e, + 0x60, 0x60, 0xf0, 0xc9, 0x7b, 0xef, 0x0b, 0xb4, 0x7d, 0x72, 0x62, 0xe2, 0x84, 0xcb, 0x65, 0x9f, + 0xeb, 0xa3, 0x62, 0x08, 0x39, 0xd3, 0x38, 0x88, 0x0e, 0x08, 0x40, 0x6e, 0xf4, 0x52, 0x08, 0x17, + 0x4f, 0x81, 0x36, 0x9b, 0x4c, 0x03, 0xfd, 0x8e, 0x35, 0x86, 0x5f, 0xfc, 0x7b, 0x60, 0xbf, 0x1d, + 0x3d, 0x7a, 0x9a, 0x8f, 0xa9, 0xa9, 0x57, 0xb8, 0x83, 0xc3, 0xa9, 0x2b, 0x6e, 0x6e, 0xb1, 0x69, + 0x02, 0xc1, 0xcd, 0xeb, 0x7b, 0xf6, 0x44, 0x9d, 0x59, 0xb9, 0xf2, 0x37, 0x3b, 0x0e, 0x67, 0xbd, + 0xef, 0x18, 0x76, 0x42, 0xf1, 0x78, 0x3d, 0x94, 0xbe, 0x26, 0xcb, 0x70, 0x12, 0xce, 0xf9, 0xfb, + 0x81, 0x5e, 0x5a, 0x50, 0x59, 0x26, 0xa6, 0x6b, 0x71, 0x15, 0x61, 0x76, 0x8b, 0xfa, 0xde, 0xb6, + 0x49, 0x1d, 0x37, 0xa6, 0x6d, 0x1e, 0x8b, 0xc5, 0x67, 0x96, 0x83, 0xfc, 0x42, 0x88, 0x6d, 0x20, + 0x21, 0x29, 0xb9, 0xeb, 0xd6, 0x3d, 0x96, 0xd1, 0xb2, 0x5c, 0x7f, 0xe4, 0x08, 0x64, 0xbe, 0xbe, + 0xa8, 0xa3, 0x85, 0xae, 0xee, 0xe0, 0x41, 0x48, 0x3d, 0x3c, 0x70, 0x8b, 0xc7, 0xeb, 0xf1, 0x24, + 0x44, 0x22, 0xd0, 0x1b, 0x93, 0x77, 0x57, 0x97, 0x8d, 0x9b, 0x06, 0x9f, 0xc1, 0x6f, 0xef, 0x5e, + 0xd0, 0x6a, 0x8c, 0xec, 0xec, 0x6c, 0xe6, 0xa2, 0xa2, 0x38, 0x7f, 0x3e, 0x22, 0x9a, 0x96, 0x06, + 0x97, 0xa3, 0x3a, 0x3a, 0x37, 0x0a, 0xa8, 0x4d, 0x92, 0x2e, 0x5b, 0x61, 0xc5, 0x22, 0x2e, 0x8c, + 0x88, 0x3a, 0x32, 0x41, 0x84, 0x24, 0xa7, 0xd3, 0xa5, 0x1a, 0x24, 0xc7, 0xd8, 0x18, 0x77, 0x6d, + 0x6c, 0x50, 0x68, 0x6f, 0x0f, 0x89, 0xb5, 0x35, 0xb2, 0x8d, 0x8c, 0x90, 0xf6, 0x4f, 0xa9, 0x90, + 0xd9, 0x11, 0x72, 0xe8, 0x47, 0x16, 0x2b, 0xed, 0x3b, 0x33, 0xb3, 0x14, 0x3e, 0x9f, 0x1f, 0xbd, + 0x6d, 0xfb, 0xb6, 0x08, 0x1e, 0x8f, 0xe7, 0xc1, 0x66, 0xb3, 0x99, 0x1f, 0x3a, 0xbd, 0x66, 0xeb, + 0x4f, 0x84, 0xa4, 0x4d, 0x25, 0x44, 0x40, 0x9f, 0xad, 0x28, 0x5f, 0x52, 0xc6, 0x92, 0x43, 0x84, + 0x4c, 0xf3, 0x27, 0xc4, 0xf3, 0xa4, 0x8e, 0x8e, 0x30, 0x72, 0xe6, 0xcc, 0x72, 0xa1, 0x9d, 0x5d, + 0xe5, 0xe5, 0x15, 0x2b, 0xee, 0x47, 0x39, 0x3a, 0x16, 0x06, 0x59, 0x59, 0x5d, 0xf7, 0x34, 0x34, + 0x0c, 0xfc, 0x81, 0xc5, 0xda, 0x31, 0x9a, 0x90, 0xaf, 0xe8, 0x07, 0xa6, 0x14, 0x5b, 0xca, 0x3c, + 0x0a, 0x3d, 0x72, 0xc4, 0x82, 0x62, 0xf9, 0x1a, 0xa6, 0xcf, 0xd8, 0xcc, 0xa0, 0xf0, 0x28, 0x1c, + 0xb5, 0xc0, 0xeb, 0xb2, 0xfe, 0x37, 0xab, 0x8b, 0x74, 0x3b, 0xdf, 0xc1, 0x6d, 0xc4, 0x00, 0x00, + 0x00, 0x00, 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82, +}; + +const BITMAP_OPAQUE zone_unfill_xpm[1] = {{ png, sizeof( png ), "zone_unfill_xpm" }}; + +//EOF diff --git a/bitmaps_png/sources/zone_unfill.svg b/bitmaps_png/sources/zone_unfill.svg new file mode 100644 index 0000000000..e3198853a7 --- /dev/null +++ b/bitmaps_png/sources/zone_unfill.svg @@ -0,0 +1,623 @@ + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/include/bitmaps.h b/include/bitmaps.h index 4dfd32634b..12d80f0b2b 100644 --- a/include/bitmaps.h +++ b/include/bitmaps.h @@ -486,6 +486,7 @@ EXTERN_BITMAP( width_vias_xpm ) EXTERN_BITMAP( window_close_xpm ) EXTERN_BITMAP( zip_tool_xpm ) EXTERN_BITMAP( zip_xpm ) +EXTERN_BITMAP( zone_unfill_xpm ) EXTERN_BITMAP( zoom_area_xpm ) EXTERN_BITMAP( zoom_center_on_screen_xpm ) EXTERN_BITMAP( zoom_redraw_xpm ) diff --git a/pcbnew/onrightclick.cpp b/pcbnew/onrightclick.cpp index 19e07d7a72..dbd40b4aaa 100644 --- a/pcbnew/onrightclick.cpp +++ b/pcbnew/onrightclick.cpp @@ -318,7 +318,7 @@ bool PCB_EDIT_FRAME::OnRightClick( const wxPoint& aMousePos, wxMenu* aPopMenu ) AddMenuItem( aPopMenu, ID_POPUP_PCB_FILL_ALL_ZONES, _( "Fill or Refill All Zones" ), KiBitmap( fill_zone_xpm ) ); AddMenuItem( aPopMenu, ID_POPUP_PCB_REMOVE_FILLED_AREAS_IN_ALL_ZONES, - _( "Remove Filled Areas in All Zones" ), KiBitmap( fill_zone_xpm ) ); + _( "Remove Filled Areas in All Zones" ), KiBitmap( zone_unfill_xpm ) ); aPopMenu->AppendSeparator(); } @@ -632,7 +632,7 @@ void PCB_EDIT_FRAME::createPopUpMenuForZones( ZONE_CONTAINER* edge_zone, wxMenu* if( edge_zone->m_FilledPolysList.size() > 0 ) { AddMenuItem( zones_menu, ID_POPUP_PCB_REMOVE_FILLED_AREAS_IN_CURRENT_ZONE, - _( "Remove Filled Areas in Zone" ), KiBitmap( fill_zone_xpm ) ); + _( "Remove Filled Areas in Zone" ), KiBitmap( zone_unfill_xpm ) ); } msg = AddHotkeyName( _( "Move Zone" ), g_Board_Editor_Hokeys_Descr, HK_MOVE_ITEM );