Skip to content
A simpler and more efficient API for GTK::Simple
Other
  1. Other 100.0%
Branch: master
Clone or download

Latest commit

Fetching latest commit…
Cannot retrieve the latest commit at this time.

Files

Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
doc
examples
lib/GTK
t
tools
.gitignore
.travis.yml
LICENSE
META6.json
README.md
appveyor.yml

README.md

GTK::Simpler Build Status Build status

This module provides a simpler API for GTK::Simple. The idea here is to load GTK::Simple widgets lazily at runtime and type less characters. For example instead of writing the following:

# This is slow since it will load a lot of GTK::Simple widgets by default
use GTK::Simple;

my $app = GTK::Simple::App.new(title => "Hello");

you write the more concise shorter form:

# Exports a bunch of subroutines by default
use GTK::Simpler;

# GTK::Simple::App is loaded and created only here
my $app = app(title => "Hello");

Example

use v6;
use GTK::Simpler;

my $app = app(title => "Hello GTK!");

$app.set-content(
    vbox(
        my $first-button  = button(label => "Hello World!"),
        my $second-button = button(label => "Goodbye!")
    )
);

$app.border-width        = 20;
$second-button.sensitive = False;

$first-button.clicked.tap({ 
    .sensitive = False; 
    $second-button.sensitive = True 
});

$second-button.clicked.tap({ 
    $app.exit; 
});

$app.run;

For more examples, please see the examples folder.

Documentation

Please see the GTK::Simpler generated documentation.

Installation

Please check GTK::Simple prerequisites section for more information.

To install it using zef (a module management tool bundled with Rakudo Star):

$ zef install GTK::Simpler

Testing

  • To run tests:
$ prove -e "perl6 -Ilib"
  • To run all tests including author tests (Please make sure Test::Meta is installed):
$ zef install Test::META
$ AUTHOR_TESTING=1 prove -ve "perl6 -Ilib"

Author

Ahmad M. Zawawi, azawawi on #perl6

License

MIT License

You can’t perform that action at this time.