static int loadWindow(LiteWindow *window) { DFBResult res; DFBRectangle rect; LiteImage *backImg; rect.x = 0; rect.y = 0; rect.w = MKD_SCREEN_WIDTH; rect.h = MKD_SCREEN_HEIGHT; lite_new_image(LITE_BOX(window), &rect, liteNoImageTheme, &backImg); lite_load_image(backImg, IMAGE_DIR "overlay_bg.png"); rect.x = rect.y = rect.w = rect.h = 0; lite_new_label(LITE_BOX(window), &rect, liteNoLabelTheme, get_lang_font_size(NULL), &temperatureTitle); lite_new_label(LITE_BOX(window), &rect, liteNoLabelTheme, get_lang_font_size(NULL), &temperatureMsg1); rect.x = 0; rect.y = 219; rect.w = 240; rect.h = 91; res = lite_new_text_button(LITE_BOX(window), &rect, get_lang_str_by_tag("LS_TEMPERATURE_OK"), liteNoTextButtonTheme, &temperatureButton); res = lite_set_text_button_image(temperatureButton, LITE_TBS_NORMAL, IMAGE_DIR "ok_cancel_btn.png"); res = lite_set_text_button_image(temperatureButton, LITE_TBS_PRESSED, IMAGE_DIR "ok_cancel_btn_pressed.png"); res = lite_set_text_button_image(temperatureButton, LITE_TBS_HILITE, IMAGE_DIR "ok_cancel_btn.png"); res = lite_set_text_button_font(temperatureButton, get_lang_font_by_tag("LS_TEMPERATURE_OK"), LITE_FONT_PLAIN, get_lang_font_size_by_tag("LS_TEMPERATURE_OK"), 0); res = lite_set_text_button_color(temperatureButton, &TITLE_COLOR); res = lite_reinit_box_and_children(LITE_BOX(temperatureButton)); res = lite_on_text_button_press(temperatureButton, temperature_ok, window); return MKD_OK; }
DFBResult lite_set_progressbar_images(LiteProgressBar *progressbar, const char *filename_fg, const char *filename_bg) { DFBResult res; LITE_NULL_PARAMETER_CHECK(progressbar); LITE_NULL_PARAMETER_CHECK(filename_fg); LITE_BOX_TYPE_PARAMETER_CHECK(LITE_BOX(progressbar), LITE_TYPE_PROGRESSBAR); D_DEBUG_AT(LiteProgressBarDomain, "Load progressbar from files: %s %s\n", filename_fg, filename_bg); res = lite_util_load_image(filename_fg, DSPF_UNKNOWN, &progressbar->surface_fg, &progressbar->width, &progressbar->height, NULL); if (res != DFB_OK) return res; if (filename_bg) { res = lite_util_load_image(filename_bg, DSPF_UNKNOWN, &progressbar->surface_bg, &progressbar->width, &progressbar->height, NULL); if(res != DFB_OK) return res; } return lite_update_box(LITE_BOX(progressbar), NULL); }
static void setElectricity() { /* char elecStr[8]; snprintf(elecStr, sizeof(elecStr), "%d", getInfoManager()->rke_get_soc_hvs()); lite_set_label_text(elecNumLabel, elecStr); */ pthread_mutex_lock(&ui_mutex); int level = toElectricLevel(getInfoManager()->rke_get_soc_hvs()); LOG_DBG("setElectricity level = %d\n", level); if (level == 0) { lite_set_box_visible(LITE_BOX(elecImg), false); } else { char buf[64]; snprintf(buf, sizeof(buf), "%s/key_range_charge_score_%d.png", IMAGE_DIR, level); lite_load_image(elecImg, buf); lite_set_box_visible(LITE_BOX(elecImg), true); } pthread_mutex_unlock(&ui_mutex); #if 0 int level = MAX_ELECTRIC_DISPLAY_LEVEL * value / 201 + 1; /* Soc HVS range is 0-200 */ int i; for (i = 0 ; i < MAX_ELECTRIC_DISPLAY_LEVEL ; ++i) { lite_set_box_visible(LITE_BOX(elecImg[i]), (i < level ? true : false)); } #endif }
static void setup_labels() { LiteBox *box; pthread_mutex_lock(&ui_mutex); //num label lite_set_box_visible(LITE_BOX(rangeNumLabel), false); //setup_label_by_tag(rangeNumLabel, "LS_KMNUM"); pthread_mutex_unlock(&ui_mutex); setMile(); pthread_mutex_lock(&ui_mutex); lite_set_box_visible(LITE_BOX(rangeNumLabel), true); //km label enum mileage_unit mUnit = getInfoManager()->get_mileage_unit(); if (mUnit == MILEAGE_UNIT_MILE) { setup_label_by_tag(kmLabel, "LS_MI"); } else { /* MILEAGE_UNIT_KM */ setup_label_by_tag(kmLabel, "LS_KM"); } //lite_set_label_alignment(kmLabel, LITE_LABEL_RIGHT); /* total range label */ setup_label_by_tag_color(titleLabel, "LS_TOTAL_RANGE", &Colors.blue); /* fully charged label */ lite_set_box_visible(LITE_BOX(fullyChargeLabel), false); setup_label_by_tag_color(fullyChargeLabel, "LS_FULLCHARGE_TIME", &Colors.steelBlue); pthread_mutex_unlock(&ui_mutex); /* // electricity label box = LITE_BOX(elecNumLabel); box->rect.x = 60; box->rect.y = 142; box->rect.w = 200; box->rect.h = 44; lite_set_label_color(elecNumLabel, &TITLE_COLOR); lite_set_label_font(elecNumLabel, FONT_BMWTACD, LITE_FONT_PLAIN, SUBPAGE_TITLE_FONT_SIZE, 0); lite_reinit_box_and_children(box); //lite_draw_box(box->parent, NULL, DFB_TRUE); // fuel label box = LITE_BOX(fuelNumLabel); box->rect.x = 60; box->rect.y = 190; box->rect.w = 200; box->rect.h = 44; lite_set_label_color(fuelNumLabel, &TITLE_COLOR); lite_set_label_font(fuelNumLabel, FONT_BMWTACD, LITE_FONT_PLAIN, SUBPAGE_TITLE_FONT_SIZE, 0); lite_reinit_box_and_children(box); //lite_draw_box(box->parent, NULL, DFB_TRUE); */ setElectricity(); setFuel(); update_fully_charge_time(); }
int main (int argc, char *argv[]) { LiteLabel *label; LiteTextLine *textline; DFBRectangle rect; DFBResult res; /* initialize */ if (lite_open( &argc, &argv )) return 1; /* create a window */ rect.x = LITE_CENTER_HORIZONTALLY; rect.y = LITE_CENTER_VERTICALLY, rect.w = 300; rect.h = 40; res = lite_new_window( NULL, &rect, DWCAPS_ALPHACHANNEL, liteDefaultWindowTheme, "Run program...", &window ); /* setup the label */ rect.x = 10; rect.y = 12; rect.w = 60; res = lite_new_label(LITE_BOX(window), &rect, liteNoLabelTheme, 14, &label ); lite_set_label_text( label, "Program" ); /* setup the textline */ rect.x = 70; rect.y = 9; rect.w = 220; rect.h = 22; res = lite_new_textline(LITE_BOX(window), &rect, liteNoTextLineTheme, &textline); lite_on_textline_enter( textline, on_enter, NULL ); lite_on_textline_abort( textline, on_abort, NULL ); lite_focus_box( LITE_BOX(textline) ); /* show the window */ lite_set_window_opacity( window, liteFullWindowOpacity ); window->window->RequestFocus( window->window ); /* run the default event loop */ lite_window_event_loop( window, 0 ); /* destroy the window with all this children and resources */ lite_destroy_window( window ); /* deinitialize */ lite_close(); return 0; }
DFBResult lite_new_progressbar(LiteBox *parent, DFBRectangle *rect, LiteProgressBarTheme *theme, LiteProgressBar **ret_progressbar) { LiteProgressBar *progressbar = NULL; DFBResult res; progressbar = D_CALLOC(1, sizeof(LiteProgressBar)); progressbar->box.parent = parent; progressbar->theme = theme; progressbar->box.rect = *rect; res = lite_init_box(LITE_BOX(progressbar)); if (res != DFB_OK) { D_FREE(progressbar); return res; } progressbar->box.type = LITE_TYPE_PROGRESSBAR; progressbar->box.Draw = draw_progressbar; progressbar->box.Destroy = destroy_progressbar; progressbar->value = 0.0f; *ret_progressbar = progressbar; D_DEBUG_AT(LiteProgressBarDomain, "Created new progressbar object: %p\n", progressbar); return DFB_OK; }
static void on_cbs_motion(int *y) { pthread_mutex_lock(&ui_mutex); if (y == NULL) { /* back to the original position */ pthread_mutex_unlock(&ui_mutex); return; } LiteBox *box = LITE_BOX(detailLabel); int cur_line, delta_line; int downX = getUiControlObj()->downX; int downY = getUiControlObj()->downY; int dy = downY - *y; DFBRegion reg_label; dfb_region_from_rectangle(®_label, &box->rect); if (!DFB_REGION_CONTAINS_POINT(®_label, downX, downY)) { pthread_mutex_unlock(&ui_mutex); return; } lite_get_label_cur_line(detailLabel, &cur_line); delta_line = dy / VERTICAL_SWIPE_THRESHOLD; LOG_DBG("[%s] total_line = %d, cur_line = %d, delta_line = %d\n", __func__, total_line, cur_line, delta_line); if (total_line <= MAX_CBS_DETAIL_LINES) { pthread_mutex_unlock(&ui_mutex); return; } cur_line += delta_line; if (cur_line < 0) { cur_line = 0; } else if (cur_line >= max_moved_lines) { cur_line = max_moved_lines; } LiteBox *scroll_box = LITE_BOX(scrollbarImg); scroll_box->rect.y = cur_line * scroll_step + SCROLLBAR_TOP; lite_reinit_box_and_children(scroll_box); lite_update_box(scroll_box->parent, NULL); LOG_DBG("[%s] scroll_step = %d, scroll_box->rect.y = %d, cur_line = %d\n", __func__, scroll_step, scroll_box->rect.y, cur_line); lite_set_label_cur_line(detailLabel, cur_line); pthread_mutex_unlock(&ui_mutex); }
static int loadWindow(activity *act) { DFBResult res; DFBRectangle rect; LiteWindow *window = act->window; /* setup the label */ rect.x = rect.y = rect.w = rect.h = 0; res = lite_new_label(LITE_BOX(window), &rect, liteNoLabelTheme, get_lang_font_size(NULL), &g_label); rect.x = 68; rect.y = 89; rect.w = 104; rect.h = 104; res = lite_new_button(LITE_BOX(window), &rect, liteNoButtonTheme, &serviceButton); //res = lite_set_button_image(serviceButton, LITE_BS_NORMAL, IMAGE_DIR "0_2_ok.png"); //res = lite_set_button_image(serviceButton, LITE_BS_HILITE, IMAGE_DIR "0_2_ok.png"); //res = lite_set_button_image(serviceButton, LITE_BS_PRESSED, IMAGE_DIR "0_2_ok_press.png"); return MKD_OK; }
static void setup_labels() { pthread_mutex_lock(&ui_mutex); setup_label_by_tag(temperatureTitle, "LS_TEMPWARM"); setup_label_by_tag_color(temperatureMsg1, "LS_TEMPWARM_MSG", &Colors.skyBlue); lite_set_text_button_font(temperatureButton, get_lang_font_by_tag("LS_TEMPERATURE_OK"), LITE_FONT_PLAIN, get_lang_font_size_by_tag("LS_TEMPERATURE_OK"), 0); lite_set_text_button_caption(temperatureButton, get_lang_str_by_tag("LS_TEMPERATURE_OK")); lite_draw_box(LITE_BOX(temperature_window_g), NULL, DFB_TRUE); pthread_mutex_unlock(&ui_mutex); }
DFBResult lite_set_progressbar_value(LiteProgressBar *progressbar, float value) { LITE_NULL_PARAMETER_CHECK(progressbar); progressbar->value = value; lite_update_box(LITE_BOX(progressbar), NULL); return DFB_OK; }
static void setup_labels() { pthread_mutex_lock(&ui_mutex); setup_label_by_tag(batteryLowTitle, "LS_BATTERYLOW"); setup_label_by_tag_color(batteryLowMsg1, "LS_BATTERYLOW_MSG", &Colors.skyBlue); setup_label_by_tag_color(batteryLowMsg2, "LS_BATTERYLOW_MSG1", &Colors.skyBlue); setup_label_by_tag_color(batteryLowMsg3, "LS_BATTERYLOW_MSG2", &Colors.skyBlue); lite_set_text_button_font(batteryLowButton, get_lang_font_by_tag("LS_BATTERYLOW_OK"), LITE_FONT_PLAIN, get_lang_font_size_by_tag("LS_BATTERYLOW_OK"), 0); lite_set_text_button_caption(batteryLowButton, get_lang_str_by_tag("LS_BATTERYLOW_OK")); lite_draw_box(LITE_BOX(batterylow_window_g), NULL, DFB_TRUE); pthread_mutex_unlock(&ui_mutex); }
int main (int argc, char *argv[]) { LiteWindow *window; LiteLabel *label; DFBRectangle rect; int timeout = 0; if (argc > 1) { if ( (strcmp(argv[1], "timeout") == 0) ) timeout = TIMEOUT; } ltest_start_timer("Init LiTE"); if( lite_open(&argc, &argv) ) return 1; ltest_stop_timer(); rect.x = 0; rect.y = 0; rect.w = 800; rect.h = 480; ltest_start_timer("New Window"); LTEST("New Window", lite_new_window(NULL, &rect, DWCAPS_ALPHACHANNEL, liteDefaultWindowTheme, "LiteWindow test", &window)); ltest_stop_timer(); ltest_start_timer("Set Opacities in Window"); LTEST("Set Window Some Opacity", lite_set_window_opacity(window, 0x99)); LTEST("Set Window No Opacity", lite_set_window_opacity(window, liteNoWindowOpacity)); LTEST("Set Window Full Opacity", lite_set_window_opacity(window, liteFullWindowOpacity)); ltest_stop_timer(); rect.x = 10; rect.y = 10; rect.w = 400; ltest_start_timer("New Label and set Text"); LTEST("New Label", lite_new_label(LITE_BOX(window), &rect, liteNoLabelTheme, 20, &label)); LTEST("Set Label Text", lite_set_label_text(label, "Testing LiteWindow")); ltest_stop_timer(); ltest_display_timestamps(); lite_window_event_loop(window, timeout); LTEST("Destroy Window", lite_destroy_window(window)); LTEST("Close LiTE", lite_close()); ltest_print_timestamps(); return 0; }
static int loadWindow(activity *act) { DFBResult res; DFBRectangle rect; LiteImage *backImg; LiteWindow *window; window = act->window; rect.x = 0; rect.y = 0; rect.w = MKD_SCREEN_WIDTH; rect.h = MKD_SCREEN_HEIGHT; /* Load background */ lite_set_window_background(window, &Colors.black); res = lite_new_image(LITE_BOX(window), &rect, liteNoImageTheme, &backImg); res = lite_load_image(backImg, IMAGE_DIR "1_2_bg.png"); /* Icon Image */ rect.x = 21; rect.y = 47; rect.w = 68; rect.h = 46; res = lite_new_image(LITE_BOX(window), &rect, liteNoImageTheme, &iconImg); res = lite_load_image(iconImg, IMAGE_DIR "1_2_frontbreaks_white.png"); /* setup labels */ rect.x = rect.y = rect.w = rect.h = 0; res = lite_new_label(LITE_BOX(window), &rect, liteNoLabelTheme, get_lang_font_size(NULL), &meterLabel); res = lite_new_label(LITE_BOX(window), &rect, liteNoLabelTheme, get_lang_font_size(NULL), &titleLabel); res = lite_new_label(LITE_BOX(window), &rect, liteNoLabelTheme, get_lang_font_size(NULL), &detailLabel); res = lite_new_label(LITE_BOX(window), &rect, liteNoLabelTheme, get_lang_font_size(NULL), &meterNumLabel); lite_set_label_max_line(detailLabel, MAX_CBS_DETAIL_LINES); /* Scrollbar Image */ rect.x = 223; rect.y = SCROLLBAR_TOP; rect.w = 4; rect.h = 56; res = lite_new_image(LITE_BOX(window), &rect, liteNoImageTheme, &scrollbarImg); res = lite_load_image(scrollbarImg, IMAGE_DIR "key_scrollbar_3.png"); lite_set_box_visible(LITE_BOX(scrollbarImg), false); return MKD_OK; }
static void setFuel() { /* if (getInfoManager()->is_electric_only()) { lite_set_box_visible(LITE_BOX(fuelNumLabel), false); return; } char fuelStr[32]; snprintf(fuelStr, sizeof(fuelStr), "%.1lf/%.1lf %s", value, getInfoManager()->rke_get_max_fule_level(), get_fuel_unit_str()); lite_set_label_text(fuelNumLabel, fuelStr); lite_set_box_visible(LITE_BOX(fuelNumLabel), true); */ pthread_mutex_lock(&ui_mutex); int level = toFuelLevel(getInfoManager()->rke_get_fuel_level(), getInfoManager()->rke_get_max_fule_level()); LOG_DBG("setFuel level = %d, is_electric_only = %d\n", level, getInfoManager()->is_electric_only()); if (level == 0 || getInfoManager()->is_electric_only()) { lite_set_box_visible(LITE_BOX(fuelImg), false); } else { char buf[64]; snprintf(buf, sizeof(buf), "%s/key_range_fuel_score_%d.png", IMAGE_DIR, level); lite_load_image(fuelImg, buf); lite_set_box_visible(LITE_BOX(fuelImg), true); } pthread_mutex_unlock(&ui_mutex); #if 0 int level = MAX_FUEL_DISPLAY_LEVEL * value / 255 + 1; /* Fuel level range is 0-254 */ int i; for (i = 0 ; i < MAX_FUEL_DISPLAY_LEVEL ; ++i) { lite_set_box_visible(LITE_BOX(fuelImg[i]), (i < level ? true : false)); } #endif }
void run_slider_tests(LiteWindow *window) { DFBRectangle rect; LiteSlider *slider; /* create a new slider */ rect.x = 50; rect.y = 100; rect.w = 300; rect.h = 20; LTEST("Create Slider", lite_new_slider(LITE_BOX(window), &rect, liteNoSliderTheme, &slider)); /* set slider position */ LTEST("Set Slider Position rightmost", lite_set_slider_pos(slider, 1.0f)); LTEST("Set Slider Position leftmost", lite_set_slider_pos(slider, 0.0f)); LTEST("Set Slider Position over 1.0f", lite_set_slider_pos(slider, 200.0f)); LTEST("Set Slider Position under 0.0f", lite_set_slider_pos(slider, -200.0f)); LTEST("Set Slider Position 0.5f (halfway)", lite_set_slider_pos(slider, 0.5f)); }
/* use default max_width when max_width is zero */ static __setup_label_by_tag(LiteLabel* label, char* tag, DFBColor *color, int max_width, LiteFontStyle style, DFBColor *color2, char* text2) { if (label == NULL || tag == NULL || color == NULL) { LOG_ERR("setup_label_by_tag failed: invalid input\n"); return; } MULTI_LANG_TEXT_STRUCT* ml; LiteBox *box; LiteLabelAlignment alignment; ml = get_lang_struct_by_tag(tag); if (ml != NULL) { box = LITE_BOX(label); alignment = get_lang_alignment(ml); box->rect.x = ml->xlocation; box->rect.y = ml->ylocation; if (alignment == LITE_LABEL_RIGHT) { max_width = (max_width == 0) ? RIGHT_MARGIN_WIDTH : max_width; box->rect.w = max_width - ml->xlocation; /* Use 220 for right-alignment case */ } else { max_width = (max_width == 0) ? MKD_SCREEN_WIDTH : max_width; box->rect.w = max_width - ml->xlocation; } box->rect.h = 64; lite_set_label_text(label, ml->content); lite_set_label_color(label, color); if (!DFB_COLOR_EQUAL(*color2, Colors.none)) { lite_set_label_color2(label, color2); } if (text2 != NULL) { lite_set_label_text2(label, text2); } lite_set_label_font(label, get_lang_font(ml), style, ml->fontsize, DFFA_AUTOHINTING); lite_set_label_alignment(label, get_lang_alignment(ml)); lite_reinit_box_and_children(box); lite_update_box(box->parent, NULL); } }
int main (int argc, char *argv[]) { LiteButton *button; LiteImage *image; LiteLabel *label; LiteTextLine *textline; LiteWindow *window; DFBRectangle rect; DFBResult res; /* initialize */ if (lite_open( &argc, &argv )) return 1; /* create a window */ rect.x = LITE_CENTER_HORIZONTALLY; rect.y = LITE_CENTER_VERTICALLY; rect.w = 300; rect.h = 200; res = lite_new_window( NULL, &rect, DWCAPS_ALPHACHANNEL, liteDefaultWindowTheme, "Simple", &window ); /* setup the label */ rect.x = 10; rect.y = 10; rect.w = 110; res = lite_new_label(LITE_BOX(window), &rect, liteNoLabelTheme, 20, &label); lite_set_label_text( label, "Hello World" ); /* setup the textline */ rect.x = 10; rect.y = 40; rect.w = 100; rect.h = 20; res = lite_new_textline(LITE_BOX(window), &rect, liteNoTextLineTheme, &textline); rect.x = 10; rect.y = 60; rect.w = 100; rect.h = 20; res = lite_new_textline(LITE_BOX(window), &rect, liteNoTextLineTheme, &textline); /* setup the button */ rect.x = 180; rect.y = 130; rect.w = 50; rect.h = 50; res = lite_new_button(LITE_BOX(window), &rect, liteNoButtonTheme, &button); lite_set_button_image( button, LITE_BS_NORMAL, EXAMPLESDATADIR "/stop.png" ); lite_set_button_image( button, LITE_BS_DISABLED, EXAMPLESDATADIR "/stop_disabled.png" ); lite_set_button_image( button, LITE_BS_HILITE, EXAMPLESDATADIR "/stop_highlighted.png" ); lite_set_button_image( button, LITE_BS_PRESSED, EXAMPLESDATADIR "/stop_pressed.png" ); lite_on_button_press( button, button_pressed, window ); /* 2nd button */ rect.x = 230; rect.y = 130; rect.w = 50; rect.h = 50; res = lite_new_button(LITE_BOX(window), &rect, liteNoButtonTheme, &button); lite_set_button_type( button, LITE_BT_TOGGLE ); lite_set_button_image( button, LITE_BS_NORMAL, EXAMPLESDATADIR "/toggle.png" ); lite_set_button_image( button, LITE_BS_DISABLED, EXAMPLESDATADIR "/toggle_disabled.png" ); lite_set_button_image( button, LITE_BS_HILITE, EXAMPLESDATADIR "/toggle_highlighted.png" ); lite_set_button_image( button, LITE_BS_PRESSED, EXAMPLESDATADIR "/toggle_pressed.png" ); lite_set_button_image( button, LITE_BS_HILITE_ON, EXAMPLESDATADIR "/toggle_highlighted_on.png" ); lite_set_button_image( button, LITE_BS_DISABLED_ON, EXAMPLESDATADIR "/toggle_disabled_on.png" ); lite_on_button_press( button, toggle_button_pressed, window ); /* setup the image */ rect.x = 200; rect.y = 20; rect.w = 64; rect.h = 50; res = lite_new_image(LITE_BOX(window), &rect, liteNoImageTheme, &image); lite_load_image( image, EXAMPLESDATADIR "/D.png" ); /* show the window */ lite_set_window_opacity( window, liteFullWindowOpacity ); /* run the default event loop */ lite_window_event_loop( window, 0 ); /* destroy the window with all this children and resources */ lite_destroy_window( window ); /* deinitialize */ lite_close(); return 0; }
void *BrowserMain(void * argument) { printf("%s:%d\n", __func__, __LINE__); int argc = 0; char**argv = NULL; pthread_mutex_init (&mutex, NULL); g_type_init(); g_thread_init(NULL); lite_open( &argc, &argv ); WebKitDFB_Initialize( lite_get_dfb_interface() ); IDirectFBDisplayLayer *layer; DFBDisplayLayerConfig config; lite_get_layer_interface( &layer ); layer->GetConfiguration( layer, &config ); DFBRectangle windowRect = { 0, 0, config.width, config.height }; DFBRectangle webviewRect = { 0, 0, config.width, config.height }; lite_new_window( NULL, &windowRect, DWCAPS_NONE, liteNoWindowTheme, "WebKitDFB", &g_window ); lite_new_webview( LITE_BOX(g_window), &webviewRect, liteDefaultWebViewTheme, &g_webview); lite_on_webview_doc_loaded ( g_webview, on_webview_doc_loaded, NULL ); lite_on_raw_window_keyboard(g_window, on_key_press, g_webview ); lite_focus_box( LITE_BOX(g_webview) ); lite_set_window_opacity(g_window, 0xff); g_window->bg.enabled = DFB_FALSE; //lite_set_window_background_color(g_window, 0xff, 0, 0, 0xff); registerJsFunctions(g_webview, g_Callback); lite_webview_load(g_webview, g_url); lite_webview_set_transparent(g_webview, true); // FAKE KEY INTERFACE //IDirectFB *dfb; //dfb = lite_get_dfb_interface(); //IDirectFBDisplayLayer *layer = NULL; //dfb->GetDisplayLayer(dfb, DLID_PRIMARY, &layer); layer->GetWindow(layer, 1, &g_dfb_window); lite_enqueue_window_timeout(200, timeout_cb, NULL, &timer_id); g_run = 1; while (g_run) { pthread_mutex_lock(&mutex); g_main_context_iteration(NULL, FALSE); lite_window_event_loop(g_window, 1); pthread_mutex_unlock(&mutex); } lite_close(); return NULL; }
static int loadWindow(activity *act) { int i; DFBResult res; DFBRectangle rect; LiteImage *backImg; LiteWindow *window; window = act->window; #define HERO2_SUB2_BKIMG_X 0 #define HERO2_SUB2_BKIMG_Y 0 rect.x = HERO2_SUB2_BKIMG_X; rect.y = HERO2_SUB2_BKIMG_Y; rect.w = MKD_SCREEN_WIDTH; rect.h = MKD_SCREEN_HEIGHT; /* Load background */ res = lite_new_image(LITE_BOX(window), &rect, liteNoImageTheme, &backImg); res = lite_load_image(backImg, IMAGE_DIR "1_1_1_bg.png"); rect.x = 18; rect.y = 42; rect.w = 204; rect.h = 200; res = lite_new_image(LITE_BOX(window), &rect, liteNoImageTheme, &elecImg); rect.x = 0; rect.y = 42; rect.w = 240; rect.h = 207; res = lite_new_image(LITE_BOX(window), &rect, liteNoImageTheme, &fuelImg); /* setup labels */ rect.x = rect.y = rect.w = rect.h = 0; res = lite_new_label(LITE_BOX(window), &rect, liteNoLabelTheme, get_lang_font_size(NULL), &rangeNumLabel); res = lite_new_label(LITE_BOX(window), &rect, liteNoLabelTheme, get_lang_font_size(NULL), &kmLabel); res = lite_new_label(LITE_BOX(window), &rect, liteNoLabelTheme, get_lang_font_size(NULL), &titleLabel); res = lite_new_label(LITE_BOX(window), &rect, liteNoLabelTheme, get_lang_font_size(NULL), &fullyChargeLabel); res = lite_new_label(LITE_BOX(window), &rect, liteNoLabelTheme, get_lang_font_size(NULL), &elecNumLabel); res = lite_new_label(LITE_BOX(window), &rect, liteNoLabelTheme, get_lang_font_size(NULL), &fuelNumLabel); #if 0 #define EDGE_WIDTH 3 // electricity Images rect.y = 142; rect.w = 23; rect.h = 15; for (i = 0 ; i < MAX_ELECTRIC_DISPLAY_LEVEL ; ++i) { rect.x = 60 + i * (rect.w + EDGE_WIDTH); res = lite_new_image(LITE_BOX(window), &rect, liteNoImageTheme, &elecImg[i]); lite_load_image(elecImg[i], IMAGE_DIR "1_1_1_electric.png"); } // fuel Images rect.y = 190; rect.w = 23; rect.h = 15; for (i = 0 ; i < MAX_FUEL_DISPLAY_LEVEL ; ++i) { rect.x = 60 + i * (rect.w + EDGE_WIDTH); res = lite_new_image(LITE_BOX(window), &rect, liteNoImageTheme, &fuelImg[i]); lite_load_image(fuelImg[i], IMAGE_DIR "1_1_1_fuel.png"); } return MKD_OK; #endif }
static void update_fully_charge_time() { pthread_mutex_lock(&ui_mutex); char timestr[16]; char msg[32] = {0}; time_t fully_charge_time; int numH, numM, remain_chg_time = 0; enum rke_range_rct rct = getInfoManager()->rke_get_hvs_remaining_charging_time(&remain_chg_time); enum rke_connection_status connection = getInfoManager()->get_connection_status(); if ( (connection != CONNECTION_SHORT && connection != CONNECTION_LONG) || (rct >= RANGE_BATTERY) ) { lite_set_box_visible(LITE_BOX(fullyChargeLabel), false); pthread_mutex_unlock(&ui_mutex); return; } switch (rct) { case RANGE_HVS_RCT_FULL_CHARGED: setup_label_by_tag_color(fullyChargeLabel, "LS_FULLCHARGED", &Colors.steelBlue); lite_set_label_text2(fullyChargeLabel, NULL); break; case RANGE_INIT: setup_label_by_tag_color(fullyChargeLabel, "LS_INITIALIAZTION", &Colors.steelBlue); lite_set_label_text2(fullyChargeLabel, NULL); break; case RANGE_HVS_RCT_NORMAL: fully_charge_time = time(NULL) + remain_chg_time * 60; formatTimeStrWithNoon(fully_charge_time, timestr, sizeof(timestr)); if (getInfoManager()->getLanguageID() == MULTI_LANG_LANGUAGE_ENUM_ARABIC) { setup_label_by_tag(fullyChargeLabel, "LS_FULLCHARGE_TIME"); lite_set_label_color2(fullyChargeLabel, &Colors.steelBlue); lite_set_label_text(fullyChargeLabel, timestr); lite_set_label_text2(fullyChargeLabel, get_lang_str_by_tag("LS_FULLCHARGE_TIME")); } else { setup_label_by_tag_color2(fullyChargeLabel, "LS_FULLCHARGE_TIME", &Colors.steelBlue, &Colors.white, timestr); } break; case RANGE_HVS_RCT_NORMAL_APPROX: fully_charge_time = time(NULL) + remain_chg_time * 60; formatTimeStrWithNoon(fully_charge_time, timestr, sizeof(timestr)); if (getInfoManager()->getLanguageID() == MULTI_LANG_LANGUAGE_ENUM_ARABIC) { snprintf(msg, sizeof(msg), "%s %s", timestr, get_lang_str_by_tag("LS_FULLCHARGED_APPROX")); setup_label_by_tag(fullyChargeLabel, "LS_FULLCHARGE_TIME"); lite_set_label_color2(fullyChargeLabel, &Colors.steelBlue); lite_set_label_text(fullyChargeLabel, msg); lite_set_label_text2(fullyChargeLabel, get_lang_str_by_tag("LS_FULLCHARGE_TIME")); } else { snprintf(msg, sizeof(msg), "%s %s", get_lang_str_by_tag("LS_FULLCHARGED_APPROX"), timestr); setup_label_by_tag_color2(fullyChargeLabel, "LS_FULLCHARGE_TIME", &Colors.steelBlue, &Colors.white, msg); } break; case RANGE_HVS_RCT_11HR: fully_charge_time = time(NULL) + 11 * 60 * 60; formatTimeStrWithNoon(fully_charge_time, timestr, sizeof(timestr)); snprintf(msg, sizeof(msg), ">%s", timestr); if (getInfoManager()->getLanguageID() == MULTI_LANG_LANGUAGE_ENUM_ARABIC) { setup_label_by_tag(fullyChargeLabel, "LS_FULLCHARGE_TIME"); lite_set_label_color2(fullyChargeLabel, &Colors.steelBlue); lite_set_label_text(fullyChargeLabel, msg); lite_set_label_text2(fullyChargeLabel, get_lang_str_by_tag("LS_FULLCHARGE_TIME")); } else { setup_label_by_tag_color2(fullyChargeLabel, "LS_FULLCHARGE_TIME", &Colors.steelBlue, &Colors.white, msg); } break; default: break; } lite_set_box_visible(LITE_BOX(fullyChargeLabel), true); pthread_mutex_unlock(&ui_mutex); }
static void switch_ui() { pthread_mutex_lock(&ui_mutex); DFBResult res; char meterbuf[16]; int distance, unit_factor; bool negative_dist; enum mileage_unit mUnit = getInfoManager()->get_mileage_unit(); if (mUnit == MILEAGE_UNIT_MILE) { lite_set_label_text(meterLabel, get_lang_str_by_tag("LS_SC_MILE_1ST")); } else { lite_set_label_text(meterLabel, get_lang_str_by_tag("LS_SC_KM_1ST")); } distance = getInfoManager()->rke_get_cbs_distance(CBS_DETAIL_ID_FRONT_BRAKES); unit_factor = getInfoManager()->rke_get_cbs_unit_factor(CBS_DETAIL_ID_FRONT_BRAKES); negative_dist = getInfoManager()->rke_is_cbs_distance_negative(CBS_DETAIL_ID_FRONT_BRAKES); if (distance == RKE_ERR) { snprintf(meterbuf, sizeof(meterbuf), "%s", get_lang_str_by_tag("LS_SC_SINCENODATA_1ST")); } else if (negative_dist) { snprintf(meterbuf, sizeof(meterbuf), "%s %d", get_lang_str_by_tag("LS_SC_SINCE_1ST"), distance * unit_factor); } else { snprintf(meterbuf, sizeof(meterbuf), "%d", distance * unit_factor); } lite_set_label_text(meterNumLabel, meterbuf); switch (getInfoManager()->rke_get_cbs_status(CBS_DETAIL_ID_FRONT_BRAKES)) { case CBSS_GRAY: res = lite_load_image(iconImg, IMAGE_DIR "1_2_frontbreaks_grey.png"); setup_label_by_tag_width(detailLabel, "LS_FRONT_BRAKEDESC_SENSOR", RIGHT_MARGIN_WIDTH); break; case CBSS_GREEN: res = lite_load_image(iconImg, IMAGE_DIR "1_2_frontbreaks_white.png"); setup_label_by_tag_width(detailLabel, "LS_FRONT_BRAKEDESC", RIGHT_MARGIN_WIDTH); break; case CBSS_YELLOW: res = lite_load_image(iconImg, IMAGE_DIR "1_2_frontbreaks_yellow.png"); setup_label_by_tag_width(detailLabel, "LS_FRONT_BRAKEDESC_Y", RIGHT_MARGIN_WIDTH); break; default: case CBSS_RED: res = lite_load_image(iconImg, IMAGE_DIR "1_2_frontbreaks_red.png"); setup_label_by_tag_width(detailLabel, "LS_FRONT_BRAKEDESC_R", RIGHT_MARGIN_WIDTH); break; } lite_get_label_total_lines(detailLabel, &total_line); lite_set_label_cur_line(detailLabel, 0); max_moved_lines = total_line - MAX_CBS_DETAIL_LINES; LiteBox *box = LITE_BOX(scrollbarImg); if (total_line < 5) { lite_set_box_visible(LITE_BOX(scrollbarImg), false); } else { if (total_line == 5) { box->rect.x = 223; box->rect.y = SCROLLBAR_TOP; box->rect.w = 4; box->rect.h = 56; lite_load_image(scrollbarImg, IMAGE_DIR "key_scrollbar_3.png"); } else if (total_line == 6) { box->rect.x = 223; box->rect.y = SCROLLBAR_TOP; box->rect.w = 4; box->rect.h = 40; lite_load_image(scrollbarImg, IMAGE_DIR "key_scrollbar_2.png"); } else if (total_line >= 7) { box->rect.x = 223; box->rect.y = SCROLLBAR_TOP; box->rect.w = 4; box->rect.h = 24; lite_load_image(scrollbarImg, IMAGE_DIR "key_scrollbar_1.png"); } lite_reinit_box_and_children(box); lite_update_box(box->parent, NULL); lite_set_box_visible(box, true); scroll_step = (SCROLLBAR_BOTTOM - SCROLLBAR_TOP - box->rect.h) / max_moved_lines; } pthread_mutex_unlock(&ui_mutex); }
int loadMainMenu(LiteWindow *window) { DFBResult res; DFBRectangle rect; LiteImage *backImg; LiteButton *lockButton; LiteButton *exitButton; LiteLabel *label; rect.x = 0; rect.y = 0; rect.w = MKD_SCREEN_WIDTH; rect.h = MKD_SCREEN_HEIGHT; lite_set_window_blend_mode(window, LITE_BLEND_AUTO, LITE_BLEND_ALWAYS); //lite_set_window_background(window, NULL); lite_set_window_background_color(window, 0, 0, 0, 1); /* Setup lock button */ rect.x = 50; rect.y = 80; rect.w = 52; rect.h = 64; res = lite_new_button(LITE_BOX(window), &rect, liteNoButtonTheme, &lockButton); res = lite_set_button_image(lockButton, LITE_BS_NORMAL, IMAGE_DIR "car_lock_2.png"); res = lite_set_button_image(lockButton, LITE_BS_HILITE, IMAGE_DIR "car_lock_2.png"); res = lite_set_button_image(lockButton, LITE_BS_PRESSED, IMAGE_DIR "car_lock_2.png"); //lite_new_text_button(LITE_BOX(window), &rect, "Vehicle Info", liteDefaultTextButtonTheme, &vinfoButton); //lite_on_button_press( lockButton, vehicleInfoPressed, window ); #if 0 /* Load background */ res = lite_new_image(LITE_BOX(window), &rect, liteNoImageTheme, &backImg); res = lite_load_image(backImg, IMAGE_DIR "H1.png"); /* Setup Vinfo button */ rect.x = 10; rect.y = 49; rect.w = 204; rect.h = 46; res = lite_new_button(LITE_BOX(window), &rect, liteNoButtonTheme, &vinfoButton); res = lite_set_button_image(vinfoButton, LITE_BS_NORMAL, IMAGE_DIR "Vinfo_d.png"); res = lite_set_button_image(vinfoButton, LITE_BS_HILITE, IMAGE_DIR "Vinfo_d.png"); res = lite_set_button_image(vinfoButton, LITE_BS_PRESSED, IMAGE_DIR "Vinfo_d.png"); //lite_new_text_button(LITE_BOX(window), &rect, "Vehicle Info", liteDefaultTextButtonTheme, &vinfoButton); lite_on_button_press( vinfoButton, vehicleInfoPressed, window ); /* Setup climate button */ rect.x = 0; rect.y = 151; rect.w = 224; rect.h = 53; res = lite_new_button(LITE_BOX(window), &rect, liteNoButtonTheme, &climateButton); res = lite_set_button_image(climateButton, LITE_BS_NORMAL, IMAGE_DIR "Climate_d.png"); res = lite_set_button_image(climateButton, LITE_BS_HILITE, IMAGE_DIR "Climate_d.png"); res = lite_set_button_image(climateButton, LITE_BS_PRESSED, IMAGE_DIR "Climate_a.png"); lite_on_button_press( climateButton, climatePressed, window ); #endif /* Setup firmware info */ getFwVersion(); rect.x = 130; rect.y = 293; rect.w = 80; res = lite_new_label(LITE_BOX(window), &rect, liteNoLabelTheme, 18, &label); DFBColor color; color.a = 1; color.r = 255; color.g = 255; color.b = 255; lite_set_label_color( label, &color); lite_set_label_text( label, fwinfo ); /* Setup exit button */ rect.x = 140; rect.y = 260; rect.w = 140; rect.h = 60; res = lite_new_button(LITE_BOX(window), &rect, liteNoButtonTheme, &exitButton); lite_on_button_press( exitButton, exitPressed, window ); return MKD_OK; }