Initial Commit Update Telerik

This commit is contained in:
2022-01-07 19:26:33 +01:00
commit 57e1cda236
2174 changed files with 1202494 additions and 0 deletions

View File

@@ -0,0 +1,15 @@
<%@ Page Language="C#" %>
<script runat="server">
string lang = "en";
protected override void OnInit(EventArgs e)
{
base.OnInit(e);
lang = Request.UserLanguages[0].Replace("-", "_");
if (string.IsNullOrEmpty(lang))
lang = "en";
string path = Server.MapPath("language/" + lang + ".js");
if (string.IsNullOrEmpty(path) || !System.IO.File.Exists(path))
lang = "en";
Response.Redirect("language/" + lang + ".js");
}
</script>

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,478 @@
<?xml version="1.0" encoding="utf-8" ?>
<?xml-stylesheet type="text/xsl" href="jsml.xsl"?>
<jsml xmlns="http://cutesoft.net/jsml"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://cutesoft.net/jsml ../../JSML/jsml.xsd">
<panel jsml-class="border_item" height="94" width="140" border_color="#cccccc" border_width="1">
<property name="framepadding">
<get>
return self._framepadding || [0,0,0,0];
</get>
<set arguments="val">
<![CDATA[
var arr = val.split(",");
if(arr.length==1) {
var ret = IntSure(arr[0]);
self._framepadding = [ret,ret,ret,ret];
return;
}
self._framepadding = [0,0,0,0];
for(var i=0;i<4;i++) {
if(arr.length>i) {
var ret = IntSure(arr[i]);
self._framepadding[i] = ret;
}
}
function IntSure(v)
{
if(typeof(v)=="undefined" || v==null || v=="" || isNaN(v))
return 0;
return parseInt(v);
}
]]>
</set>
</property>
<property name="framename">
<get>
return self._framename;
</get>
<set>
self._framename = value;
</set>
</property>
<property name="emptycorner">
<get>
if(!self._emptycorner) return ",";
return "," + self._emptycorner + ",";
</get>
<set>
<![CDATA[
self._emptycorner = value;
]]>
</set>
</property>
<property name="emptyborder">
<get>
if(!self._emptyborder) return ",";
return "," + self._emptyborder + ",";
</get>
<set>
<![CDATA[
self._emptyborder = value;
]]>
</set>
</property>
<property name="cornersize">
<get>
<![CDATA[
//four corners, [width,height]
return self._cornersize || [[0,0],[0,0],[0,0],[0,0]];
]]>
</get>
<set>
<![CDATA[
if(!value) return;
var val = eval("("+value+")");
if(val.length == 0)
return;
if(val.length==1)
{
self._cornersize = [val[0],val[0],val[0],val[0]];
return;
}
self._cornersize = [[0,0],[0,0],[0,0],[0,0]];
for(var i=0;i<4;i++)
{
if(val.length<=i) continue;
self._cornersize[i] = val[i];
}
]]>
</set>
</property>
<property name="mode">
<get>
return self._mode || "tile";
</get>
<set>
<![CDATA[
if(value=="single") self._mode = "single";
else if(value=="corner") self._mode = "corner";
else self._mode = "tile";
]]>
</set>
</property>
<panel jsml-local="btn_use" dock="bottom" margin="2" height="24" visible="0">
<panel dock="right" width="60" margin="2" css_text="text-shadow: 2px 2px 5px #99999;border:solid #d1decd 1px; background:#f3f3f3;color:#333333;border-radius:2px; -webkit-border-radius:2px;">
<image dock="left" margin="0,0,0,2" src="images/accept.png" vertical_align="middle" horizontal_align="center" width="16" cursor="default"></image>
<label dock="fill" text="@Btn_Apply" margin="0,0,0,3" css_text="font-weight:bold;" vertical_align="middle" horizontal_align="left"></label>
<attach name="click">
<![CDATA[
ImageEditorDocument.set_selection(null);
var pd = instance.get_framepadding();
var pdo = pd;
var es = ImageEditorDocument.GetOption("Ctx_FrameExpandSize");
if(!es) pd = [0,0,0,0];
var mode = instance.get_mode();
ImageEditorDocument.$0105(pd,DrawBorder);
function DrawBorder(layer)
{
if(mode=="tile" || mode=="single")
{
instance.PreviewTile(pdo, layer);
}
if(mode=="corner")
{
instance.PreviewCorner(pdo, layer);
}
}
instance.get_parent().get_parent().Remove();
]]>
</attach>
<initialize>
<![CDATA[
ImageEditorDocument.$043(self.get_element(),"top","#fce877","#dfb642");
]]>
</initialize>
<attach name="mousehover">
<![CDATA[
ImageEditorDocument.$043(self.get_element(),"top","#f1f6fa","#b0bce2");
]]>
</attach>
<attach name="mouseleave">
<![CDATA[
ImageEditorDocument.$043(self.get_element(),"top","#fce877","#dfb642");
return;
self.get_element().style.background = "";
if(jsml.msie) self.get_element().style.filter = "";
]]>
</attach>
</panel>
</panel>
<panel jsml-local="backpanel" dock="fill" vertical_align="middle" horizontal_align="center"></panel>
<panel jsml-local="fillpanel" dock="fill"></panel>
<attach name="click">
<![CDATA[
self.Preview();
self.get_parent().SelectFrame(self);
return;
]]>
</attach>
<method name="Preview">
<![CDATA[
var pd = self.get_framepadding();
var pdo = pd;
var es = ImageEditorDocument.GetOption("Ctx_FrameExpandSize");
if(!es) pd = [0,0,0,0];
var rs = ImageEditorDocument.GetOption("CanvasRealSize");
ImageEditorDocument._canvas.width = rs.width+pd[1]+pd[3];
ImageEditorDocument._canvas.height = rs.height+pd[0]+pd[2];
ImageEditorDocument._2d.clearRect(0,0, ImageEditorDocument._canvas.width, ImageEditorDocument._canvas.height);
try{ImageEditorDocument._canvas.calcpos();}catch(x){}
var layers = ImageEditorDocument._history._layers;
for(var i=0;i<layers.length;i++)
{
var layer = layers[i];
if(ImageEditorDocument._history.$040(layer, "Hidden"))
continue;
var sx = layer._canvas_x + pd[3];
var sy = layer._canvas_y + pd[0];
var dx = layer._canvas.width;
var dy = layer._canvas.height;
ImageEditorDocument._2d.drawImage(layer._cacheCanvas || layer._canvas, sx, sy, dx, dy);
}
var mode = self.get_mode();
if(mode=="tile" || mode=="single")
{
self.PreviewTile(pdo);
return;
}
if(mode=="corner")
{
self.PreviewCorner(pdo);
return;
}
]]>
</method>
<method name="PreviewCorner" arguments="pdo,layer">
<![CDATA[
var ec = self.get_emptycorner();
var eb = self.get_emptyborder();
var cs = self.get_cornersize();
var _doc = ImageEditorDocument;
var drawobj = _doc;
if(layer) drawobj=layer;
var canvas = document.createElement("canvas");
canvas.width = drawobj._canvas.width;
canvas.height = drawobj._canvas.height;
var ctx = canvas.getContext("2d");
var count = 0;
for(var i=1;i<=4;i++)
{
if(ec.indexOf(","+i+",")!=-1)
{
calctime();
continue;
}
var img = new Image();
img.ix = i;
img.onload = function()
{
var x = 0;
var y = 0;
if(this.ix==2 || this.ix==3) x = drawobj._canvas.width-this.width;
if(this.ix==4 || this.ix==3) y = drawobj._canvas.height-this.height;
drawobj._2d.drawImage(this, x, y,this.width,this.height);
calctime();
}
img.src = "images/frame/" + self.get_framename() + "_"+i+".png";
}
var icanvas = document.createElement("canvas");
var i2d = icanvas.getContext("2d");
for(var i=1;i<=4;i++)
{
if(eb.indexOf(","+i+",")!=-1)
{
calctime();
continue;
}
var img = new Image();
img.ix = i;
img.onload = function()
{
var ix = this.ix;
var c_prev = cs[ix-1];
var c_next = ix==4?cs[0]:cs[ix];
var h = this.height;
var w = this.width;
var x = 0;
var y = 0;
var patt = null
if(ix==1)
{
x = c_prev[0];
w = drawobj._canvas.width - c_prev[0] - c_next[0];
patt = i2d.createPattern(this,"repeat-x");
}
if(ix==2)
{
x = drawobj._canvas.width - this.width;
y = c_prev[1];
h = drawobj._canvas.height - c_prev[1] - c_next[1];
patt = i2d.createPattern(this,"repeat-y");
}
if(ix==3)
{
x = c_next[0];
y = drawobj._canvas.height - this.height;
w = drawobj._canvas.width - c_prev[0] - c_next[0];
patt = i2d.createPattern(this,"repeat-x");
}
if(ix == 4)
{
y = c_next[1];
h = drawobj._canvas.height - c_prev[1] - c_next[1];
patt = i2d.createPattern(this,"repeat-y");
}
icanvas.width = w;
icanvas.height = h;
i2d.fillStyle = patt;
i2d.fillRect(0,0,w,h);
drawobj._2d.drawImage(icanvas,x,y,w,h);
calctime();
}
img.src = "images/frame/" + self.get_framename() + "_"+i+"0.png";
}
function calctime()
{
count++;
if(count>=8 && layer) _doc.$0118();
}
]]>
</method>
<method name="PreviewTile" arguments="pdo,layer">
<![CDATA[
var _doc = ImageEditorDocument;
var drawobj = _doc;
if(layer) drawobj = layer;
var img = new Image();
img.onload = function()
{
if(self.get_mode()=="tile")
{
var canvas = document.createElement("canvas");
canvas.width = drawobj._canvas.width;
canvas.height = drawobj._canvas.height;
var ctx = canvas.getContext("2d");
var pattern = ctx.createPattern(img,"repeat");
ctx.fillStyle = pattern;
ctx.fillRect(0,0,canvas.width,canvas.height);
ctx.clearRect(pdo[0],pdo[3],canvas.width-pdo[1]-pdo[3],canvas.height-pdo[0]-pdo[2]);
drawobj._2d.drawImage(canvas,0,0);
}
else
{
var scalex = drawobj._canvas.width/img.width;
var scaley = drawobj._canvas.height/img.height;
var canvas = document.createElement("canvas");
canvas.width = drawobj._canvas.width;
canvas.height = drawobj._canvas.height;
var ctx = canvas.getContext("2d");
ctx.scale(scalex,scaley);
ctx.drawImage(img,0,0);
drawobj._2d.drawImage(canvas,0,0);
}
if(layer) _doc.$0118();
}
img.src = "images/frame/" + self.get_framename() + ".png";
]]>
</method>
<method name="SetButtonEnable" arguments="val">
<![CDATA[
if(val==true)
{
btn_use.set_visible(1);
self.set_height(114);
}
else
{
btn_use.set_visible(0);
self.set_height(90);
}
]]>
</method>
<initialize>
<![CDATA[
var div = backpanel.get_element();
setTimeout(function(){
var w = self.get_current_width();
var pd = self.get_framepadding();
fillpanel.set_margin(pd);
if(self.get_mode()=="tile")
{
backpanel.set_background("url(images/frame/" + self.get_framename() + ".png)");
fillpanel.set_back_color("gray");
return;
}
var img = new Image();
img.onload = function()
{
if(img.width>w || img.height>90)
{
if(img.width/img.height<w/90)
{
img.style.height = "90px";
img.style.width = parseInt(img.width*90/img.height+"") + "px";
img.style.marginLeft = parseInt((w-img.width*90/img.height)/2 + "") + "px";
}
else
{
img.style.width = w + "px";
img.style.height = parseInt(img.height*w/img.width+"") + "px";
img.style.marginTop = parseInt((90-img.height*w/img.width)/2 + "") + "px";
}
}
else
{
img.style.marginLeft = parseInt((w-img.width)/2 + "") + "px";
img.style.marginTop = parseInt((90-img.height)/2 + "") + "px";
}
div.appendChild(img);
}
img.src = "images/frame/" + self.get_framename() + ".png";
},100);
]]>
</initialize>
</panel>
<panel jsml-class="borderlist" right="0" width="150" border_width="0,1,1,1" back_color="#eeeeee" border_color="#cccccc">
<panel dock="top" height="24" css_text="background:#bcc3c6 url(images/back/group.gif) repeat-x;">
<image dock="right" src="images/close.gif" tooltip="@Title_Close" vertical_align="middle" width="16" cursor="default">
<attach name="click">
if(instance._selectedframe)
{
instance._selectedframe = null;
ImageEditorDocument.$0118();
}
instance.Remove();
</attach>
</image>
<label dock="fill" width="10" overflow="visible" text="@Tool_Frame_Head" vertical_align="middle" text_color="#545454" css_text="font-weight:bold;" margin="0,0,0,3"></label>
</panel>
<panel dock="bottom" height="22">
<checkbox dock="left" width="20" vertical_align="middle" margin="0,0,2,0">
<initialize>
<![CDATA[
self.set_checked(ImageEditorDocument.GetOption("Ctx_FrameExpandSize"));
]]>
</initialize>
<attach name="click">
<![CDATA[
ImageEditorDocument.SetOption("Ctx_FrameExpandSize",self.get_checked());
]]>
</attach>
</checkbox>
<label dock="fill" vertical_align="middle" horizontal_align="left" text="@Tool_Frame_Expand"></label>
</panel>
<panel dock="fill" overflow_y="scroll">
<panel jsml-base="border_item" dock="top" framepadding="10" framename="greenflower" mode="tile" margin="3"></panel>
<panel jsml-base="border_item" dock="top" framepadding="40,45,40,45" framename="rope" mode="single" margin="3"></panel>
<panel jsml-base="border_item" dock="top" framepadding="80" framename="leaf" mode="single" margin="3"></panel>
<panel jsml-base="border_item" dock="top" framepadding="35" framename="fallleaf" mode="corner" emptycorner="2,4" emptyborder="1,2,3,4" margin="3"></panel>
<panel jsml-base="border_item" dock="top" framepadding="30" framename="redline" mode="corner" cornersize="[[138,122]]" emptycorner="" emptyborder="" margin="3"></panel>
<panel jsml-base="border_item" dock="top" framepadding="19,19,21,18" framename="brooch" mode="corner" cornersize="[[47,42],[23,24],[39,45],[22,25]]" margin="3"></panel>
<method name="SelectFrame" arguments="frame">
<![CDATA[
var arr = self.get_children();
for(var i=0;i<arr.length;i++)
{
arr[i].set_border_color("#cccccc");
arr[i].SetButtonEnable(false);
}
if(frame)
{
frame.set_border_color("red");
frame.SetButtonEnable(true);
instance._selectedframe = frame;
}
]]>
</method>
</panel>
<initialize>
<![CDATA[
ImageEditorDocument._framelist = self;
setInterval(function(){
self.AdjustHight();
},100);
self.AdjustHight();
]]>
</initialize>
<method name="AdjustHight">
<![CDATA[
var rect=jsml.get_body_rect();
self.set_left(rect.width-150);
if(rect.height==self.get_height())
return;
self.set_height(rect.height);
]]>
</method>
<method name="Remove">
<![CDATA[
ImageEditorDocument._framelist = null;
self.dispose();
]]>
</method>
</panel>
<execute>
<![CDATA[
plugin.LoadUI = function(ctrl)
{
ctrl.append_child(jsml.class_create_instance("borderlist"));
}
]]>
</execute>
</jsml>

View File

