// Created: 2004-09-25
// RCS-ID: $Id$
// Copyright: (c) Jaakko Salli
-// Licence: wxWindows license
+// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
#ifndef _WX_PROPGRID_PROPGRID_H_
#define _WX_PROPGRID_PROPGRID_H_
+#include "wx/defs.h"
+
#if wxUSE_PROPGRID
#include "wx/thread.h"
#include "wx/dcclient.h"
+#include "wx/control.h"
#include "wx/scrolwin.h"
#include "wx/tooltip.h"
#include "wx/datetime.h"
wxPG_VFB_MARK_CELL = 0x04,
/**
- Display a text message explaining the situation.
+ Display a text message explaining the situation.
To customize the way the message is displayed, you need to
reimplement wxPropertyGrid::DoShowPropertyError() in a
enum wxPG_KEYBOARD_ACTIONS
{
wxPG_ACTION_INVALID = 0,
+
+ /** Select the next property. */
wxPG_ACTION_NEXT_PROPERTY,
+
+ /** Select the previous property. */
wxPG_ACTION_PREV_PROPERTY,
+
+ /** Expand the selected property, if it has child items. */
wxPG_ACTION_EXPAND_PROPERTY,
+
+ /** Collapse the selected property, if it has child items. */
wxPG_ACTION_COLLAPSE_PROPERTY,
+
+ /** Cancel and undo any editing done in the currently active property
+ editor.
+ */
wxPG_ACTION_CANCEL_EDIT,
- wxPG_ACTION_PRESS_BUTTON, // Causes editor button (if any) to be pressed
+
+ /** Move focus to the editor control of the currently selected
+ property.
+ */
+ wxPG_ACTION_EDIT,
+
+ /** Causes editor's button (if any) to be pressed. */
+ wxPG_ACTION_PRESS_BUTTON,
+
wxPG_ACTION_MAX
};
@library{wxpropgrid}
@category{propgrid}
*/
-class WXDLLIMPEXP_PROPGRID
- wxPropertyGrid : public wxScrolledWindow, public wxPropertyGridInterface
+class WXDLLIMPEXP_PROPGRID wxPropertyGrid : public wxControl,
+ public wxScrollHelper,
+ public wxPropertyGridInterface
{
friend class wxPropertyGridEvent;
friend class wxPropertyGridPageState;
#endif
/** The default constructor. The styles to be used are styles valid for
- the wxWindow and wxScrolledWindow.
+ the wxWindow.
@see @link wndflags Additional Window Styles @endlink
*/
@endcode
@param action
- Which action to trigger. See @link pgactions List of list of
- wxPropertyGrid actions@endlink.
+ Which action to trigger. See @ref propgrid_keyboard_actions.
+ @param keycode
+ Which keycode triggers the action.
+ @param modifiers
+ Which key event modifiers, in addition to keycode, are needed to
+ trigger the action.
*/
void AddActionTrigger( int action, int keycode, int modifiers = 0 );
/**
Centers the splitter.
-
+
@param enableAutoResizing
If @true, automatic column resizing is enabled (only applicapple
if window style wxPG_SPLITTER_AUTO_CENTER is used).
@param pt
Coordinates in the virtual grid space. You may need to use
- wxScrolledWindow::CalcScrolledPosition() for translating
+ wxScrolled<T>::CalcScrolledPosition() for translating
wxPropertyGrid client coordinates into something this member
function can use.
*/
void RefreshEditor();
// Events from editor controls are forward to this function
- void HandleCustomEditorEvent( wxEvent &event );
+ bool HandleCustomEditorEvent( wxEvent &event );
// Mostly useful for page switching.
void SwitchState( wxPropertyGridPageState* pNewState );
/** Standardized double-to-string conversion.
*/
- static void DoubleToString( wxString& target,
- double value,
- int precision,
- bool removeZeroes,
- wxString* precTemplate );
+ static const wxString& DoubleToString( wxString& target,
+ double value,
+ int precision,
+ bool removeZeroes,
+ wxString* precTemplate = NULL );
/**
Call this from wxPGProperty::OnEvent() to cause property value to be
virtual void Refresh( bool eraseBackground = true,
const wxRect *rect = (const wxRect *) NULL );
virtual bool SetFont( const wxFont& font );
-#if wxPG_SUPPORT_TOOLTIPS
- void SetToolTip( const wxString& tipString );
-#endif
virtual void Freeze();
virtual void SetExtraStyle( long exStyle );
virtual void Thaw();
/** Current cursor id. */
int m_curcursor;
- /**
- This captionFont is made equal to the font of the wxScrolledWindow.
-
- As extra the bold face is set on it when this is wanted by the user
- (see flags)
- */
+ // Caption font. Same as normal font plus bold style.
wxFont m_captionFont;
int m_fontHeight; // Height of the font.
void CorrectEditorWidgetPosY();
int DoDrawItems( wxDC& dc,
- const wxRect* drawRect,
+ const wxRect* itemsRect,
bool isBuffered ) const;
/** Draws an expand/collapse (ie. +/-) button.
void DrawItems( wxDC& dc,
unsigned int topItemY,
unsigned int bottomItemY,
- const wxRect* drawRect = NULL );
+ const wxRect* itemsRect = NULL );
// Translate wxKeyEvent to wxPG_ACTION_XXX
int KeyEventToActions(wxKeyEvent &event, int* pSecond) const;
unsigned int selFlags = wxPG_SEL_NOVALIDATE,
unsigned int column = 1 );
+ // This function only moves focus to the wxPropertyGrid if it already
+ // was on one of its child controls.
void SetFocusOnCanvas();
bool DoHideProperty( wxPGProperty* p, bool hide, int flags );