You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

143 lines
3.5KB

  1. //
  2. // file: test_zenity.c
  3. // author: bsp
  4. // license: CC0 (public domain)
  5. // created: 24May2019
  6. // changed:
  7. //
  8. #include <stdio.h>
  9. #include <stdlib.h>
  10. #include "osdialog.h"
  11. int main(int argc, char**argv) {
  12. int r = 0;
  13. char *name = NULL;
  14. if(1 == argc)
  15. {
  16. // Test message dialogs (ok)
  17. r = osdialog_message(OSDIALOG_INFO, OSDIALOG_OK, "This is an info message.");
  18. printf("info dialog returned r=%d\n", r);
  19. r = osdialog_message(OSDIALOG_WARNING, OSDIALOG_OK, "This is a warning message.");
  20. printf("warning dialog returned r=%d\n", r);
  21. r = osdialog_message(OSDIALOG_ERROR, OSDIALOG_OK, "This is an error message.");
  22. printf("error dialog returned r=%d\n", r);
  23. // Test message dialogs (ok / cancel / yes / no)
  24. r = osdialog_message(OSDIALOG_INFO, OSDIALOG_YES_NO, "This is an info message.");
  25. printf("info dialog returned r=%d\n", r);
  26. r = osdialog_message(OSDIALOG_WARNING, OSDIALOG_OK_CANCEL, "This is a warning message.");
  27. printf("warning dialog returned r=%d\n", r);
  28. r = osdialog_message(OSDIALOG_ERROR, OSDIALOG_YES_NO, "This is an error message.");
  29. printf("error dialog returned r=%d\n", r);
  30. }
  31. // Test file dialogs
  32. if(argc <= 2)
  33. {
  34. osdialog_filter_patterns patternsMP3 = {
  35. "mp3",
  36. NULL
  37. };
  38. osdialog_filter_patterns patternsFLAC = {
  39. "flac",
  40. &patternsMP3
  41. };
  42. osdialog_filter_patterns patternsWAV = {
  43. "wav",
  44. &patternsFLAC
  45. };
  46. osdialog_filters filterAudio = {
  47. "Audio Files",
  48. &patternsWAV,
  49. NULL
  50. };
  51. osdialog_filter_patterns patternsAVI = {
  52. "avi",
  53. NULL
  54. };
  55. osdialog_filter_patterns patternsMP4 = {
  56. "mp4",
  57. &patternsAVI
  58. };
  59. osdialog_filter_patterns patternsMKV = {
  60. "mkv",
  61. &patternsMP4
  62. };
  63. osdialog_filters filterVideo = {
  64. "Video Files",
  65. &patternsMKV,
  66. &filterAudio
  67. };
  68. // File selection (open)
  69. {
  70. name = osdialog_file(OSDIALOG_OPEN, "/tmp/"/*path*/, "myfile", &filterVideo);
  71. if(NULL != name)
  72. {
  73. printf("selected file (open) is \"%s\"\n", name);
  74. free(name);
  75. }
  76. else
  77. {
  78. printf("file OSDIALOG_OPEN was canceled.\n");
  79. }
  80. }
  81. // Directory selection
  82. {
  83. name = osdialog_file(OSDIALOG_OPEN_DIR, "/tmp/"/*path*/, "myfile", NULL/*filters*/);
  84. if(NULL != name)
  85. {
  86. printf("selected directory is \"%s\"\n", name);
  87. free(name);
  88. }
  89. else
  90. {
  91. printf("file OSDIALOG_OPEN_DIR was canceled.\n");
  92. }
  93. }
  94. // File selection (save)
  95. {
  96. name = osdialog_file(OSDIALOG_SAVE, "/tmp/"/*path*/, "myfile", &filterVideo);
  97. if(NULL != name)
  98. {
  99. printf("selected file (save) is \"%s\"\n", name);
  100. free(name);
  101. }
  102. else
  103. {
  104. printf("file OSDIALOG_SAVE was canceled.\n");
  105. }
  106. }
  107. }
  108. // Test color dialog
  109. if(argc <= 3)
  110. {
  111. osdialog_color color = { 80/*r*/, 120/*g*/, 160/*b*/, 200/*a*/ };
  112. if(osdialog_color_picker(&color, 0/*opacity*/))
  113. {
  114. printf("selected color rgba=(%d, %d, %d, %d) (#%02x%02x%02x%02x)\n",
  115. color.r, color.g, color.b, color.a,
  116. color.a, color.r, color.g, color.b
  117. );
  118. }
  119. else
  120. {
  121. printf("color picker dialog was canceled.\n");
  122. }
  123. }
  124. return r;
  125. }