Add version 1.2

This commit is contained in:
No Time To Play 2023-10-06 11:40:23 +00:00
parent 1bc36befda
commit 157caf202e
3 changed files with 78 additions and 17 deletions

View File

@ -1,5 +1,13 @@
# ToyEd text editor project news
## [1.2] - 2023-10-06
### Changed
* Bumped minimum requirements.
* Improved file type filters.
* File dialogs now use Zenity under X11 if available.
## [1.1.1] - 2023-09-07
### Changed

View File

@ -4,7 +4,7 @@
ToyEd is a toy text editor made for fun and learning. It's not meant for serious use, but rather to be studied and built upon.
ToyEd is written in 650 lines of Tcl/Tk (see below), but has many expected features:
ToyEd is written in 700 lines of Tcl/Tk (see below), but has many expected features:
- GUI controls
- keyboard operation
@ -14,13 +14,13 @@ ToyEd is written in 650 lines of Tcl/Tk (see below), but has many expected featu
ToyEd is open source under the MIT license. See source code.
As of 7 September 2023, the code seems to work right, but hasn't really been tested. Please back up your data.
As of 6 October 2023, the code seems to work right, but hasn't been tested much. Please back up your data.
The user interface should be fairly obvious.
## System requirements
Running ToyEd from source requires Tcl/Tk 8.5 or newer, with Tcllib and Tklib. Both are available on most Linux distributions, or else from the tcl-lang.org website.
Running ToyEd from source requires Tcl/Tk 8.6 or newer, with Tklib. Both are available on most Linux distributions, or else from the tcl-lang.org website.
Recommended screen resolution: 800x600.

View File

@ -21,23 +21,22 @@
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
# THE SOFTWARE.
package require Tcl 8.5
package require Tk 8.5
package require try
package require Tcl 8.6
package require Tk 8.6
package require getstring
namespace import getstring::*
set window_title "ToyEd Text Editor"
set about_text "A toy text editor\nVersion 1.1.1 (7 Sep 2023)\nMIT License"
set about_text "A toy text editor\nVersion 1.2 (6 Oct 2023)\nMIT License"
set credits_text "Made by No Time To Play\nbased on knowledge\nfrom TkDocs.com"
set site_link "https://ctrl-c.club/~nttp/toys/toyed/"
set file_types {
{"All files" ".*"}
{"Text files" ".txt"}
{"Markdown files" ".md"}
{"Text files" ".txt .md"}
{"Script files" ".py .tcl .sh"}
}
set file_name ""
@ -377,10 +376,16 @@ proc do_open {} {
return
}
}
set choice [tk_getOpenFile -parent . \
-title "Open existing file" \
-initialdir [file_dir $file_name] \
-filetypes $file_types]
if {[tk windowingsystem] == "x11" && [auto_execok "zenity"] ne ""} {
set choice [open_with_zenity $file_name]
} else {
set choice [tk_getOpenFile -parent . \
-title "Open existing file" \
-initialdir [file_dir $file_name] \
-filetypes $file_types]
}
if {[string length $choice] == 0} {
set status "Opening canceled."
} elseif {![file isfile $choice]} {
@ -394,6 +399,27 @@ proc do_open {} {
}
}
proc open_with_zenity file_name {
try {
if {$file_name ne ""} {
return [exec zenity --file-selection \
--title "Open existing file" \
--filename $file_name \
--file-filter "All files | *" \
--file-filter "Text files | *.txt *.md" \
--file-filter "Script files | *.py *.tcl *.sh"]
} else {
return [exec zenity --file-selection \
--title "Open existing file" \
--file-filter "All files | *" \
--file-filter "Text files | *.txt *.md" \
--file-filter "Script files | *.py *.tcl *.sh"]
}
} trap CHILDSTATUS {results options} {
return ""
}
}
proc load_file full_path {
global status window_title
@ -436,10 +462,14 @@ proc do_save {} {
proc do_save_as {} {
global file_name file_types status
set choice [tk_getSaveFile -parent . \
-title "Save file as..." \
-initialdir [file_dir $file_name] \
-filetypes $file_types]
if {[tk windowingsystem] == "x11" && [auto_execok "zenity"] ne ""} {
set choice [save_with_zenity $file_name]
} else {
set choice [tk_getSaveFile -parent . \
-title "Save file as..." \
-initialdir [file_dir $file_name] \
-filetypes $file_types]
}
if {[string length $choice] == 0} {
set status "Save canceled."
} elseif {[save_file $choice]} {
@ -447,6 +477,29 @@ proc do_save_as {} {
}
}
proc save_with_zenity file_name {
try {
if {$file_name ne ""} {
return [exec zenity --file-selection \
--title "Save file as..." \
--save --confirm-overwrite \
--filename $file_name \
--file-filter "All files | *" \
--file-filter "Text files | *.txt *.md" \
--file-filter "Script files | *.py *.tcl *.sh"]
} else {
return [exec zenity --file-selection \
--title "Save file as..." \
--save --confirm-overwrite \
--file-filter "All files | *" \
--file-filter "Text files | *.txt *.md" \
--file-filter "Script files | *.py *.tcl *.sh"]
}
} trap CHILDSTATUS {results options} {
return ""
}
}
proc save_file full_path {
global status window_title