
Gnome::Gtk3::RadioMenuItem
A choice from multiple check menu items
Description
A radio menu item is a check menu item that belongs to a group. At each instant exactly one of the radio menu items from a group is selected.
The group list does not need to be freed, as each Gnome::Gtk3::RadioMenuItem will remove itself and its list item when it is destroyed.
The correct way to create a group of radio menu items is approximatively this:
my Gnome::Glib::SList $group .= new; my Gnome::Gtk3::RadioMenuItem $item; for ^5 -> $i { # Create radio menu item $item .= new( :$group, :label("This is an example: entry $i"); # Get the group list to be used for the next radio menu item. # however, only once is enough! $group .= new(:native-object($item.get-group)) if $i == 0; # Activate 2nd item $item.set_active(TRUE) if $i == 1; }
Css Nodes
menuitem ├── radio.left ╰── <child>
Gnome::Gtk3::RadioMenuItem has a main CSS node with name menuitem, and a subnode with name radio, which gets the .left or .right style class.
See Also
Gnome::Gtk3::MenuItem, Gnome::Gtk3::CheckMenuItem
Synopsis
Declaration
unit class Gnome::Gtk3::RadioMenuItem; also is Gnome::Gtk3::CheckMenuItem; also does Gnome::Gtk3::Actionable;
Uml Diagram
Inheriting this class
Inheriting is done in a special way in that it needs a call from new() to get the native object created by the class you are inheriting from.
use Gnome::Gtk3::RadioMenuItem:api<1>; unit class MyGuiClass; also is Gnome::Gtk3::RadioMenuItem; has Gnome::Glib::SList $!group; submethod new ( |c ) { # let the Gnome::Gtk3::RadioMenuItem class process the options self.bless( :GtkRadioMenuItem, |c, :group(N-GSList), :label<1st>); } submethod BUILD ( ... ) { $!group .= new(:native-object(self.get-group)); ... }
Methods
new
:group
Create a new RadioMenuItem object.
multi method new ( N-GSList :$group! )
N-GSList $group; (element-type a native Gnome::Gtk3::RadioMenuItem) group the radio menu item inside, or undefined
:group, :label
Creates a new Gnome::Gtk3::RadioMenuItem whose child is a simple Gnome::Gtk3::Label.
multi method new ( N-GSList :$group!, Str :$label! )
N-GSList $group; (element-type a native Gnome::Gtk3::RadioMenuItem) group the radio menu item inside, or undefined
Str $label; the text for the label
:group, :mnemonic
Creates a new Gnome::Gtk3::RadioMenuItem containing a label. The label will be created using the :mnemonic
option to the .new()
call of Gnome::Gtk3::Label, so underscores in label indicate the mnemonic for the menu item.
multi method new ( N-GSList :$group!, Str :$mnemonic! )
N-GSList $group; (element-type a native Gnome::Gtk3::RadioMenuItem) group the radio menu item inside, or undefined
Str $mnemonic; the text of the menu item, with an underscore in front of the mnemonic character
:group-widget
Create a new RadioMenuItem object.
multi method new ( N-GObject :$group-widget! )
N-GObject $group-widget; a Gnome::Gtk3::RadioMenuItem used to group the radio menu items. The first one creates the group.
:group-widget, :label
Creates a new Gnome::Gtk3::RadioMenuItem whose child is a simple Gnome::Gtk3::Label.
multi method new ( N-GObject :$group-widget!, Str :$label! )
N-GSList $group; (element-type a native Gnome::Gtk3::RadioMenuItem) group the radio menu item inside, or undefined
Str $label; the text for the label
:group-widget, :mnemonic
Creates a new Gnome::Gtk3::RadioMenuItem containing a label. The label will be created using the :mnemonic
option to the .new()
call of Gnome::Gtk3::Label, so underscores in label indicate the mnemonic for the menu item.
multi method new ( N-GObject :$group-widget!, Str :$mnemonic! )
N-GSList $group; (element-type a native Gnome::Gtk3::RadioMenuItem) group the radio menu item inside, or undefined
Str $mnemonic; the text of the menu item, with an underscore in front of the mnemonic character
:native-object
Create a RadioMenuItem object using a native object from elsewhere. See also Gnome::N::TopLevelClassSupport.
multi method new ( N-GObject :$native-object! )
:build-id
Create a RadioMenuItem object using a native object returned from a builder. See also Gnome::GObject::Object.
multi method new ( Str :$build-id! )
_gtk_radio_menu_item_new
Creates a new Gnome::Gtk3::RadioMenuItem.
Returns: a new Gnome::Gtk3::RadioMenuItem
method _gtk_radio_menu_item_new ( N-GSList $group --> N-GObject )
N-GSList $group; (element-type Gnome::Gtk3::RadioMenuItem) (allow-none): the group to which the radio menu item is to be attached, or
Any
_gtk_radio_menu_item_new_with_label
Creates a new Gnome::Gtk3::RadioMenuItem whose child is a simple Gnome::Gtk3::Label.
Returns: (transfer none): A new Gnome::Gtk3::RadioMenuItem
method _gtk_radio_menu_item_new_with_label ( N-GSList $group, Str $label --> N-GObject )
N-GSList $group; (element-type Gnome::Gtk3::RadioMenuItem) (allow-none): group the radio menu item is inside, or
Any
Str $label; the text for the label
_gtk_radio_menu_item_new_with_mnemonic
Creates a new Gnome::Gtk3::RadioMenuItem containing a label. The label will be created using gtk_label_new_with_mnemonic()
, so underscores in label indicate the mnemonic for the menu item.
Returns: a new Gnome::Gtk3::RadioMenuItem
method _gtk_radio_menu_item_new_with_mnemonic ( N-GSList $group, Str $label --> N-GObject )
N-GSList $group; (element-type Gnome::Gtk3::RadioMenuItem) (allow-none): group the radio menu item is inside, or
Any
Str $label; the text of the button, with an underscore in front of the mnemonic character
_gtk_radio_menu_item_new_from_widget
Creates a new Gnome::Gtk3::RadioMenuItem adding it to the same group as group.
Returns: (transfer none): The new Gnome::Gtk3::RadioMenuItem
method _gtk_radio_menu_item_new_from_widget ( --> N-GObject )
_gtk_radio_menu_item_new_with_mnemonic_from_widget
Creates a new Gnome::Gtk3::RadioMenuItem containing a label. The label will be created using gtk_label_new_with_mnemonic()
, so underscores in label indicate the mnemonic for the menu item. The new Gnome::Gtk3::RadioMenuItem is added to the same group as group.
Returns: (transfer none): The new Gnome::Gtk3::RadioMenuItem
method _gtk_radio_menu_item_new_with_mnemonic_from_widget ( Str $label --> N-GObject )
Str $label; (allow-none): the text of the button, with an underscore in front of the mnemonic character
_gtk_radio_menu_item_new_with_label_from_widget
Creates a new Gnome::Gtk3::RadioMenuItem whose child is a simple Gnome::Gtk3::Label. The new Gnome::Gtk3::RadioMenuItem is added to the same group as group.
Returns: (transfer none): The new Gnome::Gtk3::RadioMenuItem
method _gtk_radio_menu_item_new_with_label_from_widget ( Str $label --> N-GObject )
Str $label; (allow-none): the text for the label
get-group
Returns the group to which the radio menu item belongs, as a GList of Gnome::Gtk3::RadioMenuItem. The list belongs to GTK+ and should not be freed.
Returns: (element-type Gnome::Gtk3::RadioMenuItem) (transfer none): the group of radio_menu_item
method get-group ( --> N-GSList )
set-group
Sets the group of a radio menu item, or changes it.
method set-group ( N-GSList $group )
N-GSList $group; (element-type Gnome::Gtk3::RadioMenuItem) (allow-none): the new group, or undefined.
join-group
Joins a Gnome::Gtk3::RadioMenuItem object to the group of another Gnome::Gtk3::RadioMenuItem object. This function should be used by language bindings to avoid the memory manangement of the opaque GSList of gtk_radio_menu_item_get_group()
and gtk_radio_menu_item_set_group()
. A common way to set up a group of Gnome::Gtk3::RadioMenuItem instances is: |[ Gnome::Gtk3::RadioMenuItem *last_item = NULL; while ( ...more items to add... ) { Gnome::Gtk3::RadioMenuItem *radio_item; radio_item = gtk_radio_menu_item_new (...); gtk_radio_menu_item_join_group (radio_item, last_item); last_item = radio_item; } ]|
method join-group ( N-GObject $group-source )
N-GObject $group_source; (allow-none): a Gnome::Gtk3::RadioMenuItem whose group we are joining, or
Any
to remove the radio_menu_item from its current group
Signals
There are two ways to connect to a signal. The first option you have is to use register-signal()
from Gnome::GObject::Object. The second option is to use g_signal_connect_object()
directly from Gnome::GObject::Signal.
First method
The positional arguments of the signal handler are all obligatory as well as their types. The named attributes :$widget
and user data are optional.
# handler method method mouse-event ( GdkEvent $event, :$widget ) { ... } # connect a signal on window object my Gnome::Gtk3::Window $w .= new( ... ); $w.register-signal( self, 'mouse-event', 'button-press-event');
Second method
my Gnome::Gtk3::Window $w .= new( ... ); my Callable $handler = sub ( N-GObject $native, GdkEvent $event, OpaquePointer $data ) { ... } $w.connect-object( 'button-press-event', $handler);
Also here, the types of positional arguments in the signal handler are important. This is because both methods register-signal()
and g_signal_connect_object()
are using the signatures of the handler routines to setup the native call interface.
Supported signals
group-changed
method handler ( Int :$_handle_id, Gnome::GObject::Object :_widget($radiomenuitem), *%user-options );
$radiomenuitem;
Properties
An example of using a string type property of a Gnome::Gtk3::Label object. This is just showing how to set/read a property, not that it is the best way to do it. This is because a) The class initialization often provides some options to set some of the properties and b) the classes provide many methods to modify just those properties. In the case below one can use new(:label('my text label')) or gtk_label_set_text('my text label').
my Gnome::Gtk3::Label $label .= new; my Gnome::GObject::Value $gv .= new(:init(G_TYPE_STRING)); $label.g-object-get-property( 'label', $gv); $gv.g-value-set-string('my text label');
Supported properties
Group
The radio menu item whose group this widget belongs to.
* Since: 2.8Widget type: GTK_TYPE_RADIO_MENU_ITEM
The Gnome::GObject::Value type of property group is G_TYPE_OBJECT
.