August, 2014

now browsing by month

 

Follow up…

Follow up…

Some time ago TrianguloY  posted about a possible public community (https://plus.google.com/u/0/105066926163073195690/posts/6wxuXfvjGoX).

I am rather favorable to this idea, and this community is now up and alive: https://plus.google.com/u/0/communities/109017480579703391739.

Although that I am not sure of what all the consequences will be, I think this is a very welcomed thing for most users that are looking for help or hints and don’t wish to join and wait to be accepted.

In a nutshell this new community is dedicated to announcement, screen sharing and miscellaneous discussion , while this one is now more focused on beta testing, bug report and feature suggestion.

I would like to emphasize on the fact that these are “orientations”. Everyone willing to keep their post private can continue to post here and if you prefer to show you stuff to a wider audience, head for the public community.

Let’s see how it goes!

]]>

As requested by Nigel Stewart here is my App Drawer

As requested by Nigel Stewart here is my App Drawer

]]>

USEFUL LINKS

USEFUL LINKS

Stable version, 10.4.1: https://play.google.com/store/apps/details?id=net.pierrox.lightning_launcher, https://play.google.com/store/apps/details?id=net.pierrox.lightning_launcher_extreme

Changelog: http://www.pierrox.net/cmsms/applications/lightning-launcher/change-log.html

Wiki : http://www.pierrox.net/android/applications/lightning_launcher/wiki/

Tips&tricks : http://www.pierrox.net/android/applications/lightning_launcher/wiki/doku.php?id=tips_tricks

Script API reference: http://www.pierrox.net/android/applications/lightning_launcher/script/

Beta testing, bug report, feature suggestion: https://plus.google.com/u/0/communities/111427002111904170930

ABOUT

ABOUT

This is a public community for announcements, sharing your screens and exchanging on Lightning.

Please observe these rules: no violence, sex, etc. Keep cool and friendly 🙂

In order to opt in for beta, report bugs or suggest a feature, please join this sister LL community: https://plus.google.com/u/0/communities/111427002111904170930

This new public community has just been created !

This new public community has just been created !

Welcome everyone!

I had this idea already weeks ago, but now I had the time to realize it.

I had this idea already weeks ago, but now I had the time to realize it.

Now its far enough to be shown. It’s nothing ready or save, more a preview.

It’s free Gesture drawing.

It gets slower with more gestures saved, I don’t know where the maximum is.

]]>

Is it possible to clear an image without creating a new one? With ‘clear’ I mean set all pixels to transparent.

Is it possible to clear an image without creating a new one? With ‘clear’ I mean set all pixels to transparent.

]]>

My screen is finally taking some shape.

My screen is finally taking some shape.

]]>

Can I modify items in panels or folders with full screen not their real size?

Can I modify items in panels or folders with full screen not their real size?

it is very difficult locating items in small size folders….. T.T

]]>

/////////////////////////////////////////////////

/////////////////////////////////////////////////

//————————————–

//   YAPI – Yet Another Page Indicator

//   HUD  – Head Up Display

//

//————————————–

// Author: Jappie Toutenhoofd

//————————————–

// Install:

//  – Set this script on event Position-Changed.

// Upgrade:

// – Delete old Hud-item.

//————————————–

//

// Features in v4.2

//  – Full Map   (optional)

//  – Set on any Container

//  – Fade out   (optional)  by TrianguloY

//  – max Frames Per Second

// new

//  – IMG-cache             (by TrianguloY)

//  – Config in item.tag not in script

//  – Styles: MAP – HUD has container ratio

//             PI – HUD has item      ratio

////////////////////////////////////////////////

// Create HUD shortcut – called when not found

function Initialsetup()

