Studies in : BASH and GTK application development.
MGR [Manager] , is not intended to be a "Turn-Key" application.
MGR system is an Instructional / Educational Project.
dated: 240322-1200
#! Latest Developmental version of Menu Framework V:7 is :
#! MGR Menu Framework v.7
#! newer version: viewtopic.php?p=116035#p116035
#!
#! Simple Instruction Version of Menu Framework
#! showing Double-Click Buttons and Embedded Images
#! series is here:
#! MCI_v.3.3_Sample-Menu_Embedded-Graphics+Double-Click
#! viewtopic.php?p=91327&hilit=embedded+image#p91327
Seminal idea for embedding graphics is from "june1 2012 Don White (don570)" (thanks)
"NoteBook" pages are GTK coded, but not using GTK notebook library. This is Bare Bones.
This Script includes <button> for :
(1) Dumping Source code ,
(2) Dumping GUI code ,
(3) Dumping Image Code
"Utility" GUI Screen includes a display array of all embedded images
(with tool-tip to show the name of each image)
This MGR script is POLISHED, and runs "STABLE" on a daily basis, in 20 different Puppy Distros.
The "INTENT" of this "Manager Menu" is:
() ....... to demonstrate a GTK "Note-Book" of simple overlaid pages.
() ....... to demonstrate the Double-Click GTK <button> routines.
() ....... to demonstrate the Embedded-Graphics GTK <button> routines.
() ....... to identify implementation characteristics of BASH + GTK .
() The "Code Format" used is
. . . . . . . an old XML code method from SCO-Unix / Xenix projects.
. . . . . . . which provides complete separation of BASH code and GTK code.
. . . . . . . chosen to prohibit interaction between BASH code and GTK code .
"System" section of the Main Page/Screen is pictured.
.
.
.
"NoteBook Pages" [Main], [Dox], [Utility]
are flipped into the left side of the "System" screen.
The "NoteBook"screens are on Next Page.
There is a "Vertical" Multi-Button Page for experimental "tokenized" calling from external Screen.
(*) The BASH coding and GTK coding are standard.
No Tricky, bleeding-edge BASH code. Simplified wherever possible.
The "GTK MENU" has this process:
-- All GTK menu selections are passed out via the "EXIT" GTK var,
-- All GTK menu selections fall-thru to a set of BASH if [ "$EXIT" = "???" ] sub-modules
...... which are placed below the GTK XML GUI , allowing "EXIT" to Fall-Thru to "IF" testing.
-- All BASH " if []" modules call a set of BASH sub-routines
...... which are placed in the top section of the program.
===> This process keeps BASH language code from interacting with GTK language code.
I have written this MGR Project version 6.1,
trying not to mix the two languages, BASH vs GTK .
...
For Example.
...
... WHEN GTK handles a maingui <button> "Selection" or "<Action>",
...... THEN I use the GTK variable "EXIT" (<action> EXIT:guiS2F-ReStart</action>)
......... allowing it to fall out and down
.......... to my if/fi[] BASH routines to do the non-GTK task.
....WHEN the BASH routines call BASH SubRoutines ,
......... which the BASH interpreter can read the top of the source .
......THEN BASH sees BASH code and executes BASH code, ONLY !
. . . . . . .
I keep GTK interpreter reading/executing only GTK code.
I keep BASH interpreter reading/executing only BASH code.
() The Graphic Images are EMBEDDED in the source code file and written to /root/tmp .
() The GTK + BASH menu method could, possibly, be used as a "frame-work" for building a new interface.
(*) Calls to external routines are "if [ -f " tested, and 'stub' controlled, as needed.
TESTING base:
Our script has been tested successfuly
on our 20 running Official Puppy Linux systems :
"Official" Puppy Frugal Systems via Woof-CE :
*** Developed in and Tested on these "official" Puppy 32/64 bit systems built via Woof-CE ***
#
####### Running Tests on 20 OS, including:
#!~ iso-KineticPup32-22.10+2__________230604
#!~ iso-BionicPup32-8.0+30_BionicBeaver220407
---- +1,+3,+4,+5,+10, +12, +14, +16, +17, +18 , +19, +20, +21, +23, +24, +25, +26, +27, +28, +29, +30
#!!! iso-BionicPup32-19.03-K5.9_231209.isoK:5.1231209
#!!! iso_ManticPup32-23.10+1_________K:6.1231209
#!~ iso-JammyPup32-22.04+8_JammyJellyfish22123
#!~ iso-UPupFF+D-20.12+4_Focal-Fossa201210
#!!! iso-UpupTahr-6.0.6-k4.1.30-uefi_____K:4.1190211
#!~ iso-Slacko-7.0_DpupS7_14.2___220205
#!~ iso-Xenial-64_7.5_XL________220401
#!~ iso-S15Pup-64_22.12+1-T_____220922
#!~ iso-Quirky_April-7.0.1F-uefi___200511
#!~ iso_devuanpup-9.7.0-chimaera_4.0_i386211206
#!~ iso_BookwormPup32-23.11-B4_____231210
#!~ iso_LxPupSc-slacko-20.01+0-T-k64200129
#!~ iso_slacko64_14.2_32-674-bit_compatible220227
========================================================
The "MCI" project is a readable presentation of the Coding Method.
"MCI" is a "showcase" of the basic ideas in GUI and Embedded-Images .
I suggest, that look at "MCI" v. 3.
[size=85]viewtopic.php?t=8908[/size]
==================================================================