Base class for all widgets

See: https://developer.gnome.org/gtk3/stable/GtkWidget.html

Introduced properties

fun bg_color=(state: GtkStateType, color: GdkRGBA)

gtk :: GtkWidget :: bg_color=

fun destroy

gtk :: GtkWidget :: destroy

Destroy the widget
fun fg_color=(state: GtkStateType, color: GdkRGBA)

gtk :: GtkWidget :: fg_color=

with gtk it's possible to set fg_color to all widget: is it correct? is fg color inherited?
fun halign=(value: GtkAlign)

gtk :: GtkWidget :: halign=

Horizontal alignement of this widget
fun hide

gtk :: GtkWidget :: hide

Hide the widget (reverse the effects of show)
fun sensitive: Bool

gtk :: GtkWidget :: sensitive

return the sensitivity of the widget
fun sensitive=(sensitive: Bool)

gtk :: GtkWidget :: sensitive=

Sets the sensitivity of a widget. sensitive -> the user can interact with it.
fun set_size_request(width: Int, height: Int)

gtk :: GtkWidget :: set_size_request

Set the minimum dimension of this widget
fun show

gtk :: GtkWidget :: show

Show the widget on screen
fun signal_connect(signal_name: String, to_call: GtkCallable, user_data: nullable Object)

gtk :: GtkWidget :: signal_connect

fun valign=(value: GtkAlign)

gtk :: GtkWidget :: valign=

Vertical alignement of this widget
fun visible: Bool

gtk :: GtkWidget :: visible

Get the visibility of the widget, check if it's parents are visible too
fun visible=(visible: Bool)

gtk :: GtkWidget :: visible=

Set the visibility of the widget
fun visible_self: Bool

gtk :: GtkWidget :: visible_self

Get the visibility of the widget only

Redefined properties

redef fun ==(o: nullable Object): Bool

gtk $ GtkWidget :: ==

Have self and other the same value?
redef type SELF: GtkWidget

gtk $ GtkWidget :: SELF

Type of this instance, automatically specialized in every class

All properties

fun !=(other: nullable Object): Bool

core :: Object :: !=

Have self and other different values?
fun ==(other: nullable Object): Bool

core :: Object :: ==

Have self and other the same value?
type CLASS: Class[SELF]

core :: Object :: CLASS

The type of the class of self.
type SELF: Object

core :: Object :: SELF

Type of this instance, automatically specialized in every class
fun address_is_null: Bool

core :: Pointer :: address_is_null

Is the address behind this Object at NULL?
fun bg_color=(state: GtkStateType, color: GdkRGBA)

gtk :: GtkWidget :: bg_color=

protected fun class_factory(name: String): CLASS

core :: Object :: class_factory

Implementation used by get_class to create the specific class.
fun class_name: String

core :: Object :: class_name

The class name of the object.
fun destroy

gtk :: GtkWidget :: destroy

Destroy the widget
fun fg_color=(state: GtkStateType, color: GdkRGBA)

gtk :: GtkWidget :: fg_color=

with gtk it's possible to set fg_color to all widget: is it correct? is fg color inherited?
fun free

core :: Pointer :: free

Free the memory pointed by this pointer
fun get_class: CLASS

core :: Object :: get_class

The meta-object representing the dynamic type of self.
fun halign=(value: GtkAlign)

gtk :: GtkWidget :: halign=

Horizontal alignement of this widget
fun hash: Int

core :: Object :: hash

The hash code of the object.
fun hide

gtk :: GtkWidget :: hide

Hide the widget (reverse the effects of show)
init init

core :: Object :: init

fun inspect: String

core :: Object :: inspect

Developer readable representation of self.
protected fun inspect_head: String

core :: Object :: inspect_head

Return "CLASSNAME:#OBJECTID".
intern fun is_same_instance(other: nullable Object): Bool

core :: Object :: is_same_instance

Return true if self and other are the same instance (i.e. same identity).
fun is_same_serialized(other: nullable Object): Bool

core :: Object :: is_same_serialized

Is self the same as other in a serialization context?
intern fun is_same_type(other: Object): Bool

core :: Object :: is_same_type

Return true if self and other have the same dynamic type.
init nul: Pointer

core :: Pointer :: nul

C NULL pointer
intern fun object_id: Int

core :: Object :: object_id

An internal hash code for the object based on its identity.
fun output

core :: Object :: output

Display self on stdout (debug only).
intern fun output_class_name

core :: Object :: output_class_name

Display class name on stdout (debug only).
fun sensitive: Bool

gtk :: GtkWidget :: sensitive

return the sensitivity of the widget
fun sensitive=(sensitive: Bool)

