/////////////////////////////////////////////////////////////////////////////
-// Name: listctrl.h
+// Name: wx/generic/listctrl.h
// Purpose: private definitions of wxListCtrl helpers
// Author: Robert Roebling
// Vadim Zeitlin (virtual list control support)
virtual ~wxListHeaderWindow();
+ // We never need focus as we don't have any keyboard interface.
+ virtual bool AcceptsFocus() const { return false; }
+
void DrawCurrent();
void AdjustDC( wxDC& dc );
void OnPaint( wxPaintEvent &event );
void OnMouse( wxMouseEvent &event );
- void OnSetFocus( wxFocusEvent &event );
// needs refresh
bool m_dirty;
wxTextCtrl *GetText() const { return m_text; }
- void EndEdit( bool discardChanges );
+ // Check if the given key event should stop editing and return true if it
+ // does or false otherwise.
+ bool CheckForEndEditKey(const wxKeyEvent& event);
+
+ // Different reasons for calling EndEdit():
+ //
+ // It was called because:
+ enum EndReason
+ {
+ End_Accept, // user has accepted the changes.
+ End_Discard, // user has cancelled editing.
+ End_Destroy // the entire control is being destroyed.
+ };
+
+ void EndEdit(EndReason reason);
protected:
void OnChar( wxKeyEvent &event );
wxListMainWindow();
wxListMainWindow( wxWindow *parent,
wxWindowID id,
- const wxPoint& pos = wxDefaultPosition,
- const wxSize& size = wxDefaultSize,
- long style = 0,
- const wxString &name = wxT("listctrlmainwindow") );
+ const wxPoint& pos,
+ const wxSize& size );
virtual ~wxListMainWindow();
// called to switch the selection from the current item to newCurrent,
void OnArrowChar( size_t newCurrent, const wxKeyEvent& event );
+ void OnCharHook( wxKeyEvent &event );
void OnChar( wxKeyEvent &event );
void OnKeyDown( wxKeyEvent &event );
void OnKeyUp( wxKeyEvent &event );
void DrawImage( int index, wxDC *dc, int x, int y );
void GetImageSize( int index, int &width, int &height ) const;
- int GetTextLength( const wxString &s ) const;
void SetImageList( wxImageList *imageList, int which );
void SetItemSpacing( int spacing, bool isSmall = false );
int GetItemSpacing( bool isSmall = false );
- void SetColumn( int col, wxListItem &item );
+ void SetColumn( int col, const wxListItem &item );
void SetColumnWidth( int col, int width );
void GetColumn( int col, wxListItem &item ) const;
int GetColumnWidth( int col ) const;
long FindItem( const wxPoint& pt );
long HitTest( int x, int y, int &flags ) const;
void InsertItem( wxListItem &item );
- void InsertColumn( long col, wxListItem &item );
+ long InsertColumn( long col, const wxListItem &item );
int GetItemWidthWithImage(wxListItem * item);
void SortItems( wxListCtrlCompare fn, wxIntPtr data );
// delete all items but don't refresh: called from dtor
void DoDeleteAllItems();
+ // Compute the minimal width needed to fully display the column header.
+ int ComputeMinHeaderWidth(const wxListHeaderData* header) const;
+
+
// the height of one line using the current font
wxCoord m_lineHeight;