X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/f6bcfd974ef26faf6f91a62cac09827e09463fd1..85136e3bf5dadf921652519e71da5db351fb3194:/docs/latex/wx/splitter.tex diff --git a/docs/latex/wx/splitter.tex b/docs/latex/wx/splitter.tex index bd311fcabc..d96e85ddb2 100644 --- a/docs/latex/wx/splitter.tex +++ b/docs/latex/wx/splitter.tex @@ -6,18 +6,16 @@ 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. - \wxheading{Window styles} \begin{twocollist}\itemsep=0pt \twocolitem{\windowstyle{wxSP\_3D}}{Draws a 3D effect border and sash.} \twocolitem{\windowstyle{wxSP\_3DSASH}}{Draws a 3D effect sash.} -\twocolitem{\windowstyle{wxSP\_3DBORDER}}{Draws a 3D effect border.} -\twocolitem{\windowstyle{wxSP\_FULLSASH}}{Draws the ends of the sash (so the window can be used without a border).} -\twocolitem{\windowstyle{wxSP\_BORDER}}{Draws a thin black border around the window.} -\twocolitem{\windowstyle{wxSP\_NOBORDER}}{No border, and a black sash.} +\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 @@ -54,7 +56,7 @@ it is set, or to prevent the change from taking place. Processes a wxEVT\_COMMAND\_SPLITTER\_SASH\_POS\_CHANGED event.} \twocolitem{{\bf EVT\_SPLITTER\_UNSPLIT(id, func)}}{The splitter has been just unsplit. Processes a wxEVT\_COMMAND\_SPLITTER\_UNSPLIT event.} -\twocolitem{{\bf EVT\_SPLITTER\_DOUBLECLICKED(id, func)}}{The sash was double +\twocolitem{{\bf EVT\_SPLITTER\_DCLICK(id, func)}}{The sash was double clicked. The default behaviour is to unsplit the window when this happens (unless the minimum pane size has been set to a value greater than zero). Processes a wxEVT\_COMMAND\_SPLITTER\_DOUBLECLICKED event.} @@ -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} @@ -189,7 +202,7 @@ This should be called if you wish to initially view only a single pane in the sp \constfunc{bool}{IsSplit}{\void} -Returns TRUE if the window is split, FALSE otherwise. +Returns true if the window is split, false otherwise. \membersection{wxSplitterWindow::OnDoubleClickSash}\label{wxsplitterwindowondoubleclicksash} @@ -234,7 +247,7 @@ may wish to delete the window. \func{virtual bool}{OnSashPositionChange}{\param{int }{newSashPosition}} Application-overridable function called when the sash position is changed by -user. It may return FALSE to prevent the change or TRUE to allow it. +user. It may return false to prevent the change or true to allow it. \wxheading{Parameters} @@ -257,8 +270,8 @@ windows or only one. Both parameters should be non-NULL and {\it winOld} must specify one of the windows managed by the splitter. If the parameters are incorrect or the window -couldn't be replaced, FALSE is returned. Otherwise the function will return -TRUE, but please notice that it will not delete the replaced window and you +couldn't be replaced, false is returned. Otherwise the function will return +true, but please notice that it will not delete the replaced window and you may wish to do it yourself. \wxheading{See also} @@ -271,9 +284,40 @@ 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}} +\func{void}{SetSashPosition}{\param{int }{position}, \param{const bool}{ redraw = true}} Sets the sash position. @@ -281,7 +325,7 @@ Sets the sash position. \docparam{position}{The sash position in pixels.} -\docparam{redraw}{If TRUE, resizes the panes and redraws the sash and border.} +\docparam{redraw}{If true, resizes the panes and redraws the sash and border.} \wxheading{Remarks} @@ -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,13 +400,13 @@ 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).} \wxheading{Return value} -TRUE if successful, FALSE otherwise (the window was already split). +true if successful, false otherwise (the window was already split). \wxheading{Remarks} @@ -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} @@ -385,7 +440,7 @@ to choose the default position (half of the total window width).} \wxheading{Return value} -TRUE if successful, FALSE otherwise (the window was already split). +true if successful, false otherwise (the window was already split). \wxheading{Remarks} @@ -409,7 +464,7 @@ Unsplits the window. \wxheading{Return value} -TRUE if successful, FALSE otherwise (the window was not split). +true if successful, false otherwise (the window was not split). \wxheading{Remarks} @@ -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. +