# Gtk UI extension for the plugin UI extension
#
# Copyright (C) 2010-2011 Lars Luthman <mail@larsluthman.net>
#
# based on lv2.ttl, which is
# Copyright (C) 2006-2008 Steve Harris, David Robillard
#
# Permission is hereby granted, free of charge, to any person obtaining a
# copy of this software and associated documentation files (the "Software"),
# to deal in the Software without restriction, including without limitation
# the rights to use, copy, modify, merge, publish, distribute, sublicense,
# and/or sell copies of the Software, and to permit persons to whom the
# Software is furnished to do so, subject to the following conditions:
# 
# The above copyright notice and this permission notice shall be included
# in all copies or substantial portions of the Software.
# 
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
# OTHER DEALINGS IN THE SOFTWARE.

@prefix pui-gtk: <http://lv2plug.in/ns/ext/pui-gtk#>.
@prefix pui:     <http://lv2plug.in/ns/ext/pui#>.
@prefix lv2:    <http://lv2plug.in/ns/lv2core#>.
@prefix rdf:    <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
@prefix rdfs:   <http://www.w3.org/2000/01/rdf-schema#> .
@prefix doap:   <http://usefulinc.com/ns/doap#> .
@prefix foaf:   <http://xmlns.com/foaf/0.1/> .

<http://lv2plug.in/ns/ext/pui-gtk> a lv2:Specification ;
	doap:license <http://usefulinc.com/doap/licenses/mit>;
	doap:name "LV2 Gtk+ UI" ;
	doap:release [
		doap:revision "0.1" ;
		doap:created "2011-03-26"
	];
	doap:maintainer [
		a foaf:Person;
		foaf:name "Lars Luthman";
		foaf:mbox <mailto:mail@larsluthman.net>;
	];
	lv2:documentation """
This extension defines an UI type for the in-process UI extension that can be
used in a Gtk+ program.
""".

pui-gtk:GtkUI a rdfs:Class;
	rdfs:subClassOf pui:UI;
	rdfs:label "Gtk+ UI";
	lv2:documentation """
<p>The class which represents a Gtk+ UI. For a successfully created instance of
an UI of this class, the get_widget() function MUST return a pointer to a valid
GtkWidget object compatible with Gtk+ version 2.0. The host MUST ensure that
the Gtk+ library has been initialised and that the Glib main loop is running
before an UI of this type is instantiated.</p>

<p>Unless otherwise specified by extensions, all function pointers in
LV2_PUI_Descriptor may only be called from the thread that runs the Glib main
loop.</p>
""" .

pui-gtk:noHostResize a lv2:Feature;
	rdfs:label "No host resize";
	lv2:documentation """
<p>This Feature should only be used with UIs.</p>

<p>When this Feature is active the host SHOULD NOT resize the UI widget to any
other size than the one given by gtk_widget_size_request(). However, the UI
MUST NOT break if the widget is resized to another size. This Feature can be
used for example when the widget uses a fixed-size pixmap interface.</p>

<p>The data pointer in the LV2_Feature object for this Feature should be set to
NULL.</p>
""".