流星悟语 发表于 2015-9-21 20:28:41

Tizen设备Progressbar与自定义单位格式

这个代码片段展示了如何添加自定义单元格式基本progressbar小部件。
//units label format callback
static char *_progress_format_cb(double val) {
      static char buffer;
      int items = val * 100;
      if (snprintf(buffer, 15, "%i items sent", items) > 0) {
                return strdup(buffer);
      }
      return NULL;
}

//free unit format string
static void _progress_format_free(char *str) {
      free(str);
}

// update progressbar, 1% for each call (for demo purposes)
static Eina_Bool progressbar_value_set(void *data) {
      Evas_Object *progressbar = data;
      double progress = elm_progressbar_value_get(progressbar);
      if (progress < 1.0) {
                progress += 0.01;
                elm_progressbar_value_set(progressbar, progress);
                return ECORE_CALLBACK_RENEW;
      }
      return ECORE_CALLBACK_CANCEL;
}

static void progressbar_test(Evas_Object *parent) {
      // create a progressbar
      Evas_Object *progressbar = elm_progressbar_add(parent);
      elm_win_resize_object_add(parent, progressbar);

      //progressbar setup
      elm_progressbar_horizontal_set(progressbar, EINA_FALSE);
      elm_object_style_set(progressbar, "progressbar");

      //set units label function
      elm_progressbar_unit_format_function_set(progressbar, _progress_format_cb, _progress_format_free);

      evas_object_show(progressbar);

      // add a timer to change progressbar values (demo)
      ecore_timer_add(0.1, progressbar_value_set, progressbar);
}
页: [1]
查看完整版本: Tizen设备Progressbar与自定义单位格式