<?xml version="1.0"?>
<metadata>

<!-- out parameters -->
<rule>
  <class name="GtkTextBuffer">
    <method>GetIterAtLineOffset</method>
    <method>GetIterAtLineIndex</method>
    <method>GetIterAtOffset</method>
    <method>GetIterAtLine</method>
    <method>GetStartIter</method>
    <method>GetEndIter</method>
    <method>GetBounds</method>
    <method>GetIterAtMark</method>
    <method>GetIterAtChildAnchor</method>
    <method>GetSelectionBounds</method>
  </class>
  <class name="GtkTextLayout">
    <method>GetIterAtLine</method>
  </class>
  <class name="GtkTextView">
    <method>GetIterAtLocation</method>
    <method>GetLineAtY</method>
  </class>
  <data>
    <attribute target="param">
      <filter level="type">GtkTextIter*</filter>
      <name>pass_as</name>
      <value>out</value>
    </attribute>
  </data>
</rule>
<rule>
  <class name="GtkTextView">
    <method>GetLineYrange</method>
    <method>GetLineAtY</method>
    <method>BufferToWindowCoords</method>
    <method>WindowToBufferCoords</method>
  </class>
  <data>
    <attribute target="param">
      <filter level="type">gint*</filter>
      <name>pass_as</name>
      <value>out</value>
    </attribute>
  </data>
</rule>
<rule>
  <class name="GtkEditable">
    <method>InsertText</method>
  </class>
  <data>
    <attribute target="param">
      <filter level="type">gint*</filter>
      <name>pass_as</name>
      <value>ref</value>
    </attribute>
  </data>
</rule>
<rule>
  <class name="GtkListStore">
    <method>Append</method>
    <method>Insert</method>
    <method>InsertAfter</method>
    <method>InsertBefore</method>
    <method>Prepend</method>
    <method>Remove</method>
  </class>
  <data>
    <attribute target="param">
      <filter level="name">iter</filter>
      <name>pass_as</name>
      <value>out</value>
    </attribute>
  </data>
</rule>
<rule>
  <class name="GtkListStore">
    <method>SetColumnTypes</method>
  </class>
  <data>
    <attribute target="param">
      <filter level="name">types</filter>
      <name>array</name>
      <value>true</value>
    </attribute>
  </data>
</rule>
<rule>
  <class name="GtkTreeStore">
    <method>SetColumnTypes</method>
  </class>
  <data>
    <attribute target="param">
      <filter level="name">types</filter>
      <name>array</name>
      <value>true</value>
    </attribute>
  </data>
</rule>
<rule>
  <class name="GtkTreeModelSort">
    <method>ConvertChildIterToIter</method>
   </class>
   <data>
     <attribute target="param">
       <filter level="name">sort_iter</filter>
       <name>pass_as</name>
       <value>out</value>
     </attribute>
   </data>
</rule>
<rule>
  <class name="GtkTreeModel">
    <method>GetIter</method>
    <method>GetIterFirst</method>
    <method>GetIterFromString</method>
    <method>IterChildren</method>
    <method>IterNext</method>
    <method>IterNthChild</method>
    <method>IterParent</method>
  </class>
  <data>
    <attribute target="param">
      <filter level="name">iter</filter>
      <name>pass_as</name>
      <value>out</value>
    </attribute>
  </data>
</rule>
<rule>
  <class name="GtkTreeModel">
    <method>GetValue</method>
  </class>
  <data>
    <attribute target="param">
      <filter level="name">value</filter>
      <name>pass_as</name>
      <value>out</value>
    </attribute>
  </data>
</rule>
<rule>
  <class name="GtkTreeModelSort">
    <method>ConvertIterToChildIter</method>
   </class>
   <data>
     <attribute target="param">
       <filter level="name">child_iter</filter>
       <name>pass_as</name>
       <value>out</value>
     </attribute>
   </data>
</rule>
<rule>
  <class name="GtkTreeSelection">
    <method>GetSelected</method>
   </class>
   <data>
    <attribute target="method">
      <name>hidden</name>
      <value>1</value>
    </attribute>
   </data>
</rule>
<rule>
  <class name="GtkTreeStore">
    <method>Append</method>
    <method>Insert</method>
    <method>InsertAfter</method>
    <method>InsertBefore</method>
    <method>Prepend</method>
    <method>Remove</method>
  </class>
  <data>
    <attribute target="param">
      <filter level="name">iter</filter>
      <name>pass_as</name>
      <value>out</value>
    </attribute>
  </data>
</rule>
<rule>
  <class name="GtkSpinButton">
    <method>GetIncrements</method>
    <method>GetRange</method>
  </class>
  <data>
    <attribute target="param">
      <filter level="type">gdouble*</filter>
      <name>pass_as</name>
      <value>out</value>
    </attribute>
  </data>
</rule>
<rule>
  <class name="GtkScrolledWindow">
    <method>GetPolicy</method>
  </class>
  <data>
    <attribute target="param">
      <filter level="type">GtkPolicyType*</filter>
      <name>pass_as</name>
      <value>out</value>
    </attribute>
  </data>
</rule>
<rule>
  <class name="GtkLayout">
    <method>GetSize</method>
  </class>
  <data>
    <attribute target="param">
      <filter level="type">guint*</filter>
      <name>pass_as</name>
      <value>out</value>
    </attribute>
  </data>
</rule>
<rule>
  <class name="GtkRuler">
    <method>GetRange</method>
  </class>
  <data>
    <attribute target="param">
      <filter level="type">gdouble*</filter>
      <name>pass_as</name>
      <value>out</value>
    </attribute>
  </data>
</rule>
<rule>
  <class name="GtkWindow">
    <method>GetFrameDimensions</method>
  </class>
  <data>
    <attribute target="param">
      <filter level="type">gint*</filter>
      <name>pass_as</name>
      <value>out</value>
    </attribute>
  </data>
</rule>
<rule>
  <class name="GtkCellRenderer">
    <method>GetSize</method>
    <method>GetFixedSize</method>
  </class>
  <data>
    <attribute target="param">
      <filter level="type">gint*</filter>
      <name>pass_as</name>
      <value>out</value>
    </attribute>
  </data>
