コード例 #1
0
ファイル: keyboard.cpp プロジェクト: rickcaudill/Pyro
void KeyboardDriver::DispatchEvent( int nKeyCode )
{
	SetLED( nKeyCode );
	Message* pcEvent = new Message( nKeyCode & 0x80 ? M_KEY_UP : M_KEY_DOWN );
	pcEvent->AddInt32( "_key", nKeyCode );
	EnqueueEvent( pcEvent );
}
コード例 #2
0
 // Idiom:  SaveToArchive() saves our current state into the specified Message object
 status_t SaveToArchive(Message & msg) const
 {
    if (msg.AddString("name",    _name)    != B_NO_ERROR) return B_ERROR;
    if (msg.AddString("address", _address) != B_NO_ERROR) return B_ERROR;
    if (msg.AddString("city",    _city)    != B_NO_ERROR) return B_ERROR;
    if (msg.AddString("state",   _state)   != B_NO_ERROR) return B_ERROR;
    if (msg.AddInt32("zip_code", _zipCode) != B_NO_ERROR) return B_ERROR;
    return B_NO_ERROR;  // success!
 }
コード例 #3
0
/*************************************************
* Description: Saves the settings
* Author: Rick Caudill
* Date: Thu Mar 18 20:17:32 2004
**************************************************/
void WallpaperChangerSettings::SaveSettings()
{
	ListViewStringRow* pcRow = (ListViewStringRow*)pcDirectoryList->GetRow(pcDirectoryList->GetLastSelected());
	Message* pcMessage = new Message(M_PREFS_SEND_TO_PARENT);
	bRandom = pcRandom->GetValue().AsBool();				
	pcMessage->AddBool("random",bRandom);
	pcMessage->AddInt32("time",pcTimeDrop->GetSelection());
	pcMessage->AddString("currentimage",pcRow->GetString(0));	
	pcParentLooper->PostMessage(pcMessage,pcParentView);
}
コード例 #4
0
ファイル: sylvnc_mouse.cpp プロジェクト: rickcaudill/Pyro
void SylVNCMouseDriver::DispatchEvent( int nDeltaX, int nDeltaY, uint32 nButtons )
{
    Point cDeltaMove( nDeltaX, nDeltaY );
    uint32 	nButtonFlg;
    static uint32 nLastButtons = 0;
  
    nButtonFlg	= nButtons ^ nLastButtons;
    nLastButtons	= nButtons;

    if ( nButtonFlg != 0 ) {
	Message* pcEvent;
    
	if ( nButtonFlg & 0x01 ) {
	    if ( nButtons & 0x01 ) {
		pcEvent = new Message( M_MOUSE_DOWN );
//		dbprintf( "Mouse Button 1 Down\n");
	    } else {
		pcEvent = new Message( M_MOUSE_UP );
//		dbprintf( "Mouse Button 1 Up\n");
	    }
	    pcEvent->AddInt32( "_button", 1 );
	    pcEvent->AddInt32( "_buttons", 1 ); // To be removed
	    EnqueueEvent( pcEvent );
	}
	if ( nButtonFlg & 0x02 ) {
	    if ( nButtons & 0x02 ) {
		pcEvent = new Message( M_MOUSE_DOWN );
//		dbprintf( "Mouse Button 2 Down\n");
	    } else {
		pcEvent = new Message( M_MOUSE_UP );
//		dbprintf( "Mouse Button 2 Up\n");
	    }
	    pcEvent->AddInt32( "_button", 2 );
	    pcEvent->AddInt32( "_buttons", 2 ); // To be removed
	    EnqueueEvent( pcEvent );
	}
    }
    if ( nDeltaX != 0 || nDeltaY != 0 ) {
	Message* pcEvent = new Message( M_MOUSE_MOVED );
	pcEvent->AddPoint( "delta_move", cDeltaMove );
	EnqueueEvent( pcEvent );
    }
}
コード例 #5
0
ファイル: usbmouse.cpp プロジェクト: rickcaudill/Pyro
void USBMouseDriver::DispatchEvent( int nDeltaX, int nDeltaY, uint32 nButtons, int nVScroll, int nHScroll )
{
    Point cDeltaMove( nDeltaX, nDeltaY );
    static uint32 nLastButtons = 0;
    uint32 	nButtonFlg;
  
    nButtonFlg	= nButtons ^ nLastButtons;
    nLastButtons	= nButtons;

    if ( nButtonFlg != 0 ) {
	Message* pcEvent;
    
	if ( nButtonFlg & 0x01 ) {
	    if ( nButtons & 0x01 ) {
		pcEvent = new Message( M_MOUSE_DOWN );
	    } else {
		pcEvent = new Message( M_MOUSE_UP );
	    }
	    pcEvent->AddInt32( "_button", 1 );
	    pcEvent->AddInt32( "_buttons", 1 ); // To be removed
	    EnqueueEvent( pcEvent );
	}
	if ( nButtonFlg & 0x02 ) {
	    if ( nButtons & 0x02 ) {
		pcEvent = new Message( M_MOUSE_DOWN );
	    } else {
		pcEvent = new Message( M_MOUSE_UP );
	    }
	    pcEvent->AddInt32( "_button", 2 );
	    pcEvent->AddInt32( "_buttons", 2 ); // To be removed
	    EnqueueEvent( pcEvent );
	}
        // (xxl) Middle mouse button
	if ( nButtonFlg & 0x04 ) {
	    if ( nButtons & 0x04 ) {
		pcEvent = new Message( M_MOUSE_DOWN );
	    } else {
		pcEvent = new Message( M_MOUSE_UP );
	    }
	    pcEvent->AddInt32( "_button", 3 );
	    pcEvent->AddInt32( "_buttons", 3 ); // To be removed
	    EnqueueEvent( pcEvent );
	}
    }
    if ( nDeltaX != 0 || nDeltaY != 0 ) {
	Message* pcEvent = new Message( M_MOUSE_MOVED );
	pcEvent->AddPoint( "delta_move", cDeltaMove );
	EnqueueEvent( pcEvent );
    }
    // (xxl) Vertical and/or horizontal scroll
    if( nVScroll !=0 || nHScroll != 0 ) {
       Point cScroll( nHScroll, nVScroll );
       // send a specific scroll message: M_MOUSE_SCROLL
       Message* pcEvent = new Message( M_WHEEL_MOVED );
       // the "delta_move" key contains the scroll amount
       // as a os::Point structure ("x" for horizontal and
       // "y" for vertical). Usually the scroll amount is
       // either -1, 0 or 1, but I noticed that sometimes
       // the mouse send other values as well (-2 and 2 are
       // the most common).
       pcEvent->AddPoint( "delta_move", cScroll );
       EnqueueEvent( pcEvent );
    }
}
コード例 #6
0
ファイル: server.cpp プロジェクト: PyroOS/Pyro
/** \brief Cancel a job.
 * This cancels the job with the given id.
 *
 * \param nJobID The ID of the job to cancel.
 */
int Server::CancelTransfer( int nJobID )
{
	Message* pcMsg = new Message( M_TT_CANCEL );
	pcMsg->AddInt32( "id", nJobID );
	return( m_pcThread->SendMessage( pcMsg ) );
}
コード例 #7
0
ファイル: server.cpp プロジェクト: PyroOS/Pyro
/** \brief Resume (unpause) a job.
 * This resumes the job with the given id.
 *
 * \param nJobID The job ID of the job to resume
 */
int Server::ResumeTransfer( int nJobID )
{
	Message* pcMsg = new Message( M_TT_RESUME );
	pcMsg->AddInt32( "id", nJobID );
	return( m_pcThread->SendMessage( pcMsg ) );
}
コード例 #8
0
ファイル: server.cpp プロジェクト: PyroOS/Pyro
/** \brief Send a message to the transfer thread to delete a job & remove it from the job lists.
 * \note The job must already have cleaned itself up and have detached itself from any curl handles.
 */
int Server::RemoveJob( Job* pcJob )
{
	Message* pcMsg = new Message( M_TT_REMOVE );
	pcMsg->AddInt32( "id", pcJob->m_nID );
	return( m_pcThread->SendMessage( pcMsg ) );
}