{ var config    = {};

  config.view  = {};

  config.view.HUD_style=”PI”;    // MAP or PI (MAP or PageIndicator-style)

  config.view.Full_Map=false;  // Draw all items (true or false)

config.color  = {};

 config.color.BG=0x33000000;  // Background

  config.color.HUD=0x77FFFFFF; // Current view

  config.color.PNL=0xEEFF1122; // Default for items in full map

  config.fading = {};

  config.fading.opt_Fade=false;    // true or false

  config.fading.timeUntilFade=1.9; // in seconds

  config.fading.timeFading=0.5;    // in seconds

  config.max_FPS=16; // max Frames Per Second

  config.runId=0;    // internal use

  var newHud = d.addShortcut(“HUD”,new Intent(),0,0);

  newHud.setTag(JSON.stringify(config));

  d.setItemZIndex(newHud.getId(),d.getItems().getLength());

  var pe = newHud.getProperties().edit();

  pe.setBoolean(“i.onGrid”,false);

  pe.setString(“i.pinMode”,”XY”);

  pe.setBoolean(“i.enabled”,false);

  pe.setBoolean(“s.iconVisibility”,false);

  pe.setBoolean(“s.labelVisibility”,false);

  pe.commit();

  return newHud;

}

// Create Image on cell-size

var d   = LL.getEvent().getContainer();

var hud =  d.getItemByLabel(“HUD”);

if (hud==null) { hud=Initialsetup();}

var cnf = JSON.parse(hud.getTag())||{};

if( !(“runId” in cnf)){ alert(“Oops, delete HUD \nSorry, this version is old or corrupt.”);}

// prevent event flouding

if ((LL.getEvent().getDate() – cnf.runId) < (1000 / cnf.max_FPS) )

  {return;}

var hudW = hud.getWidth();

var hudH = hud.getHeight();

var hud_ratio = hudW / hudH;

var bb   = d.getBoundingBox();

var cntW = bb.getRight() – bb.getLeft();

var cntH = bb.getBottom() – bb.getTop();

var cnt_ratio = cntW / cntH;

if (hud_ratio > cnt_ratio)

{ // Container is higher

  var cnt_scale = hudH / cntH;

}else{ // Container is wider

  var cnt_scale = hudW / cntW;

}

var p   = new Paint();

p.setAntiAlias(true);

if(cnf.view.HUD_style==”PI”)

{ // PageIndicator-style

var img = LL.createImage((cntW*cnt_scale),(cntH*cnt_scale));

}else

{ // Map-style

    var img = LL.createImage( hudW,hudH);

}

hud.setBoxBackground(img, “n”);

var c   = img.draw();

if(c==null)alert(img);

if(cnf.runId!= 0 && cnf.fading.opt_Fade == true)

