Merge branch 'wxlistctrl-virtual-checkboxes' of https://github.com/MaartenBent/wxWidgets
Add support for checkboxes to virtual wxListCtrl too. See https://github.com/wxWidgets/wxWidgets/pull/1315
This commit is contained in:
@@ -3341,7 +3341,6 @@ COND_TOOLKIT_OSX_COCOA_GUI_HDR = \
|
|||||||
wx/osx/frame.h \
|
wx/osx/frame.h \
|
||||||
wx/osx/gauge.h \
|
wx/osx/gauge.h \
|
||||||
wx/osx/listbox.h \
|
wx/osx/listbox.h \
|
||||||
wx/osx/listctrl.h \
|
|
||||||
wx/osx/mdi.h \
|
wx/osx/mdi.h \
|
||||||
wx/osx/menu.h \
|
wx/osx/menu.h \
|
||||||
wx/osx/menuitem.h \
|
wx/osx/menuitem.h \
|
||||||
@@ -3451,7 +3450,6 @@ COND_TOOLKIT_OSX_IPHONE_GUI_HDR = \
|
|||||||
wx/osx/frame.h \
|
wx/osx/frame.h \
|
||||||
wx/osx/gauge.h \
|
wx/osx/gauge.h \
|
||||||
wx/osx/listbox.h \
|
wx/osx/listbox.h \
|
||||||
wx/osx/listctrl.h \
|
|
||||||
wx/osx/mdi.h \
|
wx/osx/mdi.h \
|
||||||
wx/osx/menu.h \
|
wx/osx/menu.h \
|
||||||
wx/osx/menuitem.h \
|
wx/osx/menuitem.h \
|
||||||
|
@@ -2541,7 +2541,6 @@ IMPORTANT: please read docs/tech/tn0016.txt before modifying this file!
|
|||||||
wx/osx/frame.h
|
wx/osx/frame.h
|
||||||
wx/osx/gauge.h
|
wx/osx/gauge.h
|
||||||
wx/osx/listbox.h
|
wx/osx/listbox.h
|
||||||
wx/osx/listctrl.h
|
|
||||||
wx/osx/mdi.h
|
wx/osx/mdi.h
|
||||||
wx/osx/menu.h
|
wx/osx/menu.h
|
||||||
wx/osx/menuitem.h
|
wx/osx/menuitem.h
|
||||||
|
@@ -2417,7 +2417,6 @@ set(OSX_SHARED_HDR
|
|||||||
wx/osx/frame.h
|
wx/osx/frame.h
|
||||||
wx/osx/gauge.h
|
wx/osx/gauge.h
|
||||||
wx/osx/listbox.h
|
wx/osx/listbox.h
|
||||||
wx/osx/listctrl.h
|
|
||||||
wx/osx/mdi.h
|
wx/osx/mdi.h
|
||||||
wx/osx/menu.h
|
wx/osx/menu.h
|
||||||
wx/osx/menuitem.h
|
wx/osx/menuitem.h
|
||||||
|
@@ -2396,7 +2396,6 @@ OSX_SHARED_HDR =
|
|||||||
wx/osx/frame.h
|
wx/osx/frame.h
|
||||||
wx/osx/gauge.h
|
wx/osx/gauge.h
|
||||||
wx/osx/listbox.h
|
wx/osx/listbox.h
|
||||||
wx/osx/listctrl.h
|
|
||||||
wx/osx/mdi.h
|
wx/osx/mdi.h
|
||||||
wx/osx/menu.h
|
wx/osx/menu.h
|
||||||
wx/osx/menuitem.h
|
wx/osx/menuitem.h
|
||||||
|
@@ -213,17 +213,6 @@ protected:
|
|||||||
|
|
||||||
virtual wxSize DoGetBestClientSize() const wxOVERRIDE;
|
virtual wxSize DoGetBestClientSize() const wxOVERRIDE;
|
||||||
|
|
||||||
// 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. 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;
|
|
||||||
|
|
||||||
// it calls our OnGetXXX() functions
|
// it calls our OnGetXXX() functions
|
||||||
friend class WXDLLIMPEXP_FWD_CORE wxListMainWindow;
|
friend class WXDLLIMPEXP_FWD_CORE wxListMainWindow;
|
||||||
|
|
||||||
|
@@ -393,9 +393,6 @@ public:
|
|||||||
virtual int GetColumnWidth(int col) const = 0;
|
virtual int GetColumnWidth(int col) const = 0;
|
||||||
virtual bool SetColumnWidth(int col, int width) = 0;
|
virtual bool SetColumnWidth(int col, int width) = 0;
|
||||||
|
|
||||||
// return the attribute for the item (may return NULL if none)
|
|
||||||
virtual wxItemAttr *OnGetItemAttr(long item) const;
|
|
||||||
|
|
||||||
// Other miscellaneous accessors.
|
// Other miscellaneous accessors.
|
||||||
// ------------------------------
|
// ------------------------------
|
||||||
|
|
||||||
@@ -427,6 +424,29 @@ protected:
|
|||||||
// Overridden methods of the base class.
|
// Overridden methods of the base class.
|
||||||
virtual wxSize DoGetBestClientSize() const wxOVERRIDE;
|
virtual wxSize DoGetBestClientSize() const wxOVERRIDE;
|
||||||
|
|
||||||
|
// these functions are only used for virtual list view controls, i.e. the
|
||||||
|
// ones with wxLC_VIRTUAL style
|
||||||
|
|
||||||
|
// return the attribute for the item (may return NULL if none)
|
||||||
|
virtual wxItemAttr* OnGetItemAttr(long item) const;
|
||||||
|
|
||||||
|
// return the text for the given column of the given item
|
||||||
|
virtual wxString OnGetItemText(long item, long column) const;
|
||||||
|
|
||||||
|
// return whether the given item is checked
|
||||||
|
virtual bool OnGetItemIsChecked(long item) const;
|
||||||
|
|
||||||
|
// 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 given item and column (may return NULL if none)
|
||||||
|
virtual wxItemAttr* OnGetItemColumnAttr(long item, long column) const;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
// user defined color to draw row lines, may be invalid
|
// user defined color to draw row lines, may be invalid
|
||||||
wxItemAttr m_alternateRowColour;
|
wxItemAttr m_alternateRowColour;
|
||||||
|
@@ -421,26 +421,6 @@ protected:
|
|||||||
// true if we have any items with custom attributes
|
// true if we have any items with custom attributes
|
||||||
bool m_hasAnyAttr;
|
bool m_hasAnyAttr;
|
||||||
|
|
||||||
// these functions are only used for virtual list view controls, i.e. the
|
|
||||||
// ones with wxLC_VIRTUAL style
|
|
||||||
|
|
||||||
// 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. 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 given item and column (may return NULL if none)
|
|
||||||
virtual wxItemAttr *OnGetItemColumnAttr(long item, long WXUNUSED(column)) const
|
|
||||||
{
|
|
||||||
return OnGetItemAttr(item);
|
|
||||||
}
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
// process NM_CUSTOMDRAW notification message
|
// process NM_CUSTOMDRAW notification message
|
||||||
WXLPARAM OnCustomDraw(WXLPARAM lParam);
|
WXLPARAM OnCustomDraw(WXLPARAM lParam);
|
||||||
|
@@ -1,398 +0,0 @@
|
|||||||
/////////////////////////////////////////////////////////////////////////////
|
|
||||||
// Name: wx/osx/listctrl.h
|
|
||||||
// Purpose: wxListCtrl class
|
|
||||||
// Author: Stefan Csomor
|
|
||||||
// Modified by:
|
|
||||||
// Created: 1998-01-01
|
|
||||||
// Copyright: (c) Stefan Csomor
|
|
||||||
// Licence: wxWindows licence
|
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
|
||||||
|
|
||||||
#ifndef _WX_LISTCTRL_H_
|
|
||||||
#define _WX_LISTCTRL_H_
|
|
||||||
|
|
||||||
#include "wx/defs.h"
|
|
||||||
#include "wx/generic/listctrl.h"
|
|
||||||
|
|
||||||
#define wxMAC_ALWAYS_USE_GENERIC_LISTCTRL wxT("mac.listctrl.always_use_generic")
|
|
||||||
|
|
||||||
class wxMacDataBrowserListCtrlControl;
|
|
||||||
class wxListCtrlTextCtrlWrapper;
|
|
||||||
class wxListCtrlRenameTimer;
|
|
||||||
|
|
||||||
WX_DECLARE_EXPORTED_LIST(wxListItem, wxColumnList);
|
|
||||||
|
|
||||||
class WXDLLIMPEXP_CORE wxListCtrl: public wxListCtrlBase
|
|
||||||
{
|
|
||||||
wxDECLARE_DYNAMIC_CLASS(wxListCtrl);
|
|
||||||
public:
|
|
||||||
/*
|
|
||||||
* Public interface
|
|
||||||
*/
|
|
||||||
|
|
||||||
wxListCtrl() { Init(); }
|
|
||||||
|
|
||||||
wxListCtrl(wxWindow *parent,
|
|
||||||
wxWindowID id = wxID_ANY,
|
|
||||||
const wxPoint& pos = wxDefaultPosition,
|
|
||||||
const wxSize& size = wxDefaultSize,
|
|
||||||
long style = wxLC_ICON,
|
|
||||||
const wxValidator& validator = wxDefaultValidator,
|
|
||||||
const wxString& name = wxListCtrlNameStr)
|
|
||||||
{
|
|
||||||
Init();
|
|
||||||
|
|
||||||
Create(parent, id, pos, size, style, validator, name);
|
|
||||||
}
|
|
||||||
|
|
||||||
virtual ~wxListCtrl();
|
|
||||||
|
|
||||||
bool Create(wxWindow *parent,
|
|
||||||
wxWindowID id = wxID_ANY,
|
|
||||||
const wxPoint& pos = wxDefaultPosition,
|
|
||||||
const wxSize& size = wxDefaultSize,
|
|
||||||
long style = wxLC_ICON,
|
|
||||||
const wxValidator& validator = wxDefaultValidator,
|
|
||||||
const wxString& name = wxListCtrlNameStr);
|
|
||||||
|
|
||||||
// Attributes
|
|
||||||
////////////////////////////////////////////////////////////////////////////
|
|
||||||
|
|
||||||
// Gets information about this column
|
|
||||||
bool GetColumn(int col, wxListItem& item) const;
|
|
||||||
|
|
||||||
// Sets information about this column
|
|
||||||
bool SetColumn(int col, const wxListItem& item) ;
|
|
||||||
|
|
||||||
// Gets the column width
|
|
||||||
int GetColumnWidth(int col) const;
|
|
||||||
|
|
||||||
// Sets the column width
|
|
||||||
bool SetColumnWidth(int col, int width) ;
|
|
||||||
|
|
||||||
// Gets the number of items that can fit vertically in the
|
|
||||||
// visible area of the list control (list or report view)
|
|
||||||
// or the total number of items in the list control (icon
|
|
||||||
// or small icon view)
|
|
||||||
int GetCountPerPage() const;
|
|
||||||
|
|
||||||
// Gets the edit control for editing labels.
|
|
||||||
wxTextCtrl* GetEditControl() const;
|
|
||||||
|
|
||||||
// Gets information about the item
|
|
||||||
bool GetItem(wxListItem& info) const ;
|
|
||||||
|
|
||||||
// Sets information about the item
|
|
||||||
bool SetItem(wxListItem& info) ;
|
|
||||||
|
|
||||||
// Sets a string field at a particular column
|
|
||||||
long SetItem(long index, int col, const wxString& label, int imageId = -1);
|
|
||||||
|
|
||||||
// Gets the item state
|
|
||||||
int GetItemState(long item, long stateMask) const ;
|
|
||||||
|
|
||||||
// Sets the item state
|
|
||||||
bool SetItemState(long item, long state, long stateMask) ;
|
|
||||||
|
|
||||||
void AssignImageList(wxImageList *imageList, int which);
|
|
||||||
|
|
||||||
// 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, int col = 0) const ;
|
|
||||||
|
|
||||||
// Sets the item text
|
|
||||||
void SetItemText(long item, const wxString& str) ;
|
|
||||||
|
|
||||||
void SetItemTextColour(long item, const wxColour& colour) ;
|
|
||||||
wxColour GetItemTextColour(long item) const;
|
|
||||||
|
|
||||||
void SetItemBackgroundColour(long item, const wxColour& colour) ;
|
|
||||||
wxColour GetItemBackgroundColour(long item) const;
|
|
||||||
|
|
||||||
void SetItemFont( long item, const wxFont &f);
|
|
||||||
wxFont GetItemFont( long item ) const;
|
|
||||||
|
|
||||||
// Gets the item data
|
|
||||||
long GetItemData(long item) const ;
|
|
||||||
|
|
||||||
// Sets the item 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 item rectangle of a subitem
|
|
||||||
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 ;
|
|
||||||
|
|
||||||
// Sets the item position
|
|
||||||
bool SetItemPosition(long item, const wxPoint& pos) ;
|
|
||||||
|
|
||||||
// Gets the number of items in the list control
|
|
||||||
int GetItemCount() const;
|
|
||||||
|
|
||||||
// Gets the number of columns in the list control
|
|
||||||
int GetColumnCount() const;
|
|
||||||
|
|
||||||
void SetItemSpacing( int spacing, bool isSmall = false );
|
|
||||||
wxSize GetItemSpacing() const;
|
|
||||||
|
|
||||||
// Gets the number of selected items in the list control
|
|
||||||
int GetSelectedItemCount() const;
|
|
||||||
|
|
||||||
wxRect GetViewRect() const;
|
|
||||||
|
|
||||||
// Gets the text colour of the listview
|
|
||||||
wxColour GetTextColour() const;
|
|
||||||
|
|
||||||
// Sets the text colour of the listview
|
|
||||||
void SetTextColour(const wxColour& col);
|
|
||||||
|
|
||||||
// Gets the index of the topmost visible item when in
|
|
||||||
// list or report view
|
|
||||||
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) ;
|
|
||||||
|
|
||||||
// Searches for an item, starting from 'item'.
|
|
||||||
// item can be -1 to find the first item that matches the
|
|
||||||
// specified flags.
|
|
||||||
// Returns the item or -1 if unsuccessful.
|
|
||||||
long GetNextItem(long item, int geometry = wxLIST_NEXT_ALL, int state = wxLIST_STATE_DONTCARE) const ;
|
|
||||||
|
|
||||||
// Gets one of the three image lists
|
|
||||||
wxImageList *GetImageList(int which) const ;
|
|
||||||
|
|
||||||
// Sets the image list
|
|
||||||
void SetImageList(wxImageList *imageList, int which) ;
|
|
||||||
|
|
||||||
// Operations
|
|
||||||
////////////////////////////////////////////////////////////////////////////
|
|
||||||
|
|
||||||
// Arranges the items
|
|
||||||
bool Arrange(int flag = wxLIST_ALIGN_DEFAULT);
|
|
||||||
|
|
||||||
// Deletes an item
|
|
||||||
bool DeleteItem(long item);
|
|
||||||
|
|
||||||
// Deletes all items
|
|
||||||
bool DeleteAllItems() ;
|
|
||||||
|
|
||||||
// Deletes a column
|
|
||||||
bool DeleteColumn(int col);
|
|
||||||
|
|
||||||
// Deletes all columns
|
|
||||||
bool DeleteAllColumns();
|
|
||||||
|
|
||||||
// Clears items, and columns if there are any.
|
|
||||||
void ClearAll();
|
|
||||||
|
|
||||||
// Edit the label
|
|
||||||
wxTextCtrl* EditLabel(long item, wxClassInfo* textControlClass = wxCLASSINFO(wxTextCtrl));
|
|
||||||
|
|
||||||
// End label editing, optionally cancelling the edit
|
|
||||||
bool EndEditLabel(bool cancel);
|
|
||||||
|
|
||||||
// Ensures this item is visible
|
|
||||||
bool EnsureVisible(long item) ;
|
|
||||||
|
|
||||||
// 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);
|
|
||||||
|
|
||||||
// Find an item whose data matches this data, starting from the item after 'start'
|
|
||||||
// or the beginning if 'start' is -1.
|
|
||||||
long FindItem(long start, long data);
|
|
||||||
|
|
||||||
// Find an item nearest this position in the specified direction, starting from
|
|
||||||
// the item after 'start' or the beginning if 'start' is -1.
|
|
||||||
long FindItem(long start, const wxPoint& pt, int direction);
|
|
||||||
|
|
||||||
// Determines which item (if any) is at the specified point,
|
|
||||||
// giving details in 'flags' (see wxLIST_HITTEST_... flags above)
|
|
||||||
// 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.
|
|
||||||
// TOD: Should also have some further convenience functions
|
|
||||||
// which don't require setting a wxListItem object
|
|
||||||
long InsertItem(wxListItem& info);
|
|
||||||
|
|
||||||
// Insert a string item
|
|
||||||
long InsertItem(long index, const wxString& label);
|
|
||||||
|
|
||||||
// Insert an image item
|
|
||||||
long InsertItem(long index, int imageIndex);
|
|
||||||
|
|
||||||
// Insert an image/string item
|
|
||||||
long InsertItem(long index, const wxString& label, int imageIndex);
|
|
||||||
|
|
||||||
// Scrolls the list control. If in icon, small icon or report view mode,
|
|
||||||
// x specifies the number of pixels to scroll. If in list view mode, x
|
|
||||||
// specifies the number of columns to scroll.
|
|
||||||
// If in icon, small icon or list view mode, y specifies the number of pixels
|
|
||||||
// to scroll. If in report view mode, y specifies the number of lines to scroll.
|
|
||||||
bool ScrollList(int dx, int dy);
|
|
||||||
|
|
||||||
// Sort items.
|
|
||||||
|
|
||||||
// fn is a function which takes 3 long arguments: item1, item2, data.
|
|
||||||
// item1 is the long data associated with a first item (NOT the index).
|
|
||||||
// item2 is the long data associated with a second item (NOT the index).
|
|
||||||
// data is the same value as passed to SortItems.
|
|
||||||
// The return value is a negative number if the first item should precede the second
|
|
||||||
// item, a positive number of the second item should precede the first,
|
|
||||||
// or zero if the two items are equivalent.
|
|
||||||
|
|
||||||
// data is arbitrary data to be passed to the sort function.
|
|
||||||
bool SortItems(wxListCtrlCompare fn, wxIntPtr data);
|
|
||||||
|
|
||||||
wxMacDataBrowserListCtrlControl* GetListPeer() const;
|
|
||||||
|
|
||||||
// these functions are only used for virtual list view controls, i.e. the
|
|
||||||
// ones with wxLC_VIRTUAL style
|
|
||||||
|
|
||||||
void SetItemCount(long count);
|
|
||||||
void RefreshItem(long item);
|
|
||||||
void RefreshItems(long itemFrom, long itemTo);
|
|
||||||
|
|
||||||
// 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. 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;
|
|
||||||
|
|
||||||
/* Why should we need this function? Leave for now.
|
|
||||||
* We might need it because item data may have changed,
|
|
||||||
* but the display needs refreshing (in string callback mode)
|
|
||||||
// Updates an item. If the list control has the wxLI_AUTO_ARRANGE style,
|
|
||||||
// the items will be rearranged.
|
|
||||||
bool Update(long item);
|
|
||||||
*/
|
|
||||||
|
|
||||||
void Command(wxCommandEvent& event) { ProcessCommand(event); }
|
|
||||||
|
|
||||||
wxListCtrlCompare GetCompareFunc() { return m_compareFunc; }
|
|
||||||
wxIntPtr GetCompareFuncData() { return m_compareFuncData; }
|
|
||||||
|
|
||||||
|
|
||||||
// public overrides needed for pimpl approach
|
|
||||||
virtual bool SetFont(const wxFont& font);
|
|
||||||
virtual bool SetForegroundColour(const wxColour& colour);
|
|
||||||
virtual bool SetBackgroundColour(const wxColour& colour);
|
|
||||||
virtual wxColour GetBackgroundColour() const;
|
|
||||||
|
|
||||||
virtual void Freeze ();
|
|
||||||
virtual void Thaw ();
|
|
||||||
virtual void Update ();
|
|
||||||
|
|
||||||
// functions for editing/timer
|
|
||||||
void OnRenameTimer();
|
|
||||||
bool OnRenameAccept(long itemEdit, const wxString& value);
|
|
||||||
void OnRenameCancelled(long itemEdit);
|
|
||||||
|
|
||||||
void ChangeCurrent(long current);
|
|
||||||
void ResetCurrent() { ChangeCurrent((long)-1); }
|
|
||||||
bool HasCurrent() const { return m_current != (long)-1; }
|
|
||||||
|
|
||||||
void OnLeftDown(wxMouseEvent& event);
|
|
||||||
void OnDblClick(wxMouseEvent& event);
|
|
||||||
|
|
||||||
void FinishEditing(wxTextCtrl *text)
|
|
||||||
{
|
|
||||||
delete text;
|
|
||||||
m_textctrlWrapper = NULL;
|
|
||||||
SetFocus();
|
|
||||||
}
|
|
||||||
|
|
||||||
virtual int GetScrollPos(int orient) const;
|
|
||||||
|
|
||||||
void OnRightDown(wxMouseEvent& event);
|
|
||||||
void OnMiddleDown(wxMouseEvent& event);
|
|
||||||
void OnChar(wxKeyEvent& event);
|
|
||||||
virtual void SetFocus();
|
|
||||||
void FireMouseEvent(wxEventType eventType, wxPoint position);
|
|
||||||
|
|
||||||
virtual void SetDropTarget( wxDropTarget *dropTarget );
|
|
||||||
virtual wxDropTarget* GetDropTarget() const;
|
|
||||||
|
|
||||||
// with CG, we need to get the context from an kEventControlDraw event
|
|
||||||
// unfortunately, the DataBrowser callbacks don't provide the context
|
|
||||||
// and we need it, so we need to set/remove it before and after draw
|
|
||||||
// events so we can access it in the callbacks.
|
|
||||||
void MacSetDrawingContext(void* context) { m_cgContext = context; }
|
|
||||||
void* MacGetDrawingContext() { return m_cgContext; }
|
|
||||||
|
|
||||||
virtual wxVisualAttributes GetDefaultAttributes() const
|
|
||||||
{
|
|
||||||
return GetClassDefaultAttributes(GetWindowVariant());
|
|
||||||
}
|
|
||||||
|
|
||||||
static wxVisualAttributes
|
|
||||||
GetClassDefaultAttributes(wxWindowVariant variant = wxWINDOW_VARIANT_NORMAL);
|
|
||||||
|
|
||||||
protected:
|
|
||||||
// Implement base class pure virtual methods.
|
|
||||||
long DoInsertColumn(long col, const wxListItem& info);
|
|
||||||
|
|
||||||
// protected overrides needed for pimpl approach
|
|
||||||
virtual void DoSetSize(int x, int y,
|
|
||||||
int width, int height,
|
|
||||||
int sizeFlags = wxSIZE_AUTO);
|
|
||||||
|
|
||||||
long m_current;
|
|
||||||
wxListCtrlTextCtrlWrapper *m_textctrlWrapper;
|
|
||||||
wxListCtrlRenameTimer *m_renameTimer;
|
|
||||||
// common part of all ctors
|
|
||||||
void Init();
|
|
||||||
|
|
||||||
wxGenericListCtrl* m_genericImpl; // allow use of the generic impl.
|
|
||||||
wxMacDataBrowserListCtrlControl* m_dbImpl;
|
|
||||||
void* m_macListCtrlEventHandler;
|
|
||||||
void* m_cgContext;
|
|
||||||
wxListCtrlCompare m_compareFunc;
|
|
||||||
wxIntPtr m_compareFuncData;
|
|
||||||
|
|
||||||
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
|
|
||||||
wxImageList * m_imageListState; // The image list state icons (not implemented yet)
|
|
||||||
|
|
||||||
wxColumnList m_colsInfo; // for storing info about each column
|
|
||||||
wxColour m_textColor;
|
|
||||||
wxColour m_bgColor;
|
|
||||||
|
|
||||||
// keep track of whether or not we should delete the image list ourselves.
|
|
||||||
bool m_ownsImageListNormal,
|
|
||||||
m_ownsImageListSmall,
|
|
||||||
m_ownsImageListState;
|
|
||||||
|
|
||||||
long m_baseStyle; // Basic Windows style flags, for recreation purposes
|
|
||||||
int m_colCount; // Windows doesn't have GetColumnCount so must
|
|
||||||
// keep track of inserted/deleted columns
|
|
||||||
|
|
||||||
int m_count; // for virtual lists, store item count
|
|
||||||
|
|
||||||
private:
|
|
||||||
int CalcColumnAutoWidth(int col) const;
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
#endif
|
|
||||||
// _WX_LISTCTRL_H_
|
|
@@ -265,27 +265,6 @@ public:
|
|||||||
// data is arbitrary data to be passed to the sort function.
|
// data is arbitrary data to be passed to the sort function.
|
||||||
bool SortItems(wxListCtrlCompare fn, wxIntPtr data);
|
bool SortItems(wxListCtrlCompare fn, wxIntPtr data);
|
||||||
|
|
||||||
|
|
||||||
// these functions are only used for virtual list view controls, i.e. the
|
|
||||||
// ones with wxLC_VIRTUAL style (not currently implemented in wxQT)
|
|
||||||
|
|
||||||
// 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. 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 given item and column (may return NULL if none)
|
|
||||||
virtual wxItemAttr *OnGetItemColumnAttr(long item, long WXUNUSED(column)) const
|
|
||||||
{
|
|
||||||
return OnGetItemAttr(item);
|
|
||||||
}
|
|
||||||
|
|
||||||
virtual QWidget *GetHandle() const wxOVERRIDE;
|
virtual QWidget *GetHandle() const wxOVERRIDE;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
@@ -1271,6 +1271,13 @@ public:
|
|||||||
@param enable If @true, enable checkboxes, otherwise disable checkboxes.
|
@param enable If @true, enable checkboxes, otherwise disable checkboxes.
|
||||||
@return @true if checkboxes are supported, @false otherwise.
|
@return @true if checkboxes are supported, @false otherwise.
|
||||||
|
|
||||||
|
In a list control with wxLC_VIRTUAL style you have to keep track of the
|
||||||
|
checkbox state. When a checkbox is clicked (EVT_LIST_ITEM_CHECKED
|
||||||
|
or EVT_LIST_ITEM_UNCHECKED) you have to update the state and refresh
|
||||||
|
the item yourself.
|
||||||
|
|
||||||
|
@see OnGetItemIsChecked() RefreshItem()
|
||||||
|
|
||||||
@since 3.1.0
|
@since 3.1.0
|
||||||
*/
|
*/
|
||||||
bool EnableCheckBoxes(bool enable = true);
|
bool EnableCheckBoxes(bool enable = true);
|
||||||
@@ -1312,7 +1319,7 @@ protected:
|
|||||||
The base class version always returns @NULL.
|
The base class version always returns @NULL.
|
||||||
|
|
||||||
@see OnGetItemImage(), OnGetItemColumnImage(), OnGetItemText(),
|
@see OnGetItemImage(), OnGetItemColumnImage(), OnGetItemText(),
|
||||||
OnGetItemColumnAttr()
|
OnGetItemColumnAttr(), OnGetItemIsChecked()
|
||||||
*/
|
*/
|
||||||
virtual wxItemAttr* OnGetItemAttr(long item) const;
|
virtual wxItemAttr* OnGetItemAttr(long item) const;
|
||||||
|
|
||||||
@@ -1370,6 +1377,17 @@ protected:
|
|||||||
@see SetItemCount(), OnGetItemImage(), OnGetItemColumnImage(), OnGetItemAttr()
|
@see SetItemCount(), OnGetItemImage(), OnGetItemColumnImage(), OnGetItemAttr()
|
||||||
*/
|
*/
|
||||||
virtual wxString OnGetItemText(long item, long column) const;
|
virtual wxString OnGetItemText(long item, long column) const;
|
||||||
|
|
||||||
|
/**
|
||||||
|
This function @b must be overridden in the derived class for a control with
|
||||||
|
@c wxLC_VIRTUAL style that uses checkboxes. It should return whether the
|
||||||
|
checkbox of the specified @c item is checked.
|
||||||
|
|
||||||
|
@see EnableCheckBoxes(), OnGetItemText()
|
||||||
|
|
||||||
|
@since 3.1.2
|
||||||
|
*/
|
||||||
|
virtual bool OnGetItemIsChecked(long item) const;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
@@ -44,6 +44,7 @@
|
|||||||
#include "wx/sizer.h"
|
#include "wx/sizer.h"
|
||||||
#include "wx/sysopt.h"
|
#include "wx/sysopt.h"
|
||||||
#include "wx/numdlg.h"
|
#include "wx/numdlg.h"
|
||||||
|
#include "wx/selstore.h"
|
||||||
|
|
||||||
#include "listtest.h"
|
#include "listtest.h"
|
||||||
|
|
||||||
@@ -1204,6 +1205,11 @@ void MyListCtrl::OnChecked(wxListEvent& event)
|
|||||||
{
|
{
|
||||||
LogEvent(event, "OnChecked");
|
LogEvent(event, "OnChecked");
|
||||||
|
|
||||||
|
if ( IsVirtual() )
|
||||||
|
{
|
||||||
|
CheckItem(event.GetIndex(), true);
|
||||||
|
}
|
||||||
|
|
||||||
event.Skip();
|
event.Skip();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1211,6 +1217,11 @@ void MyListCtrl::OnUnChecked(wxListEvent& event)
|
|||||||
{
|
{
|
||||||
LogEvent(event, "OnUnChecked");
|
LogEvent(event, "OnUnChecked");
|
||||||
|
|
||||||
|
if ( IsVirtual() )
|
||||||
|
{
|
||||||
|
CheckItem(event.GetIndex(), false);
|
||||||
|
}
|
||||||
|
|
||||||
event.Skip();
|
event.Skip();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1419,6 +1430,36 @@ wxString MyListCtrl::OnGetItemText(long item, long column) const
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void MyListCtrl::CheckItem(long item, bool check)
|
||||||
|
{
|
||||||
|
if ( IsVirtual() )
|
||||||
|
{
|
||||||
|
m_checked.SelectItem(item, check);
|
||||||
|
RefreshItem(item);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
wxListCtrl::CheckItem(item, check);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
bool MyListCtrl::IsItemChecked(long item) const
|
||||||
|
{
|
||||||
|
if ( IsVirtual() )
|
||||||
|
{
|
||||||
|
return m_checked.IsSelected(item);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
return wxListCtrl::IsItemChecked(item);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
bool MyListCtrl::OnGetItemIsChecked(long item) const
|
||||||
|
{
|
||||||
|
return IsItemChecked(item);
|
||||||
|
}
|
||||||
|
|
||||||
int MyListCtrl::OnGetItemColumnImage(long item, long column) const
|
int MyListCtrl::OnGetItemColumnImage(long item, long column) const
|
||||||
{
|
{
|
||||||
if (!column)
|
if (!column)
|
||||||
|
@@ -74,6 +74,9 @@ public:
|
|||||||
|
|
||||||
void OnRightClick(wxMouseEvent& event);
|
void OnRightClick(wxMouseEvent& event);
|
||||||
|
|
||||||
|
virtual void CheckItem(long item, bool check) wxOVERRIDE;
|
||||||
|
virtual bool IsItemChecked(long item) const wxOVERRIDE;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void ShowContextMenu(const wxPoint& pos);
|
void ShowContextMenu(const wxPoint& pos);
|
||||||
wxLog *m_logOld;
|
wxLog *m_logOld;
|
||||||
@@ -83,11 +86,14 @@ private:
|
|||||||
void LogColEvent(const wxListEvent& event, const wxString& eventName);
|
void LogColEvent(const wxListEvent& event, const wxString& eventName);
|
||||||
|
|
||||||
virtual wxString OnGetItemText(long item, long column) const wxOVERRIDE;
|
virtual wxString OnGetItemText(long item, long column) const wxOVERRIDE;
|
||||||
|
virtual bool OnGetItemIsChecked(long item) const wxOVERRIDE;
|
||||||
virtual int OnGetItemColumnImage(long item, long column) const wxOVERRIDE;
|
virtual int OnGetItemColumnImage(long item, long column) const wxOVERRIDE;
|
||||||
virtual wxItemAttr *OnGetItemAttr(long item) const wxOVERRIDE;
|
virtual wxItemAttr *OnGetItemAttr(long item) const wxOVERRIDE;
|
||||||
|
|
||||||
long m_updated;
|
long m_updated;
|
||||||
|
|
||||||
|
// checked boxes in virtual list
|
||||||
|
wxSelectionStore m_checked;
|
||||||
|
|
||||||
wxDECLARE_NO_COPY_CLASS(MyListCtrl);
|
wxDECLARE_NO_COPY_CLASS(MyListCtrl);
|
||||||
wxDECLARE_EVENT_TABLE();
|
wxDECLARE_EVENT_TABLE();
|
||||||
|
@@ -25,6 +25,7 @@
|
|||||||
#if wxUSE_LISTCTRL
|
#if wxUSE_LISTCTRL
|
||||||
|
|
||||||
#include "wx/listctrl.h"
|
#include "wx/listctrl.h"
|
||||||
|
#include "wx/imaglist.h"
|
||||||
|
|
||||||
#ifndef WX_PRECOMP
|
#ifndef WX_PRECOMP
|
||||||
#include "wx/dcclient.h"
|
#include "wx/dcclient.h"
|
||||||
@@ -251,4 +252,43 @@ wxItemAttr *wxListCtrlBase::OnGetItemAttr(long item) const
|
|||||||
: NULL; // no attributes by default
|
: NULL; // no attributes by default
|
||||||
}
|
}
|
||||||
|
|
||||||
|
wxString wxListCtrlBase::OnGetItemText(long WXUNUSED(item), long WXUNUSED(col)) const
|
||||||
|
{
|
||||||
|
// this is a pure virtual function, in fact - which is not really pure
|
||||||
|
// because the controls which are not virtual don't need to implement it
|
||||||
|
wxFAIL_MSG("wxListCtrl::OnGetItemText not supposed to be called");
|
||||||
|
|
||||||
|
return wxEmptyString;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool wxListCtrlBase::OnGetItemIsChecked(long WXUNUSED(item)) const
|
||||||
|
{
|
||||||
|
// this is a pure virtual function, in fact - which is not really pure
|
||||||
|
// because the controls which are not virtual don't need to implement it
|
||||||
|
wxFAIL_MSG("wxListCtrl::OnGetItemIsChecked not supposed to be called");
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
int wxListCtrlBase::OnGetItemImage(long WXUNUSED(item)) const
|
||||||
|
{
|
||||||
|
wxCHECK_MSG(!GetImageList(wxIMAGE_LIST_SMALL),
|
||||||
|
-1,
|
||||||
|
"List control has an image list, OnGetItemImage or OnGetItemColumnImage should be overridden.");
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
int wxListCtrlBase::OnGetItemColumnImage(long item, long column) const
|
||||||
|
{
|
||||||
|
if ( !column )
|
||||||
|
return OnGetItemImage(item);
|
||||||
|
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
wxItemAttr* wxListCtrlBase::OnGetItemColumnAttr(long item, long WXUNUSED(column)) const
|
||||||
|
{
|
||||||
|
return OnGetItemAttr(item);
|
||||||
|
}
|
||||||
|
|
||||||
#endif // wxUSE_LISTCTRL
|
#endif // wxUSE_LISTCTRL
|
||||||
|
@@ -1681,6 +1681,7 @@ void wxListMainWindow::CacheLineData(size_t line)
|
|||||||
ld->SetImage(col, listctrl->OnGetItemColumnImage(line, col));
|
ld->SetImage(col, listctrl->OnGetItemColumnImage(line, col));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ld->Check(listctrl->OnGetItemIsChecked(line));
|
||||||
ld->SetAttr(listctrl->OnGetItemAttr(line));
|
ld->SetAttr(listctrl->OnGetItemAttr(line));
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -5533,31 +5534,6 @@ wxSize wxGenericListCtrl::DoGetBestClientSize() const
|
|||||||
// virtual list control support
|
// virtual list control support
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
|
|
||||||
wxString wxGenericListCtrl::OnGetItemText(long WXUNUSED(item), long WXUNUSED(col)) const
|
|
||||||
{
|
|
||||||
// this is a pure virtual function, in fact - which is not really pure
|
|
||||||
// because the controls which are not virtual don't need to implement it
|
|
||||||
wxFAIL_MSG( wxT("wxGenericListCtrl::OnGetItemText not supposed to be called") );
|
|
||||||
|
|
||||||
return wxEmptyString;
|
|
||||||
}
|
|
||||||
|
|
||||||
int wxGenericListCtrl::OnGetItemImage(long WXUNUSED(item)) const
|
|
||||||
{
|
|
||||||
wxCHECK_MSG(!GetImageList(wxIMAGE_LIST_SMALL),
|
|
||||||
-1,
|
|
||||||
wxT("List control has an image list, OnGetItemImage or OnGetItemColumnImage should be overridden."));
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
|
|
||||||
int wxGenericListCtrl::OnGetItemColumnImage(long item, long column) const
|
|
||||||
{
|
|
||||||
if (!column)
|
|
||||||
return OnGetItemImage(item);
|
|
||||||
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
|
|
||||||
void wxGenericListCtrl::SetItemCount(long count)
|
void wxGenericListCtrl::SetItemCount(long count)
|
||||||
{
|
{
|
||||||
wxASSERT_MSG( IsVirtual(), wxT("this is for virtual controls only") );
|
wxASSERT_MSG( IsVirtual(), wxT("this is for virtual controls only") );
|
||||||
|
@@ -2480,6 +2480,33 @@ bool wxListCtrl::MSWOnNotify(int idCtrl, WXLPARAM lParam, WXLPARAM *result)
|
|||||||
event.m_item.m_data = GetItemData(iItem);
|
event.m_item.m_data = GetItemData(iItem);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case NM_CLICK:
|
||||||
|
processed = false;
|
||||||
|
|
||||||
|
// In virtual mode, check if user clicks on a checkbox.
|
||||||
|
if ( IsVirtual() && HasCheckBoxes() )
|
||||||
|
{
|
||||||
|
LV_HITTESTINFO lvhti;
|
||||||
|
wxZeroMemory(lvhti);
|
||||||
|
|
||||||
|
wxGetCursorPosMSW(&(lvhti.pt));
|
||||||
|
::ScreenToClient(GetHwnd(), &lvhti.pt);
|
||||||
|
|
||||||
|
if ( ListView_SubItemHitTest(GetHwnd(), &lvhti) != -1 )
|
||||||
|
{
|
||||||
|
if ( (lvhti.flags & LVHT_ONITEMSTATEICON) && (lvhti.iSubItem == 0) )
|
||||||
|
{
|
||||||
|
event.m_itemIndex = lvhti.iItem;
|
||||||
|
if ( OnGetItemIsChecked(event.m_itemIndex) )
|
||||||
|
eventType = wxEVT_LIST_ITEM_UNCHECKED;
|
||||||
|
else
|
||||||
|
eventType = wxEVT_LIST_ITEM_CHECKED;
|
||||||
|
processed = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
case NM_RCLICK:
|
case NM_RCLICK:
|
||||||
// if the user processes it in wxEVT_COMMAND_RIGHT_CLICK(),
|
// if the user processes it in wxEVT_COMMAND_RIGHT_CLICK(),
|
||||||
// don't do anything else
|
// don't do anything else
|
||||||
@@ -2669,8 +2696,14 @@ bool wxListCtrl::MSWOnNotify(int idCtrl, WXLPARAM lParam, WXLPARAM *result)
|
|||||||
// can get messages with LVIF_STATE in lvi.mask under Vista
|
// can get messages with LVIF_STATE in lvi.mask under Vista
|
||||||
if ( lvi.mask & LVIF_STATE )
|
if ( lvi.mask & LVIF_STATE )
|
||||||
{
|
{
|
||||||
// we don't have anything to return from here...
|
|
||||||
lvi.stateMask = 0;
|
lvi.stateMask = 0;
|
||||||
|
|
||||||
|
if ( HasCheckBoxes() && (lvi.iSubItem == 0) )
|
||||||
|
{
|
||||||
|
const bool checked = OnGetItemIsChecked(item);
|
||||||
|
lvi.state = INDEXTOSTATEIMAGEMASK(checked ? 2 : 1);
|
||||||
|
lvi.stateMask = LVIS_STATEIMAGEMASK;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
@@ -3240,31 +3273,6 @@ wxListCtrl::MSWWindowProc(WXUINT nMsg, WXWPARAM wParam, WXLPARAM lParam)
|
|||||||
// virtual list controls
|
// virtual list controls
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
|
|
||||||
wxString wxListCtrl::OnGetItemText(long WXUNUSED(item), long WXUNUSED(col)) const
|
|
||||||
{
|
|
||||||
// this is a pure virtual function, in fact - which is not really pure
|
|
||||||
// because the controls which are not virtual don't need to implement it
|
|
||||||
wxFAIL_MSG( wxT("wxListCtrl::OnGetItemText not supposed to be called") );
|
|
||||||
|
|
||||||
return wxEmptyString;
|
|
||||||
}
|
|
||||||
|
|
||||||
int wxListCtrl::OnGetItemImage(long WXUNUSED(item)) const
|
|
||||||
{
|
|
||||||
wxCHECK_MSG(!GetImageList(wxIMAGE_LIST_SMALL),
|
|
||||||
-1,
|
|
||||||
wxT("List control has an image list, OnGetItemImage or OnGetItemColumnImage should be overridden."));
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
|
|
||||||
int wxListCtrl::OnGetItemColumnImage(long item, long column) const
|
|
||||||
{
|
|
||||||
if (!column)
|
|
||||||
return OnGetItemImage(item);
|
|
||||||
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
|
|
||||||
wxItemAttr *wxListCtrl::DoGetItemColumnAttr(long item, long column) const
|
wxItemAttr *wxListCtrl::DoGetItemColumnAttr(long item, long column) const
|
||||||
{
|
{
|
||||||
if ( IsVirtual() )
|
if ( IsVirtual() )
|
||||||
|
@@ -1010,35 +1010,6 @@ bool wxListCtrl::SortItems(wxListCtrlCompare WXUNUSED(fn), wxIntPtr WXUNUSED(dat
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
// virtual list controls (not currently implemented in wxQT)
|
|
||||||
// ----------------------------------------------------------------------------
|
|
||||||
|
|
||||||
wxString wxListCtrl::OnGetItemText(long WXUNUSED(item), long WXUNUSED(col)) const
|
|
||||||
{
|
|
||||||
// this is a pure virtual function, in fact - which is not really pure
|
|
||||||
// because the controls which are not virtual don't need to implement it
|
|
||||||
wxFAIL_MSG( wxT("wxListCtrl::OnGetItemText not supposed to be called") );
|
|
||||||
|
|
||||||
return wxEmptyString;
|
|
||||||
}
|
|
||||||
|
|
||||||
int wxListCtrl::OnGetItemImage(long WXUNUSED(item)) const
|
|
||||||
{
|
|
||||||
wxCHECK_MSG(!GetImageList(wxIMAGE_LIST_SMALL),
|
|
||||||
-1,
|
|
||||||
wxT("List control has an image list, OnGetItemImage or OnGetItemColumnImage should be overridden."));
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
|
|
||||||
int wxListCtrl::OnGetItemColumnImage(long item, long column) const
|
|
||||||
{
|
|
||||||
if (!column)
|
|
||||||
return OnGetItemImage(item);
|
|
||||||
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
|
|
||||||
QWidget *wxListCtrl::GetHandle() const
|
QWidget *wxListCtrl::GetHandle() const
|
||||||
{
|
{
|
||||||
return m_qtTreeWidget;
|
return m_qtTreeWidget;
|
||||||
|
Reference in New Issue
Block a user