void CLibraryAlbumView::OnLButtonDown(UINT nFlags, CPoint point)
{
	SetFocus();

	CRect rcTrack;
	CLibraryAlbumTrack* pHit = HitTest( point, &rcTrack );

	if ( pHit != NULL && pHit->HitTestRating( rcTrack, point ) )
	{
		pHit->LockRating();
		m_pRating = NULL;
		Invalidate();
		return;
	}

	if ( SelectTo( pHit ) )
	{
		Invalidate();
		CLibraryFileView::CheckDynamicBar();
	}

	if ( pHit && ( nFlags & MK_RBUTTON ) == 0 )
	{
		m_bDrag = TRUE;
		m_ptDrag = point;
	}

	CLibraryFileView::OnLButtonDown( nFlags, point );
}
Beispiel #2
0
void CLibraryTileView::SelectTo(int nDelta)
{
	CSingleLock oLock( &Library.m_pSection );
	if ( ! oLock.Lock( 250 ) ) return;

	if ( empty() ) return;

	iterator pFocus = m_pFocus;

	if ( pFocus == end() )
	{
		pFocus = begin();
	}
	else if ( nDelta < 0 )
	{
		for ( ; nDelta != 0 && pFocus != begin(); --pFocus, ++nDelta );
	}
	else
	{
		for ( ; nDelta != 0 && pFocus != end(); ++pFocus, --nDelta );
		if ( pFocus == end() )
			--pFocus;
	}

	if ( SelectTo( pFocus ) )
		Invalidate();
}
Beispiel #3
0
void CUploadsCtrl::OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags)
{
	CSingleLock pLock( &Transfers.m_pSection, TRUE );
	CUploadFile* pFile;
	CUploadQueue* pQueue;
	
	m_wndTip.Hide();
	
	switch ( nChar )
	{
	case VK_HOME:
		SelectTo( 0 );
		return;
	case VK_END:
		{
			INT nMin, nMax;
			GetScrollRange( SB_VERT, &nMin, &nMax );
			SelectTo( max( 0, nMax - 1 ) );
		}
		return;
	case VK_UP:
		SelectTo( m_nFocus - 1 );
		return;
	case VK_DOWN:
		SelectTo( m_nFocus + 1 );
		return;
	case VK_PRIOR:
		SelectTo( m_nFocus - 10 );
		return;
	case VK_NEXT:
		SelectTo( m_nFocus + 10 );
		return;
	case VK_LEFT:
	case '-':
		if ( GetAt( m_nFocus, &pQueue, &pFile ) )
		{
			if ( pFile != NULL && pFile->GetActive() != NULL )
				pQueue = pFile->GetActive()->m_pQueue;
			if ( pQueue != NULL && pQueue->m_bExpanded == TRUE )
			{
				pQueue->m_bExpanded = FALSE;
				Update();
			}
		}
		return;
	case VK_RIGHT:
	case '+':
		if ( GetAt( m_nFocus, &pQueue, NULL ) && pQueue != NULL && pQueue->m_bExpanded == FALSE )
		{
			pQueue->m_bExpanded = TRUE;
			Update();
		}
		return;
	}
	
	CWnd::OnKeyDown( nChar, nRepCnt, nFlags );
}
Beispiel #4
0
void CLibraryTileView::OnRButtonDown(UINT nFlags, CPoint point)
{
	CSingleLock pLock( &Library.m_pSection );
	if ( pLock.Lock( 200 ) )
	{
		iterator pHit = HitTest( point );

		if ( SelectTo( pHit ) )
			Invalidate();

		pLock.Unlock();
	}

	SetFocus();

	CLibraryView::OnRButtonDown( nFlags, point );
}
void CLibraryAlbumView::SelectTo(int nDelta)
{
	if ( m_nCount == 0 ) return;
	
	int nFocus = GetTrackIndex( m_pFocus );
	
	if ( nFocus < 0 )
	{
		nFocus = 0;
	}
	else
	{
		nFocus += nDelta;
		if ( nFocus < 0 ) nFocus = 0;
		if ( nFocus >= m_nCount ) nFocus = m_nCount - 1;
	}
	
	if ( SelectTo( m_pList[ nFocus ] ) ) Invalidate();
}
Beispiel #6
0
void CLibraryTileView::OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags)
{
	switch ( nChar )
	{
	case VK_LEFT:
		SelectTo( - 1 );
		break;
	case VK_RIGHT:
		SelectTo( 1 );
		break;
	case VK_UP:
		SelectTo( -m_nColumns );
		break;
	case VK_DOWN:
		SelectTo( m_nColumns );
		break;
	case VK_PRIOR:
		SelectTo( m_nRows * -m_nColumns );
		break;
	case VK_NEXT:
		ScrollBy( m_nRows * m_nColumns );
		break;
	case VK_HOME:
		SelectTo( -(int)size() );
		break;
	case VK_END:
		SelectTo( (int)size() );
		break;
	case VK_RETURN:
		PostMessage( WM_COMMAND, ID_LIBRARY_ALBUM_OPEN );
		break;
	case VK_INSERT:
		GetParent()->PostMessage( WM_COMMAND, ID_LIBRARY_FOLDER_NEW );
		break;
	case VK_DELETE:
		PostMessage( WM_COMMAND, ID_LIBRARY_ALBUM_DELETE );
		break;
	case VK_ESCAPE:
		GetParent()->PostMessage( WM_COMMAND, ID_LIBRARY_PARENT );
		break;
	}

	CLibraryView::OnKeyDown( nChar, nRepCnt, nFlags );
}
Beispiel #7
0
void CLibraryTileView::OnLButtonDown(UINT nFlags, CPoint point)
{
	CSingleLock pLock( &Library.m_pSection );
	if ( pLock.Lock( 200 ) )
	{
		iterator pHit = HitTest( point );

		if ( SelectTo( pHit ) )
			Invalidate();

		if ( pHit != end() && ( nFlags & MK_RBUTTON ) == 0 )
		{
			m_bDrag = TRUE;
			m_ptDrag = point;
		}

		 pLock.Unlock();
	}

	SetFocus();

	CLibraryView::OnLButtonDown( nFlags, point );
}
Beispiel #8
0
void CUploadsCtrl::OnLButtonDown(UINT nFlags, CPoint point)
{
	CSingleLock pLock( &Transfers.m_pSection, TRUE );
	CUploadFile* pFile;
	CUploadQueue* pQueue;
	CRect rcItem;
	int nIndex;
	
	SetFocus();
	m_wndTip.Hide();
	
	if ( HitTest( point, &pQueue, &pFile, &nIndex, &rcItem ) )
	{
		int nTitleStarts = GetExpandableColumnX();
		if ( point.x > nTitleStarts && point.x <= nTitleStarts + rcItem.left + 16 )
		{
			if ( pQueue != NULL )
			{
				pQueue->m_bExpanded = ! pQueue->m_bExpanded;
				
				if ( ! pQueue->m_bExpanded )
				{
					for ( POSITION posActive = pQueue->GetActiveIterator() ; posActive ; )
					{
						CUploadTransfer* pTransfer = pQueue->GetNextActive( posActive );
						if ( pTransfer->m_pBaseFile != NULL ) pTransfer->m_pBaseFile->m_bSelected = FALSE;
					}
					
					for ( DWORD nPos = 0 ; nPos < pQueue->GetQueuedCount() ; nPos ++ )
					{
						CUploadTransfer* pTransfer = (CUploadTransfer*)pQueue->GetQueuedAt( nPos );
						if ( pTransfer->m_pBaseFile != NULL ) pTransfer->m_pBaseFile->m_bSelected = FALSE;
					}
				}
				
				Update();
			}
		}
		else
		{
			if ( pFile != NULL && pFile->m_bSelected )
			{
				if ( ( nFlags & ( MK_SHIFT | MK_CONTROL | MK_RBUTTON ) ) == 0 )
				{
					m_pDeselect = pFile;
				}
			}
			else if ( nFlags & MK_RBUTTON )
			{
				DeselectAll();
			}
			
			SelectTo( nIndex );
		}
	}
	else if ( ( nFlags & ( MK_SHIFT | MK_CONTROL ) ) == 0 )
	{
		DeselectAll();
		Update();
	}
}
void CLibraryAlbumView::OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags)
{
	BOOL bShift = ( GetAsyncKeyState( VK_SHIFT ) & 0x8000 ) == 0x8000;
	BOOL bControl = ( GetAsyncKeyState( VK_CONTROL ) & 0x8000 ) == 0x8000;

	switch ( nChar )
	{
	case VK_LEFT:
	case VK_UP:
		SelectTo( -1 );
		break;
	case VK_DOWN:
	case VK_RIGHT:
		SelectTo( 1 );
		break;
	case VK_PRIOR:
		SelectTo( -m_nRows );
		break;
	case VK_NEXT:
		SelectTo( m_nRows );
		break;
	case VK_HOME:
		SelectTo( -m_nCount );
		break;
	case VK_END:
		SelectTo( m_nCount );
		break;
	default:
		if ( ! bShift && ! bControl && _istalnum( TCHAR( nChar ) ) )
		{
			CLibraryAlbumTrack* pStart = m_pFocus;

			for ( int nLoop = 0 ; nLoop < 2 ; nLoop++ )
			{
				CLibraryAlbumTrack** pChild = m_pList;

				for ( int nCount = m_nCount ; nCount ; nCount--, pChild++ )
				{
					if ( pStart != NULL )
					{
						if ( pStart == *pChild )
							pStart = NULL;
					}
					else
					{
						LPCTSTR psz = NULL;

						if ( m_pStyle == CSchema::uriMusicAlbum )
							psz = (*pChild)->m_sTitle;
						else if ( m_pStyle == CSchema::uriMusicArtist )
							psz = (*pChild)->m_sAlbum;
						else
							psz = (*pChild)->m_sArtist;

						if ( psz && *psz && toupper( *psz ) == (int)nChar )
						{
							if ( SelectTo( *pChild ) )
								Invalidate();
							return;
						}
					}
				}
			}
		}
	}

	CLibraryFileView::OnKeyDown( nChar, nRepCnt, nFlags );
}
Beispiel #10
0
RoutingDialog::RoutingDialog(QWidget* parentWindow,
                             DBThread* dbThread,
                             const SettingsRef& settings)
 : QDialog(parentWindow),
   settings(settings),
   dbThread(dbThread),
   from(new QLineEdit()),
   hasStart(false),
   to(new QLineEdit()),
   hasEnd(false),
   routeView(new QTableView()),
   routeModel(new RouteModel())
{
  QVBoxLayout  *mainLayout=new QVBoxLayout();
  QFormLayout  *formLayout=new QFormLayout();
  QHBoxLayout  *fromBoxLayout=new QHBoxLayout();
  QHBoxLayout  *toBoxLayout=new QHBoxLayout();
  QHBoxLayout  *asBoxLayout=new QHBoxLayout();
  QPushButton  *selectFromButton=new QPushButton("...");
  QPushButton  *selectToButton=new QPushButton("...");
  QButtonGroup *routeTypes = new QButtonGroup();
  QPushButton  *routeTypeFoot = new QPushButton("Foot");
  QPushButton  *routeTypeBicycle = new QPushButton("Bicycle");
  QPushButton  *routeTypeCar = new QPushButton("Car");

  from->setReadOnly(true);
  from->setEnabled(false);
  from->setMinimumWidth(QApplication::fontMetrics().width("mlxi")/4*70);
  //from->setPlaceholderText("Starting location");
  to->setReadOnly(true);
  to->setEnabled(false);
  to->setMinimumWidth(QApplication::fontMetrics().width("mlxi")/4*70);
  //to->setPlaceholderText("Destination location");

  selectFromButton->setSizePolicy(QSizePolicy(QSizePolicy::Minimum,QSizePolicy::Fixed));
  selectToButton->setSizePolicy(QSizePolicy(QSizePolicy::Minimum,QSizePolicy::Fixed));

  fromBoxLayout->addWidget(from);
  fromBoxLayout->addWidget(selectFromButton);

  formLayout->addRow("From:",fromBoxLayout);

  toBoxLayout->addWidget(to);
  toBoxLayout->addWidget(selectToButton);

  formLayout->addRow("To:",toBoxLayout);

  osmscout::Vehicle vehicle=settings->GetRoutingVehicle();

  routeTypeFoot->setCheckable(true);
  routeTypeFoot->setChecked(vehicle==osmscout::vehicleFoot);

  routeTypeBicycle->setCheckable(true);
  routeTypeBicycle->setChecked(vehicle==osmscout::vehicleBicycle);

  routeTypeCar->setCheckable(true);
  routeTypeCar->setChecked(vehicle==osmscout::vehicleCar);

  routeTypes->addButton(routeTypeFoot,
                        osmscout::vehicleFoot);
  routeTypes->addButton(routeTypeBicycle,
                        osmscout::vehicleBicycle);
  routeTypes->addButton(routeTypeCar,
                        osmscout::vehicleCar);


  asBoxLayout->addWidget(routeTypeFoot);
  asBoxLayout->addWidget(routeTypeBicycle);
  asBoxLayout->addWidget(routeTypeCar);

  formLayout->addRow("As: ",asBoxLayout);

  mainLayout->addLayout(formLayout);

  routeView->setModel(routeModel);
  routeView->setEditTriggers(QAbstractItemView::NoEditTriggers);
  routeView->setSelectionMode(QAbstractItemView::SingleSelection);
  routeView->setSelectionBehavior(QAbstractItemView::SelectRows);
  routeView->setShowGrid(false);
  routeView->setMinimumWidth(QApplication::fontMetrics().width("mlxi")/4*70);
  routeView->horizontalHeader()->setStretchLastSection(true);
  routeView->horizontalHeader()->setHighlightSections (false);
  routeView->verticalHeader()->hide();
  routeView->setColumnWidth(0,QApplication::fontMetrics().width("mlxi")/4*12);
  routeView->setColumnWidth(1,QApplication::fontMetrics().width("mlxi")/4*12);
  routeView->setColumnWidth(2,QApplication::fontMetrics().width("mlxi")/4*10);
  routeView->setColumnWidth(3,QApplication::fontMetrics().width("mlxi")/4*10);

  mainLayout->addWidget(routeView);

  QDialogButtonBox *buttonBox=new QDialogButtonBox();

  routeButton=buttonBox->addButton("&Route",QDialogButtonBox::ApplyRole);
  buttonBox->addButton(QDialogButtonBox::Close);

  routeButton->setEnabled(false);

  mainLayout->addWidget(buttonBox);

  setLayout(mainLayout);

  connect(selectFromButton,SIGNAL(clicked()),this,SLOT(SelectFrom()));
  connect(selectToButton,SIGNAL(clicked()),this,SLOT(SelectTo()));
  connect(routeButton,SIGNAL(clicked()),this,SLOT(CalculateRoute()));
  connect(buttonBox->button(QDialogButtonBox::Close),SIGNAL(clicked()),this,SLOT(close()));
  connect(routeTypes,SIGNAL(buttonClicked(int)),this,SLOT(OnVehicle(int)));

  if (!route.start.isEmpty()) {
    from->setText(route.start);
    hasStart=true;
  }

  if (!route.end.isEmpty()) {
    to->setText(route.end);
    hasEnd=true;
  }

  if (hasStart && hasEnd) {
    routeButton->setEnabled(true);
  }
}
Beispiel #11
0
Boolean ReplyFormHandleEvent(EventType * eventP)
{
	Boolean handled = false;
	FormType * frmP;
	static Boolean listShown = false;
	
	frmP = FrmGetActiveForm();

	switch (eventP->eType) 
	{
		case frmOpenEvent:
			switch (g_ComposeMode) {
				case COMPOSE_REPLY:
					ReplyCurrentRecord(g_SmsDb);
					SetupReplyForm(frmP);
					break;
				case COMPOSE_NEW:
					SetupNewForm(frmP);
					break;
				case COMPOSE_FORWARD:
					ForwardCurrentRecord(g_SmsDb);
					SetupNewForm(frmP);
					break;
				case COMPOSE_FEATURE:
					SetupFeatureNew();
					SetupNewForm(frmP);
					break;
				case COMPOSE_RESTORE:
					RestoreReplyForm();
					break;
			}
			FrmDrawForm(frmP);
			ListAllGroups();
			SetTriggerText(0);
			handled = true;
			break;
		case frmCloseEvent:
			ClearPhoneGroups(g_PhoneGroups);
			break;
		case menuEvent:
			switch(eventP->data.menu.itemID) {
				case MenuItemQueue:
					DoQueue();
					break;
				case MenuItemBack:
					DoBack();
					break;
				case MenuItemDraft:
					DoDraft();
					break;
				case MenuItemSend:
					DoSend();
					break;
				case MenuItemSendAndBack:
					DoSendAndBack();
					break;
				case MenuItemSelectTo:
					SelectTo();
					break;
				case MenuItemSelectGroup:
					CtlHitControl((ControlPtr) GetObjectPtr(frmP, TriggerGroup));
					break;
			}
			break;
		case ctlSelectEvent:
			switch(eventP->data.ctlSelect.controlID) {
				case ButtonSendAndBack:
					DoSendAndBack();
					break;
				case ButtonBack:
					DoBack();
					break;
				case ButtonGo:
					DoSend();
					break;
				case ButtonSelectTo:
					SelectTo();
					break;
				case TriggerGroup:
					if (listShown) {
						FrmHideObject(frmP, FrmGetObjectIndex(frmP, ListGroups));
						FrmDrawForm(frmP);
						listShown = false;
					} else {
						FrmShowObject(frmP, FrmGetObjectIndex(frmP, ListGroups));
						listShown = true;
					}
					handled = true;
					break;
			}
			break;
		case penDownEvent:
			if (IsEventInControl(frmP, eventP, TriggerGroup)) break;
			if (IsEventInControl(frmP, eventP, ListGroups)) break;
			FrmHideObject(frmP, FrmGetObjectIndex(frmP, ListGroups));
			FrmDrawForm(frmP);
			listShown = false;
			break;
		case lstSelectEvent:
			if (eventP->data.lstSelect.listID == ListGroups) {
				FrmHideObject(frmP, FrmGetObjectIndex(frmP, ListGroups));
				FrmDrawForm(frmP);
				listShown = false;
				
				ListPtr list = (ListPtr) GetObjectPtr(frmP, ListGroups);
				Int16 sel = LstGetSelection(list);
				if (sel == noListSelection) {
					ShowMsg("Select a group.");
					break;
				}
				SetTriggerText(sel);
			}
			break;
		case keyDownEvent:
			WChar chr = eventP->data.keyDown.chr;
			UInt16 		keyCode		= eventP->data.keyDown.keyCode;
			switch(chr)
			{
				case vchrPageUp:
					if (listShown)
						SelectNextInList(-1);
					else
						ScrollFieldPage(frmP, FieldReference, ScrollbarReference, winUp);
					break;
				case vchrPageDown:
					if (listShown)
						SelectNextInList(1);
					else
						ScrollFieldPage(frmP, FieldReference, ScrollbarReference, winDown);
					break;
				case vchrNavChange:
					if(keyCode & navBitSelect) {
						FrmHideObject(frmP, FrmGetObjectIndex(frmP, ListGroups));
						FrmDrawForm(frmP);
						listShown = false;
						
						ListPtr list = (ListPtr) GetObjectPtr(frmP, ListGroups);
						Int16 sel = LstGetSelection(list);
						if (sel == noListSelection) {
							ShowMsg("Select a group.");
							break;
						}
						SetTriggerText(sel);
					}
					break;
			}
			break;
		case sclRepeatEvent:
			ScrollFieldByEvent(frmP, eventP, FieldReference, ScrollbarReference);
			break;
	}
	return handled;
}