Esempio n. 1
0
void Window_Selectable::Update(){
	// 共通アップデート
	Update_Common();
	// 選択時にウィンドウを閉じるかの判定
	CheckAutoClose();
	// キャンセル可能かどうかの判定
	CheckCancelable();
	switch(state){
	case UPDATING:
		// 更新
		switch(select.Move()){
		case SELECT2D_CHOOSE:
			result = select.index;
			if(autoClose){
				state = IDLE;
				Close();
			}
			break;
		case SELECT2D_CANCEL:
			if(cancelable){
				result = WND_SELECTABLE_RESULT_CANCEL;
				Close();
			}
			break;
		}
		break;
	case SUSPENDED:
		// SUSPENDED状態の判定
		state = UPDATING;
		break;
	}
}
void Window_Selectable::Update(){
	// 共通アップデート
	Update_Common();
	// 選択時にウィンドウを閉じるかの判定
	CheckAutoClose();
	// キャンセル可能かどうかの判定
	CheckCancelable();
	switch(state){
	case UPDATING:
		// 更新
		switch(select.Move()){
		case SELECT2D_CHOOSE:
			result = select.index;
			if(autoClose){
				state = IDLE;
				Close();
			}
			break;
		case SELECT2D_CANCEL:
			if(cancelable){
				// キャンセルされた時の値を返す。
				result = indexOnCanceled;
				/*
				if(indexOnCanceled >= 0){
					select.index = indexOnCanceled;
				}
				*/
				state = IDLE;
				Close();
			}
			break;
		}
		break;
	case SUSPENDED:
		// SUSPENDED状態の判定
		state = UPDATING;
		break;
	}
}