</rule>
<rule>
  <class name="GtkCalendar">
    <method>GetDate</method>
  </class>
  <data>
    <attribute target="param">
      <filter level="type">guint*</filter>
      <name>pass_as</name>
      <value>out</value>
    </attribute>
  </data>
</rule>
<rule>
  <class name="GtkEditable">
    <method>GetSelectionBounds</method>
    <method>GetLayoutOffsets</method>
  </class>
  <data>
    <attribute target="param">
      <filter level="type">gint*</filter>
      <name>pass_as</name>
      <value>out</value>
    </attribute>
  </data>
</rule>


<!-- variable arguments -->
<rule>
  <class name="GtkTreeStore">
    <constructor>gtk_tree_store_newv</constructor>
  </class>
  <data>
    <attribute target="parameters">
      <name>va_type</name>
      <value>length_param</value>
    </attribute>
  </data>
</rule>
<rule>
  <class name="GtkListStore">
    <constructor>gtk_list_store_newv</constructor>
  </class>
  <data>
    <attribute target="parameters">
      <name>va_type</name>
      <value>length_param</value>
    </attribute>
  </data>
</rule>

<!-- misc -->
<rule>
  <class name="GtkFileSelection">
    <method>GetSelections</method>
  </class>
  <data>
    <attribute target="return">
     <name>array</name>
     <value>1</value>
    </attribute>
 </data>
</rule>


<!-- constructor collision hints -->
<rule>
  <class name="GtkButton">
    <constructor>gtk_button_new_with_mnemonic</constructor>
  </class>
  <class name="GtkCheckButton">
    <constructor>gtk_check_button_new_with_mnemonic</constructor>
  </class>
  <class name="GtkRadioButton">
    <constructor>gtk_radio_button_new_with_mnemonic</constructor>
  </class>
  <class name="GtkToggleButton">
    <constructor>gtk_toggle_button_new_with_mnemonic</constructor>
  </class>
  <class name="GtkLabel">
    <constructor>gtk_label_new</constructor>
  </class>
  <class name="GtkMenuItem">
    <constructor>gtk_menu_item_new_with_mnemonic</constructor>
  </class>
  <class name="GtkCheckMenuItem">
    <constructor>gtk_check_menu_item_new_with_mnemonic</constructor>
  </class>
  <class name="GtkRadioMenuItem">
    <constructor>gtk_radio_menu_item_new_with_mnemonic</constructor>
  </class>
  <class name="GtkImageMenuItem">
    <constructor>gtk_image_menu_item_new_with_mnemonic</constructor>
  </class>
  <data>
    <attribute target="method">
      <name>preferred</name>
      <value>1</value>
    </attribute>
  </data>
</rule>

<!-- renames -->
<rule>
  <class name="GtkEditable">
    <method>GetEditable</method>
  </class>
  <data>
    <attribute target="method">
      <name>name</name>
      <value>GetIsEditable</value>
    </attribute>
  </data>
</rule>
<rule>
  <class name="GtkEditable">
    <method>SetEditable</method>
  </class>
  <data>
    <attribute target="method">
      <name>name</name>
      <value>SetIsEditable</value>
    </attribute>
  </data>
</rule>
<rule>
  <class name="GtkContainer">
    <signal>Add</signal>
  </class>
  <data>
    <attribute target="signal">
      <name>name</name>
      <value>Added</value>
    </attribute>
  </data>
</rule>
<rule>
  <class name="GtkContainer">
    <signal>Remove</signal>
  </class>
  <data>
    <attribute target="signal">
      <name>name</name>
      <value>Removed</value>
    </attribute>
  </data>
</rule>
<rule>
  <class name="GtkEditable">
    <signal>InsertText</signal>
  </class>
  <data>
    <attribute target="signal">
      <name>name</name>
      <value>TextInserted</value>
    </attribute>
  </data>
</rule>
<rule>
  <class name="GtkEditable">
    <signal>DeleteText</signal>
  </class>
  <data>
    <attribute target="signal">
      <name>name</name>
      <value>TextDeleted</value>
    </attribute>
  </data>
</rule>
<rule>
  <class name="GtkIMContext">
    <signal>DeleteSurrounding</signal>
  </class>
  <data>
    <attribute target="signal">
      <name>name</name>
      <value>SurroundingDeleted</value>
    </attribute>
  </data>
</rule>
<rule>
  <class name="GtkWidget">
    <signal>Show</signal>
  </class>
  <data>
    <attribute target="signal">
      <name>name</name>
      <value>Shown</value>
    </attribute>
  </data>
</rule>
<rule>
  <class name="GtkWidget">
    <signal>Hide</signal>
  </class>
  <data>
    <attribute target="signal">
      <name>name</name>
      <value>Hidden</value>
    </attribute>
  </data>
</rule>
<rule>
  <class name="GtkWidget">
    <signal>Map</signal>
  </class>
  <data>
    <attribute target="signal">
      <name>name</name>
      <value>Mapped</value>
    </attribute>
  </data>
</rule>
<rule>
  <class name="GtkWidget">
    <signal>Unmap</signal>
  </class>
  <data>
    <attribute target="signal">
      <name>name</name>
      <value>Unmapped</value>
    </attribute>
  </data>
</rule>
<rule>
  <class name="GtkWidget">
    <signal>Realize</signal>
  </class>
  <data>
    <attribute target="signal">
      <name>name</name>
      <value>Realized</value>
    </attribute>
  </data>
</rule>
<rule>
  <class name="GtkWidget">
    <signal>Unrealize</signal>
  </class>
  <data>
    <attribute target="signal">
      <name>name</name>
      <value>Unrealized</value>
    </attribute>
  </data>
</rule>
<rule>
  <class name="GtkWidget">
    <signal>GrabFocus</signal>
  </class>
  <data>
    <attribute target="signal">
      <name>name</name>
      <value>FocusGrabbed</value>
    </attribute>
  </data>
</rule>
<rule>
  <class name="GtkWidget">
    <signal>Focus</signal>
  </class>
  <data>
    <attribute target="signal">
      <name>name</name>
      <value>Focused</value>
    </attribute>
  </data>
