* limitations under the License.
*/
-group { "elm/layout/gallery/fake_access_object";
- data.item: "access_highlight" "on";
-}
-
group { "elm/layout/gallery/more_options";
parts {
swallow { "elm.swallow.content";
+++ /dev/null
-/*
- * Copyright 2017 Samsung Electronics Co., Ltd
- *
- * Licensed under the Flora License, Version 1.1 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://floralicense.org/license/
- *
- * 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 "AtspiHighlightHelper.h"
-
-#include "common.h"
-
-namespace gallery { namespace { namespace impl {
-
- constexpr EoDataKey ATSPI_HELPER_DATA {"gallery,atspi,highlight,helper"};
-}}}
-
-namespace gallery {
-
- using ucl::AtspiGestureEventInfo;
-
- using ucl::ATSPI_ON_GESTURE;
-
- AtspiHighlightHelperSRef AtspiHighlightHelper::newInstance(
- GuiPresenter &parent, ElmWidget &rootWidget)
- {
- auto result = makeShared<AtspiHighlightHelper>();
-
- FAIL_RETURN_VALUE(result->prepare(parent, rootWidget), {},
- "result->prepare() failed!");
-
- return result;
- }
-
- AtspiHighlightHelper::AtspiHighlightHelper(IRefCountObj &rc) :
- GuiPresenter(rc)
- {
- }
-
- AtspiHighlightHelper::~AtspiHighlightHelper()
- {
- }
-
- Result AtspiHighlightHelper::prepare(GuiPresenter &parent,
- ElmWidget &rootWidget)
- {
- FAIL_RETURN(GuiPresenter::prepare(parent),
- "GuiPresenter::prepare() failed!");
-
- registerWidget(rootWidget);
-
- return RES_OK;
- }
-
- void AtspiHighlightHelper::setEventHandler(EventHandler handler)
- {
- m_eventHandler = handler;
- }
-
- void AtspiHighlightHelper::registerWidget(ElmWidget &widget)
- {
- widget.addEventHandler(ATSPI_ON_GESTURE, WEAK_DELEGATE(
- AtspiHighlightHelper::onAtspiGesture, asWeak(*this)));
- }
-
- void AtspiHighlightHelper::onAtspiGesture(
- Widget &widget, void *eventInfo)
- {
- auto &e = *static_cast<AtspiGestureEventInfo *>(eventInfo);
- if (e.stopPropagation) {
- return;
- }
- if (!isActive()) {
- e.preventDefault = true;
- return;
- }
-
- e.preventDefault = false;
- e.stopPropagation = true;
-
- if (!m_eventHandler) {
- return;
- }
- const Elm_Atspi_Relation_Type relation = getFlowRelation(e.gestureInfo);
- if (relation == ELM_ATSPI_RELATION_NULL) {
- return;
- }
- const auto relationObj = m_eventHandler(widget, relation);
- if (!relationObj) {
- return;
- }
-
- auto &win = getWindow();
- auto atspiHelper = static_cast<Elm_Interface_Atspi_Accessible *>
- (win.getData(impl::ATSPI_HELPER_DATA));
-
- if (!atspiHelper) {
- const auto obj = util::createFakeAccessObject(win);
- if (!obj) {
- LOG_RETURN_VOID(RES_FAIL, "createFakeAccessObject() failed!");
- }
- obj->setIsOwner(false);
- atspiHelper = obj->getEo();
- win.setData(impl::ATSPI_HELPER_DATA, atspiHelper);
- }
-
- elm_atspi_component_highlight_grab(atspiHelper);
-
- elm_atspi_accessible_relationships_clear(atspiHelper);
- elm_atspi_accessible_relationship_append(atspiHelper,
- relation, relationObj);
- }
-}
+++ /dev/null
-/*
- * Copyright 2017 Samsung Electronics Co., Ltd
- *
- * Licensed under the Flora License, Version 1.1 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://floralicense.org/license/
- *
- * 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.
- */
-
-#ifndef __GALLERY_PRESENTERS_MISC_ATSPI_HIGHLIGH_HELPER_H__
-#define __GALLERY_PRESENTERS_MISC_ATSPI_HIGHLIGH_HELPER_H__
-
-#include "ucl/mvp/GuiPresenter.h"
-
-namespace gallery {
-
- UCL_DECLARE_REF_ALIASES(AtspiHighlightHelper);
-
- class AtspiHighlightHelper final : public ucl::GuiPresenter {
- public:
- using EventHandler = ucl::WeakDelegate<Elm_Interface_Atspi_Accessible *(
- ucl::Widget &widget, Elm_Atspi_Relation_Type flowRelation)>;
-
- public:
- static AtspiHighlightHelperSRef newInstance(GuiPresenter &parent,
- ucl::ElmWidget &rootWidget);
-
- void setEventHandler(EventHandler handler);
- void registerWidget(ucl::ElmWidget &widget);
-
- private:
- friend class ucl::ReffedObj<AtspiHighlightHelper>;
- AtspiHighlightHelper(ucl::IRefCountObj &rc);
- virtual ~AtspiHighlightHelper();
-
- ucl::Result prepare(GuiPresenter &parent, ucl::ElmWidget &rootWidget);
-
- private:
- void onAtspiGesture(ucl::Widget &widget, void *eventInfo);
-
- private:
- EventHandler m_eventHandler;
- };
-}
-
-#endif // __GALLERY_PRESENTERS_MISC_ATSPI_HIGHLIGH_HELPER_H__
m_more->setListener(asWeakThis<MoreOptionsPresenter::IListener>(this));
- m_atspiHelper = AtspiHighlightHelper::newInstance(*this, getWindow());
- if (!m_atspiHelper) {
- LOG_RETURN(RES_FAIL, "AtspiHighlightHelper::newInstance() failed!");
- }
-
if (m_startupMode != Mode::OPERATION_VIEW) {
m_smp = SelectModePresenter::Builder().
setPageContent(m_content).
m_smp->setListener(asWeakThis<
SelectModePresenter::IListener>(this));
-
- m_atspiHelper->registerWidget(m_smp->getSelectButton());
- m_atspiHelper->registerWidget(m_smp->getBottomButton());
}
FAIL_RETURN(m_album->forEachMedia(
m_album->addChangeHandler(WEAK_DELEGATE(
PreviewPage::onAlbumChanged, asWeak(*this)));
- m_atspiHelper->setEventHandler(WEAK_DELEGATE(
- PreviewPage::onAtspiHighlight, asWeak(*this)));
-
if (m_startupMode == Mode::SELECT) {
switchToSelectMode();
}
activateBy(m_imageGrid.get());
}
- Elm_Interface_Atspi_Accessible *PreviewPage::onAccessObjectRequest(
- bool isFlowsTo)
- {
- if (m_isInSelectMode) {
- return (isFlowsTo ?
- m_smp->getBottomButton() :
- m_smp->getSelectButton());
- }
- return nullptr;
- }
-
- Elm_Interface_Atspi_Accessible *PreviewPage::onAtspiHighlight(
- Widget &widget, Elm_Atspi_Relation_Type flowRelation)
- {
- if (m_smp && (widget == m_smp->getSelectButton())) {
- if (flowRelation == ELM_ATSPI_RELATION_FLOWS_TO) {
- return m_imageGrid->getAccessObject(true);
- }
- } else if (m_smp && (widget == m_smp->getBottomButton())) {
- if (flowRelation == ELM_ATSPI_RELATION_FLOWS_FROM) {
- return m_imageGrid->getAccessObject(false);
- }
- } else if (widget == getWindow()) {
- return (m_isInSelectMode ?
- m_smp->getSelectButton() :
- m_imageGrid->getAccessObject(true));
- } else {
- LOG_RETURN_VALUE(RES_FAIL, nullptr, "Unknown object!");
- }
- return widget.getEo();
- }
-
void PreviewPage::onMoreOptionClicked(MoreOptionsPresenter &sender,
const int optionId)
{
#include "gallery/presenters/misc/MoreOptionsPresenter.h"
#include "gallery/presenters/misc/SelectModePresenter.h"
#include "gallery/presenters/misc/ProcessingPresenter.h"
-#include "gallery/presenters/misc/AtspiHighlightHelper.h"
#include "gallery/presenters/dialogs/AlertDialog.h"
void onPageExitRequest(Page &page);
- Elm_Interface_Atspi_Accessible *onAtspiHighlight(
- ucl::Widget &widget, Elm_Atspi_Relation_Type flowRelation);
-
// GuiPresenter //
virtual void onActivateBy(const DeactivatorInfo &info) final override;
virtual void onItemEvent(int itemIndex,
ImageGrid::ItemEvent event, int x, int y) final override;
virtual void onTransitionFinished() final override;
- virtual Elm_Interface_Atspi_Accessible *onAccessObjectRequest(
- bool isFlowsTo) final override;
// MoreOptionsPresenter::IListener //
SelectModePresenterSRef m_smp;
DialogWRef m_alert;
ProcessingPresenterSRef m_processing;
- AtspiHighlightHelperSRef m_atspiHelper;
PageWRef m_page;
int m_selectCount;
}
m_content->set(m_more->getWidget(), PageContent::Part::MORE_OPTIONS);
- m_atspiHelper = AtspiHighlightHelper::newInstance(*this, getWindow());
- if (!m_atspiHelper) {
- LOG_RETURN(RES_FAIL, "AtspiHighlightHelper::newInstance() failed!");
- }
-
FAIL_RETURN(m_album->forEachMedia(
DELEGATE(ThumbnailPage::onEachMedia, this)),
"m_album->forEachMedia() failed!");
m_more->setListener(asWeakThis<MoreOptionsPresenter::IListener>(this));
- m_atspiHelper->setEventHandler(WEAK_DELEGATE(
- ThumbnailPage::onAtspiHighlight, asWeak(*this)));
-
return RES_OK;
}
m_imageGrid->deactivateRotary();
}
- Elm_Interface_Atspi_Accessible *ThumbnailPage::onAtspiHighlight(
- Widget &widget, Elm_Atspi_Relation_Type flowRelation)
- {
- return m_imageGrid->getAccessObject(true);
- }
-
void ThumbnailPage::onItemRealized(const int itemIndex)
{
m_realizedItems.emplace_back(
#include "gallery/presenters/base/Page.h"
#include "gallery/presenters/misc/MoreOptionsPresenter.h"
-#include "gallery/presenters/misc/AtspiHighlightHelper.h"
namespace gallery {
void onPageExitRequest(Page &page);
- Elm_Interface_Atspi_Accessible *onAtspiHighlight(
- ucl::Widget &widget, Elm_Atspi_Relation_Type flowRelation);
-
// GuiPresenter //
virtual void onActivateBy(const DeactivatorInfo &info) final override;
PageContentSRef m_content;
ImageGridSRef m_imageGrid;
MoreOptionsPresenterSRef m_more;
- AtspiHighlightHelperSRef m_atspiHelper;
PageWRef m_page;
};
// Other //
constexpr auto HCOMB_SCROLL_LIMIT = 1000;
- constexpr auto SCROLL_HIGHLIGHT_TIMEOUT_SEC = 0.1;
bool getImageSize(const Widget &image, int &w, int &h)
{
return 0;
}
- virtual int getHighlightScanRange() const
- {
- return 1;
- }
-
Info(const std::array<LayoutTheme, 2> &slotThemes,
const std::array<int, 2> &slotLens,
const ElmStyle btnStyle,
return slotSize;
}
- virtual int getHighlightScanRange() const final override
- {
- return totalLength;
- }
-
HcombInfo(const int totalLength,
const std::array<LayoutTheme, 2> &slotThemes,
const ElmStyle btnStyle) :
m_btn.addEventHandler(BTN_CLICKED, WEAK_DELEGATE(
Item::onClicked, asWeak(*this)));
- m_btn.addEventHandler(ATSPI_HIGHLIGHTED, WEAK_DELEGATE(
- Item::onHighlighted, asWeak(*this)));
- m_btn.addEventHandler(ATSPI_UNHIGHLIGHTED, WEAK_DELEGATE(
- Item::onUnhighlighted, asWeak(*this)));
-
- elm_atspi_accessible_gesture_cb_set(m_btn,
- CALLBACK_A(Item::onAtspiGesture), this);
m_touchParser = makeShared<TouchParser>(m_btn);
m_touchParser->setDoubleTapHandler(
WEAK_DELEGATE(Item::onTapAndHold, asWeak(*this)));
}
- ~Item()
- {
- elm_atspi_accessible_gesture_cb_set(m_btn, nullptr, nullptr);
- }
-
Widget &getWidget()
{
return m_btn;
return;
}
- if ((m_imageGrid.m_highlightID == m_realizeIndex) &&
- m_imageGrid.m_highlightTimeout) {
- m_imageGrid.m_isHighlightLocked = true;
- elm_atspi_component_highlight_clear(m_btn);
- }
-
const int itemIndex = m_realizeIndex;
m_realizeIndex = -1;
(curImgW != m_imageWidth) ||
(curImgH != m_imageHeight) || (
((curImgW / m_imageLoadSize) <= 1) &&
- ((curImgH / m_imageLoadSize) <= 1)
- ));
+ ((curImgH / m_imageLoadSize) <= 1)));
}
void onImagePreloaded(Widget &widget, void *eventInfo)
}
}
- void onHighlighted(Widget &widget, void *eventInfo)
- {
- if (!isRealized()) {
- LOG_RETURN_VOID(RES_INVALID_OPERATION,
- "Item is not realized!");
- }
- m_imageGrid.onItemHighlighted(m_realizeIndex);
- }
-
- void onUnhighlighted(Widget &widget, void *eventInfo)
- {
- if (!isRealized()) {
- LOG_RETURN_VOID(RES_INVALID_OPERATION,
- "Item is not realized!");
- }
- m_imageGrid.onItemUnhighlighted(m_realizeIndex);
- }
-
- Eina_Bool onAtspiGesture(Elm_Atspi_Gesture_Info gestureInfo,
- Evas_Object *obj)
- {
- if (!isRealized()) {
- LOG_RETURN_VALUE(RES_INVALID_OPERATION, EINA_FALSE,
- "Item is not realized!");
- }
-
- const Elm_Atspi_Relation_Type relation =
- getFlowRelation(gestureInfo);
- if (relation == ELM_ATSPI_RELATION_NULL) {
- return EINA_FALSE;
- }
-
- const int relationIndex =
- ((relation == ELM_ATSPI_RELATION_FLOWS_TO) ?
- (m_realizeIndex + 1) :
- (m_realizeIndex - 1));
-
- auto relationObject = m_imageGrid.requestAtspi(relationIndex);
- if (!relationObject) {
- relationObject = m_btn.getEo();
- }
-
- elm_atspi_accessible_relationships_clear(m_btn);
- elm_atspi_accessible_relationship_append(m_btn,
- relation, relationObject);
-
- return EINA_FALSE;
- }
-
private:
ImageGrid &m_imageGrid;
StyledWidget m_btn;
m_items[itemOffset]->getInfo(info);
}
- Elm_Interface_Atspi_Accessible *getItemAtspi(const int itemOffset)
- {
- return m_items[itemOffset]->getWidget().getEo();
- }
-
private:
void setSelected(const int itemOffset, const bool selected)
{
m_animator(nullptr),
m_scrollLockIndex(0),
m_isInSelectMode(selectModeStartup),
- m_isRotaryActive(false),
-
- m_highlightID(-1),
- m_isHighlightLocked(false)
+ m_isRotaryActive(false)
{
prepare();
createCircleScroller();
- createHighlightKeeper();
-
m_scroller->addEventHandler(SmartEvent{"language,changed"},
WEAK_DELEGATE(ImageGrid::onLanguageChanged, asWeak(*this)));
}
}
- void ImageGrid::createHighlightKeeper()
- {
- m_highlightKeeper = util::createFakeAccessObject(*m_box.getWindow());
- UCL_ASSERT(m_highlightKeeper, "m_highlightKeeper is NULL");
-
- m_highlightKeeper->addEventHandler(ATSPI_UNHIGHLIGHTED,
- WEAK_DELEGATE(ImageGrid::onKeeperUnhighlighted, asWeak(*this)));
- }
-
void ImageGrid::setListener(const IListenerWRef &listener)
{
m_listener = listener;
});
}
- Elm_Interface_Atspi_Accessible *ImageGrid::getAccessObject(
- const bool isFlowsTo)
- {
- return getItemAtspi(isFlowsTo ? 0 : (m_itemCount - 1));
- }
-
template <class FUNC>
Result ImageGrid::doWithItem(const int itemIndex, FUNC &&func) const
{
return (isItemFullyVisible(slotIndex, itemOffset,
minVisibleOffset, maxVisibleOffset) ?
RES_OK : RES_FALSE);
- }
- ) == RES_OK);
+ }) == RES_OK);
}
bool ImageGrid::isItemFullyVisible(
}
}
- void ImageGrid::onItemHighlighted(const int itemIndex)
- {
- m_highlightID = itemIndex;
- m_highlightTimeout.reset();
- }
-
- void ImageGrid::onItemUnhighlighted(const int itemIndex)
- {
- if (m_highlightID == itemIndex) {
- m_highlightID = (-1 - itemIndex);
- if (m_isHighlightLocked) {
- elm_atspi_component_highlight_grab(*m_highlightKeeper);
- } else {
- m_highlightTimeout.reset();
- }
- }
- }
-
- void ImageGrid::onKeeperUnhighlighted(Widget &sender, void *eventInfo)
- {
- m_isHighlightLocked = false;
- m_highlightTimeout.reset();
- }
-
- void ImageGrid::updateHighlightTimeout()
- {
- if (m_highlightID >= 0) {
- if (isItemFullyVisible(m_highlightID)) {
- m_highlightTimeout.reset();
- return;
- }
- } else if (!m_isHighlightLocked) {
- return;
- }
-
- m_highlightTimeout = Timeout::create(
- impl::SCROLL_HIGHLIGHT_TIMEOUT_SEC, WEAK_DELEGATE(
- ImageGrid::onHighlightTimeout, asWeak(*this)));
- }
-
- void ImageGrid::onHighlightTimeout(Timeout *sender)
- {
- m_highlightTimeout.reset();
-
- int itemIndex = ((m_highlightID >= 0) ?
- m_highlightID : (-1 - m_highlightID));
- bool found = false;
-
- for (int i = m_info.getHighlightScanRange(); ((i >= 0) &&
- (itemIndex >= 0) && (itemIndex < m_itemCount)); --i) {
- int minVisibleOffset = 0;
- int maxVisibleOffset = 0;
- if (isItemFullyVisible(itemIndex,
- minVisibleOffset, maxVisibleOffset)) {
- found = true;
- } else if (m_scrollOffset > maxVisibleOffset) {
- ++itemIndex;
- } else {
- --itemIndex;
- }
- }
-
- if (!found) {
- itemIndex = getScrolledToItemIndex();
- }
-
- FAIL_RETURN_VOID(doWithItem(itemIndex,
- [](Slot &slot, const int itemOffset)
- {
- elm_atspi_component_highlight_grab(
- slot.getItemAtspi(itemOffset));
- return RES_OK;
- }), "Failed to Grab item highlight!");
- }
-
- Elm_Interface_Atspi_Accessible *ImageGrid::requestAtspi(const int itemIndex)
- {
- if ((itemIndex < 0) || (itemIndex >= m_itemCount)) {
- if (const auto listener = m_listener.lock()) {
- return listener->onAccessObjectRequest(
- (itemIndex >= m_itemCount));
- }
- return nullptr;
- }
-
- const int oldHighlightID = m_highlightID;
- m_highlightID = itemIndex; // To prevent autohighlight timer to start
-
- const auto result = getItemAtspi(itemIndex);
- if (!result) {
- m_highlightID = oldHighlightID;
- return nullptr;
- }
-
- m_highlightTimeout.reset();
-
- return result;
- }
-
- Elm_Interface_Atspi_Accessible *ImageGrid::getItemAtspi(
- const int itemIndex)
- {
- FAIL_RETURN_VALUE(scrollToItem(itemIndex), nullptr,
- "scrollToItem() failed!");
-
- Elm_Interface_Atspi_Accessible *result = nullptr;
-
- FAIL_RETURN_VALUE(doWithItem(itemIndex,
- [&result](Slot &slot, const int itemOffset)
- {
- result = slot.getItemAtspi(itemOffset);
- return RES_OK;
- }), nullptr, "Failed to get item Atspi!");
-
- return result;
- }
-
bool ImageGrid::updateSlotCount()
{
const int newSlotCount = calcSlotCount();
}
++m_eventsLock;
- if (updateScrollOffset()) {
- updateHighlightTimeout();
- if (updateBeginSlotIndex()) {
- realizeSlots();
- updateRectMins();
- }
+ if (updateScrollOffset() && updateBeginSlotIndex()) {
+ realizeSlots();
+ updateRectMins();
}
--m_eventsLock;
virtual void onItemEvent(int itemIndex,
ItemEvent event, int x, int y) = 0;
virtual void onTransitionFinished() {}
- virtual Elm_Interface_Atspi_Accessible *onAccessObjectRequest(
- bool isFlowsTo) { return nullptr; }
};
enum {
ucl::Result isItemRealized(int itemIndex) const;
ucl::Result getItemInfo(int itemIndex, ItemInfo &info) const;
- Elm_Interface_Atspi_Accessible *getAccessObject(bool isFlowsTo);
int getScrolledToItemIndex() const;
ucl::Result scrollToItem(int itemIndex);
void handleItemEvent(int itemIndex,
ItemEvent event, int x, int y) const;
- // Accessibility
-
- void onItemHighlighted(int itemIndex);
- void onItemUnhighlighted(int itemIndex);
- void onKeeperUnhighlighted(Widget &sender, void *eventInfo);
-
- void updateHighlightTimeout();
- void onHighlightTimeout(ucl::Timeout *sender);
-
- Elm_Interface_Atspi_Accessible *requestAtspi(int itemIndex);
- Elm_Interface_Atspi_Accessible *getItemAtspi(int itemIndex);
-
// Selection mode hanling
void evalSlotSizes();
void finalizeTransition();
// Initialization
void prepare();
void createCircleScroller();
- void createHighlightKeeper();
// Actual slots count
bool updateSlotCount();
int m_scrollLockIndex;
bool m_isInSelectMode;
bool m_isRotaryActive;
-
- ucl::ElmWidgetSRef m_highlightKeeper;
- ucl::TimeoutSRef m_highlightTimeout;
- int m_highlightID;
- bool m_isHighlightLocked;
};
}
constexpr ucl::SmartEvent BTN_CLICKED {"clicked"};
constexpr ucl::SmartEvent POPUP_DISMISSED {"dismissed"};
- constexpr ucl::SmartEvent ATSPI_HIGHLIGHTED {"atspi,highlighted"};
- constexpr ucl::SmartEvent ATSPI_UNHIGHLIGHTED {"atspi,unhighlighted"};
-
constexpr ucl::ElmStyle SCROLLER_STYLE {"effect"};
constexpr ucl::ElmStyle NAVIFRAME_NO_CLIP {"gallery_no_clip"};
namespace gallery { namespace { namespace impl {
constexpr EoDataKey CIRCLE_SURFACE {"gallery,eext,circle,surface"};
-
- constexpr LayoutTheme LAYOUT_FAKE_ACCESS_OBJECT
- {"layout", "gallery", "fake_access_object"};
}}}
namespace gallery { namespace util {
return sfc;
}
- ElmWidgetSRef createFakeAccessObject(ElmWidget &parent)
- {
- const auto result = Layout::Builder().
- setTheme(impl::LAYOUT_FAKE_ACCESS_OBJECT).
- setNeedBindToEo(true).
- build(parent);
- if (!result) {
- LOG_RETURN_VALUE(RES_FAIL, {}, "Layout::build() failed!");
- }
-
- result->setGeometry(0, 0, 1, 1);
- show(*result);
-
- elm_atspi_accessible_reading_info_type_set(*result, 0);
-
- elm_atspi_accessible_gesture_cb_set(*result,
- [](void *, Elm_Atspi_Gesture_Info, Evas_Object *) -> Eina_Bool
- {
- return EINA_TRUE;
- },
- nullptr);
-
- return result;
- }
-
void updateElmLanguage()
{
std::string locale = "en_US.utf8";
{
return {"layout", "gallery_image", fileName};
}
-
- Elm_Atspi_Relation_Type getFlowRelation(Elm_Atspi_Gesture_Info gestureInfo)
- {
- switch (gestureInfo.type) {
- case ELM_ATSPI_GESTURE_ONE_FINGER_FLICK_RIGHT:
- case ELM_ATSPI_GESTURE_ONE_FINGER_FLICK_DOWN:
- return ELM_ATSPI_RELATION_FLOWS_TO;
- case ELM_ATSPI_GESTURE_ONE_FINGER_FLICK_LEFT:
- case ELM_ATSPI_GESTURE_ONE_FINGER_FLICK_UP:
- return ELM_ATSPI_RELATION_FLOWS_FROM;
- default:
- break;
- }
- return ELM_ATSPI_RELATION_NULL;
- }
}
ucl::Result createCircleSurface(ucl::Naviframe &navi);
Eext_Circle_Surface *getCircleSurface(const ucl::ElmWidget &widget);
- ucl::ElmWidgetSRef createFakeAccessObject(ucl::ElmWidget &parent);
-
void updateElmLanguage();
}}
void delRotaryEventHandler(Eext_Rotary_Handler_Cb func, void *data);
ucl::LayoutTheme getImageTheme(const char *fileName);
-
- Elm_Atspi_Relation_Type getFlowRelation(Elm_Atspi_Gesture_Info gestureInfo);
}
#endif // __GALLERY_VIEW_HELPERS_H__
profile = wearable-4.0\r
\r
# C/CPP Sources\r
-USER_SRCS = gallery/model/CustomMediaAlbum.cpp gallery/presenters/pages/ThumbnailPage.cpp gallery/presenters/InstanceManager.cpp gallery/presenters/misc/SelectModePresenter.cpp gallery/resources.cpp gallery/presenters/misc/MoreOptionsPresenter.cpp ucl/source/misc/Variant.cpp gallery/presenters/misc/ProcessingPresenter.cpp gallery/model/helpers.cpp ucl/source/util/types/Result.cpp gallery/model/impl/GalleryAlbum.cpp gallery/presenters/misc/helpers.cpp gallery/view/ImageViewer.cpp gallery/helpers.cpp ucl/source/gui/WidgetItem.cpp gallery/model/Gallery.cpp ucl/source/gui/Naviframe.cpp ucl/source/appfw/UIApp.cpp gallery/presenters/pages/VideoPlayerPage.cpp gallery/main.cpp ucl/source/gui/Layout.cpp gallery/model/MediaItem.cpp ucl/source/gui/Window.cpp ucl/source/gui/Widget.cpp gallery/model/impl/BaseJob.cpp ucl/source/gui/NaviItem.cpp ucl/source/appfw/helpers.cpp gallery/presenters/Instance.cpp ucl/source/mvp/GuiPresenter.cpp ucl/source/appfw/InstanceManagerBase.cpp ucl/source/util/logging.cpp gallery/presenters/pages/ViewerPage.cpp gallery/presenters/misc/AtspiHighlightHelper.cpp gallery/model/SoundManager.cpp gallery/presenters/base/Dialog.cpp ucl/source/misc/Timeout.cpp gallery/presenters/pages/NoContentPage.cpp gallery/presenters/pages/PreviewPage.cpp gallery/view/PageContent.cpp gallery/view/TouchParser.cpp gallery/presenters/dialogs/AlertDialog.cpp gallery/model/impl/helpers.cpp ucl/source/appfw/SysEventProvider.cpp gallery/presenters/base/Page.cpp gallery/view/helpers.cpp ucl/source/gui/ElmWidget.cpp gallery/view/ImageGrid.cpp ucl/source/gui/EdjeWidget.cpp \r
+USER_SRCS = gallery/model/CustomMediaAlbum.cpp gallery/presenters/pages/ThumbnailPage.cpp gallery/presenters/InstanceManager.cpp gallery/presenters/misc/SelectModePresenter.cpp gallery/resources.cpp gallery/presenters/misc/MoreOptionsPresenter.cpp ucl/source/misc/Variant.cpp gallery/presenters/misc/ProcessingPresenter.cpp gallery/model/helpers.cpp ucl/source/util/types/Result.cpp gallery/model/impl/GalleryAlbum.cpp gallery/presenters/misc/helpers.cpp gallery/view/ImageViewer.cpp gallery/helpers.cpp ucl/source/gui/WidgetItem.cpp gallery/model/Gallery.cpp ucl/source/gui/Naviframe.cpp ucl/source/appfw/UIApp.cpp gallery/presenters/pages/VideoPlayerPage.cpp gallery/main.cpp ucl/source/gui/Layout.cpp gallery/model/MediaItem.cpp ucl/source/gui/Window.cpp ucl/source/gui/Widget.cpp gallery/model/impl/BaseJob.cpp ucl/source/gui/NaviItem.cpp ucl/source/appfw/helpers.cpp gallery/presenters/Instance.cpp ucl/source/mvp/GuiPresenter.cpp ucl/source/appfw/InstanceManagerBase.cpp ucl/source/util/logging.cpp gallery/presenters/pages/ViewerPage.cpp gallery/model/SoundManager.cpp gallery/presenters/base/Dialog.cpp ucl/source/misc/Timeout.cpp gallery/presenters/pages/NoContentPage.cpp gallery/presenters/pages/PreviewPage.cpp gallery/view/PageContent.cpp gallery/view/TouchParser.cpp gallery/presenters/dialogs/AlertDialog.cpp gallery/model/impl/helpers.cpp ucl/source/appfw/SysEventProvider.cpp gallery/presenters/base/Page.cpp gallery/view/helpers.cpp ucl/source/gui/ElmWidget.cpp gallery/view/ImageGrid.cpp ucl/source/gui/EdjeWidget.cpp \r
\r
# EDC Sources\r
USER_EDCS = \r