@@ -0,0 +1,519 @@
<?xml version="1.0" encoding="utf-8" ?>
<?xml-stylesheet type="text/xsl" href="jsml.xsl"?>
<jsml xmlns="http://cutesoft.net/jsml"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://cutesoft.net/jsml ../../core/jsml.xsd">
<panel jsml-class="contextmenuitem" height="30" border_color="transparent" border_width="1" css_text="border-radius:3px;" margin="2,3,2,3">
<panel dock="left" width ="26" height="28" vertical_align="middle" horizontal_align="center" margin="-1,0,-1,0">
<panel width="24" margin="3,0,0,0">
<image jsml-local="menu_image" visible="0" border_width="0"></image>
</panel>
</panel>
<panel dock="right" width="18" height="28" vertical_align="middle" horizontal_align="center">
<panel width="18" height="18">
<image jsml-local="menu_subimage" visible="0" border_width="0"></image>
</panel>
</panel>
<panel dock="fill" vertical_align="middle" margin="0,0,0,5" height="28">
<label jsml-local="label_name" vertical_align="middle" padding="1"></label>
</panel>
<initialize>
<![CDATA[
self.get_element().oncontextmenu = function(e)
{
var evt = window.event || e;
if(jsml.msie) evt.cancelBubble = true;
if (evt.stopPropagation) evt.stopPropagation();
if (evt.preventDefault) evt.preventDefault();
evt.returnValue = false;
return false;
}
]]>
</initialize>
<property name="menutext">
<get>
return label_name.get_text();
</get>
<set arguments="val">
label_name.set_text(val);
</set>
</property>
<property name="enabled">
<get>
return self._enabled;
</get>
<set arguments="val">
<![CDATA[
self._enabled = val;
if(val=="0")
{
label_name.set_text_color("gray");
menu_subimage.set_visible(0);
}
else
{
label_name.set_text_color("");
if(self.get_subimage())
menu_subimage.set_visible(1);
}
]]>
</set>
</property>
<property name="menuimage">
<get>
return self._img;
</get>
<set arguments="val">
self._img = val;
menu_image.set_src(val);
menu_image.set_visible(1);
</set>
</property>
<property name="subimage">
<get>
return self._subimg;
</get>
<set arguments="val">
self._subimg = val;
menu_subimage.set_src(val);
if(self.get_enabled()!="0")
menu_subimage.set_visible(1);
</set>
</property>
<attach name="mousehover">
<![CDATA[
var scm = self.get_parent()._doc._subcontextmenu;
if(scm && scm.get_target()!=self && scm != self.get_parent())
{
scm.Remove();
self.get_parent()._doc._subcontextmenu = null;
}
if(self.get_enabled()=="0")
return;
self.set_border_width(1);
self.set_border_color("#FFBD69");
self.set_back_color("#FFE7A2");
]]>
</attach>
<attach name="mouseleave">
<![CDATA[
if(self.get_enabled()=="0")
return;
self.set_border_color("transparent");
self.set_back_color("transparent");
]]>
</attach>
<attach name="click" arguments="sender,evt">
<![CDATA[
if(self.get_enabled()!="0" && !menu_subimage.get_visible())
{
self.get_parent()._doc.$044();
}
var e = window.event || evt.event;
if(jsml.msie) e.cancelBubble = true;
if (e.stopPropagation) e.stopPropagation();
if (e.preventDefault) e.preventDefault();
e.returnValue = false;
return false;
]]>
</attach>
</panel>
<panel jsml-class="canvascontextmenupanel" width="210" height="238" border_color="rgb(169, 169, 169)" border_width="1" css_text="box-shadow: rgb(153, 153, 153) 3px 3px 12px;" background="transparent url(images/menuleft.gif) repeat-y">
<panel jsml-base="contextmenuitem" dock="top" menutext="@Context_Unselect">
<initialize>
<![CDATA[
var sel = instance._doc.get_selection();
if(!sel)
self.set_enabled("0");
]]>
</initialize>
<attach name="click">
<![CDATA[
if(self.get_enabled()=="0")
return;
var layer = instance.FindPixelLayer();
instance._doc.set_selection(null);
instance._doc.$0118();
]]>
</attach>
</panel>
<panel jsml-base="contextmenuitem" dock="top" menutext="@Context_Invert">
<initialize>
<![CDATA[
var sel = instance._doc.get_selection();
if(!sel)
self.set_enabled("0");
]]>
</initialize>
<attach name="click">
<![CDATA[
if(self.get_enabled()=="0")
return;
var _canvas = document.createElement("canvas");
_canvas.width = instance._doc._canvas.width;
_canvas.height = instance._doc._canvas.height;
var _2d = _canvas.getContext("2d");
_2d.fillStyle = instance._doc.GetOption("SelectionPattern");
var _oldselection = instance._doc.get_selection();
instance._doc.set_selection(null);
var w = _canvas.width;
var h = _canvas.height;
var c1 = ToolSelection_Inverse(_oldselection);
_2d.drawImage(c1, 0, 0, w, h);
instance._doc.$0118();
instance._doc.set_selection(_canvas);
instance._doc.$056(_canvas);
instance._doc._invertcount = instance._doc._invertcount+1;
function ToolSelection_Inverse(canvas)
{
var newc = document.createElement("canvas");
newc.width = canvas.width;
newc.height = canvas.height;
var new2d = newc.getContext("2d");
new2d.fillStyle = ImageEditorDocument.GetOption("SelectionPattern");
new2d.fillRect(0, 0, canvas.width, canvas.height);
new2d.globalCompositeOperation = "destination-out"
new2d.drawImage(canvas, 0, 0, canvas.width, canvas.height);
return newc;
}
]]>
</attach>
</panel>
<panel jsml-base="contextmenuitem" dock="top" menutext="@Context_SelectLayer" enabled="0" menuimage="images/select.png" subimage="images/submenu.gif">
<initialize>
<![CDATA[
var sel = instance._doc.get_selection();
if(!sel)
{
setTimeout(function(){
var layer = instance.FindPixelLayer();
if(layer!=null)
{
self.set_enabled("1");
var layername = layer.get_name().length>12?layer.get_name().substr(0,9)+"...":layer.get_name();
self.set_menutext(self.get_menutext() + " ("+ layername + ")");
}
},100);
}
]]>
</initialize>
<attach name="mousehover">
<![CDATA[
if(self.get_enabled()=="0")
return;
var scm = instance._doc._subcontextmenu;
if(scm && scm.get_target()==self)
return;
var cmp = jsml.class_create_instance("subcontextmenuselectlayer", [instance._doc]);
cmp.set_parent(document.body);
cmp.SetPos(instance,self,{x:0,y:60,width:210,height:30});
instance._doc._subcontextmenu = cmp;
]]>
</attach>
</panel>
<panel jsml-base="contextmenuitem" dock="top" menutext="@Context_MoveUp">
<initialize>
<![CDATA[
var layerlist = instance._doc.$073();
var currlayer = instance._doc.get_layer();
if(layerlist.length==0 || layerlist[layerlist.length-1]._layerid==currlayer._layerid)
self.set_enabled("0");
else
{
var layername = currlayer.get_name().length>12?currlayer.get_name().substr(0,9)+"...":currlayer.get_name();
self.set_menutext(self.get_menutext() + " ("+ layername + ")");
}
]]>
</initialize>
<attach name="click">
<![CDATA[
if(self.get_enabled()=="0")
return;
var currlayer = instance._doc.get_layer();
instance._doc.$082(currlayer);
]]>
</attach>
</panel>
<panel jsml-base="contextmenuitem" dock="top" menutext="@Context_Delete">
<initialize>
<![CDATA[
var sel = instance._doc.get_selection();
if(!sel)
self.set_enabled("0");
]]>
</initialize>
<attach name="click">
<![CDATA[
if(self.get_enabled()=="0")
return;
instance._doc.$025();
]]>
</attach>
</panel>
<panel jsml-base="contextmenuitem" dock="top" menutext="@Context_Copy">
<initialize>
<![CDATA[
var sel = instance._doc.get_selection();
if(!sel)
self.set_enabled("0");
]]>
</initialize>
<attach name="click">
<![CDATA[
if(self.get_enabled()=="0")
return;
var sel = instance._doc.get_selection();
//Create a new history using selected area
var newlayer = jsml.class_create_instance("$042", [instance._doc]);
newlayer.set_name(ImageEditorDocument.Text["Layer_Copy"]);
//Draw new layer
var ctx = newlayer._2d;
var layer = instance._doc.get_layer();
var sw = layer._canvas.width;
var sh = layer._canvas.height;
var dw = newlayer._canvas.width;
var dh = newlayer._canvas.height;
ctx.drawImage(layer._canvas, 0 - layer._canvas_x, 0 - layer._canvas_y, dw, dh, 0, 0, dw, dh);
ctx.save();
ctx.globalCompositeOperation = "destination-out";
ctx.drawImage(sel, 0, 0, sel.width, sel.height);
ctx.restore();
instance._doc._clipboard = newlayer;
instance._doc.set_selection(null);
instance._doc.$0118();
]]>
</attach>
</panel>
<panel jsml-base="contextmenuitem" dock="top" menutext="@Context_Paste">
<initialize>
<![CDATA[
if(!instance._doc._clipboard)
self.set_enabled("0");
]]>
</initialize>
<attach name="click">
<![CDATA[
if(self.get_enabled()=="0")
return;
var newlayer = jsml.class_create_instance("$042", [instance._doc]);
newlayer.set_name(ImageEditorDocument.Text["Layer_Paste"]);
var ctx = newlayer._2d;
var sw = instance._doc._clipboard._canvas.width;
var sh = instance._doc._clipboard._canvas.height;
var dw = newlayer._canvas.width;
var dh = newlayer._canvas.height;
ctx.drawImage(instance._doc._clipboard._canvas, 0 - instance._doc._clipboard._canvas_x, 0 - instance._doc._clipboard._canvas_y, dw, dh, 0, 0, dw, dh);
instance._doc.$097(newlayer);
//select this layer
//instance._doc.$015(newlayer);
]]>
</attach>
</panel>
<constructor arguments="doc,pos">
self.panel_constructor();
self._doc = doc;
self._pos = pos;
</constructor>
<initialize>
<![CDATA[
self.get_element().oncontextmenu = function(e)
{
var evt = window.event || e;
if (evt.stopPropagation) evt.stopPropagation();
if (evt.preventDefault) evt.preventDefault();
evt.returnValue = false;
return false;
}
]]>
</initialize>
<method name="Remove">
try {document.body.removeChild(self.get_element());}catch(x){}
</method>
<method name="SetPos">
<![CDATA[
//self._pos = pos;
var pos = self._pos;
var rect=jsml.get_body_rect();
var sw = self.get_current_width();
var sh = self.get_current_height();
var left = pos.x;
if(left+sw>rect.width)
left = rect.width-sw;
var top = pos.y;
if(top+sh>rect.height)
top = rect.height-sh;
var style = self.get_element().style;
style.position = "absolute";
self.set_offset_x(left);
self.set_offset_y(top);
self._pos.rx = left;
self._pos.ry = top;
self._pos.width = sw;
self._pos.height = sh;
]]>
</method>
<method name="FindPixelLayer">
<![CDATA[
var history = self._doc.get_history();
var ls = history._layers;
var layer = null;
for (var i = ls.length - 1; i >= 0; i--) {
var _layer = ls[i];
var tp = self._doc.$0100({x:self._pos.offsetX,y:self._pos.offsetY});
var x = tp.x - _layer._canvas_x;
var y = tp.y - _layer._canvas_y;
var imgdata = _layer._2d.getImageData(x, y, 1, 1);
if (imgdata && imgdata.data && imgdata.data[3] > 0) {
layer = _layer;
break;
}
}
return layer;
]]>
</method>
</panel>
<panel jsml-class="subcontextmenubase">
<constructor arguments="doc">
self.panel_constructor();
self._doc = doc;
</constructor>
<initialize>
<![CDATA[
self.get_element().oncontextmenu = function(e)
{
var evt = window.event || e;
if (evt.stopPropagation) evt.stopPropagation();
if (evt.preventDefault) evt.preventDefault();
evt.returnValue = false;
return false;
}
]]>
</initialize>
<method name="Remove">
try {document.body.removeChild(self.get_element());}catch(x){}
</method>
<method name="SetPos" arguments="parentmenu,target,targetoffset">
<![CDATA[
var parentpos = parentmenu._pos;
self.set_owner(parentmenu);
self.set_target(target);
var rect=jsml.get_body_rect();
var sw = self.get_current_width();
var sh = self.get_current_height();
var left = parentpos.rx + targetoffset.width;
if(left+sw>rect.width)
left = parentpos.rx-sw;
var top = parentpos.ry + targetoffset.y;
if(top+sh>rect.height)
top = top-sh;
var style = self.get_element().style;
style.position = "absolute";
self.set_offset_x(left);
self.set_offset_y(top);
self._pos = {x:left,y:top,width:sw,height:sh};
]]>
</method>
<property name="target">
<get>
return self._target;
</get>
<set>
<![CDATA[
self._target = value;
]]>
</set>
</property>
<property name="owner">
<get>
return self._owner;
</get>
<set>
<![CDATA[
self._owner = value;
]]>
</set>
</property>
</panel>
<panel jsml-class="subcontextmenuselectlayer" jsml-base="subcontextmenubase" width="210" height="68" border_color="transparent" border_width="1" css_text="box-shadow: rgb(153, 153, 153) 3px 3px 12px;" background="transparent url(images/menuleft.gif) repeat-y">
<panel jsml-base="contextmenuitem" dock="top" menutext="@Context_SetSelection" enabled="0">
<initialize>
<![CDATA[
var sel = instance._doc.get_selection();
if(!sel)
{
try
{
setTimeout(function(){
var layer = instance.get_owner().FindPixelLayer();
if(layer!=null)
self.set_enabled("1");
},100);
}catch(x){}
}
]]>
</initialize>
<attach name="click">
<![CDATA[
if(self.get_enabled()=="0")
return;
var layer = instance.get_owner().FindPixelLayer();
if(layer==null)
return;
instance._doc.$015(layer);
//instance._doc.set_layer(layer);
]]>
</attach>
</panel>
<panel jsml-base="contextmenuitem" dock="top" menutext="@Context_SelectLayer" enabled="0">
<initialize>
<![CDATA[
var sel = instance._doc.get_selection();
if(!sel)
{
try
{
setTimeout(function(){
var layer = instance.get_owner().FindPixelLayer();
if(layer!=null)
self.set_enabled("1");
},100);
}catch(x){}
}
]]>
</initialize>
<attach name="click">
<![CDATA[
if(self.get_enabled()=="0")
return;
var layer = instance.get_owner().FindPixelLayer();
if(layer==null)
return;
//instance._doc.$015(layer);
instance._doc.set_layer(layer);
]]>
</attach>
</panel>
</panel>
<execute>
<![CDATA[
plugin.LoadUI = function(ctrl,pos)
{
var cmp = jsml.class_create_instance("canvascontextmenupanel",[doc, pos]);
cmp.set_parent(ctrl);
cmp.SetPos(pos);
doc._contextmenu = cmp;
}
]]>
</execute>
</jsml>

View File

