# Hand over control to the GTK event loop
fun gtk_main `{ gtk_main(); `}
+# Run a single iteration of the main loop, block until an event is noticed
+fun gtk_main_iteration: Bool `{ return gtk_main_iteration(); `}
+
+# Run a single iteration of the main loop, only block until an event is noticed if `blocking`
+fun gtk_main_iteration_do(blocking: Bool): Bool `{ return gtk_main_iteration_do(blocking); `}
+
# Quit the GTK event loop and clean up the system
fun gtk_main_quit `{ gtk_main_quit(); `}
return self == o;
`}
- fun request_size(width, height: Int) `{
+ # Set the minimum dimension of this widget
+ fun set_size_request(width, height: Int) `{
gtk_widget_set_size_request(self, width, height);
`}
# 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
+
+# How a widget deals with extra space
+extern class GtkAlign `{ GtkAlign `}
+ new fill `{ return GTK_ALIGN_FILL; `}
+ new start `{ return GTK_ALIGN_START; `}
+ new align_end `{ return GTK_ALIGN_END; `}
+ new center `{ return GTK_ALIGN_CENTER; `}
+ new baseline `{ return GTK_ALIGN_BASELINE; `}
end
# Base class for widgets which contain other widgets
signal_connect("destroy", to_call, user_data)
end
+ # Resize the window as if the user had done so
+ fun resize(width, height: Int) `{
+ return gtk_window_resize(self, width, height);
+ `}
+
fun resizable: Bool `{
return gtk_window_get_resizable(self);
`}
fun keep_below=(setting: Bool) `{
gtk_window_set_keep_below(self, setting);
`}
+
+ # Try to convince the window manage to decorate or not this window
+ fun decorated=(setting: Bool) `{ gtk_window_set_decorated(self, setting); `}
end
# A bin with a decorative frame and optional label
return (GtkFrame *)gtk_frame_new(String_to_cstring(lbl));
`}
- fun frame_label: String `{
- return NativeString_to_s((char *)gtk_frame_get_label(self));
+ fun frame_label: String import CString.to_s_with_copy `{
+ return CString_to_s_with_copy((char *)gtk_frame_get_label(self));
`}
fun frame_label=(lbl: String) import String.to_cstring `{
extern class GtkMisc `{GtkMisc *`}
super GtkWidget
- fun alignment: GtkAlignment is abstract
-
- fun alignment=(x: Float, y: Float) `{
+ fun set_alignment(x, y: Float) `{
gtk_misc_set_alignment(self, x, y);
`}
- fun padding: GtkAlignment is abstract
-
- fun padding=(x: Float, y: Float) `{
+ fun set_padding(x, y: Float) `{
gtk_misc_set_padding(self, x, y);
`}
-
end
# A single line text entry field
return (GtkEntry *)gtk_entry_new();
`}
- fun text: String import NativeString.to_s_with_copy `{
- return NativeString_to_s_with_copy((char *)gtk_entry_get_text(self));
+ fun text: String import CString.to_s_with_copy `{
+ return CString_to_s_with_copy((char *)gtk_entry_get_text(self));
`}
fun text=(value: String) import String.to_cstring `{
`}
# Returns the text of the label
- fun text: String import NativeString.to_s `{
- return NativeString_to_s((char*)gtk_label_get_text(self));
+ fun text: String import CString.to_s_with_copy `{
+ return CString_to_s_with_copy((char*)gtk_label_get_text(self));
`}
# Sets the angle of rotation for the label.
return gtk_label_get_angle(self);
`}
+ # Set simple formatted text content from a `format` string and the `content` which is escaped
+ #
+ # ~~~nitish
+ # GtkLabel lbl = new GtkLabel("Non-formatted text")
+ # lbl.set_markup("<span style=\"italic\">\%s</span>".to_cstring,
+ # "Italic content")
+ # ~~~
+ fun set_markup(format, content: CString) `{
+ char *formatted = g_markup_printf_escaped(format, content);
+ gtk_label_set_markup(self, formatted);
+ g_free(formatted);
+ `}
+
+ # Set justification of the lines in the label relative to each other
+ fun justify=(value: GtkJustification) `{ gtk_label_set_justify(self, value); `}
+
+ # Get justification of the lines in the label relative to each other
+ fun justify: GtkJustification `{ return gtk_label_get_justify(self); `}
end
# A widget displaying an image
return (GtkButton *)gtk_button_new_from_stock(String_to_cstring(stock_id));
`}
- fun text: String `{
- return NativeString_to_s((char *)gtk_button_get_label(self));
+ fun text: String import CString.to_s_with_copy `{
+ return CString_to_s_with_copy((char *)gtk_button_get_label(self));
`}
fun text=(value: String) import String.to_cstring `{
signal_connect("clicked", to_call, user_data)
end
+ # Set the image of button to the given widget
+ fun image=(image: GtkWidget) `{
+ gtk_button_set_image(self, image);
+ `}
+
+ # Get the widget that is currenty set as the image of button
+ fun image: GtkWidget `{
+ return gtk_button_get_image(self);
+ `}
end
# A button which pops up a scale
gtk_expander_set_spacing(self, pixels);
`}
- fun label_text: String `{
- return NativeString_to_s((char *)gtk_expander_get_label(self));
+ fun label_text: String import CString.to_s_with_copy `{
+ return CString_to_s_with_copy((char *)gtk_expander_get_label(self));
`}
fun label_text=(lbl: String) import String.to_cstring `{
gtk_combo_box_set_id_column(self, id_column);
`}
- fun active_id: String `{
- return NativeString_to_s((char *)gtk_combo_box_get_active_id(self));
+ fun active_id: String import CString.to_s_with_copy `{
+ return CString_to_s_with_copy((char *)gtk_combo_box_get_active_id(self));
`}
fun active_id=(id_active: String) import String.to_cstring `{
gtk_combo_box_popdown(self);
`}
- fun title: String `{
- return NativeString_to_s((char *)gtk_combo_box_get_title(self));
+ fun title: String import CString.to_s_with_copy `{
+ return CString_to_s_with_copy((char *)gtk_combo_box_get_title(self));
`}
fun title=(t: String) import String.to_cstring `{
extern class GdkRGBA `{GdkRGBA*`}
end
-