From 6eacfc22762e5596815bc8d7bb1d861522b854d1 Mon Sep 17 00:00:00 2001 From: Patrick Hornecker Date: Tue, 29 Dec 2009 15:36:14 +0100 Subject: drawing of user positions --- friendfinder/Makefile.inc | 1 + friendfinder/draw_user.c | 26 ++++++++++++++++ friendfinder/draw_user.h | 11 +++++++ friendfinder/gui.c | 78 ++++++++++++++++------------------------------- friendfinder/gui.h | 4 +++ friendfinder/map.c | 0 friendfinder/map.h | 0 friendfinder/receiver.c | 10 +++--- friendfinder/sender.c | 4 +-- 9 files changed, 75 insertions(+), 59 deletions(-) create mode 100644 friendfinder/draw_user.c create mode 100644 friendfinder/draw_user.h delete mode 100644 friendfinder/map.c delete mode 100644 friendfinder/map.h (limited to 'friendfinder') diff --git a/friendfinder/Makefile.inc b/friendfinder/Makefile.inc index 87fba13..f05f240 100644 --- a/friendfinder/Makefile.inc +++ b/friendfinder/Makefile.inc @@ -13,6 +13,7 @@ LIBS = -ledje -lecore -levas -lelementary -lircclient -lcrypto -lproj -lpthread OBJECTS = msg_sender.o OBJECTS += gui.o +OBJECTS += draw_user.o OBJECTS += handler.o OBJECTS += receiver.o OBJECTS += sender.o diff --git a/friendfinder/draw_user.c b/friendfinder/draw_user.c new file mode 100644 index 0000000..d9c493a --- /dev/null +++ b/friendfinder/draw_user.c @@ -0,0 +1,26 @@ +#include "Evas.h" +#include "Elementary.h" + +#include "receiver.h" +#include "gui.h" + +int _h= 600; +int _w = 450; + +Evas_Object *win, *map; + +void init_draw_user(Evas_Object *_win, Evas_Object *_map) +{ + win = _win; + map = _map; +} + +void draw_user(struct position *pos) +{ + double lat, lon; + lat = atof(pos->lat); + lon = atof(pos->lon); + + e_smart_map_overlay_set_bubble(map, "routing", pos->nick, pos->nick, lat, lon, 0xffffffff); +} + diff --git a/friendfinder/draw_user.h b/friendfinder/draw_user.h new file mode 100644 index 0000000..d59d05e --- /dev/null +++ b/friendfinder/draw_user.h @@ -0,0 +1,11 @@ +#ifndef __DRAW_USER_H_ +#define __DRAW_USER_H_ + +#include "Evas.h" +#include "receiver.h" + +void init_draw_user(Evas_Object *_win, Evas_Object *_map); + +void draw_user(struct position *pos); + +#endif diff --git a/friendfinder/gui.c b/friendfinder/gui.c index 19a24e9..6680937 100644 --- a/friendfinder/gui.c +++ b/friendfinder/gui.c @@ -52,6 +52,8 @@ static void on_chat(void *data, Evas_Object *obj, void *event_info) static void on_map(void *data, Evas_Object *obj, void *event_info) { init_map(); + /* init user drawing on map */ + init_draw_user(win, map); } static void on_options(void *data, Evas_Object *obj, void *event_info) @@ -170,14 +172,6 @@ char* get_current_time() return text; } -void print_users(struct position *pos) -{ - Evas_Object *ic; - - elm_icon_add(map); - elm_icon_file_set(ic, "data/sl_bt_0.png", NULL); - evas_object_show(ic); -} /* sets the username, time-text and the text in the bubble */ void set_bubble_text(Evas_Object *bb, char *username, char *text) @@ -332,26 +326,11 @@ void init_options() evas_object_smart_callback_add(bt, "clicked", NULL, NULL); evas_object_show(bt); */ - bt2 = elm_button_add(win); - elm_button_label_set(bt2, "Send own position"); - evas_object_size_hint_weight_set(bt2, 1.0, 0.2); - evas_object_size_hint_align_set(bt2, -1.0, -1.0); - elm_box_pack_end(bx, bt2); - evas_object_smart_callback_add(bt2, "clicked", on_own_position, NULL); - evas_object_show(bt2); - - bt3 = elm_button_add(win); - elm_button_label_set(bt3, "Show other users"); - evas_object_size_hint_weight_set(bt3, 1.0, 0.2); - evas_object_size_hint_align_set(bt3, -1.0, -1.0); - elm_box_pack_end(bx, bt3); - evas_object_smart_callback_add(bt3, "clicked", on_show_users, NULL); - evas_object_show(bt3); } void init_map() { - Evas_Object *bg, *bx, *bx2, *bx3, *bt; + Evas_Object *bg, *bx, *bx2, *bx3, *bt, *bt2, *bt3; struct polyline *pl = polyline_empty(); polyline_set_color(pl, 255, 0, 0, 50); polyline_set_width(pl, 10); @@ -374,18 +353,10 @@ void init_map() bx2 = elm_box_add(win); evas_object_size_hint_weight_set(bx2, 0.5, 0.2); evas_object_size_hint_align_set(bx2, -1.0, -1.0); - evas_object_resize(bx2, w*1.3, h*0.5); + evas_object_resize(bx2, w*0.97, h*0.6); elm_box_pack_end(bx, bx2); evas_object_show(bx2); - bx3 = elm_box_add(win); - elm_box_horizontal_set(bx2, 1); - evas_object_size_hint_weight_set(bx3, 1.0, 0.0); - evas_object_size_hint_align_set(bx3, -1.0, 0.0); - evas_object_resize(bx3, w*0.9, h*0.1); - elm_box_pack_end(bx, bx3); - evas_object_show(bx3); - map = e_smart_map_add(win, "data/maps/fr_map.eet"); e_smart_map_set_theme(map, "themes/map.edj", "main"); e_smart_map_set_pos(map, 47.996578, 7.840171); @@ -395,26 +366,29 @@ void init_map() elm_box_pack_end(bx2, map); evas_object_show(map); - - struct point p, p2; - - p.lat = 47.996578; - p.lon = 7.840171; - - p2.lat = 47.996593; - p2.lon = 7.840201; + bt = elm_button_add(win); + elm_button_label_set(bt, "Send own position"); + evas_object_size_hint_weight_set(bt2, 1.0, 1.0); + evas_object_size_hint_align_set(bt2, -1.0, -1.0); + elm_box_pack_end(bx, bt); + evas_object_smart_callback_add(bt, "clicked", on_own_position, NULL); + evas_object_show(bt); - polyline_add_point(pl, p); - polyline_add_point(pl, p2); - e_smart_map_add_path(map, pl); + bt2 = elm_button_add(win); + elm_button_label_set(bt2, "Show other users"); + evas_object_size_hint_weight_set(bt2, 1.0, 1.0); + evas_object_size_hint_align_set(bt2, -1.0, -1.0); + elm_box_pack_end(bx, bt2); + evas_object_smart_callback_add(bt2, "clicked", on_show_users, NULL); + evas_object_show(bt2); - bt = elm_button_add(win); - elm_button_label_set(bt, "Exit"); - evas_object_size_hint_weight_set(bt, 1.0, 1.0); - evas_object_size_hint_align_set(bt, -1.0, -1.0); - elm_box_pack_end(bx3, bt); - evas_object_smart_callback_add(bt, "clicked", on_cancel, NULL); - evas_object_show(bt); + bt3 = elm_button_add(win); + elm_button_label_set(bt3, "Exit"); + evas_object_size_hint_weight_set(bt3, 1.0, 1.0); + evas_object_size_hint_align_set(bt3, -1.0, -1.0); + elm_box_pack_end(bx, bt3); + evas_object_smart_callback_add(bt3, "clicked", on_cancel, NULL); + evas_object_show(bt3); } void init_buttons(Evas_Object *box) @@ -461,7 +435,9 @@ void elm_main () /* show the window */ evas_object_show(win); + /* start the message sender thread */ init_msg_thread(from, to); + /* get going and draw/respond to the user */ elm_run(); diff --git a/friendfinder/gui.h b/friendfinder/gui.h index 67235c3..66385d6 100644 --- a/friendfinder/gui.h +++ b/friendfinder/gui.h @@ -1,6 +1,7 @@ #ifndef __GUI_H_ #define __GUI_H_ + #include "receiver.h" #include "Evas.h" //structs @@ -18,6 +19,9 @@ static void on_chat(void *data, Evas_Object *obj, void *event_info); static void on_map(void *data, Evas_Object *obj, void *event_info); */ +int h= 600; +int w = 450; + //other functions void set_bubble_text(Evas_Object *bb, char *username, char *text); void show_message(char *current_msg); diff --git a/friendfinder/map.c b/friendfinder/map.c deleted file mode 100644 index e69de29..0000000 diff --git a/friendfinder/map.h b/friendfinder/map.h deleted file mode 100644 index e69de29..0000000 diff --git a/friendfinder/receiver.c b/friendfinder/receiver.c index d50b9ff..c9a030f 100644 --- a/friendfinder/receiver.c +++ b/friendfinder/receiver.c @@ -5,7 +5,7 @@ #include #include "openssl/blowfish.h" -#include "gui.h" +#include "draw_user.h" static irc_session_t *session; irc_callbacks_t callbacks; @@ -46,14 +46,12 @@ void disconnect_receiver() void dump_data(char* lat, char* lon, char* nick) { - /* - struct postion *pos = (struct postion*) malloc(sizeof(struct position)); + struct position *pos = (struct position*) malloc(sizeof(struct position)); pos->lat = lat; - pos->lon = lon; + pos->lon = lon; pos->nick = nick; - print_users(pos); - */ + draw_user(pos); } void get_position(irc_session_t * session, const char * event, const char * origin, const char ** params, unsigned int count) diff --git a/friendfinder/sender.c b/friendfinder/sender.c index 6652afb..f8abd31 100644 --- a/friendfinder/sender.c +++ b/friendfinder/sender.c @@ -82,7 +82,7 @@ void send_position(irc_session_t * session, const char * event, const char * ori unsigned char lat_char[8]; sprintf(lat_char, "%i", lat); - unsigned char lon_char[8]; + unsigned char *lon_char[8]; sprintf(lon_char, "%i", lon); BF_ecb_encrypt(lat_char, crypted_lat, &key, BF_ENCRYPT); @@ -96,7 +96,7 @@ void send_position(irc_session_t * session, const char * event, const char * ori if (_x == 0 && _y == 0) { - printf("SENDER: send succesfull %i %i \n", lat, lon); + // printf("SENDER: send succesfull %i %i \n", lat, lon); } if (_y != 0) -- cgit v1.2.3-55-g7522