@@ -0,0 +1,226 @@
<?xml version="1.0" encoding="utf-8" ?>
<?xml-stylesheet type="text/xsl" href="jsml.xsl"?>
<jsml xmlns="http://cutesoft.net/jsml"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://cutesoft.net/jsml ../../JSML/jsml.xsd">
<panel jsml-class="createdialog_select" dock="top" back_color="rgba(220,220,220,1)" border_color="rgba(204,204,204,1)" border_width="1">
<label jsml-local="label" dock="fill" horizontal_align="left" padding="0,0,0,20" font_size="26px" vertical_align="middle" cursor="pointer">
</label>
<attach name="mousehover">
<![CDATA[
self.set_back_color("rgba(172,203,222,1)");
self.set_border_color("rgba(158,187,205,1)");
]]>
</attach>
<attach name="mouseleave">
<![CDATA[
self.set_back_color("rgba(220,220,220,1)");
self.set_border_color("rgba(204,204,204,1)");
]]>
</attach>
<property name="label_text">
<get>
return label.get_text();
</get>
<set>
label.set_text(value);
</set>
</property>
</panel>
<panel back_color="rgba(128,128,128,0.4)" dock="over" jsml-class="createdialog" vertical_align="middle" horizontal_align="center">
<panel jsml-local="basic" width="400" height="250" back_color="white" padding="0,10,10,10" css_text="border-radius:5px;">
<panel dock="top" height="25" vertical_align="middle" margin="5,-5,0,0">
<image src="images/close.gif" width="16" cursor="default" dock="right" tooltip="@Title_Close">
<attach name="click">
instance.dispose();
</attach>
</image>
</panel>
<panel dock="top" height="60" jsml-base="createdialog_select" label_text="@Tool_New_Canvas">
<attach name="click">
basic.set_visible(0);
canvastype.set_visible(1);
</attach>
</panel>
<panel dock="top" height="60" jsml-base="createdialog_select" label_text="@Tool_New_FromURL" margin="10,0,0,0">
<attach name="click">
basic.set_visible(0);
urltype.set_visible(1);
</attach>
</panel>
<panel dock="top" height="60" jsml-base="createdialog_select" label_text="@Tool_New_File" margin="10,0,0,0" vertical_align="middle">
<initialize>
if(typeof(FileReader)=="undefined")
{
self.set_visible(0);
}
</initialize>
<attach name="click">
<![CDATA[
var input=document.getElementById("imageeditorloadfile");
if(!input.files)
{
alert(ImageEditorDocument.Text["FileAPI"]);
return;
}
input.onchange=function()
{
if(!confirm(ImageEditorDocument.Text["ConfirmCreate"]))
{
input.value = "";
return;
}
var file=input.files[0];
ImageEditorDocument.$0109(file,true);
input.value = "";
instance.dispose();
}
input.click();
]]>
</attach>
</panel>
<initialize>
if(typeof(FileReader)=="undefined")
self.set_height(180);
</initialize>
</panel>
<panel jsml-local="canvastype" visible="0" width="320" height="190" back_color="#eeeeee" border_color="#cccccc" border_width="1" padding="10,20,10,20">
<panel dock="top" height="30" margin="10,0,0,0">
<label dock="left" width="110" css_text="font-weight:bold;" vertical_align="middle" text="@Tool_Width"></label>
<textbox jsml-local="txt_width" dock="left" width="100">
<initialize>
<![CDATA[
ImageEditorDocument.$093(self._input);
]]>
</initialize>
</textbox>
</panel>
<panel dock="top" height="30" margin="10,0,0,0">
<label dock="left" width="110" css_text="font-weight:bold;" vertical_align="middle" text="@Tool_Height"></label>
<textbox jsml-local="txt_height" dock="left" width="100">
<initialize>
<![CDATA[
ImageEditorDocument.$093(self._input);
]]>
</initialize>
</textbox>
</panel>
<panel dock="top" height="30" margin="10,0,0,0">
<label dock="left" width="110" css_text="font-weight:bold;" vertical_align="middle" text="@Tool_New_FillColor"></label>
<dropdown jsml-local="ddl_fillcolor" dock="left" width="100">
<listitem value="transparent" text="@Select_Color_Transparent"></listitem>
<listitem value="backcolor" text="@Select_Color_BackColor"></listitem>
<listitem value="forecolor" text="@Select_Color_ForeColor"></listitem>
</dropdown>
</panel>
<panel dock="top" height="30" margin="10,0,0,0">
<button text="@Btn_Apply" dock="left" css_text="border:solid #999999 1px; background:#f3f3f3;color:#333333;border-radius:2px; -webkit-border-radius:2px;" width="60" vertical_align="middle" margin="0,5,0,80">
<attach name="click">
<![CDATA[
var w = txt_width.get_text();
var h = txt_height.get_text();
if(!w)
{
txt_width.focus();
return;
}
if(!h)
{
txt_height.focus();
return;
}
if(isNaN(w) || parseInt(w)<=0)
{
txt_width.focus();
alert(ImageEditorDocument.Text["CreateWidth"]);
return;
}
if(isNaN(h) || parseInt(h)<=0)
{
txt_height.focus();
alert(ImageEditorDocument.Text["CreateHeight"]);
return;
}
if(!confirm(ImageEditorDocument.Text["ConfirmCreate"]))
return;
var fillcolor = ddl_fillcolor.get_text();
var backcolor = ImageEditorDocument.GetOption("Ctx_BackColor");
var forecolor = ImageEditorDocument.GetOption("Ctx_ForeColor");
ImageEditorDocument.$090();
ImageEditorDocument._canvas.width = parseInt(w);
ImageEditorDocument._canvas.height = parseInt(h);
ImageEditorDocument.SetOption("CanvasRealSize", {width:parseInt(w),height:parseInt(h)});
ImageEditorDocument.$0116();
ImageEditorDocument._history = null;
ImageEditorDocument._history = jsml.class_create_instance("$029", [ImageEditorDocument]);
ImageEditorDocument._history.set_name(ImageEditorDocument.Text["Layer_Background"]);
if(fillcolor!="transparent")
{
var layer = jsml.class_create_instance("$042", [ImageEditorDocument]);
layer.set_name(ImageEditorDocument.Text["Layer_Background"]);
layer._2d.fillStyle = fillcolor=="backcolor"?backcolor:forecolor;
layer._2d.fillRect(0,0,layer._canvas.width,layer._canvas.height);
ImageEditorDocument._history._layers[0] = layer;
ImageEditorDocument._history._selectLayer = layer;
}
ImageEditorDocument.$055([ImageEditorDocument._history]);
ImageEditorDocument.set_SelectedTool(null);
ImageEditorDocument._canvas.calcpos();
instance.dispose();
]]>
</attach>
</button>
<button text="@Btn_Cancel" dock="left" css_text="border:solid #999999 1px; background:#f3f3f3;color:#333333;border-radius:2px; -webkit-border-radius:2px;" width="60" vertical_align="middle">
<attach name="click">
<![CDATA[
canvastype.set_visible(0);
basic.set_visible(1);
]]>
</attach>
</button>
</panel>
</panel>
<panel jsml-local="urltype" visible="0" width="480" height="110" back_color="#eeeeee" border_color="#cccccc" border_width="1" padding="10,20,10,20">
<panel dock="top" height="30" margin="10,0,0,0">
<label dock="left" width="80" css_text="font-weight:bold;" vertical_align="middle" text="@Tool_New_URL"></label>
<textbox jsml-local="txt_imageurl" dock="left" width="360"></textbox>
</panel>
<panel dock="top" height="30" margin="10,0,0,0">
<button text="@Btn_Apply" dock="left" css_text="border:solid #999999 1px; background:#f3f3f3;color:#333333;border-radius:2px; -webkit-border-radius:2px;" width="60" vertical_align="middle" margin="0,5,0,80">
<attach name="click">
<![CDATA[
if(!txt_imageurl.get_text())
{
txt_imageurl.focus();
//alert(ImageEditorDocument.Text["NeedUrl"]);
return;
}
if(!confirm(ImageEditorDocument.Text["ConfirmCreate"]))
return;
ImageEditorDocument.LoadUrl("",txt_imageurl.get_text());
instance.dispose();
]]>
</attach>
</button>
<button text="@Btn_Cancel" dock="left" css_text="border:solid #999999 1px; background:#f3f3f3;color:#333333;border-radius:2px; -webkit-border-radius:2px;" width="60" vertical_align="middle">
<attach name="click">
<![CDATA[
urltype.set_visible(0);
basic.set_visible(1);
]]>
</attach>
</button>
</panel>
</panel>
</panel>
<execute>
<![CDATA[
plugin.LoadUI = function(ctrl)
{
ctrl.append_child(jsml.class_create_instance("createdialog"));
}
]]>
</execute>
</jsml>

View File

@@ -0,0 +1,376 @@
<?xml version="1.0" encoding="utf-8" ?>
<?xml-stylesheet type="text/xsl" href="jsml.xsl"?>
<jsml xmlns="http://cutesoft.net/jsml"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://cutesoft.net/jsml ../../core/jsml.xsd">
<panel jsml-class="effectapplybutton" dock="top" height="20" margin="5,2,5,3">
<button text="@Btn_Apply" dock="right" width="60" margin="0,15,0,5" vertical_align="middle" horizontal_align="center" css_text="border:solid #999999 1px; background:#f3f3f3;color:#333333;border-radius:2px; -webkit-border-radius:2px;">
<attach name="click">
<![CDATA[
instance._effectbox.$0106(true);
instance._mybox.dispose();
]]>
</attach>
</button>
<constructor arguments="effectbox,mybox">
<![CDATA[
self.panel_constructor();
self._effectbox = effectbox;
self._mybox = mybox;
]]>
</constructor>
</panel>
<panel jsml-class="effectbutton" width="70" height="80" margin="3" border_color="#8f8f8f" border_width="0" css_text="border-radius:2px;">
<image jsml-local="icon" dock="top" height ="56" margin="3,3,0,3" vertical_align="middle"></image>
<label jsml-local="txt" dock="fill" margin="0,3,0,3" vertical_align="middle" horizontal_align="center"></label>
<attach name="click">
<![CDATA[
self.get_parent().Select(self);
self.get_parent().get_parent().ShowApply(self);
]]>
</attach>
<attach name="mousehover">
<![CDATA[
self.set_back_color("#bfd6e6");
self.get_parent().get_parent().CloseChild();
]]>
</attach>
<attach name="mouseleave">
<![CDATA[
if(self.get_selected())
return;
self.set_back_color("");
]]>
</attach>
<property name="selected">
<get>
return self._selected;
</get>
<set>
<![CDATA[
self._selected=value;
]]>
</set>
</property>
<property name="src">
<get>
return self._src;
</get>
<set>
<![CDATA[
self._src=value;
icon.set_src(value);
]]>
</set>
</property>
<property name="effectname">
<get>
return self._effectname;
</get>
<set>
<![CDATA[
self._effectname=value;
icon.set_src("images/effect/sample_"+value+".gif");
]]>
</set>
</property>
<property name="title">
<get>
return self._title;
</get>
<set>
<![CDATA[
self._title=value;
txt.set_text(value);
]]>
</set>
</property>
</panel>
<panel jsml-class="effectpanel" width="390" height="205" back_color="white">
<panel jsml-local="backpanel" back_color="gray" opacity="30" visible="0" dock="over" vertical_align="middle" horizontal_align="center">
<image jsml-local="backimg" src="images/loading.gif" back_color="transparent" vertical_align="middle" horizontal_align="center" width="120" height="120" css_text="z-index:101;"></image>
<initialize>
<![CDATA[
var style=self._element.style;
style.zIndex="100";
function repos()
{
if(self._removed || self._jsml_disposed)return;
setTimeout(repos,100);
self.set_parent(document.body);
var rect=jsml.get_body_rect();
style.position="absolute";
style.top=rect.top+"px";
style.left=rect.left+"px";
style.width = rect.width + "px";
style.height = rect.height + "px";
backimg._element.style.top = parseInt((rect.height-120)/2)+"px";
backimg._element.style.left = parseInt((rect.width-120)/2)+"px";
}
//repos();
]]>
</initialize>
<method name="Remove">
//self._removed = true;
//document.body.removeChild(self.get_element());
</method>
</panel>
<panel dock="bottom" height="30" border_color="#8f8f8f" border_width="1,0,0,0" padding="0,5,0,5">
<button text="@Btn_Cancel" dock="right" width="60" margin="3,0,3,5" vertical_align="middle" horizontal_align="center" css_text="border:solid #999999 1px; background:#f3f3f3;color:#333333;border-radius:2px; -webkit-border-radius:2px;">
<attach name="click">
<![CDATA[
doc.$0118();
backpanel.Remove();
instance.dispose();
instance.get_box().dispose();
]]>
</attach>
</button>
<button text="@Btn_Apply" dock="right" width="60" margin="3,0,3,5" vertical_align="middle" horizontal_align="center" css_text="border:solid #999999 1px; background:#f3f3f3;color:#333333;border-radius:2px; -webkit-border-radius:2px;">
<attach name="click">
<![CDATA[
if(instance._effect)
{
instance.$0106();
}
else
{
backpanel.Remove();
instance.dispose();
instance.get_box().dispose();
}
]]>
</attach>
</button>
<checkbox jsml-local="cbx_all" dock="right" checked="1" vertical_align="middle" margin="4,0,0,0"></checkbox>
<label dock="fill" text_align="right" vertical_align="middle" text="@Effect_AllLayer"></label>
</panel>
<panel dock="fill">
<panel dock="flow" jsml-base="effectbutton" title="@Effect_S_Aqua" effectname="aqua"/>
<panel dock="flow" jsml-base="effectbutton" title="@Effect_S_Vivid" effectname="vivid"/>
<panel dock="flow" jsml-base="effectbutton" title="@Effect_S_Coldblue" effectname="coldblue"/>
<panel dock="flow" jsml-base="effectbutton" title="@Effect_S_Fresh" effectname="fresh"/>
<panel dock="flow" jsml-base="effectbutton" title="@Effect_S_Concorde" effectname="concorde"/>
<panel dock="flow" jsml-base="effectbutton" title="@Effect_S_Elegant" effectname="elegant"/>
<panel dock="flow" jsml-base="effectbutton" title="@Effect_S_Indiglow" effectname="indiglow"/>
<panel dock="flow" jsml-base="effectbutton" title="@Effect_S_Old" effectname="old"/>
<panel dock="flow" jsml-base="effectbutton" title="@Effect_S_Singe" effectname="singe"/>
<panel dock="flow" jsml-base="effectbutton" title="@Effect_S_Softfocus" effectname="softfocus"/>
<method name="Select" arguments="btn">
<![CDATA[
var arr = self.get_children();
for(var i=0;i<arr.length;i++)
{
arr[i].set_selected(null);
arr[i].set_back_color("");
}
if(btn)
{
instance._effect = btn.get_effectname();
btn.set_selected(true);
btn.set_back_color("#bfd6e6");
instance.Preview();
}
]]>
</method>
</panel>
<property name="box">
<get>
return self._box;
</get>
<set>
self._box = value;
</set>
</property>
<method name="CloseChild">
<![CDATA[
if(self._effectbox)self._effectbox.dispose();
self._effectbox=null;
]]>
</method>
<method name="ShowApply" arguments="tag">
<![CDATA[
var effectbox=jsml.class_create_instance("floatbox");
effectbox.set_height(31);
effectbox.set_manualclose(true);
effectbox.show(tag.get_element(),0,10,{"floatMode":"r-b"});
instance._effectbox = effectbox;
var bluroption = jsml.class_create_instance("effectapplybutton",[instance,effectbox]);
effectbox.append_child(bluroption);
]]>
</method>
<method name="$0106" arguments="keepopen">
<![CDATA[
if(self._effect)
{
doc.$0106(DrawEffect);
}
function DrawEffect()
{
self.Preview(true,keepopen);
}
]]>
</method>
<method name="Preview" arguments="isapply,keepopen">
<![CDATA[
if(!self._effect) return;
backpanel.set_visible(1);
var effect = jsml.class_create_instance("$035");
var method = self._effect;
setTimeout(Func,100);
function Func(){
var isall = cbx_all.get_checked();
var rs = doc.GetOption("CanvasRealSize");
doc._canvas.width = rs.width;
doc._canvas.height = rs.height;
doc._2d.clearRect(0,0, doc._canvas.width, doc._canvas.height);
try{doc._canvas.calcpos();}catch(x){}
var layers = doc._history._layers;
var currlayer = doc.get_layer();
var sel = doc.get_selection();
for(var i=0;i<layers.length;i++)
{
var layer = layers[i];
if(doc._history.$040(layer, "Hidden"))
continue;
var sx = layer._canvas_x;
var sy = layer._canvas_y;
var dx = layer._canvas.width;
var dy = layer._canvas.height;
if(isall || currlayer._layerid==layer._layerid)
{
var tcanvas = document.createElement("canvas");
tcanvas.width = dx;
tcanvas.height = dy;
var t2d = tcanvas.getContext("2d");
t2d.drawImage(layer._canvas,0,0);
DoEffect(method,tcanvas);
if(sel)
{
t2d.save();
t2d.globalCompositeOperation = "destination-out";
t2d.drawImage(sel, -layer._canvas_x, -layer._canvas_y, sel.width, sel.height);
t2d.restore();
if (layer._canvas_x < 0)
t2d.clearRect(0, 0, -layer._canvas_x, layer._canvas.height);
if (layer._canvas_y < 0)
t2d.clearRect(0, 0, layer._canvas.width, -layer._canvas_y);
var wextra = layer._canvas_x + layer._canvas.width - rs.width;
if (wextra > 0)
t2d.clearRect(-layer._canvas_x + rs.width, 0, wextra, layer._canvas.height);
var hextra = layer._canvas_y + layer._canvas.height - rs.height;
if (hextra > 0)
t2d.clearRect(0, -layer._canvas_y + rs.height, layer._canvas.width, hextra);
t2d.save();
t2d.globalCompositeOperation = "destination-over";
t2d.drawImage(layer._canvas,0,0);
t2d.restore();
}
if(isapply)
layer._canvas = tcanvas;
doc._2d.drawImage(tcanvas, sx, sy, dx, dy);
}
else
doc._2d.drawImage(layer._canvas, sx, sy, dx, dy);
}
if(sel)
doc.$056(sel, "noanimation");
//if(isapply && sel)
// doc.set_selection(null);
backpanel.set_visible(0);
if(isapply)
self._effect = null;
if(isapply && !keepopen)
{
backpanel.Remove();
self.dispose();
self.get_box().dispose();
}
}
function DoEffect(m,canvas)
{
switch(m)
{
case "aqua":
effect.$075(canvas,0,48,0);
break;
case "vivid":
effect.$0125(canvas,1.36);
break;
case "coldblue":
effect.$075(canvas,0,30,70);
break;
case "fresh":
effect.$075(canvas,10,0,4);
break;
case "concorde":
effect.$0108(canvas,80);
effect.$0104(canvas);
break;
case "elegant":
effect.$075(canvas,20,6,0);
break;
case "indiglow":
effect.$0125(canvas,0.88);
effect.$0108(canvas,80);
effect.$0131(canvas,0,40,0);
break;
case "old":
effect.$075(canvas,55,0,-55);
effect.$0125(canvas,0.8);
break;
case "singe":
effect.$075(canvas,36,0,-50);
break;
case "softfocus":
effect.$0127(canvas,3);
effect.$0131(canvas,0,0,6);
break;
}
}
]]>
</method>
<attach name="attach_dom">
<![CDATA[
if(self._eventattached)return;
self._eventattached=true;
self._handleClosing=function()
{
doc.$0118();
}
self.get_box().attach_event("closing",self._handleClosing);
]]>
</attach>
<attach name="detach_dom">
<![CDATA[
self._eventattached=false;
self.get_box().detach_event("closing",self._handleClosing);
]]>
</attach>
</panel>
<execute>
<![CDATA[
plugin.LoadUI = function(ctrl)
{
var pl = jsml.class_create_instance("effectpanel");
pl.set_box(ctrl);
ctrl.append_child(pl);
}
]]>
</execute>
</jsml>

