Пример #1
0
void cGUIEdit::ClipboardPaste()
{
	if(!IsClipboardFormatAvailable(CF_UNICODETEXT)) return;
	if(!OpenClipboard(NULL)) return;
	if(HGLOBAL handler = GetClipboardData(CF_UNICODETEXT))
		if(void* data = GlobalLock(handler))
		{
			SelectionCut();
			SelectionPaste((LPWSTR)data);
			GlobalUnlock(handler); 
		}
	CloseClipboard();
}
Пример #2
0
bool Console::HandleEvent( hgeInputEvent &e )
{
	if( !is_active ) {
		if( e.type == INPUT_KEYDOWN && e.key == HGEK_F1 ) {
			Activate();
		}
		else {
			return true;
		}
	}
	else if( e.type == INPUT_KEYDOWN && e.key == HGEK_F1 ) {
		Deactivate();
		return true;
	}
	
	if( e.type == INPUT_KEYDOWN ) 
	{		
		if( e.key == HGEK_ENTER && input_line.size() > 0 ) {
			InputLineExecute();
		}
		else if( e.key == HGEK_SPACE ) {
			SelectionDelete();
			InputLineAddChar( ' ', input_line_pos );
			InputLineMoveRight();
		}
		else if( e.key == HGEK_BACKSPACE ) {
			if( SelectionIsActive() ) {
				SelectionDelete();
			}
			else {
				InputLineDeleteChar( input_line_pos - 1 );
				InputLineMoveLeft();
			}
		}
		else if( e.key == HGEK_A && hge->Input_GetKeyState( HGEK_CTRL ) ) {
			SelectionAll();
		}
		else if( e.key == HGEK_C && hge->Input_GetKeyState( HGEK_CTRL ) ) {
			SelectionCopy();
		}
		else if( e.key == HGEK_V && hge->Input_GetKeyState( HGEK_CTRL ) ) {
			SelectionPaste( input_line_pos );
		}
		else if( e.key == HGEK_DELETE ) {
			if( SelectionIsActive() ) {
				SelectionDelete();
			}
			else {
				InputLineDeleteChar( input_line_pos );
			}
		}
		else if( e.key == HGEK_UP ) {
			SelectionClear();
			if( IsSuggestionLocked() ) {
				MoveUpInSuggestion();
			}
			else {
				MoveBackInHistory();
			}
		}
		else if( e.key == HGEK_DOWN ) {
			SelectionClear();
			if( IsHistoryLocked() ) {
				MoveForwardInHistory();
			}
			else {
				MoveDownInSuggestion();
			}
		}
		else if( e.key == HGEK_TAB ) {
			if( IsSuggestionLocked() ) {
				AutoCompleteSuggestion();
			}
		}
		else if( e.key == HGEK_LEFT ) {
			if( hge->Input_GetKeyState( HGEK_SHIFT ) ) {
				SelectionMoveLeft();
			}
			else {
				SelectionClear();
			}
			InputLineMoveLeft();
		}
		else if( e.key == HGEK_RIGHT ) {
			if( hge->Input_GetKeyState( HGEK_SHIFT ) ) {
				SelectionMoveRight();
			}
			else {
				SelectionClear();
			}
			InputLineMoveRight();
		}
		else if( e.chr > 32 ) {
			SelectionDelete();
			InputLineAddChar( e.chr, input_line_pos );
			InputLineMoveRight();
		}
		else {
			return true;
		}
		blink_timer.Restart();
	}
	return false;
}