filemorph

Check-in [8c55ae041a]
Login

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview
Comment:More tweaks
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA1:8c55ae041a66b3f217e31cfe7951d1557336b145
User & Date: kevin 2019-11-29 02:28:28
Context
2019-12-02
00:19
Add new image Leaf check-in: 565b0fa7c0 user: kevin tags: trunk
2019-11-29
02:28
More tweaks check-in: 8c55ae041a user: kevin tags: trunk
2018-08-21
12:41
Update version strings/Mac check-in: 51384e28d4 user: kevin tags: trunk
Changes
Hide Diffs Unified Diffs Ignore Whitespace Patch

Changes to FileMorph.icns.

cannot compute difference between binary files

Changes to filemorph.ico.

cannot compute difference between binary files

Changes to filemorph.pl.

44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
...
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
...
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
...
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
...
533
534
535
536
537
538
539

540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641

















642
643
644
645
646
647
648














649
650
651
652
653
654
655
656
657
....
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122

1123
1124
1125
1126

1127
1128
1129
1130
1131
1132
1133
use Config::IniFiles;
use File::Temp qw(tempfile);

Tkx::set( '::argv0', $ARGV[0] || "" );
Tkx::catch('console hide');

Tkx::package_require('tkdnd');
Tkx::package_require('Img');
Tkx::package_require('regproc');
Tkx::package_require('machelp');
Tkx::package_require('softwareupdate');
Tkx::package_require('aquahig');
Tkx::package_require('tablelist_tile');
Tkx::package_require('BWidget');
Tkx::package_require('widget::dateentry');
Tkx::package_require('xplat');

if ($IS_AQUA) {
    Tkx::package_require('fullscreen');
    Tkx::package_require('aem');
    Tkx::package_require('cocoaprint');
    Tkx::package_require('windowlist');
}

if ($IS_WINDOWS) {
    Tkx::package_require('dde');
    Tkx::dde_servername('FileMorph');
}

................................................................................
    );

    $applemenu->add_command(
        -label   => "About FileMorph",
        -command => \&Tkx::tkAboutDialog,
    );

    $applemenu->add_command(
        -label   => "License",
        -command => \&Tkx::regproc__getReg
    );
    $applemenu->add_command(
        -label   => "Check for Updates",
        -command => \&checkUpdate,
    );

    $applemenu->add_separator();
}
................................................................................

if ($IS_WINDOWS) {
    $helpmenu->add_command(
        -label   => "About FileMorph",
        -command => \&Tkx::tkAboutDialog,
    );

    $helpmenu->add_command(
        -label   => "License",
        -command => \&Tkx::regproc__getReg
    );
    $helpmenu->add_command(
        -label   => "Check for Updates",
        -command => \&checkUpdate,
    );
}

$mw->configure( -menu => $menubar );
................................................................................

$textframe->add($listframe);
$textframe->add($noteframe);

$mw->g_wm_geometry("900x800");
$mw->g_wm_deiconify;

if ($IS_AQUA) {
    Tkx::fullscreen__fullscreen($mw);
}

Tkx::after(50);

Tkx::regproc__readLic( $appname, $appversion );

#This is necessary to get the listbox to draw; sometimes it does not render until the mouse hovers over it
Tkx::focus( -force => $listbox );

if ($IS_AQUA) {
    &createAppleScriptCommands;
}

................................................................................

Tkx::MainLoop();
exit;

###----subroutines

sub shutdown {

    &Tkx::exit;
}