View File

@@ -0,0 +1,501 @@
<?xml version="1.0" encoding="utf-8" ?>
<?xml-stylesheet type="text/xsl" href="jsml.xsl"?>
<jsml xmlns="http://cutesoft.net/jsml"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://cutesoft.net/jsml ../../JSML/jsml.xsd">
<panel jsml-class="propertypanel" width="520" height="360" border_width="1" border_color="Gray" css_text="display:none;">
<panel jsml-local="backpanel" back_color="gray" opacity="20">
<initialize>
<![CDATA[
var style=self._element.style;
style.zIndex="987653";
function repos()
{
if(self._removed || self._jsml_disposed)return;
setTimeout(repos,100);
self.set_parent(document.body);
var rect=jsml.get_body_rect();
style.position="absolute";
style.top=rect.top+"px";
style.left=rect.left+"px";
style.width = rect.width + "px";
style.height = rect.height + "px";
}
repos();
]]>
</initialize>
<method name="Remove">
self._removed = true;
document.body.removeChild(self.get_element());
</method>
</panel>
<panel dock="top" height="30" back_color="#cccccc" vertical_align="middle">
<label jsml-local="label_layername" dock="fill" css_text="font-weight:bold;" margin="5" text="@Property_Header" vertical_align="middle" width="150"></label>
<attach name="mousedown" arguments="jevent,devent">
instance.start_move_offset(devent);
</attach>
</panel>
<panel dock="left" width="120" back_color="#eeeeee">
<panel dock="fill" margin="5" border_width="1" border_color="Gray">
<label dock="top" height="20" css_text="font-weight:bold;" margin="5" text="@Property_GroupTitle" vertical_align="middle" width="10" overflow="visible"></label>
<panel dock="fill" border_width="1,0,0,0" border_color="Gray" padding="5">
<panel jsml-local="shadowtab" height="25" dock="top" border_width="0,0,1,0" border_color="white" vertical_align="middle">
<htmlcontrol width="20" dock="left" vertical_align="middle">
<xmldata>
<input id="cbx_shadow" type="checkbox">
</input>
</xmldata>
<attach name="click">
instance.Preview("ShadowEnabled",self.find_element("cbx_shadow").checked);
</attach>
</htmlcontrol>
<label left="25" text="@Property_GroupShadow" vertical_align="middle" width="10" overflow="visible">
<attach name="click">
instance.ShowContainer(shadowcontainer,shadowtab);
instance.find_element("cbx_shadow").checked = true;
instance.Preview("ShadowEnabled", true);
</attach>
</label>
</panel>
<panel jsml-local="glowouttab" height="25" dock="top" border_width="0,0,1,0" border_color="white" vertical_align="middle">
<htmlcontrol width="20" dock="left" vertical_align="middle">
<xmldata>
<input id="cbx_glowout" type="checkbox">
</input>
</xmldata>
<attach name="click">
instance.Preview("GlowOutEnabled",self.find_element("cbx_glowout").checked);
</attach>
</htmlcontrol>
<label left="25" text="@Property_GroupOutGlow" vertical_align="middle" width="10" overflow="visible">
<attach name="click">
instance.ShowContainer(glowoutcontainer,glowouttab);
instance.find_element("cbx_glowout").checked = true;
instance.Preview("GlowOutEnabled", true);
</attach>
</label>
</panel>
<panel jsml-local="glowintab" height="25" dock="top" border_width="0,0,1,0" border_color="white" vertical_align="middle">
<htmlcontrol width="20" dock="left" vertical_align="middle">
<xmldata>
<input id="cbx_glowin" type="checkbox">
</input>
</xmldata>
<attach name="click">
instance.Preview("GlowInEnabled",self.find_element("cbx_glowin").checked);
</attach>
</htmlcontrol>
<label left="25" text="@Property_GroupInGlow" vertical_align="middle" width="10" overflow="visible">
<attach name="click">
instance.ShowContainer(glowincontainer,glowintab);
instance.find_element("cbx_glowin").checked = true;
instance.Preview("GlowInEnabled", true);
</attach>
</label>
</panel>
</panel>
</panel>
</panel>
<panel jsml-local="optioncontainer" dock="fill" back_color="white" padding="5">
<panel dock="bottom" height="30">
<button text="@Btn_Save" left="40" css_text="border:solid #999999 1px; background:#f3f3f3;color:#333333;border-radius:2px; -webkit-border-radius:2px;">
<attach name="click">
<![CDATA[
var his=ImageEditorDocument.get_history()
var lay=instance.get_layer();
lay.$010();
ImageEditorDocument.$0118();
document.body.removeChild(instance.get_element());
backpanel.Remove();
]]>
</attach>
</button>
<button text="@Btn_Cancel" left="130" css_text="border:solid #999999 1px; background:#f3f3f3;color:#333333;border-radius:2px; -webkit-border-radius:2px;">
<attach name="click">
<![CDATA[
var his=ImageEditorDocument.get_history()
var lay=instance.get_layer();
for(var p in instance._propbackup)
his.$041(lay,p,instance._propbackup[p]);
if(lay.$010())
ImageEditorDocument.$0118();
document.body.removeChild(instance.get_element());
backpanel.Remove();
]]>
</attach>
</button>
</panel>
<panel jsml-local="shadowcontainer" dock="fill" visible="1">
<panel dock="top" height="30">
<panel dock="left" vertical_align="middle">
<label width="50" text="@Property_Blur"></label>
</panel>
<panel dock="fill" vertical_align="middle">
<textbox text="0" jsml-local="tb_shadowblur">
<initialize>
<![CDATA[
ImageEditorDocument.$093(self._input);
self._input.onblur=function()
{
instance.Preview("ShadowBlur",self.get_text());
}
]]>
</initialize>
</textbox>
</panel>
</panel>
<panel dock="top" height="30">
<panel dock="left" vertical_align="middle">
<label width="55" text="@Property_OffsetX"></label>
</panel>
<panel dock="fill" vertical_align="middle">
<textbox text="0" jsml-local="tb_shadowx">
<initialize>
<![CDATA[
ImageEditorDocument.$093(self._input);
self._input.onblur=function()
{
instance.Preview("ShadowX",self.get_text());
}
]]>
</initialize>
</textbox>
</panel>
</panel>
<panel dock="top" height="30">
<panel dock="left" vertical_align="middle">
<label width="55" text="@Property_OffsetY"></label>
</panel>
<panel dock="fill" vertical_align="middle">
<textbox text="0" jsml-local="tb_shadowy">
<initialize>
<![CDATA[
ImageEditorDocument.$093(self._input);
self._input.onblur=function()
{
instance.Preview("ShadowY",self.get_text());
}
]]>
</initialize>
</textbox>
</panel>
</panel>
<panel dock="top" height="30">
<panel dock="left" vertical_align="middle">
<label width="50" text="@Property_Color"></label>
</panel>
<panel dock="fill" vertical_align="middle">
<panel jsml-local="tb_shadowcolor" width="20" height="20" border_color="#cccccc" border_width="1">
<attach name="click" arguments="sender,evt">
<![CDATA[
//shadowcolorpicker.set_target(self);
var cp = ImageEditorDocument.$050();
cp.set_target(self);
cp.set_visible(1);
//var style = cp._element.style;
function AdjustPos()
{
var target = self.get_element();
var y = 0;
var x = 0;
var iy = 0;
while(target != document.body)
{
if(target == instance.get_element())
iy = y;
x += parseInt(target.offsetLeft)||0;
y += parseInt(target.offsetTop)||0;
target = target.parentNode;
}
var left = x + self.get_current_width() + 5;
var top = y;
if(top<0) top =0;
cp.set_offset_x(left + 28);
cp.set_offset_y(top - iy + 2);
}
AdjustPos();
ImageEditorDocument.CancelBubble(evt);
return false;
]]>
</attach>
<method name="SaveColor" arguments="color">
self.set_back_color(color);
//instance.$041("ShadowColor",color);
instance.Preview("ShadowColor",color);
</method>
</panel>
</panel>
</panel>
</panel>
<panel jsml-local="glowoutcontainer" dock="fill" visible="0">
<panel dock="top" height="30">
<panel dock="left" vertical_align="middle">
<label width="50" text="@Property_GlowWidth"></label>
</panel>
<panel dock="fill" vertical_align="middle">
<textbox text="3" jsml-local="tb_glowoutwidth">
<initialize>
<![CDATA[
ImageEditorDocument.$093(self._input);
self._input.onblur=function()
{
var val = self.get_text();
if(val!=null && val.length>0 && isNaN(val))
{
alert(ImageEditorDocument.Text["NumberValid"]);
return;
}
if(parseInt(val)<0)
{
alert(ImageEditorDocument.Text["NumberValidZero"]);
return;
}
instance.Preview("GlowOutWidth", val);
}
]]>
</initialize>
</textbox>
</panel>
</panel>
<panel dock="top" height="30">
<panel dock="left" vertical_align="middle">
<label width="50" text="@Property_Color"></label>
</panel>
<panel dock="fill" vertical_align="middle">
<panel jsml-local="tb_glowoutcolor" width="20" height="20" border_color="#cccccc" border_width="1">
<attach name="click" arguments="sender,evt">
<![CDATA[
//glowoutcolorpicker.set_target(self);
var cp = ImageEditorDocument.$050();
cp.set_target(self);
cp.set_visible(1);
//var style = cp._element.style;
function AdjustPos()
{
var target = self.get_element();
var y = 0;
var x = 0;
var iy = 0;
while(target != document.body)
{
if(target == instance.get_element())
iy = y;
x += parseInt(target.offsetLeft)||0;
y += parseInt(target.offsetTop)||0;
target = target.parentNode;
}
var left = x + self.get_current_width() + 5;
var top = y;
if(top<0) top =0;
cp.set_offset_x(left + 28);
cp.set_offset_y(top - iy + 2);
}
AdjustPos();
ImageEditorDocument.CancelBubble(evt);
return false;
]]>
</attach>
<method name="SaveColor" arguments="color">
self.set_back_color(color);
instance.Preview("GlowOutColor",color);
</method>
</panel>
</panel>
</panel>
</panel>
<panel jsml-local="glowincontainer" dock="fill" visible="0">
<panel dock="top" height="30">
<panel dock="left" vertical_align="middle">
<label width="50" text="@Property_GlowWidth"></label>
</panel>
<panel dock="fill" vertical_align="middle">
<textbox text="3" jsml-local="tb_glowinwidth">
<initialize>
<![CDATA[
ImageEditorDocument.$093(self._input);
self._input.onblur=function()
{
var val = self.get_text();
if(val!=null && val.length>0 && isNaN(val))
{
alert(ImageEditorDocument.Text["NumberValid"]);
return;
}
if(parseInt(val)<0)
{
alert(ImageEditorDocument.Text["NumberValidZero"]);
return;
}
instance.Preview("GlowInWidth", val);
}
]]>
</initialize>
</textbox>
</panel>
</panel>
<panel dock="top" height="30">
<panel dock="left" vertical_align="middle">
<label width="50" text="@Property_Color"></label>
</panel>
<panel dock="fill" vertical_align="middle">
<panel jsml-local="tb_glowincolor" width="20" height="20" border_color="#cccccc" border_width="1">
<attach name="click" arguments="sender,evt">
<![CDATA[
//glowincolorpicker.set_target(self);
var cp = ImageEditorDocument.$050();
cp.set_target(self);
cp.set_visible(1);
//var style = cp._element.style;
function AdjustPos()
{
var target = self.get_element();
var y = 0;
var x = 0;
var iy = 0;
while(target != document.body)
{
if(target == instance.get_element())
iy = y;
x += parseInt(target.offsetLeft)||0;
y += parseInt(target.offsetTop)||0;
target = target.parentNode;
}
var left = x + self.get_current_width() + 5;
var top = y;
if(top<0) top =0;
cp.set_offset_x(left + 28);
cp.set_offset_y(top - iy + 2);
}
AdjustPos();
ImageEditorDocument.CancelBubble(evt);
return false;
]]>
</attach>
<method name="SaveColor" arguments="color">
self.set_back_color(color);
instance.Preview("GlowInColor",color);
</method>
</panel>
</panel>
</panel>
</panel>
</panel>
<method name="Preview" arguments="name,val">
<![CDATA[
var his=ImageEditorDocument.get_history();
var lay=instance.get_layer();
if(!self._propsaved[name] )
{
self._propbackup[name]=his.$040(lay,name);
self._propsaved[name]=true;
}
his.$041(lay,name,val);
lay.$010()
ImageEditorDocument.$0118();
]]>
</method>
<method name="ShowContainer" arguments="ctn,tab">
<![CDATA[
var ctnarr = [shadowcontainer,glowoutcontainer,glowincontainer];
var tabarr = [shadowtab,glowouttab,glowintab];
for(var i=0;i<ctnarr.length;i++)
{
ctnarr[i].set_visible(0);
tabarr[i].set_back_color("");
}
ctn.set_visible(1);
tab.set_back_color("#e5eff3");
]]>
</method>
<method name="$040" arguments="name">
<![CDATA[
var his=ImageEditorDocument.get_history()
var lay=self.get_layer();
return his.$040(lay,name);
]]>
</method>
<method name="$041" arguments="name,val">
<![CDATA[
var his=ImageEditorDocument.get_history()
var lay=self.get_layer();
return his.$041(lay,name,val);
]]>
</method>
<property name="layer">
<get>
var layeritem = self.get_layeritem();
if(!layeritem) return null;
return layeritem.get_layer();
</get>
</property>
<property name="layeritem">
<get>
return self._layeritem;
</get>
<set>
self._layeritem = value;
//label_layername.set_text(self.get_layer().get_name());
//set attributes
//Shadow
instance.find_element("cbx_shadow").checked = self.$040("ShadowEnabled") || false;
tb_shadowx.set_text(self.$040("ShadowX")||"5");
tb_shadowy.set_text(self.$040("ShadowY")||"5");
tb_shadowblur.set_text(self.$040("ShadowBlur")||"0");
tb_shadowcolor.set_back_color(self.$040("ShadowColor")||"rgba(0,0,0,1)");
instance.find_element("cbx_glowout").checked = self.$040("GlowOutEnabled") || false;
tb_glowoutwidth.set_text(self.$040("GlowOutWidth")||"5");
tb_glowoutcolor.set_back_color(self.$040("GlowOutColor")||"rgba(255,255,255,0.5)");
instance.find_element("cbx_glowin").checked = self.$040("GlowInEnabled") || false;
tb_glowinwidth.set_text(self.$040("GlowInWidth")||"5");
tb_glowincolor.set_back_color(self.$040("GlowInColor")||"rgba(255,255,255,0.5)");
</set>
</property>
<attach name="click">
<![CDATA[
]]>
</attach>
<initialize>
<![CDATA[
self._propsaved = {};
self._propbackup = {};
var style=self._element.style;
style.zIndex="987654";
var myself = self;
function AdjustPos()
{
var x = (document.body.offsetWidth - myself.get_width())/2;
var y = (document.body.offsetHeight - myself.get_height())/2;
myself.set_offset_x(x);
myself.set_offset_y(y);
style.position="absolute";
//myself.set_visible(1);
style.display = "";
}
setTimeout(AdjustPos, 50);
]]>
</initialize>
</panel>
<execute>
<![CDATA[
plugin.LoadUI = function(layer)
{
var propertypanel = jsml.class_create_instance("propertypanel");
propertypanel.set_parent(document.body);
propertypanel.set_layeritem(layer);
}
]]>
</execute>
</jsml>

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,216 @@
<?xml version="1.0" encoding="utf-8" ?>
<?xml-stylesheet type="text/xsl" href="jsml.xsl"?>
<jsml xmlns="http://cutesoft.net/jsml"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://cutesoft.net/jsml ../../JSML/jsml.xsd">
<panel jsml-class="watermark_item" height="84" width="140" border_color="#cccccc" border_width="1">
<property name="framepadding">
<get>
return self._framepadding || [0,0];
</get>
<set arguments="val">
<![CDATA[
var arr = val.split(",");
if(arr.length==1) {
var ret = IntSure(arr[0]);
self._framepadding = [ret,ret];
return;
}
self._framepadding = [0,0];
for(var i=0;i<2;i++) {
if(arr.length>i) {
var ret = IntSure(arr[i]);
self._framepadding[i] = ret;
}
}
function IntSure(v)
{
if(typeof(v)=="undefined" || v==null || v=="" || isNaN(v))
return 0;
return parseInt(v);
}
]]>
</set>
</property>
<property name="src">
<get>
return self._src;
</get>
<set>
self._src = value;
</set>
</property>
<panel jsml-local="btn_use" dock="bottom" margin="2" height="24" visible="0">
<panel dock="right" width="60" margin="2" css_text="text-shadow: 2px 2px 5px #99999;border:solid #d1decd 1px; background:#f3f3f3;color:#333333;border-radius:2px; -webkit-border-radius:2px;">
<image dock="left" margin="0,0,0,2" src="images/accept.png" vertical_align="middle" horizontal_align="center" width="16" cursor="default"></image>
<label dock="fill" text="@Btn_Apply" margin="0,0,0,3" css_text="font-weight:bold;" vertical_align="middle" horizontal_align="left"></label>
<attach name="click">
<![CDATA[
ImageEditorDocument.$068(instance.get_framepadding(), instance.get_src());
instance.get_parent().get_parent().Remove();
]]>
</attach>
<initialize>
<![CDATA[
ImageEditorDocument.$043(self.get_element(),"top","#fce877","#dfb642");
]]>
</initialize>
<attach name="mousehover">
<![CDATA[
ImageEditorDocument.$043(self.get_element(),"top","#f1f6fa","#b0bce2");
]]>
</attach>
<attach name="mouseleave">
<![CDATA[
ImageEditorDocument.$043(self.get_element(),"top","#fce877","#dfb642");
]]>
</attach>
</panel>
</panel>
<panel jsml-local="backpanel" dock="fill" vertical_align="middle" horizontal_align="center"></panel>
<attach name="click">
<![CDATA[
self.Preview();
self.get_parent().SelectFrame(self);
return;
]]>
</attach>
<method name="Preview">
<![CDATA[
var pd = self.get_framepadding();
var img = new Image();
img.onload = function()
{
ImageEditorDocument.$0118();
var offsetx = ImageEditorDocument._canvas.width - img.width - pd[0];
var offsety = ImageEditorDocument._canvas.height - img.height - pd[1];
ImageEditorDocument._2d.drawImage(img, offsetx, offsety);
}
var src = self.get_src();
//if (src.toLowerCase().indexOf("http://") == 0 || src.toLowerCase().indexOf("https://") == 0)
// src = "ReadImage.html5." + ImageEditorDocument.GetOption("PageType") + "?url=" + encodeURIComponent(src);
img.src = src;
]]>
</method>
<method name="SetButtonEnable" arguments="val">
<![CDATA[
if(val==true)
{
btn_use.set_visible(1);
self.set_height(104);
}
else
{
btn_use.set_visible(0);
self.set_height(80);
}
]]>
</method>
<initialize>
<![CDATA[
var div = backpanel.get_element();
setTimeout(function(){
var w = self.get_current_width();
var img = new Image();
img.onload = function()
{
if(img.width>w || img.height>80)
{
if(img.width/img.height<w/80)
{
img.style.height = "80px";
img.style.width = parseInt(img.width*80/img.height+"") + "px";
img.style.marginLeft = parseInt((w-img.width*80/img.height)/2 + "") + "px";
}
else
{
img.style.width = w + "px";
img.style.height = parseInt(img.height*w/img.width+"") + "px";
img.style.marginTop = parseInt((80-img.height*w/img.width)/2 + "") + "px";
}
}
else
{
img.style.marginLeft = parseInt((w-img.width)/2 + "") + "px";
img.style.marginTop = parseInt((80-img.height)/2 + "") + "px";
}
div.appendChild(img);
}
img.src = self.get_src();
},100);
]]>
</initialize>
</panel>
<panel jsml-class="watermarklist" right="0" width="150" border_width="0,1,1,1" back_color="#eeeeee" border_color="#cccccc">
<panel dock="top" height="24" css_text="background:#bcc3c6 url(images/back/group.gif) repeat-x;">
<image dock="right" src="images/close.gif" tooltip="@Title_Close" vertical_align="middle" width="16" cursor="default">
<attach name="click">
<![CDATA[
if(instance._selectedmark)
{
instance._selectedmark = null;
ImageEditorDocument.$0118();
}
instance.Remove();
]]>
</attach>
</image>
<label dock="fill" width="10" overflow="visible" text="@Tool_Water_Head" vertical_align="middle" text_color="#545454" css_text="font-weight:bold;" margin="0,0,0,3"></label>
</panel>
<panel dock="fill" overflow_y="scroll">
<panel jsml-base="watermark_item" dock="top" margin="3" framepadding="5" src="images/watermark/sample1.jpg"></panel>
<panel jsml-base="watermark_item" dock="top" margin="3" framepadding="5" src="images/watermark/sample2.jpg"></panel>
<panel jsml-base="watermark_item" dock="top" margin="3" framepadding="5" src="images/watermark/sample3.jpg"></panel>
<panel jsml-base="watermark_item" dock="top" margin="3" framepadding="5,5" src="images/watermark/sample4.gif"></panel>
<panel jsml-base="watermark_item" dock="top" margin="3" framepadding="5" src="images/watermark/sample5.jpg"></panel>
<method name="SelectFrame" arguments="frame">
<![CDATA[
var arr = self.get_children();
for(var i=0;i<arr.length;i++)
{
arr[i].set_border_color("#cccccc");
arr[i].SetButtonEnable(false);
}
if(frame)
{
frame.set_border_color("red");
frame.SetButtonEnable(true);
instance._selectedmark = frame;
}
]]>
</method>
</panel>
<initialize>
<![CDATA[
ImageEditorDocument._watermarklist = self;
setInterval(function(){
self.AdjustHight();
},100);
self.AdjustHight();
]]>
</initialize>
<method name="AdjustHight">
<![CDATA[
var rect=jsml.get_body_rect();
self.set_left(rect.width-150);
if(rect.height==self.get_height())
return;
self.set_height(rect.height);
]]>
</method>
<method name="Remove">
<![CDATA[
ImageEditorDocument._watermarklist = null;
self.dispose();
]]>
</method>
</panel>
<execute>
<![CDATA[
plugin.LoadUI = function(ctrl)
{
ctrl.append_child(jsml.class_create_instance("watermarklist"));
}
]]>
</execute>
</jsml>

