LCOV - code coverage report
Current view: directory - objdir/dist/include/mozilla - LookAndFeel.h (source / functions) Found Hit Coverage
Test: app.info Lines: 13 0 0.0 %
Date: 2012-06-02 Functions: 3 0 0.0 %

       1                 : /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
       2                 : /* ***** BEGIN LICENSE BLOCK *****
       3                 :  * Version: MPL 1.1/GPL 2.0/LGPL 2.1
       4                 :  *
       5                 :  * The contents of this file are subject to the Mozilla Public License Version
       6                 :  * 1.1 (the "License"); you may not use this file except in compliance with
       7                 :  * the License. You may obtain a copy of the License at
       8                 :  * http://www.mozilla.org/MPL/
       9                 :  *
      10                 :  * Software distributed under the License is distributed on an "AS IS" basis,
      11                 :  * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
      12                 :  * for the specific language governing rights and limitations under the
      13                 :  * License.
      14                 :  *
      15                 :  * The Original Code is mozilla.org code.
      16                 :  *
      17                 :  * The Initial Developer of the Original Code is
      18                 :  * Netscape Communications Corporation.
      19                 :  * Portions created by the Initial Developer are Copyright (C) 1998
      20                 :  * the Initial Developer. All Rights Reserved.
      21                 :  *
      22                 :  * Contributor(s):
      23                 :  *
      24                 :  * Alternatively, the contents of this file may be used under the terms of
      25                 :  * either the GNU General Public License Version 2 or later (the "GPL"), or
      26                 :  * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
      27                 :  * in which case the provisions of the GPL or the LGPL are applicable instead
      28                 :  * of those above. If you wish to allow use of your version of this file only
      29                 :  * under the terms of either the GPL or the LGPL, and not to allow others to
      30                 :  * use your version of this file under the terms of the MPL, indicate your
      31                 :  * decision by deleting the provisions above and replace them with the notice
      32                 :  * and other provisions required by the GPL or the LGPL. If you do not delete
      33                 :  * the provisions above, a recipient may use your version of this file under
      34                 :  * the terms of any one of the MPL, the GPL or the LGPL.
      35                 :  *
      36                 :  * ***** END LICENSE BLOCK ***** */
      37                 : 
      38                 : #ifndef __LookAndFeel
      39                 : #define __LookAndFeel
      40                 : 
      41                 : #ifndef MOZILLA_INTERNAL_API
      42                 : #error "This header is only usable from within libxul (MOZILLA_INTERNAL_API)."
      43                 : #endif
      44                 : 
      45                 : #include "nsDebug.h"
      46                 : #include "nsColor.h"
      47                 : 
      48                 : struct gfxFontStyle;
      49                 : 
      50                 : namespace mozilla {
      51                 : 
      52                 : class LookAndFeel
      53                 : {
      54                 : public:
      55                 :   // When modifying this list, also modify nsXPLookAndFeel::sColorPrefs
      56                 :   // in widget/xpwidgts/nsXPLookAndFeel.cpp.
      57                 :   enum ColorID {
      58                 : 
      59                 :     // WARNING : NO NEGATIVE VALUE IN THIS ENUMERATION
      60                 :     // see patch in bug 57757 for more information
      61                 : 
      62                 :     eColorID_WindowBackground,
      63                 :     eColorID_WindowForeground,
      64                 :     eColorID_WidgetBackground,
      65                 :     eColorID_WidgetForeground,
      66                 :     eColorID_WidgetSelectBackground,
      67                 :     eColorID_WidgetSelectForeground,
      68                 :     eColorID_Widget3DHighlight,
      69                 :     eColorID_Widget3DShadow,
      70                 :     eColorID_TextBackground,
      71                 :     eColorID_TextForeground,
      72                 :     eColorID_TextSelectBackground,
      73                 :     eColorID_TextSelectForeground,
      74                 :     eColorID_TextSelectBackgroundDisabled,
      75                 :     eColorID_TextSelectBackgroundAttention,
      76                 :     eColorID_TextHighlightBackground,
      77                 :     eColorID_TextHighlightForeground,
      78                 : 
      79                 :     eColorID_IMERawInputBackground,
      80                 :     eColorID_IMERawInputForeground,
      81                 :     eColorID_IMERawInputUnderline,
      82                 :     eColorID_IMESelectedRawTextBackground,
      83                 :     eColorID_IMESelectedRawTextForeground,
      84                 :     eColorID_IMESelectedRawTextUnderline,
      85                 :     eColorID_IMEConvertedTextBackground,
      86                 :     eColorID_IMEConvertedTextForeground,
      87                 :     eColorID_IMEConvertedTextUnderline,
      88                 :     eColorID_IMESelectedConvertedTextBackground,
      89                 :     eColorID_IMESelectedConvertedTextForeground,
      90                 :     eColorID_IMESelectedConvertedTextUnderline,
      91                 : 
      92                 :     eColorID_SpellCheckerUnderline,
      93                 : 
      94                 :     // New CSS 2 color definitions
      95                 :     eColorID_activeborder,
      96                 :     eColorID_activecaption,
      97                 :     eColorID_appworkspace,
      98                 :     eColorID_background,
      99                 :     eColorID_buttonface,
     100                 :     eColorID_buttonhighlight,
     101                 :     eColorID_buttonshadow,
     102                 :     eColorID_buttontext,
     103                 :     eColorID_captiontext,
     104                 :     eColorID_graytext,
     105                 :     eColorID_highlight,
     106                 :     eColorID_highlighttext,
     107                 :     eColorID_inactiveborder,
     108                 :     eColorID_inactivecaption,
     109                 :     eColorID_inactivecaptiontext,
     110                 :     eColorID_infobackground,
     111                 :     eColorID_infotext,
     112                 :     eColorID_menu,
     113                 :     eColorID_menutext,
     114                 :     eColorID_scrollbar,
     115                 :     eColorID_threeddarkshadow,
     116                 :     eColorID_threedface,
     117                 :     eColorID_threedhighlight,
     118                 :     eColorID_threedlightshadow,
     119                 :     eColorID_threedshadow,
     120                 :     eColorID_window,
     121                 :     eColorID_windowframe,
     122                 :     eColorID_windowtext,
     123                 : 
     124                 :     eColorID__moz_buttondefault,
     125                 :     // Colors which will hopefully become CSS3
     126                 :     eColorID__moz_field,
     127                 :     eColorID__moz_fieldtext,
     128                 :     eColorID__moz_dialog,
     129                 :     eColorID__moz_dialogtext,
     130                 :     // used to highlight valid regions to drop something onto
     131                 :     eColorID__moz_dragtargetzone,
     132                 : 
     133                 :     // used to cell text background, selected but not focus
     134                 :     eColorID__moz_cellhighlight,
     135                 :     // used to cell text, selected but not focus
     136                 :     eColorID__moz_cellhighlighttext,
     137                 :     // used to html select cell text background, selected but not focus
     138                 :     eColorID__moz_html_cellhighlight,
     139                 :     // used to html select cell text, selected but not focus
     140                 :     eColorID__moz_html_cellhighlighttext,
     141                 :     // used to button text background, when mouse is over
     142                 :     eColorID__moz_buttonhoverface,
     143                 :     // used to button text, when mouse is over
     144                 :     eColorID__moz_buttonhovertext,
     145                 :     // used to menu item background, when mouse is over
     146                 :     eColorID__moz_menuhover,
     147                 :     // used to menu item text, when mouse is over
     148                 :     eColorID__moz_menuhovertext,
     149                 :     // used to menu bar item text
     150                 :     eColorID__moz_menubartext,
     151                 :     // used to menu bar item text, when mouse is over
     152                 :     eColorID__moz_menubarhovertext,
     153                 :     // On platforms where these colors are the same as
     154                 :     // -moz-field, use -moz-fieldtext as foreground color
     155                 :     eColorID__moz_eventreerow,
     156                 :     eColorID__moz_oddtreerow,
     157                 : 
     158                 :     // colors needed by the Mac OS X theme
     159                 : 
     160                 :     // background color of chrome toolbars in active windows
     161                 :     eColorID__moz_mac_chrome_active,
     162                 :     // background color of chrome toolbars in inactive windows
     163                 :     eColorID__moz_mac_chrome_inactive,
     164                 :     //ring around text fields and lists
     165                 :     eColorID__moz_mac_focusring,
     166                 :     //colour used when mouse is over a menu item
     167                 :     eColorID__moz_mac_menuselect,
     168                 :     //colour used to do shadows on menu items
     169                 :     eColorID__moz_mac_menushadow,
     170                 :     // color used to display text for disabled menu items
     171                 :     eColorID__moz_mac_menutextdisable,
     172                 :     //colour used to display text while mouse is over a menu item
     173                 :     eColorID__moz_mac_menutextselect,
     174                 :     // text color of disabled text on toolbars
     175                 :     eColorID__moz_mac_disabledtoolbartext,
     176                 : 
     177                 :     //new in 10.2
     178                 : 
     179                 :     //active list highlight
     180                 :     eColorID__moz_mac_alternateprimaryhighlight,
     181                 :     //inactive light hightlight
     182                 :     eColorID__moz_mac_secondaryhighlight,
     183                 : 
     184                 :     // vista rebars
     185                 : 
     186                 :     // media rebar text
     187                 :     eColorID__moz_win_mediatext,
     188                 :     // communications rebar text
     189                 :     eColorID__moz_win_communicationstext,
     190                 : 
     191                 :     // Hyperlink color extracted from the system, not affected by the
     192                 :     // browser.anchor_color user pref.
     193                 :     // There is no OS-specified safe background color for this text, 
     194                 :     // but it is used regularly within Windows and the Gnome DE on Dialog and
     195                 :     // Window colors.
     196                 :     eColorID__moz_nativehyperlinktext,
     197                 : 
     198                 :     // Combo box widgets
     199                 :     eColorID__moz_comboboxtext,
     200                 :     eColorID__moz_combobox,
     201                 : 
     202                 :     // keep this one last, please
     203                 :     eColorID_LAST_COLOR
     204                 :   };
     205                 : 
     206                 :   // When modifying this list, also modify nsXPLookAndFeel::sIntPrefs
     207                 :   // in widget/xpwidgts/nsXPLookAndFeel.cpp.
     208                 :   enum IntID {
     209                 :     // default, may be overriden by OS
     210                 :     eIntID_CaretBlinkTime,
     211                 :     // pixel width of caret
     212                 :     eIntID_CaretWidth,
     213                 :     // show the caret when text is selected?
     214                 :     eIntID_ShowCaretDuringSelection,
     215                 :     // select textfields when focused via tab/accesskey?
     216                 :     eIntID_SelectTextfieldsOnKeyFocus,
     217                 :     // delay before submenus open
     218                 :     eIntID_SubmenuDelay,
     219                 :     // can popups overlap menu/task bar?
     220                 :     eIntID_MenusCanOverlapOSBar,
     221                 :     // skip navigating to disabled menu item?
     222                 :     eIntID_SkipNavigatingDisabledMenuItem,
     223                 :     // begin a drag if the mouse is moved further than the threshold while the
     224                 :     // button is down
     225                 :     eIntID_DragThresholdX,
     226                 :     eIntID_DragThresholdY,
     227                 :     // Accessibility theme being used?
     228                 :     eIntID_UseAccessibilityTheme,
     229                 : 
     230                 :     // position of scroll arrows in a scrollbar
     231                 :     eIntID_ScrollArrowStyle,
     232                 :     // is scroll thumb proportional or fixed?
     233                 :     eIntID_ScrollSliderStyle,
     234                 : 
     235                 :     // each button can take one of four values:
     236                 :     eIntID_ScrollButtonLeftMouseButtonAction,
     237                 :     // 0 - scrolls one  line, 1 - scrolls one page
     238                 :     eIntID_ScrollButtonMiddleMouseButtonAction,
     239                 :     // 2 - scrolls to end, 3 - button ignored
     240                 :     eIntID_ScrollButtonRightMouseButtonAction,
     241                 : 
     242                 :     // delay for opening spring loaded folders
     243                 :     eIntID_TreeOpenDelay,
     244                 :     // delay for closing spring loaded folders
     245                 :     eIntID_TreeCloseDelay,
     246                 :     // delay for triggering the tree scrolling
     247                 :     eIntID_TreeLazyScrollDelay,
     248                 :     // delay for scrolling the tree
     249                 :     eIntID_TreeScrollDelay,
     250                 :     // the maximum number of lines to be scrolled at ones
     251                 :     eIntID_TreeScrollLinesMax,
     252                 :     // What type of tab-order to use
     253                 :     eIntID_TabFocusModel,
     254                 :     // Should menu items blink when they're chosen?
     255                 :     eIntID_ChosenMenuItemsShouldBlink,
     256                 : 
     257                 :     /*
     258                 :      * A Boolean value to determine whether the Windows default theme is
     259                 :      * being used.
     260                 :      *
     261                 :      * The value of this metric is not used on other platforms. These platforms
     262                 :      * should return NS_ERROR_NOT_IMPLEMENTED when queried for this metric.
     263                 :      */
     264                 :     eIntID_WindowsDefaultTheme,
     265                 : 
     266                 :     /*
     267                 :      * A Boolean value to determine whether the DWM compositor is being used
     268                 :      *
     269                 :      * This metric is not used on non-Windows platforms. These platforms
     270                 :      * should return NS_ERROR_NOT_IMPLEMENTED when queried for this metric.
     271                 :      */
     272                 :     eIntID_DWMCompositor,
     273                 : 
     274                 :     /*
     275                 :      * A Boolean value to determine whether Windows is themed (Classic vs.
     276                 :      * uxtheme)
     277                 :      *
     278                 :      * This is Windows-specific and is not implemented on other platforms
     279                 :      * (will return the default of NS_ERROR_FAILURE).
     280                 :      */
     281                 :     eIntID_WindowsClassic,
     282                 : 
     283                 :     /*
     284                 :      * A Boolean value to determine whether the device is a touch enabled
     285                 :      * device. Currently this is only supported by the Windows 7 Touch API.
     286                 :      *
     287                 :      * Platforms that do not support this metric should return
     288                 :      * NS_ERROR_NOT_IMPLEMENTED when queried for this metric.
     289                 :      */
     290                 :     eIntID_TouchEnabled,
     291                 : 
     292                 :     /*
     293                 :      * A Boolean value to determine whether the Mac graphite theme is
     294                 :      * being used.
     295                 :      *
     296                 :      * The value of this metric is not used on other platforms. These platforms
     297                 :      * should return NS_ERROR_NOT_IMPLEMENTED when queried for this metric.
     298                 :      */
     299                 :     eIntID_MacGraphiteTheme,
     300                 : 
     301                 :     /*
     302                 :      * A Boolean value to determine whether the Mac OS X Lion-specific theming
     303                 :      * should be used.
     304                 :      *
     305                 :      * The value of this metric is not used on non-Mac platforms. These
     306                 :      * platforms should return NS_ERROR_NOT_IMPLEMENTED when queried for this
     307                 :      * metric.
     308                 :      */
     309                 :     eIntID_MacLionTheme,
     310                 : 
     311                 :     /*
     312                 :      * A Boolean value to determine whether Mameo is using the new Fremantle
     313                 :      * theme.
     314                 :      *
     315                 :      * The value of this metric is not used on other platforms. These platforms
     316                 :      * should return NS_ERROR_NOT_IMPLEMENTED when queried for this metric.
     317                 :      */
     318                 :     eIntID_MaemoClassic,
     319                 : 
     320                 :     /*
     321                 :      * eIntID_AlertNotificationOrigin indicates from which corner of the
     322                 :      * screen alerts slide in, and from which direction (horizontal/vertical).
     323                 :      * 0, the default, represents bottom right, sliding vertically.
     324                 :      * Use any bitwise combination of the following constants:
     325                 :      * NS_ALERT_HORIZONTAL (1), NS_ALERT_LEFT (2), NS_ALERT_TOP (4).
     326                 :      *
     327                 :      *       6       4
     328                 :      *     +-----------+
     329                 :      *    7|           |5
     330                 :      *     |           |
     331                 :      *    3|           |1
     332                 :      *     +-----------+
     333                 :      *       2       0
     334                 :      */
     335                 :     eIntID_AlertNotificationOrigin,
     336                 : 
     337                 :     /**
     338                 :      * If true, clicking on a scrollbar (not as in dragging the thumb) defaults
     339                 :      * to scrolling the view corresponding to the clicked point. Otherwise, we
     340                 :      * only do so if the scrollbar is clicked using the middle mouse button or
     341                 :      * if shift is pressed when the scrollbar is clicked.
     342                 :      */
     343                 :     eIntID_ScrollToClick,
     344                 : 
     345                 :     /**
     346                 :      * IME and spell checker underline styles, the values should be
     347                 :      * NS_DECORATION_LINE_STYLE_*.  They are defined below.
     348                 :      */
     349                 :     eIntID_IMERawInputUnderlineStyle,
     350                 :     eIntID_IMESelectedRawTextUnderlineStyle,
     351                 :     eIntID_IMEConvertedTextUnderlineStyle,
     352                 :     eIntID_IMESelectedConvertedTextUnderline,
     353                 :     eIntID_SpellCheckerUnderlineStyle,
     354                 : 
     355                 :     /**
     356                 :      * If this metric != 0, show icons in menus.
     357                 :      */
     358                 :     eIntID_ImagesInMenus,
     359                 :     /**
     360                 :      * If this metric != 0, show icons in buttons.
     361                 :      */
     362                 :     eIntID_ImagesInButtons,
     363                 :     /**
     364                 :      * If this metric != 0, support window dragging on the menubar.
     365                 :      */
     366                 :     eIntID_MenuBarDrag,
     367                 :     /**
     368                 :      * Return the appropriate WindowsThemeIdentifier for the current theme.
     369                 :      */
     370                 :     eIntID_WindowsThemeIdentifier,
     371                 :     /**
     372                 :      * 0: scrollbar button repeats to scroll only when cursor is on the button.
     373                 :      * 1: scrollbar button repeats to scroll even if cursor is outside of it.
     374                 :      */
     375                 :     eIntID_ScrollbarButtonAutoRepeatBehavior,
     376                 :     /**
     377                 :      * Dealy before showing a tooltip.
     378                 :      */
     379                 :     eIntID_TooltipDelay
     380                 :   };
     381                 : 
     382                 :   /**
     383                 :    * Windows themes we currently detect.
     384                 :    */
     385                 :   enum WindowsTheme {
     386                 :     eWindowsTheme_Generic = 0, // unrecognized theme
     387                 :     eWindowsTheme_Classic,
     388                 :     eWindowsTheme_Aero,
     389                 :     eWindowsTheme_LunaBlue,
     390                 :     eWindowsTheme_LunaOlive,
     391                 :     eWindowsTheme_LunaSilver,
     392                 :     eWindowsTheme_Royale,
     393                 :     eWindowsTheme_Zune
     394                 :   };
     395                 : 
     396                 :   enum {
     397                 :     eScrollArrow_None = 0,
     398                 :     eScrollArrow_StartBackward = 0x1000,
     399                 :     eScrollArrow_StartForward = 0x0100,
     400                 :     eScrollArrow_EndBackward = 0x0010,
     401                 :     eScrollArrow_EndForward = 0x0001
     402                 :   };
     403                 : 
     404                 :   enum {
     405                 :     // single arrow at each end
     406                 :     eScrollArrowStyle_Single =
     407                 :       eScrollArrow_StartBackward | eScrollArrow_EndForward, 
     408                 :     // both arrows at bottom/right, none at top/left
     409                 :     eScrollArrowStyle_BothAtBottom =
     410                 :       eScrollArrow_EndBackward | eScrollArrow_EndForward,
     411                 :     // both arrows at both ends
     412                 :     eScrollArrowStyle_BothAtEachEnd =
     413                 :       eScrollArrow_EndBackward | eScrollArrow_EndForward |
     414                 :       eScrollArrow_StartBackward | eScrollArrow_StartForward,
     415                 :     // both arrows at top/left, none at bottom/right
     416                 :     eScrollArrowStyle_BothAtTop =
     417                 :       eScrollArrow_StartBackward | eScrollArrow_StartForward
     418                 :   };
     419                 : 
     420                 :   enum {
     421                 :     eScrollThumbStyle_Normal,
     422                 :     eScrollThumbStyle_Proportional
     423                 :   };
     424                 : 
     425                 :   // When modifying this list, also modify nsXPLookAndFeel::sFloatPrefs
     426                 :   // in widget/xpwidgts/nsXPLookAndFeel.cpp.
     427                 :   enum FloatID {
     428                 :     eFloatID_IMEUnderlineRelativeSize,
     429                 :     eFloatID_SpellCheckerUnderlineRelativeSize,
     430                 : 
     431                 :     // The width/height ratio of the cursor. If used, the CaretWidth int metric
     432                 :     // should be added to the calculated caret width.
     433                 :     eFloatID_CaretAspectRatio
     434                 :   };
     435                 : 
     436                 :   // These constants must be kept in 1:1 correspondence with the
     437                 :   // NS_STYLE_FONT_* system font constants.
     438                 :   enum FontID {
     439                 :     eFont_Caption = 1,     // css2
     440                 :     eFont_Icon,
     441                 :     eFont_Menu,
     442                 :     eFont_MessageBox,
     443                 :     eFont_SmallCaption,
     444                 :     eFont_StatusBar,
     445                 : 
     446                 :     eFont_Window,          // css3
     447                 :     eFont_Document,
     448                 :     eFont_Workspace,
     449                 :     eFont_Desktop,
     450                 :     eFont_Info,
     451                 :     eFont_Dialog,
     452                 :     eFont_Button,
     453                 :     eFont_PullDownMenu,
     454                 :     eFont_List,
     455                 :     eFont_Field,
     456                 : 
     457                 :     eFont_Tooltips,        // moz
     458                 :     eFont_Widget
     459                 :   };
     460                 : 
     461                 :   /**
     462                 :    * GetColor() return a native color value (might be overwritten by prefs) for
     463                 :    * aID.  Some platforms don't return an error even if the index doesn't
     464                 :    * match any system colors.  And also some platforms may initialize the
     465                 :    * return value even when it returns an error.  Therefore, if you want to
     466                 :    * use a color for the default value, you should use the other GetColor()
     467                 :    * which returns nscolor directly.
     468                 :    *
     469                 :    * NOTE:
     470                 :    *   eColorID_TextSelectForeground might return NS_DONT_CHANGE_COLOR.
     471                 :    *   eColorID_IME* might return NS_TRANSPARENT, NS_SAME_AS_FOREGROUND_COLOR or
     472                 :    *   NS_40PERCENT_FOREGROUND_COLOR.
     473                 :    *   These values have particular meaning.  Then, they are not an actual
     474                 :    *   color value.
     475                 :    */
     476                 :   static nsresult GetColor(ColorID aID, nscolor* aResult);
     477                 : 
     478                 :   /**
     479                 :    * GetInt() and GetFloat() return a int or float value for aID.  The result
     480                 :    * might be distance, time, some flags or a int value which has particular
     481                 :    * meaning.  See each document at definition of each ID for the detail.
     482                 :    * The result is always 0 when they return error.  Therefore, if you want to
     483                 :    * use a value for the default value, you should use the other method which
     484                 :    * returns int or float directly.
     485                 :    */
     486                 :   static nsresult GetInt(IntID aID, PRInt32* aResult);
     487                 :   static nsresult GetFloat(FloatID aID, float* aResult);
     488                 : 
     489               0 :   static nscolor GetColor(ColorID aID, nscolor aDefault = NS_RGB(0, 0, 0))
     490                 :   {
     491               0 :     nscolor result = NS_RGB(0, 0, 0);
     492               0 :     if (NS_FAILED(GetColor(aID, &result))) {
     493               0 :       return aDefault;
     494                 :     }
     495               0 :     return result;
     496                 :   }
     497                 : 
     498               0 :   static PRInt32 GetInt(IntID aID, PRInt32 aDefault = 0)
     499                 :   {
     500                 :     PRInt32 result;
     501               0 :     if (NS_FAILED(GetInt(aID, &result))) {
     502               0 :       return aDefault;
     503                 :     }
     504               0 :     return result;
     505                 :   }
     506                 : 
     507               0 :   static float GetFloat(FloatID aID, float aDefault = 0.0f)
     508                 :   {
     509                 :     float result;
     510               0 :     if (NS_FAILED(GetFloat(aID, &result))) {
     511               0 :       return aDefault;
     512                 :     }
     513               0 :     return result;
     514                 :   }
     515                 : 
     516                 :   /**
     517                 :    * Retrieve the name and style of a system-theme font.  Returns true
     518                 :    * if the system theme specifies this font, false if a default should
     519                 :    * be used.  In the latter case neither aName nor aStyle is modified.
     520                 :    *
     521                 :    * @param aID    Which system-theme font is wanted.
     522                 :    * @param aName  The name of the font to use.
     523                 :    * @param aStyle Styling to apply to the font.
     524                 :    */
     525                 :   static bool GetFont(FontID aID, nsString& aName, gfxFontStyle& aStyle);
     526                 : 
     527                 :   /**
     528                 :    * GetPasswordCharacter() returns a unicode character which should be used
     529                 :    * for a masked character in password editor.  E.g., '*'.
     530                 :    */
     531                 :   static PRUnichar GetPasswordCharacter();
     532                 : 
     533                 :   /**
     534                 :    * If the latest character in password field shouldn't be hidden by the
     535                 :    * result of GetPasswordCharacter(), GetEchoPassword() returns TRUE.
     536                 :    * Otherwise, FALSE.
     537                 :    */
     538                 :   static bool GetEchoPassword();
     539                 : 
     540                 :   /**
     541                 :    * When system look and feel is changed, Refresh() must be called.  Then,
     542                 :    * cached data would be released.
     543                 :    */
     544                 :   static void Refresh();
     545                 : };
     546                 : 
     547                 : } // namespace mozilla
     548                 : 
     549                 : // On the Mac, GetColor(eColorID_TextSelectForeground, color) returns this
     550                 : // constant to specify that the foreground color should not be changed
     551                 : // (ie. a colored text keeps its colors  when selected).
     552                 : // Of course if other plaforms work like the Mac, they can use it too.
     553                 : #define NS_DONT_CHANGE_COLOR    NS_RGB(0x01, 0x01, 0x01)
     554                 : 
     555                 : // ---------------------------------------------------------------------
     556                 : //  Special colors for eColorID_IME* and eColorID_SpellCheckerUnderline
     557                 : // ---------------------------------------------------------------------
     558                 : 
     559                 : // For background color only.
     560                 : #define NS_TRANSPARENT                NS_RGBA(0x01, 0x00, 0x00, 0x00)
     561                 : // For foreground color only.
     562                 : #define NS_SAME_AS_FOREGROUND_COLOR   NS_RGBA(0x02, 0x00, 0x00, 0x00)
     563                 : #define NS_40PERCENT_FOREGROUND_COLOR NS_RGBA(0x03, 0x00, 0x00, 0x00)
     564                 : 
     565                 : #define NS_IS_SELECTION_SPECIAL_COLOR(c) ((c) == NS_TRANSPARENT || \
     566                 :                                           (c) == NS_SAME_AS_FOREGROUND_COLOR || \
     567                 :                                           (c) == NS_40PERCENT_FOREGROUND_COLOR)
     568                 : 
     569                 : // ------------------------------------------
     570                 : //  Bits for eIntID_AlertNotificationOrigin
     571                 : // ------------------------------------------
     572                 : 
     573                 : #define NS_ALERT_HORIZONTAL 1
     574                 : #define NS_ALERT_LEFT       2
     575                 : #define NS_ALERT_TOP        4
     576                 : 
     577                 : #endif /* __LookAndFeel */

Generated by: LCOV version 1.7