</rule>
<rule>
  <class name="GtkWidget">
    <signal>SizeAllocate</signal>
  </class>
  <data>
    <attribute target="signal">
      <name>name</name>
      <value>SizeAllocated</value>
    </attribute>
  </data>
</rule>
<rule>
  <class name="GtkWidget">
    <signal>MnemonicActivate</signal>
  </class>
  <data>
    <attribute target="signal">
      <name>name</name>
      <value>MnemonicActivated</value>
    </attribute>
  </data>
</rule>
<rule>
  <class name="GtkWidget">
    <signal>SizeRequest</signal>
  </class>
  <data>
    <attribute target="signal">
      <name>name</name>
      <value>SizeRequested</value>
    </attribute>
  </data>
</rule>
<rule>
  <class name="GtkWidget">
    <signal>ChildNotify</signal>
  </class>
  <data>
    <attribute target="signal">
      <name>name</name>
      <value>ChildNotified</value>
    </attribute>
  </data>
</rule>
<rule>
  <class name="GtkWidget">
    <signal>ShowHelp</signal>
  </class>
  <data>
    <attribute target="signal">
      <name>name</name>
      <value>HelpShown</value>
    </attribute>
  </data>
</rule>
<rule>
  <class name="GtkWidget">
    <method>Event</method>
  </class>
  <class name="GtkTextTag">
    <method>Event</method>
  </class>
  <data>
    <attribute target="method">
      <name>name</name>
      <value>ProcessEvent</value>
    </attribute>
  </data>
</rule>
<rule>
  <class name="GtkTextBuffer">
    <signal>InsertPixbuf</signal>
  </class>
  <data>
    <attribute target="signal">
      <name>name</name>
      <value>PixbufInserted</value>
    </attribute>
  </data>
</rule>
<rule>
  <class name="GtkTextBuffer">
    <signal>ApplyTag</signal>
  </class>
  <data>
    <attribute target="signal">
      <name>name</name>
      <value>TagApplied</value>
    </attribute>
  </data>
</rule>
<rule>
  <class name="GtkTextBuffer">
    <signal>RemoveTag</signal>
  </class>
  <data>
    <attribute target="signal">
      <name>name</name>
      <value>TagRemoved</value>
    </attribute>
  </data>
</rule>
<rule>
  <class name="GtkTextBuffer">
    <signal>InsertChildAnchor</signal>
  </class>
  <data>
    <attribute target="signal">
      <name>name</name>
      <value>ChildAnchorInserted</value>
    </attribute>
  </data>
</rule>
<rule>
  <class name="GtkTextBuffer">
    <signal>RemoveChildAnchor</signal>
  </class>
  <data>
    <attribute target="signal">
      <name>name</name>
      <value>ChildAnchorRemoved</value>
    </attribute>
  </data>
</rule>
<rule>
  <class name="GtkTextBuffer">
    <method>GetInsert</method>
  </class>
  <data>
    <attribute target="method">
      <name>name</name>
      <value>GetInsertMark</value>
    </attribute>
  </data>
</rule>
<rule>
  <class name="GtkItem">
    <signal>Select</signal>
  </class>
  <data>
    <attribute target="signal">
      <name>name</name>
      <value>Selected</value>
    </attribute>
  </data>
</rule>
<rule>
  <class name="GtkItem">
    <signal>Deselect</signal>
  </class>
  <data>
    <attribute target="signal">
      <name>name</name>
      <value>Deselected</value>
    </attribute>
  </data>
</rule>
<rule>
  <class name="GtkItem">
    <signal>Toggle</signal>
  </class>
  <data>
    <attribute target="signal">
      <name>name</name>
      <value>Toggled</value>
    </attribute>
  </data>
</rule>
<rule>
  <class name="GtkList">
    <signal>SelectChild</signal>
  </class>
  <data>
    <attribute target="signal">
      <name>name</name>
      <value>ChildSelected</value>
    </attribute>
  </data>
</rule>
<rule>
  <class name="GtkList">
    <signal>UnselectChild</signal>
  </class>
  <data>
    <attribute target="signal">
      <name>name</name>
      <value>ChildUnselected</value>
    </attribute>
  </data>
</rule>
<rule>
  <class name="GtkCList">
    <signal>SelectRow</signal>
  </class>
  <data>
    <attribute target="signal">
      <name>name</name>
      <value>RowSelected</value>
    </attribute>
  </data>
</rule>
<rule>
  <class name="GtkCList">
    <signal>UnselectRow</signal>
  </class>
  <data>
    <attribute target="signal">
      <name>name</name>
      <value>RowUnselected</value>
    </attribute>
  </data>
</rule>

<rule>
  <class name="GtkTree">
    <signal>SelectChild</signal>
  </class>
  <data>
    <attribute target="signal">
      <name>name</name>
      <value>ChildSelected</value>
    </attribute>
  </data>
</rule>
<rule>
  <class name="GtkTree">
    <signal>UnselectChild</signal>
  </class>
  <data>
    <attribute target="signal">
      <name>name</name>
      <value>ChildUnselected</value>
    </attribute>
  </data>
</rule>

<rule>
  <class name="GtkTipsQuery">
    <signal>StartQuery</signal>
  </class>
  <data>
    <attribute target="signal">
      <name>name</name>
      <value>QueryStarted</value>
    </attribute>
  </data>
</rule>
<rule>
  <class name="GtkTipsQuery">
    <signal>StopQuery</signal>
  </class>
  <data>
    <attribute target="signal">
      <name>name</name>
      <value>QueryStopped</value>
    </attribute>
  </data>
</rule>
<rule>
  <class name="GtkTreeItem">
    <signal>Collapse</signal>
  </class>
  <data>
    <attribute target="signal">
      <name>name</name>
      <value>Collapsed</value>
    </attribute>
  </data>
</rule>
<rule>
  <class name="GtkTreeItem">
    <signal>Expand</signal>
  </class>
  <data>
    <attribute target="signal">
      <name>name</name>
      <value>Expanded</value>
    </attribute>
  </data>
</rule>
<rule>
  <class name="GtkContainer">
    <signal>SetFocusChild</signal>
  </class>
  <data>
    <attribute target="signal">
      <name>name</name>
      <value>FocusChildSet</value>
    </attribute>
  </data>
