<?xml version="1.0" encoding="UTF-8"?>
<!--

    Licensed to the Apache Software Foundation (ASF) under one
    or more contributor license agreements.  See the NOTICE file
    distributed with this work for additional information
    regarding copyright ownership.  The ASF licenses this file
    to you under the Apache License, Version 2.0 (the
    "License"); you may not use this file except in compliance
    with the License.  You may obtain a copy of the License at

      http://www.apache.org/licenses/LICENSE-2.0

    Unless required by applicable law or agreed to in writing,
    software distributed under the License is distributed on an
    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
    KIND, either express or implied.  See the License for the
    specific language governing permissions and limitations
    under the License.

-->
<?xml-stylesheet type="text/xml" href="../../nbbuild/javadoctools/apichanges.xsl"?>
<!DOCTYPE apichanges PUBLIC "-//NetBeans//DTD API changes list 1.0//EN" "../../nbbuild/javadoctools/apichanges.dtd">

<!--

INFO FOR PEOPLE ADDING CHANGES:

Check the DTD (apichanges.dtd) for details on the syntax. You do not
need to regenerate the HTML, as this is part of Javadoc generation; just
change the XML. Rough syntax of a change (several parts optional):

<change>
    <api name="compiler"/>
    <summary>Some brief description here, can use <b>XHTML</b></summary>
    <version major="1" minor="99"/>
    <date day="13" month="6" year="2001"/>
    <author login="jrhacker"/>
    <compatibility addition="yes"/>
    <description>
        The main description of the change here.
        Again can use full <b>XHTML</b> as needed.
    </description>
    <class package="org.openide.compiler" name="DoWhatIWantCompiler"/>
    <issue number="14309"/>
</change>

Also permitted elements: <package>, <branch>. <version> is API spec
version, recommended for all new changes. <compatibility> should say
if things were added/modified/deprecated/etc. and give all information
related to upgrading old code. List affected top-level classes and
link to issue numbers if applicable. See the DTD for more details.

Changes need not be in any particular order, they are sorted in various
ways by the stylesheet anyway.

Dates are assumed to mean "on the trunk". If you *also* make the same
change on a stabilization branch, use the <branch> tag to indicate this
and explain why the change was made on a branch in the <description>.

Please only change this file on the trunk! Rather: you can change it
on branches if you want, but these changes will be ignored; only the
trunk version of this file is important.

Deprecations do not count as incompatible, assuming that code using the
deprecated calls continues to see their documented behavior. But do
specify deprecation="yes" in <compatibility>.

This file is not a replacement for Javadoc: it is intended to list changes,
not describe the complete current behavior, for which ordinary documentation
is the proper place.

-->

<apichanges>

    <!-- First, a list of API names you may use: -->
<apidefs>
   <apidef name="tabcontrol">Tab Control APIs</apidef>
   <apidef name="popupswitcher">Popup Switcher APIs</apidef>
   <!-- etc. -->
</apidefs>

    <!-- ACTUAL CHANGES BEGIN HERE: -->

