File Manager / src / model /
clipboard.c
/*
* Copyright 2014 - 2015 Samsung Electronics Co., Ltd All Rights Reserved
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
*/
#include "model/clipboard.h"
#include "utils/common-utils.h"
#include "utils/logger.h"
struct _clipboard {
Eina_List *selected_files;
operation_type oper_type;
};
clipboard *clipboard_create()
{
clipboard *clipboard_obj = calloc(1, sizeof(clipboard));
return clipboard_obj;
}
void clipboard_destroy(clipboard *clipboard_obj)
{
clipboard_clear(clipboard_obj);
free(clipboard_obj);
}
int clipboard_add_data(clipboard *clipboard_obj, Eina_List *file_list)
{
RETVM_IF(!clipboard_obj, RESULT_TYPE_INVALID_ARG, "Clipboard object is NULL");
RETVM_IF(!file_list, RESULT_TYPE_INVALID_ARG, "File list is NULL");
int res = RESULT_TYPE_OK;
clipboard_clear(clipboard_obj);
res = common_util_copy_selected_file_list(file_list, &clipboard_obj->selected_files);
if (res != RESULT_TYPE_OK) {
clipboard_clear(clipboard_obj);
ERR("Failed to copy source list");
}
return res;
}
int clipboard_get_data(clipboard *clipboard_obj, Eina_List **file_list)
{
RETVM_IF(!clipboard_obj, RESULT_TYPE_INVALID_ARG, "Clipboard object is NULL");
*file_list = clipboard_obj->selected_files;
return RESULT_TYPE_OK;
}
int clipboard_set_operation(clipboard *clipboard_obj, operation_type type)
{
RETVM_IF(!clipboard_obj, RESULT_TYPE_INVALID_ARG, "Clipboard object is NULL");
clipboard_obj->oper_type = type;
return RESULT_TYPE_OK;
}
int clipboard_get_operation(clipboard *clipboard_obj, operation_type *type)
{
RETVM_IF(!clipboard_obj, RESULT_TYPE_INVALID_ARG , "Clipboard object is NULL");
*type = clipboard_obj->oper_type;
return RESULT_TYPE_OK;
}
int clipboard_is_empty(clipboard *clipboard_obj, Eina_Bool *empty)
{
RETVM_IF(!clipboard_obj, RESULT_TYPE_INVALID_ARG, "Clipboard object is NULL");
*empty = (clipboard_obj->selected_files ? EINA_FALSE : EINA_TRUE);
return RESULT_TYPE_OK;
}
int clipboard_clear(clipboard *clipboard_obj)
{
RETVM_IF(!clipboard_obj, RESULT_TYPE_INVALID_ARG, "Clipboard object is NULL");
common_util_clear_file_list(&clipboard_obj->selected_files);
clipboard_obj->oper_type = OPERATION_TYPE_NONE;
return RESULT_TYPE_OK;
}