*/
#include <cstring>
+#include <list>
#include "watch_holder.h"
#include "../src/watch_holder.hh"
struct watch_holder_s : public WatchHolder {
public:
- watch_holder_s(Evas_Object* win, watch_lifecycle_st cb, void* cb_data)
+ watch_holder_s(Evas_Object* win, watch_holder_lifecycle_st cb, void* cb_data)
: WatchHolder(win), cb_(cb), cb_data_(cb_data) {}
void OnLaunched(const Watch& watch) override {
cb_.watch_holder_lifecycle_removed_cb(reinterpret_cast<watch_h>(&w), cb_data_);
}
- watch_lifecycle_st cb_;
+ watch_holder_lifecycle_st cb_;
void* cb_data_;
};
C_EXPORT int watch_holder_create(Evas_Object *viewer_win,
- watch_lifecycle_st lifecycle, void *user_data, watch_holder_h *handle) {
+ watch_holder_lifecycle_st lifecycle, void *user_data, watch_holder_h *handle) {
if (viewer_win == nullptr)
return WATCH_HOLDER_ERROR_INVALID_PARAMETER;
return WATCH_HOLDER_ERROR_NONE;
}
+C_EXPORT int watch_holder_foreach_watch(watch_holder_h handle, watch_holder_foreach_cb callback, void *user_data) {
+ std::list<std::shared_ptr<Watch>> list = handle->GetStack();
+ for (std::shared_ptr<Watch> wptr : list) {
+ callback(reinterpret_cast<watch_h>(wptr.get()), user_data);
+ }
+
+ return WATCH_HOLDER_ERROR_NONE;
+}
+
+C_EXPORT int watch_holder_monitor(watch_holder_h handle) {
+ return WATCH_HOLDER_ERROR_NONE;
+}
+
+C_EXPORT int watch_holder_unmonitor(watch_holder_h handle) {
+ return WATCH_HOLDER_ERROR_NONE;
+}
+
void (*watch_holder_lifecycle_removed_cb)(watch_h watch, void *data);
void (*watch_holder_lifecycle_updated_cb)(watch_h watch, Evas_Object *image, void *data);
void (*watch_holder_lifecycle_bound_cb)(watch_h watch, void *data);
-} watch_lifecycle_st;
+} watch_holder_lifecycle_st;
+
+typedef void (*watch_holder_foreach_cb)(watch_h watch, void *data);
/**
* @brief
* @since_tizen 5.5
* @return @c 0 on success, otherwise a negative error value
*/
-int watch_holder_create(Evas_Object *viewer_win, watch_lifecycle_st lifecycle, void *user_data, watch_holder_h *handle);
+int watch_holder_create(Evas_Object *viewer_win, watch_holder_lifecycle_st lifecycle, void *user_data, watch_holder_h *handle);
int watch_holder_destroy(watch_holder_h handle);
int watch_holder_get_current(watch_holder_h handle, watch_h *watch);
+int watch_holder_foreach_watch(watch_holder_h handle, watch_holder_foreach_cb cb, void *user_data);
+
+int watch_holder_monitor(watch_holder_h handle);
+
+int watch_holder_unmonitor(watch_holder_h handle);
+
#ifdef __cplusplus
}
#endif
evas_object_resize(s_info.win, s_info.w, s_info.h);
- watch_lifecycle_st lifecycle;
+ watch_holder_lifecycle_st lifecycle;
lifecycle.watch_holder_lifecycle_launched_cb = __watch_launched_cb;
lifecycle.watch_holder_lifecycle_dead_cb = __watch_dead_cb;
lifecycle.watch_holder_lifecycle_added_cb = __watch_added_cb;