Skip to content

Commit

Permalink
rename FlexGUI to FlexProp
Browse files Browse the repository at this point in the history
  • Loading branch information
totalspectrum committed Oct 18, 2020
1 parent b30d1c4 commit b226cc1
Show file tree
Hide file tree
Showing 8 changed files with 78 additions and 78 deletions.
84 changes: 42 additions & 42 deletions Makefile
Original file line number Diff line number Diff line change
@@ -1,19 +1,19 @@
#
# Makefile for flexgui
# Makefile for flexprop
#
# Options:
# make install INSTALL=dir
# Makes for Linux or Mac; requires Tcl/Tk to already be installed
# make zip SIGN=sign_script
# Makes for Windows, linking against prebuild Tcl/Tk libraries in $(TCLROOT)
# Final output is in flexgui.zip
# Final output is in flexprop.zip
#

default: errmessage
zip: flexgui.zip
zip: flexprop.zip

# where to install: default is $(HOME)/flexgui
INSTALL ?= $(HOME)/flexgui
INSTALL ?= $(HOME)/flexprop

# detect OS
ifndef OS
Expand All @@ -39,15 +39,15 @@ errmessage:
@echo " make install"
@echo " make zip SIGN=signscript"
@echo
@echo "make install copies flexgui to the INSTALL directory (default is $(HOME)/flexgui)"
@echo "for example to install in /opt/flexgui do:"
@echo " make install INSTALL=/opt/flexgui"
@echo "make install copies flexprop to the INSTALL directory (default is $(HOME)/flexprop)"
@echo "for example to install in /opt/flexprop do:"
@echo " make install INSTALL=/opt/flexprop"
@echo
@echo "make zip creates a flexgui.zip for Windows"
@echo "make zip creates a flexprop.zip for Windows"
@echo " This requires cross tools and is probably not what you want"
@echo
ifndef OPENSPIN
@echo "Note that the P1 version of flexgui depends on openspin being installed; if it is not,"
@echo "Note that the P1 version of flexprop depends on openspin being installed; if it is not,"
@echo " then only P2 support is enabled"
endif

Expand All @@ -56,7 +56,7 @@ endif
#

EXEBINFILES=bin/fastspin.exe bin/loadp2.exe bin/fastspin.mac bin/loadp2.mac bin/mac_terminal.sh
EXEFILES=flexgui.exe $(EXEBINFILES)
EXEFILES=flexprop.exe $(EXEBINFILES)

ifdef OPENSPIN
WIN_BINARIES=$(EXEBINFILES) bin/proploader.exe bin/proploader.mac
Expand All @@ -66,12 +66,12 @@ WIN_BINARIES=$(EXEBINFILES)
NATIVE_BINARIES=bin/fastspin bin/loadp2
endif

