sweet editor work

This commit is contained in:
Dick Hollenbeck 2011-10-30 00:02:23 -05:00
parent 8a034512ea
commit 0ee7234cf9
9 changed files with 169 additions and 20 deletions

View File

@ -42,9 +42,9 @@ if( 1 )
# On Apple only wxwidgets 2.9 or higher doesn't need to find aui part of base # On Apple only wxwidgets 2.9 or higher doesn't need to find aui part of base
if(APPLE) if(APPLE)
find_package(wxWidgets COMPONENTS gl adv html core net base xml QUIET) find_package(wxWidgets COMPONENTS gl adv html core net base xml QUIET )
else() else()
find_package(wxWidgets COMPONENTS gl aui adv html core net base xml QUIET) find_package(wxWidgets COMPONENTS gl adv html core net base xml aui QUIET )
endif() endif()
check_find_package_result( wxWidgets_FOUND "wxWidgets" ) check_find_package_result( wxWidgets_FOUND "wxWidgets" )
@ -168,12 +168,7 @@ if( MINGW )
endif() endif()
target_link_libraries( test_sch_lib_table sweet ) target_link_libraries( test_sch_lib_table sweet )
include_directories ( "${gal_ROOT}" )
include_directories ("${gal_ROOT}/gal/cairo")
include_directories( "${gal_ROOT}/gal/common" )
include_directories ("${gal_ROOT}/gal/font")
include_directories ("${gal_ROOT}/gal/opengl")
include_directories ("${gal_ROOT}/math")
# Find pkg-config in order find cairo. # Find pkg-config in order find cairo.
find_package( PkgConfig REQUIRED ) find_package( PkgConfig REQUIRED )
@ -192,7 +187,7 @@ include_directories( ${GLEW_INCLUDE_DIRS} )
include_directories( ${gal_ROOT} ) include_directories( ${gal_ROOT} )
add_executable( sweet_edit sweet_edit.cpp sweet_editor_panel.cpp ) add_executable( sweet_edit sweet_edit.cpp sweet_editor_panel.cpp sch_canvas.cpp )
target_link_libraries( sweet_edit target_link_libraries( sweet_edit
${OPENGL_LIBRARIES} ${OPENGL_LIBRARIES}

87
new/sch_canvas.cpp Normal file
View File

@ -0,0 +1,87 @@
/*
* This program source code file is part of KICAD, a free EDA CAD application.
*
* Copyright (C) 2011 SoftPLC Corporation, Dick Hollenbeck <dick@softplc.com>
* Copyright (C) 2011 Kicad Developers, see change_log.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
*/
#include "sch_canvas.h"
#include "sch_part.h"
namespace SCH {
CANVAS::CANVAS( wxWindow* aParent ) :
OPENGL_GAL( aParent, wxDefaultSize )
{
// Set the world unit length
SetWorldUnitLength( 0.01 );
SetScreenDPI( 100 );
// SetLookAtPoint( VECTOR2D( size.x / 2, size.y / 2 ) );
ComputeWorldScreenMatrix();
/*
// Compute the world size
m_worldSize = VECTOR2D( m_screenSize.x, m_screenSize.y );
m_isReady = true;
m_isPanning = false;
m_isGroupStarted = true;
m_offset = 0.333;
// Load Font
if( !m_font.LoadNewStrokeFont( newstroke_font, newstroke_font_bufsize ) )
{
cout << "Loading of the font failed." << endl;
}
m_font.SetGraphicsAbstractionLayer( this );
*/
}
void CANVAS::Paint()
{
/*
BeginDrawing();
SetBackgroundColor( COLOR4D( 0, 0, 0, 1.0 ) );
ClearScreen();
SetLayerDepth( -10 );
SetGridSize( VECTOR2D( 50, 50 ) );
DrawGrid();
SetLayerDepth( 0 );
Flush();
EndDrawing();
*/
}
} // namespace SCH

67
new/sch_canvas.h Normal file
View File

@ -0,0 +1,67 @@
/*
* This program source code file is part of KICAD, a free EDA CAD application.
*
* Copyright (C) 2011 SoftPLC Corporation, Dick Hollenbeck <dick@softplc.com>
* Copyright (C) 2011 Kicad Developers, see change_log.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 SCH_CANVAS_H_
#define SCH_CANVAS_H_
#include <gal/opengl/opengl_gal.h>
namespace SCH {
class PART;
class CANVAS : public OPENGL_GAL
{
protected:
PART* part; ///< which PART to draw
public:
CANVAS( wxWindow* aParent );
/**
* Function Paint (overloaded)
* redraws the entire window, overloads OPENGL_GAL::Paint()
*/
void Paint();
/**
* Function SetPart
* sets the PART to draw, returns the previous PART.
*/
PART* SetPart( PART* aPart )
{
PART* ret = part;
part = aPart;
return ret;
}
};
} // namespace SCH
#endif // SCH_PART_H_

View File