View File

@@ -0,0 +1,345 @@
<?xml version="1.0" encoding="utf-8" ?>
<jsml xmlns="http://cutesoft.net/jsml"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://cutesoft.net/jsml ../core/jsml.xsd">
<panel jsml-class="floatbox" width="100" height="61" border_color="darkgray" border_style="solid" border_width="1" back_color="white" overflow="visible">
<initialize>
self._element._floatboxinstance=self;
</initialize>
<method name="show" arguments="parentElement,x,y,option">
<![CDATA[
if(!x)x=0;if(!y)y=0;
if(!option)option={};
self._showtime=new Date().getTime();
self._fbOwner=parentElement;
var pose=parentElement||document.body;
var pare;
if(parentElement)
{
pare=parentElement.parentNode;
while(pare!=null&&!pare._floatboxinstance)pare=pare.parentNode;
}
if(pare!=null)
{
self._parentfloatbox=pare._floatboxinstance;
self._parentfloatbox._onchildshow(self);
}
else
{
if(window._currentfloatbox)
window._currentfloatbox._onothershow(self);
window._currentfloatbox=self;
}
var s=self._element.style;
s.boxShadow="3px 3px 12px #999999";
self._dommode='absolute';
self.set_parent(document.body);
var pos=jsml.calc_position(self._element,pose);
var ods;
var odsborder;
if(parentElement)
{
var w=self.get_width();
var h=self.get_height();
var pew=pose.offsetWidth;
var peh=pose.offsetHeight;
if(!self._overdiv&&!option.stopOverlay)
{
self._overdiv=document.createElement("DIV");
self._overdiv.setAttribute("unselectable","on");
self._overdiv.onselectstart=jsml.cancel_event_function;
ods=self._overdiv.style;
ods.position='absolute';
ods.top=pos.top+"px";
ods.left=pos.left+"px";
ods.width=pew-2+"px";
ods.height=peh-2+"px";
ods.border="solid 1px "+(self.get_border_color()||"darkgray");
if(false)
{
var trans=document.createElement("DIV");
self._overdiv.appendChild(trans);
trans.style.backgroundColor='white';
jsml.set_opacity(trans,1);
}
else
{
ods.backgroundColor=(self.get_back_color()||"white");
ods.overflow='hidden';
self._overdiv.innerHTML=parentElement.innerHTML;
if(parentElement.style.textAlign != "left")
self._overdiv.style.textAlign = parentElement.style.textAlign;
}
document.body.appendChild(self._overdiv);
if(option.stopToggle)
{
self._overdiv.onmousedown=jsml.cancel_bubble_function;
}
if(option.buttonClick)
{
self._overdiv.onclick=option.buttonClick
}
if(self._parentfloatbox)
{
self._overdiv.onmouseover=function()
{
self._parentfloatbox.clearclosechildtimer();
}
}
}
}
jsml.set_opacity(self._element,1);
if(self._overdiv)jsml.set_opacity(self._overdiv,1);
function ResetBorderColor()
{
if(ods&&odsborder&&self.get_opacity()>50)
{
var bordercolor=self.get_border_color();
ods.borderLeftColor=bordercolor;
ods.borderTopColor=bordercolor;
ods.borderRightColor=bordercolor;
ods.borderBottomColor=bordercolor;
ods[odsborder]=(self.get_back_color()||"white");
}
}
var opacity=-40;
function NextOpacity()
{
clearTimeout(self.nextopacitytimerid);
opacity+=20;
if(opacity>=self.get_opacity())
{
opacity=self.get_opacity();
}
else
{
self.nextopacitytimerid=setTimeout(NextOpacity,30);
}
if(opacity>0)
{
jsml.set_opacity(self._element,opacity);
if(self._overdiv)jsml.set_opacity(self._overdiv,opacity);
ResetBorderColor();
}
}
function SetPosition()
{
pos=jsml.calc_position(self._element,pose);
pos.srcleft=pos.left;
pos.srctop=pos.top;
odsborder=null;
var nomovex=false;
var nomovey=false;
if(parentElement)
{
switch(option.floatMode)
{
case "l-t":
nomovex=true;
pos.left+=-w;
pos.top+=peh-h;
break;
case "t-l":
nomovey=true;
pos.left+=-w;
pos.top+=peh-h;
break;
case "l-b":
nomovex=true;
pos.left+=-w;
break;
case "b-l":
nomovey=true;
pos.left+=pew-w;
pos.top+=peh;
break;
case "r-t":
nomovex=true;
pos.left+=pew;
pos.top+=peh-h;
break;
case "t-r":
nomovey=true;
pos.top+=-h;
break;
case "r-b":
nomovex=true;
pos.left+=pew;
if(ods)
{
ods.width=pew-1+"px";
odsborder="borderRightColor";
}
break;
default:
case 'b-r':
nomovey=true;
pos.top+=peh;
if(ods)
{
ods.height=peh-1+"px";
odsborder="borderBottomColor";
}
break;
case 'none':
break;
}
}
if(option.floatMirror!==false)
{
jsml.adjust_mirror(self._element,pose.nodeName=="BODY"?null:pose,pos,nomovex,nomovey);
if(pos.xflip)
{
if(odsborder=='borderRightColor')
{
odsborder='borderLeftColor';
pos.left+=1;
}
}
if(pos.yflip)
{
if(odsborder=='borderBottomColor')
{
odsborder='borderTopColor';
pos.top+=1;
}
ResetBorderColor();
}
}
s.left=(pos.left+x)+"px";
s.top=(pos.top+y)+"px";
}
self._reposfunc=SetPosition;
setTimeout(NextOpacity,20);
setTimeout(SetPosition,10);
]]>
</method>
<attach name="resize">
if(!self._reposfunc)return;
setTimeout(function(){self._reposfunc();},1);
</attach>
<property name="title">
<get>return self.get_text();</get>
<set>self.set_text(value);</set>
</property>
<property name="manualclose">
<get>return self._manualclose;</get>
<set>self._manualclose = value;</set>
</property>
<method name="dispose" overrideas="panel_dispose">
self.close("dispose");
</method>
<method name="close" arguments="reason">
<![CDATA[
if(window._currentfloatbox==self)
window._currentfloatbox=null;
self.close_child();
self.set_visible(false);
setTimeout(function(){
self.panel_dispose();
if(self._overdiv)
{
self._overdiv.parentNode.removeChild(self._overdiv);
self._overdiv=null;
}
},1);
self.invoke_event("closing");
]]>
</method>
<method name="startclosechildtimer">
<![CDATA[
var currentchild=self._childfloatbox;
clearTimeout(self._cctimerid);
self._cctimerid=setTimeout(function(){
if(currentchild==self._childfloatbox)
self.close_child();
},value||500);
]]>
</method>
<method name="clearclosechildtimer">
clearTimeout(self._cctimerid);
</method>
<attach name="mousehover">
if(self._parentfloatbox)self._parentfloatbox.clearclosechildtimer();
</attach>
<method name="close_child">
self.clearclosechildtimer();
if(!self._childfloatbox)return;
self._childfloatbox.close("close_child");
self._childfloatbox=null;
</method>
<method name="_onchildshow" arguments="childfloatbox">
self.clearclosechildtimer();
if(self._childfloatbox==childfloatbox)return;
if(self._childfloatbox)self._childfloatbox._onothershow();
self._childfloatbox=childfloatbox;
</method>
<method name="_onothershow" arguments="otherfloatbox">
self.close("other_show");
</method>
<method name="_onouterclick">
if(self.get_manualclose()) return;
self.close("outer_click");
</method>
<method name="_onmenuclick">
self.close("menu_click");
</method>
<method name="resize" arguments="width,height">
if(width)self.set_width(width);
if(height)self.set_height(height);
</method>
</panel>
<execute>
<![CDATA[
jsml.rtecommonlibraryloaded=true;
function tryclosefloatbox(e)
{
if(!window._currentfloatbox)return;
var e=e||window.event;
var pare=e.srcElement||e.target;
while(pare!=null&&!pare._floatboxinstance)pare=pare.parentNode;
if(pare)return;
window._currentfloatbox._onouterclick();
}
jsml.dom_attach_event(document,'mousedown',tryclosefloatbox);
jsml.dom_attach_event(document,'keydown',function(e)
{
var e=e||window.event;
if(e.keyCode!=27)return;
tryclosefloatbox(e)
});
]]>
</execute>
</jsml>

