demo_xul.c 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. #include "ftk.h"
  2. #include "ftk_xul.h"
  3. const char* t1 = "<window> </window>";
  4. #define IDC_QUIT 100
  5. static Ret button_quit_clicked(void* ctx, void* obj)
  6. {
  7. ftk_widget_unref(ctx);
  8. return RET_OK;
  9. }
  10. #ifdef FTK_AS_PLUGIN
  11. #include "ftk_app_demo.h"
  12. FTK_HIDE int FTK_MAIN(int argc, char* argv[]);
  13. FtkApp* ftk_app_demo_xul_create()
  14. {
  15. return ftk_app_demo_create(_("xul"), ftk_main);
  16. }
  17. #else
  18. #define FTK_HIDE extern
  19. #endif /*FTK_AS_PLUGIN*/
  20. FTK_HIDE int FTK_MAIN(int argc, char* argv[])
  21. {
  22. if(argc > 1)
  23. {
  24. FtkWidget* win = NULL;
  25. FtkWidget* quit = NULL;
  26. FtkXulCallbacks callbacks;
  27. FTK_INIT(argc, argv);
  28. callbacks.translate_text = NULL;
  29. callbacks.load_image = (FtkXulLoadImage)ftk_icon_cache_load;
  30. callbacks.ctx = ftk_icon_cache_create(NULL, "testdata");
  31. win = ftk_xul_load_file(argv[1], &callbacks);
  32. ftk_icon_cache_destroy(callbacks.ctx);
  33. FTK_QUIT_WHEN_WIDGET_CLOSE(win);
  34. quit = ftk_widget_lookup(win, IDC_QUIT);
  35. ftk_button_set_clicked_listener(quit, button_quit_clicked, win);
  36. ftk_widget_show_all(win, 1);
  37. FTK_RUN();
  38. }
  39. else
  40. {
  41. ftk_logd("Usage: %s xul\n", argv[0]);
  42. return 0;
  43. }
  44. return 0;
  45. }