Exemple #1
0
/* statusbar */
void recovery_statusbar_update(){
  word bgcolor = libaroma_alpha(
    _recovery.status_bgcolor,
    0,51+recovery_statusbar_side_opa
  );
  byte isdark = libaroma_color_isdark(bgcolor);
  word text_color = isdark?0xffff:0;
  
  libaroma_canvas_fillcolor(
    _recovery.status_canvas,
    bgcolor
  );
  
  if (recovery_statusbar_side_w){
    if (recovery_statusbar_overlay_canvas){
      libaroma_draw_rect(
        _recovery.status_canvas,
        0, 0, recovery_statusbar_side_w, _recovery.status_canvas->h,
        0, 0xff
      );
      libaroma_draw_ex(
        _recovery.status_canvas,
        recovery_statusbar_overlay_canvas,
        0, 0,
        recovery_statusbar_overlay_canvas->w-recovery_statusbar_side_w, 0,
        recovery_statusbar_side_w, recovery_statusbar_overlay_canvas->h,
        0, 0xcc
      );
    }
    else{
      libaroma_draw_rect(
        _recovery.status_canvas,
        0, 0, recovery_statusbar_side_w, _recovery.status_canvas->h,
        RGB(cccccc), 0xff
      );
    }
  }
    
  libaroma_draw_text(
    _recovery.status_canvas,
    "AROMA Recovery",
    0,0,text_color,_recovery.status_canvas->w,
    LIBAROMA_FONT(0,3)|
    LIBAROMA_TEXT_SINGLELINE|
    LIBAROMA_TEXT_CENTER,
    140
  );
  libaroma_wm_updatesync(0,0,0,0,1);
}
Exemple #2
0
LIBAROMA_CONTROLP libaroma_control_label(
  LIBAROMA_WINDOWP win, word id, char * text,
  int x, int y, int w, int h
){
  _LIBAROMA_CONTROL_LABELP me = (_LIBAROMA_CONTROL_LABELP)
    calloc(sizeof(_LIBAROMA_CONTROL_LABEL),1);
  if (!me){
    ALOGW("libaroma_control_label alloc label memory failed");
    return NULL;
  }
  me->text = strdup(text);
  me->textp = libaroma_text(
    me->text,
    libaroma_wm_get_color("control_text"),
    w - libaroma_dp(8),
    LIBAROMA_FONT(0,4)|LIBAROMA_TEXT_SINGLELINE,
    100
  );
  
  LIBAROMA_CONTROLP ctl =
    libaroma_control_new(
      id,
      x, y, w, h,
      libaroma_dp(28),libaroma_dp(32), /* min size */
      me,
      &_libaroma_control_label_handler,
      win
    );
  
  if (!ctl){
    if (me->text){
      free(me->text);
    }
    if (me->textp){
      libaroma_text_free(me->textp);
    }
    free(me);
  }
  return ctl;
}
Exemple #3
0
/*
 * Function    : libaroma_text
 * Return Value: LIBAROMA_TEXT
 * Descriptions: create text
 */
LIBAROMA_TEXT libaroma_text(
  const char  * text,
  word          color,
  int           maxwidth,
  dword         txtflags,
  byte          linespacing
) {
  byte font  = _LIBAROMA_TEXT_GET_FONT(txtflags);
  byte rules = _LIBAROMA_TEXT_GET_RULE(txtflags);
  byte flags = _LIBAROMA_TEXT_GET_FLAG(txtflags);
  byte align = _LIBAROMA_TEXT_GET_ALIGN(txtflags);
  if (!font){
    font=LIBAROMA_FONT(0,2);
  }
  if (!linespacing) {
    linespacing = 120;
  }
  _libaroma_pubtext_lock(1);
  _LIBAROMA_TEXTCHUNK_ALIGN_SET(flags, align);
  _LIBAROMA_TEXTCHUNKP chunk =
    _libaroma_text_parse(
      text,
      rules,
      flags,
      color,
      font,
      maxwidth,
      linespacing
  );
  _LIBAROMA_TEXTP txt =
    (_LIBAROMA_TEXTP) calloc(sizeof(_LIBAROMA_TEXT),1);
  _LIBAROMA_TEXTLINESP lines =
    (_LIBAROMA_TEXTLINESP) malloc(sizeof(_LIBAROMA_TEXTLINES));
  _LIBAROMA_TEXTLINESP last_lines = lines;
  last_lines->line = NULL;
  while (chunk->state & _LIBAROMA_TEXTCHUNK_STATE_OK) {
    _LIBAROMA_TEXTLINEP line = libaroma_textline(chunk);
    if (line != NULL) {
      if (last_lines->line != NULL) {
        last_lines->next =
          (_LIBAROMA_TEXTLINESP) malloc(sizeof(_LIBAROMA_TEXTLINES));
        last_lines = last_lines->next;
      }
      last_lines->line = line;
      last_lines->next = NULL;
      txt->n++;
      txt->h += line->lineheight;
      if (rules & _LIBAROMA_TEXT_SINGLELINE) {
        break;
      }
    }
  }
  _libaroma_text_parse_free(chunk);
  if (lines->line != NULL) {
    txt->lines = (_LIBAROMA_TEXTLINEP *)
      malloc(sizeof(_LIBAROMA_TEXTLINEP) * txt->n);
    last_lines = lines;
    int i = 0;
    while (last_lines) {
      txt->lines[i] = last_lines->line;
      _LIBAROMA_TEXTLINESP prevline = last_lines;
      last_lines = last_lines->next;
      free(prevline);
      i++;
    }
    _libaroma_pubtext_lock(0);
    return (LIBAROMA_TEXT) txt;
  }
  free(txt);
  free(lines);
  _libaroma_pubtext_lock(0);
  return NULL;
} /* End of libaroma_text */