diff --git a/epydial/data/themes/blackwhite/dialer_incall.edc b/epydial/data/themes/blackwhite/dialer_incall.edc index 694ab4a..5abc298 100644 --- a/epydial/data/themes/blackwhite/dialer_incall.edc +++ b/epydial/data/themes/blackwhite/dialer_incall.edc @@ -17,6 +17,7 @@ images { image: "yes.png" COMP; image: "no.png" COMP; image: "caller.png" COMP; + image: "bg.png" COMP; } color_classes { @@ -48,6 +49,16 @@ collections { parts { part { name: "background"; + type: IMAGE; + description { + state: "default" 0; + rel1 { relative: 0 0; offset: 0 0; }; + rel2 { relative: 1 1; offset: 0 0; }; + image { normal: "bg.png"; }; + } + } + part { + name: "background_rect"; type: RECT; description { color_class: "active"; diff --git a/epydial/data/themes/blackwhite/dialer_incall.edj b/epydial/data/themes/blackwhite/dialer_incall.edj index 98597b7..7086872 100644 Binary files a/epydial/data/themes/blackwhite/dialer_incall.edj and b/epydial/data/themes/blackwhite/dialer_incall.edj differ diff --git a/epydial/data/themes/blackwhite/dialer_main.edc b/epydial/data/themes/blackwhite/dialer_main.edc index db4f095..5fc9d91 100644 --- a/epydial/data/themes/blackwhite/dialer_main.edc +++ b/epydial/data/themes/blackwhite/dialer_main.edc @@ -8,6 +8,8 @@ // Parameter1.2: "backspace" // Parameter1.3: "clear" // Parameter1.4: "dial" +// Parameter1.5: "#" +// Parameter1.6: "screen_locked" data { item: "author" "thomasg [thomas (a) gstaedtner (.) net]"; @@ -67,16 +69,6 @@ part { \ description { \ state: "default" 0; \ color_class: "unvisible"; \ - /*gradient { \ - spectrum: "button"; \ - rel1 { relative: 0 0; offset: 0 0; }; \ - rel2 { relative: 0 0.75; offset: 0 0; }; \ - } \ - fill { \ - spread: 1; \ - angle: 1; \ - size { relative: 1 0; offset: 0 0; }; \ - } */\ rel1 { relative: rel1x rel1y; offset: 0 0; }; \ rel2 { relative: rel2x rel2y; offset: 0 0; }; \ } \ @@ -96,7 +88,6 @@ part { \ name: "button_"button_number"_caption"; \ type: TEXT; \ mouse_events: 0; \ -/* effect: GLOW;*/ \ description { \ state: "default" 0; \ color_class: "button_inactive"; \ @@ -138,18 +129,6 @@ program { \ transition: DECELERATE 0.1; \ } -/*#define DESIGN_SEPERATOR(seperator_number, rel1x, rel1y, rel2x, rel2y) \ -part { \ - name: "design_seperator_"seperator_number; \ - type: RECT; \ - description { \ - state: "defeault" 0; \ - color: 255 255 255 100; \ - rel1 { relative: rel1x rel1y; offset: -0.5 7; }; \ - rel2 { relative: rel2x rel2y; offset: 0.5 -9; }; \ - } \ -}*/ - collections { group { name: "pyneo/dialer/main"; @@ -180,6 +159,30 @@ collections { run_program(PROGRAM:"numberdisplay_backspace_emit_signal_backspace"); } } + public flag_timer_running_hash_key; + public flag_hash_key_sent; + public timer_id_hash_key; + + public clear_timer_hash_key() { + set_int(flag_hash_key_sent, 0); + set_int(flag_timer_running_hash_key, 1); + timer_id_hash_key = timer(2, "clear_send_hash_key", 1); + } + + public clear_send_hash_key() { + if (get_int(flag_hash_key_sent) == 0) { + set_int(flag_timer_running_hash_key, 0); + run_program(PROGRAM:"hash_key_emit_signal_screen_locked"); + } + } + + public hash_key_send() { + if (get_int(flag_timer_running_hash_key) == 1) { + cancel_timer(get_int(timer_id_hash_key)); + set_int(flag_hash_key_sent, 1); + run_program(PROGRAM:"hash_key_emit_signal_#"); + } + } } parts { @@ -433,7 +436,91 @@ collections { /* row 4 */ BUTTON(10, 0, 58/70 , 1/3, 68/70, "*"); BUTTON(11, 1/3, 58/70, 2/3, 68/70, 0); - BUTTON(12, 2/3, 58/70, 3/3, 68/70, "#"); + /*#define BUTTON(button_number, rel1x, rel1y, rel2x, rel2y, button_caption)*/ + /*BUTTON(12, 2/3, 58/70, 3/3, 68/70, "#");*/ + part { + name: "button_12"; + type: RECT; + description { + state: "default" 0; + color_class: "unvisible"; + rel1 { relative: 2/3 58/70; offset: 0 0; }; + rel2 { relative: 3/3 68/70; offset: 0 0; }; + } + description { + state: "default" 0.5; + inherit: "default" 0; + color_class: "button_active"; + rel1.offset: 0 -5; + rel2.offset: 0 5; + } + description { + state: "default" 1; + inherit: "default" 0; + } + } + part { + name: "button_12_caption"; + type: TEXT; + mouse_events: 0; + description { \ + state: "default" 0; + color_class: "button_inactive"; + rel1 { + to: "button_12"; + relative: 0 0; + } + rel2 { + to: "button_12"; + relative: 1 1; + } + text { + text: "#"; + size: 18; + font: "Sans:style=Bold,Edje-Vera"; + fit: 1 1; + } + } + } + program { + name: "button_12_animation"; + signal: "mouse,down,*"; + source: "button_12"; + action: STATE_SET "default" 0.5; + target: "button_12"; + } + program { + name: "button_12_animation_end"; + signal: "mouse,up,*"; + source: "button_12"; + action: STATE_SET "default" 1; + target: "button_12"; + transition: DECELERATE 0.1; + } + program { + name: "hash_key_signal_emit"; + signal: "mouse,down,*"; + source: "button_12"; + script { + clear_timer_hash_key(); + } + } + program { + name: "hash_key_signal_stop"; + signal: "mouse,up,*"; + source: "button_12"; + script { + hash_key_send(); + } + } + program { + name: "hash_key_emit_signal_#"; + action: SIGNAL_EMIT "dialer_send" "#"; + } + program { + name: "hash_key_emit_signal_screen_locked"; + action: SIGNAL_EMIT "dialer_send" "screen_locked"; + } /*DESIGN_SEPERATOR(10, 1/3, 58/70, 1/3, 68/70); DESIGN_SEPERATOR(11, 2/3, 58/70, 2/3, 68/70);*/ } diff --git a/epydial/data/themes/blackwhite/dialer_main.edj b/epydial/data/themes/blackwhite/dialer_main.edj index 886007b..dc87721 100644 Binary files a/epydial/data/themes/blackwhite/dialer_main.edj and b/epydial/data/themes/blackwhite/dialer_main.edj differ diff --git a/epydial/data/themes/default/dialer_main.edc b/epydial/data/themes/default/dialer_main.edc index a084dba..3ea3f9c 100644 --- a/epydial/data/themes/default/dialer_main.edc +++ b/epydial/data/themes/default/dialer_main.edc @@ -8,6 +8,8 @@ // Parameter1.2: "backspace" // Parameter1.3: "clear" // Parameter1.4: "dial" +// Parameter1.5: "#" +// Parameter1.6: "screen_locked" data { item: "author" "thomasg [thomas (a) gstaedtner (.) net]"; @@ -194,6 +196,30 @@ collections { run_program(PROGRAM:"numberdisplay_backspace_emit_signal_backspace"); } } + public flag_timer_running_hash_key; + public flag_hash_key_sent; + public timer_id_hash_key; + + public clear_timer_hash_key() { + set_int(flag_hash_key_sent, 0); + set_int(flag_timer_running_hash_key, 1); + timer_id_hash_key = timer(2, "clear_send_hash_key", 1); + } + + public clear_send_hash_key() { + if (get_int(flag_hash_key_sent) == 0) { + set_int(flag_timer_running_hash_key, 0); + run_program(PROGRAM:"hash_key_emit_signal_screen_locked"); + } + } + + public hash_key_send() { + if (get_int(flag_timer_running_hash_key) == 1) { + cancel_timer(get_int(timer_id_hash_key)); + set_int(flag_hash_key_sent, 1); + run_program(PROGRAM:"hash_key_emit_signal_#"); + } + } } parts { @@ -461,7 +487,90 @@ collections { /* row 4 */ BUTTON(10, 0, 58/70 , 1/3, 68/70, "*"); BUTTON(11, 1/3, 58/70, 2/3, 68/70, 0); - BUTTON(12, 2/3, 58/70, 3/3, 68/70, "#"); + /*BUTTON(12, 2/3, 58/70, 3/3, 68/70, "#");*/ + part { + name: "button_12"; + type: RECT; + description { + state: "default" 0; + color_class: "unvisible"; + rel1 { relative: 2/3 58/70; offset: 0 0; }; + rel2 { relative: 3/3 68/70; offset: 0 0; }; + } + description { + state: "default" 0.5; + inherit: "default" 0; + color_class: "button_active"; + rel1.offset: 0 -5; + rel2.offset: 0 5; + } + description { + state: "default" 1; + inherit: "default" 0; + } + } + part { + name: "button_12_caption"; + type: TEXT; + mouse_events: 0; + description { \ + state: "default" 0; + color_class: "button_inactive"; + rel1 { + to: "button_12"; + relative: 0 0; + } + rel2 { + to: "button_12"; + relative: 1 1; + } + text { + text: "#"; + size: 18; + font: "Sans:style=Bold,Edje-Vera"; + fit: 1 1; + } + } + } + program { + name: "button_12_animation"; + signal: "mouse,down,*"; + source: "button_12"; + action: STATE_SET "default" 0.5; + target: "button_12"; + } + program { + name: "button_12_animation_end"; + signal: "mouse,up,*"; + source: "button_12"; + action: STATE_SET "default" 1; + target: "button_12"; + transition: DECELERATE 0.1; + } + program { + name: "hash_key_signal_emit"; + signal: "mouse,down,*"; + source: "button_12"; + script { + clear_timer_hash_key(); + } + } + program { + name: "hash_key_signal_stop"; + signal: "mouse,up,*"; + source: "button_12"; + script { + hash_key_send(); + } + } + program { + name: "hash_key_emit_signal_#"; + action: SIGNAL_EMIT "dialer_send" "#"; + } + program { + name: "hash_key_emit_signal_screen_locked"; + action: SIGNAL_EMIT "dialer_send" "screen_locked"; + } DESIGN_SEPERATOR(10, 1/3, 58/70, 1/3, 68/70); DESIGN_SEPERATOR(11, 2/3, 58/70, 2/3, 68/70); } diff --git a/epydial/data/themes/default/dialer_main.edj b/epydial/data/themes/default/dialer_main.edj index 4a2a34c..b32d4ac 100644 Binary files a/epydial/data/themes/default/dialer_main.edj and b/epydial/data/themes/default/dialer_main.edj differ diff --git a/epydial/epydial.py b/epydial/epydial.py index 5d3ee64..fc90c0b 100755 --- a/epydial/epydial.py +++ b/epydial/epydial.py @@ -16,7 +16,7 @@ FULLSCREEN = True APP_TITLE = "epydial" WM_INFO = ("epydial", "epydial") -EDJE_FILE_PATH = "data/themes/blackwhite/" +EDJE_FILE_PATH = "data/themes/default/" MAIN_SCREEN_NAME = "pyneo/dialer/main" INCALL_SCREEN_NAME = "pyneo/dialer/incall" @@ -81,10 +81,11 @@ class InCallScreen(EdjeGroup): class MainScreen(EdjeGroup): text = None - + def __init__(self, screen_manager): EdjeGroup.__init__(self, screen_manager, MAIN_SCREEN_NAME) self.text = [] + self.look_screen = False ecore.timer_add(60.0, self.display_time) self.display_time() @@ -133,7 +134,7 @@ class MainScreen(EdjeGroup): self.text.append(source) print ''.join(self.text) self.part_text_set("numberdisplay_text", '*' * len(self.text)) - elif source == "backspace_down": + elif source == "backspace": self.text = self.text[:-1] print ''.join(self.text) self.part_text_set("numberdisplay_text", '*' * len(self.text)) @@ -142,20 +143,31 @@ class MainScreen(EdjeGroup): self.part_text_set("numberdisplay_text", "Verifying ...") PyneoController.gsm_unlock_sim(''.join(self.text)) else: - if source.isdigit() or source in ('*', '#'): - self.text.append(source) - print ''.join(self.text) - self.part_text_set("numberdisplay_text", "".join(self.text)) - elif source == "backspace": - self.text = self.text[:-1] - print ''.join(self.text) - self.part_text_set("numberdisplay_text", "".join(self.text)) - elif source == "clear": - self.text = [] - print ''.join(self.text) - self.part_text_set("numberdisplay_text", "".join(self.text)) - elif source == "dial": - PyneoController.gsm_dial("".join(self.text)) + if self.look_screen: + self.part_text_set("numberdisplay_text", "Screen locked") + if source == "screen_locked": + self.text = [] + self.look_screen = False + self.part_text_set("numberdisplay_text", "Dial when ready") + else: + if source.isdigit() or source in ('*', '#'): + self.text.append(source) + print ''.join(self.text) + self.part_text_set("numberdisplay_text", "".join(self.text)) + elif source == "backspace": + self.text = self.text[:-1] + print ''.join(self.text) + self.part_text_set("numberdisplay_text", "".join(self.text)) + elif source == "clear": + self.text = [] + print ''.join(self.text) + self.part_text_set("numberdisplay_text", "".join(self.text)) + elif source == "screen_locked": + self.text = [] + self.look_screen = True + self.part_text_set("numberdisplay_text", "Screen locked") + elif source == "dial": + PyneoController.gsm_dial("".join(self.text)) class PyneoController(object): @@ -432,7 +444,7 @@ class EvasCanvas(object): self.evas_obj.evas.image_cache_set(IMAGE_CACHE_SIZE*1024*1024) self.evas_obj.evas.font_cache_set(FONT_CACHE_SIZE*1024*1024) self.evas_obj.show() - + def on_resize(self, evas_obj): x, y, w, h = evas_obj.evas.viewport size = (w, h)