@ -293,7 +293,7 @@ void PART::Parse( SWEET_PARSER* aParser , LIB_TABLE* aTable ) throw( IO_ERROR, P
} }
bool PART::PropertyDelete( const wxString& aPropertyName ) bool PART::PropDelete( const wxString& aPropertyName )
{ {
PROPERTIES::iterator it = propertyFind( aPropertyName ); PROPERTIES::iterator it = propertyFind( aPropertyName );
if( it != properties.end() ) if( it != properties.end() )

View File

@ -729,11 +729,11 @@ public:
throw( IO_ERROR ); throw( IO_ERROR );
/** /**
* Function PropertyDelete * Function PropDelete
* deletes the property with aPropertyName if found and returns true, else false * deletes the property with aPropertyName if found and returns true, else false
* if not found. * if not found.
*/ */
bool PropertyDelete( const wxString& aPropertyName ); bool PropDelete( const wxString& aPropertyName );
/** /**
* Function Field * Function Field

View File

@ -992,7 +992,7 @@ void SWEET_PARSER::parsePropertyDel( PART* me )
wxString propertyName = FromUTF8(); wxString propertyName = FromUTF8();
if( !me->PropertyDelete( propertyName ) ) if( !me->PropDelete( propertyName ) )
{ {
wxString msg; wxString msg;
msg.Printf( _( "Unable to find property: %s" ), propertyName.GetData() ); msg.Printf( _( "Unable to find property: %s" ), propertyName.GetData() );

View File

@ -41,7 +41,7 @@ SWEET_EDITOR_PANEL::SWEET_EDITOR_PANEL( wxWindow* parent, wxWindowID id, const w
wxStaticBoxSizer* m_gal_sizer; wxStaticBoxSizer* m_gal_sizer;
m_gal_sizer = new wxStaticBoxSizer( new wxStaticBox( m_gal_scrolled_window, wxID_ANY, _("Visual Part") ), wxVERTICAL ); m_gal_sizer = new wxStaticBoxSizer( new wxStaticBox( m_gal_scrolled_window, wxID_ANY, _("Visual Part") ), wxVERTICAL );
m_gal = new OPENGL_GAL( m_gal_scrolled_window, size ); m_gal = new SCH::CANVAS( m_gal_scrolled_window );
m_gal_sizer->Add( m_gal, 0, wxALL, 5 ); m_gal_sizer->Add( m_gal, 0, wxALL, 5 );
m_gal_scrolled_window->SetSizer( m_gal_sizer ); m_gal_scrolled_window->SetSizer( m_gal_sizer );

View File

@ -668,12 +668,12 @@
<property name="caption"></property> <property name="caption"></property>
<property name="caption_visible">1</property> <property name="caption_visible">1</property>
<property name="center_pane">0</property> <property name="center_pane">0</property>
<property name="class">OPENGL_GAL</property> <property name="class">SCH::CANVAS</property>
<property name="close_button">1</property> <property name="close_button">1</property>
<property name="construction">m_gal = new OPENGL_GAL( m_gal_scrolled_window, size );</property> <property name="construction">m_gal = new SCH::CANVAS( m_gal_scrolled_window );</property>
<property name="context_help"></property> <property name="context_help"></property>
<property name="context_menu">1</property> <property name="context_menu">1</property>
<property name="declaration">OPENGL_GAL* m_gal;</property> <property name="declaration">SCH::CANVAS* m_gal;</property>
<property name="default_pane">0</property> <property name="default_pane">0</property>
<property name="dock">Dock</property> <property name="dock">Dock</property>
<property name="dock_fixed">0</property> <property name="dock_fixed">0</property>
@ -685,7 +685,7 @@
<property name="gripper">0</property> <property name="gripper">0</property>
<property name="hidden">0</property> <property name="hidden">0</property>
<property name="id">wxID_ANY</property> <property name="id">wxID_ANY</property>
<property name="include">#include &lt;opengl_gal.h&gt;</property> <property name="include">#include &lt;sch_canvas.h&gt;</property>
<property name="layer"></property> <property name="layer"></property>
<property name="max_size"></property> <property name="max_size"></property>
<property name="maximize_button">0</property> <property name="maximize_button">0</property>

View File

@ -19,7 +19,7 @@
#include <wx/sizer.h> #include <wx/sizer.h>
#include <wx/statbox.h> #include <wx/statbox.h>
#include <wx/scrolwin.h> #include <wx/scrolwin.h>
#include <opengl_gal.h> #include <sch_canvas.h>
#include <wx/splitter.h> #include <wx/splitter.h>
#include <wx/panel.h> #include <wx/panel.h>
#include <wx/html/htmlwin.h> #include <wx/html/htmlwin.h>
@ -41,7 +41,7 @@ class SWEET_EDITOR_PANEL : public wxPanel
wxScrolledWindow* m_scrolledTextWindow; wxScrolledWindow* m_scrolledTextWindow;
wxTextCtrl* m_sweet_scroll_window; wxTextCtrl* m_sweet_scroll_window;
wxScrolledWindow* m_gal_scrolled_window; wxScrolledWindow* m_gal_scrolled_window;
OPENGL_GAL* m_gal; SCH::CANVAS* m_gal;
wxScrolledWindow* m_scrolledWindow3; wxScrolledWindow* m_scrolledWindow3;
wxHtmlWindow* m_htmlWin2; wxHtmlWindow* m_htmlWin2;