{//don’t refresh

  c.drawBitmap(hud.getBoxBackground(“s”).bitmap, 0, 0, null);

}else

  {//refresh

    // Outer Hud base on BoundingBox

    p.setStyle(Paint.Style.FILL);

    p.setColor(cnf.color.BG);

    c.drawRect(0, 0, (cntW * cnt_scale), (cntH * cnt_scale), p);

    p.setStyle(Paint.Style.STROKE);

    p.setColor(cnf.color.HUD);

    p.setStrokeWidth(3);

    c.drawRect(0, 0, (cntW * cnt_scale), (cntH * cnt_scale), p);

    // Map based on Items

    if ( cnf.view.Full_Map )

    { var Mitems = d.getItems();

      for( var mi=0;mi

      {

        var cMi = Mitems.getAt(mi);

        if ( cMi.getProperties().getString(“i.pinMode”) == “NONE”)

        {

          // Map item size

          if (cMi.getProperties().getBoolean(“i.onGrid”))

          {

            var ItmL = (cMi.getCell().getLeft() * cMi.getParent().getCellWidth() ) – bb.getLeft();

            var ItmT = (cMi.getCell().getTop()  * cMi.getParent().getCellHeight()) – bb.getTop() ;

          }else{

            var ItmL = cMi.getPositionX() – bb.getLeft();

            var ItmT = cMi.getPositionY() – bb.getTop() ;

          }

          var ItmR = ItmL + ( cMi.getWidth() * cMi.getScaleX() );

          var ItmB = ItmT + ( cMi.getHeight() * cMi.getScaleY() );

          p.setStyle( Paint.Style.FILL);

          p.setColor(ItemColor(cMi));

          c.drawRect(ItmL * cnt_scale , ItmT * cnt_scale , ItmR * cnt_scale , ItmB * cnt_scale , p);

        } // pinMode

      } // for

    } // Full_Map

    hud.setBoxBackground(copyImage(img),”s”);

  }//refresh

// Inner Hud based on Current View

  var VwL = d.getPositionX() – bb.getLeft();

  var VwT = d.getPositionY() – bb.getTop() ;

  var VwR = VwL + ( d.getWidth()  / d.getPositionScale());

  var VwB = VwT + ( d.getHeight() / d.getPositionScale());

  p.setStyle(Paint.Style.FILL);

  p.setColor(cnf.color.HUD);

  c.drawRect(VwL * cnt_scale , VwT * cnt_scale , VwR * cnt_scale , VwB * cnt_scale , p);

  img.save();

  img.update();

//fade out

  hud.getProperties().edit().setInteger(“i.alpha”,255).commit();

  cnf.runId = LL.getEvent().getDate();

  hud.setTag(JSON.stringify(cnf));

  if (cnf.fading.opt_Fade)

  { var blowUp_Alpha = 255+((255 / cnf.fading.timeFading) * cnf.fading.timeUntilFade)

    setTimeout(function(){fadeOut(hud, blowUp_Alpha, cnf.runId);},(1000/ cnf.max_FPS) );

  } // opt_fade

  function fadeOut(hud,alpha,runId)

  { var old = JSON.parse(hud.getTag());

 if(old.runId != runId){return;}

    alpha-=255/ cnf.max_FPS / cnf.fading.timeFading;

    hud.getProperties().edit().setInteger(“i.alpha”,alpha>255?255:alpha<0?0:alpha).commit();

    if (alpha<=0)

    { cnf.runId = 0;

      hud.setTag(JSON.stringify(cnf));

      return;

    }

    setTimeout(function() {fadeOut(hud,alpha,runId);},(1000/cnf.max_FPS));

  } // fu fadeOut

  function copyImage(src)

  { var bmp_orig = src.getBitmap();

    var img_copy = LL.createImage(bmp_orig.getWidth(), bmp_orig.getHeight());

    img_copy.draw().drawBitmap(bmp_orig, 0, 0, null);

    img_copy.update();

    return img_copy;

  }

  function ItemColor(ItemC)

  { var Cimg = null;

    var px = 0x00000000;

    if ((ItemC.getType() == “Shortcut” || ItemC.getType() == “Folder”)

    && (ItemC.getProperties().getBoolean(“s.iconVisibility”)))

    { Cimg = ItemC.getCustomIcon()||ItemC.getDefaultIcon();

      try{var bmp = Cimg.getBitmap();}catch(e){alert(ItemC);}

      px  = bmp.getPixel(Cimg.getWidth()* .41, Cimg.getHeight()* .71);

      if (Color.alpha(px) < 255)

      {px = bmp.getPixel(Cimg.getWidth()* .62, Cimg.getHeight()* .37);

      }

      if (Color.alpha(px) < 255)

      {px = bmp.getPixel(Cimg.getWidth()* .48, Cimg.getHeight()* .51);

      }

    } // icon visible

    if (ItemC.getType() != ” StopPoint” ||  ItemC.getType() != “Unlocker” || Color.alpha(px) < 99 )

    { Cimg = ItemC.getBoxBackground(“n”);

      if (Cimg != null && !Cimg.isNinePatch())

      {var bmp = Cimg.getBitmap();

        px  = bmp.getPixel(Cimg.getWidth()* .5, Cimg.getHeight()* .5);

      }

    } // non stoppoint

    if (Color.alpha(px) < 50)

    {px = ItemC.getProperties().getBox(‘i.box’).getColor(‘c’,’n’);

    }

    if (Color.alpha(px) < 50)

    {px  = cnf.color.PNL;

    }

    return px;

  }

]]>