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 */