reimplement: * m1x2 on clipper point = do clip
This commit is contained in:
parent
a42709f80a
commit
05ea23c623
|
|
@ -48,5 +48,6 @@ void Clipper_Destroy();
|
||||||
void Clipper_modeChanged( bool isClipper );
|
void Clipper_modeChanged( bool isClipper );
|
||||||
bool Clipper_get2pointsIn2d();
|
bool Clipper_get2pointsIn2d();
|
||||||
void ClipperModeQuick();
|
void ClipperModeQuick();
|
||||||
|
void Clipper_doClip();
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
||||||
|
|
@ -5532,11 +5532,15 @@ void mouseUp( DeviceVector position ){
|
||||||
typedef MemberCaller1<Selector_, DeviceVector, &Selector_::mouseUp> MouseUpCaller;
|
typedef MemberCaller1<Selector_, DeviceVector, &Selector_::mouseUp> MouseUpCaller;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
#include "timer.h"
|
||||||
class Manipulator_
|
class Manipulator_
|
||||||
{
|
{
|
||||||
const DeviceVector& m_epsilon;
|
const DeviceVector& m_epsilon;
|
||||||
const ModifierFlags& m_state;
|
const ModifierFlags& m_state;
|
||||||
|
|
||||||
|
Timer m_timer;
|
||||||
|
bool m_timerDoubleClicked;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
const View* m_view;
|
const View* m_view;
|
||||||
|
|
||||||
|
|
@ -5546,14 +5550,22 @@ bool m_mouseMovedWhilePressed;
|
||||||
Manipulator_( const DeviceVector& epsilon, const ModifierFlags& state ) :
|
Manipulator_( const DeviceVector& epsilon, const ModifierFlags& state ) :
|
||||||
m_epsilon( epsilon ),
|
m_epsilon( epsilon ),
|
||||||
m_state( state ),
|
m_state( state ),
|
||||||
|
m_timerDoubleClicked( false ),
|
||||||
m_moving_transformOrigin( false ),
|
m_moving_transformOrigin( false ),
|
||||||
m_mouseMovedWhilePressed( false ) {
|
m_mouseMovedWhilePressed( false ) {
|
||||||
}
|
}
|
||||||
|
|
||||||
bool mouseDown( DeviceVector position ){
|
bool mouseDown( DeviceVector position ){
|
||||||
|
m_timerDoubleClicked = m_timer.elapsed_msec() < 200;
|
||||||
|
m_timer.start();
|
||||||
return getSelectionSystem().SelectManipulator( *m_view, &position[0], &m_epsilon[0] );
|
return getSelectionSystem().SelectManipulator( *m_view, &position[0], &m_epsilon[0] );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void tryClipperDoubleClick() const {
|
||||||
|
if( m_timerDoubleClicked && getSelectionSystem().ManipulatorMode() == SelectionSystem::eClip )
|
||||||
|
Clipper_doClip();
|
||||||
|
}
|
||||||
|
|
||||||
void mouseMoved( DeviceVector position ){
|
void mouseMoved( DeviceVector position ){
|
||||||
if( m_mouseMovedWhilePressed )
|
if( m_mouseMovedWhilePressed )
|
||||||
getSelectionSystem().MoveSelected( *m_view, &position[0], bitfield_enabled( m_state, c_modifierShift ),
|
getSelectionSystem().MoveSelected( *m_view, &position[0], bitfield_enabled( m_state, c_modifierShift ),
|
||||||
|
|
@ -5682,6 +5694,8 @@ void onMouseUp( const WindowVector& position, ButtonIdentifier button, ModifierF
|
||||||
&& getSelectionSystem().ManipulatorMode() != SelectionSystem::eClip ){
|
&& getSelectionSystem().ManipulatorMode() != SelectionSystem::eClip ){
|
||||||
m_selector.testSelect_simpleM1( device( position ) );
|
m_selector.testSelect_simpleM1( device( position ) );
|
||||||
}
|
}
|
||||||
|
m_manipulator.tryClipperDoubleClick();
|
||||||
|
|
||||||
m_manipulator.m_moving_transformOrigin = false;
|
m_manipulator.m_moving_transformOrigin = false;
|
||||||
m_selector.m_mouseMoved = false;
|
m_selector.m_mouseMoved = false;
|
||||||
m_selector.m_mouseMovedWhilePressed = false;
|
m_selector.m_mouseMovedWhilePressed = false;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user