<changes>

    <change id="autoscroll">
      <api name="tabcontrol"/>
      <summary>Added ability to scroll document tabs when dragging a TopComponent
          over the editor area.</summary>
      <version major="1" minor="48"/>
      <date day="11" month="9" year="2013"/>
      <author login="saubrecht"/>
      <compatibility addition="yes" binary="compatible" deprecation="no"/>
      <description>
        TabDisplayer no implements java.awt.dnd.Autoscroll interface. The new
          methods just delegate to TabDisplayerUI.
          The actual implementation is in BasicScrollingTabDisplayerUI class
          which scrolls the tabs to the left or to the right when a TopComponent
          is being dragged over its left or right edge.
      </description>
      <class package="org.netbeans.swing.tabcontrol" name="TabDisplayer"/>
      <class package="org.netbeans.swing.tabcontrol" name="TabDisplayerUI"/>
    </change>

    <change id="componentconverter">
      <api name="tabcontrol"/>
      <summary>Added getter and setter for ComponentConverter to TabDisplayer class.</summary>
      <version major="1" minor="44"/>
      <date day="12" month="6" year="2013"/>
      <author login="saubrecht"/>
      <compatibility addition="yes" binary="compatible" deprecation="no"/>
      <description>
        TabDisplayer class has getter and setter for ComponentConverter so that its
          UI delegate can calculate proper minimum size when ComponentConverter is being used.
      </description>
      <class package="org.netbeans.swing.tabcontrol" name="TabDisplayer"/>
      <issue number="171385"/>
    </change>

    <change id="windows8laf">
      <api name="tabcontrol"/>
      <summary>New UI delegates for Windows 8 look and feel.</summary>
      <version major="1" minor="41"/>
      <date day="27" month="11" year="2012"/>
      <author login="saubrecht"/>
      <compatibility addition="yes" binary="compatible" deprecation="no"/>
      <description>
        New UI delegates for editor and non-editor tabs for Windows 8 look and feel.
      </description>
      <class package="org.netbeans.swing.tabcontrol.plaf" name="Windows8ViewTabDisplayerUI"/>
      <class package="org.netbeans.swing.tabcontrol.plaf" name="Windows8EditorTabDisplayerUI"/>
    </change>

    <change id="attentionhighlight">
      <api name="tabcontrol"/>
      <summary>Allow a tab to be permanently highlighted until user activates it.</summary>
      <version major="1" minor="38"/>
      <date day="31" month="8" year="2012"/>
      <author login="saubrecht"/>
      <compatibility addition="yes" binary="compatible" deprecation="no"/>
      <description>
        There's a new method <code>void setSwitcherItems(SwitcherTableItems[],int)</code> in
        <code>SwitcherTable</code> class which allows to change the content of document switcher
        popup.
      </description>
      <class package="org.netbeans.swing.tabcontrol" name="TabbedContainer"/>
      <class package="org.netbeans.swing.tabcontrol" name="TabbedContainerUI"/>
      <class package="org.netbeans.swing.tabcontrol" name="TabDisplayerUI"/>
      <class package="org.netbeans.swing.tabcontrol" name="TabDisplayer"/>
      <class package="org.netbeans.swing.tabcontrol.customtabs" name="Tabbed"/>
      <class package="org.netbeans.swing.tabcontrol.plaf" name="TabState"/>
      <issue number="217509"/>
    </change>

    <change id="documentswitcher">
      <api name="popupswitcher"/>
      <summary>Allow changes in SwitcherTable content.</summary>
      <version major="1" minor="35"/>
      <date day="22" month="2" year="2012"/>
      <author login="saubrecht"/>
      <compatibility addition="yes" binary="compatible" deprecation="no"/>
      <description>
        There's a new method <code>void setSwitcherItems(SwitcherTableItems[],int)</code> in
        <code>SwitcherTable</code> class which allows to change the content of document switcher
        popup.
      </description>
      <class package="org.netbeans.swing.popupswitcher" name="SwitcherTable"/>
    </change>

    <change id="busy_tabs">
      <api name="tabcontrol"/>
      <summary>Display notification that a tab is 'busy'.</summary>
      <version major="1" minor="34"/>
      <date day="14" month="2" year="2012"/>
      <author login="saubrecht"/>
      <compatibility addition="yes" binary="compatible" deprecation="no"/>
      <description>
        The look and feel for tabbed containers has been extended to support
        notifications that a tab is 'busy', i.e. some lengthy process is being
        run in it.<br/>
        All supported look and feel implementations use an animated icon to indicate
        the busy state.
      </description>
      <class package="org.netbeans.swing.tabcontrol.plaf" name="BusyTabsSupport"/>
      <class package="org.netbeans.swing.tabcontrol" name="WinsysInfoForTabbedContainer"/>
      <class package="org.netbeans.swing.tabcontrol" name="TabDisplayerUI"/>
      <class package="org.netbeans.swing.tabcontrol.customtabs" name="Tabbed"/>
      <issue number="208026"/>
    </change>

    <change id="tabcontrol_factory">
      <api name="tabcontrol"/>
      <summary>Allow custom implementation of tab control.</summary>
      <version major="1" minor="33"/>
      <date day="25" month="1" year="2012"/>
      <author login="saubrecht"/>
      <compatibility addition="yes" binary="compatible" deprecation="no"/>
      <description>
        <p>There is a new <code>TabbedComponentFactory</code> class that allows
        custom implementations of tab control to be used in the window system.
        See <code>TabbedComponentFactory</code> Javadoc for more details.</p>

      </description>
      <class package="org.netbeans.swing.tabcontrol.customtabs" name="TabbedComponentFactory"/>
      <class package="org.netbeans.swing.tabcontrol.customtabs" name="Tabbed"/>
      <class package="org.netbeans.swing.tabcontrol.customtabs" name="TabbedType"/>
    </change>

    <change id="restore_group_button_ui">
      <api name="tabcontrol"/>
      <summary>Allow custom UI for 'restore window group' button.</summary>
      <version major="1" minor="28"/>
      <date day="14" month="7" year="2011"/>
      <author login="saubrecht"/>
      <compatibility addition="yes" binary="compatible" deprecation="no"/>
      <description>
        <p>Button to restore the whole window group from minimized bar now supports
        custom UI implementations. Simply provide own <code>ButtonUI</code> for 
        <code>restoreGroupButtonUI</code> key in UIManager.</p>
      </description>
      <class package="org.netbeans.swing.tabcontrol.plaf" name="TabControlButtonFactory"/>
    </change>

    <change id="new_window_group_operations">
      <api name="tabcontrol"/>
      <summary>New methods to support operations with window groups.</summary>
      <version major="1" minor="27"/>
      <date day="24" month="6" year="2011"/>
      <author login="saubrecht"/>
      <compatibility addition="yes" binary="compatible" deprecation="no"/>
      <description>
        <p>Added new methods to support operations with window groups, e.g. close
        window group or minimize window group.
        </p>
        <p>Also the implementation of look and feels for all supported
        platform switches to non-stretching tab layout.</p>
      </description>
      <class package="org.netbeans.swing.tabcontrol" name="WinsysInfoForTabbedContainer"/>
      <class package="org.netbeans.swing.tabcontrol" name="SlideBarDataModel"/>
      <class package="org.netbeans.swing.tabcontrol" name="TabbedContainer"/>
      <class package="org.netbeans.swing.tabcontrol" name="TabDisplayer"/>
      <class package="org.netbeans.swing.tabcontrol" name="TabDisplayerUI"/>
      <class package="org.netbeans.swing.tabcontrol.event" name="TabActionEvent"/>
      <class package="org.netbeans.swing.tabcontrol.plaf" name="AbstractViewTabDisplayerUI"/>
      <class package="org.netbeans.swing.tabcontrol.plaf" name="TabControlButton"/>
      <class package="org.netbeans.swing.tabcontrol.plaf" name="TabControlButtonFactory"/>
      <issue number="199677"/>
    </change>

    <change id="topcomponent_level_winsys_customizations">
      <api name="tabcontrol"/>
      <summary>Added new methods to WinsysInfoForTabbedContainer class which can
      adjust the behavior of TopComponents in tabbed container.</summary>
      <version major="1" minor="15"/>
      <date day="13" month="1" year="2009"/>
      <author login="saubrecht"/>
      <compatibility addition="yes" binary="compatible" deprecation="no"/>
      <description>
        <p>Added new methods to class WinsysInfoForTabbedContainer to find out the
        status (enabled/disabled) of some window system features for given TopComponent,
        e.g. is the TopComponent allowed to slide-out etc.
        </p>
      </description>
      <class package="org.netbeans.swing.tabcontrol" name="WinsysInfoForTabbedContainer"/>
      <issue number="156693"/>
    </change>

    <change id="winsysinfo_for_tabbed_container">
      <api name="tabcontrol"/>
      <summary>Added new abstract class WinsysInfoForTabbedContainer which can 
      adjust some tabbed container properties and behavior.</summary>
      <version major="1" minor="13"/>
      <date day="6" month="6" year="2008"/>
      <author login="saubrecht"/>
      <compatibility addition="yes" binary="compatible" deprecation="yes"/>
      <description>
        <p>The new abstract class WinsysInfoForTabbedContainer is a replacement
        for interface WinsysInfoForTabbed. The new class implements the old interface
        and also contains method informing the tabbed containers about the state
        of some of window system switches that may disable some of its functionality.
        (For example disable window sliding).
        </p>
      </description>
      <class package="org.netbeans.swing.tabcontrol" name="WinsysInfoForTabbedContainer"/>
      <issue number="136636"/>
    </change>

    <change id="slide_transparency">
      <api name="tabcontrol"/>
      <summary>Added support for transparency of slided-in windows</summary>
      <version major="1" minor="11"/>
      <date day="28" month="11" year="2007"/>
      <author login="saubrecht"/>
      <compatibility addition="yes" binary="compatible" />
      <description>
        <p>Containers with slided-in windows can be painted with different alpha channel
        to achieve window transparency.
        </p>
      </description>
    </change>
    
    <change id="devel_api_status">
      <api name="tabcontrol"/>
      <summary>API switched to 'public - under development'</summary>
      <version major="1" minor="9"/>
      <date day="24" month="7" year="2007"/>
      <author login="saubrecht"/>
      <compatibility modification="yes" />
      <description>
        <p>Since there are some third party modules that provide non-standard look and feel for
        the TabControl, the API is switched back to 'public - under development status'.
        </p>
      </description>
    </change>
    
    <change id="making_a_friend_with_core_window">
        <api name="tabcontrol"/>
        <summary>Module core/windows now has Friend API dependency on core/swing/tabcontrol</summary>
        <date day="5" month="10" year="2006"/>
        <author login="saubrecht"/>
        <compatibility deletion="yes" binary="incompatible" source="incompatible"/>
        <description>
            <p>
            The Tab Control module was unnecessarily exposing all of its packages as public API.
            Since it's no longer possible to use the Tab Control as a standalone module (because
            of its dependencies on Windows API) the module now has only a single friend module -
            Core/Windows.
            </p>
            <p>
            There were also other changes in Tab Control UI classes for various L&amp;Fs (i.e. 
            classes that were previously in public API packages), some methods have been removed, 
            some were added. Also some classes in org.netbeans.swing.tabcontrol package have changed.
            </p>
        </description>
    </change>

    <change id="TabbedContainerUI.jdk14bug4924516Hack">
        <api name="tabcontrol"/>
        <summary><code>TabbedContainerUI.jdk14bug4924516Hack</code> deleted</summary>
        <date day="5" month="4" year="2006"/>
        <author login="jglick"/>
        <compatibility deletion="yes" binary="incompatible" source="incompatible"/>
        <description>
            A method which was present only as a workaround for a bug in JDK 1.4 was
            deleted, since only JDK 5+ is now supported. The method should not have
            been called by anyone outside of this module anyway.
        </description>
        <class package="org.netbeans.swing.tabcontrol" name="TabbedContainerUI"/>
    </change>

    <change id="flashing-tabs">
      <api name="tabcontrol"/>
      <summary>Flashing tabs added</summary>
      <version major="1" minor="3"/>
      <date day="18" month="11" year="2004"/>
      <author login="mkleint"/>
      <compatibility addition="yes" binary="compatible" semantic="compatible" />
      <description>
        <p>Added support for flashing tabs, to be used to get user's attention.
        The API allows to start the flashing and stop it explicitly. Also stops when user selects the given
        tab.
        </p>
      </description>
      <class package="org.netbeans.swing.tabcontrol" name="TabDisplayer"/>
      <class package="org.netbeans.swing.tabcontrol" name="TabbedContainer"/>
      <issue number="48811" />
    </change>

</changes>

    <!-- Now the surrounding HTML text and document structure: -->

    <htmlcontents>
<!--

                            NO NO NO NO NO!

         ==============>    DO NOT EDIT ME!  <==============

          AUTOMATICALLY GENERATED FROM APICHANGES.XML, DO NOT EDIT

                SEE core/swing/tabcontrol/api/doc/changes/changes.xml

-->
    <head>
      <title>Change History for the TabControl API</title>
      <link rel="stylesheet" href="prose.css" type="text/css"/>
    </head>
    <body>

<p class="overviewlink"><a href="overview-summary.html">Overview</a></p>

<h1>Introduction</h1>

<p>This document lists changes made to the TabControl API.</p>

<!-- The actual lists of changes, as summaries and details: -->
      <hr/>
      <standard-changelists module-code-name="org.netbeans.swing.tabcontrol"/>

      <hr/><p>@FOOTER@</p>

    </body>
  </htmlcontents>

</apichanges>