</rule>
<rule>
  <class name="GtkEntry">
    <signal>PasteClipboard</signal>
  </class>
  <data>
    <attribute target="signal">
      <name>name</name>
      <value>ClipboardPasted</value>
    </attribute>
  </data>
</rule>
<rule>
  <class name="GtkEntry">
    <signal>CutClipboard</signal>
  </class>
  <data>
    <attribute target="signal">
      <name>name</name>
      <value>ClipboardCut</value>
    </attribute>
  </data>
</rule>
<rule>
  <class name="GtkEntry">
    <signal>CopyClipboard</signal>
  </class>
  <data>
    <attribute target="signal">
      <name>name</name>
      <value>ClipboardCopied</value>
    </attribute>
  </data>
</rule>
<rule>
  <class name="GtkOldEditable">
    <signal>PasteClipboard</signal>
  </class>
  <data>
    <attribute target="signal">
      <name>name</name>
      <value>ClipboardPasted</value>
    </attribute>
  </data>
</rule>
<rule>
  <class name="GtkOldEditable">
    <signal>CutClipboard</signal>
  </class>
  <data>
    <attribute target="signal">
      <name>name</name>
      <value>ClipboardCut</value>
    </attribute>
  </data>
</rule>
<rule>
  <class name="GtkOldEditable">
    <signal>CopyClipboard</signal>
  </class>
  <data>
    <attribute target="signal">
      <name>name</name>
      <value>ClipboardCopied</value>
    </attribute>
  </data>
</rule>
<rule>
  <class name="GtkMenuItem">
    <signal>Activate</signal>
  </class>
  <class name="GtkButton">
    <signal>Activate</signal>
  </class>
  <class name="GtkOldEditable">
    <signal>Activate</signal>
  </class>
  <class name="GtkEntry">
    <signal>Activate</signal>
  </class>
  <data>
    <attribute target="signal">
      <name>name</name>
      <value>Activated</value>
    </attribute>
  </data>
</rule>
<rule>
  <class name="GtkMenuItem">
    <signal>Deactivate</signal>
  </class>
  <data>
    <attribute target="signal">
      <name>name</name>
      <value>Deactivated</value>
    </attribute>
  </data>
</rule>
<rule>
  <class name="GtkMenuItem">
    <signal>Deactivate</signal>
  </class>
  <data>
    <attribute target="signal">
      <name>name</name>
      <value>Deactivated</value>
    </attribute>
  </data>
</rule>
<rule>
  <class name="GtkMenuItem">
    <signal>ToggleSizeRequest</signal>
  </class>
  <data>
    <attribute target="signal">
      <name>name</name>
      <value>ToggleSizeRequested</value>
    </attribute>
  </data>
</rule>
<rule>
  <class name="GtkMenuItem">
    <signal>ToggleSizeAllocate</signal>
  </class>
  <data>
    <attribute target="signal">
      <name>name</name>
      <value>ToggleSizeAllocated</value>
    </attribute>
  </data>
</rule>
<rule>
  <class name="GtkMenuItem">
    <signal>RemoveWidget</signal>
  </class>
  <data>
    <attribute target="signal">
      <name>name</name>
      <value>WidgetRemoved</value>
    </attribute>
  </data>
</rule>
<rule>
  <class name="GtkMenuItem">
    <signal>SizeAllocate</signal>
  </class>
  <data>
    <attribute target="signal">
      <name>name</name>
      <value>SizeAllocated</value>
    </attribute>
  </data>
</rule>
<rule>
  <class name="GtkMenuItem">
    <signal>MnemonicActivate</signal>
  </class>
  <data>
    <attribute target="signal">
      <name>name</name>
      <value>MnemonicActivated</value>
    </attribute>
  </data>
</rule>
<rule>
  <class name="GtkMenuItem">
    <signal>SizeRequest</signal>
  </class>
  <data>
    <attribute target="signal">
      <name>name</name>
      <value>SizeRequested</value>
    </attribute>
  </data>
</rule>
<rule>
  <class name="GtkMenuItem">
    <signal>ChildNotify</signal>
  </class>
  <data>
    <attribute target="signal">
      <name>name</name>
      <value>ChildNotified</value>
    </attribute>
  </data>
</rule>
<rule>
  <class name="GtkToggleButton">
    <method>Toggled</method>
  </class>
  <data>
    <attribute target="method">
      <name>name</name>
      <value>Toggle</value>
    </attribute>
  </data>
</rule>
<rule>
  <class name="GtkButton">
    <method>Pressed</method>
  </class>
  <data>
    <attribute target="method">
      <name>name</name>
      <value>Press</value>
    </attribute>
  </data>
</rule>
<rule>
  <class name="GtkButton">
    <method>Clicked</method>
  </class>
  <data>
    <attribute target="method">
      <name>name</name>
      <value>Click</value>
    </attribute>
  </data>
</rule>
<rule>
  <class name="GtkButton">
    <method>Released</method>
  </class>
  <data>
    <attribute target="method">
      <name>name</name>
      <value>Release</value>
    </attribute>
  </data>
</rule>
<rule>
  <class name="GtkButton">
    <signal>Enter</signal>
  </class>
  <data>
    <attribute target="signal">
      <name>name</name>
      <value>Entered</value>
    </attribute>
  </data>
</rule>
<rule>
  <class name="GtkButton">
    <signal>Leave</signal>
  </class>
  <data>
    <attribute target="signal">
      <name>name</name>
      <value>Left</value>
    </attribute>
  </data>
</rule>
<rule>
  <class name="GtkMenuShell">
    <signal>Deactivate</signal>
  </class>
  <data>
    <attribute target="signal">
      <name>name</name>
      <value>Deactivated</value>
    </attribute>
  </data>
</rule>
<rule>
  <class name="GtkCellEditable">
    <signal>RemoveWidget</signal>
  </class>
  <data>
    <attribute target="signal">
      <name>name</name>
      <value>WidgetRemoved</value>
    </attribute>
  </data>
</rule>
<rule>
  <class name="GtkCellEditable">
    <method>EditingDone</method>
  </class>
  <data>
    <attribute target="method">
      <name>name</name>
      <value>FinishEditing</value>
    </attribute>
  </data>