gtk :: GtkWidget :: sensitive=

Sets the sensitivity of a widget. sensitive -> the user can interact with it.
fun serialization_hash: Int

core :: Object :: serialization_hash

Hash value use for serialization
fun set_size_request(width: Int, height: Int)

gtk :: GtkWidget :: set_size_request

Set the minimum dimension of this widget
fun show

gtk :: GtkWidget :: show

Show the widget on screen
fun signal_connect(signal_name: String, to_call: GtkCallable, user_data: nullable Object)

gtk :: GtkWidget :: signal_connect

intern fun sys: Sys

core :: Object :: sys

Return the global sys object, the only instance of the Sys class.
abstract fun to_jvalue(env: JniEnv): JValue

core :: Object :: to_jvalue

fun to_s: String

core :: Object :: to_s

User readable representation of self.
fun valign=(value: GtkAlign)

gtk :: GtkWidget :: valign=

Vertical alignement of this widget
fun visible: Bool

gtk :: GtkWidget :: visible

Get the visibility of the widget, check if it's parents are visible too
fun visible=(visible: Bool)

gtk :: GtkWidget :: visible=

Set the visibility of the widget
fun visible_self: Bool

gtk :: GtkWidget :: visible_self

Get the visibility of the widget only
package_diagram gtk::GtkWidget GtkWidget core::Pointer Pointer gtk::GtkWidget->core::Pointer core::Object Object core::Pointer->core::Object ...core::Object ... ...core::Object->core::Object gtk::GtkWidget... ... gtk::GtkWidget...->gtk::GtkWidget

Ancestors

interface Object

core :: Object

The root of the class hierarchy.

Parents

extern class Pointer

core :: Pointer

Pointer classes are used to manipulate extern C structures.

Children

extern class GtkCalendar

gtk :: GtkCalendar

Displays a calendar and allows the user to select a date
extern class GtkContainer

gtk :: GtkContainer

Base class for widgets which contain other widgets
extern class GtkEntry

gtk :: GtkEntry

A single line text entry field
extern class GtkMisc

gtk :: GtkMisc

Base class for widgets with alignments and padding
extern class GtkOrientable

gtk :: GtkOrientable

A widget that can switch orientation
extern class GtkProgressBar

gtk :: GtkProgressBar

A widget which indicates progress visually
extern class GtkRange

gtk :: GtkRange

Base class for widgets which visualize an adjustment
extern class GtkSeparator

gtk :: GtkSeparator

A separator widget
extern class GtkSpinner

gtk :: GtkSpinner

Show a spinner animation
extern class GtkSwitch

gtk :: GtkSwitch

A "light switch" style toggle

Descendants

extern class GtkAboutDialog

gtk :: GtkAboutDialog

Display information about an application
extern class GtkAlignment

gtk :: GtkAlignment

A widget which controls the alignment and size of its child
extern class GtkAppChooserDialog

gtk :: GtkAppChooserDialog

An application chooser dialog
extern class GtkArrow

gtk :: GtkArrow

Displays an arrow
extern class GtkAssistant

gtk :: GtkAssistant

A widget used to guide users through multi-step operations
extern class GtkBin

gtk :: GtkBin

A container with just one child
extern class GtkBox

gtk :: GtkBox

A container box
extern class GtkButton

gtk :: GtkButton

A widget that emits a signal when clicked on
extern class GtkCheckButton

gtk :: GtkCheckButton

Check box next to a label
extern class GtkColorButton

gtk :: GtkColorButton

A button to launch a color selection dialog
extern class GtkColorChooserDialog

gtk :: GtkColorChooserDialog

A dialog for choosing colors
extern class GtkComboBox

gtk :: GtkComboBox

An abstract class for laying out GtkCellRenderers
extern class GtkDialog

gtk :: GtkDialog

Create popup windows
extern class GtkExpander

gtk :: GtkExpander

A container which can hide its child
extern class GtkFileChooserDialog

gtk :: GtkFileChooserDialog

A file chooser dialog, suitable for "File/Open" or "File/Save" commands
extern class GtkFontChooserDialog

gtk :: GtkFontChooserDialog

A dialog for selecting fonts
extern class GtkFrame

gtk :: GtkFrame

A bin with a decorative frame and optional label
extern class GtkGrid

gtk :: GtkGrid

Pack widgets in a rows and columns
extern class GtkHeaderBar

gtk :: GtkHeaderBar

Horizontal container with a title and subtitle
extern class GtkImage

gtk :: GtkImage

A widget displaying an image
extern class GtkLabel

gtk :: GtkLabel

A widget that displays a small to medium amount of text
extern class GtkLinkButton

gtk :: GtkLinkButton

