Content


NTL
Core
IListItem

IListItem


Describes list item. It is common interface for all items for controls that handle item lists(like, PopupMenu, MainMemu, DropDown, ListBox). Hovered state is used as called - for identifying if item is under mouse pointer. Active state is usually used for identification the only one active item(it is used in menus and lists).

You can find more information in comments below. Overrided methods can be found in corresponding base interface.

class IListItem :public virtual IClass
{
public:
    virtual IListItem *getParent() = 0; // Return parent item 
    virtual PointF getSize() = 0; // Return size 
    virtual PointF getPosition() = 0; // Return position relative to parent 
    virtual int getItemCount(const bool total = false) = 0; // Return child item count 
    virtual IListItem *getItem(const int index) = 0; // Return child item by index 
    virtual IListItem *getItem(const String &name) = 0; // Return child item by name 
    virtual IListItem *getItem(const PointF &position) = 0; // Return child(or this one) item at specified position 
    virtual int getItemIndex(IListItem *item) = 0; // Return item index or -1 
    virtual bool isVisible() = 0; // Return visibility flag value 
    virtual bool isEnabled() = 0; // Return enabled/disabled flag value 
    virtual bool isHovered() = 0; // Return hovered flag value 
    virtual bool isSelected() = 0; // Return selection flag value 
    virtual bool isActive() = 0; // Return active/inactive flag value 
    virtual bool hasItem(IListItem *item) = 0; // Return if item exists in children hierarchy 
    virtual bool isAcceptItems() = 0; // Whether other items can be added to this one 
    virtual bool isAcceptItem(IListItem *item) = 0; // Whether specified item can be added to this one. By default return same as isAcceptItems(). Overwrite to allow only specific type items 

    virtual bool setVisible(const bool value) = 0; // Change visiblity flag and notify owner via OnShow and OnHide notifications 
    virtual bool setEnabled(const bool value) = 0; // Change availability flag an notify owner via OnEnable and OnDisable notifications 
    virtual bool setSelected(const bool value) = 0; // Change selection flag and notify owner via OnSelect and OnDeselect notifications 
    virtual bool setActive(const bool value) = 0; // Change active/inactive state and notify owner via OnActive and OnDeactivate notifications 

    virtual bool AddItem(IListItem *item) = 0; // Add child item 
    virtual bool InsertItem(IListItem *item, const int before) = 0; // Insert child item before specified position 
    virtual bool DeleteItem(const int index) = 0; // Delete child item by index 
    virtual bool DeleteItem(IListItem *item) = 0; // Delete specified child item 
    virtual bool DeleteItems() = 0; // Delete all child items 
    virtual bool DetachItem(IListItem *item) = 0; // Delete child item from list but don't destroy it 

    virtual IListItem *Clone() = 0; // Should create copy of this item with empty parent and owner 
    virtual bool Copy(IListItem *dest) = 0; // Should copy properties to specified destination list item 

    virtual IListItemService *QueryService() = 0; // Return service interface 
    virtual void Release() = 0; // Destroy instance 

    virtual bool BringToFront() = 0; // Change item position in list or items on parent item/control 
    virtual bool BringUp() = 0; // Change item position in parent list to 1 position up 
    virtual bool BringDown() = 0; // Change item position in parent list to 1 position down 
    virtual bool BringBefore(IListItem *item) = 0; // Change item position in parent list setting it before specified item 
    virtual bool BringBefore(const int index) = 0; // Change item position in parent list setting it before specified index 
    virtual bool BringAfter(IListItem *item) = 0; // Change item position in parent list setting it after specified item 
    virtual bool BringAfter(const int index) = 0; // Change item position in parent list setting it after specified index 
};
Namespace: nitisa
Include: Nitisa/Interfaces/IListItem.h