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
d01e04c9
Commit
d01e04c9
authored
Dec 11, 2007
by
dickelbeck
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fix typo, beautify
parent
57a2791b
Changes
1
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
187 additions
and
164 deletions
+187
-164
displlst.cpp
common/displlst.cpp
+187
-164
No files found.
common/displlst.cpp
View file @
d01e04c9
...
...
@@ -10,127 +10,139 @@
#include "macros.h"
/***********************/
/* class WinEDAListBox */
/***********************/
/***********************/
/* class WinEDAListBox */
/***********************/
enum
listbox
{
ID_LISTBOX_LIST
=
8000
};
BEGIN_EVENT_TABLE
(
WinEDAListBox
,
wxDialog
)
EVT_BUTTON
(
wxID_OK
,
WinEDAListBox
::
OnOkClick
)
EVT_BUTTON
(
wxID_CANCEL
,
WinEDAListBox
::
OnCancelClick
)
EVT_LISTBOX
(
ID_LISTBOX_LIST
,
WinEDAListBox
::
ClickOnList
)
EVT_LISTBOX_DCLICK
(
ID_LISTBOX_LIST
,
WinEDAListBox
::
D_ClickOnList
)
EVT_CHAR
(
WinEDAListBox
::
OnKeyEvent
)
EVT_CHAR_HOOK
(
WinEDAListBox
::
OnKeyEvent
)
BEGIN_EVENT_TABLE
(
WinEDAListBox
,
wxDialog
)
EVT_BUTTON
(
wxID_OK
,
WinEDAListBox
::
OnOkClick
)
EVT_BUTTON
(
wxID_CANCEL
,
WinEDAListBox
::
OnCancelClick
)
EVT_LISTBOX
(
ID_LISTBOX_LIST
,
WinEDAListBox
::
ClickOnList
)
EVT_LISTBOX_DCLICK
(
ID_LISTBOX_LIST
,
WinEDAListBox
::
D_ClickOnList
)
EVT_CHAR
(
WinEDAListBox
::
OnKeyEvent
)
EVT_CHAR_HOOK
(
WinEDAListBox
::
OnKeyEvent
)
EVT_CLOSE
(
WinEDAListBox
::
OnClose
)
END_EVENT_TABLE
()
/*******************************/
/* Constructeur et destructeur */
/*******************************/
/*******************************/
/* Constructeur et destructeur */
/*******************************/
/* Permet l'affichage d'une liste d'elements pour selection.
itemlist = pointeur sur la liste des pinteurs de noms
reftext = preselection
movefct = fonction de cration de commentaires a afficher
*/
WinEDAListBox
::
WinEDAListBox
(
WinEDA_DrawFrame
*
parent
,
const
wxString
&
title
,
const
wxChar
**
itemlist
,
const
wxString
&
reftext
,
void
(
*
movefct
)(
wxString
&
Text
)
,
const
wxColour
&
colour
,
wxPoint
dialog_position
)
:
wxDialog
(
parent
,
-
1
,
title
,
dialog_position
,
wxDefaultSize
,
*
itemlist = pointeur sur la liste des pinteurs de noms
*
reftext = preselection
*
movefct = fonction de cration de commentaires a afficher
*/
WinEDAListBox
::
WinEDAListBox
(
WinEDA_DrawFrame
*
parent
,
const
wxString
&
title
,
const
wxChar
**
itemlist
,
const
wxString
&
reftext
,
void
(
*
movefct
)(
wxString
&
Text
)
,
const
wxColour
&
colour
,
wxPoint
dialog_position
)
:
wxDialog
(
parent
,
-
1
,
title
,
dialog_position
,
wxDefaultSize
,
wxDEFAULT_DIALOG_STYLE
|
MAYBE_RESIZE_BORDER
)
{
wxSize
size
;
const
wxChar
**
names
;
int
ii
;
wxSize
size
;
const
wxChar
**
names
;
int
ii
;
m_ItemList
=
itemlist
;
m_Parent
=
parent
;
m_MoveFct
=
movefct
;
m_WinMsg
=
NULL
;
SetReturnCode
(
-
1
);
SetFont
(
*
g_DialogFont
);
SetReturnCode
(
-
1
);
SetFont
(
*
g_DialogFont
);
if
(
itemlist
)
for
(
names
=
m_ItemList
,
ii
=
0
;
*
names
!=
NULL
;
names
++
)
if
(
itemlist
)
for
(
names
=
m_ItemList
,
ii
=
0
;
*
names
!=
NULL
;
names
++
)
ii
++
;
else
ii
=
30
;
wxBoxSizer
*
GeneralBoxSizer
=
new
wxBoxSizer
(
wxVERTICAL
);
SetSizer
(
GeneralBoxSizer
);
else
ii
=
30
;
wxBoxSizer
*
GeneralBoxSizer
=
new
wxBoxSizer
(
wxVERTICAL
);
SetSizer
(
GeneralBoxSizer
);
wxBoxSizer
*
MainBoxSizer
=
new
wxBoxSizer
(
wxHORIZONTAL
);
wxBoxSizer
*
MainBoxSizer
=
new
wxBoxSizer
(
wxHORIZONTAL
);
GeneralBoxSizer
->
Add
(
MainBoxSizer
,
0
,
wxGROW
|
wxEXPAND
|
wxALL
,
1
);
GeneralBoxSizer
->
Add
(
MainBoxSizer
,
0
,
wxGROW
|
wxEXPAND
|
wxALL
,
1
);
wxBoxSizer
*
LeftBoxSizer
=
new
wxBoxSizer
(
wxVERTICAL
);
MainBoxSizer
->
Add
(
LeftBoxSizer
,
0
,
wxGROW
|
wxALL
,
5
);
wxBoxSizer
*
RightBoxSizer
=
new
wxBoxSizer
(
wxVERTICAL
);
MainBoxSizer
->
Add
(
RightBoxSizer
,
0
,
wxALIGN_CENTER_VERTICAL
|
wxALL
,
5
);
wxBoxSizer
*
LeftBoxSizer
=
new
wxBoxSizer
(
wxVERTICAL
);
MainBoxSizer
->
Add
(
LeftBoxSizer
,
0
,
wxGROW
|
wxALL
,
5
);
wxBoxSizer
*
RightBoxSizer
=
new
wxBoxSizer
(
wxVERTICAL
);
MainBoxSizer
->
Add
(
RightBoxSizer
,
0
,
wxALIGN_CENTER_VERTICAL
|
wxALL
,
5
);
size
.
x
=
200
;
size
.
y
=
350
;
m_List
=
new
wxListBox
(
this
,
m_List
=
new
wxListBox
(
this
,
ID_LISTBOX_LIST
,
wxDefaultPosition
,
size
,
0
,
NULL
,
wxLB_NEEDED_SB
|
wxLB_SINGLE
|
wxLB_HSCROLL
);
if
(
colour
!=
wxNullColour
)
wxLB_NEEDED_SB
|
wxLB_SINGLE
|
wxLB_HSCROLL
);
if
(
colour
!=
wxNullColour
)
{
m_List
->
SetBackgroundColour
(
colour
);
m_List
->
SetForegroundColour
(
*
wxBLACK
);
m_List
->
SetBackgroundColour
(
colour
);
m_List
->
SetForegroundColour
(
*
wxBLACK
);
}
LeftBoxSizer
->
Add
(
m_List
,
0
,
wxGROW
|
wxALL
,
5
);
LeftBoxSizer
->
Add
(
m_List
,
0
,
wxGROW
|
wxALL
,
5
);
if
(
itemlist
)
for
(
names
=
m_ItemList
,
ii
=
0
;
*
names
!=
NULL
;
names
++
,
ii
++
)
if
(
itemlist
)
for
(
names
=
m_ItemList
,
ii
=
0
;
*
names
!=
NULL
;
names
++
,
ii
++
)
{
m_List
->
Append
(
*
names
);
m_List
->
Append
(
*
names
);
}
wxButton
*
butt
=
new
wxButton
(
this
,
wxID_OK
,
_
(
"OK"
));
RightBoxSizer
->
Add
(
butt
,
0
,
wxGROW
|
wxALL
,
5
);
wxButton
*
butt
=
new
wxButton
(
this
,
wxID_OK
,
_
(
"OK"
)
);
RightBoxSizer
->
Add
(
butt
,
0
,
wxGROW
|
wxALL
,
5
);
butt
->
SetDefault
();
butt
=
new
wxButton
(
this
,
wxID_CANCEL
,
_
(
"Cancel"
));
RightBoxSizer
->
Add
(
butt
,
0
,
wxGROW
|
wxALL
,
5
);
butt
=
new
wxButton
(
this
,
wxID_CANCEL
,
_
(
"Cancel"
)
);
RightBoxSizer
->
Add
(
butt
,
0
,
wxGROW
|
wxALL
,
5
);
if
(
m_MoveFct
)
if
(
m_MoveFct
)
{
size
.
x
=
-
1
;
size
.
y
=
60
;
m_WinMsg
=
new
wxTextCtrl
(
this
,
-
1
,
wxEmptyString
,
wxDefaultPosition
,
size
,
wxTE_READONLY
|
wxTE_MULTILINE
);
GeneralBoxSizer
->
Add
(
m_WinMsg
,
0
,
wxGROW
|
wxALL
,
5
);
m_WinMsg
=
new
wxTextCtrl
(
this
,
-
1
,
wxEmptyString
,
wxDefaultPosition
,
size
,
wxTE_READONLY
|
wxTE_MULTILINE
);
GeneralBoxSizer
->
Add
(
m_WinMsg
,
0
,
wxGROW
|
wxALL
,
5
);
}
GetSizer
()
->
Fit
(
this
);
GetSizer
()
->
SetSizeHints
(
this
);
GetSizer
()
->
Fit
(
this
);
GetSizer
()
->
SetSizeHints
(
this
);
if
(
dialog_position
==
wxDefaultPosition
)
// Put the window on the parent centre
if
(
dialog_position
==
wxDefaultPosition
)
// Put the window on the parent centre
{
Centre
();
}
else
// Ensure the window dialog is on screen :
{
wxPoint
pos
;
m_Parent
->
GetPosition
(
&
pos
.
x
,
&
pos
.
y
);
if
(
pos
.
x
<
0
)
pos
.
x
=
0
;
if
(
pos
.
y
<
0
)
pos
.
y
=
0
;
m_Parent
->
GetPosition
(
&
pos
.
x
,
&
pos
.
y
);
if
(
pos
.
x
<
0
)
pos
.
x
=
0
;
if
(
pos
.
y
<
0
)
pos
.
y
=
0
;
pos
.
x
+=
20
;
pos
.
y
+=
30
;
Move
(
pos
);
Move
(
pos
);
}
}
WinEDAListBox
::
~
WinEDAListBox
()
WinEDAListBox
::~
WinEDAListBox
()
{
}
...
...
@@ -139,88 +151,99 @@ WinEDAListBox:: ~WinEDAListBox()
void
WinEDAListBox
::
MoveMouseToOrigin
()
/******************************************/
{
int
x
,
y
,
w
,
h
;
wxSize
list_size
=
m_List
->
GetSize
();
int
orgx
=
m_List
->
GetRect
().
GetLeft
();
int
orgy
=
m_List
->
GetRect
().
GetTop
();
int
x
,
y
,
w
,
h
;
wxSize
list_size
=
m_List
->
GetSize
();
int
orgx
=
m_List
->
GetRect
().
GetLeft
();
int
orgy
=
m_List
->
GetRect
().
GetTop
();
wxClientDisplayRect
(
&
x
,
&
y
,
&
w
,
&
h
);
wxClientDisplayRect
(
&
x
,
&
y
,
&
w
,
&
h
);
WarpPointer
(
x
+
orgx
+
20
,
y
+
orgy
+
(
list_size
.
y
/
2
)
);
WarpPointer
(
x
+
orgx
+
20
,
y
+
orgy
+
(
list_size
.
y
/
2
)
);
}
/*********************************************/
wxString
WinEDAListBox
::
GetTextSelection
()
/*********************************************/
{
wxString
text
=
m_List
->
GetStringSelection
();
wxString
text
=
m_List
->
GetStringSelection
();
return
text
;
}
/***************************************************************/
void
WinEDAListBox
::
WinEDAListBox
::
Append
(
const
wxString
&
item
)
void
WinEDAListBox
::
Append
(
const
wxString
&
item
)
/***************************************************************/
{
m_List
->
Append
(
item
);
m_List
->
Append
(
item
);
}
/******************************************************************************/
void
WinEDAListBox
::
InsertItems
(
const
wxArrayString
&
itemlist
,
int
position
)
void
WinEDAListBox
::
InsertItems
(
const
wxArrayString
&
itemlist
,
int
position
)
/******************************************************************************/
{
m_List
->
InsertItems
(
itemlist
,
position
);
m_List
->
InsertItems
(
itemlist
,
position
);
}
/************************************************/
void
WinEDAListBox
::
OnCancelClick
(
wxCommandEvent
&
event
)
void
WinEDAListBox
::
OnCancelClick
(
wxCommandEvent
&
event
)
/************************************************/
{
EndModal
(
-
1
);
EndModal
(
-
1
);
}
/*****************************************************/
void
WinEDAListBox
::
ClickOnList
(
wxCommandEvent
&
event
)
void
WinEDAListBox
::
ClickOnList
(
wxCommandEvent
&
event
)
/*****************************************************/
{
wxString
text
;
wxString
text
;
if
(
m_MoveFct
)
if
(
m_MoveFct
)
{
m_WinMsg
->
Clear
();
text
=
m_List
->
GetStringSelection
();
m_MoveFct
(
text
);
m_WinMsg
->
WriteText
(
text
.
GetData
()
);
m_MoveFct
(
text
);
m_WinMsg
->
WriteText
(
text
.
GetData
()
);
}
}
/*******************************************************/
void
WinEDAListBox
::
D_ClickOnList
(
wxCommandEvent
&
event
)
void
WinEDAListBox
::
D_ClickOnList
(
wxCommandEvent
&
event
)
/*******************************************************/
{
int
ii
=
m_List
->
GetSelection
();
EndModal
(
ii
);
int
ii
=
m_List
->
GetSelection
();
EndModal
(
ii
);
}
/***********************************************/
void
WinEDAListBox
::
OnOkClick
(
wxCommandEvent
&
event
)
void
WinEDAListBox
::
OnOkClick
(
wxCommandEvent
&
event
)
/***********************************************/
{
int
ii
=
m_List
->
GetSelection
();
EndModal
(
ii
);
int
ii
=
m_List
->
GetSelection
();
EndModal
(
ii
);
}
/***********************************************/
void
WinEDAListBox
::
OnClose
(
wxCloseEvent
&
event
)
void
WinEDAListBox
::
OnClose
(
wxCloseEvent
&
event
)
/***********************************************/
{
EndModal
(
-
1
);
EndModal
(
-
1
);
}
/********************************************************************/
static
int
SortItems
(
const
wxString
**
ptr1
,
const
wxString
**
ptr2
)
static
int
SortItems
(
const
wxString
**
ptr1
,
const
wxString
**
ptr2
)
/********************************************************************/
/* Routines de comparaison pour le tri tri alphabetique,
* avec traitement des nombres en tant que valeur numerique
*/
...
...
@@ -233,35 +256,35 @@ static int SortItems( const wxString ** ptr1, const wxString ** ptr2 )
void
WinEDAListBox
::
SortList
()
/************************************/
{
int
ii
,
NbItems
=
m_List
->
GetCount
();
const
wxString
**
BufList
;
int
ii
,
NbItems
=
m_List
->
GetCount
();
const
wxString
**
BufList
;
if
(
NbItems
<=
0
)
return
;
if
(
NbItems
<=
0
)
return
;
BufList
=
(
const
wxString
**
)
MyZMalloc
(
100
*
NbItems
*
sizeof
(
wxString
*
)
);
BufList
=
(
const
wxString
**
)
MyZMalloc
(
100
*
NbItems
*
sizeof
(
wxString
*
)
);
for
(
ii
=
0
;
ii
<
NbItems
;
ii
++
)
{
BufList
[
ii
]
=
new
wxString
(
m_List
->
GetString
(
ii
)
);
BufList
[
ii
]
=
new
wxString
(
m_List
->
GetString
(
ii
)
);
}
qsort
(
BufList
,
NbItems
,
sizeof
(
wxString
*
),
(
int
(
*
)(
const
void
*
,
const
void
*
))
SortItems
);
qsort
(
BufList
,
NbItems
,
sizeof
(
wxString
*
),
(
int
(
*
)
(
const
void
*
,
const
void
*
)
)
SortItems
);
m_List
->
Clear
();
for
(
ii
=
0
;
ii
<
NbItems
;
ii
++
)
{
m_List
->
Append
(
*
BufList
[
ii
]
);
m_List
->
Append
(
*
BufList
[
ii
]
);
delete
BufList
[
ii
];
}
free
(
BufList
);
free
(
BufList
);
}
/****************************************************/
void
WinEDAListBox
::
OnKeyEvent
(
wxKeyEvent
&
event
)
void
WinEDAListBox
::
OnKeyEvent
(
wxKeyEvent
&
event
)
/****************************************************/
{
event
.
Skip
();
}
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