Some checks failed
		
		
	
	Gitea Actions Demo / Explore-Gitea-Actions (push) Has been cancelled
				
			
		
			
				
	
	
		
			140 lines
		
	
	
		
			6.0 KiB
		
	
	
	
		
			Tcl
		
	
	
	
	
	
			
		
		
	
	
			140 lines
		
	
	
		
			6.0 KiB
		
	
	
	
		
			Tcl
		
	
	
	
	
	
| #!/usr/bin/wish
 | |
| ######################################################
 | |
| #                ProjMan 2
 | |
| #        Distributed under GNU Public License
 | |
| # Author: Sergey Kalinin svk@nuk-svk.ru
 | |
| # Copyright (c) "", 2022, https://nuk-svk.ru
 | |
| ######################################################
 | |
| # Generate menu module
 | |
| ######################################################
 | |
| 
 | |
| proc GetFileMenu {m} {
 | |
|     global activeProject cfgVariables
 | |
|     $m add command -label [::msgcat::mc "New file"] -command Editor::New\
 | |
|     -accelerator "Ctrl+N"
 | |
|     $m add command -label [::msgcat::mc "Open file"] -accelerator "Ctrl+O" -command {
 | |
|         set filePath [FileOper::OpenDialog]
 | |
|         if {$filePath != ""} {
 | |
|             FileOper::Edit $filePath
 | |
|         }
 | |
|     }
 | |
|     $m add command -label [::msgcat::mc "Save file"] -command {FileOper::Save}\
 | |
|         -accelerator "Ctrl+S"
 | |
|     $m add command -label [::msgcat::mc "Close file"] -command {FileOper::Close}\
 | |
|         -accelerator "Ctrl+w"
 | |
|     $m add command -label [::msgcat::mc "Close all"] -command {FileOper::CloseAll}
 | |
| 
 | |
|     $m add separator
 | |
|     menu $m.openRecent
 | |
|     $m add cascade -label [::msgcat::mc "Open recent"] -menu $m.openRecent
 | |
|     foreach item $cfgVariables(recentFolder) {
 | |
|         $m.openRecent add command -label $item -command [list OpenRecentProject $item]
 | |
|     }
 | |
| 
 | |
|     $m add separator
 | |
| 
 | |
|     $m add command -label [::msgcat::mc "Open folder"] -accelerator "Alt+K" -command {
 | |
|         set folderPath [FileOper::OpenFolderDialog]
 | |
|         if {$folderPath != ""} {
 | |
|             # set activeProject $folderPath
 | |
|             SetActiveProject $folderPath
 | |
|             FileOper::ReadFolder $folderPath
 | |
|             ReadFilesFromDirectory $folderPath $folderPath
 | |
|         }
 | |
|     }    
 | |
|     $m add command -label [::msgcat::mc "Close folder"] -command {FileOper::CloseFolder}
 | |
| 
 | |
|     #$m add command -label [::msgcat::mc "Open"] -command {FileDialog $tree open}\
 | |
|     #-font $fontNormal -accelerator "Ctrl+O"        -state disable
 | |
|     $m add separator
 | |
|     $m add command -label [::msgcat::mc "Exit"] -command Quit -accelerator "Ctrl+Q"
 | |
| }
 | |
| 
 | |
| 
 | |
| proc GetEditMenu {m} {
 | |
|     $m add command -label [::msgcat::mc "Undo"] -command Undo\
 | |
|     -accelerator "Ctrl+Z"
 | |
|     $m add command -label [::msgcat::mc "Redo"] -command Redo\
 | |
|     -accelerator "Ctrl+Y"
 | |
|     $m add separator
 | |
|     $m add command -label [::msgcat::mc "Copy"] -command Copy\
 | |
|     -accelerator "Ctrl+C"
 | |
|     $m add command -label [::msgcat::mc "Paste"] -command Paste\
 | |
|     -accelerator "Ctrl+V"
 | |
|     $m add command -label [::msgcat::mc "Cut"] -command Cut\
 | |
|     -accelerator "Ctrl+Z"
 | |
|     $m add separator
 | |
|     $m add command -label [::msgcat::mc "Find"] -command {Editor::FindDialog ""}\
 | |
|     -accelerator "Ctrl+F"
 | |
|     # $m add command -label [::msgcat::mc "Replace"] -command Replace\
 | |
|     # -accelerator "Ctrl+R"
 | |
|     $m add separator
 | |
|     $m add command -label [::msgcat::mc "Find in files"] -command "FileOper::FindInFiles"\
 | |
|     -accelerator "Ctrl+Shift+F"
 | |
|     $m add command -label [::msgcat::mc "Replace in files"] -command FileOper::ReplaceInFiles\
 | |
|     -accelerator "Ctrl+Shift+RV"
 | |
|     $m add separator
 | |
|     $m add command -label [::msgcat::mc "Insert image"] -accelerator "Ctrl+I"\
 | |
|         -command ImageBase64Encode
 | |
|     $m add separator
 | |
|     $m add command -label [::msgcat::mc "Settings"] -command Settings
 | |
| }
 | |
