TkInter wrapper for tcl/tk GUI

From ASCEND
Revision as of 09:45, 26 December 2018 by MarkJones (talk | contribs) (Created page with "I wanted to see how the tcl/tk interface of ASCEND looks like and used TkInter wrapper to call the tcl legacy code. Here are my notes which I will formulate in detail over t...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

I wanted to see how the tcl/tk interface of ASCEND looks like and used TkInter wrapper to call the tcl legacy code.


Here are my notes which I will formulate in detail over time:


ascend/tcltk/tk/

AscendRC

ascend.tcl
env(ASCENDTK)
GlobalProc.tcl
set_global_defaults
	Glob_do_GNU
	set_Template_defaults
	asc_swap_del_backspace -> GlobalProc.tcl ; set to "1" for unix systems
        set_Global_Defaults {} {
            __userdata_init
View.tcl

main.tcl
load_Templates
Util_do_Read


ascend/tcltk/interface:

config.h

main.c
main()

	This function creates a Tcl interpreter, initializes Tcl and Tk,
	initializes the Ascend data structures, sets up the user's
	environment, sources ASCEND's startup script, and calls Tk_MainLoop
	so the user can interact with ASCEND. Cleans up and exits the
	program when Tk_MainLoop returns.

	This function is based on the functions Tk_Main and Tcl_AppInit
	from the Tk8.0 distribution.  See the files tkMain.c and tkAppInit.c
	in the Tk sources.
Commands.c
__userdata_init
Driver.c
AscDriver()


Changes made to the codebase to get the GUI up and running with TkInter

ASC_IMPORT??? -> Definition at line 124 of file ascend/general/platform.h

ASCENDTK -> This environment variable is used to define the location of the Tcl/Tk support files used by the ASCEND Tcl/Tk GUI. It defaults to $ASCENDDIST/TK. It has no effect on the PyGTK GUI.

asc_swap_del_backspace -> set to "1" for unix systems

__userdata_init --> commented out

       argc --> set argument counter to 0
       tktable missing --> install via sudo apt-get install tk-table
       
       ascend still can't find tktable
       --> install tcl8.5-dev, tk8.5-dev, libxft-dev, libfontconfig1-dev, libfreetype6-dev, libpng-dev

error because interval.c and interval.h files were missing (trunk bramch) in ascend/compiler/

error: if {[catch {package require Tktable 2.8} err]} in ascend.tcl --> http://bugs.ascend4.org/view.php?id=254 --> https://github.com/nbro/tktable/issues/3

       --> The plot window and the solver window require the
           TkTable exension package by Roland King
           mthomas 98.05.07: require 1.8 until we debug the memory errors in 2.0
       --> commented the if clause in Line 225 in ascend.tcl


       bitmap "feet" not defined 

--> ascend.tcl line 259: awin all --> awin is in GlobalProc.tcl

       --> ShowWindow.solver in line 108 in GlobalProc.tcl
       --> line 138 in solver.tcl
       --> option -bitmap {feet} was removed because it couldn't be located
       --> option -bitmap {stop} was removed
       *** Error calling set_Library_Defaults
       invalid command name "libr_query"
       ***
       *** Error calling set_Probe_Defaults
       invalid command name "__probe"
       ***
       *** Error calling set_Solver_Defaults
       invalid command name "slv_available"
       ***
       *** Error calling set_Units_Defaults
       can't read "env(ASCENDDIST)": no such variable
       ***
       *** Error calling set_Help_Defaults
       can't read "env(ASCENDDIST)": no such variable
       ***