sub makeImage {

    my $data = "iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAABGdBTUEAALGPC/xh
BQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAA
CXBIWXMAABYlAAAWJQFJUiTwAAABWWlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAA
PHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iWE1Q
IENvcmUgNS40LjAiPgogICA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cu
dzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPgogICAgICA8cmRmOkRl
c2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgICAgICAgICB4bWxuczp0aWZmPSJo
dHRwOi8vbnMuYWRvYmUuY29tL3RpZmYvMS4wLyI+CiAgICAgICAgIDx0aWZmOk9y
aWVudGF0aW9uPjE8L3RpZmY6T3JpZW50YXRpb24+CiAgICAgIDwvcmRmOkRlc2Ny
aXB0aW9uPgogICA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgpMwidZAAAO50lEQVR4
Ad1ba3AV5Rl+d8/uOUlOEi4JINAE0FZrW6YKqCAgyOVPp+NMZ+qMM62dztSpVPQP
ba1M7UDVMooz/ugvx5mOlTJt/ddWZbRQpR3EctMfVkBBEswNCCG3k3N2z976PN/u
npxzkpAASSB+yWa//W77Pc97+d79dqNJWXrppe0zbcfYhuKHcdSWVV/BpXZeJPid
nXNf2b59u3sFHSe1qVZ8N0xUN1OJrbqu/TqVSlUgobqkSXHzYfNs7QeBZLMD4jhO
J7LPV6bSL2/ZsiU3bIfrXFiCbseOHbM8cf5enU4vX7N6rdbQ0CAAcEVJw4i+H8jp
z0/J0WNH/ExmoNv3vVcMPfXi1q1bu69osElobBTfI5/PpxKmJKuq0kFjY6NWWzsN
YPziJmPKa2Bh6ZJlUl1dox/84P0Z3d2XHnVca8azzz79e88zesc0yPg2srZt29aN
eQ0RZwkBjuEEWmDYuq4HlLzn+WLbFrTgykjQ9YQkk0m57davS2Vlpf7+wQPTz53r
eNBxtaWYgz2+2MYwmq/1P/Pcb9568oUnd+381c7+4h4lBJiuE4iRsPUCU4ECr9go
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
";
    $icon = Tkx::image_create_photo( -data => $data );

    my $folderdata = "
                R0lGODlhGAAYAPABAAAAAP///yH5BAEKAAEAIf4aQ3JlYXRlZCB3aXRoIEdJTVAg
b24gYSBNYWMALAAAAAAYABgAAAI1hI8Wy70JgZshJurOtFzmHm0ghJXVZVJkKo7u
C8cr28z0g944ojP2/aMFWcNU0SRLxk5KSQEAOw==

















";
    $folderimage = Tkx::image_create_photo( -data => $folderdata );

    my $filedata = "
                R0lGODlhEgAYAPABAAAAAP///yH5BAEKAAEAIf4aQ3JlYXRlZCB3aXRoIEdJTVAg
b24gYSBNYWMALAAAAAASABgAAAI1hI8Qy5GvmoNJHjkv0+1tg0EL93nkSJ1ZioVV
270wisyl6tb2Cu6eL5v9bENhEJZKKpdMQwEAOw==














                ";
    $fileimage = Tkx::image_create_photo( -data => $filedata );

}

