function dpy (y) {
return y*app.GetScreenDensity()/160/app.GetDisplayHeight();
};
function dpx (x) {
return x*app.GetScreenDensity()/160/app.GetDisplayWidth();
};
var get = []
var form = ""
var pickc = ["#f44336","#e91e63","#9c27b0",
"#673ab7","#3f51b5","#2196f3",
"#03a9f4","#00bcd4","#009688",
"#4caf50","#8bc34a","#cddc39",
"#ffeb3b","#ffc107","#ff9800",
"#ff5722","#795548","#9e9e9e",
"#607d8b", "#ffffff"]
function OnStart()
{
lay = app.CreateLayout( "Linear", "Vertical,FillXY,VCenter" );
picker = CreatePicker(50, 6, "rec", "", "black")
lay.AddChild( picker );
app.AddLayout( lay );
}
function CreatePicker(size, piR, fo, laycolor, color)
{
form = fo
picklay = app.CreateLayout( "linear", "left" );
picklay.SetBackColor( laycolor );
picklay.SetSize( dpx(size*piR), -1 );
for( var n = 0; n<pickc.length/piR; n++){
pickhoriz = app.CreateLayout( "linear", "horizontal" );
for( var i = 0; i<piR; i++) if( i+n*piR<pickc.length) AddColor( i+n*piR, size, form, color);
picklay.AddChild( pickhoriz );
}
return picklay
}
function AddColor(i, p, form, color)
{
imgl = app.CreateLayout( "Frame", "" );
pickhoriz.AddChild( imgl );
pickimg = app.CreateImage( null, dpx(p), dpy(p));
imgl.AddChild( pickimg );
pickimg.SetPaintColor( pickc[i] );
if(form == "rec"||form == "Rec"||form == "rectange"||form == "Rectange")pickimg.DrawRectangle( 0, 0, 1, 1 );
if(form == "cir"||form == "Cir"||form == "circle"||form == "Circle")pickimg.DrawCircle( 0.5, 0.5, 0.5 );
get[i] = app.CreateImage( null, dpx(p), dpy(p) );
get[i].SetPaintColor( color );
get[i].SetPaintStyle( "line" );
get[i].SetLineWidth( 2 );
get[i].SetOnTouchDown( On );
imgl.AddChild( get[i] );
}
function On()
{
var i = 0
for( var e = 0; e<get.length; e++ ){
get[e].Clear();
if( get[e]==this ) i = e
}
if(form == "rec"||form == "Rec"||form == "rectange"||form == "Rectange")this.DrawRectangle( 0.05, 0.05, 0.95, 0.95 );
if(form == "cir"||form == "Cir"||form == "circle"||form == "Circle")this.DrawCircle( 0.5, 0.5, 0.45 );
alert(pickc[i])
}
function dpy (y) {
return y*app.GetScreenDensity()/160/app.GetDisplayHeight();
};
function dpx (x) {
return x*app.GetScreenDensity()/160/app.GetDisplayWidth();
};
var get = []
//var form = ""
var pickc = ["#f44336","#e91e63","#9c27b0",
"#673ab7","#3f51b5","#2196f3",
"#03a9f4","#00bcd4","#009688",
"#4caf50","#8bc34a","#cddc39",
"#ffeb3b","#ffc107","#ff9800",
"#ff5722","#795548","#9e9e9e",
"#607d8b", "#ffffff"]
function OnStart() {
lay = app.CreateLayout( "Linear", "Vertical,FillXY,VCenter" );
picker = CreatePicker(50, 6, "rec", "", "black")
lay.AddChild( picker );
app.AddLayout( lay );
}
function CreatePicker(size, col,form, laycolor, color) {
form= form || 'rec'; // default rectangle
form=form.charAt(0).toLowerCase(); // 1st char only
var lay = app.CreateLayout("linear","left");
lay.SetBackColor(laycolor);
lay.SetSize( dpx(size*col), -1 );
for(var n=0; n<pickc.length/col;n++){
var layH=app.CreateLayout("linear","horizontal");
for(var i=0; i<col; i++)
if(i+n*col<pickc.length)
AddColor( layH,i+n*col, size, form, color);
lay.AddChild(layH);
}
return lay;
}
function AddColor(layt,i, p, form, color) {
var layF=app.CreateLayout("Frame", "");
layt.AddChild( layF );
// image swatch
var img = app.CreateImage( null, dpx(p), dpy(p));
img.SetPaintColor( pickc[i] );
layF.AddChild(img);
// set swatch form
if(form=="r") img.DrawRectangle( 0, 0, 1, 1 );
if(form=="c") img.DrawCircle( 0.5, 0.5, 0.5 );
// create color swatch
get[i] = app.CreateImage( null, dpx(p), dpy(p) );
var sw=get[i]; // set reference
sw.SetPaintColor(color);
sw.SetPaintStyle("line");
sw.SetLineWidth(2);
sw.SetOnTouchDown(img_OnTouch);
sw.typ=form; // indicate type
sw.color=pickc[i]; // color
layF.AddChild( get[i] );
}
// color swatch touched
function img_OnTouch() {
// clear previous selection
for(var i=0; i<get.length; i++)
get[i].Clear();
// draw the item selected
if(this.typ=='r') this.DrawRectangle( 0.05, 0.05, 0.95, 0.95 );
if(this.typ=='c') this.DrawCircle( 0.5, 0.5, 0.45 );
// show item picked
app.ShowPopup(this.color);
}