Menu

Page3

big-bass
Widget examples

    Discussion

    • big-bass

      big-bass - 2021-04-28

      TOGGLE-SPINNER

      image

      Example code: toggle-spinner-gtk3-proto.bac

      '--- updated to work wih 64 bit mint 20.1  April 26 2021
      '--- set up for compiling embedded library GTK
      
      PRAGMA OPTIONS `pkg-config --cflags gtk+-3.0`
      PRAGMA LDFLAGS `pkg-config --libs gtk+-3.0`
      PRAGMA INCLUDE <gtk-3.0/gtk/gtk.h>
      PRAGMA COMPILER gcc
      PRAGMA OPTIONS -Wno-implicit -Wno-deprecated-declarations
      OPTION PARSE FALSE
      
      
      
      PROTO gtk_init
      PROTO gtk_window_new
      PROTO gtk_main
      PROTO gtk_main_quit
      PROTO g_signal_connect_data
      PROTO gtk_container_add
      PROTO gtk_widget_show_all
      PROTO gtk_switch_new
      PROTO gtk_window_set_title
      PROTO gtk_window_set_default_size
      PROTO gtk_container_set_border_width
      PROTO gtk_switch_set_active
      PROTO gtk_grid_set_column_spacing
      PROTO gtk_grid_attach
      PROTO gtk_spinner_new
      PROTO gtk_spinner_start
      PROTO gtk_spinner_stop
      
      DECLARE window TYPE void*
      DECLARE grid TYPE void*
      DECLARE label TYPE void*
      DECLARE SW1 TYPE int
      DECLARE spinner TYPE void*
      DECLARE switch1 TYPE void*
      
      '=====================
      SUB exit_prog
      '=====================
          gtk_main_quit
      END SUB
      
      
      
      '=====================
      SUB switch_clicked()
      '=====================
      CLEAR
      PRINT "switch button1"
      SW1 = gtk_switch_get_active (switch1)
      IF SW1 = 1 THEN
              gtk_spinner_start (spinner)
      ELSE
              gtk_spinner_stop (spinner)
      END IF
      PRINT SW1
      END SUB
      
      
      
      
      
      
      gtk_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 windo
      
      window = 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 state
      switch1 = 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 accordingly
      grid = 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 callback
      g_signal_connect_data(switch1, "notify::active",switch_clicked, 0, 0, 0)
      
      
      gtk_container_add (window, grid)
      gtk_widget_show_all (window)
      gtk_main
      

       

      Last edit: big-bass 2021-04-28
    • big-bass

      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

      '--- updated to work wih 64 bit mint 20.1  April 26 2021
      '--- set up for compiling embedded library GTK
      
      PRAGMA OPTIONS `pkg-config --cflags gtk+-3.0`
      PRAGMA LDFLAGS `pkg-config --libs gtk+-3.0`
      PRAGMA INCLUDE <gtk-3.0/gtk/gtk.h>
      PRAGMA COMPILER gcc
      PRAGMA OPTIONS -Wno-implicit -Wno-deprecated-declarations
      OPTION PARSE FALSE
      
      PROTO gtk_init
      PROTO gtk_window_new
      PROTO gtk_main_quit
      PROTO g_signal_connect_data
      PROTO gtk_main
      PROTO gtk_container_add
      PROTO gtk_container_set_border_width
      PROTO gtk_widget_show_all
      PROTO gtk_window_set_default_size
      PROTO gtk_window_set_title
      PROTO gtk_entry_get_text
      PROTO gtk_entry_new
      
      
      DECLARE window TYPE void*
      DECLARE entry_box TYPE void*
      
      
      '=======================
      SUB EXIT_PROG()
      '=======================
          gtk_main_quit
      END SUB
      
      
      
      '---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
      
      '=======================
      SUB on_activate
      '=======================
          name$ = (char *)gtk_entry_get_text (entry_box)
          PRINT name$
      END SUB
      
      
      
      gtk_init(0, 0)
      
      '---Create a window with a title, a default size,
      '---and a set border width
      window = 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 window
      entry_box = gtk_entry_new ()
      gtk_container_add (window, entry_box)
      
      '---Connecting the activate signal to the callback
      g_signal_connect_data (entry_box, "activate", on_activate,0,0,0)
      
      gtk_widget_show_all (window)
      gtk_main
      

       

      Last edit: big-bass 2021-04-28
    • big-bass

      big-bass - 2021-04-28

      TABS3


      Example code: tabs3-gtk3-proto.bac

      '--- updated to work wih 64 bit mint 20.1  April 26 2021
      '--- set up for compiling embedded library GTK
      
      PRAGMA OPTIONS `pkg-config --cflags gtk+-3.0`
      PRAGMA LDFLAGS `pkg-config --libs gtk+-3.0`
      PRAGMA INCLUDE <gtk-3.0/gtk/gtk.h>
      PRAGMA COMPILER gcc
      PRAGMA OPTIONS -Wno-implicit -Wno-deprecated-declarations
      OPTION PARSE FALSE
      
      
      PROTO gtk_main_quit
      PROTO g_signal_connect_data
      PROTO gtk_button_new_with_label
      PROTO gtk_label_new
      PROTO gtk_notebook_new
      PROTO gtk_window_new
      PROTO gtk_container_add
      PROTO gtk_init
      PROTO gtk_main
      PROTO gtk_notebook_append_page
      PROTO gtk_widget_show
      PROTO gtk_window_set_default_size
      PROTO  gtk_widget_show_all
      
      
      DECLARE window TYPE void*
      DECLARE button1 TYPE void*
      DECLARE button2 TYPE void*
      DECLARE button3 TYPE void*
      DECLARE notebook TYPE void*
      DECLARE tab_label1 TYPE void*
      DECLARE tab_label2 TYPE void*
      DECLARE tab_label3 TYPE void*
      
      
      '=====================
      SUB exit_prog
      '=====================
          gtk_main_quit
      END SUB
      
      
      
      '=====================
      SUB change_current_page_cb1()
      '=====================
          '---  Example signal handler for page changes 
          PRINT "button 1 pressed"
      END SUB
      
      
      
      
      
      '=====================
      SUB change_current_page_cb2()
      '=====================
          '---  Example signal handler for page changes 
          PRINT "button 2 pressed"
      END SUB
      
      
      gtk_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
      

       

      Last edit: big-bass 2021-04-28

    Log in to post a comment.