install: flexgui_base $(NATIVE_BINARIES)
install: flexprop_base $(NATIVE_BINARIES)
mkdir -p $(INSTALL)
mkdir -p flexgui/bin
cp -r $(NATIVE_BINARIES) flexgui/bin
cp -r mac_scripts/* flexgui/bin
cp -r flexgui/* $(INSTALL)
mkdir -p flexprop/bin
cp -r $(NATIVE_BINARIES) flexprop/bin
cp -r mac_scripts/* flexprop/bin
cp -r flexprop/* $(INSTALL)

# where the Tcl and Tk source code are checked out (side by side)
TCLROOT ?= /home/ersmith/src/Tcl
Expand Down Expand Up @@ -115,16 +115,16 @@ BOARDFILES=board/P2ES_flashloader.bin board/P2ES_flashloader.spin2 board/P2ES_sd

SIGN ?= ./spin2cpp/sign.dummy.sh

flexgui.zip: flexgui_base flexgui.exe $(WIN_BINARIES)
cp -r flexgui.exe flexgui/
cp -r $(WIN_BINARIES) flexgui/bin
rm -f flexgui.zip
zip -r flexgui.zip flexgui
flexprop.zip: flexprop_base flexprop.exe $(WIN_BINARIES)
cp -r flexprop.exe flexprop/
cp -r $(WIN_BINARIES) flexprop/bin
rm -f flexprop.zip
zip -r flexprop.zip flexprop

flexgui.exe: src/flexgui.c $(RESOBJ)
$(WINGCC) $(WINCFLAGS) -o flexgui.exe src/flexgui.c $(WINTK_INC) $(WINTK_LIBS)
$(SIGN) flexgui
mv flexgui.signed.exe flexgui.exe
flexprop.exe: src/flexprop.c $(RESOBJ)
$(WINGCC) $(WINCFLAGS) -o flexprop.exe src/flexprop.c $(WINTK_INC) $(WINTK_LIBS)
$(SIGN) flexprop
mv flexprop.signed.exe flexprop.exe

#
# be careful to leave samples/upython/upython.binary during make clean
Expand All @@ -134,7 +134,7 @@ flexgui.exe: src/flexgui.c $(RESOBJ)
SUBSAMPLES={LED_Matrix}

clean:
rm -rf flexgui
rm -rf flexprop
rm -rf *.exe *.zip
rm -rf bin
rm -rf board
Expand All @@ -153,25 +153,25 @@ clean:
rm -rf $(RESOBJ)
rm -rf pandoc.yml

flexgui_base: src/version.tcl src/makepandoc.tcl $(BOARDFILES) $(PDFFILES) $(HTMLFILES)
mkdir -p flexgui/bin
mkdir -p flexgui/doc
mkdir -p flexgui/board
cp -r README.md License.txt samples src flexgui
flexprop_base: src/version.tcl src/makepandoc.tcl $(BOARDFILES) $(PDFFILES) $(HTMLFILES)
mkdir -p flexprop/bin
mkdir -p flexprop/doc
mkdir -p flexprop/board
cp -r README.md License.txt samples src flexprop
ifdef PANDOC_EXISTS
cp -r $(PDFFILES) flexgui/doc
cp -r $(HTMLFILES) flexgui/doc
cp -r $(PDFFILES) flexprop/doc
cp -r $(HTMLFILES) flexprop/doc
endif
cp -r spin2cpp/doc/* flexgui/doc
cp -r loadp2/README.md flexgui/doc/loadp2.md
cp -r loadp2/LICENSE flexgui/doc/loadp2.LICENSE.txt
cp -r spin2cpp/COPYING.LIB flexgui/doc/COPYING.LIB
cp -r spin2cpp/include flexgui/
cp -r doc/*.txt flexgui/doc
cp -r board/* flexgui/board
cp -r flexgui.tcl flexgui/
cp -r spin2cpp/doc/* flexprop/doc
cp -r loadp2/README.md flexprop/doc/loadp2.md
cp -r loadp2/LICENSE flexprop/doc/loadp2.LICENSE.txt
cp -r spin2cpp/COPYING.LIB flexprop/doc/COPYING.LIB
cp -r spin2cpp/include flexprop/
cp -r doc/*.txt flexprop/doc
cp -r board/* flexprop/board
cp -r flexprop.tcl flexprop/

.PHONY: flexgui_base
.PHONY: flexprop_base

# rules for building PDF files

Expand Down Expand Up @@ -278,7 +278,7 @@ src/version.tcl: version.inp spin2cpp/version.h
docs: $(PDFFILES) $(HTMLFILES)

docker:
docker build -t flexguibuilder .
docker build -t flexpropbuilder .

board/P2ES_flashloader.bin: bin/fastspin board/P2ES_flashloader.spin2
bin/fastspin -2 -o $@ board/P2ES_flashloader.spin2
Expand Down
32 changes: 16 additions & 16 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,16 +1,16 @@
# Introduction

FlexGUI is a simple GUI for creating applications on the Parallax Propeller 2 (or 1), using assembler, Spin, BASIC or C. It consists of a very plain front end IDE, the fastspin compiler, and Dave Hein's loadp2 program loader. The default configuration is for the Prop2, but I've also included David Betz's proploader.exe, which allows flexgui to work on Propeller 1 systems as well.
FlexPropGUI is a simple GUI for creating applications on the Parallax Propeller 2 (or 1), using assembler, Spin, BASIC or C. It consists of a very plain front end IDE, the fastspin compiler, and Dave Hein's loadp2 program loader. The default configuration is for the Prop2, but I've also included David Betz's proploader.exe, which allows flexpropgui to work on Propeller 1 systems as well.

FlexGUI is distributed under the MIT license; see the file License.txt for details.
FlexPropGUI is distributed under the MIT license; see the file License.txt for details.

## Features

* Both Prop1 and Prop2 are supported
* Supports PASM, Spin, BASIC, and C
* View output PASM code
* Built in terminal emulator
* GUI checks files for external changes, so you may use any editor and compile in FlexGUI
* GUI checks files for external changes, so you may use any editor and compile in FlexPropGUI
* Options for interacting directly with P2 ROM monitor and ROM TAQOZ
* Micropython for P2 sample included

Expand Down Expand Up @@ -69,22 +69,22 @@ fastspin supports a C dialect called FlexC, which is intended to be C99 compatib

## Installation on Windows

To install, download the flexgui.zip file from the releases. The latest release is always located at:
To install, download the flexpropgui.zip file from the releases. The latest release is always located at:

https://github.com/totalspectrum/flexgui/releases/latest
https://github.com/totalspectrum/flexpropgui/releases/latest

Create a directory called "flexgui" (or whatever you'd like) and unpack the .zip file into that directory. Make sure the directory you create is writable, so do not unpack into a system directory like "Program Files". Use your desktop or a folder directly under "C:" instead.
Create a directory called "flexprop" (or whatever you'd like) and unpack the .zip file into that directory. Make sure the directory you create is writable, so do not unpack into a system directory like "Program Files". Use your desktop or a folder directly under "C:" instead.


## Running on Windows

Run flexgui.exe. Use the `File` menu to open a Spin or BASIC file. You may open multiple files. The one that is currently selected will be treated as the top level project if you try to compile and/or run. The commands used for compiling or running are settable from the `Commands > Configure Commands...` menu item. Compiling and running on Prop2 is the main focus, but you can configure for virtually any situation where just one file is compiled. So for example it should be feasible to use this GUI for `p2gcc` with a bit of tweaking.
Run flexprop.exe. Use the `File` menu to open a Spin or BASIC file. You may open multiple files. The one that is currently selected will be treated as the top level project if you try to compile and/or run. The commands used for compiling or running are settable from the `Commands > Configure Commands...` menu item. Compiling and running on Prop2 is the main focus, but you can configure for virtually any situation where just one file is compiled. So for example it should be feasible to use this GUI for `p2gcc` with a bit of tweaking.

Also under the `File` menu is an option for viewing the listing file. This will only be useful after a program is compiled.

To change between P1 and P2 development use `Configure Commands...` and select the appropriate default.

Your changes to commands, library directories, and other configuration information is saved in a file called .flexgui.config in the directory where flexgui.exe is located.
Your changes to commands, library directories, and other configuration information is saved in a file called .flexprop.config in the directory where flexprop.exe is located.

### Library Directories

Expand All @@ -97,23 +97,23 @@ Under the `File` menu is an option for viewing the listing file, which shows the

## Other platforms

Only a Windows binary is provided. For other platforms, run the `flexgui.tcl` script. You will need Tcl/Tk installed, but it is available for most versions of Unix (including Mac OS X). For linux, you'll also need to get binary versions of `fastspin` and `loadp2` for your platform, and copy them into the `bin` folder. For Windows and Mac OS X these binaries are already provided in the standard binary distribution of flexgui.
Only a Windows binary is provided. For other platforms, run the `flexprop.tcl` script. You will need Tcl/Tk installed, but it is available for most versions of Unix (including Mac OS X). For linux, you'll also need to get binary versions of `fastspin` and `loadp2` for your platform, and copy them into the `bin` folder. For Windows and Mac OS X these binaries are already provided in the standard binary distribution of flexprop.

## High level languages

The main advantage of flexgui over PNut (the "official" development tool for the Prop2) is that PNut supports only Spin 2, whereas flexgui supports Spin 1, Spin 2, BASIC, and C. You can basically write ordinary Spin code, with Prop2 assembly code in the DAT section (instead of Prop1 assembly code). This makes prototyping your applications much easier.
The main advantage of FlexProp over PNut (the "official" development tool for the Prop2) is that PNut supports only Spin 2, whereas FlexProp supports Spin 1, Spin 2, BASIC, and C. You can basically write ordinary Spin code, with Prop2 assembly code in the DAT section (instead of Prop1 assembly code). This makes prototyping your applications much easier.

The code is compiled to P2 assembler by fastspin. This is somewhat different from the way Spin traditionally worked on the Prop1, where Spin code is typically compiled to bytecode and interpreted. (Note that fastspin does work for Prop1, and compiles to P1 assembler in that case.)

Documentation for the various languages supported is in the `doc` folder of the unpacked flexgui. BASIC is the best documented. The Spin documentation assumes familiarity with the original (Propeller1) Spin manual, and outlines the differences in the language fastspin accepts. The C documentation is a placeholder for now and mostly covers the fastspin specific extensions to C.
Documentation for the various languages supported is in the `doc` folder of the unpacked flexprop. BASIC is the best documented. The Spin documentation assumes familiarity with the original (Propeller1) Spin manual, and outlines the differences in the language fastspin accepts. The C documentation is a placeholder for now and mostly covers the fastspin specific extensions to C.

# Modifying the GUI

The scripts used are in the `src` subdirectory, so you can customize them to your heart's content. The main `flexgui.exe` program is basically just the Tcl/Tk interpreter (from the standard Tk distribution) with a tiny startup script that reads `src/gui.tcl`.
The scripts used are in the `src` subdirectory, so you can customize them to your heart's content. The main `flexprop.exe` program is basically just the Tcl/Tk interpreter (from the standard Tk distribution) with a tiny startup script that reads `src/gui.tcl`.

# Supporting FlexGUI development
# Supporting FlexPropGUI development

If you find FlexGUI useful, please contribute to support its development. Contributions of code, documentation, and other suggestions are welcome. Monetary donations are also very welcome. The generous donations of our supporters on Patreon have enabled us to provide a signed Windows binary.
If you find FlexPropGUI useful, please contribute to support its development. Contributions of code, documentation, and other suggestions are welcome. Monetary donations are also very welcome. The generous donations of our supporters on Patreon have enabled us to provide a signed Windows binary.

To support FlexGUI on Patreon: https://patreon.com/totalspectrum
To support FlexGUI on Paypal: https://paypal.me/totalspectrum
To support FlexProp on Patreon: https://patreon.com/totalspectrum
To support FlexProp on Paypal: https://paypal.me/totalspectrum
14 changes: 7 additions & 7 deletions doc/help.txt
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
FlexGUI help
FlexPropGUI help
=============

Menus
Expand Down Expand Up @@ -66,7 +66,7 @@ The "Editor Options..." dialog allows you to change the way the source
code editor looks, e.g. changing the font used for the text, or the
tab settings. It also lets you change the font used for the compiler
output window, and has an option to automatically load files changed
by external programs (normally flexgui will prompt you to reload if
by external programs (normally flexpropgui will prompt you to reload if
it notices a change).

The "Save session on exit" option, if enabled, causes the editor to reload any
Expand Down Expand Up @@ -156,16 +156,16 @@ Configuring Commands

You can change the commands used for compiling and running
programs. Since the commands are flexible, you can acutally use
flexgui for compiling and running programs on the P1. The "P1
flexpropgui for compiling and running programs on the P1. The "P1
defaults" button sets the commands for this (you will need to supply
propeller-load.exe yourself). "P2b defaults" restores the settings to
the original Prop2 development. Use "P2a defaults" if you have an
old (revision A) board.

Config File
-----------
Settings for flexgui are saved in a file called ".flexgui.config" in
the HOME directory of the user (usually something like
C:\Users\MyName). If something gets really messed up, deleting that
file will restore flexgui to its default state.
Settings for flexpropgui are saved in a file called
".flexpropgui.config" in the directory where flexpropgui.exe is
installed. If something gets really messed up, deleting that
file will restore flexprop to its default state.

File renamed without changes.
File renamed without changes.
4 changes: 2 additions & 2 deletions src/flexgui.c → src/flexprop.c
Original file line number Diff line number Diff line change
Expand Up @@ -474,7 +474,7 @@ int fixup_argv(int *argc, TCHAR ***argv)

//_tprintf(_T("fixup_argv called\n"));

// get where the flexgui.exe executable is
// get where the flexprop.exe executable is
r = GetModuleFileName(NULL, namebuffer, MAX_PATH);
//_tprintf(_T("fixup_argv: namebuffer=%s\n"), namebuffer);
if (r >= MY_MAXPATH-1) {
Expand All @@ -490,7 +490,7 @@ int fixup_argv(int *argc, TCHAR ***argv)
my_argv = malloc( (my_argc+2) * sizeof(TCHAR *) );
my_argv[0] = (*argv)[0];
//_tprintf(_T("copying my_argv[1]\n"));
my_argv[1] = dyn_strcat(namebuffer, TEXT("/flexgui.tcl"));
my_argv[1] = dyn_strcat(namebuffer, TEXT("/flexprop.tcl"));
//_tprintf(_T("copying remaining argv\n"));
for (i = 2; i <= my_argc; i++) {
my_argv[i] = (*argv)[i-1];
Expand Down
12 changes: 6 additions & 6 deletions src/gui.tcl
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
# The guts of the IDE GUI
#
set aboutMsg "
GUI tool for fastspin
GUI tool for FlexProp
Version $spin2gui_version
Copyright 2018-2020 Total Spectrum Software Inc.
------
Expand All @@ -28,7 +28,7 @@ set tcl_nonwordchars {[^[:alnum:]_]}
#

# config file name
set CONFIG_FILE "$ROOTDIR/.flexgui.config"
set CONFIG_FILE "$ROOTDIR/.flexprop.config"

# prefix for shortcut keys (Command on Mac, Control elsewhere)
if { [tk windowingsystem] == "aqua" } {
Expand Down Expand Up @@ -303,7 +303,7 @@ proc config_save {} {
updateOpenFiles
set config(sash) [.p sash coord 0]
set fp [open $CONFIG_FILE w]
puts $fp "# flexgui config info"
puts $fp "# flexprop config info"
puts $fp "geometry\t[winfo geometry [winfo toplevel .]]"
puts $fp "opt\t\{$OPT\}"
puts $fp "compress\t\{$COMPRESS\}"
Expand Down Expand Up @@ -895,7 +895,7 @@ proc scriptSendCurFile {} {
# show the about message
proc doAbout {} {
global aboutMsg
tk_messageBox -icon info -type ok -message "FlexGUI" -detail $aboutMsg
tk_messageBox -icon info -type ok -message "FlexProp" -detail $aboutMsg
}

proc doHelp { file title } {
Expand Down Expand Up @@ -1354,7 +1354,7 @@ set comport_last [.mbar.comport index end]
.mbar.help add separator
.mbar.help add command -label "About..." -command { doAbout }

wm title . "FlexGUI"
wm title . "FlexProp"

panedwindow .p -orient vertical

Expand Down Expand Up @@ -1827,7 +1827,7 @@ set cmddialoghelptext {
Some special % escapes:
%B = Replace with current binary file name
%b = Replace with directory containing current binary file
%D = Replace with directory of flexgui executable
%D = Replace with directory of flexprop executable
%F = Replace with currently selected flash program (sd/flash)
%I = Replace with all library/include directories
%O = Replace with optimization level
Expand Down
10 changes: 5 additions & 5 deletions src/rc/wish.rc
Original file line number Diff line number Diff line change
Expand Up @@ -40,11 +40,11 @@ BEGIN
BEGIN
BLOCK "040904b0"
BEGIN
VALUE "FileDescription", "Flexgui Application\0"
VALUE "OriginalFilename", "flexgui.exe\0"
VALUE "FileDescription", "FlexProp Application\0"
VALUE "OriginalFilename", "flexprop.exe\0"
VALUE "CompanyName", "Total Spectrum Software\0"
VALUE "FileVersion", "3.9.32"
VALUE "LegalCopyright", "Copyright \251 2019 by Total Spectrum Software Inc., et al\0"
VALUE "FileVersion", "4.5.0"
VALUE "LegalCopyright", "Copyright \251 2020 by Total Spectrum Software Inc., et al\0"
VALUE "ProductName", "Tk " TK_VERSION " for Windows\0"
VALUE "ProductVersion", TK_PATCH_LEVEL
END
Expand Down Expand Up @@ -78,4 +78,4 @@ app ICON DISCARDABLE "wish.ico"
#ifndef CREATEPROCESS_MANIFEST_RESOURCE_ID
#define CREATEPROCESS_MANIFEST_RESOURCE_ID 1
#endif
CREATEPROCESS_MANIFEST_RESOURCE_ID RT_MANIFEST "flexgui.exe.manifest"
CREATEPROCESS_MANIFEST_RESOURCE_ID RT_MANIFEST "flexprop.exe.manifest"

0 comments on commit b226cc1

Please sign in to comment.