diff options
Diffstat (limited to 'src/view_bgimage.c')
-rwxr-xr-x | src/view_bgimage.c | 114 |
1 files changed, 114 insertions, 0 deletions
diff --git a/src/view_bgimage.c b/src/view_bgimage.c new file mode 100755 index 0000000..b4cc1f3 --- /dev/null +++ b/src/view_bgimage.c @@ -0,0 +1,114 @@ +/* + * Copyright (c) 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 <Elementary.h> +#include <viewmgr.h> +#include <app_debug.h> + +#include "define.h" +#include "view.h" + +struct _priv { + Evas_Object *base; +}; + +static Evas_Object *_create(Evas_Object *win, void *data) +{ + struct _priv *priv; + + if (!win) { + _ERR("failed to get win object"); + return NULL; + } + + priv = calloc(1, sizeof(*priv)); + if (!priv) { + _ERR("failed to allocate priv"); + return NULL; + } + + priv->base = elm_layout_add(win); + if (!priv->base) { + _ERR("failed to create base object"); + free(priv); + return NULL; + } + elm_layout_file_set(priv->base, EDJEFILE, GRP_VIEW_BGIMAGE); + + evas_object_size_hint_weight_set(priv->base, + EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + elm_win_resize_object_add(win, priv->base); + + viewmgr_set_view_data(VIEW_BGIMAGE, priv); + + return priv->base; +} + +static void _show(void *view_data) +{ + struct _priv *priv; + + if (!view_data) { + _ERR("failed to get view data"); + return; + } + + priv = view_data; + evas_object_show(priv->base); +} + +static void _hide(void *view_data) +{ + struct _priv *priv; + + if (!view_data) { + _ERR("failed to get view data"); + return; + } + + priv = view_data; + + evas_object_hide(priv->base); +} + +static void _destroy(void *view_data) +{ + struct _priv *priv; + + if (!view_data) { + _ERR("failed to get view data"); + return; + } + + priv = view_data; + + evas_object_del(priv->base); + + free(priv); +} + +static view_class vclass = { + .view_id = VIEW_BGIMAGE, + .create = _create, + .show = _show, + .hide = _hide, + .destroy = _destroy, +}; + +view_class *view_bgimage_get_vclass(void) +{ + return &vclass; +} |