/////////////////////////////////////////////////////////////////////////////
// Name: wx/palmos/listctrl.h
// Purpose: wxListCtrl class
-// Author: William Osborne
-// Modified by:
+// Author: William Osborne - minimal working wxPalmOS port
+// Modified by: Yunhui Fu
// Created: 10/13/04
-// RCS-ID: $Id:
+// RCS-ID: $Id$
// Copyright: (c) William Osborne
// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
#ifndef _WX_LISTCTRL_H_
#define _WX_LISTCTRL_H_
-#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
- #pragma interface "listctrl.h"
-#endif
-
#if wxUSE_LISTCTRL
#include "wx/control.h"
#include "wx/textctrl.h"
-class WXDLLEXPORT wxImageList;
+class WXDLLIMPEXP_FWD_CORE wxImageList;
/*
The wxListCtrl can show lists of items in four different modes:
- addition of further convenience functions
to avoid use of wxListItem in some functions
- state/overlay images: probably not needed.
- - in Win95, you can be called back to supply other information
- besides text, such as state information. This saves no memory
- and is probably superfluous to requirements.
- testing of whole API, extending current sample.
*/
-class WXDLLEXPORT wxListCtrl: public wxControl
+class WXDLLIMPEXP_CORE wxListCtrl: public wxControl
{
public:
/*
wxListCtrl() { Init(); }
wxListCtrl(wxWindow *parent,
- wxWindowID id = -1,
+ wxWindowID id = wxID_ANY,
const wxPoint& pos = wxDefaultPosition,
const wxSize& size = wxDefaultSize,
long style = wxLC_ICON,
const wxValidator& validator = wxDefaultValidator,
- const wxString& name = _T("wxListCtrl"))
+ const wxString& name = wxListCtrlNameStr)
{
Init();
virtual ~wxListCtrl();
bool Create(wxWindow *parent,
- wxWindowID id = -1,
+ wxWindowID id = wxID_ANY,
const wxPoint& pos = wxDefaultPosition,
const wxSize& size = wxDefaultSize,
long style = wxLC_ICON,
const wxValidator& validator = wxDefaultValidator,
- const wxString& name = _T("wxListCtrl"));
+ const wxString& name = wxListCtrlNameStr);
// Attributes
// Sets the item image
bool SetItemImage(long item, int image, int selImage) ;
+ bool SetItemColumnImage(long item, long column, int image);
// Gets the item text
wxString GetItemText(long item) const ;
long 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 ;
long GetTopItem() const ;
// Add or remove a single window style
- void SetSingleStyle(long style, bool add = TRUE) ;
-
- // Set the whole window style
- void SetWindowStyleFlag(long style) ;
+ void SetSingleStyle(long style, bool add = true) ;
// Searches for an item, starting from 'item'.
// item can be -1 to find the first item that matches the
wxImageList *GetImageList(int which) const ;
// Sets the image list
- // N.B. There's a quirk in the Win95 list view implementation.
- // If in wxLC_LIST mode, it'll *still* display images by the labels if
- // there's a small-icon image list set for the control - even though you
- // haven't specified wxLIST_MASK_IMAGE when inserting.
- // So you have to set a NULL small-icon image list to be sure that
- // the wxLC_LIST mode works without icons. Of course, you may want icons...
void SetImageList(wxImageList *imageList, int which) ;
void AssignImageList(wxImageList *imageList, int which) ;
void ClearAll();
// Edit the label
- wxTextCtrl* EditLabel(long item, wxClassInfo* textControlClass = CLASSINFO(wxTextCtrl));
+ wxTextCtrl* EditLabel(long item, wxClassInfo* textControlClass = wxCLASSINFO(wxTextCtrl));
// End label editing, optionally cancelling the edit
bool EndEditLabel(bool cancel);
// Find an item whose label matches this string, starting from the item after 'start'
// or the beginning if 'start' is -1.
- long FindItem(long start, const wxString& str, bool partial = FALSE);
+ long FindItem(long start, const wxString& str, bool partial = false);
// Find an item whose data matches this data, starting from the item after 'start'
// or the beginning if 'start' is -1.
// data is arbitrary data to be passed to the sort function.
bool SortItems(wxListCtrlCompare fn, long data);
- // IMPLEMENTATION
- virtual bool MSWCommand(WXUINT param, WXWORD id);
- virtual bool MSWOnNotify(int idCtrl, WXLPARAM lParam, WXLPARAM *result);
-
// bring the control in sync with current m_windowStyle value
void UpdateStyle();
static wxVisualAttributes
GetClassDefaultAttributes(wxWindowVariant variant = wxWINDOW_VARIANT_NORMAL);
-
- // 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();
- // convert our styles to Windows
- virtual WXDWORD MSWGetStyle(long style, WXDWORD *exstyle) const;
-
-
wxTextCtrl* m_textCtrl; // The control used for editing a label
wxImageList * m_imageListNormal; // The image list for normal icons
wxImageList * m_imageListSmall; // The image list for small icons
// ListView_GetItemCount
bool m_ignoreChangeMessages;
- // TRUE if we have any internal data (user data & attributes)
+ // true if we have any internal data (user data & attributes)
bool m_AnyInternalData;
- // TRUE if we have any items with custom attributes
+ // true if we have any items with custom attributes
bool m_hasAnyAttr;
// these functions are only used for virtual list view controls, i.e. the
// 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 attribute for the item (may return NULL if none)
virtual wxListItemAttr *OnGetItemAttr(long item) const;
private:
- // process NM_CUSTOMDRAW notification message
- WXLPARAM OnCustomDraw(WXLPARAM lParam);
DECLARE_DYNAMIC_CLASS(wxListCtrl)
DECLARE_EVENT_TABLE()
- DECLARE_NO_COPY_CLASS(wxListCtrl)
+ wxDECLARE_NO_COPY_CLASS(wxListCtrl);
};
#endif // wxUSE_LISTCTRL
#endif // _WX_LISTCTRL_H_
-