/src/demos/demo_keyboard.c

http://ftk.googlecode.com/ · C · 56 lines · 46 code · 10 blank · 0 comment · 0 complexity · 74e45b514e069d529120d90e2c851ad3 MD5 · raw file

  1. #include "ftk.h"
  2. #include "ftk_util.h"
  3. #include "ftk_key_board.h"
  4. #ifdef FTK_AS_PLUGIN
  5. #include "ftk_app_demo.h"
  6. FTK_HIDE int FTK_MAIN(int argc, char* argv[]);
  7. FtkApp* ftk_app_demo_keyboard_create()
  8. {
  9. return ftk_app_demo_create(_("keyboard"), ftk_main);
  10. }
  11. #else
  12. #define FTK_HIDE extern
  13. #endif /*FTK_AS_PLUGIN*/
  14. FTK_HIDE int FTK_MAIN(int argc, char* argv[])
  15. {
  16. size_t w = 0;
  17. size_t h = 0;
  18. FtkWidget* win = NULL;
  19. FtkWidget* entry = NULL;
  20. FtkWidget* key_board = NULL;
  21. char filename[FTK_MAX_PATH+1] = {0};
  22. FTK_INIT(argc, argv);
  23. win = ftk_app_window_create();
  24. ftk_window_set_animation_hint(win, "app_main_window");
  25. ftk_widget_set_text(win, "KeyBoard");
  26. w = ftk_widget_width(win);
  27. h = ftk_widget_height(win);
  28. ftk_input_method_manager_set_current(ftk_default_input_method_manager(), -1);
  29. entry = ftk_entry_create(win, 10, 30, w - 20, 30);
  30. ftk_strs_cat(filename, FTK_MAX_PATH,
  31. ftk_config_get_data_dir(ftk_default_config()), "/theme/", "default", "/keyboard.xml", NULL);
  32. key_board = ftk_key_board_create(win, 0, h-180, w, 180);
  33. ftk_key_board_load(key_board, filename);
  34. ftk_key_board_reset_candidates(key_board);
  35. ftk_key_board_add_candidate(key_board, "?");
  36. ftk_key_board_add_candidate(key_board, "?");
  37. ftk_key_board_add_candidate(key_board, "??");
  38. ftk_key_board_add_candidate(key_board, "?");
  39. ftk_key_board_add_candidate(key_board, "???");
  40. ftk_key_board_add_candidate(key_board, "???");
  41. ftk_key_board_set_editor(key_board, entry);
  42. ftk_widget_show_all(win, 1);
  43. FTK_QUIT_WHEN_WIDGET_CLOSE(win);
  44. FTK_RUN();
  45. return 0;
  46. }