bricks/bricks/conform.js
2025-07-16 14:28:55 +08:00

59 lines
1.3 KiB
JavaScript

var bricks = window.bricks || {};
bricks.Conform = class extends bricks.PopupWindow {
constructor(opts){
opts.timeout = 0;
opts.auto_open = true;
super(opts);
this.create_conform();
}
create_conform(){
var w = new bricks.VBox({width:'100%', height: '100%'});
this.create_message(w);
this.create_toolbar(w);
this.add_widget(w);
}
create_message(widget){
var w = new bricks.Filler();
widget.add_widget(w);
var w1 = new bricks.VScrollPanel({});
w.add_widget(w1);
var t = new bricks.Text({otext:this.opts.message,
wrap:true,
halign:'middle',
i18n:true});
w1.add_widget(t);
}
create_toolbar(widget){
var desc = {
tools:[
bricks.extend({
"name":"conform",
"icon":bricks_resource('imgs/conform.svg'),
"label":'Conform'
}, this.opts.conform||{}),
bricks.extend({
"name":"discard",
"icon":bricks_resource('imgs/cancel.svg'),
"label":"Discard"
}, this.opts.discard||{})
]
}
var w = new bricks.IconTextBar(desc);
w.bind('conform', this.conform_hndl.bind(this));
w.bind('discard', this.discard_hndl.bind(this));
if (!w) return;
widget.add_widget(w);
}
conform_hndl(event){
this.dismiss();
this.dispatch('conformed');
}
discard_hndl(event){
this.dismiss();
this.dispatch('cancelled');
}
}
bricks.Factory.register('Conform', bricks.Conform);