</rule>
<rule>
  <class name="GtkWindow">
    <signal>ActivateDefault</signal>
  </class>
  <data>
    <attribute target="signal">
      <name>name</name>
      <value>DefaultActivated</value>
    </attribute>
  </data>
</rule>
<rule>
  <class name="GtkWindow">
    <signal>ActivateFocus</signal>
  </class>
  <data>
    <attribute target="signal">
      <name>name</name>
      <value>FocusActivated</value>
    </attribute>
  </data>
</rule>
<rule>
  <class name="GtkWindow">
    <method>GetPosition</method>
  </class>
  <data>
    <attribute target="param">
      <filter level="type">gint*</filter>
      <name>pass_as</name>
      <value>out</value>
    </attribute>
  </data>
</rule>
<rule>
  <class name="GtkWindow">
    <method>GetSize</method>
    <method>GetDefaultSize</method>
  </class>
  <data>
    <attribute target="param">
      <filter level="type">gint*</filter>
      <name>pass_as</name>
      <value>out</value>
    </attribute>
  </data>
</rule>
<rule>
  <class name="GtkAdjustment">
    <method>Changed</method>
  </class>
  <data>
    <attribute target="method">
      <name>name</name>
      <value>Change</value>
    </attribute>
  </data>
</rule>
<rule>
  <class name="GtkOldEditable">
    <method>Changed</method>
  </class>
  <data>
    <attribute target="method">
      <name>name</name>
      <value>Change</value>
    </attribute>
  </data>
</rule>

<rule>
  <class name="GtkAdjustment">
    <method>ValueChanged</method>
  </class>
  <data>
    <attribute target="method">
      <name>name</name>
      <value>ChangeValue</value>
    </attribute>
  </data>
</rule>
<rule>
  <class name="GtkObject">
    <signal>Destroy</signal>
  </class>
  <data>
    <attribute target="signal">
      <name>name</name>
      <value>Destroyed</value>
    </attribute>
  </data>
</rule>
<rule>
  <class name="GtkTreeView">
    <method>RowActivated</method>
  </class>
  <data>
    <attribute target="method">
      <name>name</name>
      <value>ActivateRow</value>
    </attribute>
  </data>
</rule>
<rule>
  <class name="GtkTreeView">
    <method>RowExpanded</method>
  </class>
  <data>
    <attribute target="method">
      <name>name</name>
      <value>RowExpand</value>
    </attribute>
  </data>
</rule>
<rule>
  <class name="GtkTreeModel">
    <method>RowDeleted</method>
  </class>
  <data>
    <attribute target="method">
      <name>name</name>
      <value>EmitRowDeleted</value>
    </attribute>
  </data>
</rule>
<rule>
  <class name="GtkTreeModel">
    <method>RowHasChildToggled</method>
  </class>
  <data>
    <attribute target="method">
      <name>name</name>
      <value>EmitRowHasChildToggled</value>
    </attribute>
  </data>
</rule>
<rule>
  <class name="GtkTreeModel">
    <method>RowInserted</method>
  </class>
  <data>
    <attribute target="method">
      <name>name</name>
      <value>EmitRowInserted</value>
    </attribute>
  </data>
</rule>
<rule>
  <class name="GtkTreeModel">
    <method>RowChanged</method>
  </class>
  <data>
    <attribute target="method">
      <name>name</name>
      <value>EmitRowChanged</value>
    </attribute>
  </data>
</rule>
<rule>
  <class name="GtkTreeModel">
    <method>RowsReordered</method>
  </class>
  <data>
    <attribute target="method">
      <name>name</name>
      <value>EmitRowsReordered</value>
    </attribute>
  </data>
</rule>
<rule>
  <class name="GtkTreeSortable">
    <method>SortColumnChanged</method>
  </class>
  <data>
    <attribute target="method">
      <name>name</name>
      <value>ChangeSortColumn</value>
    </attribute>
  </data>
</rule>
<rule>
  <class name="GtkDialog">
    <method>Response</method>
  </class>
  <data>
    <attribute target="method">
      <name>name</name>
      <value>Respond</value>
    </attribute>
  </data>
</rule>
<rule>
  <class name="GtkTextBuffer">
    <signal>EndUserAction</signal>
  </class>
  <data>
    <attribute target="signal">
      <name>name</name>
      <value>UserActionEnded</value>
    </attribute>
  </data>
</rule>
<rule>
  <class name="GtkTextBuffer">
    <signal>BeginUserAction</signal>
  </class>
  <data>
    <attribute target="signal">
      <name>name</name>
      <value>UserActionBegun</value>
    </attribute>
  </data>
</rule>
<rule>
  <class name="GtkCheckMenuItem">
    <method>Toggled</method>
  </class>
  <data>
    <attribute target="method">
      <name>name</name>
      <value>Toggle</value>
    </attribute>
  </data>
</rule>
<rule>
  <class name="GtkContainer">
    <signal>CheckResize</signal>
  </class>
  <data>
    <attribute target="signal">
      <name>name</name>
      <value>ResizeChecked</value>
    </attribute>
  </data>
</rule>
<rule>
  <class name="GtkTreeViewColumn">
    <method>Clicked</method>
  </class>
  <data>
    <attribute target="method">
      <name>name</name>
      <value>Click</value>
    </attribute>
  </data>
</rule>
<rule>
  <class name="GtkCList">
    <signal>RowMove</signal>
  </class>
  <data>
    <attribute target="signal">
      <name>name</name>
      <value>RowMoved</value>
    </attribute>
  </data>
</rule>
<rule>
  <class name="GtkCList">
    <signal>SelectAll</signal>
  </class>
  <data>
    <attribute target="signal">
      <name>name</name>
      <value>AllSelected</value>
    </attribute>
  </data>
</rule>
<rule>
  <class name="GtkCList">
    <signal>UndoSelection</signal>
  </class>
  <data>
    <attribute target="signal">
      <name>name</name>
      <value>SelectionUndone</value>
    </attribute>
  </data>
