Inherited Members
public:
// typedefs
typedef CStringRef MemberID;
typedef const IItemModel::DrawInfo& DrawInfoRef;
// enums
enum SwipeMethod;
enum Columns;
// classes
class BoxedEditInfo;
class EditControlOperation;
class ItemVisitor;
template <typename Lambda>
class LambdaItemVisitor;
class SwipeItemsMouseHandler;
class TouchMouseHandler;
class ColumnInfo;
template <typename Lambda>
class LambdaViewItemVisitor;
class ViewItemVisitor;
class CheckBoxMouseHandler;
// fields
static constexpr const int kDefaultTextTrimMode = Font::kTrimModeRight;
IItemModel;
SubtitlesEnabled editModeParam;
CLASS_INTERFACE2 (ISearchResultViewer, IEditControlHost, ListViewModel) protected String searchTerms;
ObjectArray categoryNodes;
StringList collapsedCategories;
UnknownPtr <IFileTypeClassifier> fileTypeClassifier;
StyleFlags listStyle;
Coord expandSize;
bool showCategories;
// methods
virtual tresult CCL_API queryInterface (UIDRef iid, void** ptr) = 0;
virtual unsigned int CCL_API retain () = 0;
virtual unsigned int CCL_API release () = 0;
Unknown& operator = (const Unknown&);
unsigned int getRetainCount () const;
virtual Object*CCL_API revealObject (const void* moduleAddress) = 0;
virtual void CCL_API addObserver (IObserver* observer) = 0;
virtual void CCL_API removeObserver (IObserver* observer) = 0;
virtual void CCL_API signal (MessageRef msg) = 0;
virtual void CCL_API deferSignal (IMessage* msg) = 0;
static ISubject void addObserver (IUnknown* unknown, IObserver* observer);
static void removeObserver (IUnknown* unknown, IObserver* observer);
virtual void CCL_API notify (ISubject* subject, MessageRef msg) = 0;
static IObserver void notify (
IUnknown* unknown,
ISubject* subject,
MessageRef msg
);
virtual const ITypeInfo&CCL_API getTypeInfo () const = 0;
virtual tbool CCL_API getProperty (Variant& var, MemberID propertyId) const = 0;
virtual tbool CCL_API setProperty (MemberID propertyId, const Variant& var) = 0;
virtual tbool CCL_API getPropertyNames (IPropertyCollector& collector) const = 0;
virtual tbool CCL_API invokeMethod (Variant& returnValue, MessageRef msg) = 0;
DECLARE_BASE_CLASS (Object);
virtual void CCL_API removeObserver (IObserver* observer);
virtual void CCL_API signal (MessageRef msg);
virtual void CCL_API deferSignal (IMessage* msg);
virtual void deferChanged ();
virtual void CCL_API notify (ISubject* subject, MessageRef msg);
virtual bool equals (const Object& obj) const;
virtual int compare (const Object& obj) const;
virtual bool load (const Storage& storage);
virtual bool save (const Storage& storage) const;
virtual bool save (const OutputStorage& storage) const;
virtual bool toString (String& string, int flags = 0) const;
virtual int getHashCode (int size) const;
IUnknown* asUnknown ();
static void addGarbageCollected (Object* obj, bool globalScope = true);
static void deferDestruction (Object* obj);
static const void* getModuleAddress ();
IItemView* getItemView () const;
const auto& getItemViews () const;
IItemView* getItemViewByName (StringRef name);
void makeFirst (IItemView* itemView);
void makeLast (IItemView* itemView);
void CCL_API viewAttached (IItemView* itemView);
void CCL_API viewDetached (IItemView* itemView);
void drawIcon (
DrawInfoRef info,
IImage* icon,
bool enabled = true,
bool fitImage = true,
int margin = 0
);
void drawIconWithOverlay (
DrawInfoRef info,
IImage* icon,
IImage* overlay = nullptr,
bool enabled = true,
bool fitImage = true,
int margin = 0
);
void drawOverlay (DrawInfoRef info, RectRef iconRect, IImage* overlay);
void drawButtonImage (
DrawInfoRef info,
IImage* image,
bool pressed,
bool enabled = true
);
void calcCheckBoxRect (
Rect& checkRect,
DrawInfoRef info,
AlignmentRef alignment = Alignment::kHCenter
);
void drawCheckBox (
DrawInfoRef info,
bool checked,
bool enabled = true,
AlignmentRef alignment = Alignment::kHCenter
);
void calcButtonRect (
Rect& buttonRect,
DrawInfoRef info,
StringRef title,
Coord verticalMargin = 0
);
void drawButton (
DrawInfoRef info,
StringRef title,
bool enabled = true,
Coord verticalMargin = 0
);
void drawSelectBoxArrow (DrawInfoRef info, bool enabled = true, int margin = 0);
SolidBrush getTextBrush (DrawInfoRef info, bool enabled);
void drawTitle (
DrawInfoRef info,
StringRef title,
bool enabled = true,
int fontStyle = 0,
AlignmentRef alignment = Alignment::kLeft|Alignment::kVCenter,
int trimMode = kDefaultTextTrimMode
);
void drawText (
DrawInfoRef info,
StringRef text,
AlignmentRef alignment = Alignment::kCenter,
bool enabled = true,
int fontStyle = 0,
Coord margin = 0
);
void calcTitleRects (
Rect& titleRect,
Rect& subTitleRect,
DrawInfoRef info,
Coord spacing
);
void drawTitleWithSubtitle (
DrawInfoRef info,
StringRef title,
StringRef subTitle,
bool enabled = true,
int fontStyle = 0,
Coord lineSpacing = 4,
int trimMode = kDefaultTextTrimMode
);
void drawVerticalBar (
IGraphics& graphics,
RectRef rect,
float value,
Color backColor,
Color hiliteColor,
Coord margin = 1
);
void drawHorizontalBar (
IGraphics& graphics,
RectRef rect,
float value,
Color backColor,
Color hiliteColor,
Coord margin = 1
);
DECLARE_CLASS (ItemModel, Object);
Object void invalidate ();
void invalidateItem (ItemIndexRef index);
void updateColumns ();
IAsyncOperation* editString (
StringRef initialValue,
RectRef rect,
const EditInfo& info,
IVisualStyle* visualStyle = nullptr
);
IAsyncOperation* editString (
StringRef initialValue,
RectRef rect,
IItemView* view = nullptr,
IVisualStyle* visualStyle = nullptr
);
IAsyncOperation* editValue (
IParameter* param,
const EditInfo& info,
IVisualStyle* visualStyle = nullptr
);
IAsyncOperation* startEditOperation (
IParameter* param,
ViewBox& editControl,
const EditInfo& info,
IVisualStyle* visualStyle = nullptr
);
IVisualStyle* createEditStyle ();
virtual void CCL_API notify (ISubject* subject, MessageRef msg);
DECLARE_STRINGID_MEMBER (kSwipeEditDone) protected bool doPopupSlider (
IParameter* param,
const EditInfo& info,
PointRef position,
bool horizontal = false,
StringID popupSliderDecorForm = nullptr
);
bool doPopupColorPalette (
Color& color,
IColorPalette* palette,
const EditInfo& info
);
bool setEditControl (ViewBox& editControl, const EditInfo& info);
bool swipeItems (
IView* itemView,
const MouseEvent& mouseEvent,
ItemVisitor* itemVisitor,
SwipeMethod method = SwipeMethod::kMultiple
);
template <typename Lambda>
bool swipeItems (
IView* itemView,
const MouseEvent& mouseEvent,
Lambda visitItem
);
template <typename Lambda>
bool swipeItemsSingle (
IView* itemView,
const MouseEvent& mouseEvent,
Lambda visitItem
);
AbstractTouchHandler* wrapMouseHandler (
IMouseHandler* mouseHandler,
IView* view
);
virtual tbool CCL_API invokeMethod (Variant& returnValue, MessageRef msg);
DECLARE_CLASS_ABSTRACT (ListViewModelBase, ItemModel);
DECLARE_STRINGID_MEMBER (kIconID);
SubtitlesEnabled PROPERTY_BOOL (keepSelectedItem, KeepSelectedItem);
SubtitlesEnabled EditModeParam IColumnHeaderList& getColumns ();
void setColumnAlignment (int columnIndex, AlignmentRef alignment);
Alignment getColumnAlignment (int columnIndex) const;
void setListViewType (Styles::ListViewType viewType);
Styles::ListViewType getListViewType () const;
ListViewItem* getFocusItem () const;
ListViewItem* getFirstSelectedItem () const;
void getSelectedItems (Container& selected) const;
bool isAnyItemChecked ();
template <typename Lambda>
bool visitItems (Lambda visitItem);
template <typename Lambda>
bool visitSelectedItems (Lambda visitItem);
virtual bool getIndex (ItemIndex& index, const ListViewItem* item) const;
virtual tbool CCL_API getItemTitle (String& title, ItemIndexRef index);
virtual IImage*CCL_API getItemIcon (ItemIndexRef index);
virtual IImage*CCL_API getItemThumbnail (ItemIndexRef index);
virtual tbool CCL_API getItemTooltip (
String& tooltip,
ItemIndexRef index,
int column
);
virtual StringID CCL_API getItemBackground (ItemIndexRef index);
virtual tbool CCL_API canSelectItem (ItemIndexRef index);
virtual tbool CCL_API createColumnHeaders (IColumnHeaderList& list);
virtual tbool CCL_API drawCell (
ItemIndexRef index,
int column,
const DrawInfo& info
);
virtual tbool CCL_API editCell (
ItemIndexRef index,
int column,
const EditInfo& info
);
virtual IUnknown*CCL_API createDragSessionData (ItemIndexRef index);
virtual void CCL_API notify (ISubject* subject, MessageRef msg);
DECLARE_CLASS (ListViewModel, ListViewModelBase);
DECLARE_STRINGID_MEMBER (kItemChecked);
ItemRemovalEnabled PROPERTY_BOOL (simpleItemCheck, SimpleItemCheck) const;
ListViewItem* getItem (int index) const;
Iterator* newIterator () const;
void removeAll ();
void addItem (ListViewItem* item);
void insertItem (int index, ListViewItem* item);
void addSorted (ListViewItem* item);
bool removeItem (ListViewItem* item);
void enableAll (bool state);
void checkAll (bool state, bool onlyEnabled = true);
void checkAlone (int index, bool state, bool onlyEnabled = true);
void addSorter (ListViewSorter* sorter);
void addTitleSorter (StringRef sorterTitle = nullptr);
void addDetailSorter (
StringID columnId,
StringID detailId,
StringRef sorterTitle = nullptr
);
ListViewSorter* getActiveSorter () const;
ListViewSorter* getSorterWithID (StringID id) const;
void sortBy (ListViewSorter* sorter);
void resort ();
int getFirstSelectedIndex () const;
bool canRemoveSelectedItems () const;
void removeSelectedItems ();
virtual bool removeItems (ItemIndexRef index, const IItemSelection& selection);
virtual bool getIndex (ItemIndex& index, const ListViewItem* item) const;
virtual int CCL_API countFlatItems ();
virtual tbool CCL_API canRemoveItem (ItemIndexRef index);
virtual tbool CCL_API removeItem (ItemIndexRef index);
virtual tbool CCL_API openItem (
ItemIndexRef index,
int column,
const EditInfo& info
);
virtual tbool CCL_API getSortColumnID (MutableCString& columnID, tbool& upwards);
virtual tbool CCL_API measureCellContent (
Rect& size,
ItemIndexRef index,
int column,
const StyleInfo& info
);
virtual tbool CCL_API onItemFocused (ItemIndexRef index);
virtual tbool CCL_API interpretCommand (
const CommandMsg& msg,
ItemIndexRef item,
const IItemSelection& selection
);
virtual void CCL_API notify (ISubject* subject, MessageRef msg);
virtual tbool CCL_API getItemAccessibilityInfo (
AccessibilityInfo& info,
ItemIndexRef index,
int column
) const;
virtual bool isViewVisible () = 0;
virtual IView* createView (const Rect& bounds) = 0;
virtual void onSearchStart (
ISearchDescription& description,
ISearchProvider* searchProvider
) = 0;
virtual void onSearchEnd (bool canceled) = 0;
virtual void onResultItemsAdded (const IUnknownList& items) = 0;
DECLARE_STRINGID_MEMBER (kCloseViewer);
virtual tbool CCL_API onEditNavigation (const KeyEvent& event, IView* control) = 0;
virtual void CCL_API onEditControlLostFocus (IView* control) = 0;
DECLARE_CLASS_ABSTRACT (SearchResultList, ListViewModel);
void setListStyle (StyleRef style);
StyleRef getListStyle () const;
void setShowCategories (bool state);
bool isShowingCategories () const;
BrowserNode* findResultNode (UrlRef path) const;
bool showSelectedResultInContext ();
virtual tbool CCL_API canSelectItem (ItemIndexRef index);
virtual StringID CCL_API getItemBackground (ItemIndexRef index);
virtual tbool CCL_API drawCell (
ItemIndexRef index,
int column,
const DrawInfo& info
);
virtual tbool CCL_API editCell (
ItemIndexRef index,
int column,
const EditInfo& info
);
virtual tbool CCL_API openItem (
ItemIndexRef index,
int column,
const EditInfo& info
);
virtual tbool CCL_API appendItemMenu (
IContextMenu& menu,
ItemIndexRef item,
const IItemSelection& selection
);
virtual tbool CCL_API interpretCommand (
const CommandMsg& msg,
ItemIndexRef item,
const IItemSelection& selection
);
virtual tbool CCL_API onItemFocused (ItemIndexRef index);
virtual void CCL_API notify (ISubject* subject, MessageRef msg);
virtual bool showResultInContext (UrlRef url, bool checkOnly);
virtual bool appendResultContextMenu (IContextMenu& menu, UrlRef url);
virtual tbool interpretResultCommand (const CommandMsg& msg, UrlRef url);
virtual bool onSearchResultFocused (UrlRef url, IImage* icon, StringRef title);
virtual bool isViewVisible ();
virtual IView* createView (const Rect& bounds);
virtual void onSearchStart (
ISearchDescription& description,
ISearchProvider* provider
);
virtual void onSearchEnd (bool canceled);
virtual void onResultItemsAdded (const IUnknownList& items);
virtual tbool CCL_API onEditNavigation (const KeyEvent& event, IView* control);
virtual void CCL_API onEditControlLostFocus (IView* control);
BrowserNode* findResultNodeInternal (UrlRef path, const ObjectArray& items) const;
bool isShowingResultList () const;
void selectNextResult ();
void expandCategory (Browsable::ResultCategoryNode& node, bool state);
tbool onShowResultInContext (ItemIndexRef item, bool checkOnly);
virtual Browsable::SearchResultNode* createSearchResultNode (CCL::IUrl* url);