Reflex — File Browser
Reflexv0.1 / Reflexv0.1 / Reflex / system / scripts / sidebar.mrc
sidebar.mrc — 16.25 KB — Download this file
on *:start: { sidebar_cache }
alias sidebar_init {
var %c = $cid , %w = $active
if ($data(side_pos) == top) || ($data(side_pos) == bottom) { window -ipoB +dx @hide_sidebar 0 0 $window(-3).w $data(side_width) }
else { window -ipoB +dx @hide_sidebar 0 0 $data(side_width) $window(-3).h }
ktools DockWindow $window(@hide_sidebar).hwnd > $data(side_pos) 2
sidebar_draw
scon %c
window -ax $iif(%w == Status Window,"status window",%w)
sz WatchWindow @hide_sidebar
}
alias sidebar_move {
if ($istok(top bottom left right,$1,32)) && ($data(side_pos) != $1) {
data side_pos $1
if ($1 == top) || ($1 == bottom) { window -ipoB +dx @hide_sidebar 0 0 $window(-3).w $data(side_width) }
else { window -ipoB +dx @hide_sidebar 0 0 $data(side_width) $window(-3).h }
ktools MoveDockWindow $window(@hide_sidebar).hwnd > $1 2
}
}
alias sidebar_width {
data side_width $1
if ($data(side_pos) == top) || ($data(side_pos) == bottom) { window -ipoB +dx @hide_sidebar 0 0 $window(-3).w $data(side_width) }
else { window -ipoB +dx @hide_sidebar 0 0 $data(side_width) $window(-3).h }
ktools MoveDockWindow $window(@hide_sidebar).hwnd > $data(side_pos) 2
}
alias sidebar_draw {
var %w = $iif($1,$1,@hide_sidebar) , %i = 1 , %h = 3
if ($window(%w)) {
if ($data(side_pos) == top) || ($data(side_pos) == bottom) {
drawrect -frn %w $col(background) 1 0 0 $window(%w).w $data(side_width)
while (%i <= $sidebar_item(0)) {
if ($sidebar_item(%i).sep) {
drawline -nr %w $col(shadow) 1 %h 3 %h $calc($data(side_width) - 3)
drawline -nr %w $col(highlight) 1 $calc(%h + 1) 3 $calc(%h + 1) $calc($data(side_width) - 3)
inc %h 5
}
else {
if ($temp(side_hover) == %i) && ($data(side_style) == 2) { drawrect -fnr %w $col(hover) 1 %h 2 $iif($data(side_width) > 40,40,22) $calc($data(side_width) - 4) }
elseif ($temp(side_hover) == %i) && ($data(side_style) == 1) {
drawline -nr %w $col(highlight) 1 $calc(%h + $iif($data(side_width) > 40,40,22)) 2 %h 2 %h $calc($data(side_width) - 2)
drawline -nr %w $col(shadow) 1 $calc(%h + $iif($data(side_width) > 40,40,22)) 2 $calc(%h + $iif($data(side_width) > 40,40,22)) $calc($data(side_width) - 2) %h $calc($data(side_width) - 2)
}
if ($data(side_style) == 2) {
drawline -nr %w $col(highlight) 1 $calc(%h + $iif($data(side_width) > 40,40,22)) 2 %h 2 %h $calc($data(side_width) - 2)
drawline -nr %w $col(shadow) 1 $calc(%h + $iif($data(side_width) > 40,40,22)) 2 $calc(%h + $iif($data(side_width) > 40,40,22)) $calc($data(side_width) - 2) %h $calc($data(side_width) - 2)
}
var %icon = $sidebar_item(%i).icon
if (%icon isnum) { drawpic -sconr %w $calc(%h + $iif($data(side_width) > 40,6,3)) $calc(($data(side_width) / 2) - $iif($data(side_width) > 40,16,8)) $iif($data(side_width) > 40,32 32,16 16) %icon $icons }
else { drawpic -scnr %w $calc(%h + $iif($data(side_width) > 40,6,3)) $calc(($data(side_width) / 2) - $iif($data(side_width) > 40,16,8)) $iif($data(side_width) > 40,32 32,16 16) %icon }
if ($sidebar_item(%i).popup) {
drawtext -onr %w $col(text) webdings 12 $calc((%h + $iif($data(side_width) > 40,36,20)) - ($height(5,webdings,12) / 2)) $calc($data(side_width) - 14) 5
}
inc %h $iif($data(side_width) > 40,44,26)
}
inc %i
}
}
else {
drawrect -frn %w $col(background) 1 0 0 $data(side_width) $window(%w).h
while (%i <= $sidebar_item(0)) {
if ($sidebar_item(%i).sep) {
drawline -nr %w $col(shadow) 1 3 %h $calc($data(side_width) - 3) %h
drawline -nr %w $col(highlight) 1 3 $calc(%h + 1) $calc($data(side_width) - 3) $calc(%h + 1)
inc %h 5
}
else {
if ($temp(side_hover) == %i) && ($data(side_style) == 2) { drawrect -fnr %w $col(hover) 1 2 %h $calc($data(side_width) - 4) $iif($data(side_width) > 40,40,22) }
elseif ($temp(side_hover) == %i) && ($data(side_style) == 1) {
drawline -nr %w $col(highlight) 1 2 $calc(%h + $iif($data(side_width) > 40,40,22)) 2 %h $calc($data(side_width) - 2) %h
drawline -nr %w $col(shadow) 1 2 $calc(%h + $iif($data(side_width) > 40,40,22)) $calc($data(side_width) - 2) $calc(%h + $iif($data(side_width) > 40,40,22)) $calc($data(side_width) - 2) %h
}
if ($data(side_style) == 2) {
drawline -nr %w $col(highlight) 1 2 $calc(%h + $iif($data(side_width) > 40,40,22)) 2 %h $calc($data(side_width) - 2) %h
drawline -nr %w $col(shadow) 1 2 $calc(%h + $iif($data(side_width) > 40,40,22)) $calc($data(side_width) - 2) $calc(%h + $iif($data(side_width) > 40,40,22)) $calc($data(side_width) - 2) %h
}
var %icon = $sidebar_item(%i).icon
if (%icon isnum) { drawpic -sconr %w $calc(($data(side_width) / 2) - $iif($data(side_width) > 40,16,8)) $calc(%h + 2) $iif($data(side_width) > 40,32 32,16 16) %icon $icons }
else { drawpic -scnr %w $calc(($data(side_width) / 2) - $iif($data(side_width) > 40,16,8)) $calc(%h + 2) $iif($data(side_width) > 40,32 32,16 16) %icon }
if ($sidebar_item(%i).popup) {
drawtext -onr %w $col(text) webdings 12 $calc($data(side_width) - 14) $calc((%h + $iif($data(side_width) > 40,36,20)) - ($height(5,webdings,12) / 2)) 5
}
inc %h $iif($data(side_width) > 40,44,26)
}
inc %i
}
}
drawline %w
}
}
alias sidebar_cache {
if ($hget(sidebarData)) hfree sidebarData
hmake sidebarData 10
var %i = 1, %t, %x
.fopen sidebarData $sidebarData
while (!$feof) {
%t = $fread(sidebarData)
tokenize 124 %t
if (i isin $1) {
hadd sidebarData $+(%i,.p) 1
hadd sidebarData $+(%i,.v1) $2
hadd sidebarData $+(%i,.c) $3
hadd sidebarData $+(%i,.v2) $4
hadd sidebarData $+(%i,.1.icon) $5
hadd sidebarData $+(%i,.1.text) $6
hadd sidebarData $+(%i,.1.command) $iif(c isin $1,$7)
hadd sidebarData $+(%i,.1.popup) $iif(r isin $1,$iif(c isin $1,$8,$7))
hadd sidebarData $+(%i,.0.icon) $9
hadd sidebarData $+(%i,.0.text) $10
hadd sidebarData $+(%i,.0.command) $iif(c isin $1,$11)
hadd sidebarData $+(%i,.0.popup) $iif(r isin $1,$iif(c isin $1,$12,$11))
}
else {
hadd sidebarData $+(%i,.icon) $2
hadd sidebarData $+(%i,.text) $3
hadd sidebarData $+(%i,.command) $iif(c isin $1,$4)
hadd sidebarData $+(%i,.popup) $iif(r isin $1,$iif(c isin $1,$5,$4))
hadd sidebarData $+(%i,.sep) $iif(%t == -,1)
}
inc %i
}
.fclose sidebarData
hadd sidebarData lines $calc(%i - 1)
}
alias sidebar_item {
if ($1 == 0) { return $hget(sidebarData,lines) }
else {
var %s = . , %v1 , %c , %v2
if ($hget(sidebarData,$+($1,.p))) {
%v1 = $evalnext($hget(sidebarData,$+($1,.v1)))
%c = $hget(sidebarData,$+($1,.c))
%v2 = $evalnext($hget(sidebarData,$+($1,.v2)))
if (%v1 %c %v2) { %s = .1. }
else { %s = .0. }
if ($2 == 1) { %s = .1. }
elseif ($2 == 2) { %s = .0. }
}
return $hget(sidebarData,$+($1,%s,$prop))
}
}
alias sidebar_getItem {
var %h = 3 , %i = 1
while (%i <= $sidebar_item(0)) {
if ($sidebar_item(%i).sep) { inc %h 3 }
if (%h > $1) { return }
if (!$sidebar_item(%i).sep) { inc %h $iif($data(side_width) > 40,42,24) }
if (%h > $1) { return %i }
inc %i | inc %h 2
}
}
menu @hide_sidebar {
sclick: {
if ($istok(top bottom,$data(side_pos),32)) && ($sidebar_getItem($mouse.x)) { $evalnext($sidebar_item($v1).command) }
elseif ($istok(left right,$data(side_pos),32)) && ($sidebar_getItem($mouse.y)) { $evalnext($sidebar_item($v1).command) }
}
rclick: {
if ($istok(top bottom,$data(side_pos),32)) && ($sidebar_getItem($mouse.x)) { $evalnext($sidebar_item($v1).popup) }
elseif ($istok(left right,$data(side_pos),32)) && ($sidebar_getItem($mouse.y)) { $evalnext($sidebar_item($v1).popup) }
else {
popup_create sidebar_popup
popup_setstyle sidebar_popup colors $rgb(text) $rgb(shadow) $rgb(text) $rgb(shadow) $rgb(face) $rgb(face) $col(hover) 15394529 $rgb(frame) $rgb(face) $rgb(shadow)
popup_add sidebar_popup Configure.. $cr sidebar_configure
popup sidebar_popup
}
}
}
alias server_popup {
popup_create server_popup
popup_setstyle server_popup colors $rgb(text) $rgb(shadow) $rgb(text) $rgb(shadow) $rgb(face) $rgb(face) $col(hover) 15394529 $rgb(frame) $rgb(face) $rgb(shadow)
popup_add server_popup $+ $iif($status == connected,Disconnect,Connect) $cr $iif($status == connected,disconnect,server)
popup_add server_popup -
popup_add server_popup New server window $cr server -n
popup_create server_popup_recent
popup_setstyle server_popup_recent colors $rgb(text) $rgb(shadow) $rgb(text) $rgb(shadow) $rgb(face) $rgb(face) $col(hover) 15394529 $rgb(frame) $rgb(face) $rgb(shadow)
var %i = 1
while (%i <= $numtok($data(recent_servers),44)) {
popup_add server_popup_recent %i $+ : $gettok($data(recent_servers),%i,44) $cr server $gettok($data(recent_servers),%i,44)
inc %i
}
if (%i > 1) { popup_add -s server_popup Recent Servers $cr server_popup_recent }
else { popup_add server_popup Recent Servers }
popup server_popup
}
alias sidebar_configure {
if (!$dialog(sidebar)) { dialog -mv sidebar sidebar }
else { dialog -v sidebar sidebar }
}
dialog sidebar {
title "Configure Toolbar..."
size -1 -1 200 123
option dbu
list 1, 2 3 195 104, extsel size
box "", 2, 2 122 195 67
button "Delete", 5, 160 109 37 12, disable
text "Icon", 6, 7 130 45 8
edit "", 7, 54 129 118 10, autohs
button "...", 8, 173 129 19 10
button "Advanced...", 9, 112 174 42 12
button "Edit...", 3, 120 109 37 12, disable
button "New...", 4, 80 109 37 12
box "Advanced Options", 10, 2 190 195 67
text "False Tooltip Text", 11, 7 221 45 9
edit "", 12, 54 140 118 10, autohs
text "Left Click Alias", 13, 7 152 45 8
edit "", 14, 54 151 118 10, autohs
button "Add", 15, 157 174 37 12
text "If Statement", 16, 7 199 32 9
edit "", 17, 54 197 40 11, autohs
edit "", 18, 132 197 40 11, autohs
combo 19, 96 197 34 51, size drop
text "False Icon", 20, 7 210 32 9
edit "", 21, 54 208 118 11, autohs
text "Tooltip Text", 22, 7 141 45 8
edit "", 23, 54 162 118 10, autohs
text "Right Click Alias", 24, 7 163 45 8
edit "", 25, 54 220 118 10, autohs
text "False sclick alias", 26, 7 232 45 9
text "False rclick alias", 27, 7 243 45 9
edit "", 28, 54 231 118 10, autohs
edit "", 29, 54 242 118 10, autohs
button "-", 30, 2 109 12 12
button "Button", 31, 36 53 37 12, hide default ok
button "5", 32, 16 109 12 12, disable
button "6", 33, 30 109 12 12, disable
}
on *:dialog:sidebar:init:0: {
mdx SetMircVersion $version
mdx MarkDialog $dname
mdx SetDialog $dname Icon
mdx SetFont $dname 32,33 18 400 Webdings
mdx SetControlMDX 1 listview report single nosortheader rowselect showsel > $mdx_views
did -i sidebar 1 1 headerdims 40:1 auto:2 auto:3
did -i sidebar 1 1 headertext + 0 Icon $+ $chr(9) $+ + 0 Alias $+ $chr(9) $+ + 0 Tooltip
sidebar_list
var %i = 1, %s = ==,!=,>,>=,<,<=,//,\\,&,isin,isincs,iswm,!isin,!iswm
while (%i <= $numtok(%s,44)) { did -a sidebar 19 $gettok(%s,%i,44) | inc %i }
}
alias sidebar_list {
did -r sidebar 1
did -i sidebar 1 1 clearicons list
var %i = 1 , %x = 0 , %l
while (%i <= $sidebar_item(0)) {
if ($sidebar_item(%i).sep) {
did -a sidebar 1 + 0 0 0 $+ $chr(9) $+ -
}
else {
%l = $sidebar_item(%i,1).icon
if (%l isnum) {
if (%l != $null) {
did -i sidebar 1 1 seticon list 0 %l $+ , $+ $icons
inc %x
}
}
elseif {%l != $null) {
did -i sidebar 1 1 seticon list 0 %l
inc %x
}
did -a sidebar 1 + %x 0 0 $+ $chr(9) $+ / $+ $sidebar_item(%i,1).command $+ $chr(9) $+ $sidebar_item(%i,1).text
}
inc %i
}
did -i sidebar 1 1 headerdims 40:1 auto:2 auto:3
did -b sidebar 32,33,5,3
}
on *:dialog:sidebar:sclick:8: {
did -o sidebar 7 1 $$sfile($icodir)
}
on *:dialog:sidebar:sclick:4: {
if ($dialog(sidebar).ch == $calc(191 * $dbuh)) || ($dialog(sidebar).ch == $calc(258 * $dbuh)) && ($did($dname,15) != Apply) {
dialog -s sidebar -1 -1 $calc(200 * $dbuw) $calc(123 * $dbuh)
}
else { dialog -s sidebar -1 -1 $calc(200 * $dbuw) $calc(191 * $dbuh) | did -o sidebar 15 1 Add }
}
on *:dialog:sidebar:sclick:3: {
if ($dialog(sidebar).ch == $calc(191 * $dbuh)) || ($dialog(sidebar).ch == $calc(258 * $dbuh)) && ($did($dname,15) != Add) {
dialog -s sidebar -1 -1 $calc(200 * $dbuw) $calc(123 * $dbuh)
}
else {
var %n = $calc($did($dname,1,1).sel - 1) , %t = $sidebar_item(%n)
did -r sidebar 7,12,14,23,18,17,21,25,28,29
did -c sidebar 19 0
if ($sidebar_item(%n,1).icon != $null) { did -a sidebar 7 $v1 }
if ($sidebar_item(%n,1).text) { did -a sidebar 12 $v1 }
if ($sidebar_item(%n,1).command) { did -a sidebar 14 $v1 }
if ($sidebar_item(%n,1).popup) { did -a sidebar 23 $v1 }
if ($hget(sidebarData,$+(%n,.p))) {
did -a sidebar 17 $hget(sidebarData,$+(%n,.v1))
did -a sidebar 18 $hget(sidebarData,$+(%n,.v2))
did -c sidebar 19 $findtok(== != > >= < <= // \\ & isin isincs iswm !isin !iswm,$hget(sidebarData,$+(%n,.c)),32)
if ($sidebar_item(%n,2).icon != $null) { did -a sidebar 21 $v1 }
if ($sidebar_item(%n,2).text) { did -a sidebar 25 $v1 }
if ($sidebar_item(%n,2).command) { did -a sidebar 28 $v1 }
if ($sidebar_item(%n,2).popup) { did -a sidebar 29 $v1 }
}
did -o sidebar 15 1 Apply
dialog -s sidebar -1 -1 $calc(200 * $dbuw) $calc(191 * $dbuh)
}
}
on *:dialog:sidebar:sclick:9: {
if ($dialog(sidebar).ch == $calc(258 * $dbuh)) {
dialog -s sidebar -1 -1 $calc(200 * $dbuw) $calc(191 * $dbuh)
}
else { dialog -s sidebar -1 -1 $calc(200 * $dbuw) $calc(258 * $dbuh) }
}
on *:dialog:sidebar:sclick:15: {
var %f
if (($did($dname,17))&&($did($dname,18))&&($did($dname,19).sel)) { %f = i }
if ($did($dname,14)) { %f = %f $+ c }
if ($did($dname,23)) { %f = %f $+ r }
var %s = %f
if (i isin %f) { %s = $+(%s,|,$did($dname,17),|,$did($dname,19).seltext,|,$did($dname,18)) }
if ($did($dname,7) != $null) {
if ($isfile($did($dname,7))) { %s = $+(%s,|,$shortfn($did($dname,7))) }
else { %s = $+(%s,|,$did($dname,7)) }
}
else { %s = $+(%s,|,$icodir $+ blank.ico) }
if ($did($dname,12)) { %s = $+(%s,|,$v1) }
else { %s = $+(%s,|, ) }
if (c isin %f) { %s = $+(%s,|,$did($dname,14)) }
if (r isin %f) { %s = $+(%s,|,$did($dname,23)) }
if (i isin %f) {
if ($did($dname,21) != $null) {
if ($isfile($did($dname,21))) { %s = $+(%s,|,$shortfn($did($dname,21))) }
else { %s = $+(%s,|,$did($dname,21)) }
}
else { %s = $+(%s,|,$icodir $+ blank.ico) }
if ($did($dname,25)) { %s = $+(%s,|,$v1) }
else { %s = $+(%s,|,No Tooltip) }
if ($did($dname,28)) { %s = $+(%s,|,$v1) }
if ($did($dname,29)) { %s = $+(%s,|,$v1) }
}
if ($did($dname,15) == Add) {
write $sidebarData %s
sidebar_list | sidebar_draw
}
elseif ($did($dname,15) == Apply) {
write -l $+ $calc($did($dname,1,1).sel - 1) $sidebarData %s
sidebar_list | sidebar_draw
}
sidebar_cache
}
on *:dialog:sidebar:sclick:30: {
write $sidebarData -
sidebar_list
}
on *:dialog:sidebar:sclick:1,5,32,33: {
var %n = $calc($did($dname,1,1).sel - 1)
if (%n > 0) {
if ($did == 1) {
dialog -s sidebar -1 -1 $calc(200 * $dbuw) $calc(123 * $dbuh)
var %e = 32,33
did -b sidebar %e
if (%n == $lines($sidebardata)) { %e = 32,5,3 }
if (%n == 1) { %e = $remtok(%e,32,1,44) }
did -e sidebar 5,3, $+ %e
}
if ($did == 5) { write -dl $+ %n $sidebarData | sidebar_list | sidebar_draw }
if ($did == 32) {
write -il $+ $calc(%n - 1) $sidebardata $read($sidebardata,n,%n)
write -dl $+ $calc(%n + 1) $sidebarData
sidebar_list | sidebar_draw
}
if ($did == 33) {
write -il $+ $calc(%n + 2) $sidebardata $read($sidebardata,n,%n)
write -dl $+ %n $sidebarData
sidebar_list | sidebar_draw
}
}
}