I mean it will be good when TJF fix it :)
I dont have book for GTK 3 and all samples on The Net are old
Code: Select all
#LIBPATH "C:\opt\GTK-3.0.9\lib"
#include once "TJF/gtk.bi"
#define NULL 0
SUB show_info CDECL(BYVAL widget AS GtkWidget PTR, BYVAL www AS GtkWidget PTR)
Dim dialog As GtkWidget Ptr = gtk_message_dialog_new(GTK_WINDOW(www), GTK_DIALOG_DESTROY_WITH_PARENT, GTK_MESSAGE_INFO, GTK_BUTTONS_OK, "Download Completed", "title")
gtk_window_set_title(GTK_WINDOW(dialog), "Information")
gtk_dialog_run(GTK_DIALOG(dialog))
gtk_widget_destroy(dialog)
End SUB
SUB show_error CDECL(BYVAL widget AS GtkWidget PTR, BYVAL www AS GtkWidget PTR)
Dim dialog As GtkWidget Ptr = gtk_message_dialog_new(GTK_WINDOW(www), GTK_DIALOG_DESTROY_WITH_PARENT, GTK_MESSAGE_ERROR, GTK_BUTTONS_OK, "Error loading file")
gtk_window_set_title(GTK_WINDOW(dialog), "Error")
gtk_dialog_run(GTK_DIALOG(dialog))
gtk_widget_destroy(dialog)
end sub
SUB show_question CDECL(BYVAL widget AS GtkWidget PTR, BYVAL www AS GtkWidget PTR)
print "how do i read answer"
Dim dialog As GtkWidget Ptr = gtk_message_dialog_new(GTK_WINDOW(www), GTK_DIALOG_DESTROY_WITH_PARENT, GTK_MESSAGE_QUESTION, GTK_BUTTONS_YES_NO, "Are you sure to quit?")
gtk_window_set_title(GTK_WINDOW(dialog), "Question")
gtk_dialog_run(GTK_DIALOG(dialog))
gtk_widget_destroy(dialog)
End Sub
SUB show_warning CDECL(BYVAL widget AS GtkWidget PTR, BYVAL www AS GtkWidget PTR)
Dim dialog As GtkWidget Ptr = gtk_message_dialog_new(GTK_WINDOW(www), GTK_DIALOG_DESTROY_WITH_PARENT, GTK_MESSAGE_WARNING, GTK_BUTTONS_OK, "Unallowed operation")
gtk_window_set_title(GTK_WINDOW(dialog), "Warning")
gtk_dialog_run(GTK_DIALOG(dialog))
gtk_widget_destroy(dialog)
End sub
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
SUB Dialog1 CDECL (BYVAL widget AS GtkWidget PTR, BYVAL www AS GtkWidget PTR)
print "ok "
dim s as string
Dim dialog As GtkWidget Ptr = gtk_message_dialog_new( GTK_WINDOW(www), GTK_DIALOG_DESTROY_WITH_PARENT, GTK_MESSAGE_ERROR, GTK_BUTTONS_CLOSE, StrPtr( s ))
gtk_dialog_run( GTK_DIALOG( dialog ) )
gtk_widget_destroy( dialog )
end sub
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
SUB Dialog2 CDECL (BYVAL widget AS GtkWidget PTR, BYVAL www AS GtkWidget PTR)
print "This is OK"
Dim s as String
dim filename as string
filename="FN"
dim errno as integer
errno = 1167
Dim dialog As GtkWidget Ptr = gtk_message_dialog_new (GTK_WINDOW(www), GTK_DIALOG_DESTROY_WITH_PARENT, GTK_MESSAGE_ERROR, GTK_BUTTONS_CLOSE, "Error loading file '%s': %s", filename, g_strerror (errno))
gtk_dialog_run( GTK_DIALOG( dialog ) )
gtk_widget_destroy( dialog )
end sub
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
SUB Dialog3 CDECL (BYVAL widget AS GtkWidget PTR, BYVAL www AS GtkWidget PTR)
print "problem 111"
'dim as GdkPixbuf ptr pixbuf = gdk_pixbuf_new_from_file("mypic.png", NULL)
'dim as GtkWidget ptr dialog = gtk_about_dialog_new(GTK_WINDOW(www))
'gtk_about_dialog_set_name(GTK_ABOUT_DIALOG(dialog), "yyyyyyyyyyy")
'gtk_about_dialog_set_version(GTK_ABOUT_DIALOG(dialog), "0.9")
'gtk_about_dialog_set_copyright(GTK_ABOUT_DIALOG(dialog), "OOOOOOOOOOOOOOO");
'gtk_about_dialog_set_comments(GTK_ABOUT_DIALOG(dialog), "dddddddddddddddddddddddddddddddddddddddd")
'gtk_about_dialog_set_website(GTK_ABOUT_DIALOG(dialog), "http://www.ssss.net")
'gtk_about_dialog_set_logo(GTK_ABOUT_DIALOG(dialog), pixbuf)
'g_object_unref(pixbuf), pixbuf = NULL
'gtk_dialog_run(GTK_DIALOG (dialog))
'gtk_widget_destroy(dialog)
end sub
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
SUB show_ColorDialog CDECL (BYVAL widget AS GtkWidget PTR, BYVAL label AS GtkWidget PTR)
Dim as GtkResponseType result
dim as GtkColorSelection ptr colorsel
dim as GtkWidget ptr dialog = gtk_color_selection_dialog_new("Color")
result = gtk_dialog_run(GTK_DIALOG(dialog))
print "problem 100"
' RESPONSE_HELP Returned by Help buttons in GTK+ dialogs.
' -10 Gtk::RESPONSE_APPLY Returned by Apply buttons in GTK+ dialogs.
' -9 Gtk::RESPONSE_NO Returned by No buttons in GTK+ dialogs.
' -8 Gtk::RESPONSE_YES Returned by Yes buttons in GTK+ dialogs.
' -7 Gtk::RESPONSE_CLOSE Returned by Close buttons in GTK+ dialogs.
' -6 Gtk::RESPONSE_CANCEL Returned by Cancel buttons in GTK+ dialogs.
' -5 Gtk::RESPONSE_OK Returned by OK buttons in GTK+ dialogs.
' -4 Gtk::RESPONSE_DELETE_EVENT Returned if the dialog is deleted.
' -3 Gtk::RESPONSE_ACCEPT Generic response id, not used by GTK+ dialogs.
' -2 Gtk::RESPONSE_REJECT Generic response id, not used by GTK+ dialogs.
' -1 Gtk::RESPONSE_NONE
if (result = GTK_RESPONSE_OK) Then
'dim as GdkColor color
'colorsel = GTK_COLOR_SELECTION(GTK_COLOR_SELECTION_DIALOG(dialog)->colorsel)
'gtk_color_selection_get_current_color(colorsel, @color)
'gtk_widget_modify_fg(GTK_WIDGET(label), GTK_STATE_NORMAL, color)
end if
gtk_widget_destroy(dialog)
end sub
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
SUB show_FileDialog CDECL (BYVAL widget AS GtkWidget PTR, BYVAL label AS GtkWidget PTR)
print "Test 5 "
'Dim chooser As GtkWidget Ptr = gtk_file_chooser_dialog_new ("TITLE", NULL, GTK_FILE_CHOOSER_ACTION_OPEN, "aa")
'GTK_FILE_CHOOSER_ACTION_OPEN, GTK_FILE_CHOOSER_ACTION_SAVE,GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER, GTK_FILE_CHOOSER_ACTION_CREATE_FOLDER
'gtk_dialog_run(GTK_FILE_CHOOSER_DIALOG( chooser ))
'gtk_widget_destroy( chooser )
end sub
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
SUB show_FontDialog CDECL (BYVAL widget AS GtkWidget PTR, BYVAL label AS GtkWidget PTR)
print "Test 6 "
dim as GtkResponseType result
dim as GtkWidget ptr dialog = gtk_font_selection_dialog_new("Select Font")
result = gtk_dialog_run(GTK_DIALOG(dialog))
if (result = GTK_RESPONSE_OK or result = GTK_RESPONSE_APPLY) Then
dim as PangoFontDescription ptr font_desc
dim as gchar ptr fontname = gtk_font_selection_dialog_get_font_name(GTK_FONT_SELECTION_DIALOG(dialog))
font_desc = pango_font_description_from_string(fontname)
'gtk_widget_modify_font(GTK_WIDGET(label), font_desc)
gtk_label_set_markup(GTK_LABEL(label), fontname)
g_free(fontname)
end if
gtk_widget_destroy(dialog)
end sub
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
SUB ColorDataDump CDECL (BYVAL widget AS GtkWidget PTR, BYVAL pr1 AS GtkWidget PTR)
print "== COLOR BUTTON DATA =="
'print gtk_file_chooser_get_current_folder_file (GTK_FILE_CHOOSER(pr1))
end sub
SUB FileDataDump CDECL (BYVAL widget AS GtkWidget PTR, BYVAL pr1 AS GtkWidget PTR)
print "== FILE BUTTON DATA =="
'print gtk_file_chooser_get_current_folder_file (GTK_COLOR_CHOOSER(pr1))
end sub
SUB FontDataDump CDECL (BYVAL widget AS GtkWidget PTR, BYVAL pr1 AS GtkWidget PTR)
print "== FONT BUTTON DATA =="
'print gtk_f_chooser_get_current_folder_file (GTK_FONT_CHOOSER(pr1))
end sub
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
gtk_init(@__FB_ARGC__, @__FB_ARGV__)
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Dim As GtkWidget Ptr win = gtk_window_new(GTK_WINDOW_TOPLEVEL)
gtk_window_set_title(GTK_WINDOW(win), "DIALOG DEMO")
gtk_widget_set_size_request(win, 700, 450)
gtk_window_set_position(GTK_WINDOW(win), GTK_WIN_POS_CENTER)
Dim As GtkWidget Ptr fixed = gtk_fixed_new()
gtk_container_add(GTK_CONTAINER(win), fixed)
Dim As GtkWidget Ptr button1 = gtk_button_new_with_label("Dialog 1")
gtk_widget_set_size_request(button1, 80, 30)
gtk_fixed_put(GTK_FIXED(fixed), button1, 50, 10)
Dim As GtkWidget Ptr button2 = gtk_button_new_with_label("Dialog 2")
gtk_widget_set_size_request(button2, 180, 30)
gtk_fixed_put(GTK_FIXED(fixed), button2, 150, 10)
Dim As GtkWidget Ptr button3 = gtk_button_new_with_label("About")
gtk_widget_set_size_request(button3, 180, 30)
gtk_fixed_put(GTK_FIXED(fixed), button3, 350, 10)
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Dim As GtkWidget Ptr button111 = gtk_button_new_with_label("INFO")
gtk_widget_set_size_request(button111, 100, 30)
gtk_fixed_put(GTK_FIXED(fixed), button111, 50, 50)
Dim As GtkWidget Ptr button222 = gtk_button_new_with_label("ERROR")
gtk_widget_set_size_request(button222, 100, 30)
gtk_fixed_put(GTK_FIXED(fixed), button222, 160, 50)
Dim As GtkWidget Ptr button333 = gtk_button_new_with_label("QUESTION")
gtk_widget_set_size_request(button333, 100, 30)
gtk_fixed_put(GTK_FIXED(fixed), button333, 280, 50)
Dim As GtkWidget Ptr button444 = gtk_button_new_with_label("WARNING")
gtk_widget_set_size_request(button444, 100, 30)
gtk_fixed_put(GTK_FIXED(fixed), button444, 400, 50)
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Dim As GtkWidget Ptr showColorbutton4 = gtk_button_new_with_label("Color Dialog")
gtk_widget_set_size_request(showColorbutton4, 180, 30)
gtk_fixed_put(GTK_FIXED(fixed), showColorbutton4, 500, 100)
Dim As GtkWidget Ptr showFilebutton5 = gtk_button_new_with_label("File Dialog")
gtk_widget_set_size_request(showFilebutton5, 180, 30)
gtk_fixed_put(GTK_FIXED(fixed), showFilebutton5, 500, 140)
Dim As GtkWidget Ptr showFontbutton6 = gtk_button_new_with_label("Font Dialog")
gtk_widget_set_size_request(showFontbutton6, 180, 30)
gtk_fixed_put(GTK_FIXED(fixed), showFontbutton6, 500, 180)
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Dim As GtkWidget Ptr buttonColorData = gtk_button_new_with_label("Color Chooser Data Print")
gtk_widget_set_size_request(buttonColorData, 180, 30)
gtk_fixed_put(GTK_FIXED(fixed), buttonColorData, 250, 100)
Dim As GtkWidget Ptr buttonFileData = gtk_button_new_with_label("File Chooser Data Print")
gtk_widget_set_size_request(buttonFileData, 180, 30)
gtk_fixed_put(GTK_FIXED(fixed), buttonFileData, 250, 140)
Dim As GtkWidget Ptr buttonFontData = gtk_button_new_with_label("Font Chooser Data Print")
gtk_widget_set_size_request(buttonFontData, 180, 30)
gtk_fixed_put(GTK_FIXED(fixed), buttonFontData, 250, 180)
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Dim As GtkWidget Ptr ColorButton = gtk_color_button_new ()
gtk_widget_set_size_request(ColorButton, 180, 30)
gtk_fixed_put(GTK_FIXED(fixed), ColorButton, 50, 100)
gtk_color_button_set_title(GTK_COLOR_BUTTON(ColorButton), "Choose Color")
Dim As GtkWidget Ptr FileButton = gtk_file_chooser_button_new ("Please say something here", GTK_FILE_CHOOSER_ACTION_OPEN)
'GTK_FILE_CHOOSER_ACTION_OPEN, GTK_FILE_CHOOSER_ACTION_SAVE, GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER, GTK_FILE_CHOOSER_ACTION_CREATE_FOLDER
gtk_widget_set_size_request(FileButton, 180, 30)
gtk_fixed_put(GTK_FIXED(fixed), FileButton, 50, 140)
'gtk_color_button_set_title(GTK_FILE_CHOOSER_BUTTON(FileButton), "Choose File")
Dim As GtkWidget Ptr FontButton = gtk_font_button_new ()
gtk_widget_set_size_request(FontButton, 180, 30)
gtk_fixed_put(GTK_FIXED(fixed), FontButton, 50, 180)
'gtk_color_button_set_title(GTK_FONT_BUTTON(FontButton), "Choose Font")
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Dim As GtkWidget Ptr label = gtk_label_new_with_mnemonic ("LABELABELLABELABELLABELABELLABELABEL")
gtk_widget_set_size_request(label, 150, 15)
gtk_fixed_put(GTK_FIXED(fixed), label, 10, 350)
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
g_signal_connect(G_OBJECT(button1), "clicked", G_CALLBACK (@Dialog1), win)
g_signal_connect(G_OBJECT(button2), "clicked", G_CALLBACK (@Dialog2), win)
g_signal_connect(G_OBJECT(button3), "clicked", G_CALLBACK (@Dialog3), win)
g_signal_connect(G_OBJECT(button111), "clicked", G_CALLBACK (@show_info), win)
g_signal_connect(G_OBJECT(button222), "clicked", G_CALLBACK (@show_error), win)
g_signal_connect(G_OBJECT(button333), "clicked", G_CALLBACK (@show_question), win)
g_signal_connect(G_OBJECT(button444), "clicked", G_CALLBACK (@show_warning), win)
g_signal_connect(G_OBJECT(buttonColorData), "clicked", G_CALLBACK (@ColorDataDump), ColorButton)
g_signal_connect(G_OBJECT(buttonFileData), "clicked", G_CALLBACK (@FileDataDump), FileButton)
g_signal_connect(G_OBJECT(buttonFontData), "clicked", G_CALLBACK (@FontDataDump), FontButton)
g_signal_connect(G_OBJECT(showColorbutton4), "clicked", G_CALLBACK (@show_ColorDialog), label)
g_signal_connect(G_OBJECT(showFilebutton5), "clicked", G_CALLBACK (@show_FileDialog), label)
g_signal_connect(G_OBJECT(showFontbutton6), "clicked", G_CALLBACK (@show_FontDialog), label)
g_signal_connect(G_OBJECT(win), "destroy", G_CALLBACK (@gtk_main_quit), NULL)
'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
gtk_widget_show_all(win)
gtk_main()
END 0