var plugin = require('topsin.gengui'); var gui = plugin.newGui(plugin.__dirname); function gen() { this.PAUSE = function () { console.log("pause"); } } gui.setLang("zhtw"); // zhcn, zhtw, en var r = gui.msgBox({ title: "info", icon: "info", text: "are you ok?", buttons: ["Ok", "Cancel"], gen: new gen() }); console.log(r); r = gui.confirm("are you ok?", ""); console.log(r); var selected = gui.selectFromTreeview({ title: "test", size: [600, 400], selectmode: "single", columns: [{ "name": "id", "display": "ID", "displayRole": "$id", "search": true, "resizeMode": "ResizeToContents" }, { "name": "name", "display": "NAME", "displayRole": "$name", "search": true, "resizeMode": "ResizeToContents" } ], data: [{ "id": 1, "name": "mo" }, { "id": 2, "name": "ha" } ], returncols: ["id"] }); console.log(selected); r = gui.selectFile("choose something", "*", true, "file", "/home/abby/fast_io"); console.log(r); var elder = []; for (var i = 0; i < 100; ++i) { elder.push({ "mo": "+1s" }); } var xx = [{ "mo": "too young too simple" }, { "ha": "sometimes naive!" }, { "elder": "+1s" } ]; r = gui.selectSingle({ "title": "select your favar", "list": xx, "default": "", "columns": 2, size: [200, 300], showheader: true, "gen": new gen() }); console.log(r); r = gui.selectMultiple({ "title": "select your favar", "list": xx, "defaultvalue": ["mo"], "columns": 2, size: [300, 500], showheader: true, "gen": new gen() }); console.log(r); // select_from_layer // select_from_job gui.selectJob({ title: "select job", multiple: false, joblist: [ "too young", "too simple", "sometimes", "naive!" ], gen: new gen() }); gui.selectStep({ title: "select layer", multiple: true, steplist: ["l1", "l2", "l3"], // gen: new gen(), size: [300, 500] }); r = gui.selectFromTable({ title: "select from table example", multiple: true, list: [{ "job": "too young", "name": "elder" }, { "job": "too simple", "name": "elder" }, { "job": "sometimes", "name": "elder" }, { "job": "naive", "name": "elder" } ], gen: new gen() }); console.log(r); gui.snapScreen({ file: "xxx", dir: "/tmp", type: "png", overwrite: true }); gui.imageViewer({ title: "screenshot", file: "/tmp/xxx.png", defaultsize: [800, 600] }); r = gui.inputBox({ title: "input box example", value: "are you ok?", size: [300, 200], multiline: false }); console.log(r); // // refer to ikm6 GUI.showForm r = gui.showForm({ title: "注册账号", size: [600, 400], ui: { type: 'ScrollArea', property: { widget_resizable: true, frame_shape: 'NoFrame', align: 'Top' }, child: { type: 'VBoxLayout', property: { margin: 2, spacing: 20, align: 'Top' }, pack: { stretch: 0 }, child: [{ type: "FormGridLayout", property: { columns: 1, label_alignment: 'Top | Right', margin: 10, spacing: 20 }, pack: { stretch: 0 }, child: [{ name: 'username', type: 'LineEdit', pack: { label: "用户名" }, property: { enabled: true } }, { name: 'password', type: 'LineEdit', pack: { label: "密码" }, property: { echo_mode: "password" } }, { name: 'sex', type: 'ComboBox', property: { enabled: true, item_list: [{ name: "male", icon: "male", text: "男", text_zhcn: "男", text_zhtw: "男" }, { name: "female", icon: "female", text: "女", text_zhcn: "女", text_zhtw: "女" }, { name: "hideyoshi", icon: "circle-thin", text: "Hideyoshi", text_zhcn: "秀吉", text_tw: "秀吉" } ] }, pack: { label: '性别' } } ] }] } }, data: { username: "elder", password: "nαive!", sex: "male" }, includehide: false, buttons: [{ stock: "ok", sensitive: true, command: function (data) { } }, { stock: "cancel", sensitive: true, command: function (ddata) { } }, { stock: "help", sensitive: true, command: function (data) { console.log(data); } } ], hook: function (data) {}, gen: new gen() }); console.log(r); r = gui.selectLayer({ title: "+1s", //filter: ".*", // regular expression selectmode: "single", // single, multiple context: "all", // all, board, misc layertype: "inner", // default type of layertypelist defaultsize: [600, 400], // window size layermatrix: { layer1: { context: "board", row: 1, name: "layer1", layer_type: "inner" }, layer2: { row: 2, name: "layer2", layer_type: "outer" }, layer3: { context: "misc", row: 3, name: "layer3", layer_type: "inner" } }, layertypelist: [{ name: "all", display_name: "All", filter: function (x) { return true; } }, { name: "inner", display_name: "Inner", filter: function (x) { return x["layer_type"] === "inner"; } }, { name: "outer", display_name: "Outer", filter: function (x) { return x["layer_type"] === "outer"; } } ], gen: new gen() }); console.log(r); r = gui.lockUnlockLayer({ title: "+1s", layermatrix: { layer1: { context: "board", row: 1, name: "layer1", layer_type: "signal" }, layer2: { context: "board", row: 2, name: "layer2", layer_type: "drill" }, layer3: { context: "misc", row: 3, name: "layer3", layer_type: "rout" } }, lockvalue: { layer1: true, layer2: false }, gen: new gen() }); console.log(r); r = gui.passwordBox({ title: "password box", password: "naive!", size: [400, 150] }); console.log(r); r = gui.selectJobLayer({ title: "select job layer", layertypelist: [{ name: "mo", display_name: "MO", filter: function (x) { return x.layer_type === "mo"; } }, { name: "ha", display_name: "HA", filter: function (x) { return x.layer_type === "ha"; } } ], //defaultlayertype: "ha", joblist: ["job1", "job2"], defaultJob: ["job1"], // select by default steplist: ["step1", "step2", "step3", "step4"], // defaultstep: "step3", showstep: true, selectmode: "single", // single/multiple layermatrix: { "layer1": { name: "layer1", layer_type: "mo", row: 1 }, "layer2": { name: "layer2", layer_type: "ha", row: 2 } }, defaultlayer: ["layer1"] }); console.log(r); x = gui.debug({ title: "debug", text: "ciao", size: [400, 300], gen: new gen() }); var DB = require('topsin.database'); DB.addConnection({ database_type: 'pg', database_host: '127.0.0.1:5432', database_name: 'test', database_user: 'abby', database_pwd: 'abby' }, 'test'); x = gui.showSendMail({ title: "show send mail", to: "elder@+1s.gov", cc: "elder@moha.me", subject: "are you ok?", content: "naive!", size: [800, 600], db: DB.query('test') }); console.log(x);