From e9412c187da3f62f01bc5acb6190af2d5a395ccb Mon Sep 17 00:00:00 2001 From: "Jon A. Cruz" Date: Wed, 16 May 2012 19:33:16 -0700 Subject: Corrected protected type access (comments were incorrect). Unified color set types; fixed uninitialized member; Switched colorsets to references; Added const correctness. (bzr r11373) --- src/ui/tool/selectable-control-point.cpp | 72 ++++++++++++++++---------------- 1 file changed, 35 insertions(+), 37 deletions(-) (limited to 'src/ui/tool/selectable-control-point.cpp') diff --git a/src/ui/tool/selectable-control-point.cpp b/src/ui/tool/selectable-control-point.cpp index cec2e7b07..f431b9d57 100644 --- a/src/ui/tool/selectable-control-point.cpp +++ b/src/ui/tool/selectable-control-point.cpp @@ -1,8 +1,6 @@ -/** @file - * Desktop-bound selectable control object - implementation - */ /* Authors: * Krzysztof KosiƄski + * Jon A. Cruz * * Copyright (C) 2009 Authors * Released under GNU GPL, read the file 'COPYING' for more information @@ -15,34 +13,32 @@ namespace Inkscape { namespace UI { -static SelectableControlPoint::ColorSet default_scp_color_set = { - { - {0xffffff00, 0x01000000}, // normal fill, stroke - {0xff0000ff, 0x01000000}, // mouseover fill, stroke - {0x0000ffff, 0x01000000} // clicked fill, stroke - }, +ControlPoint::ColorSet SelectableControlPoint::_default_scp_color_set = { + {0xffffff00, 0x01000000}, // normal fill, stroke + {0xff0000ff, 0x01000000}, // mouseover fill, stroke + {0x0000ffff, 0x01000000}, // clicked fill, stroke + // {0x0000ffff, 0x000000ff}, // normal fill, stroke when selected {0xff000000, 0x000000ff}, // mouseover fill, stroke when selected {0xff000000, 0x000000ff} // clicked fill, stroke when selected }; -SelectableControlPoint::SelectableControlPoint(SPDesktop *d, Geom::Point const &initial_pos, - SPAnchorType anchor, SPCtrlShapeType shape, unsigned int size, - ControlPointSelection &sel, ColorSet *cset, SPCanvasGroup *group) - : ControlPoint (d, initial_pos, anchor, shape, size, - cset ? reinterpret_cast(cset) - : reinterpret_cast(&default_scp_color_set), group) - , _selection (sel) +SelectableControlPoint::SelectableControlPoint(SPDesktop *d, Geom::Point const &initial_pos, SPAnchorType anchor, + SPCtrlShapeType shape, unsigned int size, + ControlPointSelection &sel, + ColorSet const &cset, SPCanvasGroup *group) : + ControlPoint(d, initial_pos, anchor, shape, size, cset, group), + _selection(sel) { _selection.allPoints().insert(this); } -SelectableControlPoint::SelectableControlPoint(SPDesktop *d, Geom::Point const &initial_pos, - SPAnchorType anchor, Glib::RefPtr pixbuf, - ControlPointSelection &sel, ColorSet *cset, SPCanvasGroup *group) - : ControlPoint (d, initial_pos, anchor, pixbuf, - cset ? reinterpret_cast(cset) - : reinterpret_cast(&default_scp_color_set), group) - , _selection (sel) + +SelectableControlPoint::SelectableControlPoint(SPDesktop *d, Geom::Point const &initial_pos, SPAnchorType anchor, + Glib::RefPtr pixbuf, + ControlPointSelection &sel, + ColorSet const &cset, SPCanvasGroup *group) : + ControlPoint (d, initial_pos, anchor, pixbuf, cset, group), + _selection (sel) { _selection.allPoints().insert(this); } @@ -107,21 +103,23 @@ void SelectableControlPoint::_setState(State state) { if (!selected()) { ControlPoint::_setState(state); - return; - } - - ColorSet *cset = reinterpret_cast(_cset); - ColorEntry current = {0, 0}; - switch (state) { - case STATE_NORMAL: - current = cset->selected_normal; break; - case STATE_MOUSEOVER: - current = cset->selected_mouseover; break; - case STATE_CLICKED: - current = cset->selected_clicked; break; + } else { + ColorEntry current = {0, 0}; + ColorSet const &activeCset = (_isLurking()) ? invisible_cset : _cset; + switch (state) { + case STATE_NORMAL: + current = activeCset.selected_normal; + break; + case STATE_MOUSEOVER: + current = activeCset.selected_mouseover; + break; + case STATE_CLICKED: + current = activeCset.selected_clicked; + break; + } + _setColors(current); + _state = state; } - _setColors(current); - _state = state; } } // namespace UI -- cgit v1.2.3