View File

@@ -0,0 +1,138 @@
<!DOCTYPE html>
<html>
<head>
<title>Untitled Page</title>
<style type="text/css">
body {font-family: 'Segoe UI','Lucida Grande',Verdana,Arial,Helvetica,sans-serif; font-size: 9pt;}
</style>
</head>
<body style="padding: 0px; margin: 0px; overflow: hidden;">
<div id="container_panel">
</div>
<script type="text/javascript">
var editor=parent.rteimageeditoreditor;
var dialog=parent.rteimageeditordialog;
var option=parent.rteimageeditoroption;
document.write('<script type="text/javascript" src="../core/jsml.js?'+editor._config._urlsuffix+'"></scr'+'ipt>');
if(editor._config.servertype=="AspNet")
{
document.write('<script type="text/javascript" src="Language.aspx"></scr'+'ipt>');
}
else
{
document.write('<script type="text/javascript" src="language/en_us.js"></scr'+'ipt>');
}
</script>
<script type="text/javascript">
var fileurl=option.storage.UrlPrefix+option.storage.UrlPath+option.fileitem.Name;
dialog.set_title(editor.GetLangText("imageeditor")+" : "+fileurl);
window.RefreshImage=function(url,callback)
{
var iframe=document.createElement("IFRAME");
iframe.style.width="1px";
iframe.style.height="1px";
iframe.style.position="absolute";
iframe.style.top="-1px";
window.rterefreshimagecallback=callback;
window.rterefreshimageiframe=iframe;
var src="refreshimage.htm?url="+url;
iframe.src=src;
document.body.insertBefore(iframe,document.body.firstChild);
}
window.OnRefreshImage=function()
{
var cb=window.rterefreshimagecallback;
if(cb)setTimeout(cb,1);
var iframe=window.rterefreshimageiframe;
iframe.parentNode.removeChild(iframe);
}
window.SaveImageBase64=function(data)
{
function callback(call)
{
var pathitem=call.ReturnValue;
if(!pathitem)
{
alert("failed..");
return;
}
window.RefreshImage(fileurl,function()
{
if(option.onsaveimage)
{
option.onsaveimage(pathitem);
}
//alert("Saved OK");
dialog.close();
});
}
editor.CallAjax("AjaxSaveImage",callback,option.storage,option.fileitem.Name,data)
}
jsml.jsmlfolder="../core";
jsml.parse_xmldoc_translate_value = function (val) {
if (!val) return val;
if (val.charAt(0) == "@") {
var key = val.substring(1);
return imageeditor_lang[key];
}
if (val.indexOf("{now}") != -1) {
return val.replace(/{now}/g,new Date().getTime());
}
return val;
clearTimeout()
}
</script>
<script type="text/javascript" src="tools.js"></script>
<script type="text/javascript" src="html5.js"></script>
<script type="text/javascript">
var xh=jsml.xmlhttp();
xh.onreadystatechange = function () {
if (xh.readyState < 4) return;
xh.onreadystatechange = new Function();
if (xh.status == 0) return;
jsml.parse_xmldoc(xh.responseXML);
jsml.new_html5_ui();
}
xh.open("GET","html5ui.xml?"+new Date().getTime(),true);
xh.send("");
ImageEditorDocument.SetOption("LockFileName", true);
ImageEditorDocument.SetOption("LockOverwrite", true);
ImageEditorDocument.SetOption("Overwrite", true);
ImageEditorDocument.LoadUrl(option.fileitem.Name, fileurl);
dialog.onqueryclose=function()
{
if(ImageEditorDocument._historylist.length>1)
return confirm(editor.GetLangText("closediscardchanges"));
}
</script>
<script type="text/javascript" src="effect.js"></script>
</body>
</html>

View File

@@ -0,0 +1,51 @@
<?xml version="1.0" encoding="utf-8" ?>
<?xml-stylesheet type="text/xsl" href="jsml.xsl"?>
<jsml xmlns="http://cutesoft.net/jsml"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://cutesoft.net/jsml ../../JSML/jsml.xsd">
<panel jsml-class="boolitem" width="50" height="24" overflow="visible" margin="2" border_color="transparent" border_width="0">
<label jsml-local="txt_font" dock="fill" overflow="visible" padding="0,0,0,10" vertical_align="middle" horizontal_align="left"></label>
<property name="boolean">
<get>
return self._boolean;
</get>
<set>
self._boolean = value;
txt_font.set_text(value);
</set>
</property>
<attach name="click">
<![CDATA[
if(selectfunc)
selectfunc(self.get_boolean());
box.dispose();
]]>
</attach>
<attach name="mousehover">
<![CDATA[
self.set_back_color("#dddddd");
self.set_text_color("Blue");
]]>
</attach>
<attach name="mouseleave">
<![CDATA[
self.set_back_color("");
self.set_text_color("");
]]>
</attach>
</panel>
<panel jsml-class="boolpanel" width="50" height="30" overflow="visible" back_color="white">
<initialize>
<![CDATA[
var PreInitFonts = [doc.Text["Select_Bool_True"],doc.Text["Select_Bool_False"]];
for(var i=0;i<PreInitFonts.length;i++)
{
var fb = jsml.class_create_instance("boolitem");
fb.set_dock("top");
fb.set_boolean(PreInitFonts[i]);
self.append_child(fb);
}
]]>
</initialize>
</panel>
<panel jsml-base="boolpanel"></panel>
</jsml>

View File

@@ -0,0 +1,72 @@
<?xml version="1.0" encoding="utf-8" ?>
<?xml-stylesheet type="text/xsl" href="jsml.xsl"?>
<jsml xmlns="http://cutesoft.net/jsml"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://cutesoft.net/jsml ../../JSML/jsml.xsd">
<panel jsml-class="fontbutton" width="200" height="36" margin="4,1,0,1" border_color="#8f8f8f" border_width="0" css_text="border-radius:2px;">
<image jsml-local="img_loaded" src="images/accept.png" width="16" margin="2" dock="right" vertical_align="middle" tooltip="@Title_Loaded" visible="0"></image>
<image jsml-local="img_font" dock="fill" vertical_align="middle"></image>
<property name="fontname">
<get>
return self._fontname;
</get>
<set>
self._fontname = value;
</set>
</property>
<method name="InitFont">
<![CDATA[
var fontname = self.get_fontname();
var arr = doc.GetOption("LoadedFonts");
img_font.set_src("images/font/"+fontname+".gif");
for(var i=0; i<arr.length;i++)
{
if(fontname!=arr[i])
continue;
img_loaded.set_visible(1);
return;
}
]]>
</method>
<attach name="click">
<![CDATA[
var isloaded = img_loaded.get_visible();
if(isloaded)
{
if(selectfunc) selectfunc(self.get_fontname());
}
else if(loadfunc)
{
loadfunc(self.get_fontname());
img_loaded.set_visible(1);
}
box.dispose();
]]>
</attach>
<attach name="mousehover">
<![CDATA[
self.set_back_color("#dddddd");
]]>
</attach>
<attach name="mouseleave">
<![CDATA[
self.set_back_color("");
]]>
</attach>
</panel>
<panel jsml-class="fontpanel" width="200" height="80" back_color="white">
<initialize>
<![CDATA[
var PreInitFonts = ["WorldWideWeb","AnandaNeptouch"];
for(var i=0;i<PreInitFonts.length;i++)
{
var fb = jsml.class_create_instance("fontbutton");
fb.set_dock("top");
fb.set_fontname(PreInitFonts[i]);
fb.InitFont();
self.append_child(fb);
}
]]>
</initialize>
</panel>
<panel jsml-base="fontpanel"></panel>
</jsml>

View File

@@ -0,0 +1,54 @@
<?xml version="1.0" encoding="utf-8" ?>
<?xml-stylesheet type="text/xsl" href="jsml.xsl"?>
<jsml xmlns="http://cutesoft.net/jsml"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://cutesoft.net/jsml ../../JSML/jsml.xsd">
<panel jsml-class="fontfamilyitem" width="120" height="24" overflow="visible" margin="2" border_color="transparent" border_width="0" css_text="background:url(images/font.gif) 0% 50% no-repeat;">
<label jsml-local="txt_font" dock="fill" overflow="visible" margin="0,20,0,20" vertical_align="middle" horizontal_align="left"></label>
<property name="fontfamily">
<get>
return self._fontfamily;
</get>
<set>
self._fontfamily = value;
txt_font.set_text(value);
txt_font.get_element().style.fontFamily = value;
</set>
</property>
<attach name="click">
<![CDATA[
if(selectfunc)
selectfunc(self.get_fontfamily());
box.dispose();
]]>
</attach>
<attach name="mousehover">
<![CDATA[
self.set_back_color("#dddddd");
self.set_text_color("Blue");
]]>
</attach>
<attach name="mouseleave">
<![CDATA[
self.set_back_color("");
self.set_text_color("");
]]>
</attach>
</panel>
<panel jsml-class="fontfamilypanel" width="120" height="30" overflow="visible" back_color="white">
<initialize>
<![CDATA[
var PreInitFonts = ["Arial","Verdana","Tahoma","Segoe UI","Sans Serif","Lucida Console"];
var fonts = doc.GetOption("LoadedFonts");
PreInitFonts = PreInitFonts.concat(fonts);
for(var i=0;i<PreInitFonts.length;i++)
{
var fb = jsml.class_create_instance("fontfamilyitem");
fb.set_dock("top");
fb.set_fontfamily(PreInitFonts[i]);
self.append_child(fb);
}
]]>
</initialize>
</panel>
<panel jsml-base="fontfamilypanel"></panel>
</jsml>

View File

