LCOV - code coverage report
Current view: top level - widget/gtk - gtkdrawing.h (source / functions) Hit Total Coverage
Test: output.info Lines: 12 16 75.0 %
Date: 2017-07-14 16:53:18 Functions: 3 4 75.0 %
Legend: Lines: hit not hit

          Line data    Source code
       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/. */
       5             : 
       6             : /**
       7             :  * gtkdrawing.h: GTK widget rendering utilities
       8             :  *
       9             :  * gtkdrawing provides an API for rendering GTK widgets in the
      10             :  * current theme to a pixmap or window, without requiring an actual
      11             :  * widget instantiation, similar to the Macintosh Appearance Manager
      12             :  * or Windows XP's DrawThemeBackground() API.
      13             :  */
      14             : 
      15             : #ifndef _GTK_DRAWING_H_
      16             : #define _GTK_DRAWING_H_
      17             : 
      18             : #include <gdk/gdk.h>
      19             : #include <gtk/gtk.h>
      20             : 
      21             : #if (MOZ_WIDGET_GTK == 2)
      22             : #ifdef __cplusplus
      23             : extern "C" {
      24             : #endif /* __cplusplus */
      25             : #endif
      26             : 
      27             : /*** type definitions ***/
      28             : typedef struct {
      29             :   guint8 active;
      30             :   guint8 focused;
      31             :   guint8 inHover;
      32             :   guint8 disabled;
      33             :   guint8 isDefault;
      34             :   guint8 canDefault;
      35             :   /* The depressed state is for buttons which remain active for a longer period:
      36             :    * activated toggle buttons or buttons showing a popup menu. */
      37             :   guint8 depressed;
      38             :   gint32 curpos; /* curpos and maxpos are used for scrollbars */
      39             :   gint32 maxpos;
      40             : } GtkWidgetState;
      41             : 
      42             : /**
      43             :  * A size in the same GTK pixel units as GtkBorder and GdkRectangle.
      44             :  */
      45             : struct MozGtkSize {
      46             :   gint width;
      47             :   gint height;
      48             : 
      49          16 :   MozGtkSize& operator+=(const GtkBorder& aBorder)
      50             :   {
      51          16 :     width += aBorder.left + aBorder.right;
      52          16 :     height += aBorder.top + aBorder.bottom;
      53          16 :     return *this;
      54             :   }
      55          16 :   MozGtkSize operator+(const GtkBorder& aBorder) const
      56             :   {
      57          16 :     MozGtkSize result = *this;
      58          16 :     return result += aBorder;
      59             :   }
      60           0 :   void Include(MozGtkSize aOther)
      61             :   {
      62           0 :     width = std::max(width, aOther.width);
      63           0 :     height = std::max(height, aOther.height);
      64           0 :   }
      65           2 :   void Rotate()
      66             :   {
      67           2 :     gint tmp = width;
      68           2 :     width = height;
      69           2 :     height = tmp;
      70           2 :   }
      71             : };
      72             : 
      73             : typedef struct {
      74             :   bool initialized;
      75             :   struct {
      76             :     MozGtkSize scrollbar;
      77             :     MozGtkSize thumb;
      78             :     MozGtkSize button;
      79             :   } size;
      80             :   struct {
      81             :     GtkBorder scrollbar;
      82             :     GtkBorder track;
      83             :   } border;
      84             : } ScrollbarGTKMetrics;
      85             : 
      86             : typedef enum {
      87             :   MOZ_GTK_STEPPER_DOWN        = 1 << 0,
      88             :   MOZ_GTK_STEPPER_BOTTOM      = 1 << 1,
      89             :   MOZ_GTK_STEPPER_VERTICAL    = 1 << 2
      90             : } GtkScrollbarButtonFlags;
      91             : 
      92             : typedef enum {
      93             :   MOZ_GTK_TRACK_OPAQUE        = 1 << 0
      94             : } GtkScrollbarTrackFlags;
      95             : 
      96             : /** flags for tab state **/
      97             : typedef enum {
      98             :   /* first eight bits are used to pass a margin */
      99             :   MOZ_GTK_TAB_MARGIN_MASK     = 0xFF,
     100             :   /* the first tab in the group */
     101             :   MOZ_GTK_TAB_FIRST           = 1 << 9,
     102             :   /* the selected tab */
     103             :   MOZ_GTK_TAB_SELECTED        = 1 << 10
     104             : } GtkTabFlags;
     105             : 
     106             : /*** result/error codes ***/
     107             : #define MOZ_GTK_SUCCESS 0
     108             : #define MOZ_GTK_UNKNOWN_WIDGET -1
     109             : #define MOZ_GTK_UNSAFE_THEME -2
     110             : 
     111             : /*** checkbox/radio flags ***/
     112             : #define MOZ_GTK_WIDGET_CHECKED 1
     113             : #define MOZ_GTK_WIDGET_INCONSISTENT (1 << 1)
     114             : 
     115             : /*** widget type constants ***/
     116             : typedef enum {
     117             :   /* Paints a GtkButton. flags is a GtkReliefStyle. */
     118             :   MOZ_GTK_BUTTON,
     119             :   /* Paints a button with image and no text */
     120             :   MOZ_GTK_TOOLBAR_BUTTON,
     121             :   /* Paints a toggle button */
     122             :   MOZ_GTK_TOGGLE_BUTTON,
     123             :   /* Paints a button arrow */
     124             :   MOZ_GTK_BUTTON_ARROW,
     125             : 
     126             :   /* Paints the container part of a GtkCheckButton. */
     127             :   MOZ_GTK_CHECKBUTTON_CONTAINER,
     128             :   /* Paints a GtkCheckButton. flags is a boolean, 1=checked, 0=not checked. */
     129             :   MOZ_GTK_CHECKBUTTON,
     130             :   /* Paints the label of a GtkCheckButton (focus outline) */
     131             :   MOZ_GTK_CHECKBUTTON_LABEL,
     132             : 
     133             :   /* Paints the container part of a GtkRadioButton. */
     134             :   MOZ_GTK_RADIOBUTTON_CONTAINER,
     135             :   /* Paints a GtkRadioButton. flags is a boolean, 1=checked, 0=not checked. */
     136             :   MOZ_GTK_RADIOBUTTON,
     137             :   /* Paints the label of a GtkRadioButton (focus outline) */
     138             :   MOZ_GTK_RADIOBUTTON_LABEL,
     139             :   /**
     140             :    * Paints the button of a GtkScrollbar. flags is a GtkArrowType giving
     141             :    * the arrow direction.
     142             :    */
     143             :   MOZ_GTK_SCROLLBAR_BUTTON,
     144             : 
     145             :   /* Horizontal GtkScrollbar counterparts */
     146             :   MOZ_GTK_SCROLLBAR_HORIZONTAL,
     147             :   MOZ_GTK_SCROLLBAR_CONTENTS_HORIZONTAL,
     148             :   /* Paints the trough (track) of a GtkScrollbar. */
     149             :   MOZ_GTK_SCROLLBAR_TROUGH_HORIZONTAL,
     150             :   /* Paints the slider (thumb) of a GtkScrollbar. */
     151             :   MOZ_GTK_SCROLLBAR_THUMB_HORIZONTAL,
     152             : 
     153             :   /* Vertical GtkScrollbar counterparts */
     154             :   MOZ_GTK_SCROLLBAR_VERTICAL,
     155             :   MOZ_GTK_SCROLLBAR_CONTENTS_VERTICAL,
     156             :   MOZ_GTK_SCROLLBAR_TROUGH_VERTICAL,
     157             :   MOZ_GTK_SCROLLBAR_THUMB_VERTICAL,
     158             : 
     159             :   /* Paints a GtkScale. */
     160             :   MOZ_GTK_SCALE_HORIZONTAL,
     161             :   MOZ_GTK_SCALE_VERTICAL,
     162             :   /* Paints a GtkScale trough. */
     163             :   MOZ_GTK_SCALE_CONTENTS_HORIZONTAL,
     164             :   MOZ_GTK_SCALE_CONTENTS_VERTICAL,
     165             :   MOZ_GTK_SCALE_TROUGH_HORIZONTAL,
     166             :   MOZ_GTK_SCALE_TROUGH_VERTICAL,
     167             :   /* Paints a GtkScale thumb. */
     168             :   MOZ_GTK_SCALE_THUMB_HORIZONTAL,
     169             :   MOZ_GTK_SCALE_THUMB_VERTICAL,
     170             :   /* Paints a GtkSpinButton */
     171             :   MOZ_GTK_SPINBUTTON,
     172             :   MOZ_GTK_SPINBUTTON_UP,
     173             :   MOZ_GTK_SPINBUTTON_DOWN,
     174             :   MOZ_GTK_SPINBUTTON_ENTRY,
     175             :   /* Paints the gripper of a GtkHandleBox. */
     176             :   MOZ_GTK_GRIPPER,
     177             :   /* Paints a GtkEntry. */
     178             :   MOZ_GTK_ENTRY,
     179             :   /* Paints a GtkExpander. */
     180             :   MOZ_GTK_EXPANDER,
     181             :   /* Paints a GtkTextView or gets the style context corresponding to the
     182             :      root node of a GtkTextView. */
     183             :   MOZ_GTK_TEXT_VIEW,
     184             :   /* The "text" window or node of a GtkTextView */
     185             :   MOZ_GTK_TEXT_VIEW_TEXT,
     186             :   /* Paints a GtkOptionMenu. */
     187             :   MOZ_GTK_DROPDOWN,
     188             :   /* Paints a dropdown arrow (a GtkButton containing a down GtkArrow). */
     189             :   MOZ_GTK_DROPDOWN_ARROW,
     190             :   /* Paints an entry in an editable option menu */
     191             :   MOZ_GTK_DROPDOWN_ENTRY,
     192             : 
     193             :   /* Paints the background of a GtkHandleBox. */
     194             :   MOZ_GTK_TOOLBAR,
     195             :   /* Paints a toolbar separator */
     196             :   MOZ_GTK_TOOLBAR_SEPARATOR,
     197             :   /* Paints a GtkToolTip */
     198             :   MOZ_GTK_TOOLTIP,
     199             :   /* Paints a GtkBox from GtkToolTip  */
     200             :   MOZ_GTK_TOOLTIP_BOX,
     201             :   /* Paints a GtkLabel of GtkToolTip */
     202             :   MOZ_GTK_TOOLTIP_BOX_LABEL,
     203             :   /* Paints a GtkFrame (e.g. a status bar panel). */
     204             :   MOZ_GTK_FRAME,
     205             :   /* Paints the border of a GtkFrame */
     206             :   MOZ_GTK_FRAME_BORDER,
     207             :   /* Paints a resize grip for a GtkTextView */
     208             :   MOZ_GTK_RESIZER,
     209             :   /* Paints a GtkProgressBar. */
     210             :   MOZ_GTK_PROGRESSBAR,
     211             :   /* Paints a trough (track) of a GtkProgressBar */
     212             :   MOZ_GTK_PROGRESS_TROUGH,
     213             :   /* Paints a progress chunk of a GtkProgressBar. */
     214             :   MOZ_GTK_PROGRESS_CHUNK,
     215             :   /* Paints a progress chunk of an indeterminated GtkProgressBar. */
     216             :   MOZ_GTK_PROGRESS_CHUNK_INDETERMINATE,
     217             :   /* Paints a progress chunk of a vertical indeterminated GtkProgressBar. */
     218             :   MOZ_GTK_PROGRESS_CHUNK_VERTICAL_INDETERMINATE,
     219             :   /* Used as root style of whole GtkNotebook widget */
     220             :   MOZ_GTK_NOTEBOOK,
     221             :   /* Used as root style of active GtkNotebook area which contains tabs and arrows. */
     222             :   MOZ_GTK_NOTEBOOK_HEADER,
     223             :   /* Paints a tab of a GtkNotebook. flags is a GtkTabFlags, defined above. */
     224             :   MOZ_GTK_TAB_TOP,
     225             :   /* Paints a tab of a GtkNotebook. flags is a GtkTabFlags, defined above. */
     226             :   MOZ_GTK_TAB_BOTTOM,
     227             :   /* Paints the background and border of a GtkNotebook. */
     228             :   MOZ_GTK_TABPANELS,
     229             :   /* Paints a GtkArrow for a GtkNotebook. flags is a GtkArrowType. */
     230             :   MOZ_GTK_TAB_SCROLLARROW,
     231             :   /* Paints the expander and border of a GtkTreeView */
     232             :   MOZ_GTK_TREEVIEW,
     233             :   /* Paints the border of a GtkTreeView */
     234             :   MOZ_GTK_TREEVIEW_VIEW,
     235             :   /* Paints treeheader cells */
     236             :   MOZ_GTK_TREE_HEADER_CELL,
     237             :   /* Paints sort arrows in treeheader cells */
     238             :   MOZ_GTK_TREE_HEADER_SORTARROW,
     239             :   /* Paints an expander for a GtkTreeView */
     240             :   MOZ_GTK_TREEVIEW_EXPANDER,
     241             :   /* Paints the background of the menu bar. */
     242             :   MOZ_GTK_MENUBAR,
     243             :   /* Paints the background of menus, context menus. */
     244             :   MOZ_GTK_MENUPOPUP,
     245             :   /* Paints the arrow of menuitems that contain submenus */
     246             :   MOZ_GTK_MENUARROW,
     247             :   /* Paints an arrow in a toolbar button. flags is a GtkArrowType. */
     248             :   MOZ_GTK_TOOLBARBUTTON_ARROW,
     249             :   /* Paints items of menubar. */
     250             :   MOZ_GTK_MENUBARITEM,
     251             :   /* Paints items of popup menus. */
     252             :   MOZ_GTK_MENUITEM,
     253             :   /* Paints a menuitem with check indicator, or the gets the style context for
     254             :      a menuitem that contains a checkbox. */
     255             :   MOZ_GTK_CHECKMENUITEM,
     256             :   /* Gets the style context for a checkbox in a check menuitem. */
     257             :   MOZ_GTK_CHECKMENUITEM_INDICATOR,
     258             :   MOZ_GTK_RADIOMENUITEM,
     259             :   MOZ_GTK_RADIOMENUITEM_INDICATOR,
     260             :   MOZ_GTK_MENUSEPARATOR,
     261             :   /* GtkVPaned base class */
     262             :   MOZ_GTK_SPLITTER_HORIZONTAL,
     263             :   /* GtkHPaned base class */
     264             :   MOZ_GTK_SPLITTER_VERTICAL,
     265             :   /* Paints a GtkVPaned separator */
     266             :   MOZ_GTK_SPLITTER_SEPARATOR_HORIZONTAL,
     267             :   /* Paints a GtkHPaned separator */
     268             :   MOZ_GTK_SPLITTER_SEPARATOR_VERTICAL,
     269             :   /* Paints the background of a window, dialog or page. */
     270             :   MOZ_GTK_WINDOW,
     271             :   /* Window container for all widgets */
     272             :   MOZ_GTK_WINDOW_CONTAINER,
     273             :   /* Paints a GtkInfoBar, for notifications. */
     274             :   MOZ_GTK_INFO_BAR,
     275             :   /* Used for widget tree construction. */
     276             :   MOZ_GTK_COMBOBOX,
     277             :   /* Paints a GtkComboBox button widget. */
     278             :   MOZ_GTK_COMBOBOX_BUTTON,
     279             :   /* Paints a GtkComboBox arrow widget. */
     280             :   MOZ_GTK_COMBOBOX_ARROW,
     281             :   /* Paints a GtkComboBox separator widget. */
     282             :   MOZ_GTK_COMBOBOX_SEPARATOR,
     283             :   /* Used for widget tree construction. */
     284             :   MOZ_GTK_COMBOBOX_ENTRY,
     285             :   /* Paints a GtkComboBox entry widget. */
     286             :   MOZ_GTK_COMBOBOX_ENTRY_TEXTAREA,
     287             :   /* Paints a GtkComboBox entry button widget. */
     288             :   MOZ_GTK_COMBOBOX_ENTRY_BUTTON,
     289             :   /* Paints a GtkComboBox entry arrow widget. */
     290             :   MOZ_GTK_COMBOBOX_ENTRY_ARROW,
     291             :   /* Used for scrolled window shell. */
     292             :   MOZ_GTK_SCROLLED_WINDOW,
     293             : 
     294             :   MOZ_GTK_WIDGET_NODE_COUNT
     295             : } WidgetNodeType;
     296             : 
     297             : /*** General library functions ***/
     298             : /**
     299             :  * Initializes the drawing library.  You must call this function
     300             :  * prior to using any other functionality.
     301             :  * returns: MOZ_GTK_SUCCESS if there were no errors
     302             :  *          MOZ_GTK_UNSAFE_THEME if the current theme engine is known
     303             :  *                               to crash with gtkdrawing.
     304             :  */
     305             : gint moz_gtk_init();
     306             : 
     307             : /**
     308             :  * Updates the drawing library when the theme changes.
     309             :  */
     310             : void moz_gtk_refresh();
     311             : 
     312             : /**
     313             :  * Perform cleanup of the drawing library. You should call this function
     314             :  * when your program exits, or you no longer need the library.
     315             :  *
     316             :  * returns: MOZ_GTK_SUCCESS if there was no error, an error code otherwise
     317             :  */
     318             : gint moz_gtk_shutdown();
     319             : 
     320             : #if (MOZ_WIDGET_GTK == 2)
     321             : /**
     322             :  * Retrieves the colormap to use for drawables passed to moz_gtk_widget_paint.
     323             :  */
     324             : GdkColormap* moz_gtk_widget_get_colormap();
     325             : #endif
     326             : 
     327             : /*** Widget drawing ***/
     328             : #if (MOZ_WIDGET_GTK == 2)
     329             : /**
     330             :  * Paint a widget in the current theme.
     331             :  * widget:    a constant giving the widget to paint
     332             :  * drawable:  the drawable to paint to;
     333             :  *            it's colormap must be moz_gtk_widget_get_colormap().
     334             :  * rect:      the bounding rectangle for the widget
     335             :  * cliprect:  a clipprect rectangle for this painting operation
     336             :  * state:     the state of the widget.  ignored for some widgets.
     337             :  * flags:     widget-dependant flags; see the WidgetNodeType definition.
     338             :  * direction: the text direction, to draw the widget correctly LTR and RTL.
     339             :  */
     340             : gint
     341             : moz_gtk_widget_paint(WidgetNodeType widget, GdkDrawable* drawable,
     342             :                      GdkRectangle* rect, GdkRectangle* cliprect,
     343             :                      GtkWidgetState* state, gint flags,
     344             :                      GtkTextDirection direction);
     345             : #else
     346             : gint
     347             : moz_gtk_widget_paint(WidgetNodeType widget, cairo_t *cr,
     348             :                      GdkRectangle* rect,
     349             :                      GtkWidgetState* state, gint flags,
     350             :                      GtkTextDirection direction);
     351             : #endif
     352             : 
     353             : 
     354             : /*** Widget metrics ***/
     355             : /**
     356             :  * Get the border size of a widget
     357             :  * left/right:  [OUT] the widget's left/right border
     358             :  * top/bottom:  [OUT] the widget's top/bottom border
     359             :  * direction:   the text direction for the widget.  Callers depend on this
     360             :  *              being used only for MOZ_GTK_DROPDOWN widgets, and cache
     361             :  *              results for other widget types across direction values.
     362             :  *
     363             :  * returns:    MOZ_GTK_SUCCESS if there was no error, an error code otherwise
     364             :  */
     365             : gint moz_gtk_get_widget_border(WidgetNodeType widget, gint* left, gint* top,
     366             :                                gint* right, gint* bottom, GtkTextDirection direction);
     367             : 
     368             : /**
     369             :  * Get the border size of a notebook tab
     370             :  * left/right:  [OUT] the tab's left/right border
     371             :  * top/bottom:  [OUT] the tab's top/bottom border
     372             :  * direction:   the text direction for the widget
     373             :  * flags:       tab-dependant flags; see the GtkTabFlags definition.
     374             :  * widget:      tab widget
     375             :  *
     376             :  * returns:    MOZ_GTK_SUCCESS if there was no error, an error code otherwise
     377             :  */
     378             : gint
     379             : moz_gtk_get_tab_border(gint* left, gint* top, gint* right, gint* bottom, 
     380             :                        GtkTextDirection direction, GtkTabFlags flags,
     381             :                        WidgetNodeType widget);
     382             : 
     383             : /**
     384             :  * Get the desired size of a GtkCheckButton
     385             :  * indicator_size:     [OUT] the indicator size
     386             :  * indicator_spacing:  [OUT] the spacing between the indicator and its
     387             :  *                     container
     388             :  *
     389             :  * returns:    MOZ_GTK_SUCCESS if there was no error, an error code otherwise
     390             :  */
     391             : gint
     392             : moz_gtk_checkbox_get_metrics(gint* indicator_size, gint* indicator_spacing);
     393             : 
     394             : /**
     395             :  * Get the desired size of a GtkRadioButton
     396             :  * indicator_size:     [OUT] the indicator size
     397             :  * indicator_spacing:  [OUT] the spacing between the indicator and its
     398             :  *                     container
     399             :  *
     400             :  * returns:    MOZ_GTK_SUCCESS if there was no error, an error code otherwise
     401             :  */
     402             : gint
     403             : moz_gtk_radio_get_metrics(gint* indicator_size, gint* indicator_spacing);
     404             : 
     405             : /** Get the extra size for the focus ring for outline:auto.
     406             :  * widget:             [IN]  the widget to get the focus metrics for    
     407             :  * focus_h_width:      [OUT] the horizontal width
     408             :  * focus_v_width:      [OUT] the vertical width
     409             :  *
     410             :  * returns:    MOZ_GTK_SUCCESS
     411             :  */
     412             : gint
     413             : moz_gtk_get_focus_outline_size(gint* focus_h_width, gint* focus_v_width);
     414             : 
     415             : /** Get the horizontal padding for the menuitem widget or checkmenuitem widget.
     416             :  * horizontal_padding: [OUT] The left and right padding of the menuitem or checkmenuitem
     417             :  *
     418             :  * returns:    MOZ_GTK_SUCCESS if there was no error, an error code otherwise
     419             :  */
     420             : gint
     421             : moz_gtk_menuitem_get_horizontal_padding(gint* horizontal_padding);
     422             : 
     423             : gint
     424             : moz_gtk_checkmenuitem_get_horizontal_padding(gint* horizontal_padding);
     425             : 
     426             : /**
     427             :  * Some GTK themes draw their indication for the default button outside
     428             :  * the button (e.g. the glow in New Wave). This gets the extra space necessary.
     429             :  *
     430             :  * border_top:  [OUT] extra space to add above
     431             :  * border_left:  [OUT] extra space to add to the left
     432             :  * border_bottom:  [OUT] extra space to add underneath
     433             :  * border_right:  [OUT] extra space to add to the right
     434             :  *
     435             :  * returns:   MOZ_GTK_SUCCESS if there was no error, an error code otherwise
     436             :  */
     437             : gint
     438             : moz_gtk_button_get_default_overflow(gint* border_top, gint* border_left,
     439             :                                     gint* border_bottom, gint* border_right);
     440             : 
     441             : /**
     442             :  * Gets the minimum size of a GtkScale.
     443             :  * orient:           [IN] the scale orientation
     444             :  * scale_width:      [OUT] the width of the scale
     445             :  * scale_height:     [OUT] the height of the scale
     446             :  */
     447             : void
     448             : moz_gtk_get_scale_metrics(GtkOrientation orient, gint* scale_width,
     449             :                           gint* scale_height);
     450             : 
     451             : /**
     452             :  * Get the desired size of a GtkScale thumb
     453             :  * orient:           [IN] the scale orientation
     454             :  * thumb_length:     [OUT] the length of the thumb
     455             :  * thumb_height:     [OUT] the height of the thumb
     456             :  *
     457             :  * returns:    MOZ_GTK_SUCCESS if there was no error, an error code otherwise
     458             :  */
     459             : gint
     460             : moz_gtk_get_scalethumb_metrics(GtkOrientation orient, gint* thumb_length, gint* thumb_height);
     461             : 
     462             : /**
     463             :  * Get the metrics in GTK pixels for a scrollbar.
     464             :  */
     465             : const ScrollbarGTKMetrics*
     466             : GetScrollbarMetrics(GtkOrientation aOrientation);
     467             : 
     468             : /**
     469             :  * Get the desired size of a dropdown arrow button
     470             :  * width:   [OUT] the desired width
     471             :  * height:  [OUT] the desired height
     472             :  *
     473             :  * returns:    MOZ_GTK_SUCCESS if there was no error, an error code otherwise
     474             :  */
     475             : gint moz_gtk_get_combo_box_entry_button_size(gint* width, gint* height);
     476             : 
     477             : /**
     478             :  * Get the desired size of a scroll arrow widget
     479             :  * width:   [OUT] the desired width
     480             :  * height:  [OUT] the desired height
     481             :  *
     482             :  * returns:    MOZ_GTK_SUCCESS if there was no error, an error code otherwise
     483             :  */
     484             : gint moz_gtk_get_tab_scroll_arrow_size(gint* width, gint* height);
     485             : 
     486             : /**
     487             :  * Get the desired size of an arrow in a button
     488             :  *
     489             :  * widgetType: [IN]  the widget for which to get the arrow size
     490             :  * width:      [OUT] the desired width
     491             :  * height:     [OUT] the desired height
     492             :  */
     493             : void
     494             : moz_gtk_get_arrow_size(WidgetNodeType widgetType,
     495             :                        gint* width, gint* height);
     496             : 
     497             : /**
     498             :  * Get the minimum height of a entry widget
     499             :  * size:    [OUT] the minimum height
     500             :  *
     501             :  */
     502             : void moz_gtk_get_entry_min_height(gint* height);
     503             : 
     504             : /**
     505             :  * Get the desired size of a toolbar separator
     506             :  * size:    [OUT] the desired width
     507             :  *
     508             :  * returns: MOZ_GTK_SUCCESS if there was no error, an error code otherwise
     509             :  */
     510             : gint moz_gtk_get_toolbar_separator_width(gint* size);
     511             : 
     512             : /**
     513             :  * Get the size of a regular GTK expander that shows/hides content
     514             :  * size:    [OUT] the size of the GTK expander, size = width = height.
     515             :  *
     516             :  * returns:    MOZ_GTK_SUCCESS if there was no error, an error code otherwise
     517             :  */
     518             : gint moz_gtk_get_expander_size(gint* size);
     519             : 
     520             : /**
     521             :  * Get the size of a treeview's expander (we call them twisties)
     522             :  * size:    [OUT] the size of the GTK expander, size = width = height.
     523             :  *
     524             :  * returns:    MOZ_GTK_SUCCESS if there was no error, an error code otherwise
     525             :  */
     526             : gint moz_gtk_get_treeview_expander_size(gint* size);
     527             : 
     528             : /**
     529             :  * Get the desired height of a menu separator
     530             :  * size:    [OUT] the desired height
     531             :  *
     532             :  * returns: MOZ_GTK_SUCCESS if there was no error, an error code otherwise
     533             :  */
     534             : gint moz_gtk_get_menu_separator_height(gint* size);
     535             : 
     536             : /**
     537             :  * Get the desired size of a splitter
     538             :  * orientation:   [IN]  GTK_ORIENTATION_HORIZONTAL or GTK_ORIENTATION_VERTICAL
     539             :  * size:          [OUT] width or height of the splitter handle
     540             :  *
     541             :  * returns:    MOZ_GTK_SUCCESS if there was no error, an error code otherwise
     542             :  */
     543             : gint moz_gtk_splitter_get_metrics(gint orientation, gint* size);
     544             : 
     545             : /**
     546             :  * Get the YTHICKNESS of a tab (notebook extension).
     547             :  */
     548             : gint
     549             : moz_gtk_get_tab_thickness(WidgetNodeType aNodeType);
     550             : 
     551             : #if (MOZ_WIDGET_GTK == 2)
     552             : #ifdef __cplusplus
     553             : }
     554             : #endif /* __cplusplus */
     555             : #endif
     556             : 
     557             : #endif

Generated by: LCOV version 1.13