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
5d2817ff
Commit
5d2817ff
authored
Oct 21, 2007
by
g_harland
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Sizers now provided within the "Colors" dialog box
parent
3d82623c
Changes
2
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
158 additions
and
108 deletions
+158
-108
change_log.txt
change_log.txt
+6
-0
selcolor.cpp
common/selcolor.cpp
+152
-108
No files found.
change_log.txt
View file @
5d2817ff
...
...
@@ -4,6 +4,12 @@ Started 2007-June-11
Please add newer entries at the top, list the date and your name with
email address.
2007-Oct-21 UPDATE Geoff Harland <gharlandau@yahoo.com.au>
================================================================================
+ eeschema & pcbnew & gerbview
* Sizers have now been provided within the "Colors" dialog box.
2007-Oct-19 UPDATE Dick Hollenbeck <dick@softplc.com>
================================================================================
+ pcbnew
...
...
common/selcolor.cpp
View file @
5d2817ff
/****************
********
/
/****************/
/* SETCOLOR.CPP */
/****************
********
/
/****************/
/* Affichage et selection de la palette des couleurs disponibles
* dans une frame
*/
...
...
@@ -12,6 +12,8 @@
#include "common.h"
#include "colors.h"
#include "wx/statline.h"
enum
colors_id
{
ID_COLOR_BLACK
=
2000
,
// ID_COLOR_ = ID_COLOR_BLACK a ID_COLOR_BLACK + 31
...
...
@@ -28,8 +30,8 @@ private:
public
:
// Constructor and destructor
WinEDA_SelColorFrame
(
wxWindow
*
parent
,
const
wxPoint
&
framepos
,
int
OldColor
);
WinEDA_SelColorFrame
(
wxWindow
*
parent
,
const
wxPoint
&
framepos
,
int
OldColor
);
~
WinEDA_SelColorFrame
()
{};
private
:
...
...
@@ -41,9 +43,10 @@ private:
/* Construction de la table des evenements pour FrameClassMain */
BEGIN_EVENT_TABLE
(
WinEDA_SelColorFrame
,
wxDialog
)
EVT_BUTTON
(
wxID_CANCEL
,
WinEDA_SelColorFrame
::
OnCancel
)
EVT_BUTTON
(
wxID_CANCEL
,
WinEDA_SelColorFrame
::
OnCancel
)
EVT_COMMAND_RANGE
(
ID_COLOR_BLACK
,
ID_COLOR_BLACK
+
31
,
wxEVT_COMMAND_BUTTON_CLICKED
,
WinEDA_SelColorFrame
::
SelColor
)
wxEVT_COMMAND_BUTTON_CLICKED
,
WinEDA_SelColorFrame
::
SelColor
)
END_EVENT_TABLE
()
...
...
@@ -56,8 +59,8 @@ int color;
wxGetMousePosition
(
&
framepos
.
x
,
&
framepos
.
y
);
WinEDA_SelColorFrame
*
frame
=
new
WinEDA_SelColorFrame
(
parent
,
framepos
,
OldColor
);
WinEDA_SelColorFrame
*
frame
=
new
WinEDA_SelColorFrame
(
parent
,
framepos
,
OldColor
);
color
=
frame
->
ShowModal
();
frame
->
Destroy
();
if
(
color
>
NBCOLOR
)
...
...
@@ -67,61 +70,71 @@ int color;
/*******************************************************************/
WinEDA_SelColorFrame
::
WinEDA_SelColorFrame
(
wxWindow
*
parent
,
const
wxPoint
&
framepos
,
int
OldColor
)
:
wxDialog
(
parent
,
-
1
,
_
(
"Colors"
),
framepos
,
wxSize
(
375
,
240
)
,
WinEDA_SelColorFrame
::
WinEDA_SelColorFrame
(
wxWindow
*
parent
,
const
wxPoint
&
framepos
,
int
OldColor
)
:
wxDialog
(
parent
,
-
1
,
_
(
"Colors"
),
framepos
,
wxDefaultSize
,
DIALOG_STYLE
)
/*******************************************************************/
{
#define START_Y 10
wxBitmapButton
*
BitmapButton
;
wxButton
*
Button
;
wxBoxSizer
*
OuterBoxSizer
=
NULL
;
wxBoxSizer
*
MainBoxSizer
=
NULL
;
wxBoxSizer
*
ColumnBoxSizer
=
NULL
;
wxBoxSizer
*
RowBoxSizer
=
NULL
;
wxBitmapButton
*
BitmapButton
=
NULL
;
wxStaticText
*
text
=
NULL
;
wxStaticLine
*
line
=
NULL
;
wxButton
*
Button
=
NULL
;
int
ii
,
butt_ID
,
buttcolor
;
wxPoint
pos
;
int
w
=
20
,
h
=
20
;
wxStaticText
*
text
;
int
right
,
bottom
,
line_height
;
bool
ColorFound
=
false
;
SetFont
(
*
g_DialogFont
);
SetFont
(
*
g_DialogFont
);
SetReturnCode
(
-
1
);
SetReturnCode
(
-
1
);
OuterBoxSizer
=
new
wxBoxSizer
(
wxVERTICAL
);
SetSizer
(
OuterBoxSizer
);
bottom
=
pos
.
x
=
5
;
right
=
pos
.
y
=
START_Y
;
line_height
=
h
;
for
(
ii
=
0
;
ColorRefs
[
ii
].
m_Name
!=
NULL
;
ii
++
)
MainBoxSizer
=
new
wxBoxSizer
(
wxHORIZONTAL
);
OuterBoxSizer
->
Add
(
MainBoxSizer
,
0
,
wxALIGN_CENTER_HORIZONTAL
|
wxLEFT
|
wxRIGHT
|
wxTOP
,
5
);
for
(
ii
=
0
;
ColorRefs
[
ii
].
m_Name
!=
NULL
;
ii
++
)
{
// Provide a separate column for every eight buttons (and
// their associated text strings)
if
(
ii
%
8
==
0
)
{
ColumnBoxSizer
=
new
wxBoxSizer
(
wxVERTICAL
);
MainBoxSizer
->
Add
(
ColumnBoxSizer
,
0
,
wxALIGN_TOP
|
wxTOP
,
5
);
}
// Provide a sizer for each button and its associated text string
RowBoxSizer
=
new
wxBoxSizer
(
wxHORIZONTAL
);
ColumnBoxSizer
->
Add
(
RowBoxSizer
,
0
,
wxALIGN_LEFT
,
5
);
butt_ID
=
ID_COLOR_BLACK
+
ii
;
wxMemoryDC
iconDC
;
wxBitmap
ButtBitmap
(
w
,
h
);
wxBitmap
ButtBitmap
(
w
,
h
);
wxBrush
Brush
;
iconDC
.
SelectObject
(
ButtBitmap
);
buttcolor
=
ColorRefs
[
ii
].
m_Numcolor
;
iconDC
.
SetPen
(
*
wxBLACK_PEN
);
iconDC
.
SetPen
(
*
wxBLACK_PEN
);
Brush
.
SetColour
(
ColorRefs
[
buttcolor
].
m_Red
,
ColorRefs
[
buttcolor
].
m_Green
,
ColorRefs
[
buttcolor
].
m_Blue
);
Brush
.
SetStyle
(
wxSOLID
);
Brush
.
SetStyle
(
wxSOLID
);
iconDC
.
SetBrush
(
Brush
);
iconDC
.
SetBackground
(
*
wxGREY_BRUSH
);
iconDC
.
SetBrush
(
Brush
);
iconDC
.
SetBackground
(
*
wxGREY_BRUSH
);
iconDC
.
Clear
();
iconDC
.
DrawRoundedRectangle
(
0
,
0
,
w
,
h
,
(
double
)
h
/
3
);
text
=
new
wxStaticText
(
this
,
-
1
,
ColorRefs
[
ii
].
m_Name
,
wxPoint
(
pos
.
x
+
2
+
w
,
pos
.
y
),
wxSize
(
-
1
,
-
1
),
0
);
line_height
=
MAX
(
line_height
,
text
->
GetRect
().
GetHeight
()
);
right
=
MAX
(
right
,
text
->
GetRect
().
GetRight
()
);
bottom
=
MAX
(
bottom
,
text
->
GetRect
().
GetBottom
()
);
iconDC
.
DrawRoundedRectangle
(
0
,
0
,
w
,
h
,
(
double
)
h
/
3
);
BitmapButton
=
new
wxBitmapButton
(
this
,
butt_ID
,
ButtBitmap
,
wxPoint
(
pos
.
x
,
pos
.
y
-
(
h
-
line_height
)
/
2
),
wxSize
(
w
,
h
)
);
BitmapButton
=
new
wxBitmapButton
(
this
,
butt_ID
,
ButtBitmap
,
wxDefaultPosition
,
wxSize
(
w
,
h
)
);
RowBoxSizer
->
Add
(
BitmapButton
,
0
,
wxALIGN_CENTER_VERTICAL
|
wxLEFT
|
wxBOTTOM
,
5
);
// Set focus to this button if its color matches the
// color which had been selected previously (for
...
...
@@ -132,27 +145,59 @@ bool ColorFound = false;
BitmapButton
->
SetFocus
();
}
pos
.
y
+=
line_height
+
5
;
if
(
ii
==
7
||
ii
==
15
)
{
pos
.
x
=
right
+
10
;
pos
.
y
=
START_Y
;
}
text
=
new
wxStaticText
(
this
,
-
1
,
ColorRefs
[
ii
].
m_Name
,
wxDefaultPosition
,
wxDefaultSize
,
0
);
RowBoxSizer
->
Add
(
text
,
0
,
wxALIGN_CENTER_VERTICAL
|
wxLEFT
|
wxRIGHT
|
wxBOTTOM
,
5
);
}
pos
.
x
=
140
;
// Provide a Cancel button as well, so that this dialog
// box can also be cancelled by pressing the Esc key.
Button
=
new
wxButton
(
this
,
wxID_CANCEL
,
_
(
"Cancel"
),
pos
);
// box can also be cancelled by pressing the Esc key
// (and also provide a horizontal static line to separate
// that button from all of the other buttons).
line
=
new
wxStaticLine
(
this
,
-
1
,
wxDefaultPosition
,
wxDefaultSize
,
wxLI_HORIZONTAL
);
OuterBoxSizer
->
Add
(
line
,
0
,
wxGROW
|
wxLEFT
|
wxRIGHT
|
wxTOP
,
5
);
#ifdef 0
BottomBoxSizer
=
new
wxBoxSizer
(
wxHORIZONTAL
);
OuterBoxSizer
->
Add
(
BottomBoxSizer
,
0
,
wxALIGN_CENTER_HORIZONTAL
|
wxALL
,
5
);
Button
=
new
wxButton
(
this
,
wxID_OK
,
_
(
"OK"
),
wxDefaultPosition
,
wxDefaultSize
,
0
);
Button
->
SetForegroundColour
(
*
wxRED
);
BottomBoxSizer
->
Add
(
Button
,
0
,
wxALIGN_CENTER_HORIZONTAL
|
wxALL
,
5
);
Button
=
new
wxButton
(
this
,
wxID_CANCEL
,
_
(
"Cancel"
),
wxDefaultPosition
,
wxDefaultSize
,
0
);
Button
->
SetForegroundColour
(
*
wxBLUE
);
BottomBoxSizer
->
Add
(
Button
,
0
,
wxALIGN_CENTER_HORIZONTAL
|
wxALL
,
5
);
// Dialog boxes usually contain both an "OK" button and a "Cancel" button (and sometimes
// also contain an "Apply" button). The previous code implements an additional sizer
// (to contain such buttons), then installs that sizer into the outermost sizer, then
// implements "OK" and "Cancel" buttons, and then installs those buttons into that sizer.
//
// However, as this particular dialog does not contain an "OK" button (nor an "Apply"
// button), it is not necessary to provide an additional sizer to contain (just) a
// "Cancel" button; that button can be installed directly into the outermost sizer
// instead. (Note that a value of 10 has been specified for the margin surrounding that
// button; that provides the same outcome as specifying the customary value of 5 for both
// that button, and the BottomBoxSizer that it would otherwise be installed within.)
#endif
Button
=
new
wxButton
(
this
,
wxID_CANCEL
,
_
(
"Cancel"
),
wxDefaultPosition
,
wxDefaultSize
,
0
);
Button
->
SetForegroundColour
(
*
wxBLUE
);
OuterBoxSizer
->
Add
(
Button
,
0
,
wxALIGN_CENTER_HORIZONTAL
|
wxALL
,
10
);
// Set focus to the Cancel button if the currently selected color
// does not match any of the colors provided by this dialog box.
// (That shouldn't ever happen in practice though.)
if
(
!
ColorFound
)
Button
->
SetFocus
();
SetClientSize
(
wxSize
(
right
+
10
,
bottom
+
40
)
);
// Resize the dialog
if
(
GetSizer
())
{
GetSizer
()
->
SetSizeHints
(
this
);
}
}
...
...
@@ -175,6 +220,5 @@ void WinEDA_SelColorFrame::SelColor(wxCommandEvent& event)
{
int
id
=
event
.
GetId
();
EndModal
(
id
-
ID_COLOR_BLACK
);
EndModal
(
id
-
ID_COLOR_BLACK
);
}
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