\documentclass[]{article}
\usepackage{amsmath,graphicx,supertabular,hyperref,tabularx,ifthen}
\title{TIP \#179: Add -hide Option to panedwindow Widget}
\date{March 22, 2004}
\author{Brian Griffin}
\urlstyle{sf}
\setlength{\parskip}{1ex}
\setlength{\parindent}{0pt}
\def\tipversion$#1${\texttt{\$#1\$}}
\def\tiplangle#1{\ensuremath{<}}
\def\tiprangle#1{\ensuremath{>}}
\def\tipbar#1{\ensuremath{|}}
\def\tipmail#1#2{\(\langle\){\small\expandafter\url{#1@#2}}\(\rangle\)}
\ifx\pdfoutput\undefined
\newcommand{\tipimage}[2]{\typeout{Make sure you download #1.eps}\ifthenelse{\lengthtest{0.8\textwidth>#2}\and\lengthtest{0pt<#2}}{\includegraphics{#1.eps}}{\includegraphics[width=0.8\textwidth]{#1.eps}}}
\newcommand{\tipxref}[1]{}
\newcommand{\tipxrefend}{}
\else
\newcommand{\tipimage}[2]{\typeout{Make sure you create #1.pdf}\ifthenelse{\lengthtest{0.8\textwidth>#2}\and\lengthtest{0pt<#2}}{\includegraphics{#1.pdf}}{\includegraphics[width=0.8\textwidth]{#1.pdf}}}
\pdfcatalog{/PageMode /UseOutlines}
\newcommand{\tipxref}[1]{\pdfannotlink attr {/C [0.5 0.5 1.0] /Border [0 0 1]} goto name {#1}}
\newcommand{\tipxrefend}{\pdfendlink}
\fi
\newenvironment{tipabstract}{\begin{abstract}}{\end{abstract}}
\begin{document}\maketitle
\begin{center}\begin{tabularx}{\linewidth}{|r@{: }X|}\hline
\textbf{TIP \#179}&\textbf{Add -hide Option to panedwindow Widget}\\\hline
Author&

Brian Griffin \tipmail{bgriffin}{model.com}
\\
Created&Monday, \(\text{22}^{\text{nd}}\) March 2004\\
Type&Project\\
Tcl Version&\(8.5\)\\
State&Final\\
Vote&Done\\
Version&\tipversion$Revision: 1.5 $\\
Keywords&Tk\\
Post History&\\
\hline\end{tabularx}\end{center}
\thispagestyle{empty}\pagestyle{empty}
\begin{tipabstract}

This TIP proposes adding a \textbf{paneconfigure} option to \textbf{panedwindow}s that will control pane visibility.
\end{tipabstract}
\tableofcontents\setcounter{page}{0}\clearpage\pagestyle{plain}

\section{Rationale}

Adding control over individual pane visibility to the \textbf{panedwindow} widget would simplify the construction and control of complex user interfaces. For example, look at applications such as Komodo, or MS Visual Studio, where the U/I contains 4-7 panes in 2 or more nested panedwindows. Both of these applications as well as many others allow user controlled visibility of individual panes. Trying to manage the visibility and placement of these panes requires much additional code and adds complexity to the U/I implementation. Alternatively, if the panedwindow allowed control of visibility while maintaining pane position and configure options (as does the \textbf{grid remove} method), the U/I code is essentially reduced to a simple one line [\textit{\$w} \textbf{configure -hide}].

\section{Proposed Change}

This TIP will add a \textbf{-hide} option to the \textbf{paneconfigure} for individual panes. The option will control the visibility of the pane. When set to true (as interpreted by \textit{Tcl\_GetBooleanFromObj()}), the pane will be unmapped and will not be considered when arranging the remaining panes for display. Hidden panes will still be reported by the [\textit{\$w} \textbf{panes}] method and can be referenced when adding panes with the \textbf{-after} or \textbf{-before} options.

The advantage of a \textbf{paneconfigure} option over the \textbf{remove} method of the \textbf{grid} command is that the pane is still query-able and configurable.

\section{Draft Implementation}

An implementation of this enhancement is available [\url{ftp://ftp.model.com/pub/tcl/pw_hide_TIP.tgz}].

\section{Copyright}

This document has been placed in the public domain.

\section{Colophon}

\textit{TIP AutoGenerator --- written by Donal K. Fellows}
\end{document}
