ACONTROLP accb( AWINDOWP win, int x, int y, int w, int h, char * textv, byte checked ){ //-- Validate Minimum Size if (h<agdp()*16) h=agdp()*16; if (w<agdp()*16) w=agdp()*16; //-- Limit Title Length char title[128]; snprintf(title,128,"%s",textv); //-- Initializing Button Data ACCBDP d = (ACCBDP) malloc(sizeof(ACCBD)); memset(d,0,sizeof(ACCBD)); //-- Save Touch Message & Set Stats d->checked = checked; d->focused = 0; d->pushed = 0; //-- Initializing Canvas ag_canvas(&d->control,w,h); //-- Draw Control Background ag_draw_ex(&d->control,&win->c,0,0,x,y,w,h); //-- Calculate Position & Size int minpad = 5*agdp(); d->chkS = (agdp()*10); int txtW = w - ((d->chkS+6)+(agdp()*4)); int txtX = (d->chkS+(agdp()*4)); int txtH = ag_txtheight(txtW,title,0); int txtY = ((h-txtH) / 2); if (txtY<1) txtY = 1; ag_textf(&d->control,txtW,minpad+txtX,txtY,title,acfg()->textbg,0); ag_text(&d->control,txtW,minpad+txtX-1,txtY-1,title,acfg()->textfg,0); //-- Initializing Control ACONTROLP ctl = malloc(sizeof(ACONTROL)); ctl->ondestroy= &accb_ondestroy; ctl->oninput = &accb_oninput; ctl->ondraw = &accb_ondraw; ctl->onblur = &accb_onblur; ctl->onfocus = &accb_onfocus; ctl->win = win; ctl->x = x; ctl->y = y; ctl->w = w; ctl->h = h; ctl->forceNS = 0; ctl->d = (void *) d; aw_add(win,ctl); return ctl; }
//INTENT_TOGGLE toggle usb intentResult* intent_toggle(int argc, char *argv[]) { assert_ui_if_fail(argc == 1); assert_ui_if_fail(argv[0] != NULL); int intent_type = atoi(argv[0]); int result = 0; if (intent_type == 0) { umount_usb(); ensure_path_unmounted("/sdcard"); if (acfg()->sd_ext == 1){ ensure_path_unmounted("/external_sd"); } return miuiIntent_result_set(result, (char*)"ok"); } //wait for usb connected //while (is_usb_connected()) ; if (is_usb_connected()) { mount_usb(); return miuiIntent_result_set(result, (char*)"mounted"); } LOGE("USB not connect\n"); umount_usb(); ensure_path_unmounted("/sdcard"); if (acfg()->sd_ext == 1) { ensure_path_unmounted("/external_sd"); } return miuiIntent_result_set(result,(char*)"ok"); }
void aw_about_dialog(AWINDOWP parent){ char unchkmsg[513]; snprintf(unchkmsg,512, "<#247>%s %s</#>\n %s\n\n Build <u>%s</u> (<#950>%s</#>)\n %s\n %s\n <#009><u>%s</u></#>\n\n\nROM Name: <#060>%s</#>\nROM Version: <#060>%s</#>\nROM Author: <#060>%s</#>\n\nDevice: <#060>%s</#>", AROMA_NAME, AROMA_VERSION, AROMA_COPY, AROMA_BUILD, AROMA_BUILD_CN, AROMA_BUILD_L, AROMA_BUILD_A, AROMA_BUILD_URL, acfg()->rom_name, acfg()->rom_version, acfg()->rom_author, acfg()->rom_device ); aw_alert(parent, AROMA_NAME " " AROMA_VERSION, unchkmsg, "icons/install", NULL); }
int screen_set_black(int black) { pthread_mutex_lock(&mutex_screen); int fd = open(acfg()->brightness_path, O_WRONLY); if (fd <= 0) { miui_error("open %s failed!\n", acfg()->brightness_path); } else { bool_black = black; if (bool_black) { if (write(fd,"0", 1) <= 0) { miui_error("%s write error %s", acfg()->brightness_path, strerror(errno)); } } else { miui_debug("screen_light_buf is %s\n", screen_light_buf); if (write(fd,screen_light_buf,strlen(screen_light_buf)) <= 0) { miui_error("%s write error %s", acfg()->brightness_path, strerror(errno)); } } close(fd); } pthread_mutex_unlock(&mutex_screen); return 0; }
void acopt_redraw(ACONTROLP ctl) { ACOPTDP d = (ACOPTDP) ctl->d; if (d->acheck_signature != 136) { return; //-- Not Valid Signature } if ((d->itemn > 0) && (d->draweditemn < d->itemn)) { ag_ccanvas(&d->client); ag_canvas(&d->client, d->clientWidth, d->nextY); ag_rect(&d->client, 0, 0, d->clientWidth, agdp()*max(acfg()->roundsz, 4), acfg()->textbg); //-- Set Values d->scrollY = 0; d->maxScrollY = d->nextY - (ctl->h - (agdp() * max(acfg()->roundsz, 4))); if (d->maxScrollY < 0) { d->maxScrollY = 0; } //-- Draw Items int i; for (i = 0; i < d->itemn; i++) { acopt_redrawitem(ctl, i); } d->draweditemn = d->itemn; } }
static int umount_usb() { int ret; int fd; char ch = 0; char value[PROPERTY_VALUE_MAX]; char lunfilename[PATH_MAX]; sprintf(lunfilename, "%s%d/file", acfg()->lun_file, 0); if ((fd = open(lunfilename, O_WRONLY)) < 0) { LOGE("Unable to open ums lunfile 0 (%s)", strerror(errno)); ret = -1; goto next; } if (write(fd, &ch, 1) < 0) { LOGE("Unable to write to ums lunfile 0 (%s)", strerror(errno)); ret = -1; } next: sprintf(lunfilename, "%s%d/file", acfg()->lun_file, 1); if ((fd = open(lunfilename, O_WRONLY)) < 0) { LOGE("Unable to open ums lunfile 1 (%s)", strerror(errno)); ret = -1; goto next_next; } if (write(fd, &ch, 1) < 0) { LOGE("Unable to write to ums lunfile 1 (%s)", strerror(errno)); ret = -1; } next_next: sprintf(lunfilename, "%s/file", acfg()->lun_file); if ((fd = open(lunfilename, O_WRONLY)) < 0) { LOGE("Unable to open ums lunfile (%s)", strerror(errno)); ret = -1; goto out; } if (write(fd, &ch, 1) < 0) { LOGE("Unable to write ums lunfile (%s)", strerror(errno)); ret = -1; } close(fd); out: property_get("sys.usb.state", value, ""); value[PROPERTY_VALUE_MAX - 1] = '\0'; LOGE("%s: sys.usb.state=%s\n", __func__, value); if (strncmp("adb", value, 3)) property_set("sys.usb.config", "adb"); return ret; }
void acopt_ondraw(void * x){ ACONTROLP ctl= (ACONTROLP) x; ACOPTDP d = (ACOPTDP) ctl->d; CANVAS * pc = &ctl->win->c; acopt_redraw(ctl); if (d->invalidDrawItem!=-1){ d->touchedItem = d->invalidDrawItem; acopt_redrawitem(ctl,d->invalidDrawItem); d->invalidDrawItem=-1; } //-- Init Device Pixel Size int minpadding = 2; int agdp3 = (agdp()*minpadding); int agdp6 = (agdp()*(minpadding*2)); int agdpX = agdp6; ag_draw(pc,&d->control,ctl->x,ctl->y); // ag_draw_ex(pc,&d->client,ctl->x+agdp3,ctl->y+1,0,d->scrollY+1,ctl->w-agdp6,ctl->h-2); ag_draw_ex(pc,&d->client,ctl->x+agdp(),ctl->y+1,0,d->scrollY+1,ctl->w-(agdp()*2),ctl->h-2); if (d->maxScrollY>0){ //-- Glow int i; byte isST=(d->scrollY>0)?1:0; byte isSB=(d->scrollY<d->maxScrollY)?1:0; int add_t_y = 1; for (i=0;i<agdpX;i++){ byte alph = 255-round((((float) (i+1))/ ((float) agdpX))*230); if (isST) ag_rectopa(pc,ctl->x,ctl->y+i+add_t_y,ctl->w,1,acfg()->textbg,alph); if (isSB) ag_rectopa(pc,ctl->x,((ctl->y+ctl->h)-(add_t_y))-(i+1),ctl->w,1,acfg()->textbg,alph); } //-- Scrollbar int newh = ctl->h - agdp6; float scrdif = ((float) newh) / ((float) d->client.h); int scrollbarH = round(scrdif * newh); int scrollbarY = round(scrdif * d->scrollY) + agdp3; if (d->scrollY<0){ scrollbarY = agdp3; int alp = (1.0 - (((float) abs(d->scrollY)) / (((float) ctl->h)/4))) * 255; if (alp<0) alp = 0; ag_rectopa(pc,(ctl->w-agdp()-2)+ctl->x,scrollbarY+ctl->y,agdp(),scrollbarH,acfg()->scrollbar, alp); } else if (d->scrollY>d->maxScrollY){ scrollbarY = round(scrdif * d->maxScrollY) + agdp3; int alp = (1.0 - (((float) abs(d->scrollY-d->maxScrollY)) / (((float) ctl->h)/4))) * 255; if (alp<0) alp = 0; ag_rectopa(pc,(ctl->w-agdp()-2)+ctl->x,scrollbarY+ctl->y,agdp(),scrollbarH,acfg()->scrollbar, alp); } else{ ag_rect(pc,(ctl->w-agdp()-2)+ctl->x,scrollbarY+ctl->y,agdp(),scrollbarH,acfg()->scrollbar); } } }
struct _menuUnit * sd_ui_init() { struct _menuUnit *p = common_ui_init(); return_null_if_fail(p != NULL); strncpy(p->name, "<~sd.name>", MENU_LEN); strncpy(p->title_name, "<~sd.title_name>", MENU_LEN); strncpy(p->icon, "@sd", MENU_LEN); p->result = 0; return_null_if_fail(menuNode_init(p) != NULL); //install from sd struct _menuUnit *temp = common_ui_init(); return_null_if_fail(temp != NULL); menuUnit_set_icon(temp, "@sd.choose"); strncpy(temp->name, "<~sd.install.name>", MENU_LEN); temp->show = &sd_menu_show; assert_if_fail(menuNode_add(p, temp) == RET_OK); //install update.bin from sd temp = common_ui_init(); menuUnit_set_icon(temp, "@sd.install"); strncpy(temp->name,"<~sd.update.name>", MENU_LEN); temp->show = &sd_update_show; assert_if_fail(menuNode_add(p, temp) == RET_OK); if (acfg()->sd_ext == 1) { //install from external_sd struct _menuUnit *temp = common_ui_init(); return_null_if_fail(temp != NULL); menuUnit_set_icon(temp, "@sd.choose"); strncpy(temp->name, "<~sdext.install.name>", MENU_LEN); temp->show = &sdext_menu_show; assert_if_fail(menuNode_add(p, temp) == RET_OK); } return p; }
void aui_cfg_save() { char o[256]; snprintf(o, 256, "%i", auic()->tooltext); aarray_set(aui_cfg_array, "tooltext", o); snprintf(o, 256, "%i", auic()->showhidden); aarray_set(aui_cfg_array, "showhidden", o); snprintf(o, 256, "%i", auic()->fontsize); aarray_set(aui_cfg_array, "fontsize", o); snprintf(o, 256, "%i", auic()->automount); aarray_set(aui_cfg_array, "automount", o); snprintf(o, 256, "%i", acfg()->fadeframes); aarray_set(aui_cfg_array, "fadeframes", o); aarray_set(aui_cfg_array, "fontfamily", auicv.fontfamily); aarray_set(aui_cfg_array, "iconset", auicv.iconset); aarray_set(aui_cfg_array, "language", auicv.language); aarray_set(aui_cfg_array, "theme", auicv.theme); //aui_cfg_savecalib(); aui_cfg_savechange(); }
int screen_set_brightness(char* brightness) { pthread_mutex_lock(&mutex_screen); int fd = open(acfg()->brightness_path, O_WRONLY); if (fd <= 0) { miui_error("open %s failed!\n", acfg()->brightness_path); } else { if (write(fd, brightness, 1) <= 0) { miui_error("% write error %s", acfg()->brightness_path, strerror(errno)); } close(fd); } pthread_mutex_unlock(&mutex_screen); return 0; }
char *auifav(AWINDOWP parent, char *path) { //-- Mute Parent CANVAS *tmpc = aw_muteparent(parent); aw_set_on_dialog(2); ag_rectopa(agc(), 0, 0, agw(), agh(), 0x0000, 180); ag_sync(); //-- Initializing Canvas CANVAS favbg; ag_canvas(&favbg, agw(), agh()); ag_draw(&favbg, agc(), 0, 0); //-- Init Sizes int winY = agh() - round(agh() / 1.618); int winH = agh() - winY; int titH = agdp() * 24; // (agdp()*6) + ag_fontheight(1); int boxY = winY + titH; int boxH = winH - titH; //-- Draw Title ag_roundgrad_ex(&favbg, 0, winY, agw(), titH, acfg()->navbg, acfg()->navbg_g, 0, 0, 0, 0, 0); //-- Draw Main Window ag_roundgrad_ex(&favbg, 0, boxY, agw(), boxH, acfg()->navbg, acfg()->navbg_g, 0, 0, 0, 0, 0); byte first = 1; char *out_char = NULL; while (auifav_win (&favbg, path, &out_char, winY, titH, boxY, boxH, first)) { first = 0; } //-- Cleanup Canvas ag_ccanvas(&favbg); //-- Unmute Parent aw_set_on_dialog(0); aw_unmuteparent(parent, tmpc); return out_char; }
void aui_cfg_init() { auicv.tooltext = 1; auicv.fontsize = 2; auicv.automount = 0; auicv.showhidden = 0; acfg()->fadeframes = 4; snprintf(auicv.fontfamily, 128, "Droid Sans"); snprintf(auicv.iconset, 128, "Generic"); snprintf(auicv.language, 128, "English"); snprintf(auicv.theme, 128, ""); }
void afbox_redraw(ACONTROLP ctl){ AFBOXDP d = (AFBOXDP) ctl->d; if (d->acheck_signature != 177) return; //-- Not Valid Signature if ((d->itemn>0)&&(d->draweditemn<d->itemn)) { ag_ccanvas(&d->client); ag_canvas(&d->client,d->clientWidth,d->nextY); ag_rect(&d->client,0,0,d->clientWidth,agdp()*2,acfg()->textbg); //-- Set Values d->scrollY = 0; d->maxScrollY = d->nextY-(ctl->h-(agdp()*2)); if (d->maxScrollY<0) d->maxScrollY=0; //-- Draw Items int i; for (i=0;i<d->itemn;i++){ ag_rect(&d->client,0,d->items[i]->y,d->clientWidth,d->items[i]->h,acfg()->textbg); afbox_redrawitem(ctl,i); } d->draweditemn=d->itemn; } }
void aw_about_dialog(AWINDOWP parent){ char unchkmsg[513]; snprintf(unchkmsg,512, "<b>%s %s</b>\n" "%s\n\n" " <#selectbg_g>Build <u>%s</u></#> (<b>%s</b>)\n" " %s\n" " %s\n" " <u>%s</u>\n\n" "ROM Name:\n <b><#selectbg_g>%s</#></b>\n" "ROM Version:\n <b><#selectbg_g>%s</#></b>\n" "ROM Author:\n <b><#selectbg_g>%s</#></b>\n" "Device:\n <b><#selectbg_g>%s</#></b>\n" "Update:\n <b><#selectbg_g>%s</#></b>" , AROMA_NAME, AROMA_VERSION, AROMA_COPY, AROMA_BUILD, AROMA_BUILD_CN, AROMA_BUILD_L, AROMA_BUILD_A, AROMA_BUILD_URL, acfg()->rom_name, acfg()->rom_version, acfg()->rom_author, acfg()->rom_device, acfg()->rom_date ); aw_alert(parent, AROMA_NAME " " AROMA_VERSION, unchkmsg, "@install", NULL); }
STATUS info_about_show(struct _menuUnit* p) { char message[512]; snprintf(message, 512, "<~about.name>\n <b><#selectbg_g>%s</#></b>\n" "<~about.version>\n <b><#selectbg_g>%s</#></b>\n" "<~about.device>\n <b><#selectbg_g>%s</#></b>\n" "<~about.date>\n <b><#selectbg_g>%s</#></b>\n" , acfg()->rom_name, acfg()->rom_version, acfg()->rom_device, acfg()->rom_date ); miui_aboutmenu( MIUI_NAME " " MIUI_VERSION, "@install", message ); return MENU_BACK; }
void acime2_drawbutton(ACIMEDP d, int x, int y, int w, int h, int id) { d->keyX[id] = x; d->keyW[id] = w; d->keyD[id] = 0; x++; y++; w -= 2; h -= 2; if (!atheme_draw("img.button", &d->control_rest, x, y, w, h)) { ag_roundgrad(&d->control_rest, x, y, w, h, acfg()->border, acfg()->border_g, acfg()->roundsz); ag_roundgrad(&d->control_rest, x + 1, y + 1, w - 2, h - 2, acfg()->controlbg, acfg()->controlbg_g, acfg()->roundsz - 1); } if (!atheme_draw("img.button.push", &d->control_push, x, y, w, h)) { ag_roundgrad(&d->control_push, x, y, w, h, acfg()->selectbg_g, acfg()->selectbg, acfg()->roundsz); ag_roundgrad(&d->control_push, x + 1, y + 1, w - 2, h - 2, acfg()->selectbg, acfg()->selectbg_g, acfg()->roundsz - 1); } }
void aui_cfg_fromarray() { char *o; o = aarray_get(aui_cfg_array, "automount"); if (o != NULL) auic()->automount = atoi(o); o = aarray_get(aui_cfg_array, "tooltext"); if (o != NULL) auic()->tooltext = atoi(o); o = aarray_get(aui_cfg_array, "fontsize"); if (o != NULL) auic()->fontsize = atoi(o); o = aarray_get(aui_cfg_array, "fadeframes"); if (o != NULL) acfg()->fadeframes = atoi(o); o = aarray_get(aui_cfg_array, "showhidden"); if (o != NULL) auic()->showhidden = atoi(o); o = aarray_get(aui_cfg_array, "fontfamily"); if (o != NULL) snprintf(auicv.fontfamily, 128, o); o = aarray_get(aui_cfg_array, "iconset"); if (o != NULL) snprintf(auicv.iconset, 128, o); o = aarray_get(aui_cfg_array, "language"); if (o != NULL) snprintf(auicv.language, 128, o); o = aarray_get(aui_cfg_array, "theme"); if (o != NULL) snprintf(auicv.theme, 128, o); }
ACONTROLP acime2( AWINDOWP win, int x, int y, int w, int h, byte inputMsg ) { //-- Initializing Button Data ACIMEDP d = (ACIMEDP) malloc(sizeof(ACIMED)); memset(d, 0, sizeof(ACIMED)); //-- Set Data d->inputMsg = inputMsg; d->onShift = 0; d->on123 = 0; d->onCTRL = 0; d->pushedId = 255; //-- Init Canvas ag_canvas(&d->control, w, h); ag_canvas(&d->control_push, w, h); ag_canvas(&d->control_rest, w, h); //-- Drawings ag_roundgrad(&d->control_rest, 0, 0, w, h, acfg()->navbg, acfg()->navbg_g, 0); ag_rect(&d->control_rest, 0, 0, w, 1, acfg()->navbg); ag_draw(&d->control_push, &d->control_rest, 0, 0); //-- Calculate Size int btnW = floor(w / 10); d->btnH = floor(h / 5); //-- Draw Buttons int i = 0; int bY = 0; int w1p2 = (btnW / 2); int w3p2 = ((btnW * 3) / 2); for (i = 0; i < 10; i++) { acime2_drawbutton(d, i * btnW, bY, btnW, d->btnH, i); } bY += d->btnH; for (i = 0; i < 9; i++) { acime2_drawbutton(d, w1p2 + (i * btnW), bY, btnW, d->btnH, i + 10); } bY += d->btnH; acime2_drawbutton(d, 0, bY, w3p2, d->btnH, 19); //-- SHIFT for (i = 0; i < 7; i++) { acime2_drawbutton(d, w3p2 + (i * btnW), bY, btnW, d->btnH, i + 20); } acime2_drawbutton(d, 8.5 * btnW, bY, w3p2, d->btnH, 27); //-- BACKSPACE bY += d->btnH; acime2_drawbutton(d, 0, bY, w3p2, d->btnH, 28); //-- CHANGE 123-ABC acime2_drawbutton(d, w3p2, bY, w3p2, d->btnH, 29); //-- COMMA acime2_drawbutton(d, w3p2 * 2, bY, btnW * 4, d->btnH, 30); //-- SPACE acime2_drawbutton(d, 7 * btnW, bY, w3p2, d->btnH, 31); //-- DOT acime2_drawbutton(d, 8.5 * btnW, bY, w3p2, d->btnH, 32); //-- ENTER bY += d->btnH; acime2_drawbutton(d, 0, bY, btnW * 2, d->btnH, 33); //-- TAB acime2_drawbutton(d, btnW * 2, bY, btnW * 2, d->btnH, 34); //-- CTRL acime2_drawbutton(d, 4 * btnW, bY, w3p2, d->btnH, 35); //-- LEFT acime2_drawbutton(d, 5.5 * btnW, bY, w3p2, d->btnH, 36); //-- UP acime2_drawbutton(d, 7 * btnW, bY, w3p2, d->btnH, 37); //-- DOWN acime2_drawbutton(d, 8.5 * btnW, bY, w3p2, d->btnH, 38); //-- RIGHT ag_draw(&d->control, &d->control_rest, 0, 0); //-- Initializing Control ACONTROLP ctl = malloc(sizeof(ACONTROL)); ctl->ondestroy = &acime2_ondestroy; ctl->oninput = &acime2_oninput; ctl->ondraw = &acime2_ondraw; ctl->onblur = &acime2_onblur; ctl->onfocus = NULL; ctl->win = win; ctl->x = x; ctl->y = y; ctl->w = w; ctl->h = h; ctl->forceNS = 0; ctl->d = (void *) d; aw_add(win, ctl); return ctl; }
void acime2_drawbtn(ACONTROLP ctl, int keyID, int y) { ACIMEDP d = (ACIMEDP) ctl->d; if (((keyID < 27) && (keyID != 19)) || (keyID == 30) || (keyID == 31) || (keyID == 29) || (keyID == 34)) { char c[8]; char c2 = 0; c[1] = 0; if (keyID == 30) { c[0] = ' '; } else if (keyID == 34) { snprintf(c, 8, "ctrl"); if (d->onCTRL) { c2 = '*'; } } else if (keyID == 29) { c[0] = ','; } else if (keyID == 31) { c[0] = '.'; } else { int n = keyID; if (n > 19) { n--; } int np = 3; if (d->on123) { np = (d->onShift) ? 0 : 1; } else { if (d->onShift) { np = 2; } int np2 = (d->onShift) ? 0 : 1; c2 = acime2_charlist[np2][n]; } c[0] = acime2_charlist[np][n]; } color cl = (d->pushedId == keyID) ? acfg()->selectfg : acfg()->controlfg; int y1 = y; y += (d->btnH / 2) - (ag_fontheight(1) / 2); int x = (d->keyW[keyID] / 2) - (ag_txtwidth(c, 1) / 2); ag_textf( &d->control, d->keyW[keyID], d->keyX[keyID] + x, y, c, cl, 1 ); if (c2) { cl = (d->pushedId == keyID) ? acfg()->selectfg : acfg()->textfg_gray; char c2s[2]; c2s[0] = c2; c2s[1] = 0; ag_textf( &d->control, d->keyW[keyID], d->keyX[keyID] + d->keyW[keyID] - ag_txtwidth(c2s, 0) - agdp(), y1 + agdp(), c2s, cl, 0 ); } } else { int icoid = 0; if (keyID == 19) { icoid = (!d->onShift ? 27 : (d->onShift == 2 ? 29 : 28)); } else if (keyID == 28) { icoid = d->on123 ? 31 : 30; } else if (keyID == 27) { icoid = 32; // bkspace; } else if (keyID == 33) { icoid = 42; // tab; } else if (keyID == 35) { icoid = 34; // left; } else if (keyID == 36) { icoid = 43; // up; } else if (keyID == 37) { icoid = 44; // down; } else if (keyID == 38) { icoid = 35; // right; } else if (keyID == 32) { icoid = 41; // enter; } PNGCANVAS * ap = aui_icons(icoid); if (ap != NULL) { int isz = agdp() * 16; y += (d->btnH / 2) - (isz / 2); int x = (d->keyW[keyID] / 2) - (isz / 2); apng_stretch( &d->control, ap, d->keyX[keyID] + x, y, isz, isz, 0, 0, ap->w, ap->h); } } }
void acopt_redrawitem(ACONTROLP ctl, int index) { ACOPTDP d = (ACOPTDP) ctl->d; if (d->acheck_signature != 136) { return; //-- Not Valid Signature } if ((index >= d->itemn) || (index < 0)) { return; //-- Not Valid Index } ACOPTIP p = d->items[index]; CANVAS * c = &d->client; //-- Cleanup Background ag_rect(c, 0, p->y, d->clientWidth, p->h, acfg()->textbg); if (p->isTitle) { ag_roundgrad(c, 0, p->y, d->clientWidth, p->h, acfg()->controlbg, acfg()->controlbg_g, 0); ag_rect(c, 0, p->y + p->h - 1, d->clientWidth, 1, acfg()->border); ag_rect(c, 0, p->y + p->h - 2, d->clientWidth, 1, acfg()->controlbg); char ntitle[256]; snprintf(ntitle, 256, "<b>%s</b>", p->title); ag_textf(c, d->clientTextW + (agdp() * 14), (d->clientTextX - (agdp() * 14)) + 1, p->y + p->ty, ntitle, acfg()->controlbg, 0); ag_text(c, d->clientTextW + (agdp() * 14), d->clientTextX - (agdp() * 14), p->y + p->ty - 1, ntitle, acfg()->controlfg, 0); } else { color txtcolor = acfg()->textfg; color graycolor = acfg()->textfg_gray; byte isselectcolor = 0; if (index == d->touchedItem) { if (!atheme_draw("img.selection.push", c, 0, p->y + agdp(), d->clientWidth, p->h - (agdp() * 2))) { color pshad = ag_calpushad(acfg()->selectbg_g); dword hl1 = ag_calcpushlight(acfg()->selectbg, pshad); ag_roundgrad(c, 0, p->y + agdp(), d->clientWidth, p->h - (agdp() * 2), acfg()->selectbg, pshad, (agdp()*acfg()->roundsz)); ag_roundgrad(c, 0, p->y + agdp(), d->clientWidth, (p->h - (agdp() * 2)) / 2, LOWORD(hl1), HIWORD(hl1), (agdp()*acfg()->roundsz)); } graycolor = txtcolor = acfg()->selectfg; isselectcolor = 1; } else if ((index == d->focusedItem) && (d->focused)) { if (!atheme_draw("img.selection", c, 0, p->y + agdp(), d->clientWidth, p->h - (agdp() * 2))) { dword hl1 = ag_calchighlight(acfg()->selectbg, acfg()->selectbg_g); ag_roundgrad(c, 0, p->y + agdp(), d->clientWidth, p->h - (agdp() * 2), acfg()->selectbg, acfg()->selectbg_g, (agdp()*acfg()->roundsz)); ag_roundgrad(c, 0, p->y + agdp(), d->clientWidth, (p->h - (agdp() * 2)) / 2, LOWORD(hl1), HIWORD(hl1), (agdp()*acfg()->roundsz)); } graycolor = txtcolor = acfg()->selectfg; isselectcolor = 1; } if (index < d->itemn - 1) { //-- Not Last... Add Separator color sepcl = ag_calculatealpha(acfg()->textbg, acfg()->textfg_gray, 80); ag_rect(c, 0, p->y + p->h - 1, d->clientWidth, 1, sepcl); } //-- Now Draw The Text if (isselectcolor) { ag_textf(c, d->clientTextW, d->clientTextX, p->y + p->ty, p->title, acfg()->selectbg_g, 1); ag_textf(c, d->clientTextW, d->clientTextX, p->y + p->dy, p->desc, acfg()->selectbg_g, 0); } ag_text(c, d->clientTextW, d->clientTextX - 1, p->y + p->ty - 1, p->title, txtcolor, 1); ag_text(c, d->clientTextW, d->clientTextX - 1, p->y + p->dy - 1, p->desc, graycolor, 0); //-- Now Draw The Checkbox int halfdp = ceil(((float) agdp()) / 2); int halfdp2 = halfdp * 2; int optbox_s = (agdp() * 10); int optbox_r = floor(optbox_s / 2); int optbox_x = round((d->clientTextX / 2) - (optbox_s / 2)); int optbox_y = p->y + round((p->h / 2) - (optbox_s / 2)); byte drawed = 0; int minpad = 3 * agdp(); int addpad = 6 * agdp(); if (p->id == d->selectedIndexs[p->group]) { if (index == d->touchedItem) { drawed = atheme_draw("img.radio.on.push", c, optbox_x - minpad, optbox_y - minpad, optbox_s + addpad, optbox_s + addpad); } else if ((index == d->focusedItem) && (d->focused)) { drawed = atheme_draw("img.radio.on.focus", c, optbox_x - minpad, optbox_y - minpad, optbox_s + addpad, optbox_s + addpad); } else { drawed = atheme_draw("img.radio.on", c, optbox_x - minpad, optbox_y - minpad, optbox_s + addpad, optbox_s + addpad); } } else { if (index == d->touchedItem) { drawed = atheme_draw("img.radio.push", c, optbox_x - minpad, optbox_y - minpad, optbox_s + addpad, optbox_s + addpad); } else if ((index == d->focusedItem) && (d->focused)) { drawed = atheme_draw("img.radio.focus", c, optbox_x - minpad, optbox_y - minpad, optbox_s + addpad, optbox_s + addpad); } else { drawed = atheme_draw("img.radio", c, optbox_x - minpad, optbox_y - minpad, optbox_s + addpad, optbox_s + addpad); } } if (!drawed) { ag_roundgrad(c, optbox_x, optbox_y, optbox_s, optbox_s, acfg()->controlbg_g, acfg()->controlbg, optbox_r ); ag_roundgrad(c, optbox_x + halfdp, optbox_y + halfdp, optbox_s - halfdp2, optbox_s - halfdp2, acfg()->textbg, acfg()->textbg, optbox_r - halfdp); if (p->id == d->selectedIndexs[p->group]) { ag_roundgrad(c, optbox_x + halfdp2, optbox_y + halfdp2, optbox_s - (halfdp2 * 2), optbox_s - (halfdp2 * 2), acfg()->selectbg, acfg()->selectbg_g, optbox_r - halfdp2); } } } }
ACONTROLP acopt( AWINDOWP win, int x, int y, int w, int h ) { //-- Validate Minimum Size if (h < agdp() * 16) { h = agdp() * 16; } if (w < agdp() * 20) { w = agdp() * 20; } //-- Initializing Text Data ACOPTDP d = (ACOPTDP) malloc(sizeof(ACOPTD)); memset(d, 0, sizeof(ACOPTD)); //-- Set Signature d->acheck_signature = 136; //-- Initializing Canvas ag_canvas(&d->control, w, h); int minpadding = 2; //-- Initializing Client Size d->clientWidth = w - (agdp() * minpadding); d->clientTextW = d->clientWidth - (agdp() * 18); // d->clientWidth - (agdp()*18) - (agdp()*acfg()->btnroundsz*2); d->clientTextX = (agdp() * 18); // + (agdp()*acfg()->btnroundsz*2); d->client.data = NULL; //-- Draw Control ag_draw_ex(&d->control, &win->c, 0, 0, x, y, w, h); ag_rect(&d->control, 0, 0, w, h, acfg()->textbg); //-- Set Scroll Value d->scrollY = 0; d->maxScrollY = 0; d->prevTouchY = -50; d->invalidDrawItem = -1; //-- Set Data Values d->items = NULL; d->itemn = 0; d->touchedItem = -1; d->focusedItem = -1; d->nextY = agdp() * minpadding; d->draweditemn = 0; int i; for (i = 0; i < ACOPT_MAX_GROUP; i++) { d->selectedIndexs[i] = -1; } d->groupCounts = 0; d->groupCurrId = -1; ACONTROLP ctl = malloc(sizeof(ACONTROL)); ctl->ondestroy = &acopt_ondestroy; ctl->oninput = &acopt_oninput; ctl->ondraw = &acopt_ondraw; ctl->onblur = &acopt_onblur; ctl->onfocus = &acopt_onfocus; ctl->win = win; ctl->x = x; ctl->y = y; ctl->w = w; ctl->h = h; ctl->forceNS = 0; ctl->d = (void *) d; aw_add(win, ctl); return ctl; }
ACONTROLP actext( AWINDOWP win, int x, int y, int w, int h, char * text, byte isbig ){ //-- Validate Minimum Size if (h<agdp()*16) h=agdp()*16; if (w<agdp()*16) w=agdp()*16; //-- Initializing Client Area int minpadding = max(acfg()->roundsz,4); int cw = w-(agdp()*(minpadding*2)); int ch = 0; if (text!=NULL) ch = ag_txtheight(cw,text,isbig)+(agdp()*(minpadding*2)); else ch = h-(agdp()*2); //-- Initializing Text Data ACTEXTDP d = (ACTEXTDP) malloc(sizeof(ACTEXTD)); memset(d,0,sizeof(ACTEXTD)); //-- Initializing Canvas ag_canvas(&d->control,w,h); ag_canvas(&d->control_focused,w,h); ag_canvas(&d->client,cw,ch); //-- Draw Control ag_draw_ex(&d->control,&win->c,0,0,x,y,w,h); ag_roundgrad(&d->control,0,0,w,h,acfg()->border,acfg()->border_g,(agdp()*acfg()->roundsz)); ag_roundgrad(&d->control,1,1,w-2,h-2,acfg()->textbg,acfg()->textbg,(agdp()*acfg()->roundsz)-1); //-- Draw Focused Control ag_draw_ex(&d->control_focused,&win->c,0,0,x,y,w,h); ag_roundgrad(&d->control_focused,0,0,w,h,acfg()->selectbg,acfg()->selectbg_g,(agdp()*acfg()->roundsz)); ag_roundgrad(&d->control_focused,agdp(),agdp(),w-(agdp()*2),h-(agdp()*2),acfg()->textbg,acfg()->textbg,(agdp()*(acfg()->roundsz-1))); //-- Draw Client ag_rect(&d->client,0,0,cw,ch,acfg()->textbg); if (text!=NULL) ag_text(&d->client,cw,0,agdp()*minpadding,text,acfg()->textfg,isbig); d->isbigtxt = isbig; d->targetY = 0; d->focused = 0; d->scrollY = 0; d->appendPos = agdp()*minpadding; d->forceGlowTop= 0; d->isFixedText = 0; if (text!=NULL) d->maxScrollY = ch-(h-(agdp()*minpadding)); else{ d->maxScrollY = 0; d->isFixedText = 1; } if (d->maxScrollY<0) d->maxScrollY=0; ACONTROLP ctl = malloc(sizeof(ACONTROL)); ctl->ondestroy= &actext_ondestroy; ctl->oninput = &actext_oninput; ctl->ondraw = &actext_ondraw; ctl->onblur = actext_onblur; ctl->onfocus = actext_onfocus; ctl->win = win; ctl->x = x; ctl->y = y; ctl->w = w; ctl->h = h; ctl->forceNS = 0; ctl->d = (void *) d; aw_add(win,ctl); return ctl; }
void actext_rebuild( ACONTROLP ctl, int x, int y, int w, int h, char * text, byte isbig, byte toBottom ){ ACTEXTDP d = (ACTEXTDP) ctl->d; int minpadding = max(acfg()->roundsz,4); //-- Cleanup ag_ccanvas(&d->control); ag_ccanvas(&d->control_focused); ag_ccanvas(&d->client); memset(d,0,sizeof(ACTEXTD)); //-- Rebuild //-- Validate Minimum Size if (h<agdp()*16) h=agdp()*16; if (w<agdp()*16) w=agdp()*16; //-- Initializing Client Area int cw = w-(agdp()*(minpadding*2)); int ch = 0; if (text!=NULL) ch = ag_txtheight(cw,text,isbig)+(agdp()*(minpadding*2)); else ch = h-(agdp()*2); //-- Initializing Canvas ag_canvas(&d->control,w,h); ag_canvas(&d->control_focused,w,h); ag_canvas(&d->client,cw,ch); //-- Draw Control ag_draw_ex(&d->control,ctl->win->bg,0,0,x,y,w,h); ag_roundgrad(&d->control,0,0,w,h,acfg()->border,acfg()->border_g,(agdp()*acfg()->roundsz)); ag_roundgrad(&d->control,1,1,w-2,h-2,acfg()->textbg,acfg()->textbg,(agdp()*acfg()->roundsz)-1); //-- Draw Focused Control ag_draw_ex(&d->control_focused,ctl->win->bg,0,0,x,y,w,h); ag_roundgrad(&d->control_focused,0,0,w,h,acfg()->selectbg,acfg()->selectbg_g,(agdp()*acfg()->roundsz)); ag_roundgrad(&d->control_focused,agdp(),agdp(),w-(agdp()*2),h-(agdp()*2),acfg()->textbg,acfg()->textbg,(agdp()*(acfg()->roundsz-1))); //-- Draw Client ag_rect(&d->client,0,0,cw,ch,acfg()->textbg); if (text!=NULL) ag_text(&d->client,cw,0,agdp()*minpadding,text,acfg()->textfg,isbig); d->isbigtxt = isbig; d->targetY = 0; d->focused = 0; d->scrollY = 0; d->appendPos = agdp()*minpadding; d->forceGlowTop= 0; d->isFixedText = 0; if (text!=NULL) d->maxScrollY = ch-(h-(agdp()*minpadding)); else{ d->maxScrollY = 0; d->isFixedText = 1; } if (d->maxScrollY<0) d->maxScrollY=0; ctl->x = x; ctl->y = y; ctl->w = w; ctl->h = h; ctl->forceNS = 0; if (toBottom){ d->scrollY = d->maxScrollY; } ctl->ondraw(ctl); aw_draw(ctl->win); }
void actext_appendtxt(ACONTROLP ctl,char * txt){ ACTEXTDP d = (ACTEXTDP) ctl->d; int ch = ag_txtheight(d->client.w,txt,d->isbigtxt); int canvas_h = d->client.h; if ((d->appendPos+ch)>=canvas_h){ int step_up = (d->appendPos+ch) - canvas_h; int y; int ynew=0; for (y=step_up; y<canvas_h; y++){ color * rowdest = agxy(&d->client,0,ynew++); color * rowsrc = agxy(&d->client,0,y); memcpy(rowdest,rowsrc,sizeof(color)*d->client.w); } d->appendPos -= step_up; } ag_rect(&d->client,0,d->appendPos,d->client.w,ch,acfg()->textbg); ag_text(&d->client, d->client.w, 0,d->appendPos, txt, acfg()->textfg, d->isbigtxt); d->appendPos+=ch; /* int minpadding = max(acfg()->roundsz,4); int ch = ag_txtheight(d->client.w,txt,d->isbigtxt); int my = d->client.h-(agdp()*2); // -(agdp()*(minpadding*2)); if ((d->appendPos+ch)>=my){ if (d->appendPos<my){ ch-=(my-d->appendPos); } int y; int ynew=0; for (y=ch;y<d->client.h;y++){ color * rowdest = agxy(&d->client,0,ynew++); color * rowsrc = agxy(&d->client,0,y); memcpy(rowdest,rowsrc,sizeof(color)*d->client.w); } int ypos = my-ch; ag_rect(&d->client,0,ypos,d->client.w,ch,acfg()->textbg); ag_text(&d->client, d->client.w, 0,ypos, txt, acfg()->textfg, d->isbigtxt); d->forceGlowTop=1; d->appendPos=my; } else{ ag_text(&d->client, d->client.w, 0,d->appendPos, txt, acfg()->textfg, d->isbigtxt); d->appendPos+=ch; } */ ctl->ondraw(ctl); aw_draw(ctl->win); }
void accheck_redrawitem(ACONTROLP ctl, int index){ ACCHECKDP d = (ACCHECKDP) ctl->d; if (d->acheck_signature != 133) return; //-- Not Valid Signature if ((index>=d->itemn)||(index<0)) return; //-- Not Valid Index ACCHECKIP p = d->items[index]; CANVAS * c = &d->client; //-- Cleanup Background ag_rect(c,0,p->y,d->clientWidth,p->h,acfg()->textbg); if (p->isTitle){ ag_roundgrad(c,0,p->y,d->clientWidth,p->h,acfg()->titlebg,acfg()->titlebg_g,0); ag_textf(c,d->clientTextW+(agdp()*14),(d->clientTextX-(agdp()*14))+1,p->y+p->ty,p->title,acfg()->titlebg_g,0); ag_text(c,d->clientTextW+(agdp()*14),d->clientTextX-(agdp()*14),p->y+p->ty-1,p->title,acfg()->titlefg,0); } else{ color txtcolor = acfg()->textfg; color graycolor= acfg()->textfg_gray; byte isselectcolor=0; if (index==d->touchedItem){ if (!atheme_draw("img.selection.push", c,0,p->y+agdp(),d->clientWidth,p->h-(agdp()*2))){ color pshad = ag_calpushad(acfg()->selectbg_g); dword hl1 = ag_calcpushlight(acfg()->selectbg,pshad); ag_roundgrad(c,0,p->y+agdp(),d->clientWidth,p->h-(agdp()*2),acfg()->selectbg,pshad,(agdp()*acfg()->roundsz)); ag_roundgrad(c,0,p->y+agdp(),d->clientWidth,(p->h-(agdp()*2))/2,LOWORD(hl1),HIWORD(hl1),(agdp()*acfg()->roundsz)); } graycolor = txtcolor = acfg()->selectfg; isselectcolor=1; } else if ((index==d->focusedItem)&&(d->focused)){ if (!atheme_draw("img.selection", c,0,p->y+agdp(),d->clientWidth,p->h-(agdp()*2))){ dword hl1 = ag_calchighlight(acfg()->selectbg,acfg()->selectbg_g); ag_roundgrad(c,0,p->y+agdp(),d->clientWidth,p->h-(agdp()*2),acfg()->selectbg,acfg()->selectbg_g,(agdp()*acfg()->roundsz)); ag_roundgrad(c,0,p->y+agdp(),d->clientWidth,(p->h-(agdp()*2))/2,LOWORD(hl1),HIWORD(hl1),(agdp()*acfg()->roundsz)); } graycolor = txtcolor = acfg()->selectfg; isselectcolor=1; } if (index<d->itemn-1){ //-- Not Last... Add Separator color sepcl = ag_calculatealpha(acfg()->textbg,acfg()->textfg_gray,80); ag_rect(c,0,p->y+p->h-1,d->clientWidth,1,sepcl); } //-- Now Draw The Text if (isselectcolor){ ag_textf(c,d->clientTextW,d->clientTextX,p->y+p->ty,p->title,acfg()->selectbg_g,0); ag_textf(c,d->clientTextW,d->clientTextX,p->y+p->dy,p->desc,acfg()->selectbg_g,0); } ag_text(c,d->clientTextW,d->clientTextX-1,p->y+p->ty-1,p->title,txtcolor,0); ag_text(c,d->clientTextW,d->clientTextX-1,p->y+p->dy-1,p->desc,graycolor,0); //-- Now Draw The Checkbox int halfdp = ceil(((float) agdp())/2); int halfdp2 = halfdp*2; int chkbox_s = (agdp()*10); int chkbox_x = round((d->clientTextX/2)- ((chkbox_s+2)/2)); int chkbox_y = p->y + round((p->h/2) - (chkbox_s/2)); byte drawed = 0; int minpad = 3*agdp(); int addpad = 6*agdp(); if (p->checked){ if (index==d->touchedItem) drawed=atheme_draw("img.checkbox.on.push", c,chkbox_x-minpad,chkbox_y-minpad,chkbox_s+addpad,chkbox_s+addpad); else if ((index==d->focusedItem)&&(d->focused)) drawed=atheme_draw("img.checkbox.on.focus", c,chkbox_x-minpad,chkbox_y-minpad,chkbox_s+addpad,chkbox_s+addpad); else drawed=atheme_draw("img.checkbox.on", c,chkbox_x-minpad,chkbox_y-minpad,chkbox_s+addpad,chkbox_s+addpad); } else{ if (index==d->touchedItem) drawed=atheme_draw("img.checkbox.push", c,chkbox_x-minpad,chkbox_y-minpad,chkbox_s+addpad,chkbox_s+addpad); else if ((index==d->focusedItem)&&(d->focused)) drawed=atheme_draw("img.checkbox.focus", c,chkbox_x-minpad,chkbox_y-minpad,chkbox_s+addpad,chkbox_s+addpad); else drawed=atheme_draw("img.checkbox", c,chkbox_x-minpad,chkbox_y-minpad,chkbox_s+addpad,chkbox_s+addpad); } if (!drawed){ ag_roundgrad(c, chkbox_x, chkbox_y, chkbox_s, chkbox_s, acfg()->controlbg_g, acfg()->controlbg, 0); ag_roundgrad(c, chkbox_x+halfdp, chkbox_y+halfdp, chkbox_s-halfdp2, chkbox_s-halfdp2, acfg()->textbg, acfg()->textbg, 0); if (p->checked){ ag_roundgrad(c, chkbox_x+halfdp2, chkbox_y+halfdp2, chkbox_s-(halfdp2*2), chkbox_s-(halfdp2*2), acfg()->selectbg, acfg()->selectbg_g, 0); } } } }
struct _menuUnit *mount_ui_init() { struct _menuUnit* p = common_ui_init(); return_null_if_fail(p != NULL); strncpy(p->name, "<~mount.name>", MENU_LEN); menuUnit_set_title(p, "<~mount.title>"); menuUnit_set_icon(p, "@mount"); menuUnit_set_show(p, &mount_menu_show); return_null_if_fail(menuNode_init(p) != NULL); //mount cache? struct _menuUnit* temp = common_ui_init(); assert_if_fail(menuNode_add(p, temp) == RET_OK); return_null_if_fail(menuUnit_set_name(temp, "<~mount.cache.name>") == RET_OK); return_null_if_fail(menuUnit_set_icon(temp, ICON_DISABLE) == RET_OK); return_null_if_fail(menuUnit_set_result(temp, MOUNT_CACHE) == RET_OK); return_null_if_fail(menuUnit_set_desc(temp, MOUNT_DESC_UNMOUNT) == RET_OK); return_null_if_fail(RET_OK == menuUnit_set_show(temp, &mount_child_show)); mount_cache_node = temp; //mount data temp = common_ui_init(); assert_if_fail(menuNode_add(p, temp) == RET_OK); return_null_if_fail(menuUnit_set_name(temp, "<~mount.data.name>") == RET_OK); return_null_if_fail(menuUnit_set_result(temp, MOUNT_DATA) == RET_OK); return_null_if_fail(menuUnit_set_icon(temp, ICON_DISABLE) == RET_OK); return_null_if_fail(menuUnit_set_desc(temp, MOUNT_DESC_UNMOUNT) == RET_OK); return_null_if_fail(RET_OK == menuUnit_set_show(temp, &mount_child_show)); mount_data_node = temp; //mount system temp = common_ui_init(); assert_if_fail(menuNode_add(p, temp) == RET_OK); return_null_if_fail(menuUnit_set_name(temp, "<~mount.system.name>") == RET_OK); return_null_if_fail(menuUnit_set_result(temp, MOUNT_SYSTEM) == RET_OK); return_null_if_fail(menuUnit_set_icon(temp, ICON_DISABLE) == RET_OK); return_null_if_fail(menuUnit_set_desc(temp, MOUNT_DESC_UNMOUNT) == RET_OK); return_null_if_fail(RET_OK == menuUnit_set_show(temp, &mount_child_show)); mount_system_node = temp; //mount sdcard temp = common_ui_init(); assert_if_fail(menuNode_add(p, temp) == RET_OK); return_null_if_fail(menuUnit_set_name(temp, "<~mount.sdcard.name>") == RET_OK); return_null_if_fail(menuUnit_set_result(temp, MOUNT_SDCARD) == RET_OK); return_null_if_fail(menuUnit_set_icon(temp, ICON_DISABLE) == RET_OK); return_null_if_fail(menuUnit_set_desc(temp, MOUNT_DESC_UNMOUNT) == RET_OK); return_null_if_fail(RET_OK == menuUnit_set_show(temp, &mount_child_show)); mount_sd_node = temp; if (acfg()->sd_ext == 1) { //mount internal_sd temp = common_ui_init(); assert_if_fail(menuNode_add(p, temp) == RET_OK); return_null_if_fail(menuUnit_set_name(temp, "<~mount.sdext.name>") == RET_OK); return_null_if_fail(menuUnit_set_result(temp, MOUNT_SDEXT) == RET_OK); return_null_if_fail(menuUnit_set_icon(temp, ICON_DISABLE) == RET_OK); return_null_if_fail(menuUnit_set_desc(temp, MOUNT_DESC_UNMOUNT) == RET_OK); return_null_if_fail(RET_OK == menuUnit_set_show(temp, &mount_child_show)); mount_sd_ext_node = temp; } //toggle usb stroage if (acfg()->lun_file[0] != 0) { temp = common_ui_init(); assert_if_fail(menuNode_add(p, temp) == RET_OK); return_null_if_fail(menuUnit_set_name(temp, "<~mount.toggle.name>") == RET_OK); return_null_if_fail(menuUnit_set_result(temp, MOUNT_TOGGLE) == RET_OK); return_null_if_fail(menuUnit_set_icon(temp, ICON_DISABLE) == RET_OK); return_null_if_fail(menuUnit_set_desc(temp, MOUNT_DESC_UNMOUNT) == RET_OK); return_null_if_fail(RET_OK == menuUnit_set_show(temp, &mount_child_show)); } mount_node = p; return p; }
static STATUS mount_menu_show(menuUnit *p) { //traverse all mount files //ensure cache miuiIntent_send(INTENT_ISMOUNT, 1, "/cache"); if (miuiIntent_result_get_int() == 1) { menuUnit_set_icon(mount_cache_node, ICON_ENABLE); menuUnit_set_desc(mount_cache_node, MOUNT_DESC_MOUNT); } else { menuUnit_set_icon(mount_cache_node, ICON_DISABLE); menuUnit_set_desc(mount_cache_node, MOUNT_DESC_UNMOUNT); } //ensure data miuiIntent_send(INTENT_ISMOUNT, 1, "/data"); if (miuiIntent_result_get_int() == 1) { menuUnit_set_icon(mount_data_node, ICON_ENABLE); menuUnit_set_desc(mount_data_node, MOUNT_DESC_MOUNT); } else { menuUnit_set_icon(mount_data_node, ICON_DISABLE); menuUnit_set_desc(mount_data_node, MOUNT_DESC_UNMOUNT); } //ensure system miuiIntent_send(INTENT_ISMOUNT, 1, "/system"); if (miuiIntent_result_get_int() == 1) { menuUnit_set_icon(mount_system_node, ICON_ENABLE); menuUnit_set_desc(mount_system_node, MOUNT_DESC_MOUNT); } else { menuUnit_set_icon(mount_system_node, ICON_DISABLE); menuUnit_set_desc(mount_system_node, MOUNT_DESC_UNMOUNT); } //ensure sdcard miuiIntent_send(INTENT_ISMOUNT, 1, "/sdcard"); if (miuiIntent_result_get_int() == 1) { menuUnit_set_icon(mount_sd_node, ICON_ENABLE); menuUnit_set_desc(mount_sd_node, MOUNT_DESC_MOUNT); } else { menuUnit_set_icon(mount_sd_node, ICON_DISABLE); menuUnit_set_desc(mount_sd_node, MOUNT_DESC_UNMOUNT); } if (acfg()->sd_ext == 1) { //ensure sd-ext miuiIntent_send(INTENT_ISMOUNT, 1, "/internal_sd"); if (miuiIntent_result_get_int() == 1) { menuUnit_set_icon(mount_sd_ext_node, ICON_ENABLE); menuUnit_set_desc(mount_sd_ext_node, MOUNT_DESC_MOUNT); } else { menuUnit_set_icon(mount_sd_ext_node, ICON_DISABLE); menuUnit_set_desc(mount_sd_ext_node, MOUNT_DESC_UNMOUNT); } } //show menu return_val_if_fail(p != NULL, RET_FAIL); int n = p->get_child_count(p); return_val_if_fail(n > 0, RET_FAIL); int selindex = 0; return_val_if_fail(n >= 1, RET_FAIL); return_val_if_fail(n < ITEM_COUNT, RET_FAIL); struct _menuUnit *temp = p->child; return_val_if_fail(temp != NULL, RET_FAIL); char **menu_item = malloc(n * sizeof(char *)); assert_if_fail(menu_item != NULL); char **icon_item=malloc(n * sizeof(char *)); assert_if_fail(icon_item != NULL); char **title_item= malloc(n * sizeof(char *)); assert_if_fail(title_item != NULL); int i = 0; for (i = 0; i < n; i++) { menu_item[i] = temp->name; title_item[i] = temp->title_name; icon_item[i] = temp->icon; temp = temp->nextSilbing; } selindex = miui_mainmenu(p->name, menu_item, NULL, icon_item, n); p->result = selindex; if (menu_item != NULL) free(menu_item); if (title_item != NULL) free(title_item); if (icon_item != NULL) free(icon_item); return p->result; }
static int mount_usb() { int ret = 0; int fd; char value[PROPERTY_VALUE_MAX]; Volume *vol = volume_for_path("/sdcard"); Volume *vol_ext = volume_for_path("/external_sd"); char lunfilename[PATH_MAX]; property_get("sys.usb.state", value, ""); value[PROPERTY_VALUE_MAX - 1] = '\0'; LOGE("%s: sys.usb.state=%s\n", __func__, value); if (strncmp("mass_storage,adb", value, 16)) property_set("sys.usb.config", "mass_storage,adb"); sprintf(lunfilename, "%s%d/file", acfg()->lun_file, 0); if ((fd = open(lunfilename, O_WRONLY)) < 0) { LOGE("Unable to open ums lunfile 0 (%s)", strerror(errno)); ret = -1; goto next; } if ((write(fd, vol->device, strlen(vol->device)) < 0) && (!vol->device2 || (write(fd, vol->device2, strlen(vol->device2)) < 0))) { LOGE("Unable to write to ums lunfile 0 (%s)", strerror(errno)); ret = -1; } close(fd); next: sprintf(lunfilename, "%s%d/file", acfg()->lun_file, 1); if ((fd = open(lunfilename, O_WRONLY)) < 0) { LOGE("Unable to open ums lunfile 1 (%s)", strerror(errno)); ret = -1; goto next2; } if ((write(fd, vol_ext->device, strlen(vol_ext->device)) < 0) && (!vol_ext->device2 || (write(fd, vol_ext->device2, strlen(vol_ext->device2)) < 0))) { LOGE("Unable to write to ums lunfile 1 (%s)", strerror(errno)); ret = -1; } close(fd); next2: sprintf(lunfilename, "%s/file", acfg()->lun_file); if ((fd = open(lunfilename, O_WRONLY)) < 0) { LOGE("Unable to open ums lunfile (%s)", strerror(errno)); ret = -1; goto out; } if ((write(fd, vol_ext->device, strlen(vol_ext->device)) < 0) && (!vol_ext->device2 || (write(fd, vol_ext->device2, strlen(vol_ext->device2)) < 0))) { LOGE("Unable to write to ums lunfile (%s)", strerror(errno)); ret = -1; } close(fd); out: return ret; }
ACONTROLP accheck( AWINDOWP win, int x, int y, int w, int h ){ //-- Validate Minimum Size if (h<agdp()*16) h=agdp()*16; if (w<agdp()*20) w=agdp()*20; //-- Initializing Text Data ACCHECKDP d = (ACCHECKDP) malloc(sizeof(ACCHECKD)); memset(d,0,sizeof(ACCHECKD)); //-- Set Signature d->acheck_signature = 133; //-- Initializing Canvas ag_canvas(&d->control,w,h); ag_canvas(&d->control_focused,w,h); int minpadding = max(acfg()->roundsz,4); //-- Initializing Client Size d->clientWidth = w - (agdp()*minpadding*2); d->clientTextW = d->clientWidth - (agdp()*18) - (agdp()*acfg()->btnroundsz*2); d->clientTextX = (agdp()*18) + (agdp()*acfg()->btnroundsz*2); d->client.data=NULL; //-- Draw Control ag_draw_ex(&d->control,&win->c,0,0,x,y,w,h); ag_roundgrad(&d->control,0,0,w,h,acfg()->border,acfg()->border_g,(agdp()*acfg()->roundsz)); ag_roundgrad(&d->control,1,1,w-2,h-2,acfg()->textbg,acfg()->textbg,(agdp()*acfg()->roundsz)-1); //-- Draw Focused Control ag_draw_ex(&d->control_focused,&win->c,0,0,x,y,w,h); ag_roundgrad(&d->control_focused,0,0,w,h,acfg()->selectbg,acfg()->selectbg_g,(agdp()*acfg()->roundsz)); ag_roundgrad(&d->control_focused,agdp(),agdp(),w-(agdp()*2),h-(agdp()*2),acfg()->textbg,acfg()->textbg,(agdp()*(acfg()->roundsz-1))); //-- Set Scroll Value d->scrollY = 0; d->maxScrollY = 0; d->prevTouchY =-50; d->invalidDrawItem = -1; //-- Set Data Values d->items = NULL; d->itemn = 0; d->touchedItem = -1; d->focusedItem = -1; d->nextY = agdp()*minpadding; d->draweditemn = 0; d->groupCounts = 0; d->groupCurrId = -1; ACONTROLP ctl = malloc(sizeof(ACONTROL)); ctl->ondestroy= &accheck_ondestroy; ctl->oninput = &accheck_oninput; ctl->ondraw = &accheck_ondraw; ctl->onblur = &accheck_onblur; ctl->onfocus = &accheck_onfocus; ctl->win = win; ctl->x = x; ctl->y = y; ctl->w = w; ctl->h = h; ctl->forceNS = 0; ctl->d = (void *) d; aw_add(win,ctl); return ctl; }
void actext_ondraw(void * x){ ACONTROLP ctl= (ACONTROLP) x; ACTEXTDP d = (ACTEXTDP) ctl->d; CANVAS * pc = &ctl->win->c; //-- Init Device Pixel Size int minpadding = max(acfg()->roundsz,4); int agdp3 = (agdp()*minpadding); int agdp6 = (agdp()*(minpadding*2)); int agdpX = agdp6; if ((d->focused)&&(!d->isFixedText)){ ag_draw(pc,&d->control_focused,ctl->x,ctl->y); ag_draw_ex(pc,&d->client,ctl->x+agdp3,ctl->y+agdp(),0,d->scrollY+agdp(),ctl->w-agdp6,ctl->h-(agdp()*2)); } else{ ag_draw(pc,&d->control,ctl->x,ctl->y); ag_draw_ex(pc,&d->client,ctl->x+agdp3,ctl->y+1,0,d->scrollY+1,ctl->w-agdp6,ctl->h-2); } if ((d->maxScrollY>0)||(d->forceGlowTop)){ //-- Glow int i; byte isST=(d->scrollY>=agdp3)?1:0; byte isSB=(d->scrollY<=d->maxScrollY-agdp3)?1:0; if (d->forceGlowTop) isST=1; int add_t_y = 1; if (d->focused) add_t_y = agdp(); for (i=0;i<agdpX;i++){ byte alph = 255-round((((float) (i+1))/ ((float) agdpX))*230); if (isST) ag_rectopa(pc,ctl->x+agdp3,ctl->y+i+add_t_y,ctl->w-agdpX,1,acfg()->textbg,alph); if (isSB) ag_rectopa(pc,ctl->x+agdp3,(ctl->y+ctl->h)-(i+1)-add_t_y,ctl->w-agdpX,1,acfg()->textbg,alph); } if (d->maxScrollY>0){ //-- Scrollbar int newh = ctl->h - agdp6; float scrdif = ((float) newh) / ((float) d->client.h); int scrollbarH = round(scrdif * newh); int scrollbarY = round(scrdif * d->scrollY) + agdp3; if (d->scrollY<0){ scrollbarY = agdp3; int alp = (1.0 - (((float) abs(d->scrollY)) / (((float) ctl->h)/4))) * 255; if (alp<0) alp = 0; ag_rectopa(pc,(ctl->w-agdp()-2)+ctl->x,scrollbarY+ctl->y,agdp(),scrollbarH,acfg()->scrollbar, alp); } else if (d->scrollY>d->maxScrollY){ scrollbarY = round(scrdif * d->maxScrollY) + agdp3; int alp = (1.0 - (((float) abs(d->scrollY-d->maxScrollY)) / (((float) ctl->h)/4))) * 255; if (alp<0) alp = 0; ag_rectopa(pc,(ctl->w-agdp()-2)+ctl->x,scrollbarY+ctl->y,agdp(),scrollbarH,acfg()->scrollbar, alp); } else{ ag_rect(pc,(ctl->w-agdp()-2)+ctl->x,scrollbarY+ctl->y,agdp(),scrollbarH,acfg()->scrollbar); } } } }