/**
* @see GenlistItem::isGroupItem()
*/
- virtual bool isGroupItem() const;
+ virtual bool isGroupItem() const override;
+
+ /**
+ * @return Whether subitems are shown.
+ */
+ bool isExpanded() const;
/**
* @return Group item of the next group or nullptr if none.
virtual bool isGroupItem() const;
/**
+ * @return Item type.
+ */
+ Elm_Genlist_Item_Type getType() const;
+
+ /**
* @return Genlist object item.
*/
Elm_Object_Item *getObjectItem() const;
return true;
}
+bool GenlistGroupItem::isExpanded() const
+{
+ Elm_Object_Item *item = getObjectItem();
+ if (!item) {
+ return false;
+ }
+
+ if (getType() == ELM_GENLIST_ITEM_TREE) {
+ return elm_genlist_item_expanded_get(item);
+ }
+
+ return true;
+}
+
GenlistGroupItem *GenlistGroupItem::getNextGroupItem() const
{
GenlistItem *item = m_LastItem ? m_LastItem->getNextItem() : getNextItem();
}
Genlist *genlist = getParent();
- if (genlist) {
+ if (genlist && isExpanded()) {
genlist->insert(item, this, sibling, position);
} else {
auto pos = m_ItemsCache.end();
void GenlistGroupItem::onInserted()
{
- insertSubItems();
+ if (isExpanded()) {
+ insertSubItems();
+ }
}
void GenlistGroupItem::onPop()
return false;
}
+Elm_Genlist_Item_Type GenlistItem::getType() const
+{
+ return m_ItemType;
+}
+
Elm_Object_Item *GenlistItem::getObjectItem() const
{
return m_Item;
*/
virtual Evas_Object *getContent(Evas_Object *parent, const char *part) override;
+ /**
+ * @see GenlistItem::onInserted()
+ */
+ virtual void onInserted() override;
+
private:
void onRemovePressed(Evas_Object *button, void *eventInfo);
}
}
+void ContactFieldItem::onInserted()
+{
+ elm_genlist_item_expanded_set(getObjectItem(), EINA_TRUE);
+}
+
void ContactFieldItem::onRemovePressed(Evas_Object *button, void *eventInfo)
{
if (m_OnRemove) {