Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
K
kicad-source-mirror
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Commits
Open sidebar
Elphel
kicad-source-mirror
Commits
9f7ca344
Commit
9f7ca344
authored
Apr 10, 2009
by
charras
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
eeschema: Viewlib: listboxes for lib or component selection are now resizable
parent
d96039a1
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
233 additions
and
74 deletions
+233
-74
CHANGELOG.txt
CHANGELOG.txt
+6
-0
dialog_eeschema_config.cpp
eeschema/dialog_eeschema_config.cpp
+7
-3
viewlib_frame.cpp
eeschema/viewlib_frame.cpp
+199
-64
id.h
include/id.h
+2
-2
wxEeschemaStruct.h
include/wxEeschemaStruct.h
+19
-5
No files found.
CHANGELOG.txt
View file @
9f7ca344
...
@@ -4,6 +4,12 @@ KiCad ChangeLog 2009
...
@@ -4,6 +4,12 @@ KiCad ChangeLog 2009
Please add newer entries at the top, list the date and your name with
Please add newer entries at the top, list the date and your name with
email address.
email address.
2009-apr-10 UPDATE Jean-Pierre Charras <jean-pierre.charras@gipsa-lab.inpg.fr>
================================================================================
++eeschema:
Viewlib: listboxes for lib or component selection are now resizable
2009-apr-07 UPDATE Jean-Pierre Charras <jean-pierre.charras@gipsa-lab.inpg.fr>
2009-apr-07 UPDATE Jean-Pierre Charras <jean-pierre.charras@gipsa-lab.inpg.fr>
================================================================================
================================================================================
++pcbnew:
++pcbnew:
...
...
eeschema/dialog_eeschema_config.cpp
View file @
9f7ca344
...
@@ -109,7 +109,7 @@ void DIALOG_EESCHEMA_CONFIG::Init()
...
@@ -109,7 +109,7 @@ void DIALOG_EESCHEMA_CONFIG::Init()
NetlistNameItems
.
Add
(
wxT
(
"OrcadPcb2"
)
);
NetlistNameItems
.
Add
(
wxT
(
"OrcadPcb2"
)
);
NetlistNameItems
.
Add
(
wxT
(
"CadStar"
)
);
NetlistNameItems
.
Add
(
wxT
(
"CadStar"
)
);
NetlistNameItems
.
Add
(
wxT
(
"Spice"
)
);
NetlistNameItems
.
Add
(
wxT
(
"Spice"
)
);
// Add extra neltlist format (using external converter)
// Add extra neltlist format (using external converter)
msg
=
ReturnUserNetlistTypeName
(
true
);
msg
=
ReturnUserNetlistTypeName
(
true
);
while
(
!
msg
.
IsEmpty
()
)
while
(
!
msg
.
IsEmpty
()
)
...
@@ -145,9 +145,13 @@ void DIALOG_EESCHEMA_CONFIG::OnOkClick( wxCommandEvent& event )
...
@@ -145,9 +145,13 @@ void DIALOG_EESCHEMA_CONFIG::OnOkClick( wxCommandEvent& event )
g_NetFormat
=
m_NetFormatBox
->
GetSelection
()
+
NET_TYPE_PCBNEW
;
g_NetFormat
=
m_NetFormatBox
->
GetSelection
()
+
NET_TYPE_PCBNEW
;
// Set new default path lib
// Set new default path lib
g_UserLibDirBuffer
=
m_LibDirCtrl
->
GetValue
();
if
(
g_UserLibDirBuffer
!=
m_LibDirCtrl
->
GetValue
()
)
{
g_UserLibDirBuffer
=
m_LibDirCtrl
->
GetValue
();
m_LibListChanged
=
true
;
}
// Set new active lib
list
// Set new active lib
rary list if the list of default path was modified
if
(
m_LibListChanged
)
if
(
m_LibListChanged
)
{
{
// Recreate lib list
// Recreate lib list
...
...
eeschema/viewlib_frame.cpp
View file @
9f7ca344
...
@@ -17,23 +17,28 @@
...
@@ -17,23 +17,28 @@
/* class WinEDA_ViewlibFrame */
/* class WinEDA_ViewlibFrame */
/*****************************/
/*****************************/
BEGIN_EVENT_TABLE
(
WinEDA_ViewlibFrame
,
WinEDA_DrawFrame
)
BEGIN_EVENT_TABLE
(
WinEDA_ViewlibFrame
,
WinEDA_DrawFrame
)
EVT_CLOSE
(
WinEDA_ViewlibFrame
::
OnCloseWindow
)
/* Window events */
EVT_SIZE
(
WinEDA_ViewlibFrame
::
OnSize
)
EVT_CLOSE
(
WinEDA_ViewlibFrame
::
OnCloseWindow
)
EVT_ACTIVATE
(
WinEDA_DrawFrame
::
OnActivate
)
EVT_SIZE
(
WinEDA_ViewlibFrame
::
OnSize
)
EVT_ACTIVATE
(
WinEDA_DrawFrame
::
OnActivate
)
EVT_TOOL_RANGE
(
ID_LIBVIEW_START_H_TOOL
,
ID_LIBVIEW_END_H_TOOL
,
WinEDA_ViewlibFrame
::
Process_Special_Functions
)
/* Sash drag events */
EVT_SASH_DRAGGED
(
ID_LIBVIEW_LIBWINDOW
,
WinEDA_ViewlibFrame
::
OnSashDrag
)
EVT_TOOL_RANGE
(
ID_ZOOM_IN
,
ID_ZOOM_PAGE
,
WinEDA_ViewlibFrame
::
OnZoom
)
EVT_SASH_DRAGGED
(
ID_LIBVIEW_CMPWINDOW
,
WinEDA_ViewlibFrame
::
OnSashDrag
)
EVT_TOOL
(
ID_LIBVIEW_CMP_EXPORT_TO_SCHEMATIC
,
WinEDA_ViewlibFrame
::
ExportToSchematicLibraryPart
)
/* Toolbar events */
EVT_TOOL_RANGE
(
ID_LIBVIEW_START_H_TOOL
,
ID_LIBVIEW_END_H_TOOL
,
EVT_KICAD_CHOICEBOX
(
ID_LIBVIEW_SELECT_PART_NUMBER
,
WinEDA_ViewlibFrame
::
Process_Special_Functions
)
WinEDA_ViewlibFrame
::
Process_Special_Functions
)
EVT_TOOL_RANGE
(
ID_ZOOM_IN
,
ID_ZOOM_PAGE
,
WinEDA_ViewlibFrame
::
OnZoom
)
EVT_TOOL
(
ID_LIBVIEW_CMP_EXPORT_TO_SCHEMATIC
,
EVT_LISTBOX
(
ID_LIBVIEW_LIB_LIST
,
WinEDA_ViewlibFrame
::
ClickOnLibList
)
WinEDA_ViewlibFrame
::
ExportToSchematicLibraryPart
)
EVT_LISTBOX
(
ID_LIBVIEW_CMP_LIST
,
WinEDA_ViewlibFrame
::
ClickOnCmpList
)
EVT_KICAD_CHOICEBOX
(
ID_LIBVIEW_SELECT_PART_NUMBER
,
WinEDA_ViewlibFrame
::
Process_Special_Functions
)
/* listbox events */
EVT_LISTBOX
(
ID_LIBVIEW_LIB_LIST
,
WinEDA_ViewlibFrame
::
ClickOnLibList
)
EVT_LISTBOX
(
ID_LIBVIEW_CMP_LIST
,
WinEDA_ViewlibFrame
::
ClickOnCmpList
)
END_EVENT_TABLE
()
END_EVENT_TABLE
()
...
@@ -42,16 +47,17 @@ END_EVENT_TABLE()
...
@@ -42,16 +47,17 @@ END_EVENT_TABLE()
* The library viewer does not have any menus so add an accelerator table to
* The library viewer does not have any menus so add an accelerator table to
* the main frame.
* the main frame.
*/
*/
static
wxAcceleratorEntry
accels
[]
=
{
static
wxAcceleratorEntry
accels
[]
=
wxAcceleratorEntry
(
wxACCEL_NORMAL
,
WXK_F1
,
ID_POPUP_ZOOM_IN
),
{
wxAcceleratorEntry
(
wxACCEL_NORMAL
,
WXK_F2
,
ID_POPUP_ZOOM_OUT
),
wxAcceleratorEntry
(
wxACCEL_NORMAL
,
WXK_F1
,
ID_ZOOM_IN
),
wxAcceleratorEntry
(
wxACCEL_NORMAL
,
WXK_F2
,
ID_ZOOM_OUT
),
wxAcceleratorEntry
(
wxACCEL_NORMAL
,
WXK_F3
,
ID_ZOOM_REDRAW
),
wxAcceleratorEntry
(
wxACCEL_NORMAL
,
WXK_F3
,
ID_ZOOM_REDRAW
),
wxAcceleratorEntry
(
wxACCEL_NORMAL
,
WXK_F4
,
ID_
POPUP_ZOOM_CENTER
)
wxAcceleratorEntry
(
wxACCEL_NORMAL
,
WXK_F4
,
ID_
ZOOM_PAGE
)
};
};
#define ACCEL_TABLE_CNT ( sizeof( accels ) / sizeof( wxAcceleratorEntry ) )
#define ACCEL_TABLE_CNT ( sizeof( accels ) / sizeof( wxAcceleratorEntry ) )
#define EXTRA_BORDER_SIZE 2
/******************************************************************************/
/******************************************************************************/
WinEDA_ViewlibFrame
::
WinEDA_ViewlibFrame
(
wxWindow
*
father
,
WinEDA_ViewlibFrame
::
WinEDA_ViewlibFrame
(
wxWindow
*
father
,
LibraryStruct
*
Library
,
LibraryStruct
*
Library
,
...
@@ -63,46 +69,74 @@ WinEDA_ViewlibFrame::WinEDA_ViewlibFrame( wxWindow* father,
...
@@ -63,46 +69,74 @@ WinEDA_ViewlibFrame::WinEDA_ViewlibFrame( wxWindow* father,
wxAcceleratorTable
table
(
ACCEL_TABLE_CNT
,
accels
);
wxAcceleratorTable
table
(
ACCEL_TABLE_CNT
,
accels
);
m_FrameName
=
wxT
(
"ViewlibFrame"
);
m_FrameName
=
wxT
(
"ViewlibFrame"
);
m_ConfigPath
=
wxT
(
"LibraryViewer"
);
// Give an icon
// Give an icon
SetIcon
(
wxIcon
(
library_browse_xpm
)
);
SetIcon
(
wxIcon
(
library_browse_xpm
)
);
m_CmpList
=
NULL
;
m_CmpList
=
NULL
;
m_LibList
=
NULL
;
m_LibList
=
NULL
;
m_Semaphore
=
semaphore
;
m_LibListWindow
=
NULL
;
m_CmpListWindow
=
NULL
;
m_Semaphore
=
semaphore
;
if
(
m_Semaphore
)
if
(
m_Semaphore
)
SetWindowStyle
(
GetWindowStyle
()
|
wxSTAY_ON_TOP
);
SetWindowStyle
(
GetWindowStyle
()
|
wxSTAY_ON_TOP
);
SetBaseScreen
(
new
SCH_SCREEN
()
);
SetBaseScreen
(
new
SCH_SCREEN
()
);
GetScreen
()
->
m_Center
=
true
;
// set to true to have the coordinates origine -0,0) centered on screen
GetScreen
()
->
m_Center
=
true
;
// set to true to have the coordinates origine -0,0) centered on screen
LoadSettings
();
SetSize
(
m_FramePos
.
x
,
m_FramePos
.
y
,
m_FrameSize
.
x
,
m_FrameSize
.
y
);
ReCreateHToolbar
();
ReCreateVToolbar
();
wxSize
size
=
GetClientSize
();
size
.
y
-=
m_MsgFrameHeight
+
2
;
m_LibListSize
.
y
=
size
.
y
;
wxPoint
win_pos
(
0
,
0
);
if
(
Library
==
NULL
)
if
(
Library
==
NULL
)
{
{
m_LibListSize
.
x
=
150
;
// Width of library list
// Creates the libraries window display
m_LibListSize
.
y
=
-
1
;
m_LibListWindow
=
m_LibList
=
new
wxListBox
(
this
,
ID_LIBVIEW_LIB_LIST
,
wxPoint
(
0
,
0
),
new
wxSashLayoutWindow
(
this
,
ID_LIBVIEW_LIBWINDOW
,
win_pos
,
m_LibListSize
,
m_LibListSize
,
0
,
NULL
,
wxLB_HSCROLL
);
wxCLIP_CHILDREN
|
wxSW_3D
,
wxT
(
"LibWindow"
)
);
m_LibListWindow
->
SetOrientation
(
wxLAYOUT_VERTICAL
);
m_LibListWindow
->
SetAlignment
(
wxLAYOUT_LEFT
);
m_LibListWindow
->
SetSashVisible
(
wxSASH_RIGHT
,
TRUE
);
m_LibListWindow
->
SetExtraBorderSize
(
EXTRA_BORDER_SIZE
);
m_LibList
=
new
wxListBox
(
m_LibListWindow
,
ID_LIBVIEW_LIB_LIST
,
wxPoint
(
0
,
0
),
m_LibListWindow
->
GetClientSize
()
-
wxSize
(
EXTRA_BORDER_SIZE
*
2
,
0
),
0
,
NULL
,
wxLB_HSCROLL
);
m_LibList
->
SetFont
(
*
g_DialogFont
);
m_LibList
->
SetFont
(
*
g_DialogFont
);
m_LibList
->
SetBackgroundColour
(
wxColour
(
255
,
255
,
255
)
);
// Library background listbox color (white)
m_LibList
->
SetForegroundColour
(
wxColour
(
0
,
0
,
0
)
);
// Library foreground listbox color (black)
}
}
else
else
{
g_CurrentViewLibraryName
=
Library
->
m_Name
;
g_CurrentViewLibraryName
=
Library
->
m_Name
;
m_LibListSize
.
x
=
0
;
}
m_CmpListSize
.
x
=
150
;
// Width of component list
// Creates the component window display
m_CmpListSize
.
y
=
-
1
;
m_CmpListSize
.
y
=
size
.
y
;
m_CmpList
=
new
wxListBox
(
this
,
ID_LIBVIEW_CMP_LIST
,
win_pos
.
x
=
m_LibListSize
.
x
;
wxPoint
(
m_LibListSize
.
x
,
0
),
win_pos
.
y
=
0
;
m_CmpListSize
,
0
,
NULL
,
wxLB_HSCROLL
);
m_CmpListWindow
=
new
wxSashLayoutWindow
(
this
,
ID_LIBVIEW_CMPWINDOW
,
win_pos
,
m_CmpListSize
,
wxCLIP_CHILDREN
|
wxSW_3D
,
wxT
(
"CmpWindow"
)
);
m_CmpListWindow
->
SetOrientation
(
wxLAYOUT_VERTICAL
);
// m_CmpListWindow->SetAlignment( wxLAYOUT_LEFT );
m_CmpListWindow
->
SetSashVisible
(
wxSASH_RIGHT
,
TRUE
);
m_CmpListWindow
->
SetExtraBorderSize
(
EXTRA_BORDER_SIZE
);
m_CmpList
=
new
wxListBox
(
m_CmpListWindow
,
ID_LIBVIEW_CMP_LIST
,
wxPoint
(
0
,
0
),
m_CmpListWindow
->
GetClientSize
()
-
wxSize
(
EXTRA_BORDER_SIZE
*
2
,
0
),
0
,
NULL
,
wxLB_HSCROLL
);
m_CmpList
->
SetFont
(
*
g_DialogFont
);
m_CmpList
->
SetFont
(
*
g_DialogFont
);
m_CmpList
->
SetBackgroundColour
(
wxColour
(
255
,
255
,
255
)
);
// Component background listbox color (white)
m_CmpList
->
SetForegroundColour
(
wxColour
(
0
,
0
,
0
)
);
// Component foreground listbox color (black)
LoadSettings
();
SetSize
(
m_FramePos
.
x
,
m_FramePos
.
y
,
m_FrameSize
.
x
,
m_FrameSize
.
y
);
ReCreateHToolbar
();
ReCreateVToolbar
();
if
(
m_LibList
)
if
(
m_LibList
)
ReCreateListLib
();
ReCreateListLib
();
DisplayLibInfos
();
DisplayLibInfos
();
...
@@ -137,17 +171,56 @@ void WinEDA_ViewlibFrame::OnCloseWindow( wxCloseEvent& Event )
...
@@ -137,17 +171,56 @@ void WinEDA_ViewlibFrame::OnCloseWindow( wxCloseEvent& Event )
}
}
/****************************************************/
void
WinEDA_ViewlibFrame
::
OnSashDrag
(
wxSashEvent
&
event
)
/****************************************************/
/* Resize sub windows when dragging a sash window border
*/
{
if
(
event
.
GetDragStatus
()
==
wxSASH_STATUS_OUT_OF_RANGE
)
return
;
m_LibListSize
.
y
=
GetClientSize
().
y
-
m_MsgFrameHeight
;
m_CmpListSize
.
y
=
m_LibListSize
.
y
;
switch
(
event
.
GetId
()
)
{
case
ID_LIBVIEW_LIBWINDOW
:
if
(
m_LibListWindow
)
{
m_LibListSize
.
x
=
event
.
GetDragRect
().
width
;
m_LibListWindow
->
SetSize
(
m_LibListSize
);
m_CmpListWindow
->
SetPosition
(
wxPoint
(
m_LibListSize
.
x
,
0
)
);
}
break
;
case
ID_LIBVIEW_CMPWINDOW
:
m_CmpListSize
.
x
=
event
.
GetDragRect
().
width
;
m_CmpListWindow
->
SetSize
(
m_CmpListSize
);
break
;
}
// Now, we must recalculate the position and size of subwindows
wxSizeEvent
SizeEv
;
OnSize
(
SizeEv
);
// Ensure the panel is always redrawn (sometimes some garbage remains):
DrawPanel
->
Refresh
();
}
/*****************************************************/
/*****************************************************/
void
WinEDA_ViewlibFrame
::
OnSize
(
wxSizeEvent
&
SizeEv
)
void
WinEDA_ViewlibFrame
::
OnSize
(
wxSizeEvent
&
SizeEv
)
/*****************************************************/
/*****************************************************/
{
{
wxSize
size
;
wxSize
client
size
;
wxSize
maintoolbar_size
;
wxSize
maintoolbar_size
;
wxSize
Vtoolbar_size
;
wxSize
Vtoolbar_size
;
GetClientSize
(
&
size
.
x
,
&
size
.
y
);
clientsize
=
GetClientSize
(
);
m_FrameSize
=
size
;
m_FrameSize
=
client
size
;
size
.
y
-=
m_MsgFrameHeight
;
client
size
.
y
-=
m_MsgFrameHeight
;
if
(
m_HToolBar
)
if
(
m_HToolBar
)
{
{
...
@@ -157,32 +230,37 @@ void WinEDA_ViewlibFrame::OnSize( wxSizeEvent& SizeEv )
...
@@ -157,32 +230,37 @@ void WinEDA_ViewlibFrame::OnSize( wxSizeEvent& SizeEv )
if
(
m_VToolBar
)
if
(
m_VToolBar
)
{
{
Vtoolbar_size
=
m_VToolBar
->
GetSize
();
Vtoolbar_size
=
m_VToolBar
->
GetSize
();
m_VToolBar
->
SetSize
(
size
.
x
-
maintoolbar_size
.
y
,
0
,
-
1
,
size
.
y
);
m_VToolBar
->
SetSize
(
clientsize
.
x
-
maintoolbar_size
.
y
,
0
,
-
1
,
client
size
.
y
);
}
}
if
(
MsgPanel
)
if
(
MsgPanel
)
{
{
MsgPanel
->
SetSize
(
0
,
size
.
y
,
size
.
x
,
m_MsgFrameHeight
);
MsgPanel
->
SetSize
(
0
,
clientsize
.
y
,
client
size
.
x
,
m_MsgFrameHeight
);
}
}
if
(
DrawPanel
)
if
(
DrawPanel
)
{
{
DrawPanel
->
SetSize
(
m_LibListSize
.
x
+
m_CmpListSize
.
x
,
0
,
DrawPanel
->
SetSize
(
m_LibListSize
.
x
+
m_CmpListSize
.
x
,
0
,
size
.
x
-
Vtoolbar_size
.
x
-
m_LibListSize
.
x
-
m_CmpListSize
.
x
,
client
size
.
x
-
Vtoolbar_size
.
x
-
m_LibListSize
.
x
-
m_CmpListSize
.
x
,
size
.
y
);
client
size
.
y
);
}
}
if
(
m_LibList
)
if
(
m_LibList
&&
m_LibListWindow
)
{
{
m_LibListSize
.
y
=
size
.
y
;
m_LibListSize
.
y
=
clientsize
.
y
-
2
;
m_LibList
->
SetSize
(
0
,
0
,
m_LibListSize
.
x
,
m_LibListSize
.
y
);
m_LibListWindow
->
SetSize
(
m_LibListSize
);
m_LibList
->
SetSize
(
m_LibListWindow
->
GetClientSize
()
-
wxSize
(
EXTRA_BORDER_SIZE
*
2
,
0
)
);
}
}
if
(
m_CmpList
)
if
(
m_CmpList
&&
m_CmpListWindow
)
{
{
m_CmpListSize
.
y
=
size
.
y
;
m_CmpListSize
.
y
=
clientsize
.
y
-
2
;
m_CmpList
->
SetSize
(
m_LibListSize
.
x
,
0
,
m_CmpListSize
.
x
,
m_CmpListSize
.
y
);
m_CmpListWindow
->
SetSize
(
m_CmpListSize
);
m_CmpListWindow
->
SetPosition
(
wxPoint
(
m_LibListSize
.
x
,
0
)
);
m_CmpList
->
SetSize
(
m_CmpListWindow
->
GetClientSize
()
-
wxSize
(
EXTRA_BORDER_SIZE
*
2
,
0
)
);
}
}
SizeEv
.
Skip
();
}
}
...
@@ -195,7 +273,7 @@ int WinEDA_ViewlibFrame::BestZoom()
...
@@ -195,7 +273,7 @@ int WinEDA_ViewlibFrame::BestZoom()
EDA_LibComponentStruct
*
CurrentLibEntry
=
NULL
;
EDA_LibComponentStruct
*
CurrentLibEntry
=
NULL
;
CurrentLibEntry
=
FindLibPart
(
g_CurrentViewComponentName
.
GetData
(),
CurrentLibEntry
=
FindLibPart
(
g_CurrentViewComponentName
.
GetData
(),
g_CurrentViewLibraryName
.
GetData
(),
FIND_ROOT
);
g_CurrentViewLibraryName
.
GetData
(),
FIND_ROOT
);
if
(
CurrentLibEntry
==
NULL
)
if
(
CurrentLibEntry
==
NULL
)
{
{
...
@@ -208,11 +286,11 @@ int WinEDA_ViewlibFrame::BestZoom()
...
@@ -208,11 +286,11 @@ int WinEDA_ViewlibFrame::BestZoom()
EDA_Rect
BoundaryBox
=
CurrentLibEntry
->
GetBoundaryBox
(
g_ViewUnit
,
g_ViewConvert
);
EDA_Rect
BoundaryBox
=
CurrentLibEntry
->
GetBoundaryBox
(
g_ViewUnit
,
g_ViewConvert
);
itemsize
=
BoundaryBox
.
GetSize
();
itemsize
=
BoundaryBox
.
GetSize
();
size
=
DrawPanel
->
GetClientSize
();
size
=
DrawPanel
->
GetClientSize
();
size
-=
wxSize
(
100
,
100
);
// reserve a 100 mils margin
size
-=
wxSize
(
100
,
100
);
// reserve a 100 mils margin
ii
=
itemsize
.
x
/
size
.
x
;
ii
=
itemsize
.
x
/
size
.
x
;
jj
=
itemsize
.
y
/
size
.
y
;
jj
=
itemsize
.
y
/
size
.
y
;
bestzoom
=
MAX
(
ii
,
jj
)
+
1
;
bestzoom
=
MAX
(
ii
,
jj
)
+
1
;
GetScreen
()
->
m_Curseur
=
BoundaryBox
.
Centre
();
GetScreen
()
->
m_Curseur
=
BoundaryBox
.
Centre
();
...
@@ -265,7 +343,10 @@ void WinEDA_ViewlibFrame::ReCreateListLib()
...
@@ -265,7 +343,10 @@ void WinEDA_ViewlibFrame::ReCreateListLib()
void
WinEDA_ViewlibFrame
::
ReCreateListCmp
()
void
WinEDA_ViewlibFrame
::
ReCreateListCmp
()
/***********************************************/
/***********************************************/
{
{
int
ii
;
if
(
m_CmpList
==
NULL
)
return
;
int
ii
;
EDA_LibComponentStruct
*
LibEntry
=
NULL
;
EDA_LibComponentStruct
*
LibEntry
=
NULL
;
LibraryStruct
*
Library
=
FindLibrary
(
g_CurrentViewLibraryName
.
GetData
()
);
LibraryStruct
*
Library
=
FindLibrary
(
g_CurrentViewLibraryName
.
GetData
()
);
...
@@ -339,3 +420,57 @@ void WinEDA_ViewlibFrame::ExportToSchematicLibraryPart( wxCommandEvent& event )
...
@@ -339,3 +420,57 @@ void WinEDA_ViewlibFrame::ExportToSchematicLibraryPart( wxCommandEvent& event )
g_CurrentViewComponentName
.
Empty
();
g_CurrentViewComponentName
.
Empty
();
Close
(
TRUE
);
Close
(
TRUE
);
}
}
#define LIBLIST_WIDTH_KEY wxT("Liblist_width")
#define CMPLIST_WIDTH_KEY wxT("Cmplist_width")
/**
* Load library viewer frame specific configuration settings.
*
* Don't forget to call this base method from any derived classes or the
* settings will not get loaded.
*/
void
WinEDA_ViewlibFrame
::
LoadSettings
(
)
{
wxConfig
*
cfg
;
WinEDA_DrawFrame
::
LoadSettings
();
wxConfigPathChanger
cpc
(
wxGetApp
().
m_EDA_Config
,
m_ConfigPath
);
cfg
=
wxGetApp
().
m_EDA_Config
;
m_LibListSize
.
x
=
150
;
// default width of libs list
m_CmpListSize
.
x
=
150
;
// default width of component list
cfg
->
Read
(
LIBLIST_WIDTH_KEY
,
&
m_LibListSize
.
x
);
cfg
->
Read
(
CMPLIST_WIDTH_KEY
,
&
m_CmpListSize
.
x
);
// set parameters to a resonnable value
if
(
m_LibListSize
.
x
>
m_FrameSize
.
x
/
2
)
m_LibListSize
.
x
=
m_FrameSize
.
x
/
2
;
if
(
m_CmpListSize
.
x
>
m_FrameSize
.
x
/
2
)
m_CmpListSize
.
x
=
m_FrameSize
.
x
/
2
;
}
/**
* Save library viewer frame specific configuration settings.
*
* Don't forget to call this base method from any derived classes or the
* settings will not get saved.
*/
void
WinEDA_ViewlibFrame
::
SaveSettings
()
{
wxConfig
*
cfg
;
WinEDA_DrawFrame
::
SaveSettings
();
wxConfigPathChanger
cpc
(
wxGetApp
().
m_EDA_Config
,
m_ConfigPath
);
cfg
=
wxGetApp
().
m_EDA_Config
;
if
(
m_LibListSize
.
x
)
cfg
->
Write
(
LIBLIST_WIDTH_KEY
,
m_LibListSize
.
x
);
cfg
->
Write
(
CMPLIST_WIDTH_KEY
,
m_CmpListSize
.
x
);
}
include/id.h
View file @
9f7ca344
...
@@ -392,8 +392,8 @@ enum main_id {
...
@@ -392,8 +392,8 @@ enum main_id {
ID_LIBVIEW_SELECT_PART_NUMBER
,
ID_LIBVIEW_SELECT_PART_NUMBER
,
ID_LIBVIEW_LIB_LIST
,
ID_LIBVIEW_LIB_LIST
,
ID_LIBVIEW_CMP_LIST
,
ID_LIBVIEW_CMP_LIST
,
ID_LIBVIEW_
UNUSED0
,
ID_LIBVIEW_
LIBWINDOW
,
ID_LIBVIEW_
UNUSED1
,
ID_LIBVIEW_
CMPWINDOW
,
ID_LIBVIEW_UNUSED3
,
ID_LIBVIEW_UNUSED3
,
ID_LIBVIEW_UNUSED4
,
ID_LIBVIEW_UNUSED4
,
ID_LIBVIEW_CMP_EXPORT_TO_SCHEMATIC
,
// Used in Htoolbar, specific function
ID_LIBVIEW_CMP_EXPORT_TO_SCHEMATIC
,
// Used in Htoolbar, specific function
...
...
include/wxEeschemaStruct.h
View file @
9f7ca344
...
@@ -495,17 +495,27 @@ protected:
...
@@ -495,17 +495,27 @@ protected:
};
};
/************************************************************************************************/
/************************************************************************************************/
class
LibraryStruct
;
class
LibraryStruct
;
class
WinEDA_ViewlibFrame
:
public
WinEDA_DrawFrame
class
WinEDA_ViewlibFrame
:
public
WinEDA_DrawFrame
{
{
p
ublic
:
p
rivate
:
WinEDAChoiceBox
*
SelpartBox
;
WinEDAChoiceBox
*
SelpartBox
;
wxListBox
*
m_LibList
;
// List of libraries (for selection
wxSize
m_LibListSize
;
wxSashLayoutWindow
*
m_LibListWindow
;
// The redimensionnable window to display the lib list
wxListBox
*
m_CmpList
;
wxListBox
*
m_LibList
;
// The list of libs
wxSize
m_CmpListSize
;
wxSize
m_LibListSize
;
// size of the window
// List of components in the selected library
wxSashLayoutWindow
*
m_CmpListWindow
;
// The redimensionnable window to display the component list
wxListBox
*
m_CmpList
;
// The list of components
wxSize
m_CmpListSize
;
// size of the window
// Flags
wxSemaphore
*
m_Semaphore
;
// != NULL if the frame must emulate a modal dialog
wxSemaphore
*
m_Semaphore
;
// != NULL if the frame must emulate a modal dialog
wxString
m_ConfigPath
;
// subpath for configuartion
public
:
public
:
WinEDA_ViewlibFrame
(
wxWindow
*
father
,
WinEDA_ViewlibFrame
(
wxWindow
*
father
,
...
@@ -515,6 +525,7 @@ public:
...
@@ -515,6 +525,7 @@ public:
~
WinEDA_ViewlibFrame
();
~
WinEDA_ViewlibFrame
();
void
OnSize
(
wxSizeEvent
&
event
);
void
OnSize
(
wxSizeEvent
&
event
);
void
OnSashDrag
(
wxSashEvent
&
event
);
void
ReCreateListLib
();
void
ReCreateListLib
();
void
ReCreateListCmp
();
void
ReCreateListCmp
();
void
Process_Special_Functions
(
wxCommandEvent
&
event
);
void
Process_Special_Functions
(
wxCommandEvent
&
event
);
...
@@ -532,6 +543,9 @@ public:
...
@@ -532,6 +543,9 @@ public:
void
GeneralControle
(
wxDC
*
DC
,
wxPoint
MousePositionInPixels
);
void
GeneralControle
(
wxDC
*
DC
,
wxPoint
MousePositionInPixels
);
void
LoadSettings
();
void
SaveSettings
();
private
:
private
:
void
SelectCurrentLibrary
();
void
SelectCurrentLibrary
();
void
SelectAndViewLibraryPart
(
int
option
);
void
SelectAndViewLibraryPart
(
int
option
);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment