00001 /* 00002 // 00003 // BEGIN SONGBIRD GPL 00004 // 00005 // This file is part of the Songbird web player. 00006 // 00007 // Copyright(c) 2005-2008 POTI, Inc. 00008 // http://songbirdnest.com 00009 // 00010 // This file may be licensed under the terms of of the 00011 // GNU General Public License Version 2 (the "GPL"). 00012 // 00013 // Software distributed under the License is distributed 00014 // on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, either 00015 // express or implied. See the GPL for the specific language 00016 // governing rights and limitations. 00017 // 00018 // You should have received a copy of the GPL along with this 00019 // program. If not, go to http://www.gnu.org/licenses/gpl.html 00020 // or write to the Free Software Foundation, Inc., 00021 // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 00022 // 00023 // END SONGBIRD GPL 00024 // 00025 */ 00026 #include "nsISupports.idl" 00027 #include "nsIDOMMouseEvent.idl" 00028 00043 [scriptable, uuid(9646A45E-8E0C-49F9-901B-5FC6E4E522DB)] 00044 interface sbINativeWindowManager : nsISupports 00045 { 00046 /* constants representing resize directions */ 00047 const PRInt32 DIRECTION_NORTH_WEST = 7; 00048 const PRInt32 DIRECTION_NORTH = 8; 00049 const PRInt32 DIRECTION_NORTH_EAST = 9; 00050 const PRInt32 DIRECTION_WEST = 4; 00051 const PRInt32 DIRECTION_EAST = 6; 00052 const PRInt32 DIRECTION_SOUTH_WEST = 1; 00053 const PRInt32 DIRECTION_SOUTH = 2; 00054 const PRInt32 DIRECTION_SOUTH_EAST = 3; 00055 00056 /* \brief ask the window manager to begin a resize of @aWindow, 00057 * based on the mouse event in @aEvent in the direction 00058 * indicated by @aDirection 00059 */ 00060 void beginResizeDrag(in nsISupports aWindow, in nsIDOMMouseEvent aEvent, in PRInt32 aDirection); 00061 00062 /* \brief is beginResizeDrag() supported by this implementation? */ 00063 readonly attribute boolean supportsResizeDrag; 00064 00065 /* \brief set's the minimum size of @aWindow in the window manager to 00066 * @aMinimumWidth x @aMinimumHeight 00067 */ 00068 void setMinimumWindowSize(in nsISupports aWindow, in PRInt32 aMinimumWidth, in PRInt32 aMinimumHeight); 00069 00070 /* \brief set's the maximum size of @aWindow in the window manager to 00071 * @aMaximumWidth x @aMaximumHeight 00072 */ 00073 void setMaximumWindowSize(in nsISupports aWindow, in PRInt32 aMaximumWidth, in PRInt32 aMaximumHeight); 00074 00075 /* \brief is setMinimumWindowSize() supported by this implementation? */ 00076 readonly attribute boolean supportsMinimumWindowSize; 00077 00078 /* \brief is setMaximumWindowSize() supported by this implementation? */ 00079 readonly attribute boolean supportsMaximumWindowSize; 00080 00081 /* \brief asks the window manager to keep @aWindow above all other windows */ 00082 void setOnTop(in nsISupports aWindow, in boolean aOnTop); 00083 00084 /* \brief asks the window manager to enable shadowing on the window */ 00085 void setShadowing(in nsISupports aWindow, in boolean aShadowing); 00086 00087 /* \brief is setOnTop() supported by this implementation? */ 00088 readonly attribute boolean supportsOnTop; 00089 00090 /* \brief is setShadowing() supported by this implementation? */ 00091 readonly attribute boolean supportsShadowing; 00092 };