</rule>
<rule>
  <class name="GtkCList">
    <signal>UnselectAll</signal>
  </class>
  <data>
    <attribute target="signal">
      <name>name</name>
      <value>AllUnselected</value>
    </attribute>
  </data>
</rule>
<rule>
  <class name="GtkCList">
    <signal>SetScrollAdjustments</signal>
  </class>
  <class name="GtkLayout">
    <signal>SetScrollAdjustments</signal>
  </class>
  <class name="GtkText">
    <signal>SetScrollAdjustments</signal>
  </class>
  <class name="GtkTextView">
    <signal>SetScrollAdjustments</signal>
  </class>
  <class name="GtkTreeView">
    <signal>SetScrollAdjustments</signal>
  </class>
  <class name="GtkViewport">
    <signal>SetScrollAdjustments</signal>
  </class>
  <data>
    <attribute target="signal">
      <name>name</name>
      <value>ScrollAdjustmentsSet</value>
    </attribute>
  </data>
</rule>
<rule>
  <class name="GtkHTML">
    <signal>Command</signal>
  </class>
  <data>
    <attribute target="signal">
      <name>name</name>
      <value>OnCommand</value>
    </attribute>
  </data>
</rule>
<rule>
  <class name="GtkHTMLStream">
    <method>Write</method>
  </class>
  <data>
    <attribute target="param">
      <filter level="name">buffer</filter>
      <name>type</name>
      <value>const-guchar*</value>
    </attribute>
  </data>
</rule>
<rule>
  <class name="GtkHTMLStream">
    <method>Write</method>
  </class>
  <data>
    <attribute target="param">
      <filter level="name">buffer</filter>
      <name>array</name>
      <value>1</value>
    </attribute>
  </data>
</rule>

<!-- hides -->
<rule>
  <class name="GtkArrow">
    <method>Set</method>
   </class>
   <data>
    <attribute target="method">
      <name>hidden</name>
      <value>1</value>
    </attribute>
   </data>
</rule>
<rule>
  <class name="GtkClipboardClearFunc"/>
  <data>
    <attribute target="class">
      <name>hidden</name>
      <value>1</value>
    </attribute>
  </data>
</rule>
<rule>
  <class name="GtkClipboardGetFunc"/>
  <data>
    <attribute target="class">
      <name>hidden</name>
      <value>1</value>
    </attribute>
  </data>
</rule>
<rule>
  <class name="GtkWidget">
    <method>Destroyed</method>
    <method>Ref</method>
    <method>Unref</method>
  </class>
  <class name="GtkRcStyle">
    <method>Ref</method>
    <method>Unref</method>
  </class>
  <data>
    <attribute target="method">
      <name>hidden</name>
      <value>1</value>
    </attribute>
  </data>
</rule>
<rule>
  <class name="GtkWidget">
    <method>ListAccelClosures</method>
  </class>
  <!-- both temporarily disabled because we do not support
       Native->Managed delegates (only the other way around) -->
  <class name="GtkColorSelection">
    <method>SetChangePaletteHook</method>
  </class>
  <class name="GtkTreeView">
    <method>GetSearchEqualFunc</method>
  </class>
  <data>
    <attribute target="method">
      <name>hidden</name>
      <value>1</value>
    </attribute>
  </data>
</rule>
<rule>
  <class name="GtkSelectionData">
    <method>GetText</method>
    <method>SetText</method>
    <method>Set</method>
  </class>
  <data>
    <attribute target="method">
      <name>hidden</name>
      <value>1</value>
    </attribute>
  </data>
</rule>

<!-- overloads -->
<rule>
  <class name="GtkBox">
    <method>PackStartDefaults</method>
  </class>
  <data>
    <attribute target="method">
      <name>name</name>
      <value>PackStart</value>
    </attribute>
  </data>
</rule>
<rule>
  <class name="GtkBox">
    <method>PackEndDefaults</method>
  </class>
  <data>
    <attribute target="method">
      <name>name</name>
      <value>PackEnd</value>
    </attribute>
  </data>
</rule>
<rule>
  <class name="GtkTable">
    <method>AttachDefaults</method>
  </class>
  <data>
    <attribute target="method">
      <name>name</name>
      <value>Attach</value>
    </attribute>
  </data>
</rule>

<!-- disable default constructor -->
<rule>
  <class name="GtkScrolledWindow"/>
  <data>
    <attribute target="class">
      <name>disabledefaultconstructor</name>
      <value>1</value>
    </attribute>
  </data>
</rule>
<rule>
  <class name="GtkFrame"/>
  <data>
    <attribute target="class">
      <name>disabledefaultconstructor</name>
      <value>1</value>
    </attribute>
  </data>
</rule>

<!-- null args -->
<rule>
  <class name="GtkCList">
    <method>SetPixmap</method>
  </class>
  <data>
    <attribute target="param">
      <filter level="type">GdkBitmap*</filter>
      <name>null_ok</name>
      <value>1</value>
    </attribute>
  </data>
</rule>
<rule>
  <class name="GtkCTree">
    <method>InsertNode</method>
  </class>
  <data>
    <attribute target="param">
      <filter level="type">GdkPixmap*</filter>
      <name>null_ok</name>
      <value>1</value>
    </attribute>
  </data>
</rule>
<rule>
  <class name="GtkCTree">
    <method>InsertNode</method>
  </class>
  <data>
    <attribute target="param">
      <filter level="type">GdkBitmap*</filter>
      <name>null_ok</name>
      <value>1</value>
    </attribute>
  </data>
</rule>
<rule>
  <class name="GtkCTree">
    <method>Move</method>
  </class>
  <data>
    <attribute target="param">
      <filter level="type">GtkCTreeNode*</filter>
      <name>null_ok</name>
      <value>1</value>
    </attribute>
  </data>
</rule>
<rule>
  <class name="GtkCTree">
    <method>NodeSetPixmap</method>
  </class>
  <data>
    <attribute target="param">
      <filter level="type">GdkBitmap*</filter>
      <name>null_ok</name>
      <value>1</value>
    </attribute>
  </data>
</rule>
<rule>
  <class name="GtkCTree">
    <method>NodeSetPixtext</method>
  </class>
  <data>
    <attribute target="param">
      <filter level="type">GdkBitmap*</filter>
      <name>null_ok</name>
      <value>1</value>
    </attribute>
  </data>
