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
Hide 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
...
@@ -4,6 +4,12 @@ Started 2007-June-11
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.
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>
2007-Oct-19 UPDATE Dick Hollenbeck <dick@softplc.com>
================================================================================
================================================================================
+ pcbnew
+ pcbnew
...
...
common/selcolor.cpp
View file @
5d2817ff
/****************
********
/
/****************/
/*
SETCOLOR.CPP
*/
/*
SETCOLOR.CPP
*/
/****************
********
/
/****************/
/* Affichage et selection de la palette des couleurs disponibles
/* Affichage et selection de la palette des couleurs disponibles
* dans une frame
* dans une frame
*/
*/
...
@@ -12,9 +12,11 @@
...
@@ -12,9 +12,11 @@
#include "common.h"
#include "common.h"
#include "colors.h"
#include "colors.h"
#include "wx/statline.h"
enum
colors_id
{
enum
colors_id
{
ID_COLOR_BLACK
=
2000
,
// ID_COLOR_ = ID_COLOR_BLACK a ID_COLOR_BLACK + 31
ID_COLOR_BLACK
=
2000
,
// ID_COLOR_ = ID_COLOR_BLACK a ID_COLOR_BLACK + 31
};
};
...
@@ -27,23 +29,24 @@ class WinEDA_SelColorFrame: public wxDialog
...
@@ -27,23 +29,24 @@ class WinEDA_SelColorFrame: public wxDialog
private
:
private
:
public
:
public
:
// Constructor and destructor
// Constructor and destructor
WinEDA_SelColorFrame
(
wxWindow
*
parent
,
WinEDA_SelColorFrame
(
wxWindow
*
parent
,
const
wxPoint
&
framepos
,
int
OldColor
);
const
wxPoint
&
framepos
,
int
OldColor
);
~
WinEDA_SelColorFrame
()
{};
~
WinEDA_SelColorFrame
()
{};
private
:
private
:
void
OnCancel
(
wxCommandEvent
&
event
);
void
OnCancel
(
wxCommandEvent
&
event
);
void
SelColor
(
wxCommandEvent
&
event
);
void
SelColor
(
wxCommandEvent
&
event
);
DECLARE_EVENT_TABLE
()
DECLARE_EVENT_TABLE
()
};
};
/* Construction de la table des evenements pour FrameClassMain */
/* Construction de la table des evenements pour FrameClassMain */
BEGIN_EVENT_TABLE
(
WinEDA_SelColorFrame
,
wxDialog
)
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
,
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
()
END_EVENT_TABLE
()
...
@@ -54,105 +57,147 @@ int DisplayColorFrame(wxWindow * parent, int OldColor)
...
@@ -54,105 +57,147 @@ int DisplayColorFrame(wxWindow * parent, int OldColor)
wxPoint
framepos
;
wxPoint
framepos
;
int
color
;
int
color
;
wxGetMousePosition
(
&
framepos
.
x
,
&
framepos
.
y
);
wxGetMousePosition
(
&
framepos
.
x
,
&
framepos
.
y
);
WinEDA_SelColorFrame
*
frame
=
new
WinEDA_SelColorFrame
(
parent
,
WinEDA_SelColorFrame
*
frame
=
new
WinEDA_SelColorFrame
(
parent
,
framepos
,
OldColor
);
framepos
,
OldColor
);
color
=
frame
->
ShowModal
();
color
=
frame
->
ShowModal
();
frame
->
Destroy
();
frame
->
Destroy
();
if
(
color
>
NBCOLOR
)
if
(
color
>
NBCOLOR
)
color
=
-
1
;
color
=
-
1
;
return
color
;
return
color
;
}
}
/*******************************************************************/
/*******************************************************************/
WinEDA_SelColorFrame
::
WinEDA_SelColorFrame
(
wxWindow
*
parent
,
WinEDA_SelColorFrame
::
WinEDA_SelColorFrame
(
wxWindow
*
parent
,
const
wxPoint
&
framepos
,
int
OldColor
)
:
const
wxPoint
&
framepos
,
int
OldColor
)
:
wxDialog
(
parent
,
-
1
,
_
(
"Colors"
),
framepos
,
wxSize
(
375
,
240
)
,
wxDialog
(
parent
,
-
1
,
_
(
"Colors"
),
framepos
,
wxDefaultSize
,
DIALOG_STYLE
)
DIALOG_STYLE
)
/*******************************************************************/
/*******************************************************************/
{
{
#define START_Y 10
wxBoxSizer
*
OuterBoxSizer
=
NULL
;
wxBitmapButton
*
BitmapButton
;
wxBoxSizer
*
MainBoxSizer
=
NULL
;
wxButton
*
Button
;
wxBoxSizer
*
ColumnBoxSizer
=
NULL
;
wxBoxSizer
*
RowBoxSizer
=
NULL
;
wxBitmapButton
*
BitmapButton
=
NULL
;
wxStaticText
*
text
=
NULL
;
wxStaticLine
*
line
=
NULL
;
wxButton
*
Button
=
NULL
;
int
ii
,
butt_ID
,
buttcolor
;
int
ii
,
butt_ID
,
buttcolor
;
wxPoint
pos
;
int
w
=
20
,
h
=
20
;
int
w
=
20
,
h
=
20
;
wxStaticText
*
text
;
int
right
,
bottom
,
line_height
;
bool
ColorFound
=
false
;
bool
ColorFound
=
false
;
SetFont
(
*
g_DialogFont
);
SetFont
(
*
g_DialogFont
);
SetReturnCode
(
-
1
);
SetReturnCode
(
-
1
);
bottom
=
pos
.
x
=
5
;
right
=
pos
.
y
=
START_Y
;
line_height
=
h
;
OuterBoxSizer
=
new
wxBoxSizer
(
wxVERTICAL
);
for
(
ii
=
0
;
ColorRefs
[
ii
].
m_Name
!=
NULL
;
ii
++
)
SetSizer
(
OuterBoxSizer
);
{
butt_ID
=
ID_COLOR_BLACK
+
ii
;
MainBoxSizer
=
new
wxBoxSizer
(
wxHORIZONTAL
);
wxMemoryDC
iconDC
;
OuterBoxSizer
->
Add
(
MainBoxSizer
,
0
,
wxALIGN_CENTER_HORIZONTAL
|
wxLEFT
|
wxRIGHT
|
wxTOP
,
5
);
wxBitmap
ButtBitmap
(
w
,
h
);
wxBrush
Brush
;
for
(
ii
=
0
;
ColorRefs
[
ii
].
m_Name
!=
NULL
;
ii
++
)
iconDC
.
SelectObject
(
ButtBitmap
);
{
buttcolor
=
ColorRefs
[
ii
].
m_Numcolor
;
// Provide a separate column for every eight buttons (and
iconDC
.
SetPen
(
*
wxBLACK_PEN
);
// their associated text strings)
Brush
.
SetColour
(
if
(
ii
%
8
==
0
)
ColorRefs
[
buttcolor
].
m_Red
,
{
ColorRefs
[
buttcolor
].
m_Green
,
ColumnBoxSizer
=
new
wxBoxSizer
(
wxVERTICAL
);
ColorRefs
[
buttcolor
].
m_Blue
MainBoxSizer
->
Add
(
ColumnBoxSizer
,
0
,
wxALIGN_TOP
|
wxTOP
,
5
);
);
}
Brush
.
SetStyle
(
wxSOLID
);
// Provide a sizer for each button and its associated text string
iconDC
.
SetBrush
(
Brush
);
RowBoxSizer
=
new
wxBoxSizer
(
wxHORIZONTAL
);
iconDC
.
SetBackground
(
*
wxGREY_BRUSH
);
ColumnBoxSizer
->
Add
(
RowBoxSizer
,
0
,
wxALIGN_LEFT
,
5
);
iconDC
.
Clear
();
iconDC
.
DrawRoundedRectangle
(
0
,
0
,
w
,
h
,
(
double
)
h
/
3
);
butt_ID
=
ID_COLOR_BLACK
+
ii
;
wxMemoryDC
iconDC
;
text
=
new
wxStaticText
(
this
,
-
1
,
wxBitmap
ButtBitmap
(
w
,
h
);
ColorRefs
[
ii
].
m_Name
,
wxBrush
Brush
;
wxPoint
(
pos
.
x
+
2
+
w
,
pos
.
y
),
iconDC
.
SelectObject
(
ButtBitmap
);
wxSize
(
-
1
,
-
1
),
0
);
buttcolor
=
ColorRefs
[
ii
].
m_Numcolor
;
line_height
=
MAX
(
line_height
,
text
->
GetRect
().
GetHeight
()
);
iconDC
.
SetPen
(
*
wxBLACK_PEN
);
right
=
MAX
(
right
,
text
->
GetRect
().
GetRight
()
);
Brush
.
SetColour
(
bottom
=
MAX
(
bottom
,
text
->
GetRect
().
GetBottom
()
);
ColorRefs
[
buttcolor
].
m_Red
,
ColorRefs
[
buttcolor
].
m_Green
,
BitmapButton
=
new
wxBitmapButton
(
this
,
butt_ID
,
ColorRefs
[
buttcolor
].
m_Blue
ButtBitmap
,
);
wxPoint
(
pos
.
x
,
pos
.
y
-
(
h
-
line_height
)
/
2
),
Brush
.
SetStyle
(
wxSOLID
);
wxSize
(
w
,
h
)
);
iconDC
.
SetBrush
(
Brush
);
// Set focus to this button if its color matches the
iconDC
.
SetBackground
(
*
wxGREY_BRUSH
);
// color which had been selected previously (for
iconDC
.
Clear
();
// whichever layer's color is currently being edited).
iconDC
.
DrawRoundedRectangle
(
0
,
0
,
w
,
h
,
(
double
)
h
/
3
);
if
(
OldColor
==
buttcolor
)
{
BitmapButton
=
new
wxBitmapButton
(
this
,
butt_ID
,
ButtBitmap
,
ColorFound
=
true
;
wxDefaultPosition
,
wxSize
(
w
,
h
)
);
BitmapButton
->
SetFocus
();
RowBoxSizer
->
Add
(
BitmapButton
,
0
,
wxALIGN_CENTER_VERTICAL
|
wxLEFT
|
wxBOTTOM
,
5
);
}
// Set focus to this button if its color matches the
pos
.
y
+=
line_height
+
5
;
// color which had been selected previously (for
if
(
ii
==
7
||
ii
==
15
)
// whichever layer's color is currently being edited).
{
if
(
OldColor
==
buttcolor
)
pos
.
x
=
right
+
10
;
{
pos
.
y
=
START_Y
;
ColorFound
=
true
;
}
BitmapButton
->
SetFocus
();
}
}
pos
.
x
=
140
;
text
=
new
wxStaticText
(
this
,
-
1
,
ColorRefs
[
ii
].
m_Name
,
wxDefaultPosition
,
wxDefaultSize
,
0
);
// Provide a Cancel button as well, so that this dialog
RowBoxSizer
->
Add
(
text
,
0
,
wxALIGN_CENTER_VERTICAL
|
wxLEFT
|
wxRIGHT
|
wxBOTTOM
,
5
);
// box can also be cancelled by pressing the Esc key.
}
Button
=
new
wxButton
(
this
,
wxID_CANCEL
,
_
(
"Cancel"
),
pos
);
Button
->
SetForegroundColour
(
*
wxBLUE
);
// Provide a Cancel button as well, so that this dialog
// Set focus to the Cancel button if the currently selected color
// box can also be cancelled by pressing the Esc key
// does not match any of the colors provided by this dialog box.
// (and also provide a horizontal static line to separate
// (That shouldn't ever happen in practice though.)
// that button from all of the other buttons).
if
(
!
ColorFound
)
Button
->
SetFocus
();
line
=
new
wxStaticLine
(
this
,
-
1
,
wxDefaultPosition
,
wxDefaultSize
,
wxLI_HORIZONTAL
);
OuterBoxSizer
->
Add
(
line
,
0
,
wxGROW
|
wxLEFT
|
wxRIGHT
|
wxTOP
,
5
);
SetClientSize
(
wxSize
(
right
+
10
,
bottom
+
40
)
);
#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
();
// Resize the dialog
if
(
GetSizer
())
{
GetSizer
()
->
SetSizeHints
(
this
);
}
}
}
...
@@ -162,10 +207,10 @@ void WinEDA_SelColorFrame::OnCancel(wxCommandEvent& WXUNUSED(event))
...
@@ -162,10 +207,10 @@ void WinEDA_SelColorFrame::OnCancel(wxCommandEvent& WXUNUSED(event))
/* Called by the Cancel button
/* Called by the Cancel button
*/
*/
{
{
// Setting the return value to -1 indicates that the
// Setting the return value to -1 indicates that the
// dialog box has been cancelled (and thus that the
// dialog box has been cancelled (and thus that the
// previously selected color is to be retained).
// previously selected color is to be retained).
EndModal
(
-
1
);
EndModal
(
-
1
);
}
}
...
@@ -175,6 +220,5 @@ void WinEDA_SelColorFrame::SelColor(wxCommandEvent& event)
...
@@ -175,6 +220,5 @@ void WinEDA_SelColorFrame::SelColor(wxCommandEvent& event)
{
{
int
id
=
event
.
GetId
();
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