Pebble Time 覚え書き3 ウォッチフェイスの改良(ちょっとだけ)
ひとつ前のエントリ(http://d.hatena.ne.jp/eidaht/20150920/1442732674)で、ウォッチフェイスを作ってみるチュートリアルを終えた。
こっから少しずつ勝手に改良してみる。
時分だけじゃなくて秒も表示してみる。
まずソースを眺めると、TickTimerServiceへの登録がMINUTE_UNITとなっているので、ここをSECOND_UNITにしたら1秒ごとに更新できそう。
以下のように直してみる。
tick_timer_service_subscribe(SECOND_UNIT, tick_handler);
SECOND_UNITも定数として認識されたのでこれでよさそう。
次にupdate_time()の中の記述を直す。
// Create a long-lived buffer static char buffer[] = "00:00:00"; // Write the current hours and minutes into the buffer if(clock_is_24h_style() == true) { //Use 2h hour format strftime(buffer, sizeof("00:00:00"), "%H:%M:%S", tick_time); } else { //Use 12 hour format strftime(buffer, sizeof("00:00:00"), "%I:%M:%S", tick_time); }
%Sでいいのかわからないけどこれでいいんじゃね?
と実行してみると...、実行できたけどフォントがでかすぎて横がはみ出る。
フォントの設定はmain_window_load()の中に記述がある。
text_layer_set_font(s_time_layer, fonts_get_system_font(FONT_KEY_BITHAM_42_BOLD));
この42がフォントのポイントっぽいので、30とかに変更したらよさそう。
でビルドすると、ビルドエラーになる。
../src/main.c:39:59: error: 'FONT_KEY_BITHAM_30_BOLD' undeclared (first use in this function)
宣言されてないって。
もとの定数はpebble.hで定義されてるんだろうけど、CloudPebbleからだとpebble.hの中身見えないんだけどw
チュートリアルの次の章はカスタムフォントを使うことになってるんだけど、カスタムフォント使うとかちょっとめんどい。
いくつか数値を試してみるも通らずw
観念して「pebble system fonts」でググるとありました。
USING PEBBLE SYSTEM FONTS
ていうことで、Bitham 30 Blackにしてみます。
text_layer_set_font(s_time_layer, fonts_get_system_font(FONT_KEY_BITHAM_30_BLACK));
ビルドできました。
実行すると、プロポーショナルフォントなので秒が変わるたびにガタガタしちゃうのがあんまりカッコよくない。
この辺にこだわるとカスタムフォントしかないのかな...。
カスタムフォントはまた次回。