</rule>
<rule>
  <class name="GtkCTree">
    <method>SetNodeInfo</method>
  </class>
  <data>
    <attribute target="param">
      <filter level="type">GdkPixmap*</filter>
      <name>null_ok</name>
      <value>1</value>
    </attribute>
  </data>
</rule>
<rule>
  <class name="GtkCTree">
    <method>SetNodeInfo</method>
  </class>
  <data>
    <attribute target="param">
      <filter level="type">GdkBitmap*</filter>
      <name>null_ok</name>
      <value>1</value>
    </attribute>
  </data>
</rule>
<rule>
  <class name="GtkDialog">
    <constructor>gtk_dialog_new_with_buttons</constructor>
  </class>
  <data>
    <attribute target="param">
      <filter level="type">GtkWindow*</filter>
      <name>null_ok</name>
      <value>1</value>
    </attribute>
  </data>
</rule>
<rule>
  <class name="GtkHScale">
    <constructor>gtk_hscale_new</constructor>
  </class>
  <data>
    <attribute target="param">
      <filter level="type">GtkAdjustment*</filter>
      <name>null_ok</name>
      <value>1</value>
    </attribute>
  </data>
</rule>
<rule>
  <class name="GtkHScrollbar">
    <constructor>gtk_hscrollbar_new</constructor>
  </class>
  <data>
    <attribute target="param">
      <filter level="type">GtkAdjustment*</filter>
      <name>null_ok</name>
      <value>1</value>
    </attribute>
  </data>
</rule>
<rule>
  <class name="GtkImage">
    <method>SetFromPixmap</method>
  </class>
  <data>
    <attribute target="param">
      <filter level="type">GdkBitmap*</filter>
      <name>null_ok</name>
      <value>1</value>
    </attribute>
  </data>
</rule>
<rule>
  <class name="GtkItemFactory">
    <constructor>gtk_item_factory_new</constructor>
  </class>
  <data>
    <attribute target="param">
      <filter level="type">GtkAccelGroup*</filter>
      <name>null_ok</name>
      <value>1</value>
    </attribute>
  </data>
</rule>
<rule>
  <class name="GtkLayout">
    <constructor>gtk_layout_new</constructor>
  </class>
  <data>
    <attribute target="param">
      <filter level="type">GtkAdjustment*</filter>
      <name>null_ok</name>
      <value>1</value>
    </attribute>
  </data>
</rule>
<rule>
  <class name="GtkLayout">
    <method>SetHadjustment</method>
  </class>
  <data>
    <attribute target="param">
      <filter level="type">GtkAdjustment*</filter>
      <name>null_ok</name>
      <value>1</value>
    </attribute>
  </data>
</rule>
<rule>
  <class name="GtkLayout">
    <method>SetVadjustment</method>
  </class>
  <data>
    <attribute target="param">
      <filter level="type">GtkAdjustment*</filter>
      <name>null_ok</name>
      <value>1</value>
    </attribute>
  </data>
</rule>
<rule>
  <class name="GtkMessageDialog">
    <constructor>gtk_message_dialog_new</constructor>
  </class>
  <data>
    <attribute target="param">
      <filter level="type">GtkWindow*</filter>
      <name>null_ok</name>
      <value>1</value>
    </attribute>
  </data>
</rule>
<rule>
  <class name="GtkPixmap">
    <constructor>gtk_pixmap_new</constructor>
  </class>
  <data>
    <attribute target="param">
      <filter level="type">GdkBitmap*</filter>
      <name>null_ok</name>
      <value>1</value>
    </attribute>
  </data>
</rule>
<rule>
  <class name="GtkPixmap">
    <method>Set</method>
  </class>
  <data>
    <attribute target="param">
      <filter level="type">GdkBitmap*</filter>
      <name>null_ok</name>
      <value>1</value>
    </attribute>
  </data>
</rule>
<rule>
  <class name="GtkProgressBar">
    <constructor>gtk_progress_bar_new_with_adjustment</constructor>
  </class>
  <data>
    <attribute target="param">
      <filter level="type">GtkAdjustment*</filter>
      <name>null_ok</name>
      <value>1</value>
    </attribute>
  </data>
</rule>
<rule>
  <class name="GtkScrolledWindow">
    <constructor>gtk_scrolled_window_new</constructor>
  </class>
  <data>
    <attribute target="param">
      <filter level="type">GtkAdjustment*</filter>
      <name>null_ok</name>
      <value>1</value>
    </attribute>
  </data>
</rule>
<rule>
  <class name="GtkSpinButton">
    <method>Configure</method>
  </class>
  <data>
    <attribute target="param">
      <filter level="type">GtkAdjustment*</filter>
      <name>null_ok</name>
      <value>1</value>
    </attribute>
  </data>
</rule>
<rule>
  <class name="GtkSpinButton">
    <constructor>gtk_spin_button_new</constructor>
  </class>
  <data>
    <attribute target="param">
      <filter level="type">GtkAdjustment*</filter>
      <name>null_ok</name>
      <value>1</value>
    </attribute>
  </data>
</rule>
<rule>
  <class name="GtkTextBuffer">
    <constructor>gtk_text_buffer_new</constructor>
  </class>
  <data>
    <attribute target="param">
      <filter level="type">GtkTextTagTable*</filter>
      <name>null_ok</name>
      <value>1</value>
    </attribute>
  </data>
</rule>
<rule>
  <class name="GtkTextIter">
    <method>ForwardToTagToggle</method>
  </class>
  <data>
    <attribute target="param">
      <filter level="type">GtkTextTag*</filter>
      <name>null_ok</name>
      <value>1</value>
    </attribute>
  </data>
</rule>
<rule>
  <class name="GtkTextIter">
    <method>BackwardToTagToggle</method>
  </class>
  <data>
    <attribute target="param">
      <filter level="type">GtkTextTag*</filter>
      <name>null_ok</name>
      <value>1</value>
    </attribute>
  </data>
</rule>
<rule>
  <class name="GtkTextIter">
    <method>ForwardSearch</method>
  </class>
  <data>
    <attribute target="param">
      <filter level="type">GtkTextIter*</filter>
      <name>pass_as</name>
      <value>out</value>
    </attribute>
  </data>
