本文整理汇总了C++中EvtGeneric类的典型用法代码示例。如果您正苦于以下问题:C++ EvtGeneric类的具体用法?C++ EvtGeneric怎么用?C++ EvtGeneric使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了EvtGeneric类的9个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: handleEvent
void CtrlText::handleEvent( EvtGeneric &rEvent )
{
// Save the event to use it in callbacks
m_pEvt = &rEvent;
m_fsm.handleTransition( rEvent.getAsString() );
}
示例2: handleEvent
void CtrlSliderBg::handleEvent( EvtGeneric &rEvent )
{
if( rEvent.getAsString().find( "mouse:left:down" ) != string::npos )
{
// Compute the resize factors
float factorX, factorY;
getResizeFactors( factorX, factorY );
// Get the position of the control
const Position *pPos = getPosition();
// Get the value corresponding to the position of the mouse
EvtMouse &rEvtMouse = (EvtMouse&)rEvent;
int x = rEvtMouse.getXPos();
int y = rEvtMouse.getYPos();
m_rVariable.set( m_rCurve.getNearestPercent(
(int)((x - pPos->getLeft()) / factorX),
(int)((y - pPos->getTop()) / factorY) ) );
// Forward the clic to the cursor
EvtMouse evt( getIntf(), x, y, EvtMouse::kLeft, EvtMouse::kDown );
TopWindow *pWin = getWindow();
if( pWin && m_pCursor )
{
EvtEnter evtEnter( getIntf() );
// XXX It was not supposed to be implemented like that !!
pWin->forwardEvent( evtEnter, *m_pCursor );
pWin->forwardEvent( evt, *m_pCursor );
}
}
else if( rEvent.getAsString().find( "scroll" ) != string::npos )
{
int direction = ((EvtScroll&)rEvent).getDirection();
float percentage = m_rVariable.get();
if( direction == EvtScroll::kUp )
{
percentage += SCROLL_STEP;
}
else
{
percentage -= SCROLL_STEP;
}
m_rVariable.set( percentage );
}
}
示例3: handleEvent
void CtrlMove::handleEvent( EvtGeneric &rEvent )
{
m_pEvt = &rEvent;
m_fsm.handleTransition( rEvent.getAsString() );
// Transmit the event to the decorated control
// XXX: Is it really a good idea?
m_rCtrl.handleEvent( rEvent );
}
示例4: handleEvent
void CtrlImage::handleEvent( EvtGeneric &rEvent )
{
// No FSM for this simple transition
if( rEvent.getAsString() == "mouse:right:up:none" )
{
CmdDlgShowPopupMenu cmd( getIntf() );
cmd.execute();
}
else if( rEvent.getAsString() == "mouse:left:up:none" )
{
CmdDlgHidePopupMenu cmd( getIntf() );
cmd.execute();
}
else if( rEvent.getAsString() == "mouse:left:dblclick:none" )
{
m_rCommand.execute();
}
}
示例5: handleEvent
void CtrlCheckbox::handleEvent( EvtGeneric &rEvent )
{
m_fsm.handleTransition( rEvent.getAsString() );
}
示例6: handleEvent
void CtrlTree::handleEvent( EvtGeneric &rEvent )
{
bool bChangedPosition = false;
VarTree::Iterator toShow; bool needShow = false;
if( rEvent.getAsString().find( "key:down" ) != string::npos )
{
int key = ((EvtKey&)rEvent).getKey();
VarTree::Iterator it;
bool previousWasSelected = false;
/* Delete the selection */
if( key == KEY_DELETE )
{
/* Find first non selected item before m_pLastSelected */
VarTree::Iterator it_sel = m_flat ? m_rTree.firstLeaf()
: m_rTree.begin();
for( it = (m_flat ? m_rTree.firstLeaf() : m_rTree.begin());
it != m_rTree.end();
it = (m_flat ? m_rTree.getNextLeaf( it )
: m_rTree.getNextVisibleItem( it )) )
{
if( &*it == m_pLastSelected ) break;
if( !it->isSelected() ) it_sel = it;
}
/* Delete selected stuff */
m_rTree.delSelected();
/* Verify if there is still sthg selected (e.g read-only items) */
m_pLastSelected = NULL;
for( it = (m_flat ? m_rTree.firstLeaf() : m_rTree.begin());
it != m_rTree.end();
it = (m_flat ? m_rTree.getNextLeaf( it )
: m_rTree.getNextVisibleItem( it )) )
{
if( it->isSelected() )
m_pLastSelected = &*it;
}
/* if everything was deleted, use it_sel as last selection */
if( !m_pLastSelected )
{
it_sel->setSelected( true );
m_pLastSelected = &*it_sel;
}
// Redraw the control
makeImage();
notifyLayout();
}
else if( key == KEY_PAGEDOWN )
{
it = m_firstPos;
int i = (int)(maxItems()*1.5);
while( i >= 0 )
{
VarTree::Iterator it_old = it;
it = m_flat ? m_rTree.getNextLeaf( it )
: m_rTree.getNextVisibleItem( it );
/* End is already visible, dont' scroll */
if( it == m_rTree.end() )
{
it = it_old;
break;
}
needShow = true;
i--;
}
if( needShow )
{
ensureVisible( it );
makeImage();
notifyLayout();
}
}
else if (key == KEY_PAGEUP )
{
it = m_firstPos;
int i = maxItems();
while( i >= maxItems()/2 )
{
it = m_flat ? m_rTree.getPrevLeaf( it )
: m_rTree.getPrevVisibleItem( it );
/* End is already visible, dont' scroll */
if( it == ( m_flat ? m_rTree.firstLeaf() : m_rTree.begin() ) )
{
break;
}
i--;
}
ensureVisible( it );
makeImage();
notifyLayout();
}
else if ( key == KEY_UP ||
key == KEY_DOWN ||
key == KEY_LEFT ||
key == KEY_RIGHT ||
key == KEY_ENTER ||
key == ' ' )
//.........这里部分代码省略.........
示例7: handleEvent
void CtrlList::handleEvent( EvtGeneric &rEvent )
{
if( rEvent.getAsString().find( "key:down" ) != std::string::npos )
{
int key = ((EvtKey&)rEvent).getKey();
VarList::Iterator it = m_rList.begin();
bool previousWasSelected = false;
while( it != m_rList.end() )
{
VarList::Iterator next = it;
++next;
if( key == KEY_UP )
{
// Scroll up one item
if( it != m_rList.begin() || &*it != m_pLastSelected )
{
bool nextWasSelected = ( &*next == m_pLastSelected );
(*it).m_selected = nextWasSelected;
if( nextWasSelected )
{
m_pLastSelected = &*it;
}
}
}
else if( key == KEY_DOWN )
{
// Scroll down one item
if( next != m_rList.end() || &*it != m_pLastSelected )
{
(*it).m_selected = previousWasSelected;
}
if( previousWasSelected )
{
m_pLastSelected = &*it;
previousWasSelected = false;
}
else
{
previousWasSelected = ( &*it == m_pLastSelected );
}
}
it = next;
}
// Redraw the control
makeImage();
notifyLayout();
}
else if( rEvent.getAsString().find( "mouse:left" ) != std::string::npos )
{
EvtMouse &rEvtMouse = (EvtMouse&)rEvent;
const Position *pos = getPosition();
int yPos = m_lastPos + ( rEvtMouse.getYPos() - pos->getTop() ) /
(m_rFont.getSize() + LINE_INTERVAL);
VarList::Iterator it;
int index = 0;
if( rEvent.getAsString().find( "mouse:left:down:ctrl,shift" ) !=
std::string::npos )
{
// Flag to know if the current item must be selected
bool select = false;
for( it = m_rList.begin(); it != m_rList.end(); ++it )
{
bool nextSelect = select;
if( index == yPos || &*it == m_pLastSelected )
{
if( select )
{
nextSelect = false;
}
else
{
select = true;
nextSelect = true;
}
}
(*it).m_selected = (*it).m_selected || select;
select = nextSelect;
index++;
}
}
else if( rEvent.getAsString().find( "mouse:left:down:ctrl" ) !=
std::string::npos )
{
for( it = m_rList.begin(); it != m_rList.end(); ++it )
{
if( index == yPos )
{
(*it).m_selected = ! (*it).m_selected;
m_pLastSelected = &*it;
break;
}
index++;
}
}
else if( rEvent.getAsString().find( "mouse:left:down:shift" ) !=
//.........这里部分代码省略.........
示例8: handleEvent
void CtrlTree::handleEvent( EvtGeneric &rEvent )
{
bool bChangedPosition = false;
VarTree::Iterator toShow; bool needShow = false;
if( rEvent.getAsString().find( "key:down" ) != string::npos )
{
int key = ((EvtKey&)rEvent).getKey();
VarTree::Iterator it;
bool previousWasSelected = false;
/* Delete the selection */
if( key == KEY_DELETE )
{
/* Find first non selected item before m_pLastSelected */
VarTree::Iterator it_sel = m_flat ? m_rTree.firstLeaf()
: m_rTree.begin();
for( it = m_flat ? m_rTree.firstLeaf() : m_rTree.begin();
it != m_rTree.end();
it = m_flat ? m_rTree.getNextLeaf( it )
: m_rTree.getNextVisibleItem( it ) )
{
if( &*it == m_pLastSelected ) break;
if( !it->m_selected ) it_sel = it;
}
/* Delete selected stuff */
m_rTree.delSelected();
/* Select it_sel */
it_sel->m_selected = true;
m_pLastSelected = &*it_sel;
}
else if( key == KEY_PAGEDOWN )
{
it = m_firstPos;
int i = (int)(maxItems()*1.5);
while( i >= 0 )
{
VarTree::Iterator it_old = it;
it = m_flat ? m_rTree.getNextLeaf( it )
: m_rTree.getNextVisibleItem( it );
/* End is already visible, dont' scroll */
if( it == m_rTree.end() )
{
it = it_old;
break;
}
needShow = true;
i--;
}
if( needShow )
{
ensureVisible( it );
makeImage();
notifyLayout();
return;
}
}
else if (key == KEY_PAGEUP )
{
it = m_firstPos;
int i = maxItems();
while( i >= maxItems()/2 )
{
it = m_flat ? m_rTree.getPrevLeaf( it )
: m_rTree.getPrevVisibleItem( it );
/* End is already visible, dont' scroll */
if( it == ( m_flat ? m_rTree.firstLeaf() : m_rTree.begin() ) )
{
break;
}
i--;
}
ensureVisible( it );
makeImage();
notifyLayout();
return;
}
for( it = m_flat ? m_rTree.firstLeaf() : m_rTree.begin();
it != m_rTree.end();
it = m_flat ? m_rTree.getNextLeaf( it )
: m_rTree.getNextVisibleItem( it ) )
{
VarTree::Iterator next = m_flat ? m_rTree.getNextLeaf( it )
: m_rTree.getNextVisibleItem( it );
if( key == KEY_UP )
{
// Scroll up one item
if( ( it->parent()
&& it != it->parent()->begin() )
|| &*it != m_pLastSelected )
{
bool nextWasSelected = ( &*next == m_pLastSelected );
it->m_selected = nextWasSelected;
if( nextWasSelected )
{
m_pLastSelected = &*it;
needShow = true; toShow = it;
//.........这里部分代码省略.........
示例9: handleEvent
void CtrlTree::handleEvent( EvtGeneric &rEvent )
{
bool needShow = false;
bool needRefresh = false;
Iterator toShow = m_firstPos;
if( rEvent.getAsString().find( "key:down" ) != string::npos )
{
int key = ((EvtKey&)rEvent).getKey();
/* Delete the selection */
if( key == KEY_DELETE )
{
/* Delete selected stuff */
m_rTree.delSelected();
}
else if( key == KEY_PAGEDOWN )
{
int numSteps = (int)m_capacity / 2;
VarPercent &rVarPos = m_rTree.getPositionVar();
rVarPos.increment( -numSteps );
}
else if( key == KEY_PAGEUP )
{
int numSteps = (int)m_capacity / 2;
VarPercent &rVarPos = m_rTree.getPositionVar();
rVarPos.increment( numSteps );
}
else if( key == KEY_UP )
{
// Scroll up one item
m_rTree.unselectTree();
if( m_lastClicked != m_rTree.end() )
{
if( --m_lastClicked != m_rTree.end() )
{
m_lastClicked->setSelected( true );
}
}
if( m_lastClicked == m_rTree.end() )
{
m_lastClicked = m_firstPos;
if( m_lastClicked != m_rTree.end() )
m_lastClicked->setSelected( true );
}
needRefresh = true;
needShow = true; toShow = m_lastClicked;
}
else if( key == KEY_DOWN )
{
// Scroll down one item
m_rTree.unselectTree();
if( m_lastClicked != m_rTree.end() )
{
Iterator it_old = m_lastClicked;
if( ++m_lastClicked != m_rTree.end() )
{
m_lastClicked->setSelected( true );
}
else
{
it_old->setSelected( true );
m_lastClicked = it_old;
}
}
else
{
m_lastClicked = m_firstPos;
if( m_lastClicked != m_rTree.end() )
m_lastClicked->setSelected( true );
}
needRefresh = true;
needShow = true; toShow = m_lastClicked;
}
else if( key == KEY_RIGHT )
{
// Go down one level (and expand node)
Iterator& it = m_lastClicked;
if( it != m_rTree.end() )
{
if( !m_flat && !it->isExpanded() && it->size() )
{
it->setExpanded( true );
needRefresh = true;
}
else
{
m_rTree.unselectTree();
Iterator it_old = m_lastClicked;
if( ++m_lastClicked != m_rTree.end() )
{
m_lastClicked->setSelected( true );
}
else
{
it_old->setSelected( true );
m_lastClicked = it_old;
}
needRefresh = true;
needShow = true; toShow = m_lastClicked;
}
//.........这里部分代码省略.........