layout/forms/nsIComboboxControlFrame.h

Wed, 31 Dec 2014 13:27:57 +0100

author
Michael Schloh von Bennewitz <michael@schloh.com>
date
Wed, 31 Dec 2014 13:27:57 +0100
branch
TOR_BUG_3246
changeset 6
8bccb770b82d
permissions
-rw-r--r--

Ignore runtime configuration files generated during quality assurance.

     1 /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
     2 /* This Source Code Form is subject to the terms of the Mozilla Public
     3  * License, v. 2.0. If a copy of the MPL was not distributed with this
     4  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
     6 #ifndef nsIComboboxControlFrame_h___
     7 #define nsIComboboxControlFrame_h___
     9 #include "nsQueryFrame.h"
    11 /** 
    12   * nsIComboboxControlFrame is the interface for comboboxes.
    13   */
    14 class nsIComboboxControlFrame : public nsQueryFrame
    15 {
    16 public:
    17   NS_DECL_QUERYFRAME_TARGET(nsIComboboxControlFrame)
    19   /**
    20    * Indicates whether the list is dropped down
    21    */
    22   virtual bool IsDroppedDown() = 0;
    24   /**
    25    * Shows or hides the drop down
    26    */
    27   virtual void ShowDropDown(bool aDoDropDown) = 0;
    29   /**
    30    * Gets the Drop Down List
    31    */
    32   virtual nsIFrame* GetDropDown() = 0;
    34   /**
    35    * Sets the Drop Down List
    36    */
    37   virtual void SetDropDown(nsIFrame* aDropDownFrame) = 0;
    39   /**
    40    * Tells the combobox to roll up
    41    */
    42   virtual void RollupFromList() = 0;
    44   /**
    45    * Redisplay the selected text (will do nothing if text has not changed).
    46    * This method might destroy this frame or any others that happen to be
    47    * around.  It might even run script.
    48    */
    49   NS_IMETHOD RedisplaySelectedText() = 0;
    51   /**
    52    * Method for the listbox to set and get the recent index
    53    */
    54   virtual int32_t UpdateRecentIndex(int32_t aIndex) = 0;
    56   /**
    57    * Notification that the content has been reset
    58    */
    59   virtual void OnContentReset() = 0;
    61   /**
    62    * This returns the index of the item that is currently being displayed
    63    * in the display area. It may differ from what the currently Selected index
    64    * is in in the dropdown.
    65    *
    66    * Detailed explanation: 
    67    * When the dropdown is dropped down via a mouse click and the user moves the mouse 
    68    * up and down without clicking, the currently selected item is being tracking inside 
    69    * the dropdown, but the combobox is not being updated. When the user selects items
    70    * with the arrow keys, the combobox is being updated. So when the user clicks outside
    71    * the dropdown and it needs to roll up it has to decide whether to keep the current 
    72    * selection or not. This method is used to get the current index in the combobox to
    73    * compare it to the current index in the dropdown to see if the combox has been updated
    74    * and that way it knows whether to "cancel" the current selection residing in the 
    75    * dropdown. Or whether to leave the selection alone.
    76    */
    77   virtual int32_t GetIndexOfDisplayArea() = 0;
    78 };
    80 #endif

mercurial