### ----------------------------------------------------
### -- Gnome::Gtk3
### -- Licenses: Artistic-2.0
### -- Authors: Marcel Timmerman
### -- File: t/Paned.rakutest
### ----------------------------------------------------
use v6;
use NativeCall;
use Test;

use Gnome::N::N-GObject:api<1>;
use Gnome::Gtk3::Enums:api<1>;
use Gnome::Gtk3::Paned:api<1>;
use Gnome::Gtk3::ListBox:api<1>;

#-------------------------------------------------------------------------------
my Gnome::Gtk3::Paned $p;
#-------------------------------------------------------------------------------
subtest 'ISA test', {
  $p .= new(:orientation(GTK_ORIENTATION_VERTICAL));
  isa-ok $p, Gnome::Gtk3::Paned, ".new(:orientation)";
}

#-------------------------------------------------------------------------------
unless %*ENV<raku_test_all>:exists {
  done-testing;
  exit;
}

#-------------------------------------------------------------------------------
subtest 'Manipulations', {
  my Gnome::Gtk3::ListBox $lb-left .= new;
  $lb-left.set-name('leftListbox');
  my Gnome::Gtk3::ListBox $lb-right .= new;
  $lb-right.set-name('rightListbox');
  $p .= new(:orientation(GTK_ORIENTATION_HORIZONTAL));
  $p.gtk-paned-add1($lb-left);
  $p.gtk-paned-add2($lb-right);

  # when retrieved, native widget addresses are changed. cannot compare with
  # native object using $lb-left.native-gobject().
  isa-ok $p.get-child1, N-GObject, 'native object from .get-child1()';
  isa-ok $p.get-child2, N-GObject, 'native object from .get-child2()';

  # testing the set names is more accurate.
  my Gnome::Gtk3::ListBox $lb .= new(:native-object($p.get-child1));
  is $lb.get-name, 'leftListbox', 'left listbox found';
  $lb .= new(:native-object($p.get-child2));
  is $lb.get-name, 'rightListbox', 'right listbox found';
}

#`{{
#-------------------------------------------------------------------------------
subtest 'Manipulations', {
}

#-------------------------------------------------------------------------------
subtest 'Inherit ...', {
}

#-------------------------------------------------------------------------------
subtest 'Interface ...', {
}

#-------------------------------------------------------------------------------
subtest 'Properties ...', {
}

#-------------------------------------------------------------------------------
subtest 'Themes ...', {
}

#-------------------------------------------------------------------------------
subtest 'Signals ...', {
}
}}

#-------------------------------------------------------------------------------
done-testing;