</rule>
<rule>
  <class name="GtkTextIter">
    <method>BackwardSearch</method>
  </class>
  <data>
    <attribute target="param">
      <filter level="type">GtkTextIter*</filter>
      <name>pass_as</name>
      <value>out</value>
    </attribute>
  </data>
</rule>
<rule>
  <class name="GtkToolbar">
    <method>AppendItem</method>
  </class>
  <data>
    <attribute target="param">
      <filter level="type">gpointer</filter>
      <name>null_ok</name>
      <value>1</value>
    </attribute>
  </data>
</rule>
<rule>
  <class name="GtkTreeView">
    <constructor>gtk_tree_view_new_with_model</constructor>
  </class>
  <data>
    <attribute target="param">
      <filter level="type">GtkTreeModel*</filter>
      <name>null_ok</name>
      <value>1</value>
    </attribute>
  </data>
</rule>
<rule>
  <class name="GtkTreeView">
    <method>SetModel</method>
  </class>
  <data>
    <attribute target="param">
      <filter level="type">GtkTreeModel*</filter>
      <name>null_ok</name>
      <value>1</value>
    </attribute>
  </data>
</rule>
<rule>
  <class name="GtkViewport">
    <constructor>gtk_viewport_new</constructor>
  </class>
  <data>
    <attribute target="param">
      <filter level="type">GtkAdjustment*</filter>
      <name>null_ok</name>
      <value>1</value>
    </attribute>
  </data>
</rule>
<rule>
  <class name="GtkViewport">
    <method>SetHadjustment</method>
  </class>
  <data>
    <attribute target="param">
      <filter level="type">GtkAdjustment*</filter>
      <name>null_ok</name>
      <value>1</value>
    </attribute>
  </data>
</rule>
<rule>
  <class name="GtkViewport">
    <method>SetVadjustment</method>
  </class>
  <data>
    <attribute target="param">
      <filter level="type">GtkAdjustment*</filter>
      <name>null_ok</name>
      <value>1</value>
    </attribute>
  </data>
</rule>
<rule>
  <class name="GtkVScale">
    <constructor>gtk_vscale_new</constructor>
  </class>
  <data>
    <attribute target="param">
      <filter level="type">GtkAdjustment*</filter>
      <name>null_ok</name>
      <value>1</value>
    </attribute>
  </data>
</rule>
<rule>
  <class name="GtkVScrollbar">
    <constructor>gtk_vscrollbar_new</constructor>
  </class>
  <data>
    <attribute target="param">
      <filter level="type">GtkAdjustment*</filter>
      <name>null_ok</name>
      <value>1</value>
    </attribute>
  </data>
</rule>
<rule>
  <class name="GtkWidget">
    <method>SetScrollAdjustments</method>
  </class>
  <data>
    <attribute target="param">
      <filter level="type">GtkAdjustment*</filter>
      <name>null_ok</name>
      <value>1</value>
    </attribute>
  </data>
</rule>
<rule>
  <class name="GtkWidget">
    <method>SetStyle</method>
  </class>
  <data>
    <attribute target="param">
      <filter level="type">GtkStyle*</filter>
      <name>null_ok</name>
      <value>1</value>
    </attribute>
  </data>
</rule>
<rule>
  <class name="GtkWidget">
    <method>GetSizeRequest</method>
  </class>
  <data>
    <attribute target="param">
      <filter level="type">gint*</filter>
      <name>pass_as</name>
      <value>out</value>
    </attribute>
  </data>
</rule>
<rule>
  <class name="GtkMenuItem">
    <method>SetSubmenu</method>
  </class>
  <data>
    <attribute target="param">
      <filter level="type">GtkWidget*</filter>
      <name>null_ok</name>
      <value>1</value>
    </attribute>
  </data>
</rule>
<rule>
  <class name="GtkRadioMenuItem">
    <constructor>gtk_radio_menu_item_new_with_label</constructor>
  </class>
  <data>
   <attribute target="param">
    <filter level="type">GSList*</filter>
    <name>null_ok</name>
    <value>1</value>
   </attribute>
  </data>
</rule>
<rule>
  <class name="GtkRadioButton">
    <constructor>gtk_radio_button_new</constructor>
  </class>
  <data>
   <attribute target="param">
    <filter level="type">GSList*</filter>
    <name>null_ok</name>
    <value>1</value>
   </attribute>
  </data>
</rule>
<rule>
  <class name="GtkRadioButton">
    <constructor>gtk_radio_button_new_with_label</constructor>
  </class>
  <data>
   <attribute target="param">
    <filter level="type">GSList*</filter>
    <name>null_ok</name>
    <value>1</value>
   </attribute>
  </data>
</rule>
<rule>
  <class name="GtkRadioButton">
    <constructor>gtk_radio_button_new_with_mnemonic</constructor>
  </class>
  <data>
   <attribute target="param">
    <filter level="type">GSList*</filter>
    <name>null_ok</name>
    <value>1</value>
   </attribute>
  </data>
</rule>
<rule>
  <class name="GtkMenu">
    <method>Popup</method>
  </class>
  <data>
    <attribute target="param">
      <filter level="type">GtkWidget*</filter>
      <name>null_ok</name>
      <value>1</value>
    </attribute>
  </data>
</rule>
<rule>
  <class name="GtkMenu">
    <method>Popup</method>
  </class>
  <data>
    <attribute target="param">
      <filter level="type">GtkMenuPositionFunc</filter>
      <name>null_ok</name>
      <value>1</value>
    </attribute>
  </data>
</rule>


<!-- reference rules -->
<rule>
  <class name="GtkWidget">
    <method>GetStyle</method>
    <method>GetModifierStyle</method>
    <method>GetDefaultStyle</method>
    <method>GetParentWindow</method>
    <method>GetColormap</method>
    <method>GetVisual</method>
    <method>GetDefaultColormap</method>
    <method>GetDefaultVisual</method>
  </class>
  <data>
    <attribute target="method">
      <name>needs_ref</name>
      <value>1</value>
    </attribute>
  </data>
</rule>

</metadata>
