]> git.saurik.com Git - wxWidgets.git/blobdiff - docs/latex/wx/splitter.tex
wxDataViewCtrl DnD stubs, some reformating
[wxWidgets.git] / docs / latex / wx / splitter.tex
index d9b0f4b16a8e5a86345e9eab983cf6fe2d0a81af..d96e85ddb237853affcad2478a54d789343b9a72 100644 (file)
@@ -6,19 +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. Optionally, the sash can be made to
-look more like the native control under MacOS X.
-
 \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.}
@@ -36,6 +33,10 @@ See also \helpref{window styles overview}{windowstyles}.
 
 <wx/splitter.h>
 
+\wxheading{Library}
+
+\helpref{wxCore}{librarieslist}
+
 \wxheading{Event handling}
 
 To process input from a splitter control, use the following event handler
@@ -67,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}
 
@@ -109,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}
 
@@ -117,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}
@@ -134,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}
@@ -171,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}
 
@@ -272,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}}
@@ -292,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}}
@@ -338,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}
 
@@ -347,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).}
 
@@ -371,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}
 
@@ -422,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.
+