<?xml version="1.0"?>
<page id="GimpUi.ResourceSelectButton"
      type="guide"
      style="class"
      xmlns="http://projectmallard.org/1.0/"
      xmlns:api="http://projectmallard.org/experimental/api/"
      xmlns:ui="http://projectmallard.org/1.0/ui/">
  <info>
    <link xref="index" group="class" type="guide"/>
  </info>
  <title>GimpUi.ResourceSelectButton</title>
  <synopsis><code>
const GimpUi = imports.gi.GimpUi;

let resourceSelectButton = new GimpUi.ResourceSelectButton({
    <link xref='GimpUi.ResourceSelectButton-title'>title</link>: value,
});
  </code></synopsis>
  <p>A button which pops up a resource selection dialog.</p>  <p>Subclasses: GimpFontSelectButton is a minimal one.
A subclass provides button trait (clickable),
but possibly not a GtkButton and may have many sub widgets.</p>  <p>Responsibilities:</p>  <p>    - implementing outer container widget,
    - managing clicks and popping up a remote chooser,
    - having a resource property,
    - signaling when user selects resource
    - receiving drag,
    - triggering draws of the button interior (by subclass) and draws of remote popup chooser.</p>  <p>Collaborations:</p>  <p>    - owned by GimpProcedureDialog via GimpPropWidget
    - resource property usually bound to a GimpConfig for a GimpPluginProcedure.
    - communicates using GimpResourceSelect with remote GimpPDBDialog,
      to choose an installed GimpResource owned by core.</p>  <p>Subclass responsibilities:</p>  <p>    - creating interior widgets
    - drawing the interior (a preview of the chosen resource)
    - declaring which interior widgets are drag destinations
    - declaring which interior widgets are clickable (generate "clicked" signal)
    - generate "clicked" (delegating to GtkButton or implementing from mouse events)</p>  <p>Class is abstract and cannot be instantiated: no new () method.
Instead, instantiate a subclass.</p>
  <p>Since 3.0</p>
  <synopsis>
    <title>Hierarchy</title>
    <tree>
      <item>
        <code>GObject.Object</code>
      <item>
        <code>GObject.InitiallyUnowned</code>
      <item>
        <code>Gtk.Widget</code>
      <item>
        <code>Gtk.Container</code>
      <item>
        <code>Gtk.Box</code>
      <item>
        <code>GimpUi.ResourceSelectButton</code>
      </item>
      </item>
      </item>
      </item>
      </item>
      </item>
    </tree>
  </synopsis>
  <links type="topic" ui:expanded="true"
         api:type="function" api:mime="text/x-gjs"
         groups="constructor" style="linklist">
    <title>Constructors</title>
  </links>
  <links type="topic" ui:expanded="true"
         api:type="function" api:mime="text/x-gjs"
         groups="method" style="linklist">
    <title>Methods</title>
  </links>
  <links type="topic" ui:expanded="true"
         api:type="function" api:mime="text/x-gjs"
         groups="function" style="linklist">
    <title>Static Functions</title>
  </links>
  <links type="topic" ui:expanded="true" groups="property" style="linklist">
    <title>Properties</title>
  </links>
  <links type="topic" ui:expanded="true" groups="signal" style="linklist">
    <title>Signals</title>
  </links>
  <links type="topic" ui:expanded="true" groups="vfunc" style="linklist">
    <title>Virtual functions</title>
  </links>
  <links type="topic" ui:expanded="true" groups="field" style="linklist">
    <title>Fields</title>
  </links>
  <links type="topic" ui:expanded="true" groups="#first #default #last" style="linklist">
    <title>Other</title>
  </links>
</page>