Create buttons bound to a URL
extern class GtkListBox

gtk :: GtkListBox

A vertical container of GtkListBoxRow
extern class GtkListBoxRow

gtk :: GtkListBoxRow

A single row of a GtkListBox
extern class GtkLockButton

gtk :: GtkLockButton

A widget to unlock or lock privileged operations
extern class GtkMessageDialog

gtk :: GtkMessageDialog

A convenient message window
extern class GtkRecentChooserDialog

gtk :: GtkRecentChooserDialog

Displays recently used files in a dialog
extern class GtkScale

gtk :: GtkScale

A slider widget for selecting a value from a range
extern class GtkScaleButton

gtk :: GtkScaleButton

A button which pops up a scale
extern class GtkScrollbar

gtk :: GtkScrollbar

A scrollbar
extern class GtkScrolledWindow

gtk :: GtkScrolledWindow

Contains a single widget and scrollbars
extern class GtkSearchEntry

gtk :: GtkSearchEntry

An entry which shows a search icon
extern class GtkSpinButton

gtk :: GtkSpinButton

Retrieve an integer or floating-point number from the user
extern class GtkStack

gtk :: GtkStack

Container with a single child visible at a time
extern class GtkToggleButton

gtk :: GtkToggleButton

Button remaining "pressed-in" when clicked
extern class GtkWindow

gtk :: GtkWindow

Toplevel which can contain other widgets

Class definitions

gtk $ GtkWidget
# Base class for all widgets
# See: https://developer.gnome.org/gtk3/stable/GtkWidget.html
extern class GtkWidget `{GtkWidget *`}
	fun show_all `{ gtk_widget_show_all(self); `}

	fun signal_connect(signal_name: String, to_call: GtkCallable, user_data: nullable Object) import String.to_cstring, GtkCallable.signal, Object.as not nullable `{
		NitGtkSignal *data = malloc(sizeof(NitGtkSignal));

		GtkCallable_incr_ref(to_call);
		Object_incr_ref(user_data);

		data->to_call = to_call;
		data->user_data = user_data;

		/*Use G_CALLBACK() to cast the callback function to a GCallback*/
		g_signal_connect(self,
		                 String_to_cstring(signal_name),
		                 G_CALLBACK(nit_gtk_callback_func),
		                 data);
	`}

	redef fun ==(o) do return o isa GtkWidget and equal_to_gtk_widget(o)

	private fun equal_to_gtk_widget(o: GtkWidget): Bool `{
		return self == o;
	`}

	# Set the minimum dimension of this widget
	fun set_size_request(width, height: Int) `{
		gtk_widget_set_size_request(self, width, height);
	`}

	fun bg_color=(state: GtkStateType, color: GdkRGBA) `{
		gtk_widget_override_background_color(self, state, color);
	`}

	# with gtk it's possible to set fg_color to all widget: is it correct? is fg color inherited?
	# GdkColor color;
	fun fg_color=(state: GtkStateType, color: GdkRGBA) `{
		gtk_widget_override_color(self, state, color);
	`}

	# Sets the sensitivity of a widget. sensitive -> the user can interact with it.
	# Insensitive -> widget "grayed out" and the user can"t interact with them
	fun sensitive=(sensitive: Bool) `{
		gtk_widget_set_sensitive(self, sensitive);
	`}

	# return the sensitivity of the widget
	fun sensitive: Bool `{
		return gtk_widget_get_sensitive(self);
	`}

	# Set the visibility of the widget
	fun visible=(visible: Bool) `{
		gtk_widget_set_visible(self, visible);
	`}

	# Get the visibility of the widget only
	fun visible_self: Bool `{
		return gtk_widget_get_visible(self);
	`}

	# Destroy the widget
	fun destroy `{ gtk_widget_destroy(self); `}

	# Show the widget on screen
	#
	# See: `show_all` to recursively show this widget and contained widgets.
	fun show `{ gtk_widget_show(self); `}

	# Hide the widget (reverse the effects of `show`)
	fun hide `{ gtk_widget_hide(self); `}

	# Vertical alignement of this widget
	fun valign=(value: GtkAlign) `{ gtk_widget_set_valign(self, value); `}

	# Horizontal alignement of this widget
	fun halign=(value: GtkAlign) `{ gtk_widget_set_halign(self, value); `}
end
lib/gtk/v3_4/gtk_core.nit:68,1--147,3

gtk :: v3_8 $ GtkWidget
redef class GtkWidget
	# Get the visibility of the widget, check if it's parents are visible too
	fun visible: Bool `{
		return gtk_widget_is_visible(self);
	`}
end
lib/gtk/v3_8.nit:22,1--27,3