Bassix GTK3 webkit browser Wiki
A very small gtk3-webkit browser that runs well on the raspberry pi3
Brought to you by:
big-bass
All of these bassix demos were tested on linux mint 20.1 64 bit xfce in 2021
compile with
bacon cut-copy-paste.bac
Example code: cut-copy-paste.bac
'--- bigbass GTK3 with FIXED placement and some new macros '--- for the lack of a name we can call it gtk3 bassix '--- a simple 'HUG' looking syntax idea but include only what you need as you go '--- June 25 2020 OPTION PARSE FALSE PRAGMA INCLUDE <gtk-3.0/gtk/gtk.h> PRAGMA OPTIONS `pkg-config --cflags gtk+-3.0` PRAGMA LDFLAGS `pkg-config --libs gtk+-3.0` PRAGMA OPTIONS -Wno-deprecated-declarations '--- new signal handlers to simplify the callbacks DEF FN CONNECT( widget, event,cb) = g_signal_connect_data(widget,event,cb, 0, 0, 0) DEF FN CONNECT_DATA( widget, event,cb,t) = g_signal_connect_data(G_OBJECT (widget),event,G_CALLBACK (cb),(gpointer) t, 0, 0) DEF FN NEW(widget,...) = g_object_new(widget, __VA_ARGS__,NULL) DEF FN PLACE( widget, name,wid,high) = gtk_fixed_put(GTK_FIXED(widget), GTK_WIDGET(name),wid,high) DEF FN ADD_FIXED( widget, name) = gtk_container_add(GTK_CONTAINER(widget), GTK_WIDGET(name)) DEF FN SET(widget, name, ...) = g_object_set(GTK_WIDGET(widget), name, __VA_ARGS__, NULL) DEF FN GET( widget, name, ...) = g_object_get(widget, name, __VA_ARGS__, NULL) DEF FN SHOW( widget) = gtk_widget_show_all(GTK_WIDGET(widget)) DEF FN HIDE( widget) = gtk_widget_hide(GTK_WIDGET(widget)) DEF FN INIT() = gtk_init(0,0) DEF FN LABEL(t) = gtk_label_new(t) DEF FN BUTTON_ADD(t) = gtk_button_new_with_label(t) DEF FN TEXT_VIEW() = gtk_text_view_new () DEF FN FIXED() = gtk_fixed_new() DEF FN DISPLAY() = gtk_main() DEF FN ATTACH() = gtk_container_add() DEF FN SCROLLED_WINDOW() = gtk_scrolled_window_new (NULL, NULL) ALIAS GTK_TYPE_WINDOW TO WINDOW ALIAS GTK_TYPE_BUTTON TO BUTTON ALIAS GTK_WIDGET TO WIDGET ALIAS GTK_CONTAINER TO CONTAINER DECLARE window, scrolled_win TYPE GtkWidget* DECLARE fixed TYPE GtkWidget* '===================== SUB exit_prog '===================== END END SUB '===================== SUB cut_clicked (GtkButton *cut,GtkTextView *textview) '===================== LOCAL clipboard ,buffer TYPE void* clipboard = gtk_clipboard_get(GDK_SELECTION_CLIPBOARD) buffer = gtk_text_view_get_buffer (textview) gtk_text_buffer_cut_clipboard (buffer, clipboard, TRUE) END SUB '===================== SUB copy_clicked (GtkButton *copy,GtkTextView *textview) '===================== LOCAL clipboard ,buffer TYPE void* clipboard = gtk_clipboard_get(GDK_SELECTION_CLIPBOARD) buffer = gtk_text_view_get_buffer (textview) gtk_text_buffer_copy_clipboard (buffer, clipboard) END SUB '===================== SUB paste_clicked (GtkButton *paste,GtkTextView *textview) '===================== LOCAL clipboard ,buffer TYPE void* clipboard = gtk_clipboard_get(GDK_SELECTION_CLIPBOARD) buffer = gtk_text_view_get_buffer (textview) gtk_text_buffer_paste_clipboard (buffer, clipboard, NULL, TRUE) END SUB INIT window = NEW(WINDOW, "icon-name","gtk-about") SET(window, "title", "Cut, Copy & Paste", "border-width", 10, "default-width", 450) fixed = FIXED() ADD_FIXED(window, fixed) textview = TEXT_VIEW () cut_btn = BUTTON_ADD ("Cut") copy_btn = BUTTON_ADD ("Copy") paste_btn = BUTTON_ADD ("Paste") '--- handle callbacks CONNECT(window, "delete-event", exit_prog) CONNECT_DATA(cut_btn, "clicked" ,cut_clicked ,textview) CONNECT_DATA(copy_btn, "clicked" ,copy_clicked ,textview) CONNECT_DATA(paste_btn, "clicked" ,paste_clicked ,textview) scrolled_win = SCROLLED_WINDOW() SET(scrolled_win, "width_request", 300 ,"height_request",200) ADD_FIXED(fixed, scrolled_win) ADD_FIXED(scrolled_win, textview) '--- widget ,property , value or string SET(cut_btn, "width_request", 100 ,"height_request",30) SET(cut_btn, "label","gtk-cut","use_stock",TRUE,"always_show_image",TRUE) SET(copy_btn, "width_request", 100 ,"height_request",30) SET(copy_btn, "label","gtk-copy","use_stock",TRUE,"always_show_image",TRUE) SET(paste_btn, "width_request", 100 ,"height_request",30) SET(paste_btn, "label","gtk-paste","use_stock",TRUE,"always_show_image",TRUE) '--- widget ,property value or string SET(cut_btn, "tooltip-text", "you can add properties with SET") '---placement inside fixed,widget,X,Y PLACE (fixed, cut_btn, 310, 10) PLACE (fixed, copy_btn, 310, 70) PLACE (fixed, paste_btn, 310, 130) SHOW(window) DISPLAY
SVG IMAGE
compile with
Example code: svg-image.bac
Last edit: big-bass 2021-04-30
SVG BUTTON
compile with
Example code: svg-button.bac
Last edit: big-bass 2021-04-30
PROGRESSBAR
compile with
Example code: progressbar.bac
Last edit: big-bass 2021-06-16
COMBO1
compile with
Example code: combo1.bac
Last edit: big-bass 2021-04-30