#check filelist for error handling
sub checkfilelist {

    if ( scalar(@filelist) == 0 ) {
................................................................................
}

#-----AppleScript and DDe handlers------$

if ($IS_AQUA) {

    sub createAppleScriptCommands {
        Tkx::aem__installeventhandler( "CoKv", "fMdr", \&scriptSetDir );
        Tkx::aem__installeventhandler( "CoKv", "fMfl", \&scriptSetFile );
        Tkx::aem__installeventhandler( "CoKv", "oExt", \&scriptOldExt );
        Tkx::aem__installeventhandler( "CoKv", "nExt", \&scriptNewExt );
        Tkx::aem__installeventhandler( "CoKv", "rExt", \&scriptChangeExt );
        Tkx::aem__installeventhandler( "CoKv", "oTxt", \&scriptOldText );
        Tkx::aem__installeventhandler( "CoKv", "nTxt", \&scriptNewText );
        Tkx::aem__installeventhandler( "CoKv", "cTxt", \&scriptChangeText );
        Tkx::aem__installeventhandler( "CoKv", "beTx", \&scriptAddedText );

        Tkx::aem__installeventhandler( "CoKv", "afTx", \&scriptPrefixOrSuffix );
        Tkx::aem__installeventhandler( "CoKv", "adTx", \&scriptAddText );
        Tkx::aem__installeventhandler( "CoKv", "tmDa", \&scriptSetTime );
        Tkx::aem__installeventhandler( "CoKv", "cTme", \&scriptFileTime );

    }
}

if ($IS_WINDOWS) {

    sub createDDECommands {
        Tkx::interp_alias( "", "set_directory_path", "", [ \&scriptSetDir ] );







<



|
<
|
<
|


<
<

|







 







<
<
<
<







 







<
<
<
<







 







<
<
<



<
<







 







>





<
|
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<




<
<
<
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>

|

|
<
<
<
>
>
>
>
>
>
>
>
>
>
>
>
>
>

|







 







|
|
|
|
|
|
|
|
|
>
|
<
|
|
>







44
45
46
47
48
49
50

51
52
53
54

55

56
57
58


59
60
61
62
63
64
65
66
67
...
128
129
130
131
132
133
134




135
136
137
138
139
140
141
...
194
195
196
197
198
199
200




201
202
203
204
205
206
207
...
495
496
497
498
499
500
501



502
503
504


505
506
507
508
509
510
511
...
515
516
517
518
519
520
521
522
523
524
525
526
527

528
























































































529
530
531
532



533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553



554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
....
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043

1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
use Config::IniFiles;
use File::Temp qw(tempfile);

Tkx::set( '::argv0', $ARGV[0] || "" );
Tkx::catch('console hide');

Tkx::package_require('tkdnd');

Tkx::package_require('regproc');
Tkx::package_require('machelp');
Tkx::package_require('softwareupdate');
Tkx::package_require('widget::dateentry');

Tkx::package_require('xplat');

Tkx::package_require('tooltip');

if ($IS_AQUA) {


    Tkx::package_require('cocoaprint');
	Tkx::package_require('darkaqua');
}

if ($IS_WINDOWS) {
    Tkx::package_require('dde');
    Tkx::dde_servername('FileMorph');
}

................................................................................
    );

    $applemenu->add_command(
        -label   => "About FileMorph",
        -command => \&Tkx::tkAboutDialog,
    );





    $applemenu->add_command(
        -label   => "Check for Updates",
        -command => \&checkUpdate,
    );

    $applemenu->add_separator();
}
................................................................................

if ($IS_WINDOWS) {
    $helpmenu->add_command(
        -label   => "About FileMorph",
        -command => \&Tkx::tkAboutDialog,
    );





    $helpmenu->add_command(
        -label   => "Check for Updates",
        -command => \&checkUpdate,
    );
}

$mw->configure( -menu => $menubar );
................................................................................

$textframe->add($listframe);
$textframe->add($noteframe);

$mw->g_wm_geometry("900x800");
$mw->g_wm_deiconify;





Tkx::after(50);



#This is necessary to get the listbox to draw; sometimes it does not render until the mouse hovers over it
Tkx::focus( -force => $listbox );

if ($IS_AQUA) {
    &createAppleScriptCommands;
}

................................................................................

Tkx::MainLoop();
exit;

###----subroutines

sub shutdown {
&Tkx::regproc__makePitch;
    &Tkx::exit;
}

sub makeImage {


    my $data = "R0lGODlhQABAAOf/AAACABQfLicoJgAykQY0ZgswlQAznVEpMDIzMQA8oAA8pQE9mlooUhY8hz4xhjY7Pzo8OTU9SABFrg9EqABJrk02dypDbhNHpT9CQQ1Osx1MkZkyAABUqQBTt0dJRjlGo5A0OTlNcjNMoQBZwxJZvUpRWFBLjp4+E0BUaABgx54+HVFTUKNBAgBkzUhXZypbp0hWeKBDKBFlyVddYkpgdRppx55MOl1fXUpjgldhflRhohVx1VtkcUZnt2VnZSty0VxqgZhaY59bU1BvkmJsihl84Ftvi21riTZ40mlwiZ9jYlF1tlN2wUR6zW90eG50hnN1cmJ4jimE6Fl8n8FrD2t5rHJ7pnB+liaO8kOI3Gp/vLpyMnx/fFWE0XuBiT+M5nqBk16G11GM1FuMuU+QzlOO3TmY/n2Lo4iKhyud/zuZ+GiSt4eLmmWU2F+XzYmPl2yVu6CKgYaOunyTqXyRxj+g/8qGNZeNpV+Z5WKa0IqToXiWx0Si/5KUkWydy2Se3kqk95GWnFCk/+yJBoyarEep/1en9OyPDlSr/9iTN5CfuPCRAJmepmyn5JyfnOqTDeiTG5Wgsnuk5JKgyW+o7Feu/4ij32Wt9WKx/9ucQKGnr6WopGa0/3iw7p6qt5eq03mw/4Ow4HO095quwuyhMZWvzKisr3C3/+ClTqivt4W2756x46iwy/+lFXq7/q+yr+etTo66/6e3zP+rIK63xbO3uo6/8obB/4zA+be5tqa83/+xMLm+wP22Mry/u5HH/5/F9rDD2LPC4rrCzP+5PrXC6afH7pnK/sDEx63J+pzO//+/SsbJxcXKzaTR///EVcbN2MvNyrTR9a3T+//HX7nS8MLR6LHZ/8fW8cvX673a/s7Y59XY1MTb88Ta/7je/8Hc+tPZ39Hb6urZtOLcw7/i/s3f/8fi/9bf7uHf0N/h3s3k/drk8tDo/9zm9d7m7uTn49fr/uLp8t7q/9ru/+fu99/x/ufx/+rx+u30/e/09vH4//X6/Pn9//3//P///yH5BAEKAP8ALAAAAABAAEAAAAj+AP8JHEiwoMGDCBMqXMiwocOHECP+Q0CxokWJGB1S9LHJV7Ro6rgx87UJDQSKGVMWpOgIZDRktTTJ1MTrIzNHKxCoVImACzduyALlCHElklE9RCyAMcXsJgadOyMiyKUOGZsQnsLp49evKz9972hdgaEpmi8fUKMyRIAhGjdTWPX180e3bt1++qAReYKMGRQEw7IJzoYNWza1BBG4Rapurt3HdutFgsHL74xu4Na1ixcP3GHECHxxY3NFLuTTdPuxkxWi8o1AXb22wwa6jzpNSfShRl0PHTpxsmAgywWhmVd+9Loh9gCPFwzdux/ze+f7tzhCYKL1ubGVH797yqP+InjF7ckwx9Hp6mPHrro4cdlwMPWAzDu/fJ7Fw6uVBH36euy159t728gChHZOeLcPfp+lhIBtYECTXmryvBOge+JsE18tviCgzj4gntNgRggw04wF0EXXjzwVXjhghtkookc0N/AC4j7rjIgRAtzUAsaE/LDYInsYahjMgWgEcmM7OkqEADyMpJIeP/UIaSGRL2qYDQHROOLEjfHQllEKGvigDhsS7qZPPVWyeKWA1mlJ2SYPMLHgOtI41EILKfSZAhJdLMHFmc2ghhebbQ4JJ4GCGcHLKwhQYI897UzTZEEt/FAGHqoAI0078+QzzKBsFHqaPvggaqWLcTbKyyb+CEiQzT3xWKpQC22sk09X+dB6jjaleKCOHsNAhheqqrrJKqPZWIAMnRlYM6kzlw70AzjzaOPMMdx2G4qHmnjy2LHIsrkqlq1aY4F2LjAhzLTV/tNCGecc88u9996ibyeK8UKEXeSWm+ibRWYjyxPRcGFEF5/YQ48zYh407zH6umLxKRhjIooLuUQDAzx0eafPyAKfuyiMZzDCjAdwtEEHPfRcY41CTdxyCia3ADONOfPcs+AbUKgTSCrHkVyysugy6iykoUiyBMzaVHOrNvn4c9+knHEmi2LIPNePyCSnai7SJ2+jCBsJ02CLKhLQE885eSaUgjT+5JP13Uw60Qf+N3ow8vVXYSerKIbWtJYLAmscg4sE3cSzjq0IpQBMP3dX7k4qJTKTAzRgjyz2wMtuYwQj0UBBQyjcSlBNPO1QK3cn/Uw6aT693nOPPdB44QM3zqkDuOeCEzzgGdk58gActnDbgy6cHRNvCn8sSDvttt9ujzu0zIBGNLXAoFXgYw/+2xlJMJMLBlOEgi8Tn3DmeuRi3DN97dY7vI0nGLTUPS3gg04kNEbwwkhWYAQ/4AJfYqAD66Yxs4Q0YR7Sq57sYBaPYOCvDy8BAxGggY/PnWsbhAhBWXLhgQj4QRX4usUftMC6a1RDDgaIYQwJIoN1LEiCk6IgZ4IxihJAwSP+/IGBJ6Dxjja9Yxu0OIMF9ICMLkFAAADAAS5wEQp9UeIC7WhH1CZBh0noQgsGIEgKtLEPHDoMb+vgIQ8g0AdmRIMXjHhCCAhgAQIQIAds0EQzopELHzxgCmMIAACOYIMtBEEVomBcO8AhjXCkgxzv0EEBxAiM70zQbVnLYjvSKAtClAADaHjFRz6CjD3aZBNoocEY/OCHMRyABbCgBiqC0AnVteMc0+DGOMbRjTCKEXaXxJsm13GOYMhiFHPgAQI8AAU0OGITm+gDGtASgSGsMg+dUMUeYkCKZTxDlkH4gC426YxwjIMcn5gkQUaAh33kUJhZXAcxz3GOauiiFPj+nEMUaICCfqIAB9Z0gxvy0AiLuUIOVNhFL4jxTVSA4BObVMY2xqEOLQygICMoQz50yBlNbpKeIAXHN4wRClYK9KQoJahBLSaJE0BiFrsgxjJkqYRurANi4xCHLwvyQHvAU54gPcc1lHGLlXaiE41oxB/+kFRRiMIVGIvqKShhBZfCVKbPQEVNGUgOXaizIDU4B61YN8x5nsMZRV2pWqEq1bZG9RJkqOojrupNrRqjGuGgw0UNMgJt3MOjH6UnWtfq1sK2FROIhWsVTjDXmNY1CMLohggQMgJg5KOs9NTGL9hq2MIi9rOg/axiVdBYrKJCCKzYKUYpsY94gvQanO3+bGhnS1vEGoIMVYhBab2ZCRA4gLLtDKxQPVvb4n4WEchNLiIMIYbcNnahz8jEBiibhXvMsxzauJlxjavc7noXEGLQgQoO0QqFylS6BxkBEuZBzHKU4xbbBa1359vdQtjXvl94wR3GOwu6otcgYb1lOZxRW/oaGBH3TXCCBSEIGQhjDyY4AXn9O12MTiMe7r3Zgemr4A4zuBAMDnERLLEOLHCgAhJuBV0TUeGBjAAX9viGMzaM3A4v+MMhzjEfdsyHLyDhHoIwgwwaEIcYTNixLF4nJe7xjVvU18b3DTGIc8xgHluZx2poATpiYQYz7KADhDjCCRahYsfaYZ1f2Mf+NzAB5SlTWcdXvnId5jxnNexgFd7ospc78IkGMIAFZL5qItb542lEWRBuhnOcrUznRtM5DWkoQhjuoQY9F4EEPVAnoFUMCRYQpAM/mMcx3rxoOTv60ZBOdaqx0IJ5gELPZpBCChTwVRYM4hAtHogMvJGMUu/41I1WtbAhDWsz1KAYycCCFIqwgx3sSQF7FcgGcj2QDuABFzwGNqqHnepie7sIe9pTCkjQgQxMIAEJcEgHSKCGU3O7296ONxawwOwalPvc6B5AtCHSARm8Ow3xlveydyADEkjg4OhOwAIQ848M7CDgAme2DDpw8Ange+EMP4jDI07wDFTc4gvAeMYgG+JwKTRbBhnIAAVWPoELjHwnKV+5y19O85rb/OYQCQgAOw==
























































































";
    $icon = Tkx::image_create_photo( -data => $data );

    my $folderdata = "



                #define xbm_folder_sans_32_width 32
#define xbm_folder_sans_32_height 32
static char xbm_folder_sans_32_bits[] = {
  0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
  0x00, 0x00, 0x00, 0x00, 0xFF, 0x03, 0x00, 0x00, 0xFF, 0x03, 0x00, 0x00, 
  0x03, 0xFF, 0xFF, 0x3F, 0x03, 0xFF, 0xFF, 0x3F, 0x03, 0xFF, 0xFF, 0xFF, 
  0x03, 0xFF, 0xFF, 0xFF, 0x03, 0x00, 0x00, 0xC0, 0x03, 0x00, 0x00, 0xC0, 
  0x03, 0x00, 0x00, 0xC0, 0x03, 0x00, 0x00, 0xC0, 0x03, 0x00, 0x00, 0xC0, 
  0x03, 0x00, 0x00, 0xC0, 0x03, 0x00, 0x00, 0xC0, 0x03, 0x00, 0x00, 0xC0, 
  0x03, 0x00, 0x00, 0xC0, 0x03, 0x00, 0x00, 0xC0, 0x03, 0x00, 0x00, 0xC0, 
  0x03, 0x00, 0x00, 0xC0, 0x03, 0x00, 0x00, 0xC0, 0x03, 0x00, 0x00, 0xC0, 
  0x03, 0x00, 0x00, 0xC0, 0x03, 0x00, 0x00, 0xC0, 0x03, 0x00, 0x00, 0xC0, 
  0x03, 0x00, 0x00, 0xC0, 0x03, 0x00, 0x00, 0xC0, 0x03, 0x00, 0x00, 0xC0, 
  0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, };


}
";
    $folderimage = Tkx::image_create_bitmap( -data => $folderdata );

    my $filedata = "#define xbm_document_sans_32_width 32



#define xbm_document_sans_32_height 32
static char xbm_document_sans_32_bits[] = {
  0xFF, 0xFF, 0x07, 0x00, 0xFF, 0xFF, 0x0F, 0x00, 0x03, 0x00, 0x1F, 0x00, 
  0x03, 0x00, 0x3B, 0x00, 0x03, 0x00, 0x73, 0x00, 0x03, 0x00, 0xE3, 0x00, 
  0x03, 0x00, 0xFF, 0x00, 0x03, 0x00, 0xFF, 0x00, 0x03, 0x00, 0xC0, 0x00, 
  0x03, 0x00, 0xC0, 0x00, 0x03, 0x00, 0xC0, 0x00, 0x03, 0x00, 0xC0, 0x00, 
  0x03, 0x00, 0xC0, 0x00, 0x03, 0x00, 0xC0, 0x00, 0x03, 0x00, 0xC0, 0x00, 
  0x03, 0x00, 0xC0, 0x00, 0x03, 0x00, 0xC0, 0x00, 0x03, 0x00, 0xC0, 0x00, 
  0x03, 0x00, 0xC0, 0x00, 0x03, 0x00, 0xC0, 0x00, 0x03, 0x00, 0xC0, 0x00, 
  0x03, 0x00, 0xC0, 0x00, 0x03, 0x00, 0xC0, 0x00, 0x03, 0x00, 0xC0, 0x00, 
  0x03, 0x00, 0xC0, 0x00, 0x03, 0x00, 0xC0, 0x00, 0x03, 0x00, 0xC0, 0x00, 
  0x03, 0x00, 0xC0, 0x00, 0x03, 0x00, 0xC0, 0x00, 0x03, 0x00, 0xC0, 0x00, 
  0xFF, 0xFF, 0xFF, 0x00, 0xFF, 0xFF, 0xFF, 0x00, };
                
                ";
    $fileimage = Tkx::image_create_bitmap( -data => $filedata );

}

