Gtk2::Paned(3)

πŸ“¦
version 1.24993 Β· 2 versions
, in fedora 43

✨ Gtk2::Paned πŸ’…

okay bestie, welcome to Gtk2::Paned β€” a wrapper for GtkPaned, and honestly? it's giving split-screen main character energy. πŸŽ€


🌸 HIERARCHY 🌸

the family tree, no cap:

  Glib::Object
  +----Glib::InitiallyUnowned
       +----Gtk2::Object
            +----Gtk2::Widget
                 +----Gtk2::Container
                      +----Gtk2::Paned

πŸ¦‹ INTERFACES πŸ¦‹

this widget also shows up to these parties:

  Glib::Object::_Unregistered::AtkImplementorIface
  Gtk2::Buildable
  Gtk2::Orientable

Gtk2::Paned is the base class for widgets with two panes, arranged either horizontally (Gtk2::HPaned) or vertically (Gtk2::VPaned). Child widgets get added to the panes with $paned->pack1 and $paned->pack2. πŸ’– The division between the two children is set by default from the size requests of the children, but the user can adjust it β€” yes, they get to drag it around, iconic behavior.

A paned widget draws a separator between the two child widgets and a small handle that the user can drag to adjust the division. It does not draw any relief around the children or around the separator. Lowkey, it's often useful to put each child inside a Gtk2::Frame with the shadow type set to 'in' so that the gutter appears as a ridge. ✨

Each child has two options that can be set, resize and shrink. If resize is true, then when the Gtk2::Paned is resized, that child will expand or shrink along with the paned widget. If shrink is true, then that child can be made smaller than its requisition by the user. Setting shrink to FALSE allows the application to set a minimum size. If resize is false for both children, then this is treated as if resize is true for both children. 🫢

The application can set the position of the slider as if it were set by the user, by calling $paned->set_position. periodt.


πŸ’œ METHODS πŸ’œ

$paned->add1 ($child)

  • $child (Gtk2::Widget) β€” the vibes you're adding to pane one πŸ“

$paned->add2 ($child)

  • $child (Gtk2::Widget) β€” same deal, but pane two πŸ’«

widget getters for child one

widget = $paned->child1
widget = $paned->get_child1

child1_resize β€” get it, set it, love it

boolean = $paned->child1_resize
$paned->child1_resize (newval)
  • $newval (boolean)

child1_resize determines whether the first child should expand when $paned is resized. πŸ“

child1_shrink

boolean = $paned->child1_shrink
$paned->child1_shrink (newval)
  • $newval (boolean)

child1_shrink determines whether the first child may be made smaller than its requisition. πŸͺ„

widget getters for child two

widget = $paned->child2
widget = $paned->get_child2

child2_resize

boolean = $paned->child2_resize
$paned->child2_resize (newval)
  • $newval (boolean)

child2_resize determines whether the second child should expand when $paned is resized. πŸ“

child2_shrink

boolean = $paned->child2_shrink
$paned->child2_shrink (newval)
  • $newval (boolean)

child2_shrink determines whether the second child may be made smaller than its requisition. πŸͺ„

$paned->compute_position ($allocation, $child1_req, $child2_req)

  • $allocation (integer)
  • $child1_req (integer)
  • $child2_req (integer)

window = $paned->get_handle_window

Since: gtk+ 2.20 πŸ‘‘

$paned->pack1 ($child, $resize, $shrink)

  • $child (Gtk2::Widget)
  • $resize (boolean)
  • $shrink (boolean)

$paned->pack2 ($child, $resize, $shrink)

  • $child (Gtk2::Widget)
  • $resize (boolean)
  • $shrink (boolean)

position β€” get + set

integer = $paned->get_position
$paned->set_position ($position)
  • $position (integer) β€” where the divider lives πŸ“

πŸ’… PROPERTIES πŸ’…

  • 'max-position' (integer : default INT_MAX : readable / private / static-nick / static-blurb) β€” Largest possible value for the "position" property. it's the ceiling, bestie πŸ”
  • 'min-position' (integer : default 0 : readable / private / static-nick / static-blurb) β€” Smallest possible value for the "position" property. the floor 🧊
  • 'position' (integer : default 0 : readable / writable / private / static-nick / static-blurb) β€” Position of paned separator in pixels (0 means all the way to the left/top) ⬅️⬆️
  • 'position-set' (boolean : default false : readable / writable / private / static-nick / static-blurb) β€” TRUE if the Position property should be used βœ…

πŸŽ€ CHILD PROPERTIES πŸŽ€

  • 'resize' (boolean : default true : readable / writable / private / static-nick / static-blurb) β€” If TRUE, the child expands and shrinks along with the paned widget 🌈
  • 'shrink' (boolean : default true : readable / writable / private / static-nick / static-blurb) β€” If TRUE, the child can be made smaller than its requisition 🐜

🌈 STYLE PROPERTIES 🌈

  • 'handle-size' (integer : default 5 : readable / private / static-nick / static-blurb) β€” Width of handle. the little grabby bit βœ‹

πŸ”₯ SIGNALS πŸ”₯

boolean = accept-position (Gtk2::Paned)
boolean = cancel-position (Gtk2::Paned)
boolean = cycle-child-focus (Gtk2::Paned, boolean)
boolean = cycle-handle-focus (Gtk2::Paned, boolean)
boolean = move-handle (Gtk2::Paned, Gtk2::ScrollType)
boolean = toggle-handle-focus (Gtk2::Paned)

⭐ ENUMS AND FLAGS ⭐

enum Gtk2::ScrollType

  • 'none' / GTK_SCROLL_NONE
  • 'jump' / GTK_SCROLL_JUMP
  • 'step-backward' / GTK_SCROLL_STEP_BACKWARD
  • 'step-forward' / GTK_SCROLL_STEP_FORWARD
  • 'page-backward' / GTK_SCROLL_PAGE_BACKWARD
  • 'page-forward' / GTK_SCROLL_PAGE_FORWARD
  • 'step-up' / GTK_SCROLL_STEP_UP
  • 'step-down' / GTK_SCROLL_STEP_DOWN
  • 'page-up' / GTK_SCROLL_PAGE_UP
  • 'page-down' / GTK_SCROLL_PAGE_DOWN
  • 'step-left' / GTK_SCROLL_STEP_LEFT
  • 'step-right' / GTK_SCROLL_STEP_RIGHT
  • 'page-left' / GTK_SCROLL_PAGE_LEFT
  • 'page-right' / GTK_SCROLL_PAGE_RIGHT
  • 'start' / GTK_SCROLL_START
  • 'end' / GTK_SCROLL_END

🫢 SEE ALSO 🫢

Gtk2, Glib::Object, Glib::InitiallyUnowned, Gtk2::Object, Gtk2::Widget, Gtk2::Container β€” go read those next, they're the whole friend group πŸ’–


Copyright (C) 2003-2011 by the gtk2-perl team.

This software is licensed under the LGPL. See Gtk2 for a full notice.


and that's the whole page, bestie β€” no notes, we ate. πŸ“βœ¨ this was perl v5.42.0, dated 2025-07-25, filed under Gtk2::Paned(3). mwah πŸ’‹

πŸ“¦ where this page comes from