| 
 | |
| proc GetViewMenu {m} {
 | |
|     global cfgVariables
 | |
|     $m add checkbutton -label [::msgcat::mc "View panel"] -command ViewFilesTree \
 | |
|         -variable cfgVariables(filesPanelShow) -onvalue true -offvalue false \
 | |
|         -accelerator "Alt+P"
 | |
|     menu $m.panelSide 
 | |
|     $m add cascade -label [::msgcat::mc "Panel side"] -menu $m.panelSide 
 | |
|     $m.panelSide  add radiobutton -label [::msgcat::mc "Left"] \
 | |
|         -variable cfgVariables(filesPanelPlace) -value left -command ViewFilesTree
 | |
|     $m.panelSide  add radiobutton -label [::msgcat::mc "Right"] \
 | |
|         -variable cfgVariables(filesPanelPlace) -value right -command ViewFilesTree
 | |
|         
 | |
|     $m add checkbutton -label [::msgcat::mc "Show the Menu"] -command ViewMenuBar \
 | |
|         -variable cfgVariables(menuShow) -onvalue true -offvalue false
 | |
|     $m add checkbutton -label [::msgcat::mc "Toolbar"] -command ViewToolBar \
 | |
|         -variable cfgVariables(toolBarShow) -onvalue true -offvalue false 
 | |
|         $m add checkbutton -label [::msgcat::mc "Statusbar"] -command ViewStatusBar \
 | |
|         -variable cfgVariables(statusBarShow) -onvalue true -offvalue false
 | |
| 
 | |
|     $m add separator
 | |
|     # $m add command -label [::msgcat::mc "View line numbers"] \
 | |
|         # -command ViewLineNumbers
 | |
|     $m add checkbutton -label [::msgcat::mc "View line numbers"] \
 | |
|         -variable cfgVariables(lineNumberShow) -onvalue true -offvalue false \
 | |
|         -command ViewLineNumbers
 | |
|         
 | |
|     menu $m.editorWrap
 | |
|     $m add cascade -label [::msgcat::mc "Editors word wrapping"] -menu $m.editorWrap
 | |
|     $m.editorWrap  add radiobutton -label [::msgcat::mc "None"] -variable cfgVariables(editorWrap) \
 | |
|         -value none -command "Editor::SetOption wrap $cfgVariables(editorWrap)"
 | |
|     $m.editorWrap  add radiobutton -label [::msgcat::mc "Char"] -variable cfgVariables(editorWrap) \
 | |
|         -value char -command "Editor::SetOption wrap $cfgVariables(editorWrap)"
 | |
|     $m.editorWrap  add radiobutton -label [::msgcat::mc "Word"] -variable cfgVariables(editorWrap) \
 | |
|         -value word -command "Editor::SetOption wrap $cfgVariables(editorWrap)"
 | |
| 
 | |
|     $m add separator
 | |
|     menu $m.editorHelper
 | |
|     $m add cascade -label [::msgcat::mc "Editor helpers"] -menu $m.editorHelper
 | |
|     $m.editorHelper add checkbutton -label [::msgcat::mc "Variables"] \
 | |
|         -variable cfgVariables(variableHelper) -onvalue true -offvalue false 
 | |
|         # -command "ViewHelper variableHelper"
 | |
|         
 | |
|     $m.editorHelper add checkbutton -label [::msgcat::mc "Procedures"] \
 | |
|         -variable cfgVariables(procedureHelper) -onvalue true -offvalue false 
 | |
|         # -command "ViewHelper procedureHelper"
 | |
| 
 | |
|     $m add checkbutton -label [::msgcat::mc "Multiline comments"] \
 | |
|         -variable cfgVariables(multilineComments) -onvalue true -offvalue false 
 | |
| }
 | |
| 
 | |
| proc GetHelpMenu {m} {
 | |
|     $m add command -label [::msgcat::mc "About ..."] -command Help::About
 | |
| }
 | |
| 
 | |
| proc PopupMenu {x y} {
 | |
|     tk_popup .popup $x $y
 | |
| }
 |