Commit 573f9841 authored by Maciej Suminski's avatar Maciej Suminski

Better way of marking 'brightened' mode for items.

parent 86f520f7
...@@ -79,25 +79,3 @@ void PAINTER::SetGAL( GAL* aGal ) ...@@ -79,25 +79,3 @@ void PAINTER::SetGAL( GAL* aGal )
{ {
m_gal = aGal; m_gal = aGal;
} }
void PAINTER::DrawBrightened( const VIEW_ITEM* aItem )
{
BOX2I box = aItem->ViewBBox();
RenderTarget oldTarget = m_gal->GetTarget();
m_gal->SetTarget( TARGET_OVERLAY );
m_gal->PushDepth();
m_gal->SetLayerDepth( -1.0 );
// Draw an outline that marks items as brightened
m_gal->SetIsStroke( true );
m_gal->SetLineWidth( 100000.0 );
m_gal->SetStrokeColor( m_brightenedColor );
m_gal->DrawRectangle( box.GetOrigin(), box.GetOrigin() + box.GetSize() );
m_gal->PopDepth();
m_gal->SetTarget( oldTarget );
}
...@@ -596,12 +596,6 @@ void VIEW::draw( VIEW_ITEM* aItem, int aLayer, bool aImmediate ) const ...@@ -596,12 +596,6 @@ void VIEW::draw( VIEW_ITEM* aItem, int aLayer, bool aImmediate ) const
if( !m_painter->Draw( aItem, aLayer ) ) if( !m_painter->Draw( aItem, aLayer ) )
aItem->ViewDraw( aLayer, m_gal ); // Alternative drawing method aItem->ViewDraw( aLayer, m_gal ); // Alternative drawing method
} }
// Draws a bright contour around the item
if( static_cast<const EDA_ITEM*>( aItem )->IsBrightened() )
{
m_painter->DrawBrightened( aItem );
}
} }
......
...@@ -474,11 +474,11 @@ public: ...@@ -474,11 +474,11 @@ public:
inline void SetSelected() { SetFlags( SELECTED ); ViewUpdate( COLOR ); } inline void SetSelected() { SetFlags( SELECTED ); ViewUpdate( COLOR ); }
inline void SetHighlighted() { SetFlags( HIGHLIGHTED ); ViewUpdate( COLOR ); } inline void SetHighlighted() { SetFlags( HIGHLIGHTED ); ViewUpdate( COLOR ); }
inline void SetBrightened() { SetFlags( BRIGHTENED ); ViewUpdate( COLOR ); } inline void SetBrightened() { SetFlags( BRIGHTENED ); }
inline void ClearSelected() { ClearFlags( SELECTED ); ViewUpdate( COLOR ); } inline void ClearSelected() { ClearFlags( SELECTED ); ViewUpdate( COLOR ); }
inline void ClearHighlighted() { ClearFlags( HIGHLIGHTED ); ViewUpdate( COLOR ); } inline void ClearHighlighted() { ClearFlags( HIGHLIGHTED ); ViewUpdate( COLOR ); }
inline void ClearBrightened() { ClearFlags( BRIGHTENED ); ViewUpdate( COLOR ); } inline void ClearBrightened() { ClearFlags( BRIGHTENED ); }
void SetModified(); void SetModified();
......
...@@ -224,13 +224,6 @@ public: ...@@ -224,13 +224,6 @@ public:
*/ */
virtual bool Draw( const VIEW_ITEM* aItem, int aLayer ) = 0; virtual bool Draw( const VIEW_ITEM* aItem, int aLayer ) = 0;
/**
* Function DrawBrightened
* Draws a special marking for the item.
* @param aItem is the item that is going to be marked.
*/
virtual void DrawBrightened( const VIEW_ITEM* aItem );
protected: protected:
/// Instance of graphic abstraction layer that gives an interface to call /// Instance of graphic abstraction layer that gives an interface to call
/// commands used to draw (eg. DrawLine, DrawCircle, etc.) /// commands used to draw (eg. DrawLine, DrawCircle, etc.)
......
...@@ -221,6 +221,7 @@ set(PCBNEW_CLASS_SRCS ...@@ -221,6 +221,7 @@ set(PCBNEW_CLASS_SRCS
tools/selection_tool.cpp tools/selection_tool.cpp
tools/selection_area.cpp tools/selection_area.cpp
tools/bright_box.cpp
tools/move_tool.cpp tools/move_tool.cpp
tools/pcb_tools.cpp tools/pcb_tools.cpp
) )
......
...@@ -41,6 +41,7 @@ ...@@ -41,6 +41,7 @@
#include "selection_tool.h" #include "selection_tool.h"
#include "selection_area.h" #include "selection_area.h"
#include "bright_box.h"
using namespace KiGfx; using namespace KiGfx;
using boost::optional; using boost::optional;
...@@ -334,8 +335,8 @@ bool SELECTION_TOOL::selectMultiple() ...@@ -334,8 +335,8 @@ bool SELECTION_TOOL::selectMultiple()
BOARD_ITEM* SELECTION_TOOL::disambiguationMenu( GENERAL_COLLECTOR* aCollector ) BOARD_ITEM* SELECTION_TOOL::disambiguationMenu( GENERAL_COLLECTOR* aCollector )
{ {
OPT_TOOL_EVENT evt;
BOARD_ITEM* current = NULL; BOARD_ITEM* current = NULL;
boost::shared_ptr<BRIGHT_BOX> brightBox;
m_menu.reset( new CONTEXT_MENU() ); m_menu.reset( new CONTEXT_MENU() );
m_menu->SetTitle( _( "Clarify selection" ) ); m_menu->SetTitle( _( "Clarify selection" ) );
...@@ -352,10 +353,13 @@ BOARD_ITEM* SELECTION_TOOL::disambiguationMenu( GENERAL_COLLECTOR* aCollector ) ...@@ -352,10 +353,13 @@ BOARD_ITEM* SELECTION_TOOL::disambiguationMenu( GENERAL_COLLECTOR* aCollector )
SetContextMenu( m_menu.get(), CMENU_NOW ); SetContextMenu( m_menu.get(), CMENU_NOW );
while( evt = Wait() ) while( OPT_TOOL_EVENT evt = Wait() )
{ {
wxLogDebug( wxT( "disambiguation menu event") );
if( evt->Action() == TA_ContextMenuUpdate ) if( evt->Action() == TA_ContextMenuUpdate )
{ {
// User has pointed an item, so show it in a different way
if( current ) if( current )
current->ClearBrightened(); current->ClearBrightened();
...@@ -380,14 +384,20 @@ BOARD_ITEM* SELECTION_TOOL::disambiguationMenu( GENERAL_COLLECTOR* aCollector ) ...@@ -380,14 +384,20 @@ BOARD_ITEM* SELECTION_TOOL::disambiguationMenu( GENERAL_COLLECTOR* aCollector )
{ {
current = ( *aCollector )[*id]; current = ( *aCollector )[*id];
current->SetSelected(); current->SetSelected();
return current;
} }
return NULL; break;
}
if( current && current->IsBrightened() )
{
brightBox.reset( new BRIGHT_BOX( current ) );
getView()->Add( brightBox.get() );
} }
} }
return NULL; getView()->MarkTargetDirty( TARGET_OVERLAY );
return current;
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment