Grope in the source...

CocoStudio/reader/LabelReader V2.2.5 compilation error for std::transform

Fixed when you
#include <algorithm>

NEXUS7がADBで認識しないぞーってときの覚書。byWindows

Android端末が認識しないときのドライバのありか
ダウンロード先
http://developer.android.com/sdk/win-usb.html

eclipse>Manager経由でダウンロードした場合は以下のパスに保存されている
<sdk>\extras\google\usb_driver\ directory.

あとは設定のセキュリティ項目で外部アプリのインストールを許可し、
開発者項目でusbデバッグにチェックが入っているかも一度確認。
(開発者項目は隠しになっている…ので端末情報のバージョン項目を
7回タップすると表示されるようになる)

ぼかしイメージ背景の利用


2013年の夏にリリースされたiOS 7のおかげで、デザインアイデア、インスピレーションとしてデザイナーに利用される用になっています。大きなデザイントレンドのひとつとして、ぼかし背景利用の増加が挙げられるでしょう。たとえば浴室の曇り止めガラスを連想するとよいかもしれません。

イメージ写真を背景に使い、ぼかすことで独自性の高い、美しいグラデーションデザインを再現することができます。

オブジェクトは値渡しになりません。オブジェクト参照が値渡しになるのです。
オブジェクトが値渡しされるなら、C/C++のようにオブジェクトの実体がコピーされるはずですが、そのようなことはおこりません。

Javaでは、オブジェクトはすべてHeapメモリにアロケートされ、C/C++とは異なり評価スタック上に作られることはありません。メソッド引数を渡すのにスタック上にオブジェクトの実体の代わりに、オブジェクトの参照が積まれます。C++の比喩で言えば、オブジェクト参照はすべてObject *objのようなポインタが値渡しで渡され、メソッド実行はobj->method()のように実行されます。ただ、Javaの表記上はobj.method()のように書くだけです。

[Java]

public class Btest{

public static void main(String[] args) {

MyBoolean mb = new MyBoolean();

setFalse(mb);

System.out.println(mb); // nullにはならない

}

static void setFalse(MyBoolean arg) {

arg= null;

}

}

[C++]

public class Btest{

public static void main(String[] args) {

MyBoolean_impl *mb = new MyBoolean_impl();

setFalse(mb);

printf(“%x”, mb); // NULLにはならない

}

static void setFalse(MyBoolean_impl *arg) {

arg = NULL;

}

}

Windows8 ストアアプリのデバッグあれこれ

マイクロソフト公式のアプリチェックツールがあります。

http://msdn.microsoft.com/ja-jp/library/windows/apps/hh694081.aspx


これがなにかというと、アプリをストアへ審査に出す前にストアアプリとしての基本的な
ガイドラインに沿った構築がなされているかをチェックできる自動ツールです。
事前に手元で確認をすることでストアの審査で無用に引っかかるミスを減らすことができます。
単純な要件で却下されるやりとりは面倒なので便利です。 

これを使っていてちょっとひっかかったのでメモ。 

このツールは

"Windows App Cert Kit"

でチャームより検索すればヒットするので起動しました。
 機能概要的には、開発機にインストールされているストアアプリを検索してリスト表示し
その中から自分がチェックしたいアプリを選択、実行する、という流れです。

ここで「不合格」とでてしまうとダメなので未然に修正する必要があるのですがその原因が
”visual studioからデバッグ用に直niインストールされたアプリであるため”
みたいな理由の項目でした。

これを回避するためにはどうするかというと
ひとつはリリースビルドをした後に “Windows App Cert Kit” でチェックするか?と聞かれるのでこれで再度対応することで回避できます。

が、レポートがこのやり方だと保存できません。
別に保存できなくても良いかもしれませんが、まぁ保存がしたかったのです。
そこで以下。

Windows App Cert Kitを直接起動してリスト項目からアプリのチェックをする場合、当然開発機に該当アプリがインストールされていなければいけませんが リリースビルドではストア申請用のビルドなので開発機材へのインストールができません。
レポートファイルを保存したいけれどもその場合どうしよう?
(ストアアプリは基本的に法人ライセンスを除いて”ストア”からのみインストール可能です)

結論としては
ストアアプリとしてビルドする際にデバッグ用として設定をした上でビルドをします。
なんかわかりにくい説明なので手順をば。

手順1:デバッグ用ビルド

  1. メニュー プロジェクト(P)
  2. ストア(S)
  3. アプリパッケージの作成(P)…
  4. ダイアログ内 パッケージの作成にて
    Windows ストアにアップロードするパッケージを作成しますか?
    に「いいえ」を選択
  5. ダイアログ(パッケージの選択と構成)内 
    ”作成するパッケージとソリューション構成マッピングを選択する(M)”
    のソリューション構成欄のドロップリストから
    「Debug(AnyCPU)」
    を選び作成! 


 手順2:ツールによるチェックを行うための”appx”実機インストール

  1. ビルドされたパッケージの保存先ディレクトリを開く
  2. ”[プロジェクト名]_AnyCPU_Debug_Test”
    フォルダがあるので開く
  3. ”Add-AppDevPackage.ps1” 
    ファイルを右クリックし 「Power Shell」で実行
  4. インストール完了のメッセージがでたら 
    "Windows App Cert Kit" 
    でチェック 
     
WinJS ListView 項目テンプレートへの対話要素の追加

http://msdn.microsoft.com/ja-jp/library/windows/apps/hh465496.aspx

引用抜粋と要約を兼ねてまとめた備忘録です。

項目テンプレートには他のコントロールのほとんどを追加できますが、FlipView と他の ListView は追加することができません。

  • コントロールなどの対話要素の場合、入力を受け取るには、win-interactive クラスを対話要素またはその親要素の 1 つにアタッチする必要があります。

この要素とその子要素は対話入力を受け取り、ListView に対してイベントをトリガーしなくなります。

win-interactiveを項目テンプレート内の要素にアタッチする場合には、項目全体がその要素で満たさなれないようにしてください。項目全体が満たされた場合、ユーザーはその項目を選ぶことも呼び出すこともできなくなります。

項目テンプレートに対話要素を追加するには、WinJS.Binding.Template 
ではなく、テンプレート関数を使用する必要があります。
テンプレート関数について詳しくは、
テンプレート関数を作成する方法」をご覧ください。

Win8JS ListView リスト レイアウトとグリッド レイアウトの切り替え

http://msdn.microsoft.com/ja-jp/library/windows/apps/hh465496.aspx

引用抜粋と要約を兼ねてまとめた備忘録です。

ListView 要素には、リストとグリッドの 2 種類のレイアウト モードがあります。

  • リスト レイアウトを使うには、次のように、layout プロパティを WinJS.UI.ListLayout に設定します。
   <div id="basicListView" 
        data-win-control="WinJS.UI.ListView"
        data-win-options="{ itemDataSource : DataExample.itemList.dataSource, 
            itemTemplate: select('#mediumListIconTextTemplate'), 
            layout: {type: WinJS.UI.ListLayout}}">
    </div>  
  • グリッド レイアウトを使うには、次のように、layout プロパティを WinJS.UI.GridLayout に設定します。
    <div id="basicListView" 
        data-win-control="WinJS.UI.ListView"
        data-win-options="{ itemDataSource : DataExample.itemList.dataSource, 
            itemTemplate: select('#mediumListIconTextTemplate'), 
            layout: {type: WinJS.UI.GridLayout}}">
    </div>  

istView のレイアウトはいつでも変更でき、作成後でも変更できます。


WinJS ListView 基本

参照 引用

http://msdn.microsoft.com/ja-jp/library/windows/apps/hh700356.aspx

準備»

  • ListViewのコントロールをHTMLに準備する
<div id="basicListView" 
    data-win-control="WinJS.UI.ListView">  
</div>

データの定義»

  • データオブジェクトを作成する(/js/dataExample.js)
(function () {
    "use strict";

    var dataArray = [
    { title: "Basic banana", text: "Low-fat frozen yogurt", picture: "images/60banana.png" },
    { title: "Banana blast", text: "Ice cream", picture: "images/60banana.png" },
    { title: "Brilliant banana", text: "Frozen custard", picture: "images/60banana.png" },
    { title: "Orange surprise", text: "Sherbet", picture: "images/60orange.png" },
    { title: "Original orange", text: "Sherbet", picture: "images/60orange.png" },
    { title: "Vanilla", text: "Ice cream", picture: "images/60vanilla.png" },
    { title: "Very vanilla", text: "Frozen custard", picture: "images/60vanilla.png" },
    { title: "Marvelous mint", text: "Gelato", picture: "images/60mint.png" },
    { title: "Succulent strawberry", text: "Sorbet", picture: "images/60strawberry.png" }
    ];

})();
  • リストオブジェクトを定義する
var dataList = new WinJS.Binding.List(dataArray); 
  • 名前空間を宣言し、パブリック メンバーとして List を追加して、List を公開
    // Create a namespace to make the data publicly
    // accessible. 
    var publicMembers =
        {
            itemList: dataList 
        };
    WinJS.Namespace.define("DataExample", publicMembers); 

作ったコードは匿名関数でカプセル化されているので、パブリックにアクセスすることはできません。これは匿名関数を使う理由の 1 つで、プライベート データの機密性を確保するためです。ListView から List にアクセスするには、パブリックにアクセスできるようにする必要があります。そのためには、WinJS.Namespace.define 関数を使って名前空間を作成し、そのメンバーの 1 つとして List を追加する方法があります。

この例では、List を返す itemList という名前のパブリック メンバーを公開する、DataExample という名前の名前空間を作成します。
これで、ListView からアクセスできるデータ ソースが作成されました。 次に、データを ListView に接続します。  

ListView(HTML)へのデータ(JS)の接続»

  • ListView が含まれている HTML ファイルの head セクションに、作成したデータ ファイル (dataExample.js) への参照を追加
 <script src="/js/dataExample.js"></script>

itemDataSource プロパティは IListDataSource オブジェクトを受け取ります。
List オブジェクトは IListDataSource ではありませんが、
それ自体の IListDataSource バージョンを返す dataSource プロパティを持っています。

  • データに接続するには、ListView コントロールの itemDataSource プロパティを DataExample.itemList.dataSource に設定します。
<div id="basicListView"
    data-win-control="WinJS.UI.ListView"
    data-win-options="{ itemDataSource : DataExample.itemList.dataSource }">
</div>  

http://msdn.microsoft.com/ja-jp/library/windows/apps/br211837.aspx

WinJS.UI.List.View

Applies to: Windows Store apps only

Displays data items in a customizable list or grid.

Syntax

<div data-win-control="WinJS.UI.ListView"></div>

var object = new WinJS.UI.ListView(parentObject, options);

Members

The ListView object has these types of members:


http://msdn.microsoft.com/ja-jp/library/windows/apps/hh700703.aspx

ListView.itemDataSource property

Gets or sets the data source that provides the ListView with items.

Syntax

<div data-win-control="WinJS.UI.ListView" data-win-options="{ itemDataSource : value}" />

var itemDataSource = listView.itemDataSource;
listView.itemDataSource = itemDataSource;

Property value

Type: IListDataSource

An IListDataSource that represents the data source from which the data-bound control retrieves its data. The default value is null


ここまででアプリを実行してもデータオブジェクトの文字列がリスト表示されるのみ。
表示しようとしたとおりにレンダリングするには、Template を定義する必要があります。  

項目テンプレートの定義

各リスト項目の表示に使うマークアップを含む項目テンプレートが必要です。

テンプレートを作成する方法(2種類)

  • マークアップを使って WinJS.Binding.Template を定義する方法(今回はコレ)
  • テンプレート関数を作成する方法

マークアップを使って WinJS.Binding.Template を定義する方法»

各リスト項目の表示に使うマークアップを定義し、各データ フィールドの表示場所を指定する。
HTML で WinJS.Binding.Template コントロールを作成し、ID を割り当てます。この例では ID “mediumListIconTextTemplate” を使います。  

 :テンプレートを使う前に定義する必要があるので、ListView の HTML の”前”に、テンプレートの HTML を追加します。

テンプレートのコンテンツの親として機能する div 要素を作成します。

    <div id="mediumListIconTextTemplate" data-win-control="WinJS.Binding.Template">

    </div>
  • ListView を構成する各データ項目を生成するマークアップを作成します。 前の手順で作成したデータには、画像の場所、タイトル、テキストが含まれているため、これらの要素を作成します。
  • プロパティを確実にレイアウトするには、テンプレートのルート要素のサイズを必ず指定します。また、テンプレート内の img 要素のサイズも必ず指定します。
  • データを表示する各要素の data-win-bind 属性を設定します。data-win-bind 属性の構文は次のとおりです。

     data-win-bind=”propertyNamedataFieldName
  • 複数のプロパティを設定するには、プロパティをセミコロンで区切ります。

    data-win-bind=”property1NamedataField1Nameproperty2NamedataField2Name



    たとえば、img の src プロパティを “picture” フィールドにバインドする場合の構文は、次のとおりです。
     
    <img data-win-bind="src : picture" />

この例では、テンプレート内の項目を、対応するデータ フィールドにバインドします。

    <div id="mediumListIconTextTemplate" data-win-control="WinJS.Binding.Template">
        <div style="width: 150px; height: 100px;">

            <!-- Displays the "picture" field. -->
            <img src="#" style="width: 60px; height: 60px;" 
                 data-win-bind="alt: title; src: picture" />
            <div>

                <!-- Displays the "title" field. -->
                <h4 data-win-bind="innerText: title"></h4>

                <!-- Displays the "text" field. --> 
                <h6 data-win-bind="innerText: text"></h6>
            </div>
        </div>
    </div>    

項目(アイテム)テンプレートを使うには、select 構文を使って、
ListView の itemTemplate プロパティに使う項目テンプレートを設定します。

    <div id="basicListView" data-win-control="WinJS.UI.ListView" 
        data-win-options="{itemDataSource : DataExample.itemList.dataSource, 
            itemTemplate: select('#mediumListIconTextTemplate')}">
    </div>

これで、アプリを実行すると、バインドされたデータがリストに表示されるようになりました。

データがバインドされた ListView (画像とテキストが表示されている)。


ListView のスタイル指定

  • ListView では、高さを動的に調整してコンテンツに合わせることはできません
  • ListView をレンダリングする場合は、高さの”絶対値を指定する”必要があります

JavaScript 用 Windows ライブラリのスタイル シートでは、ListView コントロールの高さが 400 ピクセルに設定されます。
ただし、独自の CSS を作成して既定のスタイルを上書きし、独自のスタイルを簡単に指定できます。
次の CSS をアプリの CSS ファイルに追加して、
ListView の高さと幅を設定し、境界線を追加します。

  • win-listview は JavaScript 用 Windows ライブラリで定義されるクラスで、ListView のスタイル指定に使うことができます。
.win-listview 
{
    height: 500px; 
    width: 500px; 
    border: 2px solid gray;
}
  • 特定の ListView だけを変更するには、ListView コントロールをホストする div 要素の ID をセレクター要素に追加します。
#basicListView.win-listview 
{
    height: 500px; 
    width: 500px; 
    border: 2px solid gray;
}

項目のスタイル指定

前の例では、インライン スタイルと JavaScript 用 Windows ライブラリのクラスを使って、ListView とその項目のスタイルを指定しました。

ListView では、左側、上側、下側の余白はサポートされますが、右側の余白は指定できません。1 つの回避策として、右側に設ける余白の幅と同じ幅の要素を追加し、その style.visibility プロパティを “none” に設定して、その要素を ListView の右側に追加する方法があります。

項目テンプレートのスタイルを指定する CSS クラスを使うこともできます。

    <div id="mediumListIconTextTemplate" data-win-control="WinJS.Binding.Template" style="display: none">
        <div class="mediumListIconTextItem">
            <img src="#" class="mediumListIconTextItem-Image" data-win-bind="src: picture" />
            <div class="mediumListIconTextItem-Detail">
                <h4 data-win-bind="innerText: title"></h4>
                <h6 data-win-bind="innerText: text"></h6>
            </div>
        </div>
    </div>

この例では、定義してあったインライン スタイルを削除し、CSS クラスが追加されています。

これらのスタイルをアプリの CSS に追加します。


.mediumListIconTextItem { width: 282px; height: 70px; padding: 5px; overflow: hidden; display: -ms-grid; } .mediumListIconTextItem img.mediumListIconTextItem-Image { width: 60px; height: 60px; margin: 5px; -ms-grid-column: 1; } .mediumListIconTextItem .mediumListIconTextItem-Detail { margin: 5px; -ms-grid-column: 2; }

この ListView の外観は次のようになります。

Hh465496.basicListView2d(ja-jp,WIN.10).png

WinJS アプリ外観のカスタマイズ

http://msdn.microsoft.com/ja-jp/library/windows/apps/hh465498.aspx

より引用抜粋 要約備忘録です。

アプリの外観をカスタマイズする場合、JavaScript 用 Windows ライブラリ スタイルを捨てて最初から作り直す必要はありません。変更するスタイルを上書きすることで、簡単に段階的に変更できます。

実際、独自に作成するよりも、JavaScript 用 Windows ライブラリ スタイルを上書きする方が良い結果が得られます。ハイ コントラスト モードでアプリを実行すると、既定のスタイルの色に加えた変更は、ハイ コントラストをサポートする配色によって自動的に上書きされます。

独自のスタイル シートを作成し、JavaScript 用 Windows ライブラリ スタイルシートの後にそのスタイルシートを適用することで、既定のスタイル シートのすべてのスタイルを上書きすることができます。

<!-- The WinJS style sheet. -->
<link href="//Microsoft.WinJS.1.0/css/ui-dark.css" rel="stylesheet">

<!-- Your style sheet for overriding portions of the default style sheet. -->
<link href="/css/mystylesheet.css" rel="stylesheet" />

カラーの指定

JavaScript 用 Windows ライブラリ スタイル シートを上書きするか、独自のスタイルを指定できます。CSS システム カラーを使用すると、ハイ コントラスト モードでアプリを実行するとき自動的に適正に表示されるため、独自のスタイルを指定する場合は CSS システム カラーの使用をお勧めします。システム カラーのリストについて詳しくは、「User-defined system colors」をご覧ください。

HTML コントロール クラスの使用

スタイル シートに含まれる CSS クラスを組み込み HTML コントロールに割り当てることで、コントロールにさまざまな外観を適用することができます。たとえば、win-backbutton クラスを使って、通常のボタンの外観を [戻る] ボタンと同じような外観にすることができます。

<button class="win-backbutton"></button>

JavaScript 用 Windows ライブラリ コントロールのスタイル

JavaScript 用 Windows ライブラリのコントロールのスタイルを設定するには、そのコントロールの JavaScript 用 Windows ライブラリの CSS クラスを上書きします。たとえば、AppBar のスタイルを設定するには、win-appbar クラスを上書きします。

次の例では、ListView の進行状況インジケーターを非表示にするスタイルを作成します。

.win-listView .win-progress {
    display: none;
}

文字体裁クラスの使用

スタイル シートには、テキストを含めてすべての要素に適用できる文字体裁の CSS クラスも使用できます。たとえば、win-title クラスを使って、見出しに Windows 8 タイトル スタイルを適用できます。この例では、文字体裁クラスを使ってさまざまな種類のタイトルを作成しています。

<p class="win-type-xx-large">win-type-xx-large</p>
<p class="win-type-medium">win-type-medium</p>
<p class="win-type-xx-small">win-type-xx-small</p>

文字体裁クラスを使った要素

これらの文字体裁クラスのすべての一覧について詳しくは、「文字体裁 CSS クラス」をご覧ください。

WinJS マークアップでの作成したコントロールの取得

http://msdn.microsoft.com/ja-jp/library/windows/apps/hh465493.aspx

より引用抜粋してます。 要約備忘録

JavaScript 用 Windows ライブラリのコントロールのプロパティは、プログラムを使って設定することもできます。

 <div id="ratingControlHost" data-win-control="WinJS.UI.Rating">
    </div>

コード内でコントロールにアクセスするには、ホスト要素を取得し、
その 
winControl プロパティを使ってコントロールを取得します。 前に示した例では、Rating コントロールのホスト要素は “ratingControlHost” です。

var control = document.getElementById("ratingControlHost").winControl; 
WinJS.UI.processAll();

// Don't do this:
var control = document.getElementById("ratingControlHost").winControl; 
control.averageRating = 3; 

コントロールの取得と操作をできる限り早く実行することが必要な場合もあります。
この場合、WinJS.UI.processAll メソッドが非同期メソッドである点に注意してください。
(※WinJSコントロールのインスタンス生成=WInJS.UI.processAllが完了する前では機能しないということ。上記は不正解例) 

WinJS.UI.processAll が完了する前に次のコードが実行されることもあります。コントロールに直ちにアクセスできない場合もあるので、コントロールを直後で操作しないでください。

WinJS.UI.processAll は WinJS.Promise オブジェクトを返します。このオブジェクトを使って、WinJS.UI.processAll が完了したときに関数を呼び出すことができます。 コントロールを取得し、その averageRating を 3 に設定する完了関数を定義する例を次に示します。

(以下正解例)

// Do this instead:
WinJS.UI.processAll().then(function () {
    var control = document.getElementById("ratingControlHost").winControl;
    control.averageRating = 3; 
});

WinJS コントロールのイベント処理

  1. JavaScript でコントロールのホスト要素を取得し、その winControl プロパティを使ってコントロールを取得します。
  2. コントロールの addEventListener 関数を呼び出し、イベントとイベント ハンドラーを指定します。

HTML>

    <div id="ratingControlHost" data-win-control="WinJS.UI.Rating"
            data-win-options="{maxRating: 10, averageRating: 6}">
        </div>
 
        <!-- This paragraph will be used to demonstrate event handling. -->
        <p id="outputParagraph"></p>

JS>

   function ratingChanged(event) {

        var outputParagraph = document.getElementById("outputParagraph");
        var output = event.type + ": <ul>";
        var property;
        for (property in event) {
            output += "<li>" + property + ": " + event[property] + "</li>";
        }

        outputParagraph.innerHTML = output + "</ul>";

    }
    app.onactivated = function (args) {
        if (args.detail.kind === activation.ActivationKind.launch) {
            if (args.detail.previousExecutionState !== activation.ApplicationExecutionState.terminated) {
                // TODO: This application has been newly launched. Initialize
                // your application here.
            } else {
                // TODO: This application has been reactivated from suspension.
                // Restore application state here.
            }
            args.setPromise(WinJS.UI.processAll().then(function () {
                var control = document.getElementById("ratingControlHost").winControl;
                control.addEventListener("change", ratingChanged, false); 
            }));
        }
    };

winControl プロパティを使ってホスト要素からコントロールを取得し、addEventListener を呼び出してイベント ハンドラーを追加します。この例では、作成した直後にコントロールを取得し、イベント ハンドラーを追加します。