/** * listitemlive was clicked */ static int listitemlive_click(liqcell *self,liqcellclickeventargs *args, void *context) { // code required // 20090421_191821 lcuk : switch between yes and no, eventually make into icons char *cap = liqcell_getcaption(self); if( (strcasecmp(cap,"Y")==0) ) { //liqcell_setcaption(self,"N"); //liqcell_propsets( self, "textcolor", "rgb(255,0,0)" ); liqcell_setcaption(self,"N"); liqcell_propsets( self, "textcolor", "rgb(255,0,0)" ); desktopmanage_live_untickall(context); } else { // disable all others then set this one. desktopmanage_live_untickall(context); liqcell_setcaption(self,"Y"); liqcell_propsets( self, "textcolor", "rgb(0,255,0)" ); } return 1; }
/** * Create a numberbox ui component * @param caption The caption * @param datafefault Data caption * @return liqcell* The new numberbox */ liqcell *uinumberbox_create(const char *caption, const char *datadefault) { liqcell *self = liqcell_quickcreatewidget(caption,"uinumberbox", 800,80); if(self) { liqcell_propsets( self, "backcolor", "rgb(0,0,0)" ); liqcell *body = liqcell_quickcreatevis("body","frame", 10,10, 200,60); liqcell_setfont( body, liqfont_cache_getttf("/usr/share/fonts/nokia/nosnb.ttf", (24), 0) ); liqcell_propsets( body, "backcolor", "rgb(40,40,40)" ); liqcell_propsets( body, "textcolor", "rgb(255,255,255)" ); liqcell_setcaption(body, caption ); liqcell_child_insert( self, body ); liqcell *data = liqcell_quickcreatevis("data","frame", 220,5, 560,70); liqcell_setfont( data, liqfont_cache_getttf("/usr/share/fonts/nokia/nosnb.ttf", (42), 0) ); liqcell_propsets( data, "backcolor", "rgb(220,220,255)" ); liqcell_propsets( data, "textcolor", "rgb(0,0,0)" ); liqcell_setcaption(data, datadefault ); liqcell_child_insert( self, data ); } return self; }
/** * Create a txtmsgbox ui component, this is the development function * @param caption Body Caption * @param datadefault Caption of the data * @return liqcell* The new textbox */ liqcell *uitxtmsgbox_create(const char *caption, const char *datadefault) { liqcell *self = liqcell_quickcreatewidget(caption,"txtmsgbox", 800,220); if(self) { liqcell_propsets( self, "backcolor", "rgb(0,0,0)" ); liqcell *body = liqcell_quickcreatevis("body","frame", 10,10, 200,60); liqcell_setfont( body, liqfont_cache_getttf("/usr/share/fonts/nokia/nosnb.ttf", (24), 0) ); liqcell_propsets( body, "backcolor", "rgb(40,40,40)" ); liqcell_propsets( body, "textcolor", "rgb(255,255,255)" ); liqcell_setcaption(body, caption ); liqcell_child_insert( self, body ); liqcell *data = liqcell_quickcreatevis("data","textbox", 220,5, 560,210); liqcell_setfont( data, liqfont_cache_getttf("/usr/share/fonts/nokia/nosnb.ttf", (64), 0) ); liqcell_propsets( data, "backcolor", "rgb(220,255,220)" ); liqcell_propsets( data, "textcolor", "rgb(0,0,0)" ); liqcell_propseti( data, "wordwrap", 1 ); liqcell_propseti( data, "maxlength", 140 ); liqcell_handleradd_withcontext(data, "captionchange", (void*)uitxtmsgbox_captionchange ,self); liqcell_setcaption(data, datadefault ); liqcell_child_insert( self, data ); } return self; }
/** * create a new liqtasks_new widget */ liqcell *liqtasks_new_create() { liqcell *self = liqcell_quickcreatewidget("liqtasks_new", "form", 800, 480); if(!self) {liqapp_log("liqcell error not create 'liqtasks_new'"); return NULL; } // Optimization: The aim is to REDUCE the number of drawn layers and operations called. // Optimization: use only what you NEED to get an effect // Optimization: Minimal layers and complexity // Optimization: defaults: background, prefer nothing, will be shown through if there is a wallpaper // Optimization: defaults: text, white, very fast rendering //############################# editor:label liqcell *editor = liqcell_quickcreatevis("editor", "label", 0, 0, 800, 480); liqcell_setfont( editor, liqfont_cache_getttf("/usr/share/fonts/nokia/nosnb.ttf", (12), 0) ); liqcell_setcaption(editor, "backplane" ); liqcell_propsets( editor, "textcolor", "rgb(255,0,0)" ); liqcell_propsets( editor, "backcolor", "rgb(64,64,64)" ); liqcell_propseti( editor, "textalign", 2 ); liqcell_propseti( editor, "textaligny", 2 ); liqcell_child_append( self, editor); //############################# title:label liqcell *title = liqcell_quickcreatevis("title", "label", 0, 0, 800, 52); liqcell_setfont( title, liqfont_cache_getttf("/usr/share/fonts/nokia/nosnb.ttf", (29), 0) ); liqcell_setcaption(title, "New Task" ); liqcell_propsets( title, "textcolor", "rgb(255,255,255)" ); liqcell_propsets( title, "backcolor", "xrgb(128,128,128)" ); liqcell_propseti( title, "textalign", 0 ); liqcell_propseti( title, "textaligny", 0 ); liqcell_child_append( self, title); //############################# cmdsave:label liqcell *cmdsave = liqcell_quickcreatevis("cmdsave", "label", 594, 432, 206, 48); liqcell_setfont( cmdsave, liqfont_cache_getttf("/usr/share/fonts/nokia/nosnb.ttf", (29), 0) ); liqcell_setcaption(cmdsave, "Save" ); liqcell_propsets( cmdsave, "textcolor", "rgb(255,255,255)" ); liqcell_propsets( cmdsave, "backcolor", "xrgb(0,64,0)" ); liqcell_propsets( cmdsave, "bordercolor", "rgb(255,255,255)" ); liqcell_propseti( cmdsave, "textalign", 2 ); liqcell_propseti( cmdsave, "textaligny", 2 ); liqcell_handleradd_withcontext(cmdsave, "click", (void*)cmdsave_click, self ); liqcell_child_append( self, cmdsave); //liqcell_propsets( self, "backcolor", "rgb(0,0,0)" ); //liqcell_setimage( self , liqimage_cache_getfile( "/usr/share/liqbase/liqtasks/media/liqtasks_new_back.png",0,0,0) ); liqcell_handleradd_withcontext(self, "filter", (void*)liqtasks_new_filter ,self); liqcell_handleradd_withcontext(self, "refresh", (void*)liqtasks_new_refresh ,self); liqcell_handleradd_withcontext(self, "shown", (void*)liqtasks_new_shown ,self); liqcell_handleradd_withcontext(self, "resize", (void*)liqtasks_new_resize ,self); liqcell_handleradd_withcontext(self, "layout", (void*)liqtasks_new_layout ,self); //liqcell_handleradd_withcontext(self, "keypress", (void*)liqtasks_new_keypress,self ); //liqcell_handleradd_withcontext(self, "keyrelease", (void*)liqtasks_new_keyrelease ,self); //liqcell_handleradd_withcontext(self, "mouse", (void*)liqtasks_new_mouse,self ); //liqcell_handleradd_withcontext(self, "click", (void*)liqtasks_new_click ,self); //liqcell_handleradd_withcontext(self, "paint", (void*)liqtasks_new_paint ,self); // use only if required, heavyweight liqcell_handleradd_withcontext(self, "dialog_open", (void*)liqtasks_new_dialog_open ,self); liqcell_handleradd_withcontext(self, "dialog_close", (void*)liqtasks_new_dialog_close ,self); return self; }
int desktopmanage_live_tickone(liqcell *desktopmanage,char *name) { liqapp_log("desktopmanage: updating ticks"); liqcell *list1 = liqcell_child_lookup( desktopmanage,"list1"); //############################# backplane:picturebox liqcell *backplane =liqcell_child_lookup( list1,"backplane"); //############################# listitem:picturebox liqcell *listitem = liqcell_getlinkchild_visual(backplane); while(listitem) { //if(liqcell_getflagvisual(listitem)) { char *key=listitem->name; liqcell *listitemlive = liqcell_child_lookup( listitem,"listitemlive"); if( (strcasecmp(key,name)==0) ) { liqcell_setcaption(listitemlive,"Y"); liqcell_propsets( listitemlive, "textcolor", "rgb(0,255,,0)" ); } } listitem=liqcell_getlinknext_visual(listitem); } }
/** * Create a colorbox ui component * @param caption The caption * @param datafefault Data caption * @return liqcell* The new colorbox */ liqcell *uicolorbox_create(const char *caption, const char *datadefault) { liqcell *self = liqcell_quickcreatewidget(caption,"uicolorbox", 800,150); if(self) { liqcell_propsets( self, "backcolor", "rgb(0,0,0)" ); liqcell *body = liqcell_quickcreatevis("body","frame", 10,10, 200,130); liqcell_setfont( body, liqfont_cache_getttf("/usr/share/fonts/nokia/nosnb.ttf", (24), 0) ); liqcell_propsets( body, "backcolor", "rgb(40,40,40)" ); liqcell_propsets( body, "textcolor", "rgb(255,255,255)" ); liqcell_setcaption(body, caption ); liqcell_child_insert( self, body ); liqcell *data = liqcell_quickcreatevis("data","frame", 270,5, 460,140); liqcell_propsets( data, "backcolor", datadefault ); liqcell_handleradd_withcontext(data, "click", (void*)uicolorbox_click, self ); liqcell_child_insert( self, data ); } return self; }
/** * Create a infobar ui component * @param infotext Caption of the bar * @return liqcell* The new infobar */ liqcell *uiinfobar_create(const char *key, const char *infotext) { liqcell *self = liqcell_quickcreatewidget(key,"uiinfobar", 800,80); if(self) { liqcell_propsets( self, "backcolor", "rgb(0,0,0)" ); liqcell *body = liqcell_quickcreatevis("body","frame", 10,10, 780,60); liqcell_setfont( body, liqfont_cache_getttf("/usr/share/fonts/nokia/nosnb.ttf", (36), 0) ); liqcell_propsets( body, "backcolor", "rgb(40,40,40)" ); liqcell_propsets( body, "textcolor", "rgb(220,220,255)" ); liqcell_setcaption(body, infotext ); //liqcell_propseti( body, "selstart", 5 ); //liqcell_propseti( body, "sellength", 12 ); //liqcell_propseti( body, "cursorpos", 17 ); //liqcell_handleradd(body, "mouse", textbox_mouse); //liqcell_handleradd(body, "keypress", textbox_keypress); //liqcell_handleradd(body, "keyrelease", textbox_keyrelease); liqcell_child_insert( self, body ); } return self; }
int liqcalc_clearall(liqcell *self) { liqcell *calclcd = liqcell_child_lookup(self, "calclcd"); liqcell_setcaption(calclcd,"0"); // clear the calc cache return 0; }
/** * Create a titlebar ui component * @param key Name of the widget * @param title Title to display * @param description Describe what this titlebar is for * @return liqcell* The new titlebar */ liqcell *uititlebar_create(const char *key, const char *title, const char *description) { liqcell *self = liqcell_quickcreatewidget(key,"section", 800,100); if(self) { liqcell_propsets( self, "backcolor", "rgb(0,0,0)" ); //texturestrip_blu.jpg liqcell_setimage( self, liqimage_cache_getfile( "/usr/share/liqbase/libliqbase/media/texturestrip_dark.jpg",0,0,0) ); liqcell_propseti(self,"lockaspect",0); //liqcell_propsets( self, "backcolor", "xrgb(0,0,64)" ); liqcell_child_append( self, liqcell_quickcreatevis("app_icon", "icon", 5 ,10 , 90, 80 ) ); liqcell_child_append( self, liqcell_quickcreatevis("app_title", "label", 100 ,0 , 700, 55 ) ); liqcell_child_append( self, liqcell_quickcreatevis("app_desc", "label", 100 ,55 , 700, 40 ) ); liqcell_setimage( liqcell_child_lookup( self,"app_icon"), liqimage_cache_getfile( "/usr/share/liqbase/libliqbase/media/sun.png",0,0,1) ); liqcell_setfont( liqcell_child_lookup( self,"app_title"), liqfont_cache_getttf("/usr/share/fonts/nokia/nosnb.ttf", (40), 0) ); liqcell_setfont( liqcell_child_lookup( self,"app_desc"), liqfont_cache_getttf("/usr/share/fonts/nokia/nosnb.ttf", (18), 0) ); liqcell_propsets( liqcell_child_lookup( self,"app_title"), "textcolor", "rgb(255,255,255)" ); liqcell_propsets( liqcell_child_lookup( self,"app_desc"), "textcolor", "rgb(0,100,0)" ); liqcell_setcaption(liqcell_child_lookup( self,"app_title"), title ); liqcell_setcaption(liqcell_child_lookup( self,"app_desc"), description ); /* liqcell *clock = liqcell_quickcreatevis("clock", "time", 500,0, 200,100 ); //char buf[80]; //liqapp_format_strftime(buf,80,"%H:%M:%S"); //liqcell_setcaption( clock, buf); liqcell_propsets( clock,"timeformat","%H:%M:%S"); liqcell_propseti( clock,"textalign",2); liqcell_propseti( clock,"textaligny",2); liqcell_propsets( clock,"fontname", "/usr/share/fonts/nokia/nosnb.ttf" ); liqcell_propseti( clock,"fontsize", 32 ); liqcell_propsets( clock, "textcolor", "rgb(255,255,255)" ); // liqcell_handleradd(self, "mouse", widget_mouse); liqcell_child_append( self, clock ); */ } return self; }
static int search_click(liqcell *self, liqcelleventargs *args, liqcell *sheepdrawing_pictureselect) { // try to add this tag :) //liqcell *body = liqcell_child_lookup(sheepdrawing_pictureselect,"body"); char *searchterm = liqcell_getcaption(self); if(!searchterm || !*searchterm) return 1; liqcell_setcaption(self,""); return 1; }
int desktopmanage_updateticks(liqcell *desktopmanage) { liqapp_log("desktopmanage: updating ticks"); desktopmanage_live_untickall(desktopmanage); char *liveback = liqapp_pref_getvalue("liveback"); if(liveback && *liveback) { desktopmanage_live_tickone(desktopmanage,liveback); } liqcell *list1 = liqcell_child_lookup( desktopmanage,"list1"); //############################# backplane:picturebox liqcell *backplane =liqcell_child_lookup( list1,"backplane"); //############################# listitem:picturebox liqcell *listitem = liqcell_getlinkchild_visual(backplane); while(listitem) { //if(liqcell_getflagvisual(listitem)) { char *key=listitem->name; liqcell *listitemicon = liqcell_child_lookup( listitem,"listitemtick"); char *cap = liqcell_getcaption(listitemicon); if( !liqbase_playground_check_if_class_shown(key) ) { liqcell_setcaption(listitemicon,"N"); liqcell_propsets( listitemicon, "textcolor", "rgb(255,0,0)" ); } else { //liqapp_log("desktopmanage: tick yes '%s'",key); liqcell_setcaption(listitemicon,"Y"); liqcell_propsets( listitemicon, "textcolor", "rgb(0,255,0)" ); } } listitem=liqcell_getlinknext_visual(listitem); } liqapp_log("desktopmanage: updated ticks"); }
/** Construct a simplebar */ liqcell *simplebar_create() { liqcell *self = liqcell_quickcreatewidget("simplebar", "form", 600, 50); // exit if fail create if(!self) { liqapp_log("liqcell error not create 'simplebar'"); return NULL; } // create label liqcell *simple_label = liqcell_quickcreatevis("simple_label", "label", 20, 7, 200, 36); liqcell_setfont(simple_label, liqfont_cache_getttf("/usr/share/fonts/nokia/nosnb.ttf", (22), 0)); liqcell_setcaption(simple_label, "Body Caption:"); liqcell_propsets(simple_label, "textcolor", GREEN); liqcell_propseti(simple_label, "textalign", 1); liqcell_child_append(self, simple_label); // create textbox liqcell *simple_textbox = liqcell_quickcreatevis("simple_textbox", "textbox", 220, 7, 200, 36); liqcell_setfont(simple_textbox, liqfont_cache_getttf("/usr/share/fonts/nokia/nosnb.ttf", (22), 0) ); liqcell_setcaption(simple_textbox, ""); liqcell_propsets(simple_textbox, "textcolor", WHITE); liqcell_propsets(simple_textbox, "backcolor", BLACK); liqcell_propsets(simple_textbox, "bordercolor", GREEN); liqcell_propseti(simple_textbox, "textalign", 0); liqcell_propseti(simple_textbox, "textaligny", 2); liqcell_child_append(self, simple_textbox); // create buttom: Submit liqcell *simple_submit = liqcell_quickcreatevis("simple_submit", "commandbutton", 460, 7, 76, 32); liqcell_setfont(simple_submit, liqfont_cache_getttf("/usr/share/fonts/nokia/nosnb.ttf", (22), 0) ); liqcell_setcaption(simple_submit, "Submit"); liqcell_propsets(simple_submit, "textcolor", GREEN); liqcell_propsets(simple_submit, "backcolor", BLACK); liqcell_handleradd_withcontext(simple_submit, "click", simplebar_submit_click, self); liqcell_propseti(simple_submit, "textalign", 1); liqcell_child_append(self, simple_submit); return self; }
/** * listitemtick was clicked */ static int listitemtick_click(liqcell *self,liqcellclickeventargs *args, void *context) { // code required // 20090421_191821 lcuk : switch between yes and no, eventually make into icons char *cap = liqcell_getcaption(self); if( (strcasecmp(cap,"Y")==0) ) { liqcell_setcaption(self,"N"); liqcell_propsets( self, "textcolor", "rgb(255,0,0)" ); } else { liqcell_setcaption(self,"Y"); liqcell_propsets( self, "textcolor", "rgb(0,255,0)" ); } return 1; }
/** * liqmap widget shown - occurs once per lifetime */ static int liqmap_shown(liqcell *self,liqcelleventargs *args, liqcell *liqmap) { liqcell *liqmapzoom1 = liqcell_child_lookup(liqmap, "liqmapzoom1"); liqcell *cmdreset = liqcell_child_lookup(liqmap, "cmdreset"); liqcell *cmdchange = liqcell_child_lookup(liqmap, "cmdchange"); liqcell *title = liqcell_child_lookup(liqmap, "title"); liqmapzoom_settings_load(liqmapzoom1); // the owner might have specified a map filename char *selfn=liqcell_propgets( self, "liqmap_filename",NULL ); if( selfn && *selfn ) { // int liqmapzoom_changeimagefilename(liqcell *liqmapzoom,char *imagefilename); liqmapzoom_changeimagefilename(liqmapzoom1,selfn); liqcell_setcaption_printf(title, "liqmap :: %s", liqapp_filename_walkoverpath( selfn ) ); liqcell_setvisible(cmdreset,0); liqcell_setvisible(cmdchange,0); } else { char *mapfn = liqapp_pref_getvalue_def("liqmap_filename", "http://liqbase.net/papermaps/instructions.png" ); if(mapfn && *mapfn) { liqcell_setcaption_printf(title, "liqmap :: %s", liqapp_filename_walkoverpath( mapfn ) ); } else { liqcell_setcaption(title, "liqmap viewer" ); } liqcell_setvisible(cmdreset,0); liqcell_setvisible(cmdchange,1); } return 0; }
/** Simplebar Submit Button Action */ static int simplebar_submit_click(liqcell *self, liqcelleventargs *args, liqcell *simplebar) { // get textbox caption liqcell *textbox = liqcell_child_lookup(simplebar, "simple_textbox"); char *caption = liqcell_getcaption(textbox); // set the caption of body liqcell *app = liqcell_getlinkparent(simplebar); liqcell *body = liqcell_child_lookup(app, "body"); liqcell_setcaption(body, caption); return 1; }
/** * Create a textbox ui component * @return liqcell* The new textbox */ liqcell *textbox_create() { liqcell *self = liqcell_quickcreatewidget("textbox","form", 600,50); if(self) { liqcell_setfont( self, liqfont_cache_getttf("/usr/share/fonts/nokia/nosnb.ttf", (24), 0) ); //liqcell_propsets( self, "backcolor", "rgb(100,255,150)" ); //liqcell_propsets( self, "textcolor", "rgb(20,30,40)" ); //liqcell_propsets( self, "bordercolor", "rgb(255,255,255)" ); liqcell_propsets( self, "textcolor", "rgb(0,0,0)" ); //liqcell_setimage( self, liqimage_cache_getfile("/usr/share/liqbase/onedotzero/media/2_text_back.png", 0,0,1) ); liqcell_setimage( self, liqimage_cache_getfile("/usr/share/liqbase/onedotzero/media/2.message/message_input_field.png", 0,0,1) ); liqcell_propseti( self, "lockaspect", 0 ); //liqcell_propremoves( self, "bordercolor" ); //liqcell_propremoves( self, "backcolor" ); liqcell_propseti( self, "maxlength", 140 ); liqcell_propseti( self, "selstart", 0 ); liqcell_propseti( self, "sellength", 0 ); liqcell_propseti( self, "cursorpos", 0 ); liqcell_handleradd(self, "mouse", textbox_mouse); liqcell_handleradd(self, "keypress", textbox_keypress); liqcell_handleradd(self, "keyrelease", textbox_keyrelease); liqcell_handleradd(self, "resize", textbox_resize); // add vkbd liqcell *vkbd_command = liqcell_quickcreatevis("vkbd_command" , "commandbutton", 0, 0, 0, 0); liqcell_handleradd_withcontext(vkbd_command, "click", keyboard_show_button_click, self); liqcell_setfont(vkbd_command, liqfont_cache_getttf("/usr/share/fonts/nokia/nosnb.ttf", (12), 0)); liqcell_setcaption(vkbd_command, "ABC"); liqcell_propsets(vkbd_command, "backcolor", CYAN); liqcell_propsets(vkbd_command, "textcolor", BLACK); liqcell_propseti(vkbd_command, "textalign", 2); liqcell_propseti(vkbd_command, "textaligny", 2); liqcell_propseti(vkbd_command, "lockaspect", 1); liqcell_setvisible(vkbd_command,0); // Wed Aug 19 19:08:20 2009 lcuk : proper way would be checking for no keyboard.. liqcell_child_insert(self, vkbd_command); } return self; }
static int keyboard_show_button_click(liqcell *self,liqcellclickeventargs *args, liqcell *textbox) { liqcell *vkbd = liqcell_quickcreatevis("vkbd", "liqkeyboard", 0, 0, -1, -1); liqcell *vkbd_textbox = liqcell_child_lookup(vkbd, "liqkeyboard_textbox"); if(vkbd) { // 20090814_203451 lcuk : make sure the * follow into the vkb :) liqcell_propseti(vkbd_textbox,"textispassword", liqcell_propgeti(textbox,"textispassword",0) ); char *caption = liqcell_getcaption(textbox); liqcell_setcaption(vkbd_textbox, caption); liqcell_setdata(vkbd, textbox); liqcell_easyrun(vkbd); liqcell_release(vkbd); } return 1; }
/** * liqmap.cmdchange clicked */ static int cmdchange_click(liqcell *self,liqcellclickeventargs *args, liqcell *liqmap) { liqcell *liqmapzoom1 = liqcell_child_lookup(liqmap, "liqmapzoom1"); liqcell *title = liqcell_child_lookup(liqmap, "title"); liqcell * dialog = liqcell_quickcreatevis("dialog","dialog_selectimage",0,0,-1,-1); if(dialog) { // set dialog config options .. // ... // run dialog liqcell_easyrun(dialog); // process dialog results char *selfn=liqcell_propgets( dialog, "imagefilenameselected",NULL ); if( selfn && *selfn ) { // int liqmapzoom_changeimagefilename(liqcell *liqmapzoom,char *imagefilename); liqmapzoom_changeimagefilename(liqmapzoom1,selfn); liqcell_setcaption(title, liqapp_filename_walkoverpath( selfn ) ); } // release dialog liqcell_release(dialog); } return 0; }
int liqcalc_adddot(liqcell *self) { // append a . to the current caption // ensure its valid numerically first // if its "0", just use the new cap // if its blank, use "0." liqcell *calclcd = liqcell_child_lookup(self, "calclcd"); char *cap = liqcell_getcaption(calclcd); if(!cap)cap=""; if(*cap && !isdigit(*cap))cap=""; if(strcmp(cap,"0")==0)cap=""; if(strlen(cap)<9 && strstr(cap,".")==NULL) { if(!*cap)cap="0"; char newcap[32]; snprintf(newcap,sizeof(newcap),"%s%c",cap,'.'); liqcell_setcaption(calclcd,newcap); } return 0; }
liqcell *uitoolitem_create(char *key,char *caption,char *imagefilename,void (*handler)(),void *context) { liqcell *self = liqcell_quickcreatewidget(key,"form", 50,50); if(self) { if(caption && *caption) liqcell_setcaption( self, caption ); liqcell_setimage( self , liqimage_cache_getfile( imagefilename,0,0,1) ); liqcell_propseti( self , "lockaspect",1); //liqcell_propsets( self, "bordercolor", "rgb(100,0,0)" ); liqcell_handleradd_withcontext( self, "click", handler, context); } return self; }
int liqcalc_adddigit(liqcell *self,const char digit) { // append a digit to the current caption // ensure its valid numerically first // if its "0", just use the new cap // 8 DIGITS allowed, though length maybe 9 including . liqcell *calclcd = liqcell_child_lookup(self, "calclcd"); char *cap = liqcell_getcaption(calclcd); if(!cap)cap=""; if(*cap && !isdigit(*cap))cap=""; if(strcmp(cap,"0")==0)cap=""; int max=9; if(strstr(cap,".")==NULL)max--; if( (strlen(cap)<max) ) { char newcap[32]; snprintf(newcap,sizeof(newcap),"%s%c",cap,digit); liqcell_setcaption(calclcd,newcap); } return 0; }
static int liqrecentsketches_clear_click(liqcell *self, liqcellclickeventargs *args, liqcell *liqrecentsketches) { liqcell *backplane = liqcell_child_lookup( liqrecentsketches,"backplane"); liqcell *body = liqcell_child_lookup( backplane,"body"); liqcell *scroller = liqcell_child_lookup( liqrecentsketches,"scroller"); liqcell *knob = liqcell_child_lookup( scroller,"knob"); liqcell *selecttitle = liqcell_child_lookup( liqrecentsketches,"selecttitle"); liqcell *selectgroup = liqcell_child_lookup( liqrecentsketches,"selectgroup"); liqcell *selectbackplane = liqcell_child_lookup( selectgroup,"selectbackplane"); liqcell *selectcount = liqcell_child_lookup( liqrecentsketches,"selectcount"); int selectcnt = liqcell_child_countvisible(selectbackplane); // must clear all items liqcell_child_removeallvisual(selectbackplane); liqcell_child_selectnone_recursive(body,0); liqcell_setcaption(selecttitle,""); liqcell_setcaption_printf(selectcount, "%d items", 0); }
/** * create a new liqpostcard widget */ liqcell *liqpostcard_create() { liqcell *self = liqcell_quickcreatewidget("liqpostcard", "form", 800, 480); if(!self) {liqapp_log("liqcell error not create 'liqpostcard'"); return NULL; } // Optimization: The aim is to REDUCE the number of drawn layers and operations called. // Optimization: use only what you NEED to get an effect // Optimization: Minimal layers and complexity // Optimization: defaults: background, prefer nothing, will be shown through if there is a wallpaper // Optimization: defaults: text, white, very fast rendering //############################# tweetmessage:textbox liqcell *tweetmessage = liqcell_quickcreatevis("tweetmessage", "textbox", 56, 424, 502, 50); liqcell_setfont( tweetmessage, liqfont_cache_getttf("/usr/share/fonts/nokia/nosnb.ttf", (32), 0) ); liqcell_setcaption(tweetmessage, "" ); liqcell_propsets( tweetmessage, "textcolor", "rgb(0,0,0)" ); liqcell_propsets( tweetmessage, "backcolor", "rgb(255,255,255)" ); liqcell_propsets( tweetmessage, "bordercolor", "rgb(200,100,100)" ); liqcell_propseti( tweetmessage, "textalign", 0 ); liqcell_child_append( self, tweetmessage); //############################# picfront:picturebox liqcell *picfront = liqcell_quickcreatevis("picfront", "picturebox", 20, 112, 368, 186); //liqcell_setfont( picfront, liqfont_cache_getttf("/usr/share/fonts/nokia/nosnb.ttf", (12), 0) ); //liqcell_propsets( picfront, "textcolor", "rgb(0,0,0)" ); //liqcell_propsets( picfront, "backcolor", "rgb(64,0,0)" ); liqcell_propsets( picfront, "bordercolor", "rgb(200,100,100)" ); liqcell_handleradd_withcontext(picfront, "click", cmdpicchoose_click, self ); liqcell_child_append( self, picfront); //############################# messageback:picturebox liqcell *messageback = liqcell_quickcreatevis("messageback", "picturebox", 418, 112, 368, 186); //liqcell_setfont( messageback, liqfont_cache_getttf("/usr/share/fonts/nokia/nosnb.ttf", (12), 0) ); liqcell_propsets( messageback, "imagefilename", "/usr/share/liqbase/liqpostcard/media/liqpostcard_template.png" ); //liqcell_propsets( messageback, "textcolor", "rgb(0,0,0)" ); //liqcell_propsets( messageback, "backcolor", "rgb(64,0,0)" ); liqcell_propsets( messageback, "bordercolor", "rgb(200,100,100)" ); liqcell_handleradd_withcontext(messageback, "click", cmdmessagedraw_click, self ); liqcell_child_append( self, messageback); /* //############################# cmdmessagewrite:label liqcell *cmdmessagewrite = liqcell_quickcreatevis("cmdmessagewrite", "label", 418, 300, 176, 52); liqcell_setfont( cmdmessagewrite, liqfont_cache_getttf("/usr/share/fonts/nokia/nosnb.ttf", (29), 0) ); liqcell_setcaption(cmdmessagewrite, "Write" ); liqcell_propsets( cmdmessagewrite, "textcolor", "rgb(255,255,255)" ); liqcell_propsets( cmdmessagewrite, "backcolor", "xrgb(0,0,64)" ); liqcell_propsets( cmdmessagewrite, "bordercolor", "rgb(255,255,255)" ); liqcell_propseti( cmdmessagewrite, "textalign", 2 ); liqcell_handleradd_withcontext(cmdmessagewrite, "click", cmdmessagewrite_click, self ); liqcell_child_append( self, cmdmessagewrite); */ //############################# label5:label liqcell *label5 = liqcell_quickcreatevis("label5", "label", 56, 390, 368, 32); liqcell_setfont( label5, liqfont_cache_getttf("/usr/share/fonts/nokia/nosnb.ttf", (22), 0) ); liqcell_setcaption(label5, "Message" ); liqcell_propsets( label5, "textcolor", "rgb(255,255,255)" ); //liqcell_propsets( label5, "backcolor", "xrgb(0,64,64)" ); liqcell_propseti( label5, "textalign", 0 ); liqcell_child_append( self, label5); //############################# cmdmessagedraw:label liqcell *cmdmessagedraw = liqcell_quickcreatevis("cmdmessagedraw", "label", 514, 300, 176, 52); liqcell_setfont( cmdmessagedraw, liqfont_cache_getttf("/usr/share/fonts/nokia/nosnb.ttf", (29), 0) ); liqcell_setcaption(cmdmessagedraw, "Draw" ); liqcell_propsets( cmdmessagedraw, "textcolor", "rgb(255,255,255)" ); liqcell_propsets( cmdmessagedraw, "backcolor", "xrgb(0,0,64)" ); liqcell_propsets( cmdmessagedraw, "bordercolor", "rgb(255,255,255)" ); liqcell_propseti( cmdmessagedraw, "textalign", 2 ); liqcell_propseti( cmdmessagedraw, "textaligny", 2 ); liqcell_handleradd_withcontext(cmdmessagedraw, "click", cmdmessagedraw_click, self ); liqcell_child_append( self, cmdmessagedraw); //############################# cmdpicchoose:label liqcell *cmdpicchoose = liqcell_quickcreatevis("cmdpicchoose", "label", 112, 300, 176, 52); liqcell_setfont( cmdpicchoose, liqfont_cache_getttf("/usr/share/fonts/nokia/nosnb.ttf", (29), 0) ); liqcell_setcaption(cmdpicchoose, "Choose" ); liqcell_propsets( cmdpicchoose, "textcolor", "rgb(255,255,255)" ); liqcell_propsets( cmdpicchoose, "backcolor", "xrgb(0,0,64)" ); liqcell_propsets( cmdpicchoose, "bordercolor", "rgb(255,255,255)" ); liqcell_propseti( cmdpicchoose, "textalign", 2 ); liqcell_propseti( cmdpicchoose, "textaligny", 2 ); liqcell_handleradd_withcontext(cmdpicchoose, "click", cmdpicchoose_click, self ); liqcell_child_append( self, cmdpicchoose); //############################# cmdsend:label liqcell *cmdsend = liqcell_quickcreatevis("cmdsend", "label", 574, 418, 226, 62); liqcell_setfont( cmdsend, liqfont_cache_getttf("/usr/share/fonts/nokia/nosnb.ttf", (29), 0) ); liqcell_setcaption(cmdsend, "Send" ); liqcell_propsets( cmdsend, "textcolor", "rgb(255,255,255)" ); liqcell_propsets( cmdsend, "backcolor", "xrgb(0,64,0)" ); liqcell_propsets( cmdsend, "bordercolor", "rgb(255,255,255)" ); liqcell_propseti( cmdsend, "textalign", 2 ); liqcell_propseti( cmdsend, "textaligny", 2 ); liqcell_setenabled( cmdsend, 0 ); liqcell_handleradd_withcontext(cmdsend, "click", cmdsend_click, self ); liqcell_child_append( self, cmdsend); //############################# pichead:label liqcell *pichead = liqcell_quickcreatevis("pichead", "label", 20, 74, 368, 36); liqcell_setfont( pichead, liqfont_cache_getttf("/usr/share/fonts/nokia/nosnb.ttf", (22), 0) ); liqcell_setcaption(pichead, "Picture" ); liqcell_propsets( pichead, "textcolor", "rgb(255,255,255)" ); //liqcell_propsets( pichead, "backcolor", "xrgb(0,64,64)" ); liqcell_propseti( pichead, "textalign", 0 ); liqcell_child_append( self, pichead); //############################# messagehead:label liqcell *messagehead = liqcell_quickcreatevis("messagehead", "label", 418, 74, 368, 36); liqcell_setfont( messagehead, liqfont_cache_getttf("/usr/share/fonts/nokia/nosnb.ttf", (22), 0) ); liqcell_setcaption(messagehead, "Sketch" ); liqcell_propsets( messagehead, "textcolor", "rgb(255,255,255)" ); //liqcell_propsets( messagehead, "backcolor", "xrgb(0,64,64)" ); liqcell_propseti( messagehead, "textalign", 0 ); liqcell_child_append( self, messagehead); //############################# title:label liqcell *title = liqcell_quickcreatevis("title", "label", 0, 0, 800, 56); liqcell_setfont( title, liqfont_cache_getttf("/usr/share/fonts/nokia/nosnb.ttf", (29), 0) ); liqcell_setcaption(title, "postcard :: say hello." ); liqcell_propsets( title, "textcolor", "rgb(255,255,255)" ); liqcell_propsets( title, "backcolor", "xrgb(0,0,0)" ); liqcell_propseti( title, "textalign", 0 ); liqcell_child_append( self, title); //liqcell_propsets( self, "backcolor", "rgb(0,0,0)" ); liqcell_handleradd_withcontext(self, "refresh", liqpostcard_refresh ,self); liqcell_handleradd_withcontext(self, "shown", liqpostcard_shown ,self); liqcell_handleradd_withcontext(self, "resize", liqpostcard_resize ,self); liqcell_handleradd_withcontext(self, "keypress", liqpostcard_keypress,self ); liqcell_handleradd_withcontext(self, "keyrelease", liqpostcard_keyrelease ,self); liqcell_handleradd_withcontext(self, "mouse", liqpostcard_mouse,self ); liqcell_handleradd_withcontext(self, "click", liqpostcard_click ,self); //liqcell_handleradd_withcontext(self, "paint", liqpostcard_paint ,self); // use only if required, heavyweight liqcell_handleradd_withcontext(self, "dialog_open", liqpostcard_dialog_open ,self); liqcell_handleradd_withcontext(self, "dialog_close", liqpostcard_dialog_close ,self); //############################# cmdconfigure:label liqcell *cmdconfigure = liqcell_quickcreatevis("cmdconfigure", "label", 508, 0, 226, 56); liqcell_setfont( cmdconfigure, liqfont_cache_getttf("/usr/share/fonts/nokia/nosnb.ttf", (29), 0) ); liqcell_setcaption(cmdconfigure, "configure" ); liqcell_propsets( cmdconfigure, "textcolor", "rgb(255,255,255)" ); liqcell_propsets( cmdconfigure, "backcolor", "xrgb(0,64,0)" ); liqcell_propsets( cmdconfigure, "bordercolor", "rgb(255,255,255)" ); liqcell_propseti( cmdconfigure, "textalign", 2 ); liqcell_propseti( cmdconfigure, "textaligny", 2 ); liqcell_handleradd_withcontext(cmdconfigure, "click", cmdconfigure_click, self ); liqcell_child_append( self, cmdconfigure); //########## major sideways hack. classes need declarations and header files. int dialog_selectimage_getfirstphoto_filename(liqcell *self,char *buffer,int bufferlen); char selfn[FILENAME_MAX]={0}; liqcell *dialog_selectimage = liqcell_quickcreatevis("liqpostcard.choose","dialog_selectimage",0,0,-1,-1); dialog_selectimage_getfirstphoto_filename(dialog_selectimage,selfn,sizeof(selfn) ); if(selfn && *selfn) { liqcell_propsets( picfront, "imagefilename", selfn ); } liqcell_release(dialog_selectimage); liqcell_handlerrun(self,"refresh",NULL); return self; }
/** * liqpostcard.cmdsend clicked */ static int cmdsend_click(liqcell *self,liqcelleventargs *args, liqcell *liqpostcard) { liqcell *picfront = liqcell_child_lookup(liqpostcard, "picfront"); liqcell *messageback = liqcell_child_lookup(liqpostcard, "messageback"); liqcell *tweetmessage = liqcell_child_lookup(liqpostcard, "tweetmessage"); liqimage *imgfront = liqcell_getimage(picfront); liqimage *imgback = liqcell_getimage(messageback); liqsketch *sketch = liqcell_getsketch(messageback); char *tweet = liqcell_getcaption(tweetmessage); if(!imgfront) { liqapp_log("cmdsend_click need imgfront"); return -1; } if(!imgback) { liqapp_log("cmdsend_click need imgback"); return -1; } if(!sketch) { liqapp_log("cmdsend_click need sketch"); return -1; } if(!tweet || !*tweet) { liqapp_log("cmdsend_click need tweet"); return -1; } //liqpostcard_sendnow(liqpostcard,imgfront,imgback,sketch, tweet); liqpostcard_master = liqpostcard; liqcell * progress = liqcell_quickcreatevis("liqpostcard.liqpostcard_sendprogress","liqpostcard.liqpostcard_sendprogress",0,0,-1,-1); if(progress) { liqcell_easyrun(progress); int sentok = liqcell_propgeti(progress,"sentok",0); liqcell_release(progress); if(!sentok) { //return 0; } if(sentok) { liqcell_setcaption(tweetmessage,""); liqsketch_clear(sketch); } } liqpostcard_master = NULL; return 0; }
/** * create a new sheepdrawing_pictureselect widget */ liqcell *sheepdrawing_pictureselect_create() { liqcell *self = liqcell_quickcreatewidget("sheepdrawing_pictureselect", "form", 800, 480); if(!self) {liqapp_log("liqcell error not create 'sheepdrawing_pictureselect'"); return NULL; } // Optimization: The aim is to REDUCE the number of drawn layers and operations called. // Optimization: use only what you NEED to get an effect // Optimization: Minimal layers and complexity // Optimization: defaults: background, prefer nothing, will be shown through if there is a wallpaper // Optimization: defaults: text, white, very fast rendering //############################# title:label liqcell *title = liqcell_quickcreatevis("title", "label", 0, 0, 800, 56); liqcell_setfont( title, liqfont_cache_getttf("/usr/share/fonts/nokia/nosnb.ttf", (29), 0) ); liqcell_setcaption(title, "select image" ); liqcell_propsets( title, "textcolor", "rgb(255,255,255)" ); liqcell_propsets( title, "backcolor", "xrgb(0,0,0)" ); liqcell_propseti( title, "textalign", 0 ); liqcell_child_append( self, title); //############################# sheepdrawing_picturegrid:liqrecentphotos liqcell *sheepdrawing_picturegrid = liqcell_quickcreatevis("sheepdrawing_picturegrid", "sheepdrawing_picturegrid", 0, 58, 800, 420); liqcell_child_append( self, sheepdrawing_picturegrid); //############################# cmdselect:commandbutton liqcell *cmdselect = liqcell_quickcreatevis("cmdselect", "commandbutton", 580, 420, 220, 60); liqcell_setfont( cmdselect, liqfont_cache_getttf("/usr/share/fonts/nokia/nosnb.ttf", (29), 0) ); liqcell_setcaption(cmdselect, "Select" ); liqcell_propsets( cmdselect, "textcolor", "rgb(255,255,255)" ); liqcell_propsets( cmdselect, "backcolor", "xrgb(0,64,0)" ); liqcell_propsets( cmdselect, "bordercolor", "rgb(255,255,255)" ); liqcell_propseti( cmdselect, "textalign", 2 ); liqcell_handleradd_withcontext(cmdselect, "click", cmdselect_click, self ); //liqcell_setenabled(cmdselect,0); liqcell_child_append( self, cmdselect); liqcell *search = liqcell_quickcreatevis("search","textbox",200 ,self->h-40, 350, 60); liqcell_setfont( search, liqfont_cache_getttf("/usr/share/fonts/nokia/nosnb.ttf", (32), 0) ); liqcell_setcaption(search, "" ); liqcell_propsets( search, "textcolor", "rgb(255,255,255)" ); liqcell_propsets( search, "backcolor", "xrgb(100,140,100)" ); liqcell_handleradd_withcontext( search, "click", search_click, self ); liqcell_handleradd_withcontext( search, "captionchange", search_change, self ); liqcell_setvisible(search,0); // watch this! liqcell_child_append( self, search ); //liqcell_handleradd_withcontext(body, "keypress", sheepdrawing_pictureselect_keypress, self); //liqcell_handleradd_withcontext(body, "keyrelease", sheepdrawing_pictureselect_keyrelease,self); liqcell_handleradd_withcontext(self, "keypress", sheepdrawing_pictureselect_keypress, self); liqcell_handleradd_withcontext(self, "keyrelease", sheepdrawing_pictureselect_keyrelease,self); liqcell_handleradd_withcontext(self, "paint", sheepdrawing_pictureselect_paint, self); //liqcell_propsets( self, "backcolor", "rgb(0,0,0)" ); liqcell_handleradd_withcontext(self, "refresh", sheepdrawing_pictureselect_refresh ,self); liqcell_handleradd_withcontext(self, "shown", sheepdrawing_pictureselect_shown ,self); liqcell_handleradd_withcontext(self, "resize", sheepdrawing_pictureselect_resize ,self); //liqcell_handleradd_withcontext(self, "keypress", sheepdrawing_pictureselect_keypress,self ); //liqcell_handleradd_withcontext(self, "keyrelease", sheepdrawing_pictureselect_keyrelease ,self); liqcell_handleradd_withcontext(self, "mouse", sheepdrawing_pictureselect_mouse,self ); liqcell_handleradd_withcontext(self, "click", sheepdrawing_pictureselect_click ,self); //liqcell_handleradd_withcontext(self, "paint", sheepdrawing_pictureselect_paint ,self); // use only if required, heavyweight liqcell_handleradd_withcontext(self, "dialog_open", sheepdrawing_pictureselect_dialog_open ,self); liqcell_handleradd_withcontext(self, "dialog_close", sheepdrawing_pictureselect_dialog_close ,self); return self; }
int liqdialog_askv(const char *key,const char *question,const char *description,const char *footingnotes,int defaultoption,int answercount,const char ** answers) { int result; if(answercount==0) { const char **a=answers; while(*a++) { if(answercount>20)break; // for now, lets not get stuck... answercount++; } } if(!footingnotes)footingnotes="contact [email protected], lcuk on #maemo"; liqapp_log("Running Dialog with %i options",answercount); //##################################################### liqcell *self = liqcell_quickcreatewidget("testcode","form", 800,480); if(!self) { liqapp_log("could not allocate 'testcode'"); return 0; } liqcell *b = NULL; liqcell *c = NULL; //##################################################### label1 :: label //# This is the main widget constructor for this node b = liqcell_quickcreatevis("question","label", 0,0, 800,112 ); liqcell_setcaption(b, question); liqcell_setfont( b, liqfont_cache_getttf("/usr/share/fonts/nokia/nosnb.ttf", (26), 0) ); liqcell_propsets( b, "bordercolor", "rgb(100,100,100)" ); liqcell_propsets( b, "textcolor", "rgb(255,255,255)" ); liqcell_propseti( b, "textalign", 0 ); liqcell_propseti( b, "textaligny", 2 ); //liqcell_handleradd_withcontext(b,"click", (void*)label1_click, self); //liqcell_handleradd_withcontext(b,"mouse", (void*)label1_mouse, self); liqcell_child_append( self, b ); //##################################################### panel1 :: panel //# This is the main widget constructor for this panel b = liqcell_quickcreatevis("panel1","panel", 0,112, 800,480-112-56 ); liqcell_propsets( b, "bordercolor", "rgb(100,100,100)" ); //##################################################### int a; for(a=0;a<answercount;a++) { //############################# toolname:button liqcell *bt = liqcell_quickcreatevis(answers[a], "button", 0,0, 100, 56); liqcell_setfont( bt, liqfont_cache_getttf("/usr/share/fonts/nokia/nosnb.ttf", (32), 0) ); liqcell_setcaption(bt, answers[a] ); liqcell_propsets( bt, "textcolor", "rgb(255,255,255)" ); if(a==defaultoption) liqcell_propsets( bt, "backcolor", "xrgb(50,160,50)"); else liqcell_propsets( bt, "backcolor", "xrgb(50,100,50)"); liqcell_propsets( bt, "bordercolor", "rgb(255,255,255)" ); liqcell_propseti( bt, "textalign", 2 ); liqcell_propseti( bt, "textaligny", 2 ); liqcell_handleradd_withcontext(bt, "click", (void*)dialogbutton_click, self); liqcell_handleradd_withcontext(bt, "mouse", (void*)dialogbutton_mouse, self); liqcell_child_append( b, bt ); } liqcell_child_arrange_easytile( b ); liqcell_child_append( self, b ); //##################################################### label2 :: label //# This is the main widget constructor for this node b = liqcell_quickcreatevis("footer","label", 0,424, 800,56 ); liqcell_setcaption(b, footingnotes); liqcell_setfont( b, liqfont_cache_getttf("/usr/share/fonts/nokia/nosnb.ttf", (26), 0) ); liqcell_propsets( b, "bordercolor", "rgb(100,100,100)" ); liqcell_propsets( b, "textcolor", "rgb(255,255,255)" ); liqcell_propseti( b, "textalign", 2 ); liqcell_propseti( b, "textaligny", 2 ); //liqcell_handleradd_withcontext(b,"click", (void*)label2_click, self); //liqcell_handleradd_withcontext(b,"mouse", (void*)label2_mouse, self); liqcell_child_append( self, b ); liqcell_propseti(self,"dialog_zoomed",1 ); liqcell_easyrun(self); liqcell_release(self); return result; }
liqcell *liqrecentsketches_tagging_create() { liqcell *self = liqcell_quickcreatewidget("liqrecentsketches_tagging","form", 800,480); if(self) { // liqcell_propsets( self, "backcolor", "rgb(255,255,255)" ); //liqcell_propseti(self,"autorotate",1); { liqcell *backplane = liqcell_quickcreatevis("backplane","frame",self->w*0.1 ,0, self->w*0.7,self->h); liqcell_child_insert( self, backplane ); liqcell *body = liqcell_quickcreatevis("body","frame",0 ,0, backplane->w,self->h); liqcell_child_insert( backplane, body ); // liqcell_scan_folder_for_images(self,buf); //liqcell_propsets( self, "monitorpath" , buf); //liqcell_propsets( self, "watchpattern" , "liq.*"); // int cnt=0; // liqcell *c=NULL; //liqcell_child_arrange_makegrid(body,3,3); //c=liqcell_lastchild(body); liqcell_handleradd_withcontext(body, "mouse", liqcell_easyhandler_kinetic_mouse, self ); liqcell_handleradd_withcontext(body, "move", liqrecentsketches_body_move, self ); //liqcell_handleradd(self, "click", float_click); //############################# scroller:label liqcell *scroller = liqcell_quickcreatevis("scroller", "label", 0,56, self->w*0.1, self->h-56); //liqcell_setfont( scroller, liqfont_cache_getttf("/usr/share/fonts/nokia/nosnb.ttf", (29), 0) ); //liqcell_setcaption(scroller, "Scroller" ); //liqcell_propsets( scroller, "imagefilename", "media/titlebanner_left.png" ); //liqcell_propsets( scroller, "textcolor", "rgb(255,255,0)" ); liqcell_propsets( scroller, "backcolor", "rgb(0,0,60)" ); liqcell_propseti( scroller, "textalign", 0 ); liqcell_handleradd_withcontext(scroller, "mouse", liqrecentsketches_scroller_mouse , self ); liqcell_child_append( self, scroller); //############################# knob:label liqcell *knob = liqcell_quickcreatevis("knob", "label", 0,0, 200, 50); //liqcell_setfont( knob, liqfont_cache_getttf("/usr/share/fonts/nokia/nosnb.ttf", (29), 0) ); //liqcell_setcaption(knob, "knob" ); liqcell_propsets( knob, "imagefilename", "media/blob.png" ); liqcell_propsets( knob, "textcolor", "rgb(255,255,0)" ); liqcell_propsets( knob, "backcolor", "rgb(0,60,0)" ); liqcell_propseti( knob, "textalign", 0 ); liqcell_child_append( scroller, knob); // 20090619_221734 lcuk : VERY strange, if I compile with this block in place, when run from the console its ok // 20090619_221809 lcuk : but when run from the icon the app closes and does not run // 20090619_221830 lcuk : very curious //#ifdef USE_INOTIFY //############################# timer1:liqtimer liqcell *timer1=liqcell_quickcreatevis("timer1", "liqtimer", 0,0, 0,0 ); // store ourselves on the tag for use later // this does feel like a workaround, but hell, it works! //liqcell_settag(timer1,liqcell_hold(self)); liqcell_propseti(timer1,"timerinterval", 1 ); liqcell_handleradd_withcontext(timer1,"timertick",timer_tick,self); liqcell_setenabled(timer1,0); liqcell_child_insert( self,timer1); //#endif //############################# cmdselclear:button liqcell *cmdselclear = liqcell_quickcreatevis("cmdselclear", "button", self->w*0.8,self->h-56-56-244-56-28, self->w*0.05, 28); liqcell_setfont( cmdselclear, liqfont_cache_getttf("/usr/share/fonts/nokia/nosnb.ttf", (15), 0) ); liqcell_setcaption(cmdselclear, "Clear" ); //liqcell_propsets( cmdselclear, "imagefilename", "media/titlebanner_left.png" ); liqcell_propsets( cmdselclear, "textcolor", "rgb(255,255,0)" ); liqcell_propsets( cmdselclear, "backcolor", "xrgb(0,60,60)" ); liqcell_propseti( cmdselclear, "textalign", 2 ); liqcell_propseti( cmdselclear, "textaligny", 2 ); liqcell_child_append( self, cmdselclear); liqcell_handleradd_withcontext(cmdselclear, "click", liqrecentsketches_clear_click , self ); //############################# cmdselinv:button liqcell *cmdselinv = liqcell_quickcreatevis("cmdselinv", "button", self->w*0.95,self->h-56-56-244-56-28, self->w*0.05, 28); liqcell_setfont( cmdselinv, liqfont_cache_getttf("/usr/share/fonts/nokia/nosnb.ttf", (15), 0) ); liqcell_setcaption(cmdselinv, "Inv" ); //liqcell_propsets( cmdselinv, "imagefilename", "media/titlebanner_left.png" ); liqcell_propsets( cmdselinv, "textcolor", "rgb(255,255,0)" ); liqcell_propsets( cmdselinv, "backcolor", "xrgb(60,0,60)" ); liqcell_propseti( cmdselinv, "textalign", 2 ); liqcell_propseti( cmdselinv, "textaligny", 2 ); liqcell_child_append( self, cmdselinv); //liqcell_handleradd_withcontext(cmdselinv, "click", liqrecentsketches_clear_click , self ); liqcell_setvisible(cmdselinv,0); //############################# selecttitle:textbox liqcell *selecttitle = liqcell_quickcreatevis("selecttitle", "textbox", self->w*0.8,self->h-56-56-244-56, self->w*0.1, 56); liqcell_setfont( selecttitle, liqfont_cache_getttf("/usr/share/fonts/nokia/nosnb.ttf", (29), 0) ); liqcell_setcaption(selecttitle, "" ); //liqcell_propsets( selecttitle, "imagefilename", "media/titlebanner_left.png" ); liqcell_propsets( selecttitle, "textcolor", "rgb(255,255,255)" ); liqcell_propsets( selecttitle, "backcolor", "rgb(0,60,0)" ); liqcell_propsets( selecttitle, "bordercolor", "xrgb(255,255,255)" ); liqcell_propseti( selecttitle, "textalign", 2 ); liqcell_propseti( selecttitle, "textaligny", 2 ); liqcell_child_append( self, selecttitle); //############################# selectgroup:box liqcell *selectgroup = liqcell_quickcreatevis("selectgroup", "box", self->w*0.8,self->h-56-56-244, self->w*0.1, 244); liqcell_propsets( selectgroup, "backcolor", "xrgb(0,40,0)" ); liqcell_propsets( selectgroup, "bordercolor", "xrgb(255,255,255)" ); liqcell_child_append( self, selectgroup); //############################# selectbackplane:box liqcell *selectbackplane = liqcell_quickcreatevis("selectbackplane", "box", self->w*0.8,self->h-56-56-244, self->w*0.1, 244); //liqcell_propsets( selectbackplane, "backcolor", "xrgb(0,40,0)" ); //liqcell_propsets( selectbackplane, "bordercolor", "xrgb(255,255,255)" ); liqcell_child_append( selectgroup, selectbackplane); liqcell_handleradd_withcontext(selectbackplane, "mouse", liqcell_easyhandler_kinetic_mouse, self ); //############################# selectcount:label liqcell *selectcount = liqcell_quickcreatevis("selectcount", "label", self->w*0.8,self->h-56-56, self->w*0.1, 56); liqcell_setfont( selectcount, liqfont_cache_getttf("/usr/share/fonts/nokia/nosnb.ttf", (20), 0) ); liqcell_setcaption(selectcount, "0 items" ); //liqcell_propsets( selectcount, "imagefilename", "media/titlebanner_left.png" ); liqcell_propsets( selectcount, "textcolor", "rgb(255,255,255)" ); liqcell_propsets( selectcount, "backcolor", "rgb(0,0,0)" ); liqcell_propsets( selectcount, "bordercolor", "xrgb(255,255,255)" ); liqcell_propseti( selectcount, "textalign", 2 ); liqcell_propseti( selectcount, "textaligny", 2 ); liqcell_child_append( self, selectcount); //############################# cmdedit:button liqcell *cmdedit = liqcell_quickcreatevis("cmdedit", "button", self->w*0.8,self->h-56, self->w*0.1, 56); liqcell_setfont( cmdedit, liqfont_cache_getttf("/usr/share/fonts/nokia/nosnb.ttf", (20), 0) ); liqcell_setcaption(cmdedit, "Save" ); //liqcell_propsets( cmdedit, "imagefilename", "media/titlebanner_left.png" ); liqcell_propsets( cmdedit, "textcolor", "rgb(255,255,0)" ); liqcell_propsets( cmdedit, "backcolor", "xrgb(0,0,60)" ); liqcell_propseti( cmdedit, "textalign", 2 ); liqcell_propseti( cmdedit, "textaligny", 2 ); liqcell_child_append( self, cmdedit); liqcell_handleradd_withcontext(cmdedit, "click", liqrecentsketches_save_click , self ); } liqcell_handleradd_withcontext(self, "shown", widget_shown ,self); } return self; }
static int liqrecentsketches_sketch_insert(liqcell *self,char *filenamebuffer) { liqcell *backplane = liqcell_child_lookup( self,"backplane"); liqcell *body = liqcell_child_lookup( backplane,"body"); //liqapp_log("gary: [[%s]]",filenamebuffer); struct pagefilename pfn; if( (pagefilename_breakapart(&pfn,filenamebuffer) == 0) ) { char buf[FILENAME_MAX]; snprintf(buf,sizeof(buf),"%s%s",pfn.filedate,pfn.filetitle); //liqapp_log("ins 1 %s",filenamebuffer); // valid file char b[255]={0}; snprintf(b,5,"%s",pfn.filedate); b[4]='\0'; liqcell *xy=liqcell_child_lookup(body,b); if(!xy) { //liqapp_log("ins 2 %s",filenamebuffer); xy=liqcell_quickcreatevis(b,"year", 0,0, (backplane->w),backplane->h/15); liqcell_child_insertsortedbyname(body,xy,0); //snprintf(b,5,"%s",pfn.filedate); b[4]='\0'; //brk=addframe(xy,b,(self->w),self->h/15); // year break tile //brk->style=odd; } //liqapp_log("ins 3 %s",filenamebuffer); snprintf(b,3,"%s",&pfn.filedate[4]); b[2]='\0'; liqcell *xm=liqcell_child_lookup(xy,b); if(!xm) { //liqapp_log("ins 4 %s",filenamebuffer); xm=liqcell_quickcreatevis(b,"month", 0,0, (backplane->w),backplane->h/15); liqcell_child_insertsortedbyname(xy,xm,0); //snprintf(b,7,"%s",pfn.filedate); b[6]='\0'; //brk=addframe(xm,b,(self->w),self->h/15); // month break tile //brk->style=odd; } //liqapp_log("ins 5 %s",filenamebuffer); snprintf(b,3,"%s",&pfn.filedate[6]); b[2]='\0'; liqcell *xd=liqcell_child_lookup(xm,b); if(!xd) { //liqapp_log("ins 6 %s",filenamebuffer); xd=liqcell_quickcreatevis(b,"day", 0,0, (backplane->w),backplane->h/15); liqcell_child_insertsortedbyname(xm,xd,0); //liqapp_log("ins 7 %s",filenamebuffer); // add title header snprintf(b,10,"_%s",pfn.filedate); b[9]='\0'; liqcell *brk=liqcell_quickcreatevis(b,"label", 0,0, (backplane->w),backplane->h/15); liqcell_setfont( brk, liqfont_cache_getttf("/usr/share/fonts/nokia/nosnb.ttf", (24), 0) ); snprintf(b,9,"%s",pfn.filedate); b[8]='\0'; liqcell_setcaption(brk, b ); liqcell_propsets( brk, "textcolor", "rgb(255,255,255)" ); liqcell_propsets( brk, "backcolor", "rgb(0,0,100)"); liqcell_propseti( brk, "textalign", 0 ); liqcell_child_append(xd,brk); } //liqapp_log("ins 8 %s",filenamebuffer); liqcell *c = liqcell_quickcreatevis(buf, "sketch", 0,0,(backplane->w/5),(backplane->h/4) ); liqcell_propseti(c,"lockaspect",1); liqcell_propsets(c,"sketchfilename",filenamebuffer); liqcell_handleradd_withcontext(c,"click",liqrecentsketches_sketchitem_click,self); // liqcell_propseti(c,"autorotate",1); liqcell_child_insertsortedbyname( xd, c,0); //liqapp_log("ins 9 %s",filenamebuffer); liqcell_setsize(xd, backplane->w, backplane->h/15 ); liqcell_child_arrange_autoflow(xd); liqcell_child_arrange_easycol(xm); liqcell_child_arrange_easycol(xy); liqcell_child_arrange_easycol(body); //liqcell_setsize(body,body->w,body->h-700); liqcell_setsize(body,body->w,body->h); // hmm random offset needed only for huge number of sketches. } }
liqcell *liqrecentsketches_classic_create() { liqcell *self = liqcell_quickcreatewidget("liqrecentsketches_classic","form", 800,480); if(self) { // liqcell_propsets( self, "backcolor", "rgb(255,255,255)" ); //liqcell_propseti(self,"autorotate",1); char buf[FILENAME_MAX]; snprintf(buf,sizeof(buf),"%s/sketches",app.userdatapath); if(liqapp_pathexists(buf)) { liqapp_log("recent sketches buf=%s",buf); liqcell *backplane = liqcell_quickcreatevis("backplane","frame",self->w*0.1 ,0, self->w*0.9,self->h); liqcell_child_insert( self, backplane ); liqcell *body = liqcell_quickcreatevis("body","frame",0 ,0, self->w*0.9,self->h); liqcell_child_insert( backplane, body ); liqcell_scan_folder_for_images(self,buf); liqcell_propsets( self, "monitorpath" , buf); //liqcell_propsets( self, "watchpattern" , "liq.*"); int cnt=0; liqcell *c=NULL; //liqcell_child_arrange_makegrid(body,3,3); c=liqcell_lastchild(body); liqcell_handleradd_withcontext(body, "mouse", liqcell_easyhandler_kinetic_mouse, self ); liqcell_handleradd_withcontext(body, "move", liqrecentsketches_body_move, self ); //liqcell_handleradd(self, "click", float_click); //############################# scroller:label liqcell *scroller = liqcell_quickcreatevis("scroller", "label", 0,56, self->w*0.1, self->h-56); //liqcell_setfont( scroller, liqfont_cache_getttf("/usr/share/fonts/nokia/nosnb.ttf", (29), 0) ); //liqcell_setcaption(scroller, "Scroller" ); //liqcell_propsets( scroller, "imagefilename", "media/titlebanner_left.png" ); //liqcell_propsets( scroller, "textcolor", "rgb(255,255,0)" ); liqcell_propsets( scroller, "backcolor", "rgb(0,0,60)" ); //liqcell_propseti( scroller, "textalign", 0 ); // if(!liqcell_getcontent(scroller)) //liqcell_setcontent(scroller, body ); // amusing effect and shows entire wall but really slugs it up // to be usable it should just cache the picture in this case // since the data changes rarely but navigation is frequent liqcell_handleradd_withcontext(scroller, "mouse", liqrecentsketches_scroller_mouse , self ); liqcell_child_append( self, scroller); //############################# knob:label liqcell *knob = liqcell_quickcreatevis("knob", "label", 0,0, 200, 50); //liqcell_setfont( knob, liqfont_cache_getttf("/usr/share/fonts/nokia/nosnb.ttf", (29), 0) ); //liqcell_setcaption(knob, "knob" ); // liqcell_propsets( knob, "imagefilename", "media/blob.png" ); //liqcell_propsets( knob, "textcolor", "rgb(255,255,0)" ); liqcell_propsets( knob, "backcolor", "rgba(0,60,0,128)" ); liqcell_propseti( knob, "textalign", 0 ); liqcell_child_append( scroller, knob); liqcell_setpos(body,0,-(body->h-backplane->h)); // 20090619_221734 lcuk : VERY strange, if I compile with this block in place, when run from the console its ok // 20090619_221809 lcuk : but when run from the icon the app closes and does not run // 20090619_221830 lcuk : very curious //#ifdef USE_INOTIFY //############################# timer1:liqtimer liqcell *timer1=liqcell_quickcreatevis("timer1", "liqtimer", 0,0, 0,0 ); // store ourselves on the tag for use later // this does feel like a workaround, but hell, it works! //liqcell_settag(timer1,liqcell_hold(self)); liqcell_propseti(timer1,"timerinterval", 1 ); liqcell_handleradd_withcontext(timer1,"timertick",timer_tick,self); liqcell_setenabled(timer1,1); liqcell_child_insert( self,timer1); //#endif //############################# cmdnew:label liqcell *cmdnew = liqcell_quickcreatevis("cmdnew", "button", self->w*0.8,self->h-56, self->w*0.1, 56); liqcell_setfont( cmdnew, liqfont_cache_getttf("/usr/share/fonts/nokia/nosnb.ttf", (29), 0) ); liqcell_setcaption(cmdnew, "New" ); //liqcell_propsets( cmdnew, "imagefilename", "media/titlebanner_left.png" ); liqcell_propsets( cmdnew, "textcolor", "rgb(255,255,255)" ); liqcell_propsets( cmdnew, "backcolor", "xrgb(0,60,0)" ); liqcell_propsets( cmdnew, "bordercolor", "xrgb(255,255,255)" ); liqcell_propseti( cmdnew, "textalign", 2 ); liqcell_propseti( cmdnew, "textaligny", 2 ); liqcell_child_append( self, cmdnew); liqcell_handleradd_withcontext(cmdnew, "click", liqrecentsketches_new_click , self ); //############################# cmdedit:label liqcell *cmdedit = liqcell_quickcreatevis("cmdedit", "button", self->w*0.9,self->h-56, self->w*0.1, 56); liqcell_setfont( cmdedit, liqfont_cache_getttf("/usr/share/fonts/nokia/nosnb.ttf", (29), 0) ); liqcell_setcaption(cmdedit, "Edit" ); //liqcell_propsets( cmdedit, "imagefilename", "media/titlebanner_left.png" ); liqcell_propsets( cmdedit, "textcolor", "rgb(255,255,255)" ); liqcell_propsets( cmdedit, "backcolor", "xrgb(0,0,60)" ); liqcell_propsets( cmdedit, "bordercolor", "xrgb(255,255,255)" ); liqcell_propseti( cmdedit, "textalign", 2 ); liqcell_propseti( cmdedit, "textaligny", 2 ); liqcell_child_append( self, cmdedit); liqcell_handleradd_withcontext(cmdedit, "click", liqrecentsketches_edit_click , self ); } /* //############################# title:label liqcell *title = liqcell_quickcreatevis("title", "label", 0,0, 200, 50); liqcell_setfont( title, liqfont_cache_getttf("/usr/share/fonts/nokia/nosnb.ttf", (29), 0) ); liqcell_setcaption(title, "Sketches" ); liqcell_propsets( title, "imagefilename", "media/titlebanner_left.png" ); liqcell_propsets( title, "textcolor", "rgb(255,255,0)" ); //liqcell_propsets( title, "backcolor", "rgb(0,0,60)" ); liqcell_propseti( title, "textalign", 0 ); liqcell_child_append( self, title); */ } return self; }
static int textbox_keypress(liqcell *self, liqcellkeyeventargs *args,void *context) { //liqcell *base = liqcell_getbasewidget(self); // i can then use my base to access members as defined by the widget itself //liqcell_setcaption(self,args->keystring); int selstart = liqcell_propgeti( self,"selstart",-1); int sellength = liqcell_propgeti( self,"sellength",0); int cursorpos = liqcell_propgeti( self,"cursorpos",-1); char *caption = liqcell_getcaption(self); int captionlen = strlen(caption); char *key = args->keystring; int keylen = strlen(key); if(selstart>captionlen){ selstart=captionlen;sellength=0; } if(selstart+sellength>captionlen) { sellength = captionlen-selstart; } if(selstart>=0 && (keylen>0)) { liqapp_log("keypress: %3i '%c'",(int)(*key),*key,args->keycode); if(*key==8) { // delete ;) key=""; keylen=0; if(selstart>0 && sellength==0) { selstart--; sellength++; } } if(*key==13) { // click event! liqapp_log("keypress return! click event firing!"); key=""; keylen=0; liqcell_handlerrun(self,"click",NULL); return 1; } // //liqcell_setcaption(self,args->keystring); char *aftersel=&caption[selstart+sellength]; int aftersellen = strlen(aftersel); // then the result is start..selstart // newbit // selstart+sellen..end int reqd = selstart + keylen + aftersellen + 1; char *buff=malloc(reqd); char *block=buff; if(buff) { if(selstart>0) { strncpy(block,caption,selstart); block+=selstart; } if(keylen>0) { strncpy(block,key,keylen); block+=keylen; } if(aftersellen>0) { strncpy(block,aftersel,aftersellen); block+=aftersellen; } *block=0; liqcell_setcaption(self,buff); free(buff); } liqcell_propseti( self, "selstart", selstart + keylen); liqcell_propseti( self, "sellength", 0 ); liqcell_propseti( self, "cursorpos", selstart + keylen); liqcell_handlerrun(self,"selchange",NULL); } }