217 lines
7.6 KiB
C++
217 lines
7.6 KiB
C++
/////////////////////////////////////////////////////////////////////////////
|
|
// Name: wx/propgrid/private.h
|
|
// Purpose: Private wxPropertyGrid declarations
|
|
// Author: Artur Wieczorek, Jaakko Salli
|
|
// Created: 2023-03-10
|
|
// Copyright: (c) 2023 wxWidgets development team
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
|
|
#ifndef _WX_PROPGRID_PRIVATE_H_
|
|
#define _WX_PROPGRID_PRIVATE_H_
|
|
|
|
#if !defined(WXBUILDING)
|
|
#error This header is intended for internal use
|
|
#endif // !WXBUILDING
|
|
|
|
#include "wx/defs.h"
|
|
|
|
// -----------------------------------------------------------------------
|
|
|
|
// space between vertical sides of a custom image
|
|
#define wxPG_CUSTOM_IMAGE_SPACINGY 1
|
|
|
|
// space between caption and selection rectangle,
|
|
#define wxPG_CAPRECTXMARGIN 2
|
|
|
|
// horizontally and vertically
|
|
#define wxPG_CAPRECTYMARGIN 1
|
|
|
|
// -----------------------------------------------------------------------
|
|
|
|
//
|
|
// Here are some platform dependent defines
|
|
// NOTE: More in propertygrid.cpp
|
|
//
|
|
// NB: Only define wxPG_TEXTCTRLXADJUST for platforms that do not
|
|
// (yet) support wxTextEntry::SetMargins() for the left margin.
|
|
|
|
#if defined(__WXMSW__)
|
|
|
|
// space between vertical line and value text
|
|
#define wxPG_XBEFORETEXT 4
|
|
// space between vertical line and value editor control
|
|
#define wxPG_XBEFOREWIDGET 1
|
|
|
|
// left margin can be set with wxTextEntry::SetMargins()
|
|
#undef wxPG_TEXTCTRLXADJUST
|
|
|
|
// comment to use bitmap buttons
|
|
#define wxPG_ICON_WIDTH 9
|
|
// 1 if wxRendererNative should be employed
|
|
#define wxPG_USE_RENDERER_NATIVE 1
|
|
|
|
// width of optional bitmap/image in front of property
|
|
#define wxPG_CUSTOM_IMAGE_WIDTH 20
|
|
|
|
// 1 if splitter drag detect margin and control cannot overlap
|
|
#define wxPG_NO_CHILD_EVT_MOTION 0
|
|
|
|
#define wxPG_NAT_BUTTON_BORDER_ANY 1
|
|
#define wxPG_NAT_BUTTON_BORDER_X 1
|
|
#define wxPG_NAT_BUTTON_BORDER_Y 1
|
|
|
|
// If 1 then controls are refreshed explicitly in a few places
|
|
#define wxPG_REFRESH_CONTROLS 0
|
|
|
|
#elif defined(__WXGTK__)
|
|
|
|
// space between vertical line and value text
|
|
#define wxPG_XBEFORETEXT 5
|
|
// space between vertical line and value editor control
|
|
#define wxPG_XBEFOREWIDGET 1
|
|
|
|
// x position adjustment for wxTextCtrl (and like)
|
|
// left margin can be set with wxTextEntry::SetMargins()
|
|
#undef wxPG_TEXTCTRLXADJUST
|
|
|
|
// comment to use bitmap buttons
|
|
#define wxPG_ICON_WIDTH 9
|
|
// 1 if wxRendererNative should be employed
|
|
#define wxPG_USE_RENDERER_NATIVE 1
|
|
|
|
// width of optional bitmap/image in front of property
|
|
#define wxPG_CUSTOM_IMAGE_WIDTH 20
|
|
|
|
// 1 if splitter drag detect margin and control cannot overlap
|
|
#define wxPG_NO_CHILD_EVT_MOTION 1
|
|
|
|
#define wxPG_NAT_BUTTON_BORDER_ANY 1
|
|
#define wxPG_NAT_BUTTON_BORDER_X 1
|
|
#define wxPG_NAT_BUTTON_BORDER_Y 1
|
|
|
|
// If 1 then controls are refreshed after selected was drawn.
|
|
#define wxPG_REFRESH_CONTROLS 1
|
|
|
|
#elif defined(__WXMAC__)
|
|
|
|
// space between vertical line and value text
|
|
#define wxPG_XBEFORETEXT 4
|
|
// space between vertical line and value editor widget
|
|
#define wxPG_XBEFOREWIDGET 1
|
|
|
|
// x position adjustment for wxTextCtrl (and like)
|
|
// left margin cannot be set with wxTextEntry::SetMargins()
|
|
#define wxPG_TEXTCTRLXADJUST 1
|
|
|
|
// comment to use bitmap buttons
|
|
#define wxPG_ICON_WIDTH 11
|
|
// 1 if wxRendererNative should be employed
|
|
#define wxPG_USE_RENDERER_NATIVE 1
|
|
|
|
// width of optional bitmap/image in front of property
|
|
#define wxPG_CUSTOM_IMAGE_WIDTH 20
|
|
|
|
// 1 if splitter drag detect margin and control cannot overlap
|
|
#define wxPG_NO_CHILD_EVT_MOTION 0
|
|
|
|
#define wxPG_NAT_BUTTON_BORDER_ANY 0
|
|
#define wxPG_NAT_BUTTON_BORDER_X 0
|
|
#define wxPG_NAT_BUTTON_BORDER_Y 0
|
|
|
|
// If 1 then controls are refreshed after selected was drawn.
|
|
#define wxPG_REFRESH_CONTROLS 0
|
|
|
|
#else // defaults
|
|
|
|
// space between vertical line and value text
|
|
#define wxPG_XBEFORETEXT 5
|
|
// space between vertical line and value editor widget
|
|
#define wxPG_XBEFOREWIDGET 1
|
|
|
|
// x position adjustment for wxTextCtrl (and like)
|
|
// left margin cannot be set with wxTextEntry::SetMargins()
|
|
#define wxPG_TEXTCTRLXADJUST 3
|
|
|
|
// comment to use bitmap buttons
|
|
#define wxPG_ICON_WIDTH 9
|
|
// 1 if wxRendererNative should be employed
|
|
#define wxPG_USE_RENDERER_NATIVE 0
|
|
|
|
// width of optional bitmap/image in front of property
|
|
#define wxPG_CUSTOM_IMAGE_WIDTH 20
|
|
|
|
// 1 if splitter drag detect margin and control cannot overlap
|
|
#define wxPG_NO_CHILD_EVT_MOTION 1
|
|
|
|
#define wxPG_NAT_BUTTON_BORDER_ANY 0
|
|
#define wxPG_NAT_BUTTON_BORDER_X 0
|
|
#define wxPG_NAT_BUTTON_BORDER_Y 0
|
|
|
|
// If 1 then controls are refreshed after selected was drawn.
|
|
#define wxPG_REFRESH_CONTROLS 0
|
|
#endif // platform
|
|
|
|
|
|
#define wxPG_CONTROL_MARGIN 0 // space between splitter and control
|
|
|
|
#define wxCC_CUSTOM_IMAGE_MARGIN1 4 // before image
|
|
#define wxCC_CUSTOM_IMAGE_MARGIN2 5 // after image
|
|
|
|
#define DEFAULT_IMAGE_OFFSET_INCREMENT \
|
|
(wxCC_CUSTOM_IMAGE_MARGIN1 + wxCC_CUSTOM_IMAGE_MARGIN2)
|
|
|
|
#define wxPG_DRAG_MARGIN 30
|
|
|
|
#if wxPG_NO_CHILD_EVT_MOTION
|
|
#define wxPG_SPLITTERX_DETECTMARGIN1 3 // this much on left
|
|
#define wxPG_SPLITTERX_DETECTMARGIN2 2 // this much on right
|
|
#else
|
|
#define wxPG_SPLITTERX_DETECTMARGIN1 3 // this much on left
|
|
#define wxPG_SPLITTERX_DETECTMARGIN2 2 // this much on right
|
|
#endif
|
|
|
|
// Use this macro to generate standard custom image height from
|
|
#define wxPG_STD_CUST_IMAGE_HEIGHT(LINEHEIGHT) ((LINEHEIGHT)-3)
|
|
|
|
// Undefine wxPG_ICON_WIDTH to use supplied xpm bitmaps instead
|
|
// (for tree buttons)
|
|
//#undef wxPG_ICON_WIDTH
|
|
|
|
// -----------------------------------------------------------------------
|
|
|
|
// Events used only internally
|
|
wxDECLARE_EVENT(wxEVT_PG_HSCROLL, wxPropertyGridEvent);
|
|
wxDECLARE_EVENT(wxEVT_PG_COLS_RESIZED, wxPropertyGridEvent);
|
|
|
|
// -----------------------------------------------------------------------
|
|
|
|
// Flags used only internally
|
|
|
|
// wxBoolProperty, wxFlagsProperty specific flags
|
|
constexpr wxPGFlags wxPGPropertyFlags_UseCheckBox = wxPGFlags::Reserved_1;
|
|
// DCC = Double Click Cycles
|
|
constexpr wxPGFlags wxPGPropertyFlags_UseDCC = wxPGFlags::Reserved_2;
|
|
|
|
// wxStringProperty flag
|
|
constexpr wxPGFlags wxPGPropertyFlags_Password = wxPGFlags::Reserved_2;
|
|
|
|
// wxColourProperty flag - if set, then match from list is searched for a custom colour.
|
|
constexpr wxPGFlags wxPGPropertyFlags_TranslateCustom = wxPGFlags::Reserved_1;
|
|
|
|
// wxCursorProperty, wxSystemColourProperty - If set, then selection of choices is static
|
|
// and should not be changed (i.e. returns nullptr in GetPropertyChoices).
|
|
constexpr wxPGFlags wxPGPropertyFlags_StaticChoices = wxPGFlags::Reserved_1;
|
|
|
|
// wxSystemColourProperty - wxEnumProperty based classes cannot use wxPGFlags::Reserved_1
|
|
constexpr wxPGFlags wxPGPropertyFlags_HideCustomColour = wxPGFlags::Reserved_2;
|
|
constexpr wxPGFlags wxPGPropertyFlags_ColourHasAlpha = wxPGFlags::Reserved_3;
|
|
|
|
// wxFileProperty - if set, full path is shown in wxFileProperty.
|
|
constexpr wxPGFlags wxPGPropertyFlags_ShowFullFileName = wxPGFlags::Reserved_1;
|
|
|
|
// wxLongStringProperty - flag used to mark that edit button
|
|
// should be enabled even in the read-only mode.
|
|
constexpr wxPGFlags wxPGPropertyFlags_ActiveButton = wxPGFlags::Reserved_3;
|
|
|
|
#endif // _WX_PROPGRID_PRIVATE_H_
|