Mercurial > MadButterfly
comparison examples/svg2code_ex/main.c @ 192:54fdc2a65242
Remove factory from observer APIs.
- Save factory that used to new a subject as subject's attribute.
- Get factory from subject himself instead of passing as an argument.
- It make API of observer more simple and clean.
author | Thinker K.F. Li <thinker@branda.to> |
---|---|
date | Tue, 18 Nov 2008 21:42:30 +0800 |
parents | 530bb7728546 |
children | f9d507a3e1d9 |
comparison
equal
deleted
inserted
replaced
191:18f8c3126cdb | 192:54fdc2a65242 |
---|---|
46 | 46 |
47 int main(int argc, char * const argv[]) { | 47 int main(int argc, char * const argv[]) { |
48 X_MB_runtime_t *rt; | 48 X_MB_runtime_t *rt; |
49 redraw_man_t *rdman; | 49 redraw_man_t *rdman; |
50 svg2code_ex_t *svg2code; | 50 svg2code_ex_t *svg2code; |
51 ob_factory_t *factory; | |
52 subject_t *subject; | 51 subject_t *subject; |
53 ex_rt_t ex_rt; | 52 ex_rt_t ex_rt; |
54 | 53 |
55 /* | 54 /* |
56 * Initialize a runtime with XLib as backend. | 55 * Initialize a runtime with XLib as backend. |
62 */ | 61 */ |
63 rdman = X_MB_rdman(rt); | 62 rdman = X_MB_rdman(rt); |
64 svg2code = svg2code_ex_new(rdman, rdman->root_coord); | 63 svg2code = svg2code_ex_new(rdman, rdman->root_coord); |
65 | 64 |
66 /* | 65 /* |
67 * Get observer factory | |
68 */ | |
69 factory = rdman_get_ob_factory(rdman); | |
70 /* | |
71 * Register observers to subjects of events for objects. | 66 * Register observers to subjects of events for objects. |
72 */ | 67 */ |
73 subject = coord_get_mouse_event(svg2code->file_button); | 68 subject = coord_get_mouse_event(svg2code->file_button); |
74 ex_rt.rt = rt; | 69 ex_rt.rt = rt; |
75 ex_rt.code = svg2code; | 70 ex_rt.code = svg2code; |
76 subject_add_observer(factory, subject, file_button_handler, &ex_rt); | 71 subject_add_observer(subject, file_button_handler, &ex_rt); |
77 subject = coord_get_mouse_event(svg2code->file_menu); | 72 subject = coord_get_mouse_event(svg2code->file_menu); |
78 subject_add_observer(factory, subject, file_menu_handler, &ex_rt); | 73 subject_add_observer(subject, file_menu_handler, &ex_rt); |
79 | 74 |
80 /* | 75 /* |
81 * Start handle connections, includes one to X server. | 76 * Start handle connections, includes one to X server. |
82 * User start to interact with the application. | 77 * User start to interact with the application. |
83 */ | 78 */ |