001package polaris.sdk.ui.controls;
002import polaris.sdk.ui.*;
003
004public class Paginator extends Widget {private int page=1,pages=10;public Paginator(){w=300;h=34;focusable=true;}
005 public Paginator pages(int n){if(n<1)throw new IllegalArgumentException("pages");pages=n;page=Math.min(page,n);return this;}public int page(){return page;}public void page(int n){int next=Math.max(1,Math.min(pages,n));if(next!=page){page=next;changed();}}
006 @Override protected void paint(Painter p){surface(p);p.text("‹",ax+12,ay+7,18,page>1?theme().accent:theme().muted);p.text("›",ax+w-24,ay+7,18,page<pages?theme().accent:theme().muted);String t=page+" / "+pages;p.text(t,ax+(w-p.textWidth(t,13))/2,ay+10,13,ink());}
007 @Override public void event(UiEvent e){if(e.type==UiEvent.Type.UP){page(page+(e.x<ax+w/2?-1:1));}else if(e.type==UiEvent.Type.KEY){if(e.key==37)page(page-1);else if(e.key==39)page(page+1);else if(e.key==36)page(1);else if(e.key==35)page(pages);else return;e.handled=true;}}
008}