Commit 08bf9e9c authored by Leandro Resende Mattioli's avatar Leandro Resende Mattioli Committed by Johannes Schmid

Add PyGTK project template. Fixes bug #608304.

parent abdfe5d9
<project-wizard>
<_name>PyGTK (automake)</_name>
<_description>PyGTK project using automake</_description>
<icon>pygtk-logo.png</icon>
<category>Python</category>
<required-program>automake</required-program>
<required-program>autoconf</required-program>
<required-program>make</required-program>
<required-program>python</required-program>
<required-package>gtk+-2.0 >= 2.8</required-package>
<!-- Not working: <required-package>python-gtk2</required-package>-->
</project-wizard>
<page name="basic" _label="Basic information" _description="General Project Information">
<property type="string" name="Name" _label="Project Name:" _description="project name" default="pygtk-foobar" summary="yes" restriction="filename" mandatory="yes"/>
<property type="string" name="Author" _label="Author:" _description="" default="[+UserName+]" mandatory="yes"/>
<property type="string" name="Email" _label="Email address:" _description="" default="[+EmailAddress+]" mandatory="no"/>
<property type="string" name="Version" _label="Version:" default="0.1" mandatory="yes"/>
</page>
<page name="options" _label="Project options" _description="Options for project build system">
<property type="directory" name="Destination" _label="Destination:" _description="" default="[+AnjutaProjectDirectory+]/[+(string-downcase (get "Name"))+]" mandatory="yes" exist="no" summary="yes"/>
<property type="list" name="License" _label="License" _description="Select code license" default="GPL" editable="no">
<item name="GPL" _label="General Public License (GPL)"/>
<item name="LGPL" _label="Lesser General Public License (LGPL)"/>
<item name="BSD" _label="Berkeley Software Distribution License (BSD)"/>
<item name="None" _label="No license"/>
</property>
<property type="hidden" name="NameUpper" default="[+(string-upcase (get "Name"))+]"/>
<property type="hidden" name="NameLower" default="[+(string-downcase (get "Name"))+]"/>
<property type="hidden" name="NameCUpper" default="[+(string->c-name! (string-substitute (string-upcase (get "Name")) " " "_"))+]"/>
<property type="hidden" name="NameCLower" default="[+(string->c-name! (string-substitute (string-downcase (get "Name")) " " "_"))+]"/>
<property type="hidden" name="NameHLower" default="[+(string-substitute (string->c-name! (string-downcase (get "Name"))) " " "-")+]"/>
<property type="hidden" name="HavePackage" default="0"/>
<property type="boolean" name="HaveSharedlib" _label="Add shared library support:" _description="Adds support for building shared libraries in your project" default="1"/>
<property type="hidden" name="HaveGtkDoc" _label="Add gtk-doc system:" _description="gtk-doc is used to compile API documentations for GObject based classes" default="0"/>
<property type="hidden" name="HaveI18n" _label="Add internationalization:" _description="Adds support for internationalization so that your project can have translations in different languages" default="0"/>
<property type="hidden" name="HavePackageExtra" _label="Configure external packages:" _description="Use pkg-config to add library support from other packages" default="0"/>
</page>
[+IF (=(get "HavePackageExtra") "1")+]
<page name="packages" _label="Configure external packages" _description="Configure external packages">
<property type="string" name="PackageModule1" _label="Require Package:" _description="Give a package name that your project require. You may also mention what is the required version of the package. For example, 'libgnomeui-2.0' or 'libgnomeui-2.0 &gt;= 2.2.0'" mandatory="yes"/>
<property type="string" name="PackageModule2" _label="Require Package:" _description="Give a package name that your project require. You may also mention what is the required version of the package. For example, 'libgnomeui-2.0' or 'libgnomeui-2.0 &gt;= 2.2.0'" mandatory="yes"/>
<property type="string" name="PackageModule3" _label="Require Package:" _description="Give a package name that your project require. You may also mention what is the required version of the package. For example, 'libgnomeui-2.0' or 'libgnomeui-2.0 &gt;= 2.2.0'"/>
<property type="string" name="PackageModule4" _label="Require Package:" _description="Give a package name that your project require. You may also mention what is the required version of the package. For example, 'libgnomeui-2.0' or 'libgnomeui-2.0 &gt;= 2.2.0'"/>
<property type="string" name="PackageModule5" _label="Require Package:" _description="Give a package name that your project require. You may also mention what is the required version of the package. For example, 'libgnomeui-2.0' or 'libgnomeui-2.0 &gt;= 2.2.0'"/>
</page>
[+ENDIF+]
<content>
<directory source="terminal" destination="[+Destination+]">
<file source="AUTHORS"/>
<file source="ChangeLog"/>
<file source="Makefile.am.tpl" destination="Makefile.am"/>
<file source="NEWS"/>
<file source="README"/>
<file source="autogen.sh" executable="yes"/>
<file source="cvsignore" destination=".cvsignore"/>
<directory source="src">
<file source="cvsignore" destination=".cvsignore"/>
</directory>
[+IF (=(get "HaveI18n") "1") +]
<directory source="po">
<file source="ChangeLog"/>
<file source="LINGUAS" />
<file source="cvsignore" destination=".cvsignore"/>
</directory>
[+ENDIF+]
</directory>
<directory source="pygtk" destination="[+Destination+]">
[+IF (=(get "HaveI18n") "1") +]
<directory source="po">
<file source="POTFILES.in"/>
</directory>
[+ENDIF+]
<file destination="[+NameHLower+].anjuta" source="project.anjuta"/>
<file source="configure.ac.tpl" destination="configure.ac"/>
<directory source="src">
<file source="main.py" destination="[+NameHLower+].py" executable="yes"/>
<file source="Makefile.am.tpl" destination="Makefile.am"/>
</directory>
<directory source="data">
<file source="project.ui" destination="[+NameHLower+].ui"/>
</directory>
</directory>
<directory source="licenses" destination="[+Destination+]">
<file source="[+License+]" destination="COPYING"/>
</directory>
</content>
<action>
<open file="[+Destination+]/[+NameHLower+].anjuta"/>
</action>
[+ autogen5 template +]
dnl Process this file with autoconf to produce a configure script.
dnl Created by Anjuta application wizard.
AC_INIT([+NameHLower+], [+Version+])
AM_INIT_AUTOMAKE(AC_PACKAGE_NAME, AC_PACKAGE_VERSION)
AC_CONFIG_HEADERS([config.h])
AM_MAINTAINER_MODE
AM_PATH_PYTHON
[+IF (=(get "HaveI18n") "1")+]
dnl ***************************************************************************
dnl Internatinalization
dnl ***************************************************************************
GETTEXT_PACKAGE=[+NameHLower+]
AC_SUBST(GETTEXT_PACKAGE)
AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE,"$GETTEXT_PACKAGE", [GETTEXT package name])
AM_GLIB_GNU_GETTEXT
IT_PROG_INTLTOOL([0.35.0])
[+ENDIF+]
[+IF (=(get "HavePackage") "1")+]
PKG_CHECK_MODULES([+NameCUpper+], [[+PackageModule1+] [+PackageModule2+] [+PackageModule3+] [+PackageModule4+] [+PackageModule5+]])
[+ENDIF+]
[+IF (=(get "HaveGtkDoc") "1")+]
##################################################
# Check for gtk-doc.
##################################################
AC_ARG_WITH(html-dir, [ --with-html-dir=PATH path to installed docs ])
if test "x$with_html_dir" = "x" ; then
HTML_DIR='${datadir}/gtk-doc/html'
else
HTML_DIR=$with_html_dir
fi
AC_SUBST(HTML_DIR)
gtk_doc_min_version=1.0
AC_MSG_CHECKING([gtk-doc version >= $gtk_doc_min_version])
if pkg-config --atleast-version=$gtk_doc_min_version gtk-doc; then
AC_MSG_RESULT(yes)
GTKDOC=true
else
AC_MSG_RESULT(no)
GTKDOC=false
fi
dnl Let people disable the gtk-doc stuff.
AC_ARG_ENABLE(gtk-doc,
[ --enable-gtk-doc Use gtk-doc to build documentation [default=auto]],
enable_gtk_doc="$enableval", enable_gtk_doc=auto)
if test x$enable_gtk_doc = xauto ; then
if test x$GTKDOC = xtrue ; then
enable_gtk_doc=yes
else
enable_gtk_doc=no
fi
fi
AM_CONDITIONAL(ENABLE_GTK_DOC, test x$enable_gtk_doc = xyes)
[+ENDIF+]
AC_OUTPUT([
Makefile
src/Makefile
[+IF (=(get "HaveI18n") "1")+]po/Makefile.in[+ENDIF+]
])
<?xml version="1.0"?>
<interface>
<requires lib="gtk+" version="2.16"/>
<!-- interface-naming-policy project-wide -->
<object class="GtkWindow" id="window1">
<signal name="destroy_event" handler="quit"/>
<child>
<object class="GtkVBox" id="vbox1">
<property name="visible">True</property>
<property name="orientation">vertical</property>
<child>
<object class="GtkLabel" id="label1">
<property name="visible">True</property>
<property name="label" translatable="yes">Hello, World!</property>
</object>
<packing>
<property name="fill">False</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkButton" id="button1">
<property name="label">gtk-ok</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<property name="use_stock">True</property>
<signal name="clicked" handler="change_text"/>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">False</property>
<property name="position">1</property>
</packing>
</child>
</object>
</child>
</object>
</interface>
[+ autogen5 template +]
# List of source files containing translatable strings.
src/main.py
<?xml version="1.0"?>
<anjuta>
<plugin name="GBF Project Manager"
url="http://anjuta.org/plugins/"
mandatory="yes">
<require group="Anjuta Plugin"
attribute="Interfaces"
value="IAnjutaProjectManager"/>
<require group="Project"
attribute="Supported-Project-Types"
value="automake"/>
</plugin>
<plugin name="Symbol Browser"
url="http://anjuta.org/plugins/"
mandatory="yes">
<require group="Anjuta Plugin"
attribute="Interfaces"
value="IAnjutaSymbolManager"/>
</plugin>
<plugin name="Make Build System"
url="http://anjuta.org/plugins/"
mandatory="yes">
<require group="Anjuta Plugin"
attribute="Interfaces"
value="IAnjutaBuildable"/>
<require group="Build"
attribute="Supported-Build-Types"
value="make"/>
</plugin>
<plugin name="Task Manager"
url="http://anjuta.org/plugins/"
mandatory="no">
<require group="Anjuta Plugin"
attribute="Interfaces"
value="IAnjutaTodo"/>
</plugin>
</anjuta>
[+ autogen5 template +]
## Process this file with automake to produce Makefile.in
## Created by Anjuta
uidir = $(datadir)/[+NameHLower+]/ui
ui_DATA = ../data/[+NameHLower+].ui
## The main script
bin_SCRIPTS = [+NameHLower+].py
## Directory where .class files will be installed
[+NameCLower+]dir = $(pythondir)/[+NameHLower+]
EXTRA_DIST = $(ui_DATA)
[+NameCLower+]_PYTHON = \
[+NameHLower+].py
# Remove ui directory on uninstall
uninstall-local:
-rm -r $(uidir)
-rm -r $(datadir)/[+NameHLower+]
[+ autogen5 template +]
#!/usr/bin/python
#
# main.py
# Copyright (C) [+Author+] [+(shell "date +%Y")+] <[+Email+]>
#
[+CASE (get "License") +]
[+ == "BSD" +][+(bsd (get "Name") (get "Author") "# ")+]
[+ == "LGPL" +][+(lgpl (get "Name") (get "Author") "# ")+]
[+ == "GPL" +][+(gpl (get "Name") "# ")+]
[+ESAC+]
import sys
try:
import gtk
except ImportError:
sys.exit("pygtk not found.")
#Comment the first line and uncomment the second before installing
#or making the tarball (alternatively, use project variables)
UI_FILE = "data/[+NameHLower+].ui"
#UI_FILE = "/usr/local/share/[+NameHLower+]/ui/[+NameHLower+].ui"
class GUI:
def __init__(self):
self.builder = gtk.Builder()
self.builder.add_from_file(UI_FILE)
self.window = self.builder.get_object("window1")
self.label = self.builder.get_object("label1")
self.builder.connect_signals(self)
def change_text(self, widget, *event):
self.label.set_text("Hello, pygtk world!")
def quit(self, widget, *event):
gtk.main_quit()
def main():
app = GUI()
app.window.show()
gtk.main()
if __name__ == "__main__":
sys.exit(main())
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment