X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/52c14774b3309c1f6baddbcf92df1eb86a322d92..85136e3bf5dadf921652519e71da5db351fb3194:/docs/latex/wx/splitter.tex?ds=sidebyside diff --git a/docs/latex/wx/splitter.tex b/docs/latex/wx/splitter.tex index a76b73188b..d96e85ddb2 100644 --- a/docs/latex/wx/splitter.tex +++ b/docs/latex/wx/splitter.tex @@ -6,10 +6,6 @@ This class manages up to two subwindows. The current view can be split into two programmatically (perhaps from a menu command), and unsplit either programmatically or via the wxSplitterWindow user interface. -Appropriate 3D shading for the Windows 95 user interface is an option - -this is also recommended for GTK. Optionally, the sash can be made to -look more like the native control under MacOS X. - \wxheading{Window styles} \begin{twocollist}\itemsep=0pt @@ -18,6 +14,8 @@ look more like the native control under MacOS X. \twocolitem{\windowstyle{wxSP\_3DBORDER}}{Synonym for wxSP\_BORDER.} \twocolitem{\windowstyle{wxSP\_BORDER}}{Draws a standard border.} \twocolitem{\windowstyle{wxSP\_NOBORDER}}{No border (default).} +\twocolitem{\windowstyle{wxSP\_NO\_XP\_THEME}}{Under Windows XP, switches off the attempt to draw the +splitter using Windows XP theming, so the borders and sash will take on the pre-XP look.} \twocolitem{\windowstyle{wxSP\_PERMIT\_UNSPLIT}}{Always allow to unsplit, even with the minimum pane size other than zero.} \twocolitem{\windowstyle{wxSP\_LIVE\_UPDATE}}{Don't draw XOR line but resize the child windows immediately.} @@ -35,6 +33,10 @@ See also \helpref{window styles overview}{windowstyles}. +\wxheading{Library} + +\helpref{wxCore}{librarieslist} + \wxheading{Event handling} To process input from a splitter control, use the following event handler @@ -66,7 +68,7 @@ Processes a wxEVT\_COMMAND\_SPLITTER\_DOUBLECLICKED event.} \latexignore{\rtfignore{\wxheading{Members}}} -\membersection{wxSplitterWindow::wxSplitterWindow}\label{wxsplitterwindowconstr} +\membersection{wxSplitterWindow::wxSplitterWindow}\label{wxsplitterwindowctor} \func{}{wxSplitterWindow}{\void} @@ -108,7 +110,7 @@ create and delete the second pane on demand. \helpref{wxSplitterWindow::SplitHorizontally}{wxsplitterwindowsplithorizontally},\rtfsp \helpref{wxSplitterWindow::Create}{wxsplitterwindowcreate} -\membersection{wxSplitterWindow::\destruct{wxSplitterWindow}} +\membersection{wxSplitterWindow::\destruct{wxSplitterWindow}}\label{wxsplitterwindowdtor} \func{}{\destruct{wxSplitterWindow}}{\void} @@ -116,11 +118,11 @@ Destroys the wxSplitterWindow and its children. \membersection{wxSplitterWindow::Create}\label{wxsplitterwindowcreate} -\func{bool}{Create}{\param{wxWindow*}{ parent}, \param{wxWindowID}{ id}, \param{int }{x},\rtfsp +\func{bool}{Create}{\param{wxWindow*}{ parent}, \param{wxWindowID}{ id}, \rtfsp \param{const wxPoint\& }{point = wxDefaultPosition}, \param{const wxSize\& }{size = wxDefaultSize},\rtfsp \param{long }{style=wxSP\_3D}, \param{const wxString\&}{ name = "splitterWindow"}} -Creation function, for two-step construction. See \helpref{wxSplitterWindow::wxSplitterWindow}{wxsplitterwindowconstr} for +Creation function, for two-step construction. See \helpref{wxSplitterWindow::wxSplitterWindow}{wxsplitterwindowctor} for details. \membersection{wxSplitterWindow::GetMinimumPaneSize}\label{wxsplitterwindowgetminimumpanesize} @@ -133,6 +135,16 @@ Returns the current minimum pane size (defaults to zero). \helpref{wxSplitterWindow::SetMinimumPaneSize}{wxsplitterwindowsetminimumpanesize} +\membersection{wxSplitterWindow::GetSashGravity}\label{wxsplitterwindowgetsashgravity} + +\func{double}{GetSashGravity}{\void} + +Returns the current sash gravity. + +\wxheading{See also} + +\helpref{wxSplitterWindow::SetSashGravity}{wxsplitterwindowsetsashgravity} + \membersection{wxSplitterWindow::GetSashPosition}\label{wxsplitterwindowgetsashposition} \func{int}{GetSashPosition}{\void} @@ -170,7 +182,8 @@ Returns the right/bottom pane. \func{void}{Initialize}{\param{wxWindow* }{window}} -Initializes the splitter window to have one pane. +Initializes the splitter window to have one pane. The child window is +shown if it is currently hidden. \wxheading{Parameters} @@ -271,6 +284,37 @@ may wish to do it yourself. \helpref{wxSplitterWindow::SplitVertically}{wxsplitterwindowsplitvertically}\\ \helpref{wxSplitterWindow::SplitHorizontally}{wxsplitterwindowsplithorizontally} +\membersection{wxSplitterWindow::SetSashGravity}\label{wxsplitterwindowsetsashgravity} + +\func{void}{SetSashGravity}{\param{double }{gravity}} + +Sets the sash gravity. + +\wxheading{Parameters} + +\docparam{gravity}{The sash gravity. Value between 0.0 and 1.0.} + + +\wxheading{Remarks} +Gravity is real factor which controls position of sash while resizing wxSplitterWindow. +Gravity tells wxSplitterWindow how much will left/top window grow while resizing. + +Example values: +\begin{itemize}\itemsep=0pt +\item{ 0.0 - only the bottom/right window is automatically resized} +\item{ 0.5 - both windows grow by equal size} +\item{ 1.0 - only left/top window grows} +\end{itemize} + +Gravity should be a real value between 0.0 and 1.0. + +Default value of sash gravity is 0.0. That value is compatible with previous +(before gravity was introduced) behaviour of wxSplitterWindow. + +\wxheading{See also} + +\helpref{wxSplitterWindow::GetSashGravity}{wxsplitterwindowgetsashgravity} + \membersection{wxSplitterWindow::SetSashPosition}\label{wxsplitterwindowsetsashposition} \func{void}{SetSashPosition}{\param{int }{position}, \param{const bool}{ redraw = true}} @@ -291,6 +335,15 @@ Does not currently check for an out-of-range value. \helpref{wxSplitterWindow::GetSashPosition}{wxsplitterwindowgetsashposition} +\membersection{wxSplitterWindow::SetSashSize}\label{wxsplitterwindowsetsashsize} + +\func{void}{SetSashSize}{\param{int }{size}} + +Sets the sash size. Normally, the sash size is determined according to the metrics +of each platform, but the application can override this, for example to show +a thin sash that the user is not expected to drag. If {\it size} is more -1, +the custom sash size will be used. + \membersection{wxSplitterWindow::SetMinimumPaneSize}\label{wxsplitterwindowsetminimumpanesize} \func{void}{SetMinimumPaneSize}{\param{int }{paneSize}} @@ -337,7 +390,8 @@ Only sets the internal variable; does not update the display. \func{bool}{SplitHorizontally}{\param{wxWindow* }{window1}, \param{wxWindow* }{window2}, \param{int}{ sashPosition = 0}} -Initializes the top and bottom panes of the splitter window. +Initializes the top and bottom panes of the splitter window. The +child windows are shown if they are currently hidden. \wxheading{Parameters} @@ -346,7 +400,7 @@ Initializes the top and bottom panes of the splitter window. \docparam{window2}{The bottom pane.} \docparam{sashPosition}{The initial position of the sash. If this value is -positive, it specifies the size of the upper pane. If it is negative, it is +positive, it specifies the size of the upper pane. If it is negative, its absolute value gives the size of the lower pane. Finally, specify 0 (default) to choose the default position (half of the total window height).} @@ -370,7 +424,8 @@ window is not currently split using \helpref{IsSplit}{wxsplitterwindowissplit}. \func{bool}{SplitVertically}{\param{wxWindow* }{window1}, \param{wxWindow* }{window2}, \param{int}{ sashPosition = 0}} -Initializes the left and right panes of the splitter window. +Initializes the left and right panes of the splitter window. The +child windows are shown if they are currently hidden. \wxheading{Parameters} @@ -421,3 +476,17 @@ which can be overridden for the desired behaviour. By default, the pane being re \helpref{wxSplitterWindow::SplitHorizontally}{wxsplitterwindowsplithorizontally}, \helpref{wxSplitterWindow::SplitVertically}{wxsplitterwindowsplitvertically},\rtfsp \helpref{wxSplitterWindow::IsSplit}{wxsplitterwindowissplit}, \helpref{wxSplitterWindow::OnUnsplit}{wxsplitterwindowonunsplit} +\membersection{wxSplitterWindow::UpdateSize}\label{wxsplitterwindowupdatesize} + +\func{void}{UpdateSize}{\void} + +Causes any pending sizing of the sash and child panes to take place +immediately. + +Such resizing normally takes place in idle time, in order +to wait for layout to be completed. However, this can cause +unacceptable flicker as the panes are resized after the window has been +shown. To work around this, you can perform window layout (for +example by sending a size event to the parent window), and then +call this function, before showing the top-level window. +