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;
}
Beispiel #2
0
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);

}
Beispiel #3
0
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
}
Beispiel #4
0
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();
}
Beispiel #5
0
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;
}
Beispiel #6
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;
}
Beispiel #7
0
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(&reg_label, &box->rect);
    if (!DFB_REGION_CONTAINS_POINT(&reg_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);
}
Beispiel #8
0
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);
}
Beispiel #10
0
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;
}
Beispiel #11
0
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);
}
Beispiel #12
0
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;
}
Beispiel #13
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;
}
Beispiel #14
0
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
}
Beispiel #15
0
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));

}
Beispiel #16
0
/* 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);
    }
}
Beispiel #17
0
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;
}
Beispiel #18
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;
}
Beispiel #19
0
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
}
Beispiel #20
0
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);
}
Beispiel #21
0
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);
}
Beispiel #22
0
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;
}