From 4a8b41faadde2ffb866abd71d8ea6e9ac2a0bb4e Mon Sep 17 00:00:00 2001 From: fgau Date: Sun, 12 Oct 2008 15:20:57 +0000 Subject: [PATCH] add some hotornot stuff git-svn-id: http://www.neo1973-germany.de/svn@188 46df4e5c-bc4e-4628-a0fc-830ba316316d --- epydial/data/themes/blackwhite/hon_screen.edc | 174 ++++++++++++++++++ epydial/dialer_screen.py | 6 + epydial/epydial.py | 23 ++- epydial/gps_status_screen.py | 4 +- epydial/hon_screen.py | 32 ++++ 5 files changed, 236 insertions(+), 3 deletions(-) create mode 100644 epydial/data/themes/blackwhite/hon_screen.edc create mode 100644 epydial/hon_screen.py diff --git a/epydial/data/themes/blackwhite/hon_screen.edc b/epydial/data/themes/blackwhite/hon_screen.edc new file mode 100644 index 0000000..ea73626 --- /dev/null +++ b/epydial/data/themes/blackwhite/hon_screen.edc @@ -0,0 +1,174 @@ +// incall.edc +// this is a theme for epydial, a pyneo dialer +// +// TODO: make the font colors shinier :) +// +// Signal1: + +data { + item: "author" "thomasg [thomas (a) gstaedtner (.) net]"; + item: "version" "prototype"; + item: "name" "epydial_blackwhite"; +} + +images { + image: "bg.png" COMP; +} + +color_classes { + color_class { + name: "black"; + color: 0 0 0 255; + color2: 0 0 0 255; + color3: 0 0 0 255; + } + color_class { + name: "unvisible"; + color: 0 0 0 0; + color2: 128 128 128 255; + color3: 128 128 128 255; + } + color_class { + name: "button_inactive"; + color: 255 255 255 128; + color2: 128 128 128 255; + color3: 128 128 128 255;; + } +} + +styles { + style { + name: "textblock_style"; + base: "font=sans.bold font_size=20 align=left valign=top color=#fff wrap=word"; + tag: "h1" "+ font_size=28"; + tag: "/h1" "- \n"; + tag: "p" "+"; + tag: "/p" "- \n"; + tag: "em" "+ style=underline underline_color=#000A underline2_color=#0005"; + tag: "/em" "-"; + tag: "br" "\n"; + } +} + +#define BUTTON(button_number, rel1x, rel1y, rel2x, rel2y, button_caption) \ +part { \ + name: "button_"button_number; \ + type: RECT; \ + description { \ + state: "default" 0; \ + color_class: "unvisible"; \ + rel1 { relative: rel1x rel1y; offset: 0 0; }; \ + rel2 { relative: rel2x rel2y; offset: 0 0; }; \ + } \ + description { \ + state: "default" 0.5; \ + inherit: "default" 0; \ + color_class: "unvisible"; \ + rel1.offset: 0 -5; \ + rel2.offset: 0 5; \ + } \ + description { \ + state: "default" 1; \ + inherit: "default" 0; \ + } \ +} \ +part { \ + name: "button_"button_number"_caption"; \ + type: TEXT; \ + mouse_events: 0; \ + description { \ + state: "default" 0; \ + color_class: "button_inactive"; \ + rel1 { \ + to: "button_"button_number; \ + relative: 0 0; \ + } \ + rel2 { \ + to: "button_"button_number; \ + relative: 1 1; \ + } \ + text { \ + text: button_caption; \ + size: 18; \ + font: "Sans:style=Bold,Edje-Vera"; \ + fit: 1 1; \ + } \ + } \ +} \ +program { \ + name: "button_"button_number"_signal_emit"; \ + signal: "mouse,down,*"; \ + source: "button_"button_number; \ + action: SIGNAL_EMIT "hon_send" button_caption; \ +} \ +program { \ + name: "button_"button_number"_animation"; \ + signal: "mouse,down,*"; \ + source: "button_"button_number; \ + action: STATE_SET "default" 0.5; \ + target: "button_"button_number; \ +} \ +program { \ + name: "button_"button_number"_animation_end"; \ + signal: "mouse,up,*"; \ + source: "button_"button_number; \ + action: STATE_SET "default" 1; \ + target: "button_"button_number; \ + transition: DECELERATE 0.1; \ +} + +collections { + group { + name: "pyneo/hon/screen"; + min: 100 100; + max: 800 800; + 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: "headline"; + type: TEXT; + mouse_events: 0; + description { + state: "default" 0; + color_class: "button_inactive"; + rel1 { relative: 0 0; } + rel2 { relative: 1 1/7; } + text { + text: "hot or not"; + size: 18; + font: "Sans:style=Bold,Edje-Vera"; + fit: 1 1; + } + } + } + part { + name: "hon_caption"; + type: TEXTBLOCK; + mouse_events: 0; + description { + color_class: "button_inactive"; + align: 0.5 0.5; + fixed: 1 1; + rel1 { relative: 0 3/20; } + rel2 { relative: 1 10/20; } + text { + text: "file:"; + style: "textblock_style"; + } + } + } /* end fix_caption */ + BUTTON(7, 0, 47/70, 1/3, 57/70, "hot"); + BUTTON(9, 2/3, 47/70, 3/3, 57/70, "not"); + BUTTON(12, 0, 58/70 , 1/3, 68/70, "<"); + } + } +} diff --git a/epydial/dialer_screen.py b/epydial/dialer_screen.py index f96db98..b092658 100644 --- a/epydial/dialer_screen.py +++ b/epydial/dialer_screen.py @@ -114,6 +114,12 @@ class DialerScreen(EdjeGroup): self.part_text_set("numberdisplay_text", "".join(self.text)) PyneoController.power_status_gps() PyneoController.show_gps_status_screen() + elif source == "dial" and ''.join(self.text) == "6": + print '--- Hon Screen' + self.text = [] + self.part_text_set("numberdisplay_text", "".join(self.text)) + PyneoController.get_hon() + PyneoController.show_hon_screen() elif source == "dial": PyneoController.show_incall_screen('outgoing') PyneoController.gsm_dial("".join(self.text)) diff --git a/epydial/epydial.py b/epydial/epydial.py index 3cf0af0..1c2b6ed 100755 --- a/epydial/epydial.py +++ b/epydial/epydial.py @@ -22,6 +22,7 @@ DIALER_SCREEN_NAME = "pyneo/dialer/main" INCALL_SCREEN_NAME = "pyneo/dialer/incall" GSM_STATUS_SCREEN_NAME = "pyneo/gsm/status" GPS_STATUS_SCREEN_NAME = "pyneo/gps/status" +HON_SCREEN_NAME = "pyneo/hon/screen" from datetime import datetime from dbus import SystemBus @@ -73,8 +74,10 @@ class PyneoController(object): gsm = None pwr = None gps = None + hon = None gsm_wireless = None gsm_keyring = None + hon_hotornot = None gsm_wireless_status = None gsm_keyring_status = None @@ -107,6 +110,8 @@ class PyneoController(object): class_.gsm_wireless = object_by_url(class_.gsm.GetDevice('wireless')) class_.pwr = object_by_url('dbus:///org/pyneo/Power') class_.gps = object_by_url('dbus:///org/pyneo/GpsLocation') + class_.hon = object_by_url('dbus:///org/pyneo/HotOrNot') + class_.hon_hotornot = object_by_url(class_.hon.GetDevice('hotornot')) class_.call_type = 'nix' except Exception, e: @@ -133,6 +138,13 @@ class PyneoController(object): def power_status_gsm(class_): class_.notify_callbacks("power_status_gsm", class_.gsm.GetPower(APP_TITLE, dbus_interface=DIN_POWERED)) + @classmethod + def get_hon(class_): + status = class_.hon_hotornot.GetHotOrNot(dbus_interface=DIN_HOTORNOT) + print '---hon status', status + img = object_by_url(status['img']).read() + class_.notify_callbacks("get_hon", status) + @classmethod def power_up_gsm(class_): try: @@ -340,12 +352,16 @@ class PyneoController(object): print "CALLING_TYPE: ", class_.call_type class_.notify_callbacks("gsm_phone_call_start") + @classmethod + def show_hon_screen(class_): + class_.notify_callbacks("show_hon_screen") + from dialer_screen import * from incall_screen import * from gsm_status_screen import * from gps_status_screen import * - +from hon_screen import * class Dialer(object): screens = None @@ -366,6 +382,7 @@ class Dialer(object): PyneoController.register_callback("show_gsm_status_screen", self.on_gsm_status_screen) PyneoController.register_callback("show_gps_status_screen", self.on_gps_status_screen) PyneoController.register_callback("show_dialer_screen", self.on_call_end) + PyneoController.register_callback("show_hon_screen", self.on_hon_screen) # Initialize the D-Bus interface to pyneo dbus_ml = e_dbus.DBusEcoreMainLoop() @@ -378,6 +395,7 @@ class Dialer(object): self.init_screen(INCALL_SCREEN_NAME, InCallScreen(self)) self.init_screen(GSM_STATUS_SCREEN_NAME, GsmStatusScreen(self)) self.init_screen(GPS_STATUS_SCREEN_NAME, GpsStatusScreen(self)) + self.init_screen(HON_SCREEN_NAME, HonScreen(self)) PyneoController.power_up_gsm() PyneoController.get_gsm_keyring() @@ -417,6 +435,9 @@ class Dialer(object): def on_gps_status_screen(self): self.show_screen(GPS_STATUS_SCREEN_NAME) + def on_hon_screen(self): + self.show_screen(HON_SCREEN_NAME) + class EvasCanvas(object): def __init__(self, fullscreen, engine_name): diff --git a/epydial/gps_status_screen.py b/epydial/gps_status_screen.py index 0da8633..e6b9654 100644 --- a/epydial/gps_status_screen.py +++ b/epydial/gps_status_screen.py @@ -23,8 +23,8 @@ class GpsStatusScreen(EdjeGroup): self.part_text_set("gps_caption", "gps device is %s"%p_status) def on_gps_position_change(self, status): - if status['fix'] != 0: - self.part_text_set("gps_caption", "fix: %d
long/lat: %f/%f
altitude: %d
kph/course: %d/%d
satellites: %d"%(status['fix'], status['longitude'], status['latitude'], status['altitude'], status['kph'], status['course'], status['satellites'])) + if status['fix'] == 3: + self.part_text_set("gps_caption", "fix: %s
long/lat: %s/%s
altitude: %s
kph/course: %s/%s
satellites: %s"%(status['fix'], status['longitude'], status['latitude'], status['altitude'], status['kph'], status['course'], status['satellites'])) else: self.part_text_set("gps_caption", "fix: NIX FIX") diff --git a/epydial/hon_screen.py b/epydial/hon_screen.py new file mode 100644 index 0000000..365176b --- /dev/null +++ b/epydial/hon_screen.py @@ -0,0 +1,32 @@ +#!/usr/bin/env python2.5 +# -*- coding: utf-8 -*- +__author__ = "Soeren Apel (abraxa@dar-clan.de), Frank Gau (fgau@gau-net.de), Thomas Gstaedner (thomas (a) gstaedtner (.) net)" +__version__ = "prototype" +__copyright__ = "Copyright (c) 2008" +__license__ = "GPL3" + +from epydial import * + +class HonScreen(EdjeGroup): + class Tile(evas.Image): + def __init__(self, canvas): + evas.Image.__init__(self, canvas) + self.show() + + def __init__(self, screen_manager): + EdjeGroup.__init__(self, screen_manager, HON_SCREEN_NAME) + + def register_pyneo_callbacks(self): + PyneoController.register_callback("get_hon", self.on_get_hon) + + def on_get_hon(self, status): + print '--- get hotornot pix' + print '--- pix', status['img'] + self.part_text_set("hon_caption", "nick: %s
%s"%(status['nick'], status['img'])) + + @edje.decorators.signal_callback("hon_send", "*") + def on_edje_signal_dialer_status_triggered(self, emission, source): + status = self.part_text_get("button_11_caption") + if source == "<": + PyneoController.show_dialer_screen() +