'--- updated to work wih 64 bit mint 20.1 April 26 2021'--- set up for compiling embedded library GTKPRAGMAOPTIONS`pkg-config--cflagsgtk+-3.0`PRAGMALDFLAGS`pkg-config--libsgtk+-3.0`PRAGMAINCLUDE<gtk-3.0/gtk/gtk.h>PRAGMACOMPILERgccPRAGMAOPTIONS-Wno-implicit-Wno-deprecated-declarationsOPTIONPARSEFALSEPROTOgtk_initPROTOgtk_window_newPROTOgtk_mainPROTOgtk_main_quitPROTOg_signal_connect_dataPROTOgtk_container_addPROTOgtk_widget_show_allPROTOgtk_switch_newPROTOgtk_window_set_titlePROTOgtk_window_set_default_sizePROTOgtk_container_set_border_widthPROTOgtk_switch_set_activePROTOgtk_grid_set_column_spacingPROTOgtk_grid_attachPROTOgtk_spinner_newPROTOgtk_spinner_startPROTOgtk_spinner_stopDECLAREwindowTYPEvoid*DECLAREgridTYPEvoid*DECLARElabelTYPEvoid*DECLARESW1TYPEintDECLAREspinnerTYPEvoid*DECLAREswitch1TYPEvoid*'=====================SUBexit_prog'=====================gtk_main_quitENDSUB'=====================SUBswitch_clicked()'=====================CLEARPRINT"switch button1"SW1=gtk_switch_get_active(switch1)IFSW1=1THENgtk_spinner_start(spinner)ELSEgtk_spinner_stop(spinner)ENDIFPRINTSW1ENDSUBgtk_init(0,0)'---Create a window with a set title and default size.'---Also, set a border width for the amount of space'---to leave inside the windowindow=gtk_window_new(0)gtk_window_set_title(window,"Switch Example GTK3 2021")gtk_window_set_default_size(window,400,100)gtk_container_set_border_width(window,10)g_signal_connect_data(window,"delete-event",exit_prog,0,0,0)'---Create a label---'label=gtk_label_new("Spin")'---Create a switch with a default active stateswitch1=gtk_switch_new()gtk_switch_set_active(switch1,FALSE)spinner=gtk_spinner_new()'---Create a grid and set the column spacing,'---attach the label'---switch onto the grid'---position them accordinglygrid=gtk_grid_new()gtk_grid_set_column_spacing(grid,10)gtk_grid_attach(grid,label,0,0,1,1)gtk_grid_attach(grid,switch1,1,0,1,1)gtk_grid_attach(grid,spinner,2,0,20,20)'---Connecting the clicked signal to the callbackg_signal_connect_data(switch1,"notify::active",switch_clicked,0,0,0)gtk_container_add(window,grid)gtk_widget_show_all(window)gtk_main
'--- updated to work wih 64 bit mint 20.1 April 26 2021'--- set up for compiling embedded library GTKPRAGMAOPTIONS`pkg-config--cflagsgtk+-3.0`PRAGMALDFLAGS`pkg-config--libsgtk+-3.0`PRAGMAINCLUDE<gtk-3.0/gtk/gtk.h>PRAGMACOMPILERgccPRAGMAOPTIONS-Wno-implicit-Wno-deprecated-declarationsOPTIONPARSEFALSEPROTOgtk_initPROTOgtk_window_newPROTOgtk_main_quitPROTOg_signal_connect_dataPROTOgtk_mainPROTOgtk_container_addPROTOgtk_container_set_border_widthPROTOgtk_widget_show_allPROTOgtk_window_set_default_sizePROTOgtk_window_set_titlePROTOgtk_entry_get_textPROTOgtk_entry_newDECLAREwindowTYPEvoid*DECLAREentry_boxTYPEvoid*'=======================SUBEXIT_PROG()'=======================gtk_main_quitENDSUB'---This is the callback function. It is a handler function'---which reacts to the signal. In this case, it will grab the'---text input from the entry box and print out a line to the user.'---when you press enter'=======================SUBon_activate'=======================name$=(char*)gtk_entry_get_text(entry_box)PRINTname$ENDSUBgtk_init(0,0)'---Create a window with a title, a default size,'---and a set border widthwindow=gtk_window_new(0)gtk_window_set_title(window,"To get the entry press enter")gtk_window_set_default_size(window,350,100)gtk_container_set_border_width(window,10)g_signal_connect_data(window,"destroy",EXIT_PROG,0,0,0)'---Create a new entry box, and add it to the windowentry_box=gtk_entry_new()gtk_container_add(window,entry_box)'---Connecting the activate signal to the callbackg_signal_connect_data(entry_box,"activate",on_activate,0,0,0)gtk_widget_show_all(window)gtk_main
'--- updated to work wih 64 bit mint 20.1 April 26 2021'--- set up for compiling embedded library GTKPRAGMAOPTIONS`pkg-config--cflagsgtk+-3.0`PRAGMALDFLAGS`pkg-config--libsgtk+-3.0`PRAGMAINCLUDE<gtk-3.0/gtk/gtk.h>PRAGMACOMPILERgccPRAGMAOPTIONS-Wno-implicit-Wno-deprecated-declarationsOPTIONPARSEFALSEPROTOgtk_main_quitPROTOg_signal_connect_dataPROTOgtk_button_new_with_labelPROTOgtk_label_newPROTOgtk_notebook_newPROTOgtk_window_newPROTOgtk_container_addPROTOgtk_initPROTOgtk_mainPROTOgtk_notebook_append_pagePROTOgtk_widget_showPROTOgtk_window_set_default_sizePROTOgtk_widget_show_allDECLAREwindowTYPEvoid*DECLAREbutton1TYPEvoid*DECLAREbutton2TYPEvoid*DECLAREbutton3TYPEvoid*DECLAREnotebookTYPEvoid*DECLAREtab_label1TYPEvoid*DECLAREtab_label2TYPEvoid*DECLAREtab_label3TYPEvoid*'=====================SUBexit_prog'=====================gtk_main_quitENDSUB'=====================SUBchange_current_page_cb1()'====================='--- Example signal handler for page changes PRINT"button 1 pressed"ENDSUB'=====================SUBchange_current_page_cb2()'====================='--- Example signal handler for page changes PRINT"button 2 pressed"ENDSUBgtk_init(0,0)window=gtk_window_new(GTK_WINDOW_TOPLEVEL)gtk_window_set_default_size(window,200,100)gtk_window_set_title(window,"Tabs GTK3 2021")gtk_window_set_default_size(window,330,100)g_signal_connect_data(window,"delete-event",exit_prog,0,0,0)notebook=gtk_notebook_new()'--- Append a test page to the notebook button1=gtk_button_new_with_label("button one")gtk_widget_show(button1)tab_label1=gtk_label_new("tab 1")gtk_notebook_append_page(notebook,button1,tab_label1)g_signal_connect_data(button1,"clicked",change_current_page_cb1,0,0,0)'--- Append another test page to the notebook button2=gtk_button_new_with_label("button two")gtk_widget_show(button2)tab_label2=gtk_label_new("tab 2")gtk_notebook_append_page(notebook,button2,tab_label2)g_signal_connect_data(button2,"clicked",change_current_page_cb2,0,0,0)'--- Append another test page to the notebook button3=gtk_button_new_with_label("button close")gtk_widget_show(button3)tab_label3=gtk_label_new("close")gtk_notebook_append_page(notebook,button3,tab_label3)g_signal_connect_data(button3,"clicked",exit_prog,0,0,0)gtk_widget_show(notebook)gtk_container_add(window,notebook)gtk_widget_show(window)gtk_main
TOGGLE-SPINNER
Example code: toggle-spinner-gtk3-proto.bac
Last edit: big-bass 2021-04-28
ENTRY
source code ported from here
https://developer.gnome.org/gnome-devel-demos/stable/entry.c.html.en
Example code: entry-gtk3-proto.bac
Last edit: big-bass 2021-04-28
TABS3
Example code: tabs3-gtk3-proto.bac
Last edit: big-bass 2021-04-28