Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
howtos:using_with_tcl_tk [2018/04/11 03:25] – add to [options] aplsimple | howtos:using_with_tcl_tk [2019/09/15 14:30] (current) – links updated aplsimple | ||
---|---|---|---|
Line 11: | Line 11: | ||
Below there is an attached zip file that provides this mutual helping of [[http:// | Below there is an attached zip file that provides this mutual helping of [[http:// | ||
+ | |||
+ | \\ | ||
===== List of features ===== | ===== List of features ===== | ||
Line 18: | Line 20: | ||
* calling a context help for [[http:// | * calling a context help for [[http:// | ||
- | * [[http:// | + | * [[http:// |
* opening any number of menus containing any commands (programs) to run | * opening any number of menus containing any commands (programs) to run | ||
Line 24: | Line 26: | ||
* passing a selected text to the menu commands to process | * passing a selected text to the menu commands to process | ||
- | * the selection can be passed as underlined (" | + | * the selection can be passed as underlined (" |
* commands can be run by itself and by shell in console box | * commands can be run by itself and by shell in console box | ||
Line 30: | Line 32: | ||
* commands can be run with or without waiting their completion | * commands can be run with or without waiting their completion | ||
- | * internal command //%e %s// means " | + | * internal command //%E %s// means " |
- | * internal command //%b " | + | * internal command //%B " |
- | * internal command //%q " | + | * internal command //%Q " |
- | * a batch of commands can be under one menu item | + | * a batch of commands can be united |
* any command can be confirmed, with message box of title and text including Geany selection | * any command can be confirmed, with message box of title and text including Geany selection | ||
Line 40: | Line 42: | ||
* commands can include backslashes as opposed to Unix's "/" | * commands can include backslashes as opposed to Unix's "/" | ||
- | * hierarchy of menus | + | * a hierarchy of menus |
- | * child menu can be called with or without waiting it, with or without closing its parent menu | + | * a child menu can be called with or without waiting it, with or without closing its parent menu |
+ | |||
+ | * a child menu can be called with closing its parent and calling back the parent after closing the child | ||
* menus can be called (or made afterwards) as ' | * menus can be called (or made afterwards) as ' | ||
Line 52: | Line 56: | ||
* menu items can be bound to hotkeys F1-F12 (by default they are bound to 1-9a-z) | * menu items can be bound to hotkeys F1-F12 (by default they are bound to 1-9a-z) | ||
- | * menu items and their underlying commands can include up to 9 counters of runs per a menu | + | * menu items and their underlying commands can include up to 10 counters of runs per a menu |
* menu items and their underlying commands can be supplied with current date/time | * menu items and their underlying commands can be supplied with current date/time | ||
Line 62: | Line 66: | ||
* any menu item can be assigned to ' | * any menu item can be assigned to ' | ||
- | * to ' | + | * commands that are invisible in menu may be assigned to ' |
- | * any Tcl command(s) can be assigned to ' | + | * Tcl command(s) can be assigned to ' |
* menus can be edited in Geany 'on fly' and then re-read | * menus can be edited in Geany 'on fly' and then re-read | ||
Line 74: | Line 78: | ||
* [[using_with_tcl_tk|e_menu]] can be started with a pause to delay its initialization | * [[using_with_tcl_tk|e_menu]] can be started with a pause to delay its initialization | ||
- | * items can be run repeatedly | + | * items can be run repeatedly |
- | * [[using_with_tcl_tk|e_menu]] | + | * [[using_with_tcl_tk|e_menu]] |
- | * menu text font and font size may be set at call | + | * there are a lot of ' |
- | * there are several color schemes of menu (inc. highlighting ' | + | * the options |
- | * parent menu options are inherited by child menu if not overridden | + | * parent menu options are inherited by child menu and can be overridden |
- | * [[https:// | + | * for an easy exercise, |
* encoding of menus is utf-8 | * encoding of menus is utf-8 | ||
+ | \\ | ||
===== Context action of Geany IDE ===== | ===== Context action of Geany IDE ===== | ||
- | I try and show how the Geany context command can be used with all its beauty. | + | I try and show how the Geany context command can be used in all its beauty. |
Imagine we have a Python module under testing in Geany. And it is called with parameters. And the parameters are changed from time to time. | Imagine we have a Python module under testing in Geany. And it is called with parameters. And the parameters are changed from time to time. | ||
Line 114: | Line 119: | ||
By this we don't touch Run settings of other Python modules. | By this we don't touch Run settings of other Python modules. | ||
+ | |||
+ | \\ | ||
===== Introduction to e_menu ===== | ===== Introduction to e_menu ===== | ||
Line 123: | Line 130: | ||
Please try this: | Please try this: | ||
- | 1. If you do not have [[http:// | + | 1. If you do not have [[http:// |
- | 2. Unpack the below attached zip to save files: | + | 2. Unpack the below attached zip to save: |
+ | |||
+ | e_menu | ||
+ | menus directory | ||
+ | src directory | ||
- | e_help.tcl | ||
- | e_menu.tcl | ||
- | rarrow.png | ||
- | run_pause.bat | ||
- | run_pause.sh | ||
- | ...etc... | ||
into some directory, e.g. / | into some directory, e.g. / | ||
3. Go to Geany' | 3. Go to Geany' | ||
- | wish / | + | wish / |
Uff. Now you should be able to call the context help. While editing your [[http:// | Uff. Now you should be able to call the context help. While editing your [[http:// | ||
Line 155: | Line 160: | ||
{{: | {{: | ||
- | The menu is rather simply organized and passed to e_menu.tcl as " | + | The menu is rather simply organized and passed to [[using_with_tcl_tk|e_menu]] as " |
+ | |||
+ | \\ | ||
===== Calling e_menu ===== | ===== Calling e_menu ===== | ||
Line 163: | Line 170: | ||
**// | **// | ||
- | wish e_menu.tcl [s=%s] [m=menufile] [options] | + | wish e_menu [s=%s] [m=menufile] [options] |
//** | //** | ||
Line 202: | Line 209: | ||
|// fs=number //|size of fonts used in menu| fs=9| | |// fs=number //|size of fonts used in menu| fs=9| | ||
|// " | |// " | ||
- | |// " | + | |// " |
|// w=number //|width of menu items (in characters)| w=30 | | |// w=number //|width of menu items (in characters)| w=30 | | ||
- | |// c=number //|index of color scheme (0 through | + | |// c=number //|index of color scheme (0 through |
|// o=number // | |// o=number // | ||
|// | |// | ||
+ | |// | ||
+ | |// | ||
+ | |// | ||
+ | |// | ||
|//t=1 //|sets a menu as a topmost window on screen|t=1| | |//t=1 //|sets a menu as a topmost window on screen|t=1| | ||
|// g=+x+y //|sets (x,y) screen coordinates of menu| g=+700+200| | |// g=+x+y //|sets (x,y) screen coordinates of menu| g=+700+200| | ||
|// wc=1 // |centers a menu on screen|wc=1| | |// wc=1 // |centers a menu on screen|wc=1| | ||
- | |// " | + | |// " |
- | |// " | + | |// " |
|// " | |// " | ||
|// " | |// " | ||
- | |// " | + | |// " |
|// " | |// " | ||
|// " | |// " | ||
Line 225: | Line 236: | ||
|// ah=list //|sets a list of hotkeys of autorun menu items of [HIDDEN] section to be run at start of [[using_with_tcl_tk|e_menu]]|ah=1, | |// ah=list //|sets a list of hotkeys of autorun menu items of [HIDDEN] section to be run at start of [[using_with_tcl_tk|e_menu]]|ah=1, | ||
|// " | |// " | ||
- | |// P=syms // |sets a symbol(s) used instead of " | + | |// P=syms // |sets a symbol(s) used instead of " |
|// pa=number //|sets a pause (in milliseconds) to suspend [[using_with_tcl_tk|e_menu]] before starting it; sometimes it may be desirable|pa=500| | |// pa=number //|sets a pause (in milliseconds) to suspend [[using_with_tcl_tk|e_menu]] before starting it; sometimes it may be desirable|pa=500| | ||
|// " | |// " | ||
Line 237: | Line 248: | ||
|// " | |// " | ||
- | Note: options s0..s9 | + | Note: options s0..s9, u0..u9, x*, y*, z* can include wildcards used in menu commands, e.g.: |
"s0= run #%i0 at %t2" | "s0= run #%i0 at %t2" | ||
Line 244: | Line 255: | ||
See also " | See also " | ||
+ | \\ | ||
==== Setting options in a menu file ==== | ==== Setting options in a menu file ==== | ||
Most options of a call string can be set in [OPTIONS] section of a menu file, e.g. : | Most options of a call string can be set in [OPTIONS] section of a menu file, e.g. : | ||
- | R:?6? | + | R: |
- | R: Wikipedia for " | + | R: Firefox search for " |
- | R: Open/create file(s) " | + | R: Wikipedia for " |
+ | R: Open/create file(s) " | ||
R: geany: edit all R: geany readme.md wiki.txt e_help.tcl e_menu.tcl | R: geany: edit all R: geany readme.md wiki.txt e_help.tcl e_menu.tcl | ||
| | ||
- | | + | |
+ | MW: Git MW: m=%PN/ | ||
MW: Tcl/ | MW: Tcl/ | ||
MW: Python | MW: Python | ||
Line 281: | Line 294: | ||
And vice versa, if you want to have a specific menu iron bound to some project, include into its [OPTIONS] the //PD=, PN=// and //om=1//. | And vice versa, if you want to have a specific menu iron bound to some project, include into its [OPTIONS] the //PD=, PN=// and //om=1//. | ||
+ | \\ | ||
==== Examples ==== | ==== Examples ==== | ||
Line 288: | Line 302: | ||
** 1. ** | ** 1. ** | ||
- | wish / | + | wish / |
" | " | ||
" | " | ||
Line 322: | Line 336: | ||
cd $DIR | cd $DIR | ||
| | ||
- | wish ./e_menu.tcl " | + | wish ./e_menu " |
m=menus/ | m=menus/ | ||
| | ||
- | wish ./e_menu.tcl " | + | wish ./e_menu " |
m=menus/ | m=menus/ | ||
| | ||
- | wish ./e_menu.tcl " | + | wish ./e_menu " |
m=menus/ | m=menus/ | ||
| | ||
Line 335: | Line 349: | ||
cd $curdir | cd $curdir | ||
- | Notice that all three menus are called as topmost independent applications (t=1, &) without ' | + | Notice that all three menus are called as topmost independent applications (t=1, &) without ' |
+ | \\ | ||
===== Creating e_menu files ===== | ===== Creating e_menu files ===== | ||
+ | \\ | ||
==== Structure of menu ==== | ==== Structure of menu ==== | ||
Line 354: | Line 370: | ||
< | < | ||
| | ||
- | # ... | ||
# comments | # comments | ||
+ | # ... | ||
| | ||
[HIDDEN] | [HIDDEN] | ||
< | < | ||
< | < | ||
+ | # ... | ||
| | ||
+ | [OPTIONS] | ||
+ | # ... options of e_menu call string | ||
# ... | # ... | ||
- | # comments | ||
where //< | where //< | ||
Line 392: | Line 410: | ||
* // ME/ // | * // ME/ // | ||
* // ME: // these ones call a child menu and close a parent | * // ME: // these ones call a child menu and close a parent | ||
+ | |||
+ | * // I: // Tcl commands (incl. the internal e_menu functions D, Q, S) | ||
Markers with "/" | Markers with "/" | ||
Line 423: | Line 443: | ||
A //menu item name// can begin with //F1// through //F12// which means a hotkey F1...F12 for this name. By default, items have hotkeys //1// through //9// and //a// through //z//. For example: | A //menu item name// can begin with //F1// through //F12// which means a hotkey F1...F12 for this name. By default, items have hotkeys //1// through //9// and //a// through //z//. For example: | ||
- | RE: F1 Geany' | + | RE: F1 Geany' |
- this would display [[using_with_tcl_tk|e_menu]] that would display (after second F1) the help of Geany IDE and close. | - this would display [[using_with_tcl_tk|e_menu]] that would display (after second F1) the help of Geany IDE and close. | ||
Line 429: | Line 449: | ||
It's useful feature if you mapped F1 to Geany context action - then double pressing F1 brings up Geany' | It's useful feature if you mapped F1 to Geany context action - then double pressing F1 brings up Geany' | ||
+ | An item marked with //I:// refers to some internals, namely the direct execution of Tcl commands. D, Q, S procedures of [[using_with_tcl_tk|e_menu]] can be also used in //I:// items. Here a few examples: | ||
+ | |||
+ | I: Xterm in " | ||
+ | | ||
+ | I: Xterm in " | ||
+ | | ||
+ | I: Console commands I: S dir \n echo \$PWD \n date | ||
+ | |||
+ | where $ escaped as \$, CLI commands devided with \n. | ||
+ | |||
+ | \\ | ||
==== Wildcards in menu names and commands ==== | ==== Wildcards in menu names and commands ==== | ||
Line 450: | Line 481: | ||
|// %u0 \\ %u1 \\ -" | |// %u0 \\ %u1 \\ -" | ||
|// %i0 \\ %i1 \\ -" | |// %i0 \\ %i1 \\ -" | ||
- | |// %b " | + | |// %B " |
- | |// %q " | + | |// %Q " |
- | |// %e file1 [file2 ...] //| calls Geany editor to edit/create //file(s)// e.g.: \\ ... to edit file(s) of Geany' | + | |// %E file1 [file2 ...] //| calls Geany editor to edit/create //file(s)// e.g.: \\ ... to edit file(s) of Geany' |
|// ''< | |// ''< | ||
|// %d //| Geany' | |// %d //| Geany' | ||
Line 460: | Line 491: | ||
|// %p //| Geany' | |// %p //| Geany' | ||
+ | \\ | ||
==== Processing wildcards ==== | ==== Processing wildcards ==== | ||
Line 508: | Line 540: | ||
"s1= Theme 1" "s2= Theme 1.2" "s3= Theme 1.2.3" "s4= Theme 1.2.3.4" | "s1= Theme 1" "s2= Theme 1.2" "s3= Theme 1.2.3" "s4= Theme 1.2.3.4" | ||
+ | \\ | ||
==== Examples ==== | ==== Examples ==== | ||
Line 517: | Line 549: | ||
Here is an example: | Here is an example: | ||
- | # menu for e_menu.tcl | + | # menu for e_menu |
| | ||
R/ GoldenDict | R/ GoldenDict | ||
Line 526: | Line 558: | ||
| | ||
R: Firefox search for " | R: Firefox search for " | ||
- | R: Wikipedia for " | + | R: Wikipedia for " |
| | ||
MW/ Git menu MW/ " | MW/ Git menu MW/ " | ||
Line 544: | Line 576: | ||
The command batches contain mixed ' | The command batches contain mixed ' | ||
- | The wildcard //%s// refers to Geany' | + | The wildcard //%s// refers to Geany' |
- | The wildcard //%q// is a query with ' | + | The wildcard //%Q// is a query with ' |
- | In // %q // command you should use edging double quotes and internal single quotes in a title and a message. Symbol \//n// stands for an empty line. | + | In // %Q // command you should use edging double quotes and internal single quotes in a title and a message. Symbol \//n// stands for an empty line. |
- | # git menu for e_menu.tcl | + | # git menu for e_menu |
| | ||
R:git status R: cd %PD | R:git status R: cd %PD | ||
Line 561: | Line 593: | ||
S:git add * S: git add * | S:git add * S: git add * | ||
| | ||
- | R:git commit -m " | + | R:git commit -m " |
R:git commit -m " | R:git commit -m " | ||
S:git commit -m " | S:git commit -m " | ||
| | ||
- | R:git commit -am " | + | R:git commit -am " |
R:git commit -am " | R:git commit -am " | ||
S:git commit -am " | S:git commit -am " | ||
| | ||
- | R:git log --since="1 day ago" R: cd %PD | + | R:git log "--since=1 day ago" R: cd %PD |
- | S:git log --since="1 day ago" S: git log --since="1 day ago" | + | S:git log "--since=1 day ago" S: git log "--since=1 day ago" |
| | ||
- | R:git log -p --since="1 day ago" R: cd %PD | + | R:git log -p "--since=1 day ago" R: cd %PD |
- | S:git log -p --since="1 day ago" S: git log -p --since="1 day ago" | + | S:git log -p "--since=1 day ago" S: git log -p "--since=1 day ago" |
| | ||
MW: Others MW: m=menus/ | MW: Others MW: m=menus/ | ||
+ | \\ | ||
===== Using e_menu ===== | ===== Using e_menu ===== | ||
Line 608: | Line 641: | ||
* // | * // | ||
+ | |||
+ | If not redefined in the menu F1 calls this wiki page. | ||
You can use the right and the left arrow keys for calling and closing a submenu respectively. | You can use the right and the left arrow keys for calling and closing a submenu respectively. | ||
+ | |||
+ | \\ | ||
===== Detailed example ===== | ===== Detailed example ===== | ||
- | The following example illustrates step by step how to create and use [[using_with_tcl_tk|e_menu]] in Windows. Linux version is mostly the same and even more simple than Windows' | + | The following example illustrates step by step how to create and use [[using_with_tcl_tk|e_menu]] in Windows. Linux version is mostly the same and even more simple than Windows' |
+ | \\ | ||
==== Step 1. Initial testing. ==== | ==== Step 1. Initial testing. ==== | ||
Line 621: | Line 659: | ||
It's also assumed in the next sections that [[using_with_tcl_tk|e_menu]] has been unpacked into // | It's also assumed in the next sections that [[using_with_tcl_tk|e_menu]] has been unpacked into // | ||
- | Try [[using_with_tcl_tk|e_menu]] now. Set the caret on a word of your text edited in Geany IDE. You may also select a piece of text. Call //' | + | Try [[using_with_tcl_tk|e_menu]] now. Set the caret on a word of your text edited in Geany IDE. You may also select a piece of text. Call //' |
You should see the following: | You should see the following: | ||
Line 638: | Line 676: | ||
* include the h= parameter into Geany context action: | * include the h= parameter into Geany context action: | ||
- | wish C: | + | wish C: |
* download the [[http:// | * download the [[http:// | ||
Line 648: | Line 686: | ||
wget -r -k -l 2 -p --accept-regex=.+/ | wget -r -k -l 2 -p --accept-regex=.+/ | ||
- | Now the offline help should be ready to call. If not, check the version of your //wget// utility. You may also check // | + | Now the offline help should be ready to call. If not, check the version of your //wget// utility. |
Retry [[http:// | Retry [[http:// | ||
Line 656: | Line 694: | ||
Click on the first item and you would see the [[http:// | Click on the first item and you would see the [[http:// | ||
- | ==== Step 2. Creating menu. ==== | + | \\ |
+ | ==== Step 2. Creating | ||
Let's try and create a simple menu of 2 commands that would be available from Geany' | Let's try and create a simple menu of 2 commands that would be available from Geany' | ||
- | The menu file will be // | + | The menu file will be // |
* seek the selected internet pages | * seek the selected internet pages | ||
* view the selected words in a dictionary | * view the selected words in a dictionary | ||
- | Fill the // | + | Fill the // |
R/ Firefox search for " | R/ Firefox search for " | ||
Line 676: | Line 715: | ||
After that include the menu file into the call string of Geany' | After that include the menu file into the call string of Geany' | ||
- | wish C: | + | wish C: |
NOTE: if you dislike to have the HELP/ | NOTE: if you dislike to have the HELP/ | ||
Line 685: | Line 724: | ||
For example, you can write Geany' | For example, you can write Geany' | ||
- | wish C: | + | wish C: |
... and // | ... and // | ||
Line 707: | Line 746: | ||
{{: | {{: | ||
- | + | \\ | |
- | ==== Step 3. Creating submenu. ==== | + | ==== Step 3. Creating |
The [[using_with_tcl_tk|e_menu]]' | The [[using_with_tcl_tk|e_menu]]' | ||
Line 747: | Line 786: | ||
SW: echo %%PD is %PD SW: echo %%PD is %PD | SW: echo %%PD is %PD SW: echo %%PD is %PD | ||
| | ||
- | R: git init R: %q "Init GIT" "Are you sure to init git in\n\n%PD ?" | + | R: git init R: %Q "Init GIT" "Are you sure to init git in\n\n%PD ?" |
R: git init R: cd %PD | R: git init R: cd %PD | ||
S: git init S: git init | S: git init S: git init | ||
Line 760: | Line 799: | ||
S: git add * S: git add * | S: git add * S: git add * | ||
| | ||
- | R: git commit -am ' | + | R: git commit -am ' |
R: git commit -am ' | R: git commit -am ' | ||
S: git commit -am ' | S: git commit -am ' | ||
Line 776: | Line 815: | ||
First items only echo the options passed to [[using_with_tcl_tk|e_menu]]. Echos are useful for debugging btw. Other items refer to GIT system so that they would be working if you had installed GIT. | First items only echo the options passed to [[using_with_tcl_tk|e_menu]]. Echos are useful for debugging btw. Other items refer to GIT system so that they would be working if you had installed GIT. | ||
+ | \\ | ||
==== Usage in Linux ==== | ==== Usage in Linux ==== | ||
- | Actually all previous considerations apply also to Linux usage of [[using_with_tcl_tk|e_menu]]. Therefore, | + | Actually all previous considerations apply also to Linux usage of [[using_with_tcl_tk|e_menu]]. Therefore, |
{{: | {{: | ||
+ | |||
+ | \\ | ||
+ | \\ | ||
+ | \\ | ||
+ | |||
+ | {{: | ||
+ | |||
+ | \\ | ||
===== Tips and hints ===== | ===== Tips and hints ===== | ||
+ | \\ | ||
==== What's all those R, RE, RW, S, SE, SW, M, ME, MW mean? ==== | ==== What's all those R, RE, RW, S, SE, SW, M, ME, MW mean? ==== | ||
Line 796: | Line 845: | ||
** W ** stands for //wait for completion of action// | ** W ** stands for //wait for completion of action// | ||
+ | \\ | ||
==== Changing menus' look and feel ==== | ==== Changing menus' look and feel ==== | ||
Let me remind you how [[using_with_tcl_tk|e_menu]] is called: | Let me remind you how [[using_with_tcl_tk|e_menu]] is called: | ||
- | wish / | + | wish / |
The following call options of [[using_with_tcl_tk|e_menu]] can influence on menus' look and feel: | The following call options of [[using_with_tcl_tk|e_menu]] can influence on menus' look and feel: | ||
Line 822: | Line 872: | ||
* c=0 - sets an index of color scheme; 0 is default. | * c=0 - sets an index of color scheme; 0 is default. | ||
- | The following colors are available from c=0 to c=6: | + | The following colors are available from c=0 to c=12: |
- | {{: | + | {{: |
and their shadowed counterparts (3rd scheme is of special highlight as you see): | and their shadowed counterparts (3rd scheme is of special highlight as you see): | ||
- | {{: | + | {{: |
5th color scheme can be used to open a potentially dangerous menu, e.g. containing some irrevocable commands. | 5th color scheme can be used to open a potentially dangerous menu, e.g. containing some irrevocable commands. | ||
- | |||
- | You can use a special form of item name to set a separator before it, namely: | ||
- | |||
- | R: ?N? name R: command | ||
- | |||
- | where ?N? contains a number negative to set a visible separator (e.g. ?-5?) or positive to set a separating empty space (e.g. ?5?). The N number sets a vertical size of separator. | ||
The dangerous and irrevocable commands may be collected under a red menu as big as a monitor screen, e.g.: | The dangerous and irrevocable commands may be collected under a red menu as big as a monitor screen, e.g.: | ||
Line 846: | Line 890: | ||
{{: | {{: | ||
+ | You can use a special form of menu item name to set a separator, namely: | ||
+ | |||
+ | R: R: N | ||
+ | | ||
+ | or | ||
+ | | ||
+ | R: -- R: N | ||
+ | |||
+ | where N sets a vertical size of separator. If the item name contains " | ||
+ | |||
+ | |||
+ | \\ | ||
==== Warnings of menus ==== | ==== Warnings of menus ==== | ||
Line 854: | Line 910: | ||
Here the Tcl commands are used to exit and close the dangerous menu possibly open by mistake. Q is a query with " | Here the Tcl commands are used to exit and close the dangerous menu possibly open by mistake. Q is a query with " | ||
- | When calling a menu item, you can use //%q " | + | When calling a menu item, you can use //%Q " |
- | R:git reset --hard HEAD R: %q " | + | R:git reset --hard HEAD R: %Q " |
R:git reset --hard HEAD R: cd %PD | R:git reset --hard HEAD R: cd %PD | ||
S:git reset --hard HEAD S: git reset --hard HEAD | S:git reset --hard HEAD S: git reset --hard HEAD | ||
Line 862: | Line 918: | ||
- here the cancelled commands are ' | - here the cancelled commands are ' | ||
+ | \\ | ||
==== Counting and timing commands ==== | ==== Counting and timing commands ==== | ||
Line 877: | Line 933: | ||
* // %i9 // - are counters of item runs | * // %i9 // - are counters of item runs | ||
- | It's useful feature for commands that are logging or marking their data (files, directories etc.) with a current time, date and/or counter. There are 10 run counters per a menu and 4 time/date formats that can be set at call. | + | It's useful feature for commands that are logging or marking their data (files, directories etc.) with a current time, date and/or counter. There are 10 run counters per a menu and 10 time/date formats that can be set at call. |
Here is a typical example: | Here is a typical example: | ||
Line 887: | Line 943: | ||
" | " | ||
+ | \\ | ||
==== Running commands at start ==== | ==== Running commands at start ==== | ||
Line 899: | Line 956: | ||
Then, if you would desire to destroy and/or re-run the ' | Then, if you would desire to destroy and/or re-run the ' | ||
- | The master menu could be colored in 3rd color scheme that would distinguish it among others. 3rd color scheme menus aren't shadowed even while losing a focus. And of course [[using_with_tcl_tk|e_menu]] being //open source// allows you to change and expand its color schemes (see //e_menu.tlc//). | + | The master menu could be colored in 3rd color scheme that would distinguish it among others. 3rd color scheme menus aren't shadowed even while losing a focus. And of course [[using_with_tcl_tk|e_menu]] being //open source// allows you to change and expand its color schemes |
See above //' | See above //' | ||
Line 908: | Line 965: | ||
cd %DIR% | cd %DIR% | ||
- | start wish %EMDIR%/ | + | start wish %EMDIR%/ |
- | start wish %EMDIR%/ | + | start wish %EMDIR%/ |
start cmd.exe /c " | start cmd.exe /c " | ||
Line 934: | Line 991: | ||
Insert into " | Insert into " | ||
- | R: Open all R: %e readme.md wiki.txt e_help.tcl e_menu.tcl | + | R: Open all R: %E readme.md wiki.txt e_help.tcl e_menu.tcl |
... and assuming that "Open all" entry is number 8 in menu.mnu, change its call so: | ... and assuming that "Open all" entry is number 8 in menu.mnu, change its call so: | ||
- | start wish %EMDIR%/ | + | start wish %EMDIR%/ |
That's all. Minus a special start of Geany in batch file. Plus a useful menu command that allows __to restore your project file list__ in Geany IDE. | That's all. Minus a special start of Geany in batch file. Plus a useful menu command that allows __to restore your project file list__ in Geany IDE. | ||
+ | \\ | ||
==== Starting menu items at intervals ==== | ==== Starting menu items at intervals ==== | ||
Line 965: | Line 1022: | ||
| | ||
R: Run periodic reminding of rest at 45 min interval R: ? | R: Run periodic reminding of rest at 45 min interval R: ? | ||
- | R: Run batches of commands periodically R: ? | ||
- | The last two tasks should be explained in details. The common format of periodic command is following: | + | The last task should be explained in details. The common format of periodic command is following: |
? | ? | ||
Line 994: | Line 1050: | ||
* repeat all | * repeat all | ||
- | The batch | ||
- | |||
- | ? | ||
- | |||
- | means: | ||
- | |||
- | * run " | ||
- | * wait 1 hour-2 seconds | ||
- | * run " | ||
- | * wait 1 second | ||
- | * run commands of menu with numbers 4 and 5 | ||
- | * wait 1 second | ||
- | * run hidden commands of menu with numbers 1 and 2 | ||
- | * repeat all | ||
We could easily set the task of theater show: | We could easily set the task of theater show: | ||
Line 1041: | Line 1083: | ||
* 20 seconds of part 3 showing | * 20 seconds of part 3 showing | ||
* curtain | * curtain | ||
+ | |||
+ | Here is the show and even a spectator:) | ||
+ | |||
+ | {{: | ||
You may desire to stop this periodical stuff manually. Just call it again and [[using_with_tcl_tk|e_menu]] would stop it on your confirmation. | You may desire to stop this periodical stuff manually. Just call it again and [[using_with_tcl_tk|e_menu]] would stop it on your confirmation. | ||
+ | \\ | ||
==== Making menus ' | ==== Making menus ' | ||
Line 1051: | Line 1098: | ||
cd / | cd / | ||
- | wish / | + | wish / |
- | geany ... (run Geany IDE) | + | geany ... |
then ' | then ' | ||
Line 1062: | Line 1109: | ||
So, you can have a lot of menus in " | So, you can have a lot of menus in " | ||
- | wish / | + | wish / |
It would open the main menu of your current project as Geany' | It would open the main menu of your current project as Geany' | ||
Line 1068: | Line 1115: | ||
Also you can set in the calling string of [[using_with_tcl_tk|e_menu]] " | Also you can set in the calling string of [[using_with_tcl_tk|e_menu]] " | ||
- | It would be convenient to have a batch of common menus that are not related to Geany' | + | The environment variable E_MENU_PN has the highest priority in setting the project name. E.g., in Linux you can call [[using_with_tcl_tk|e_menu]] this way: |
+ | export E_MENU_PN=myproject | ||
+ | wish / | ||
+ | |||
+ | It would be convenient to have a batch of common menus that are not related to Geany' | ||
+ | \\ | ||
==== Closing all menus ==== | ==== Closing all menus ==== | ||
Line 1083: | Line 1135: | ||
However, it's worth noticing that this feature is buggy under Linux and generally doesn' | However, it's worth noticing that this feature is buggy under Linux and generally doesn' | ||
+ | \\ | ||
==== Sort of debugging ==== | ==== Sort of debugging ==== | ||
Line 1102: | Line 1155: | ||
"a0=D starting e_menu" | "a0=D starting e_menu" | ||
+ | |||
+ | \\ | ||
===== Issues ===== | ===== Issues ===== | ||
- | [[using_with_tcl_tk|e_menu]] | + | Although being simple and humble, |
- | Regretfully, | + | Regretfully, |
E.g. there is a problem of calling the context action in Windows version of Geany, namely a hotkey doesn' | E.g. there is a problem of calling the context action in Windows version of Geany, namely a hotkey doesn' | ||
Line 1118: | Line 1173: | ||
You should take this into account, being aware of this behaviour of Geany. | You should take this into account, being aware of this behaviour of Geany. | ||
+ | |||
+ | \\ | ||
===== Downloading ===== | ===== Downloading ===== | ||
Line 1123: | Line 1180: | ||
[[using_with_tcl_tk|e_menu]]' | [[using_with_tcl_tk|e_menu]]' | ||
- | {{ :howtos:e_menu:tcl_geany.zip |}} | + | [[https:// |
- | Notice that it's still a raw version of [[using_with_tcl_tk|e_menu]]. | + | or here: |
+ | |||
+ | [[https:// | ||
+ | |||
+ | Home page: | ||
+ | |||
+ | [[https:// | ||
+ | |||
+ | Notice that [[using_with_tcl_tk|e_menu]] | ||
+ | |||
+ | \\ | ||
===== Acknowlegements ===== | ===== Acknowlegements ===== | ||
Line 1135: | Line 1202: | ||
To be so light and at that to be so predictable and powerful as those software behemoths like Eclipse or PyCharm - isn't it a wonder? | To be so light and at that to be so predictable and powerful as those software behemoths like Eclipse or PyCharm - isn't it a wonder? | ||
- | Thanks | + | Also, the applied tool, namely the great and awful Tcl/Tk would never stop to amaze as well. Though the first impression of Tcl is 'What a s...!' Second, third, fourth and ..th impressions are the same till one day this thing begins to tease your brains and make to wonder. |
+ | |||
+ | An unexpected and pleasant discovery had occurred while me coding [[using_with_tcl_tk|e_menu]], | ||
+ | |||
+ | And these wonders tend to become //a movable feast//. | ||
+ | |||
+ | Thankful | ||
Alex Plotnikov | Alex Plotnikov | ||
+ | \\ | ||
===== See also ===== | ===== See also ===== | ||
- | https:// | + | Home page: [[https:// |
+ | |||
+ | More screenshots of [[using_with_tcl_tk|e_menu]]: | ||
+ | * https:// | ||
+ | |||
+ | A sort of proposal: | ||
+ | * https:// | ||
- | https:// | + | A sort of conversation: |
+ | * https:// | ||
- | https:// | + | Using Geany' |
+ | * https:// | ||
- | https:// | + | Using //git// in Geany IDE: |
+ | * https:// | ||
{{tag> | {{tag> |