// Name: wx/msw/listctrl.h
// Purpose: wxListCtrl class
// Author: Julian Smart
-// Modified by:
+// Modified by: Agron Selimaj
// Created: 01/02/97
// RCS-ID: $Id$
// Copyright: (c) Julian Smart
#ifndef _WX_LISTCTRL_H_
#define _WX_LISTCTRL_H_
-#if wxUSE_LISTCTRL
-
-#include "wx/control.h"
-#include "wx/event.h"
-#include "wx/hash.h"
#include "wx/textctrl.h"
-
-class WXDLLEXPORT wxImageList;
+class WXDLLIMPEXP_FWD_CORE wxImageList;
/*
The wxListCtrl can show lists of items in four different modes:
bool GetColumn(int col, wxListItem& item) const;
// Sets information about this column
- bool SetColumn(int col, wxListItem& item) ;
+ bool SetColumn(int col, const wxListItem& item) ;
// Gets the column width
int GetColumnWidth(int col) const;
// Sets the item image
bool SetItemImage(long item, int image, int selImage = -1) ;
+ bool SetItemColumnImage(long item, long column, int image);
// Gets the item text
wxString GetItemText(long item) const ;
wxUIntPtr GetItemData(long item) const ;
// Sets the item data
- bool SetItemData(long item, long data) ;
+ bool SetItemPtrData(long item, wxUIntPtr data);
+ bool SetItemData(long item, long data) { return SetItemPtrData(item, data); }
// Gets the item rectangle
bool GetItemRect(long item, wxRect& rect, int code = wxLIST_RECT_BOUNDS) const ;
+ // Gets the subitem rectangle in report mode
+ bool GetSubItemRect(long item, long subItem, wxRect& rect, int code = wxLIST_RECT_BOUNDS) const ;
+
// Gets the item position
bool GetItemPosition(long item, wxPoint& pos) const ;
void SetItemBackgroundColour( long item, const wxColour &col);
wxColour GetItemBackgroundColour( long item ) const;
-#if wxABI_VERSION >= 20602
// Font of an item.
void SetItemFont( long item, const wxFont &f);
wxFont GetItemFont( long item ) const;
-#endif
// Gets the number of selected items in the list control
int GetSelectedItemCount() const;
// Determines which item (if any) is at the specified point,
// giving details in 'flags' (see wxLIST_HITTEST_... flags above)
- long HitTest(const wxPoint& point, int& flags);
+ // Request the subitem number as well at the given coordinate.
+ long HitTest(const wxPoint& point, int& flags, long* ptrSubItem = NULL) const;
// Inserts an item, returning the index of the new item if successful,
// -1 otherwise.
- long InsertItem(wxListItem& info);
+ long InsertItem(const wxListItem& info);
// Insert a string item
long InsertItem(long index, const wxString& label);
long InsertItem(long index, const wxString& label, int imageIndex);
// For list view mode (only), inserts a column.
- long InsertColumn(long col, wxListItem& info);
+ long InsertColumn(long col, const wxListItem& info);
long InsertColumn(long col,
const wxString& heading,
// IMPLEMENTATION
virtual bool MSWCommand(WXUINT param, WXWORD id);
virtual bool MSWOnNotify(int idCtrl, WXLPARAM lParam, WXLPARAM *result);
+ virtual bool MSWShouldPreProcessMessage(WXMSG* msg);
// bring the control in sync with current m_windowStyle value
void UpdateStyle();
GetClassDefaultAttributes(wxWindowVariant variant = wxWINDOW_VARIANT_NORMAL);
+#if WXWIN_COMPATIBILITY_2_6
// obsolete stuff, for compatibility only -- don't use
wxDEPRECATED( int GetItemSpacing(bool isSmall) const);
-
-protected:
- // common part of all ctors
- void Init();
-
- // free memory taken by all internal data
- void FreeAllInternalData();
+#endif // WXWIN_COMPATIBILITY_2_6
// convert our styles to Windows
virtual WXDWORD MSWGetStyle(long style, WXDWORD *exstyle) const;
WXWPARAM wParam,
WXLPARAM lParam);
+protected:
+ // common part of all ctors
+ void Init();
+
+ // free memory taken by all internal data
+ void FreeAllInternalData();
+
+ // get the item attribute, either by quering it for virtual control, or by
+ // returning the one previously set using setter methods for a normal one
+ wxListItemAttr *DoGetItemAttr(long item) const;
+
wxTextCtrl* m_textCtrl; // The control used for editing a label
wxImageList * m_imageListNormal; // The image list for normal icons
// return the text for the given column of the given item
virtual wxString OnGetItemText(long item, long column) const;
- // return the icon for the given item
+ // return the icon for the given item. In report view, OnGetItemImage will
+ // only be called for the first column. See OnGetItemColumnImage for
+ // details.
virtual int OnGetItemImage(long item) const;
+ // return the icon for the given item and column.
+ virtual int OnGetItemColumnImage(long item, long column) const;
+
// return the attribute for the item (may return NULL if none)
virtual wxListItemAttr *OnGetItemAttr(long item) const;
DECLARE_NO_COPY_CLASS(wxListCtrl)
};
-#endif // wxUSE_LISTCTRL
-
#endif // _WX_LISTCTRL_H_
-