/src/ftk_globals.c

http://ftk.googlecode.com/ · C · 251 lines · 169 code · 53 blank · 29 comment · 0 complexity · 4c54658444858b2f82c846456c251849 MD5 · raw file

  1. /*
  2. * File: ftk_globals.c
  3. * Author: Li XianJing <xianjimli@hotmail.com>
  4. * Brief: some global variables.
  5. *
  6. * Copyright (c) 2009 - 2010 Li XianJing <xianjimli@hotmail.com>
  7. *
  8. * Licensed under the Academic Free License version 2.1
  9. *
  10. * This program is free software; you can redistribute it and/or modify
  11. * it under the terms of the GNU General Public License as published by
  12. * the Free Software Foundation; either version 2 of the License, or
  13. * (at your option) any later version.
  14. *
  15. * This program is distributed in the hope that it will be useful,
  16. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  17. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  18. * GNU General Public License for more details.
  19. *
  20. * You should have received a copy of the GNU General Public License
  21. * along with this program; if not, write to the Free Software
  22. * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
  23. */
  24. /*
  25. * History:
  26. * ================================================================
  27. * 2009-10-03 Li XianJing <xianjimli@hotmail.com> created
  28. *
  29. */
  30. #include "ftk_globals.h"
  31. struct _FtkGlobals
  32. {
  33. FtkCanvas* canvas;
  34. FtkTheme* theme;
  35. FtkDisplay* display;
  36. FtkMainLoop* main_loop;
  37. FtkLogLevel log_level;
  38. FtkWidget* status_panel;
  39. FtkConfig* config;
  40. FtkSource* primary_source;
  41. FtkAllocator* allocator;
  42. FtkWndManager* wnd_manager;
  43. FtkTextLayout* text_layout;
  44. FtkBitmapFactory* bitmap_factory;
  45. FtkSourcesManager* sources_manager;
  46. FtkImPreeditor* input_method_preeditor;
  47. FtkAnimationTrigger* animation_trigger;
  48. FtkInputMethodManager* input_manager_manager;
  49. }g_globals;
  50. FtkAnimationTrigger* ftk_default_animation_trigger(void)
  51. {
  52. return g_globals.animation_trigger;
  53. }
  54. FtkDisplay* ftk_default_display(void)
  55. {
  56. return g_globals.display;
  57. }
  58. FtkCanvas* ftk_shared_canvas(void)
  59. {
  60. return g_globals.canvas;
  61. }
  62. FtkTheme* ftk_default_theme(void)
  63. {
  64. return g_globals.theme;
  65. }
  66. FtkSource* ftk_primary_source(void)
  67. {
  68. return g_globals.primary_source;
  69. }
  70. FtkConfig* ftk_default_config(void)
  71. {
  72. return g_globals.config;
  73. }
  74. FtkAllocator* ftk_default_allocator(void)
  75. {
  76. return g_globals.allocator;
  77. }
  78. FtkTextLayout* ftk_default_text_layout(void)
  79. {
  80. return g_globals.text_layout;
  81. }
  82. FtkImPreeditor* ftk_default_input_method_preeditor(void)
  83. {
  84. return g_globals.input_method_preeditor;
  85. }
  86. FtkInputMethodManager* ftk_default_input_method_manager(void)
  87. {
  88. return g_globals.input_manager_manager;
  89. }
  90. FtkMainLoop* ftk_default_main_loop(void)
  91. {
  92. return g_globals.main_loop;
  93. }
  94. FtkLogLevel ftk_default_log_level(void)
  95. {
  96. return g_globals.log_level;
  97. }
  98. FtkWndManager* ftk_default_wnd_manager(void)
  99. {
  100. return g_globals.wnd_manager;
  101. }
  102. FtkWidget* ftk_default_status_panel(void)
  103. {
  104. return g_globals.status_panel;
  105. }
  106. FtkBitmapFactory* ftk_default_bitmap_factory(void)
  107. {
  108. return g_globals.bitmap_factory;
  109. }
  110. FtkSourcesManager* ftk_default_sources_manager(void)
  111. {
  112. return g_globals.sources_manager;
  113. }
  114. void ftk_set_animation_trigger(FtkAnimationTrigger* animation_trigger)
  115. {
  116. g_globals.animation_trigger = animation_trigger;
  117. return;
  118. }
  119. void ftk_set_display(FtkDisplay* display)
  120. {
  121. g_globals.display = display;
  122. return;
  123. }
  124. void ftk_set_main_loop(FtkMainLoop* main_loop)
  125. {
  126. g_globals.main_loop = main_loop;
  127. return;
  128. }
  129. void ftk_set_log_level(FtkLogLevel level)
  130. {
  131. g_globals.log_level = level;
  132. return;
  133. }
  134. void ftk_set_status_panel(FtkWidget* status_panel)
  135. {
  136. g_globals.status_panel = status_panel;
  137. return;
  138. }
  139. void ftk_set_wnd_manager(FtkWndManager* wnd_manager)
  140. {
  141. g_globals.wnd_manager = wnd_manager;
  142. return;
  143. }
  144. void ftk_set_bitmap_factory(FtkBitmapFactory* bitmap_factory)
  145. {
  146. g_globals.bitmap_factory = bitmap_factory;
  147. return;
  148. }
  149. void ftk_set_sources_manager(FtkSourcesManager* sources_manager)
  150. {
  151. g_globals.sources_manager = sources_manager;
  152. return;
  153. }
  154. void ftk_set_shared_canvas(FtkCanvas* canvas)
  155. {
  156. g_globals.canvas = canvas;
  157. return;
  158. }
  159. void ftk_set_theme(FtkTheme* theme)
  160. {
  161. g_globals.theme = theme;
  162. return;
  163. }
  164. void ftk_set_primary_source(FtkSource* source)
  165. {
  166. g_globals.primary_source = source;
  167. return;
  168. }
  169. void ftk_set_config(FtkConfig* config)
  170. {
  171. g_globals.config = config;
  172. return;
  173. }
  174. void ftk_set_allocator(FtkAllocator* allocator)
  175. {
  176. g_globals.allocator = allocator;
  177. return;
  178. }
  179. void ftk_set_text_layout(FtkTextLayout* text_layout)
  180. {
  181. g_globals.text_layout = text_layout;
  182. return;
  183. }
  184. void ftk_set_input_method_preeditor(FtkImPreeditor* input_method_preeditor)
  185. {
  186. g_globals.input_method_preeditor = input_method_preeditor;
  187. return;
  188. }
  189. void ftk_set_input_method_manager(FtkInputMethodManager* input_manager_manager)
  190. {
  191. g_globals.input_manager_manager = input_manager_manager;
  192. return;
  193. }
  194. void ftk_clear_globals(void)
  195. {
  196. memset(&g_globals, 0, sizeof(g_globals));
  197. return;
  198. }