#check filelist for error handling
sub checkfilelist {

    if ( scalar(@filelist) == 0 ) {
................................................................................
}

#-----AppleScript and DDe handlers------$

if ($IS_AQUA) {

    sub createAppleScriptCommands {
       Tkx::interp_alias( "", "set_directory_path", "", [ \&scriptSetDir ] );
        Tkx::interp_alias( "", "set_file_path",      "", [ \&scriptSetFile ] );
        Tkx::interp_alias( "", "set_old_extension",  "", [ \&scriptOldExt ] );
        Tkx::interp_alias( "", "set_new_extension",  "", [ \&scriptNewExt ] );
        Tkx::interp_alias( "", "change_extension", "", [ \&scriptChangeExt ] );
        Tkx::interp_alias( "", "set_old_text",     "", [ \&scriptOldText ] );
        Tkx::interp_alias( "", "set_new_text",     "", [ \&scriptNewText ] );
        Tkx::interp_alias( "", "change_text",      "", [ \&scriptChangeText ] );
        Tkx::interp_alias( "", "set_added_text",   "", [ \&scriptAddedText ] );
        Tkx::interp_alias( "", "set_prefix_or_suffix", "",
            [ \&scriptPrefixOrSuffix ] );

        Tkx::interp_alias( "", "add_text",         "", [ \&scriptAddText ] );
        Tkx::interp_alias( "", "set_time",         "", [ \&scriptSetTime ] );
        Tkx::interp_alias( "", "change_file_time", "", [ \&scriptFileTime ] );
    }
}

if ($IS_WINDOWS) {

    sub createDDECommands {
        Tkx::interp_alias( "", "set_directory_path", "", [ \&scriptSetDir ] );

Changes to filemorph.png.

cannot compute difference between binary files

Added scriptlibs/darkaqua/darkaqua.tcl.





















































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
#MIT license



package provide darkaqua 1.0

namespace eval darkaqua {
    
    proc changeImagesDark {} {
	
	foreach item [image names]  {
	    if {[image type $item] eq "bitmap"} {
		$item configure -foreground white
	    }
	}
    }
    
    proc changeImagesLight {} {
	
	foreach item [image names]  {
	    if {[image type $item] eq "bitmap"} {
		$item configure -foreground black
	    }
	}
    }
    
    proc checkDarkMode {} {
	set mode [catch {exec defaults read -g AppleInterfaceStyle} msg]
	if {$msg eq "Dark"} {
	    event generate . <<DarkAqua>>
	} else {
	    event generate . <<LightAqua>>
	}
    }
    
    
    bind all <<LightAqua>> {changeImagesLight}
    bind all <<DarkAqua>> {changeImagesDark}
    
    namespace export *
    
}

Added scriptlibs/darkaqua/pkgIndex.tcl.























>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
# Tcl package index file, version 1.1
# This file is generated by the "pkg_mkIndex" command
# and sourced either when an application starts up or
# by a "package unknown" script.  It invokes the
# "package ifneeded" command to set up package-related
# information so that packages will be loaded automatically
# in response to "package require" commands.  When this
# script is sourced, the variable $dir must contain the
# full path name of this file's directory.
 
package ifneeded darkaqua 1.0 [list source [file join $dir darkaqua.tcl]]