[#PEBBLE] Trabajando con botones

Hola!

Justo hoy el entorno de desarrollo en la nuble de Pebble, CloudPebble ha cambiado para soportar el SDK 2.1. Asi que el ejemplo de hoy viene sin video hasta que llegue a Madrid y pueda “poner todo en orden”.

En primer lugar lo que haremos es crear una app en modo “minimal”, en PebbleCloud (ya lo expliqué aquí).. Tendremos algo similar a lo siguiente:

image

Una vez seleccionado el archivo main.c comenzaremos a trabajar sobre el mismo. En primer lugar agregamos un controlador general para capturar el click en los 3 botones de la derecha de Pebble: Up, Select y Down Button. Este controllador está en la línea 15 y registramos el mismo en el Init() general de la aplicación en la línea 8.

   1: #include <pebble.h>

   2:  

   3: Window *my_window;

   4: TextLayer *text_layer;

   5:  

   6: void handle_init(void) {

   7:   my_window = window_create();

   8:   window_set_click_config_provider(window, click_config_provider);

   9:   text_layer = text_layer_create(GRect(0, 0, 144, 20));

  10:   window_stack_push(my_window, true);

  11: }

  12:  

  13: void handle_deinit(void) {

  14:   text_layer_destroy(text_layer);

  15:   window_destroy(my_window);

  16: }

  17:  

  18: /* Buttons Handlers 😉 */

  19: void click_config_provider(void *context)

  20: {

  21:     window_single_click_subscribe(BUTTON_ID_UP, up_click_handler);

  22:     window_single_click_subscribe(BUTTON_ID_DOWN, down_click_handler);

  23:     window_single_click_subscribe(BUTTON_ID_SELECT, select_click_handler);

  24: }

  25:  

  26: void up_click_handler(ClickRecognizerRef recognizer, void *context)

  27: {

  28:   /* Up button code goes here */ 

  29: }

  30:  

  31: void down_click_handler(ClickRecognizerRef recognizer, void *context)

  32: {

  33:   /* Down button code goes here */ 

  34: }

  35:  

  36: void select_click_handler(ClickRecognizerRef recognizer, void *context)

  37: {

  38:   /* Select button code goes here */  

  39: }

  40:  

  41: int main(void) {

  42:   handle_init();

  43:   app_event_loop();

  44:   handle_deinit();

  45: }

 

Finalmente tenemos las diferentes funciones que se ejecutarán en cada click asociadas en las líneas 21, 22 y 23. Por ahora la app no hace nada, en el próximo post haremos que interactue con los botones.

Me voy al aeropuerto ya !

Saludos @ Berlin

El Bruno

image image image Google

Leave a comment

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.

%d bloggers like this: