Exemplo n.º 1
0
SsdWidget ssd_button_new (const char *name, const char *value,
                          const char **bitmap_names, int num_bitmaps,
                          int flags, SsdCallback callback) {

   int i;
   SsdWidget w;
   SsdClickOffsets btn_offsets = BUTTON_CLICK_OFFSETS_DEFAULT;
//   RoadMapImage image;
   struct ssd_button_data *data =
      (struct ssd_button_data *)calloc (1, sizeof(*data));


   w = ssd_widget_new (name, ssd_button_on_key_pressed, flags);

   w->_typeid = "Button";

   w->draw  = draw;
   w->release = release;
   w->flags = flags;
   w->data = data;

   data->state  = BUTTON_STATE_NORMAL;
   // TODO :: Load the bitmaps here
   for (i=0; i<num_bitmaps; i++)
   {
	   set_bitmap_name( data, i, bitmap_names[i] );

	   data->bitmap_images[i] = NULL;
   }


   w->callback = callback;

   set_value (w, value);

#ifdef TOUCH_SCREEN
   ssd_widget_set_pointer_force_click( w );
   ssd_widget_set_click_offsets( w, &btn_offsets );
#endif

   w->short_click  = ssd_button_short_click;
   w->long_click   = ssd_button_long_click;
   w->set_value    = set_value;

   return w;
}
Exemplo n.º 2
0
SsdWidget ssd_confirmed_entry_new (const char *name,
                                   const char *value,
                                   int entry_flags,
                                   int text_flags,
                                   int width,
                                   int height,
                                   const char *messagebox_text,
                                   const char *background_text) {

    const char *edit_button[] = {"edit_right", "edit_left"};
    SsdWidget button;
    SsdWidget space;
    SsdWidget bg_text;
    SsdWidget entry;
    SsdWidget text_box;
    int tab_st = 0;
    int txt_box_height = 40;
    SsdEntryContext*  ctx = (SsdEntryContext*) calloc( 1, sizeof( SsdEntryContext ) );
#ifndef TOUCH_SCREEN
    txt_box_height = 23;
#endif

#ifdef OPENGL
    if ( height > 0 )
        txt_box_height = height;
#endif


    entry_ctx_init( ctx );

    if (entry_flags & SSD_WS_TABSTOP) {
        entry_flags &= ~SSD_WS_TABSTOP;
        tab_st = SSD_WS_TABSTOP;
    }

    entry =
        ssd_container_new (name, NULL, SSD_MIN_SIZE, SSD_MIN_SIZE, entry_flags);

    text_box =
        ssd_container_new ("text_box", NULL, width,
                           txt_box_height, SSD_CONTAINER_TXT_BOX|SSD_ALIGN_VCENTER|tab_st);

    ssd_widget_set_pointer_force_click( text_box );
    entry->get_value = get_value;
    entry->set_value = set_value;

    entry->bg_color = NULL;

    text_box->callback = confirmed_edit_callback;
    text_box->bg_color = NULL;


    space = ssd_container_new("Space", NULL,5, SSD_MIN_SIZE, SSD_WIDGET_SPACE);
    ssd_widget_set_color(space, NULL, NULL);
    ssd_widget_add(text_box, space);
    ssd_widget_add (text_box, ssd_text_new ("Text", value, -1, text_flags|SSD_ALIGN_VCENTER));
    if (background_text == NULL)
        bg_text = ssd_text_new ("BgText", "", -1, SSD_ALIGN_VCENTER);
    else
        bg_text = ssd_text_new ("BgText", background_text, -1, SSD_ALIGN_VCENTER);
    ssd_widget_set_color(bg_text, "#C0C0C0",NULL);
    ssd_widget_add (text_box, bg_text);
#ifdef TOUCH_SCREEN
    if (!ssd_widget_rtl(NULL))
        button = ssd_button_new ("edit_button", "", &edit_button[0], 1,
                                 SSD_ALIGN_VCENTER|SSD_ALIGN_RIGHT, edit_callback);
    else
        button = ssd_button_new ("edit_button", "", &edit_button[1], 1,
                                 SSD_ALIGN_VCENTER|SSD_ALIGN_RIGHT, edit_callback);

    if (!ssd_widget_rtl(NULL))
        ssd_widget_set_offset(button, 10, 0);
    else
        ssd_widget_set_offset(button, -11, 0);
#endif
    ctx->mb_text = (void *)strdup(messagebox_text);

    entry->context = ctx;

    if ((value != NULL) && (value[0] != 0))
        ssd_widget_hide(bg_text);

    ssd_widget_add (entry, text_box);

    /* Default keyboard params */
    ssd_entry_set_kb_params( entry, name, NULL, NULL, NULL, 0 );

    return entry;
}
Exemplo n.º 3
0
SsdWidget ssd_entry_new (const char *name,
                         const char *value,
                         int entry_flags,
                         int text_flags,
                         int width,
                         int height,
                         const char *background_text)
{

    SsdWidget space;
    SsdWidget bg_text;
    SsdWidget entry;
    SsdWidget text_box;
    SsdWidget text;
    int tab_st = 0;
    int txt_box_height = ADJ_SCALE(37);
    SsdEntryContext*  ctx = (SsdEntryContext*) calloc( 1, sizeof( SsdEntryContext ) );
#ifndef TOUCH_SCREEN
    txt_box_height = 23;
#endif

#ifdef OPENGL
    if ( height > 0 )
        txt_box_height = height;
#endif

    entry_ctx_init( ctx );

    if (entry_flags & SSD_WS_TABSTOP) {
        entry_flags &= ~SSD_WS_TABSTOP;
        tab_st = SSD_WS_TABSTOP;
    }

    entry =
        ssd_container_new (name, NULL, SSD_MIN_SIZE, SSD_MIN_SIZE, entry_flags);

    text_box =
        ssd_container_new ("text_box", NULL, width,
                           txt_box_height, SSD_CONTAINER_TXT_BOX|SSD_ALIGN_VCENTER|tab_st);
    ssd_widget_set_color(text_box, NULL, NULL);
    ssd_widget_set_pointer_force_click( text_box );
    entry->get_value = get_value;
    entry->set_value = set_value;

    entry->bg_color = NULL;

    text_box->callback = edit_callback;
    text_box->bg_color = NULL;


    space = ssd_container_new("Space", NULL,5, SSD_MIN_SIZE, SSD_WIDGET_SPACE);
    ssd_widget_set_color(space, NULL, NULL);
    ssd_widget_add(text_box, space);
    text = ssd_text_new ("Text", value, -1, text_flags|SSD_ALIGN_VCENTER|SSD_TEXT_SINGLE_LINE );
    ssd_widget_add (text_box, text);
#ifdef TOUCH_SCREEN
    ssd_widget_set_offset(text, 0, -2);
#endif
    if (background_text == NULL)
        bg_text = ssd_text_new ("BgText", "", -1, SSD_ALIGN_VCENTER|SSD_TEXT_SINGLE_LINE);
    else
        bg_text = ssd_text_new ("BgText", background_text, -1, SSD_ALIGN_VCENTER|SSD_TEXT_SINGLE_LINE);
    ssd_widget_set_offset(bg_text, 0, -2);
    ssd_widget_set_color(bg_text, "#C0C0C0",NULL);
    ssd_widget_add (text_box, bg_text);
    entry->context = ctx;

    if ((value != NULL) && (value[0] != 0))
        ssd_widget_hide(bg_text);

    ssd_widget_add (entry, text_box);

    /* Default keyboard params */
    ssd_entry_set_kb_params( entry, background_text, NULL, NULL, NULL, 0 );


    return entry;
}