ACIL FM
Dark
Refresh
Current DIR:
/usr/share/graphviz/lefty
/
usr
share
graphviz
lefty
Upload
Zip Selected
Delete Selected
Pilih semua
Nama
Ukuran
Permission
Aksi
box.lefty
3.53 MB
chmod
View
DL
Edit
Rename
Delete
def.lefty
459 B
chmod
View
DL
Edit
Rename
Delete
dotty.lefty
22.5 MB
chmod
View
DL
Edit
Rename
Delete
dotty_draw.lefty
19.72 MB
chmod
View
DL
Edit
Rename
Delete
dotty_edit.lefty
17.62 MB
chmod
View
DL
Edit
Rename
Delete
dotty_layout.lefty
14.23 MB
chmod
View
DL
Edit
Rename
Delete
dotty_ui.lefty
14.42 MB
chmod
View
DL
Edit
Rename
Delete
fractal.lefty
2.65 MB
chmod
View
DL
Edit
Rename
Delete
fractal2.lefty
5.62 MB
chmod
View
DL
Edit
Rename
Delete
lefty.psp
2.37 MB
chmod
View
DL
Edit
Rename
Delete
slides.lefty
3.12 MB
chmod
View
DL
Edit
Rename
Delete
tree.lefty
4.9 MB
chmod
View
DL
Edit
Rename
Delete
Edit file: /usr/share/graphviz/lefty/dotty_ui.lefty
# # dotty_ui: user interface functions and data structures # dotty.protogt.doaction = function (data, s) { local vt, gt; vt = dotty.views[data.widget]; gt = dotty.graphs[vt.gtid]; data.menuitem = s; if (data.obj.nid >= 0) { if (gt.actions.node[s]) { gt.actions.node[s] (gt, vt, data.obj, data); return; } } else if (data.obj.eid >= 0) { if (gt.actions.edge[s]) { gt.actions.edge[s] (gt, vt, data.obj, data); return; } } if (gt.actions.general[s]) gt.actions.general[s] (gt, vt, data); }; dotty.protogt.actions.general = [ "undo" = function (gt, vt, data) { gt.undo (gt, 1); }; "paste" = function (gt, vt, data) { gt.paste (gt, data.pos, 1); }; "do layout" = function (gt, vt, data) { gt.layoutgraph (gt); }; "cancel layout" = function (gt, vt, data) { gt.cancellayout (gt); }; "redraw" = function (gt, vt, data) { gt.redrawgraph (gt, [vt.vtid = vt;]); }; "new graph" = function (gt, vt, data) { gt.erasegraph (gt, null, null); }; "load graph" = function (gt, vt, data) { gt.loadgraph (gt, null, 'file', dotty.protogt.graph, 1); }; "reload graph" = function (gt, vt, data) { gt.loadgraph (gt, gt.name, gt.type, gt.graph, 1); }; "save graph" = function (gt, vt, data) { gt.savegraph (gt, gt.name, gt.type); }; "save graph as" = function (gt, vt, data) { gt.savegraph (gt, null, 'file'); }; "open view" = function (gt, vt, data) { gt = dotty.protogt.creategraph (null); gt.createview (gt, null); }; "copy view" = function (gt, vt, data) { gt = gt.copygraph (gt); gt.createview (gt, vt); }; "birdseye view" = function (gt, vt, data) { gt.createview (gt, dotty.protovt.birdseye); }; "clone view" = function (gt, vt, data) { gt.createview (gt, vt); }; "close view" = function (gt, vt, data) { gt.destroyview (gt, vt); if (tablesize (gt.views) == 0) gt.destroygraph (gt); }; "set graph attr" = function (gt, vt, data) { gt.setattr (gt, ['attr' = gt.graph.graphattr;]); }; "set node attr" = function (gt, vt, data) { gt.setattr (gt, ['attr' = gt.graph.nodeattr;]); }; "set edge attr" = function (gt, vt, data) { gt.setattr (gt, ['attr' = gt.graph.edgeattr;]); }; "zoom in" = function (gt, vt, data) { gt.zoom (gt, vt, 0.5, data.pos); }; "zoom out" = function (gt, vt, data) { gt.zoom (gt, vt, 2, data.pos); }; "zoom in slowly" = function (gt, vt, data) { gt.zoom (gt, vt, 0.9, data.pos); }; "zoom out slowly" = function (gt, vt, data) { gt.zoom (gt, vt, 1.1, data.pos); }; "scroll horizontally" = function (gt, vt, data) { vt.scrollmode = 'h'; }; "scroll vertically" = function (gt, vt, data) { vt.scrollmode = 'v'; }; "find node" = function (gt, vt, data) { gt.findnode (gt, vt); }; "print graph" = function (gt, vt, data) { gt.printorsave (gt, vt, null, null, null, null); }; "text view" = function (gt, vt, data) { if (dotty.txtview == 'on') dotty.txtview = 'off'; else dotty.txtview = 'on'; txtview (dotty.txtview); }; "quit" = function (gt, vt, data) { exit (); }; ]; dotty.protogt.actions.node = [ "cut" = function (gt, vt, obj, data) { gt.cut (gt, obj, 'one', 'support', 'cut'); dotty.clipgt.layoutgraph (dotty.clipgt); }; "Cut" = function (gt, vt, obj, data) { gt.cut (gt, obj, 'reachable', 'support', 'cut'); dotty.clipgt.layoutgraph (dotty.clipgt); }; "copy" = function (gt, vt, obj, data) { gt.cut (gt, obj, 'one', 'support', 'copy'); dotty.clipgt.layoutgraph (dotty.clipgt); }; "Copy" = function (gt, vt, obj, data) { gt.cut (gt, obj, 'reachable', 'support', 'copy'); dotty.clipgt.layoutgraph (dotty.clipgt); }; "group" = function (gt, vt, obj, data) { local kv; if ((kv = gt.getattr (gt, obj))) gt.groupnodesbyattr (gt, kv.key, kv.val, [ 'label' = kv.val; kv.key = kv.val; ], 1, 1); }; "Group" = function (gt, vt, obj, data) { local kv; if ((kv = gt.getattr (gt, obj))) gt.groupnodesbyattr (gt, kv.key, kv.val, [ 'label' = kv.val; kv.key = kv.val; ], 0, 1); }; "delete" = function (gt, vt, obj, data) { if (obj.eid >= 0) gt.removeedge (gt, obj); else gt.removenode (gt, obj); }; "Delete" = function (gt, vt, obj, data) { gt.removesubtree (gt, obj); }; "remove" = function (gt, vt, obj, data) { if (obj.nid >= 0) if ((kv = gt.getattr (gt, obj))) gt.removenodesbyattr (gt, kv.key, kv.val); }; "Remove" = function (gt, vt, obj, data) { if (obj.nid >= 0) if ((kv = gt.getattr (gt, obj))) gt.removesubtreesbyattr (gt, kv.key, kv.val); }; "set attr" = function (gt, vt, obj, data) { gt.setattr (gt, obj); }; "print attr" = function (gt, vt, obj, data) { if (obj.nid >= 0) echo ('node: ', obj.name); dump (obj.attr); }; ]; dotty.protogt.actions.edge = dotty.protogt.actions.node; dotty.protovt.normal.menus = [ 'general' = [ 0 = "undo"; 1 = "paste"; 2 = "do layout"; 3 = "cancel layout"; 4 = "redraw"; 5 = "new graph"; 6 = "load graph"; 7 = "reload graph"; 8 = "save graph"; 9 = "save graph as"; 10 = "open view"; 11 = "copy view"; 12 = "clone view"; 13 = "birdseye view"; 14 = "close view"; 15 = "set graph attr"; 16 = "set node attr"; 17 = "set edge attr"; 18 = "zoom in"; 19 = "zoom out"; 20 = "find node"; 21 = "print graph"; 22 = "text view"; 23 = "quit"; ]; 'node' = [ 0 = "cut"; 1 = "Cut"; 2 = "copy"; 3 = "Copy"; 4 = "group"; 5 = "Group"; 6 = "delete"; 7 = "Delete"; 8 = "remove"; 9 = "Remove"; 10 = "set attr"; 11 = "print attr"; ]; 'edge' = [ 0 = "cut"; 1 = "Cut"; 2 = "copy"; 3 = "Copy"; 4 = "delete"; 5 = "Delete"; 6 = "set attr"; 7 = "print attr"; ]; ]; dotty.protovt.normal.keys = [ 'general' = [ 'u' = "undo"; 'p' = "paste"; 'l' = "do layout"; 'k' = "cancel layout"; ' ' = "redraw"; 'L' = "reload graph"; 's' = "save graph"; 'Z' = "zoom in slowly"; 'z' = "zoom out slowly"; 'h' = "scroll horizontally"; 'v' = "scroll vertically"; ]; 'node' = [ 'c' = "copy"; 'C' = "Copy"; 'g' = "group"; 'G' = "Group"; 'd' = "delete"; 'D' = "Delete"; 'r' = "remove"; 'R' = "Remove"; 'a' = "set attr"; ]; 'edge' = [ 'c' = "copy"; 'C' = "Copy"; 'd' = "delete"; 'D' = "Delete"; 'a' = "set attr"; ]; ]; dotty.protovt.birdseye.menus = dotty.protovt.normal.menus; dotty.protovt.birdseye.keys = dotty.protovt.normal.keys; dotty.protovt.normal.uifuncs = [ 'leftdown' = function (data) { local gt; gt = dotty.graphs[dotty.views[data.widget].gtid]; if (data.obj.nid >= 0) { dotty.node2move = data.obj; dotty.movewidget = data.widget; dotty.rp2 = data.pos; # save the previous object pos dotty.node_ppos = data.obj.pos; } }; 'leftmove' = function (data) { local gt, offset_pos; gt = dotty.graphs[dotty.views[data.widget].gtid]; if (dotty.node2move & ( dotty.rp2.x ~= data.pos.x | dotty.rp2.y ~= data.pos.y )) { # use an offset from the cursor to the node's pre-move position offset_pos.x = data.pos.x - (dotty.rp2.x - dotty.node_ppos.x); offset_pos.y = data.pos.y - (dotty.rp2.y - dotty.node_ppos.y); gt.movenode (gt, dotty.node2move, offset_pos); dotty.rp2 = data.pos; } }; 'leftup' = function (data) { local gt, offset_pos; gt = dotty.graphs[dotty.views[data.widget].gtid]; if (dotty.node2move) { if (dotty.movewidget == data.widget) { offset_pos.x = data.pos.x - (dotty.rp2.x - dotty.node_ppos.x); offset_pos.y = data.pos.y - (dotty.rp2.y - dotty.node_ppos.y); gt.movenode (gt, dotty.node2move, offset_pos); } dotty.node2move = 0; } else if (~data.obj) gt.insertnode (gt, data.pos, null, null, null, 1); gt.redrawgraph(gt, gt.views); }; 'middledown' = function (data) { if (~(data.obj.nid >= 0)) return; dotty.rubberband = 1; dotty.movewidget = data.widget; setgfxattr (data.widget, ['mode' = 'xor';]); dotty.rp1 = data.pos; dotty.rp2 = data.pos; line (data.widget, null, dotty.rp1, dotty.rp2, ['color' = 1;]); }; 'middlemove' = function (data) { if (dotty.rubberband ~= 1 | ( dotty.rp2.x == data.pos.x & dotty.rp2.y == data.pos.y )) return; line (data.widget, null, dotty.rp1, dotty.rp2, ['color' = 1;]); dotty.rp2 = data.pos; line (data.widget, null, dotty.rp1, dotty.rp2, ['color' = 1;]); }; 'middleup' = function (data) { local gt; gt = dotty.graphs[dotty.views[data.widget].gtid]; if (dotty.rubberband ~= 1) return; dotty.rubberband = 0; line (dotty.movewidget, null, dotty.rp1, dotty.rp2, ['color' = 1;]); setgfxattr (dotty.movewidget, ['mode' = 'src';]); if (dotty.movewidget ~= data.widget | ~( data.pobj.nid >= 0) | ~(data.obj.nid >= 0 )) return; if (data.pobj.attr.support) gt.groupnodes (gt, [ data.obj.nid = data.obj; data.pobj.nid = data.pobj; ], data.obj, null, null, null, 1, 1); else if (data.obj.attr.support) gt.groupnodes (gt, [ data.obj.nid = data.obj; data.pobj.nid = data.pobj; ], data.pobj, null, null, null, 1, 1); else gt.insertedge (gt, data.pobj, null, data.obj, null, null, 1); }; 'rightup' = function (data) { local vt, gt, menu, i; vt = dotty.views[data.widget]; gt = dotty.graphs[vt.gtid]; if (~data.obj) menu = vt.menus.general; else if (data.obj.nid >= 0) menu = vt.menus.node; else if (data.obj.eid >= 0) menu = vt.menus.edge; if ((i = displaymenu (data.widget, menu)) >= 0) gt.doaction (data, menu[i]); }; 'button3up' = function (data) { local vt, attr; vt = dotty.views[data.widget]; attr = getwidgetattr (vt.scroll, [0 = 'childcenter';]); if (vt.scrollmode == 'h') attr.childcenter.x = attr.childcenter.x - 40; else attr.childcenter.y = attr.childcenter.y - 40; setwidgetattr (vt.scroll, ['childcenter' = attr.childcenter;]); }; 'button4up' = function (data) { local vt, attr; vt = dotty.views[data.widget]; attr = getwidgetattr (vt.scroll, [0 = 'childcenter';]); if (vt.scrollmode == 'h') attr.childcenter.x = attr.childcenter.x + 40; else attr.childcenter.y = attr.childcenter.y + 40; setwidgetattr (vt.scroll, ['childcenter' = attr.childcenter;]); }; 'keyup' = function (data) { local vt, gt, action; vt = dotty.views[data.widget]; gt = dotty.graphs[vt.gtid]; if (data.obj.nid >= 0) { if (vt.keys.node[data.key]) action = vt.keys.node[data.key]; } else if (data.obj.eid >= 0) { if (vt.keys.edge[data.key]) action = vt.keys.edge[data.key]; } if (~action) if (vt.keys.general[data.key]) action = vt.keys.general[data.key]; if (action) gt.doaction (data, action); }; 'redraw' = function (data) { local vt, gt; vt = dotty.views[data.widget]; gt = dotty.graphs[vt.gtid]; gt.drawgraph (gt, [vt.vtid = vt;]); }; 'closeview' = function (data) { local vt, gt; vt = dotty.views[data.widget]; gt = dotty.graphs[vt.gtid]; gt.destroyview (gt, vt); if (tablesize (gt.views) == 0) gt.destroygraph (gt); }; ]; dotty.protovt.birdseye.uifuncs = [ 'leftdown' = function (data) { local gt, vid; gt = dotty.graphs[dotty.views[data.widget].gtid]; for (vid in gt.views) { vt = gt.views[vid]; if (vt.type ~= 'birdseye') gt.setviewcenter ([vid = vt;], data.pos); } }; 'leftmove' = function (data) { local gt, vid; gt = dotty.graphs[dotty.views[data.widget].gtid]; for (vid in gt.views) { vt = gt.views[vid]; if (vt.type ~= 'birdseye') gt.setviewcenter ([vid = vt;], data.pos); } }; 'leftup' = function (data) { local gt, vid; gt = dotty.graphs[dotty.views[data.widget].gtid]; for (vid in gt.views) { vt = gt.views[vid]; if (vt.type ~= 'birdseye') gt.setviewcenter ([vid = vt;], data.pos); } }; 'middledown' = dotty.protovt.normal.uifuncs.middledown; 'middlemove' = dotty.protovt.normal.uifuncs.middlemove; 'middleup' = dotty.protovt.normal.uifuncs.middleup; 'rightup' = dotty.protovt.normal.uifuncs.rightup; 'keyup' = dotty.protovt.normal.uifuncs.keyup; 'redraw' = dotty.protovt.normal.uifuncs.redraw; 'closeview' = dotty.protovt.normal.uifuncs.closeview; ]; dotty.monitorfile = function (data) { local gtid, gt, lpt; for (gtid in dotty.layoutpending) { lpt = dotty.layoutpending[gtid]; if (lpt.fd == data.fd) { gt = dotty.graphs[lpt.gtid]; gt.haveinput = 1; gt.layoutgraph (gt); return 1; } } return 0; };
Simpan
Batal
Isi Zip:
Unzip
Create
Buat Folder
Buat File
Terminal / Execute
Run
Chmod Bulk
All File
All Folder
All File dan Folder
Apply