rename `NativeString` to `CString`
[nit.git] / lib / gtk / v3_4 / gtk_core.nit
index f7d2c78..c3617f1 100644 (file)
@@ -92,7 +92,8 @@ extern class GtkWidget `{GtkWidget *`}
                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);
        `}
 
@@ -137,6 +138,21 @@ extern class GtkWidget `{GtkWidget *`}
 
        # 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
@@ -199,6 +215,11 @@ extern class GtkWindow `{GtkWindow *`}
                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);
        `}
@@ -310,8 +331,8 @@ extern class GtkFrame `{GtkFrame *`}
                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 `{
@@ -436,18 +457,13 @@ end
 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
@@ -459,8 +475,8 @@ extern class GtkEntry `{GtkEntry *`}
                 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 `{
@@ -666,8 +682,8 @@ extern class GtkLabel `{GtkLabel *`}
        `}
 
        # 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.
@@ -681,6 +697,24 @@ extern class GtkLabel `{GtkLabel *`}
                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
@@ -769,8 +803,8 @@ extern class GtkButton `{GtkButton *`}
                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 `{
@@ -842,8 +876,8 @@ extern class GtkExpander `{GtkExpander *`}
                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 `{
@@ -961,8 +995,8 @@ extern class GtkComboBox `{GtkComboBox *`}
                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 `{
@@ -985,8 +1019,8 @@ extern class GtkComboBox `{GtkComboBox *`}
                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 `{