1 # This file is part of NIT ( http://www.nitlanguage.org ).
3 # Copyright 2011-2013 Alexis Laferrière <alexis.laf@xymus.net>
4 # Copyright 2013 Nathan Heu <heu.nathan@courrier.uqam.ca>
6 # Licensed under the Apache License, Version 2.0 (the "License");
7 # you may not use this file except in compliance with the License.
8 # You may obtain a copy of the License at
10 # http://www.apache.org/licenses/LICENSE-2.0
12 # Unless required by applicable law or agreed to in writing, software
13 # distributed under the License is distributed on an "AS IS" BASIS,
14 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 # See the License for the specific language governing permissions and
16 # limitations under the License.
18 module gtk_assistant
is pkgconfig
("gtk+-3.0")
26 #A widget used to guide users through multi-step operations
27 #@https://developer.gnome.org/gtk3/stable/GtkAssistant.html
28 extern class GtkAssistant `{GtkAssistant *`}
32 return (GtkAssistant *)gtk_assistant_new
( );
35 fun current_page : Int is extern `{
36 return gtk_assistant_get_current_page
( recv
);
39 fun current_page=( page_num : Int ) is extern `{
40 gtk_assistant_set_current_page
( recv
, page_num
);
43 fun number_pages : Int is extern `{
44 return gtk_assistant_get_n_pages
( recv
);
47 fun get_page( page_num : Int ) : GtkWidget is extern `{
48 return gtk_assistant_get_nth_page
( recv
, page_num
);
51 fun prepend( page : GtkWidget ) : Int is extern `{
52 return gtk_assistant_prepend_page
( recv
, page
);
55 fun append( page : GtkWidget ) : Int is extern `{
56 return gtk_assistant_append_page
( recv
, page
);
59 fun insert( page : GtkWidget, position : Int ) : Int is extern `{
60 return gtk_assistant_insert_page
( recv
, page
, position
);
63 fun remove( page_num : Int ) is extern `{
64 gtk_assistant_remove_page
( recv
, page_num
);
67 fun get_page_type( page : GtkWidget ) : GtkAssistantPageType is extern `{
68 return gtk_assistant_get_page_type
( recv
, page
);
71 fun set_page_type( page : GtkWidget, t : GtkAssistantPageType) is extern `{
72 gtk_assistant_set_page_type
( recv
, page
, t
);
75 fun get_page_title( page : GtkWidget ) : String import NativeString.to_s `{
76 return NativeString_to_s( (char
*)gtk_assistant_get_page_title
( recv
, page
) );
79 fun set_page_title( page : GtkWidget, title : String) is extern import String.to_cstring `{
80 gtk_assistant_set_page_title
( recv
, page
, String_to_cstring( title
) );
83 fun set_page_complete( page : GtkWidget, is_complete : Bool ) is extern `{
84 gtk_assistant_set_page_complete
( recv
, page
, is_complete
);
87 fun get_page_complete( page : GtkWidget ) : Bool is extern `{
88 return gtk_assistant_get_page_complete
( recv
, page
);
91 fun remove_action_widget( child : GtkWidget ) is extern `{
92 gtk_assistant_remove_action_widget
( recv
, child
);
95 fun add_action_widget( child : GtkWidget ) is extern `{
96 gtk_assistant_add_action_widget
( recv
, child
);
99 fun update_buttons_state is extern `{
100 gtk_assistant_update_buttons_state
( recv
);
103 fun commit is extern `{
104 gtk_assistant_commit
( recv
);
107 fun next_page is extern `{
108 gtk_assistant_next_page
( recv
);
111 fun previous_page is extern `{
112 gtk_assistant_previous_page
( recv
);
116 #enum GtkAssistantPageType
117 #An enum for determining the page role inside the GtkAssistant. It's used to handle buttons sensitivity and visibility.
118 #@https://developer.gnome.org/gtk3/stable/GtkAssistant.html#GtkAssistantPageType
119 extern class GtkAssistantPageType `{GtkAssistantPageType`}
120 #The page has regular contents. Both the Back and forward buttons will be shown.
121 new content
`{ return GTK_ASSISTANT_PAGE_CONTENT; `}
123 #The page contains an introduction to the assistant task. Only the Forward button will be shown if there is a next page.
124 new intro `{ return GTK_ASSISTANT_PAGE_INTRO; `}
126 #The page lets the user confirm or deny the changes. The Back and Apply buttons will be shown.
127 new confirm
`{ return GTK_ASSISTANT_PAGE_CONFIRM; `}
129 #The page informs the user of the changes done. Only the Close button will be shown.
130 new summary `{ return GTK_ASSISTANT_PAGE_SUMMARY; `}
132 #Used for tasks that take a long time to complete, blocks the assistant until the page is marked as complete. Only the back button will be shown.
133 new progress
`{ return GTK_ASSISTANT_PAGE_PROGRESS; `}
135 #Used for when other page types are not appropriate. No buttons will be shown, and the application must add its own buttons through gtk_assistant_add_action_widget().
136 new custom `{ return GTK_ASSISTANT_PAGE_CUSTOM; `}