@@ -0,0 +1,52 @@
<?xml version="1.0" encoding="utf-8" ?>
<?xml-stylesheet type="text/xsl" href="jsml.xsl"?>
<jsml xmlns="http://cutesoft.net/jsml"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://cutesoft.net/jsml ../../JSML/jsml.xsd">
<panel jsml-class="fontsizeitem" width="120" height="24" overflow="visible" margin="2" border_color="transparent" border_width="0">
<label jsml-local="txt_font" dock="fill" overflow="visible" padding="0,0,0,10" vertical_align="middle" horizontal_align="left"></label>
<property name="fontsize">
<get>
return self._fontsize;
</get>
<set>
self._fontsize = value;
txt_font.set_text(value);
txt_font.get_element().style.fontSize = value;
</set>
</property>
<attach name="click">
<![CDATA[
if(selectfunc)
selectfunc(self.get_fontsize());
box.dispose();
]]>
</attach>
<attach name="mousehover">
<![CDATA[
self.set_back_color("#dddddd");
self.set_text_color("Blue");
]]>
</attach>
<attach name="mouseleave">
<![CDATA[
self.set_back_color("");
self.set_text_color("");
]]>
</attach>
</panel>
<panel jsml-class="fontsizepanel" width="120" height="30" overflow="visible" back_color="white">
<initialize>
<![CDATA[
var PreInitFonts = ["8px","9px","10px","11px","12px","13px","14px","16px","18px","20px","24px","36px"];
for(var i=0;i<PreInitFonts.length;i++)
{
var fb = jsml.class_create_instance("fontsizeitem");
fb.set_dock("top");
fb.set_fontsize(PreInitFonts[i]);
self.append_child(fb);
}
]]>
</initialize>
</panel>
<panel jsml-base="fontsizepanel"></panel>
</jsml>

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,875 @@
<?xml version="1.0" encoding="utf-8" ?>
<?xml-stylesheet type="text/xsl" href="jsml.xsl"?>
<jsml xmlns="http://cutesoft.net/jsml"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://cutesoft.net/jsml ../JSML/jsml.xsd">
<include src="uielement.xml?{now}"></include>
<include src="common.xml?{now}"></include>
<panel jsml-class="html5_ui" parent="container_panel">
<panel height="36" back_color="#ebebeb" dock="top" text_color="" horizontal_align="left" border_color="#a4a4a4" border_width="0,0,1,0" css_text="background:url('images/back/menubar.gif') left bottom repeat-x;">
<!--
<panel dock="left" margin="1,0,1,3" jsml-base="menuitem" width="30" menuname="File" menuimg="images/menu/new.png" tooltip="@Title_New">
<attach name="click">
<![CDATA[
ImageEditorDocument.$094("create",function(plugin)
{
if(!plugin.LoadUI)return;
plugin.LoadUI(instance);
});
]]>
</attach>
</panel>
-->
<panel dock="left" margin="1,0,1,3" jsml-base="menuitem" width="30" tooltip="@Title_Save" menuname="Save" menuimg="images/menu/save.png">
<attach name="click">
//ImageEditorDocument.set_SelectedTool("save");
ImageEditorDocument.$053();
</attach>
</panel>
<panel dock="left" margin="1,0,1,3" jsml-base="menuitem" width="30" tooltip="@Title_Undo" menuname="Undo" menuimg="images/menu/undo.png">
<initialize>
<![CDATA[
setInterval(function(){
var _his = ImageEditorDocument.get_history();
if(_his == ImageEditorDocument.$057()[0])
self.set_opacity(50);
else
self.set_opacity(100);
},500);
]]>
</initialize>
<attach name="click">
<![CDATA[
if(self.get_opacity()==50) return;
var oldtool = ImageEditorDocument.get_SelectedTool();
ImageEditorDocument.set_SelectedTool("undo");
if(oldtool)
{
setTimeout(function(){ImageEditorDocument.set_SelectedTool(oldtool);},50);
}
]]>
</attach>
</panel>
<panel dock="left" margin="1,0,1,3" jsml-base="menuitem" width="30" tooltip="@Title_Redo" menuname="Redo" menuimg="images/menu/redo.png">
<initialize>
<![CDATA[
setInterval(function(){
var _his = ImageEditorDocument.get_history();
var _hislist = ImageEditorDocument.$057();
if(_his == _hislist[_hislist.length-1])
self.set_opacity(50);
else
self.set_opacity(100);
},500);
]]>
</initialize>
<attach name="click">
<![CDATA[
if(self.get_opacity()==50) return;
var oldtool = ImageEditorDocument.get_SelectedTool();
ImageEditorDocument.set_SelectedTool("redo");
if(oldtool)
{
setTimeout(function(){ImageEditorDocument.set_SelectedTool(oldtool);},50);
}
]]>
</attach>
</panel>
<panel dock="left" margin="1,0,1,3" jsml-base="menuitem" width="30" tooltip="@Title_Cut" menuname="Cut" menuimg="images/menu/cut.png">
<initialize>
<![CDATA[
setInterval(function(){
var sel = ImageEditorDocument.get_selection();
if(sel)
self.set_opacity(100);
else
self.set_opacity(50);
},500);
]]>
</initialize>
<attach name="click">
<![CDATA[
if(self.get_opacity()==50) return;
ImageEditorDocument.set_SelectedTool("cut");
]]>
</attach>
</panel>
<panel dock="left" margin="1,0,1,3" jsml-base="menuitem" width="30" tooltip="@Title_Copy" menuname="Copy" menuimg="images/menu/copy.png">
<initialize>
<![CDATA[
setInterval(function(){
var sel = ImageEditorDocument.get_selection();
if(sel)
self.set_opacity(100);
else
self.set_opacity(50);
},500);
]]>
</initialize>
<attach name="click">
<![CDATA[
if(self.get_opacity()==50) return;
ImageEditorDocument.set_SelectedTool("copy");
]]>
</attach>
</panel>
<panel dock="left" margin="1,0,1,3" jsml-base="menuitem" width="30" tooltip="@Title_Paste" menuname="Paste" menuimg="images/menu/paste.png">
<initialize>
<![CDATA[
setInterval(function(){
var sel = ImageEditorDocument._clipboard;
if(sel)
self.set_opacity(100);
else
self.set_opacity(50);
},500);
]]>
</initialize>
<attach name="click">
<![CDATA[
if(self.get_opacity()==50) return;
ImageEditorDocument.set_SelectedTool("paste");
]]>
</attach>
</panel>
<panel dock="left" margin="1,0,1,3" jsml-base="menuitem" width="30" tooltip="@Title_Effect" menuname="Adjust" menuimg="images/menu/adjust.png">
<attach name="click">
<![CDATA[
ImageEditorDocument.set_SelectedTool(null);
var box=jsml.class_create_instance("floatbox");
//box.set_manualclose(true);
box.show(self.get_element(),0,0,{"floatMode":"b-r"});
ImageEditorDocument.$094("adjust", function (plugin) {
if (!plugin.LoadUI) return;
plugin.LoadUI(box);
});
]]>
</attach>
</panel>
<panel dock="left" margin="1,0,1,3" jsml-base="menuitem" width="30" tooltip="@Title_Effect" menuname="Effect" menuimg="images/menu/effect.png">
<attach name="click">
<![CDATA[
ImageEditorDocument.set_SelectedTool(null);
var box=jsml.class_create_instance("floatbox");
box.show(self.get_element(),0,0,{"floatMode":"b-r"});
ImageEditorDocument.$094("effect", function (plugin) {
if (!plugin.LoadUI) return;
plugin.LoadUI(box);
});
]]>
</attach>
</panel>
<panel dock="left" margin="1,0,1,3" jsml-base="menuitem" width="30" tooltip="@Title_Rotate90Left" menuname="Rotate90Left" menuimg="images/rotateleft90.png">
<attach name="click">
<![CDATA[
ImageEditorDocument.$0122(270);
]]>
</attach>
</panel>
<panel dock="left" margin="1,0,1,3" jsml-base="menuitem" width="30" tooltip="@Title_Rotate90Right" menuname="Rotate90Right" menuimg="images/rotateright90.png">
<attach name="click">
<![CDATA[
ImageEditorDocument.$0122(90);
]]>
</attach>
</panel>
<panel dock="left" margin="1,0,1,3" jsml-base="menuitem" width="30" tooltip="@Title_FlipH" menuname="FlipH" menuimg="images/fliph.png">
<attach name="click">
<![CDATA[
ImageEditorDocument.$0128("h");
]]>
</attach>
</panel>
<panel dock="left" margin="1,0,1,3" jsml-base="menuitem" width="30" tooltip="@Title_FlipV" menuname="FlipV" menuimg="images/flipv.png">
<attach name="click">
<![CDATA[
ImageEditorDocument.$0128("v");
]]>
</attach>
</panel>
</panel>
<panel width="150" dock="right" back_color="#eeeeee" border_color="#cccccc" border_width="0,1,1,1" padding="0">
<panel dock="top" height="24" css_text="background:#bcc3c6 url(images/back/group.gif) repeat-x;">
<label dock="fill" text="@Layer_HistoryList" vertical_align="middle" text_color="#545454" css_text="font-weight:bold;" margin="0,0,0,3"></label>
</panel>
<panel jsml-base="historypanel" dock="top" height="270" css_text="background:#ffffff url(images/back/list.gif) top left repeat-x;"></panel>
<htmlcontrol dock="bottom" height="1" overflow="none">
<xmldata>
<input id="imageeditorloadfile" type="file" accept="image/*" />
</xmldata>
</htmlcontrol>
<panel dock="bottom" height="22" border_color="#cccccc" border_width="1,0,0,0">
<image dock="left" width="16" zoom="out" src="images/toolopenfile.gif" tooltip="@Title_LoadFile">
<initialize>
<![CDATA[
if(typeof(FileReader)=="undefined")
self.set_visible(0);
]]>
</initialize>
<attach name="click">
<![CDATA[
var input=document.getElementById("imageeditorloadfile");
if(!input.files || typeof(FileReader)=="undefined")
{
alert(ImageEditorDocument.Text["FileAPI"]);
return;
}
input.onchange=function()
{
var file=input.files[0];
ImageEditorDocument.$0109(file);
input.value = "";
}
input.click();
]]>
</attach>
</image>
<image dock="left" width="16" zoom="out" src="images/toolnewlayer.gif" tooltip="@Title_NewLayer">
<attach name="click">
ImageEditorDocument.$0111();
</attach>
</image>
<image dock="left" width="16" zoom="out" src="images/toolmoveup.gif" tooltip="@Title_MoveUp">
<attach name="click">
<![CDATA[
var layerlist = ImageEditorDocument.$073();
var currlayer = ImageEditorDocument.get_layer();
if(currlayer==layerlist[layerlist.length-1])
return;
ImageEditorDocument.$082(currlayer);
]]>
</attach>
</image>
<image dock="left" width="16" zoom="out" src="images/toolmerge.gif" tooltip="@Title_Merge">
<attach name="click">
<![CDATA[
var layerlist = ImageEditorDocument.$073();
if(layerlist.length==1)
return;
if(!confirm(ImageEditorDocument.Text["ConfirmMergeLayer"]))
return;
ImageEditorDocument.$085();
]]>
</attach>
</image>
<image dock="left" width="16" zoom="out" src="images/toolrecycle.gif" tooltip="@Title_DeleteLayer">
<attach name="click">
<![CDATA[
if(!confirm(ImageEditorDocument.Text["ConfirmDelete"]))
return;
var currlayer = ImageEditorDocument.get_layer();
var newlayer = jsml.class_create_instance("$042", [ImageEditorDocument]);
newlayer.set_name(ImageEditorDocument.Text["Layer_Remove"]);
ImageEditorDocument.set_selection(null);
ImageEditorDocument.$097(newlayer);
var ls = ImageEditorDocument.get_history()._layers;
if(ls.length>2)
ls.splice(ls.length-1,1);
else
newlayer.set_name(ImageEditorDocument.Text["Layer_Background"]);
var selix=0;
for (var i = ls.length - 1; i >= 0; i--) {
if (ls[i]._layerid != currlayer._layerid)
continue;
ls.splice(i,1);
selix = i-1;
break;
}
if(selix<0)selix=0;
ImageEditorDocument.set_layer(ls[selix]);
ImageEditorDocument.$0118();
ImageEditorDocument.invoke_event("HistorySelected");
]]>
</attach>
</image>
</panel>
<panel dock="top" height="24" css_text="background:#bcc3c6 url(images/back/group.gif) repeat-x;">
<label dock="fill" text="@Layer_LayerList" vertical_align="middle" text_color="#545454" css_text="font-weight:bold;" margin="0,0,0,3"></label>
</panel>
<panel jsml-base="layerpanel" dock="fill" css_text="background:#ffffff url(images/back/list.gif) top left repeat-x;">
</panel>
</panel>
<panel height="23" back_color="#666666" text_color="white" dock="bottom">
<label dock="left" width="10" margin="0,0,0,8" overflow="visible" vertical_align="middle">
<attach name="attach_dom">
<![CDATA[
if(self._eventattached)return;
self._eventattached=true;
self._handleMousePosChanged=function(evtname,mxy)
{
if(!mxy || !mxy.offsetX)
{
self.set_text("x:, y:");
return;
}
self.set_text("x:"+mxy.offsetX+", y:" + mxy.offsetY);
}
ImageEditorDocument.attach_event("MousePosChanged",self._handleMousePosChanged);
]]>
</attach>
<attach name="detach_dom">
<![CDATA[
self._eventattached=false;
ImageEditorDocument.detach_event("MousePosChanged",self._handleMousePosChanged);
]]>
</attach>
</label>
<panel dock="right" width="60" margin="0,5,0,3" vertical_align="middle">
<label dock="top" jsml-local="txt_zoom" height="23" width="60" margin="0,5,0,0" vertical_align="middle" css_text="font-size:11px;">
<initialize>
<![CDATA[
var myself = self;
function RefreshZoomStatus()
{
var zf = ImageEditorDocument.GetOption("ZoomFactor");
var zc = ImageEditorDocument.GetOption("ZoomCount");
var za = 1;
if(zc>0)
za = zf["In"][zc-1];
if(zc<0)
za = zf["Out"][0-zc-1];
var zastr = za*100 + "%";
myself.set_text(zastr);
setTimeout(RefreshZoomStatus,500);
}
setTimeout(RefreshZoomStatus,500);
]]>
</initialize>
<attach name="mousehover">
if(ImageEditorDocument._selectedtool == "freesize")
return;
self.set_visible(0);
ddl_zoom.set_visible(1);
ddl_zoom.LoadDefault();
</attach>
</label>
<dropdown dock="top" jsml-local="ddl_zoom" visible="0" border_width="0" width="60" margin="2" height="19" vertical_align="middle" css_text="font-size:11px; border-width:0px;">
<attach name="click">
<![CDATA[
if(ImageEditorDocument._selectedtool == "freesize")
return;
if(!self._openlist && !jsml.safari)
{
self._openlist = true;
return;
}
self._openlist = null;
var curval = self.get_text();
if(curval == self.oldval)
{
ddl_zoom.set_visible(0);
txt_zoom.set_visible(1);
return;
}
self.oldval = curval;
ImageEditorDocument.SetOption("ZoomCount",curval);
ImageEditorDocument.$0118();
if(ImageEditorDocument._cropcomp._cropdiv.style.display != "none")
ImageEditorDocument.$061();
txt_zoom.set_visible(1);
ddl_zoom.set_visible(0);
]]>
</attach>
<attach name="mousehover">
<![CDATA[
if(!jsml.firefox)
self._openlist = null;
]]>
</attach>
<attach name="mouseleave">
<![CDATA[
if(self._openlist)
return;
txt_zoom.set_visible(1);
ddl_zoom.set_visible(0);
]]>
</attach>
<method name="LoadDefault">
<![CDATA[
var zc = ImageEditorDocument.GetOption("ZoomCount");
self.oldval = zc;
self.set_text(zc+"");
]]>
</method>
<initialize>
<![CDATA[
self.LoadDefault();
self._sel.style.borderWidth = "0px";
self._sel.style.fontSize = "11px";
self._sel.style.height = "19px";
]]>
</initialize>
<listitem value="-7" text="20%"></listitem>
<listitem value="-6" text="30%"></listitem>
<listitem value="-5" text="40%"></listitem>
<listitem value="-4" text="50%"></listitem>
<listitem value="-3" text="60%"></listitem>
<listitem value="-2" text="80%"></listitem>
<listitem value="-1" text="90%"></listitem>
<listitem value="0" text="100%"></listitem>
<listitem value="1" text="200%"></listitem>
<listitem value="2" text="300%"></listitem>
<listitem value="3" text="400%"></listitem>
<listitem value="4" text="500%"></listitem>
<listitem value="5" text="600%"></listitem>
<listitem value="6" text="700%"></listitem>
<listitem value="7" text="800%"></listitem>
<listitem value="8" text="900%"></listitem>
<listitem value="9" text="1000%"></listitem>
</dropdown>
</panel>
<label dock="right" width="10" overflow="visible" vertical_align="middle" horizontal_align="right" css_text="font-size:11px;" text="@Status_Zoom"></label>
<label dock="right" width="80" margin="0,10,0,0" vertical_align="middle" css_text="font-size:11px;">
<initialize>
<![CDATA[
var myself = self;
function RefreshCanvasStatus()
{
var w = ImageEditorDocument._canvas.width;
var h = ImageEditorDocument._canvas.height;
var str = " " + w + "*" + h+ ", ";
myself.set_text(str);
setTimeout(RefreshCanvasStatus,2000);
}
setTimeout(RefreshCanvasStatus,500);
]]>
</initialize>
</label>
<label dock="right" width="10" overflow="visible" vertical_align="middle" horizontal_align="right" css_text="font-size:11px;" text="@Status_Size"></label>
</panel>
<panel dock="fill">
<panel width="70" dock="left" padding="4" border_color="gray" css_text="background:#fcfcfc url('images/back/toolbar.gif') bottom left repeat-x;" back_color="" border_width="0,0,0,0">
<panel dock="bottom" height="150" border_width="1,0,0,0" border_color="#eeeeee">
<panel dock="top" height="30" margin="5,0,0,0">
<panel left="30">
<image src="images/exchange.gif" border_width="0" tooltip="@Title_Exchange" cursor="default">
<attach name="click">
<![CDATA[
var _forecolor = ImageEditorDocument.GetOption("Ctx_ForeColor") || "Black";
var _backcolor = ImageEditorDocument.GetOption("Ctx_BackColor") || "White";
ImageEditorDocument.SetOption("Ctx_ForeColor",_backcolor);
ImageEditorDocument.SetOption("Ctx_BackColor",_forecolor);
//Ctx_LineWidth.set_back_color(_backcolor);
Ctx_ForeColor.set_back_color(_backcolor);
Ctx_BackColor.set_back_color(_forecolor);
]]>
</attach>
</image>
</panel>
<panel jsml-local="Ctx_ForeColor" left="17" top="13" width="16" height="16" border_width="1" border_color="gray" tooltip="@Title_ForeColor">
<attach name="click" arguments="sender,evt">
<![CDATA[
//popup color picker dialog likes PS
var cp = ImageEditorDocument.$050();
cp.set_target(self);
cp.set_visible(1);
//var style = cp._element.style;
function AdjustPos()
{
var target = self.get_element();
var y = 0;
var x = 0;
while(target != document.body)
{
x += parseInt(target.offsetLeft)||0;
y += parseInt(target.offsetTop)||0;
target = target.parentNode;
}
var left = x + self.get_current_width() + 5;
var top = y - cp.get_current_height() + self.get_current_height();
if(top<0) top =0;
cp.set_offset_x(left);
cp.set_offset_y(top);
}
AdjustPos();
ImageEditorDocument.CancelBubble(evt);
return false;
]]>
</attach>
<method name="SaveColor" arguments="color">
self.set_back_color(color);
ImageEditorDocument.SetOption("Ctx_ForeColor",color);
</method>
<initialize>
self.set_back_color(ImageEditorDocument.GetOption('Ctx_ForeColor') || 'Black');
</initialize>
<attach name="attach_dom">
<![CDATA[
if(self._eventattached)return;
self._eventattached=true;
self._handleOptionChanged=function()
{
var color = ImageEditorDocument.GetOption('Ctx_ForeColor');
if(self.get_back_color()!=color)
self.set_back_color(color);
}
ImageEditorDocument.attach_event("OptionChanged",self._handleOptionChanged);
]]>
</attach>
<attach name="detach_dom">
<![CDATA[
self._eventattached=false;
ImageEditorDocument.detach_event("OptionChanged",self._handleOptionChanged);
]]>
</attach>
</panel>
<panel jsml-local="Ctx_BackColor" left="5" top="2" width="16" height="16" border_width="1" border_color="gray" tooltip="@Title_BackColor">
<attach name="click" arguments="sender,evt">
<![CDATA[
//popup color picker dialog likes PS
var cp = ImageEditorDocument.$050();
cp.set_target(self);
cp.set_visible(1);
function AdjustPos()
{
var target = self.get_element();
var y = 0;
var x = 0;
while(target != document.body)
{
x += parseInt(target.offsetLeft)||0;
y += parseInt(target.offsetTop)||0;
target = target.parentNode;
}
var left = x + self.get_current_width() + 5;
var top = y - cp.get_current_height() + self.get_current_height();
if(top<0) top =0;
cp.set_offset_x(left);
cp.set_offset_y(top);
}
AdjustPos();
ImageEditorDocument.CancelBubble(evt);
return false;
]]>
</attach>
<method name="SaveColor" arguments="color">
self.set_back_color(color);
ImageEditorDocument.SetOption("Ctx_BackColor",color);
</method>
<initialize>
self.set_back_color(ImageEditorDocument.GetOption('Ctx_BackColor'));
</initialize>
<attach name="attach_dom">
<![CDATA[
if(self._eventattached)return;
self._eventattached=true;
self._handleOptionChanged=function()
{
self.set_back_color(ImageEditorDocument.GetOption('Ctx_BackColor'));
}
ImageEditorDocument.attach_event("OptionChanged",self._handleOptionChanged);
]]>
</attach>
<attach name="detach_dom">
<![CDATA[
self._eventattached=false;
ImageEditorDocument.detach_event("OptionChanged",self._handleOptionChanged);
]]>
</attach>
</panel>
</panel>
<panel dock="top" height="24" horizontal_align="center" vertical_align="middle" tooltip="@Title_LineWidth">
<panel jsml-local="Ctx_LineWidth" width="50" height="1" back_color="black">
<initialize>
self.set_height(ImageEditorDocument.GetOption('Ctx_LineWidth') || 1);
</initialize>
</panel>
<attach name="attach_dom">
<![CDATA[
if(self._eventattached)return;
self._eventattached=true;
self._handleOptionChanged=function()
{
Ctx_LineWidth.set_height(ImageEditorDocument.GetOption("Ctx_LineWidth")||1);
}
ImageEditorDocument.attach_event("OptionChanged",self._handleOptionChanged);
]]>
</attach>
<attach name="detach_dom">
<![CDATA[
self._eventattached=false;
ImageEditorDocument.detach_event("OptionChanged",self._handleOptionChanged);
]]>
</attach>
<attach name="click">
<![CDATA[
//lineselector.set_target(self);
var box=jsml.class_create_instance("floatbox");
box.set_vertical_align("middle");
box.set_horizontal_align("center");
box.show(self.get_element(),0,0,{"floatMode":"r-b"});
var panel = jsml.class_create_instance("lineselectorpanel");
panel.set_target(self);
panel._box = box;
box.append_child(panel);
]]>
</attach>
<attach name="mousehover">
self.set_back_color("white");
</attach>
<attach name="mouseleave">
self.set_back_color("");
</attach>
</panel>
<panel dock="top" height="24" margin="2,2,0,0" css_text="border:solid #999999 1px; background:#f3f3f3;color:#333333;border-radius:2px; -webkit-border-radius:2px;">
<image src="images/frame.png" width="16" margin="0,1,0,1" dock="left" vertical_align="middle"></image>
<label dock="fill" vertical_align="middle" horizontal_align="center" text="@Tool_Frame_Head"></label>
<attach name="click">
<![CDATA[
if(ImageEditorDocument._watermarklist)
ImageEditorDocument._watermarklist.Remove();
if(ImageEditorDocument._framelist)
return;
ImageEditorDocument.set_SelectedTool(null);
ImageEditorDocument.$083();
ImageEditorDocument.$094("border", function (plugin) {
if (!plugin.LoadUI) return;
plugin.LoadUI(instance);
});
]]>
</attach>
</panel>
<panel dock="top" height="24" margin="5,2,0,0" css_text="border:solid #999999 1px; background:#f3f3f3;color:#333333;border-radius:2px; -webkit-border-radius:2px;">
<label dock="fill" vertical_align="middle" text_align="center" text="@Tool_Water_Head"></label>
<attach name="click">
<![CDATA[
if(ImageEditorDocument._framelist) ImageEditorDocument._framelist.Remove();
if(ImageEditorDocument._watermarklist)
return;
ImageEditorDocument.set_SelectedTool(null);
ImageEditorDocument.$083();
ImageEditorDocument.$094("watermark", function (plugin) {
if (!plugin.LoadUI) return;
plugin.LoadUI(instance);
});
]]>
</attach>
</panel>
</panel>
<panel dock="fill">
<image jsml-base="toolbutton" dock="flow" ToolName="arrow" tooltip="@Title_Arrow" />
<image jsml-base="toolbutton" dock="flow" ToolName="freesize" tooltip="Free Transform" />
<image jsml-base="toolbutton" dock="flow" ToolName="select" tooltip="@Title_Select" />
<image jsml-base="toolbutton" dock="flow" ToolName="crop" tooltip="@Title_Crop"/>
<image jsml-base="toolbutton" dock="flow" ToolName="resize" tooltip="@Title_Resize" />
<image jsml-base="toolbutton" dock="flow" ToolName="rotate" tooltip="@Title_Rotate" />
<image jsml-base="toolbutton" dock="flow" ToolName="rect" tooltip="@Title_Rect" />
<image jsml-base="toolbutton" dock="flow" ToolName="arc" tooltip="@Title_Arc" />
<image jsml-base="toolbutton" dock="flow" ToolName="polygon" tooltip="@Title_Polygon" />
<image jsml-base="toolbutton" dock="flow" ToolName="star" tooltip="@Title_Star" />
<image jsml-base="toolbutton" dock="flow" ToolName="pen" tooltip="@Title_Pen" />
<image jsml-base="toolbutton" dock="flow" ToolName="line" tooltip="@Title_Line" />
<image jsml-base="toolbutton" dock="flow" ToolName="grad" tooltip="@Title_Gradient" />
<image jsml-base="toolbutton" dock="flow" ToolName="fill" tooltip="@Title_Fill" />
<image jsml-base="toolbutton" dock="flow" ToolName="erase" tooltip="@Title_Erase" />
<image jsml-base="toolbutton" dock="flow" ToolName="stamp" tooltip="@Title_Stamp" />
<image jsml-base="toolbutton" dock="flow" ToolName="text" tooltip="@Title_Text"/>
<image jsml-base="toolbutton" dock="flow" ToolName="colorpicker" tooltip="@Title_Colorpicker" />
<image jsml-base="toolbutton" dock="flow" ToolName="zoom" tooltip="@Title_Zoom" />
<image jsml-base="toolbutton" dock="flow" ToolName="redeye" tooltip="@Title_Redeye" />
</panel>
</panel>
<panel dock="top" height="32" padding="5,0,5,5" overflow="none" border_color="#cccccc" border_width="0,0,1,0" back_color="#eeeeee">
<method name="UpdateSubMenu" arguments="toolname">
<![CDATA[
while(self.get_children().length)
self.remove_child(self.get_children()[0]);
ImageEditorDocument._submenu = null;
ImageEditorDocument.textcontainer.SetVisible(0);
var submenu = "";
switch(toolname)
{
case "rect":
submenu = "submenudrawarea";
break;
case "arc":
submenu = "submenudrawarc";
break;
case "grad":
submenu = "submenugradient";
break;
case "pen":
submenu = "submenudrawpen";
break;
case "line":
submenu = "submenudrawline";
break;
case "rotate":
submenu = "submenurotate";
break;
case "polygon":
submenu = "submenupolygon";
break;
case "star":
submenu = "submenustar";
break;
case "crop":
submenu = "submenucrop";
break;
case "erase":
submenu = "submenuerase";
break;
case "text":
submenu = "submenutext";
break;
case "stamp":
submenu = "submenustamp";
break;
case "resize":
submenu = "submenuresize";
break;
case "zoom":
submenu = "submenuzoom";
break;
case "save":
submenu = "submenusave";
break;
case "fill":
submenu = "submenuvarnish";
break;
case "redeye":
submenu = "submenuredeye";
break;
}
if(submenu=="")
return;
function AfterLoad(ctrl,item)
{
ImageEditorDocument._submenu = item;
item.set_dock("fill");
item._element.style.marginTop = "30px";
ctrl.append_child(item);
function AnimationShow()
{
var mt = parseInt(item._element.style.marginTop);
mt -= 3;
if(mt<=0)
{
mt=0;
item._element.style.marginTop = mt+"px";
return;
}
item._element.style.marginTop = mt+"px";
setTimeout(AnimationShow,20);
}
setTimeout(AnimationShow,20);
}
ImageEditorDocument.$094("submenu",function(plugin)
{
if(!plugin.LoadUI)return;
plugin.LoadUI(self,submenu,AfterLoad);
});
//var item=jsml.class_create_instance(submenu);
]]>
</method>
<attach name="attach_dom">
<![CDATA[
if(self._eventattached)return;
self._eventattached=true;
self._handleToolChanged=function()
{
var _toolname = ImageEditorDocument.get_SelectedTool();
self.UpdateSubMenu(_toolname);
}
ImageEditorDocument.attach_event("SelectedToolChanged",self._handleToolChanged);
]]>
</attach>
<attach name="detach_dom">
self._eventattached=false;
ImageEditorDocument.detach_event("SelectedToolChanged",self._handleToolChanged);
</attach>
</panel>
<panel jsml-local="canvaspanel" dock="fill" overflow="scroll" back_color="#bdbdbd">
<htmlcontrol jsml-local="canvashtml" border_width="0">
<xmldata>
<div id="thecanvasdiv" style="background-color:#bdbdbd;position:relative;"></div>
</xmldata>
<initialize>
<![CDATA[
self.div=self.find_element("thecanvasdiv");
self.canvas=ImageEditorDocument.get_canvas();
self.canvas.calcpos = function()
{
self.AdjustPos();
}
self.div.appendChild(self.canvas);
self.div.parentNode.style.border = "0px";
var cropdiv = ImageEditorDocument.$081();
var freediv = ImageEditorDocument.$080();
var textdiv = ImageEditorDocument.$036();
self.div.appendChild(textdiv);
self.div.appendChild(cropdiv);
self.div.appendChild(freediv);
//canvaspanel.get_element().appendChild(freediv);
ImageEditorDocument._canvasdiv = self.div;
]]>
</initialize>
<method name="AdjustPos">
//canvashtml._element.style.width = self.canvas.width + "px";
//canvashtml._element.style.height = self.canvas.height + "px";
var dw = Math.max(canvaspanel.get_current_width()-18, self.canvas.width);
var dh = Math.max(canvaspanel.get_current_height()-18, self.canvas.height);
var left = Math.max(0,dw-self.canvas.width)/2;
var top = Math.max(0,dh-self.canvas.height)/2;
self.set_width(dw-left);
self.set_height(dh-top);
self.set_left(left);
self.set_top(top);
</method>
</htmlcontrol>
<attach name="resize">
canvashtml.AdjustPos();
</attach>
</panel>
</panel>
<initialize>
<![CDATA[
self.set_parent(document.body);
jsml.dom_attach_event(window,"resize",function()
{
self.setwinsize();
});
setTimeout(function()
{
self.setwinsize();
},10);
self.setwinsize();
]]>
</initialize>
<method name="setwinsize">
<![CDATA[
var rect=jsml.get_body_rect();
var ua=navigator.userAgent;
if(ua!=null&&(ua.indexOf("iPhone")!=-1||ua.indexOf("Android")!=-1))
{
if(rect.width>rect.height)
{
rect.width=480;
rect.height=360;
}
else
{
rect.width=360;
rect.height=480;
}
}
self.set_width(rect.width);
self.set_height(rect.height);
]]>
</method>
</panel>
</jsml>

Binary file not shown.

After

Width:  |  Height:  |  Size: 447 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 640 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 554 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 192 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 926 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 211 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1022 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 243 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 552 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 359 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 232 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 352 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 362 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 492 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 216 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 733 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 198 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 189 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 718 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 282 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 991 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 721 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 630 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 655 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 88 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 939 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 547 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 359 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 42 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 83 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 55 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 37 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 361 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 380 B

Some files were not shown because too many files have changed in this diff Show More