プログラム、GUI開発装置、GUI開発方法
【課題】プロポーショナルフォントによる文字列が表示領域に収まるか否かを確認することが可能なプログラム、GUI開発装置、GUI開発方法を提供すること。
【解決手段】ディスプレイを備える機器のGUI開発を行うコンピュータに、機器のディスプレイにおける表示領域のサイズと表示領域に表示する文字列とを格納する表計算ソフトのワークシートから、表示領域のサイズと文字列とを読み取る読取ステップと、読取ステップにおいて読み取られた文字列をラスタライズしてメモリ空間に書き込む書込ステップと、書込ステップにおける書き込みの結果に基づいて、文字列が表示領域のサイズを超えたか否かを検出する検出ステップと、検出ステップにおいて文字列が表示領域のサイズを超えたことが検出された場合に、文字列が表示領域のサイズを超えたことが分かるようにワークシートを編集する編集ステップと、を含む第1ルーチンを実行させる。
【解決手段】ディスプレイを備える機器のGUI開発を行うコンピュータに、機器のディスプレイにおける表示領域のサイズと表示領域に表示する文字列とを格納する表計算ソフトのワークシートから、表示領域のサイズと文字列とを読み取る読取ステップと、読取ステップにおいて読み取られた文字列をラスタライズしてメモリ空間に書き込む書込ステップと、書込ステップにおける書き込みの結果に基づいて、文字列が表示領域のサイズを超えたか否かを検出する検出ステップと、検出ステップにおいて文字列が表示領域のサイズを超えたことが検出された場合に、文字列が表示領域のサイズを超えたことが分かるようにワークシートを編集する編集ステップと、を含む第1ルーチンを実行させる。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ディスプレイを備える機器のグラフィカルユーザインタフェースの開発をコンピュータ上で行うためのアプリケーションプログラム、GUI開発装置、GUI開発方法に関する。
【背景技術】
【0002】
様々な機器にディスプレイが搭載され、グラフィカルユーザインタフェース(GUI)による操作が一般的になっている。GUIが主流となり、機器に搭載されるディスプレイが大型化、高解像度化するにつれ、任意のサイズの文字をディスプレイに表示することが可能になった。任意のサイズの文字を表示するためには、文字の形状をベクトル情報として持つスケーラブルフォントを採用したほうが、文字の形状をドットの組み合わせで表現するビットマップフォントに比べて必要とするデータサイズが小さくなるため、機器のメモリを節約できるというメリットがある。また、ビットマップフォントがフォントピッチが固定である等幅フォントであるのに対し、スケーラブルフォントは状況によって変化するプロポーショナルフォントであるという特徴を持つ。
【0003】
等幅フォントは文字の幅が等しいため、表示領域の幅と文字の幅とから、表示領域に収まる最大文字数が決まる。したがって、等幅フォントの場合、文字数が最大文字数以内となるように文字列を検討することができる。これに対して、プロポーショナルフォントは文字によって幅が異なり、また、その文字の隣に表示される文字に対応して文字の幅が変化するなど、文字数から文字列を検討することができない。
【0004】
これに関連して、例えば、特許文献1には、プロポーショナルフォントを用いた文字列を表示する際、文字列の幅が画面の幅を超えるようであれば改行するという技術が開示されている。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2001−100770号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
GUIの開発は、例えば、画面をデザインするデザイナ、デザイナがデザインした画面と文字列とを統合するコーディネータ、文字列を各国語に翻訳する翻訳者、等によって分担して行われることがある。このようなGUIの開発において、翻訳者は、等幅フォントの場合には文字数が最大文字数以内となるように文字列を検討することができるが、プロポーショナルフォントの場合にはそれができない。
【0007】
本発明は、GUIの開発段階で、プロポーショナルフォントによる文字列が表示領域に収まるか否かを確認することが可能なプログラム、GUI開発装置、GUI開発方法を提供することを目的とする。
【課題を解決するための手段】
【0008】
本発明のプログラムは、ディスプレイを備える機器のグラフィカルユーザインタフェースの開発をコンピュータ上で行うためのアプリケーションプログラムであって、コンピュータに、読取ステップと、書込ステップと、検出ステップと、編集ステップと、を含む第1ルーチンを実行させる。読取ステップにおいて、コンピュータは、機器のディスプレイにおける表示領域のサイズと表示領域に表示する文字列とを格納する表計算ソフトのワークシートから、表示領域のサイズと文字列とを読み取る。書込ステップにおいて、コンピュータは、読取ステップにおいて読み取られた文字列をラスタライズしてメモリ空間に書き込む。検出ステップにおいて、コンピュータは、書込ステップにおける書き込みの結果に基づいて、文字列が表示領域のサイズを超えたか否かを検出する。編集ステップにおいて、コンピュータは、検出ステップにおいて文字列が表示領域のサイズを超えたことが検出された場合に、文字列が表示領域のサイズを超えたことが分かるようにワークシートを編集する。
【0009】
これにより、GUIの開発段階で、翻訳者等のユーザは、文字数から文字列を検討することができないプロポーショナルフォントによる文字列が表示領域に収まるか否かを確認することができる。
【0010】
また、本発明のプログラムがコンピュータに実行させる書込ステップは、機器がディスプレイに文字列を表示する場合に文字列のラスタライズを行うためのソフトウェアのソースコードを、コンピュータを機能させるプログラムに変換することで作成されたプログラムによって実現されるようにしてもよい。
【0011】
これにより、コンピュータ上で、実機と同じ処理で文字列をラスタライズしてメモリ空間に書き込み、仮想的に描画を行うことができる。文字列を実機と同様に表示させた場合のサイズと表示領域のサイズとに基づいて、文字列が表示領域のサイズを超えるか否かを検出することができる。
【0012】
また、本発明のプログラムは、コンピュータに、機器のディスプレイのためにデザインされた画面のデータから、表示領域を識別する識別情報と、表示領域のサイズと、文字列が含まれる場合には文字列と、を抽出する抽出ステップと、抽出ステップにおいて抽出された識別情報と、表示領域のサイズと、文字列と、をワークシートに記入する記入ステップと、を含む第2ルーチンをさらに実行させるようにしてもよい。
【0013】
これにより、デザイン画面データから必要な情報を自動的にワークシートに読み込むことができるため、入力ミスをなくし、作業効率を向上させることができる。
【0014】
また、本発明のプログラムは、コンピュータに、ユーザの操作に基づいて選択的に第1ルーチンと第2ルーチンとを実行させるようにしてもよい。これにより、ユーザは、必要な処理を実行することができるため、使い勝手が良い。
【0015】
また、ワークシートは、複数の表示領域について、識別情報毎に表示領域のサイズと文字列とを格納する行を有し、本発明のプログラムがコンピュータに実行させる読取ステップは、ワークシートから、行毎に表示領域のサイズと文字列とを読み取るようにしてもよい。また、ワークシートは、複数の言語について、言語毎に文字列を格納する列を有し、本発明のプログラムがコンピュータに実行させる記入ステップは、画面のデータに文字列が含まれる場合に抽出ステップにおいて抽出された文字列を、ワークシートの基準となる言語の列に記入するようにしてもよい。
【0016】
これにより、ユーザは、複数の表示領域、複数の言語について、簡単に確認することができる。
【0017】
また、本発明のプログラムがコンピュータに実行させる編集ステップは、表示領域のサイズを超えなかった文字列を格納するセルの表示態様を第1態様とし、表示領域のサイズを超えた文字列を格納するセルの表示態様を第1態様と異なる第2態様にするようにしてもよい。これにより、セルの表示態様から、文字列が表示領域に収まるか否かを容易に確認することができる。
【0018】
また、本発明は、ディスプレイを備える機器のグラフィカルユーザインタフェースの開発を行うGUI開発装置、あるいは、ディスプレイを備える機器のグラフィカルユーザインタフェースの開発をコンピュータ上で行うGUI開発方法としても構成可能であり、上記のプログラムと同様の効果が得られる。
【発明の効果】
【0019】
本発明のプログラム、GUI開発装置、GUI開発方法によれば、GUIの開発段階で、実機に実装することなく、プロポーショナルフォントによる文字列が表示領域に収まるか否かを確認することができる。
【図面の簡単な説明】
【0020】
【図1】GUI開発装置(PC)のハードウェア構成図である。
【図2】プログラムのソフトウェア構成図である。
【図3】プログラムを実行するPCの表示画面の一例を示す図である。
【図4】メイン処理のフローチャートである。
【図5】xmlファイル読み込み処理のフローチャート(その1)である。
【図6】xmlファイル読み込み処理のフローチャート(その2)である。
【図7】文字列幅設定処理のフローチャートである。
【図8】文字列ID設定処理のフローチャートである。
【図9】LCDを備える複合機における文字列の表示について説明する図である。
【図10】文字列長チェック処理のフローチャート(その1)である。
【図11】文字列長チェック処理のフローチャート(その2)である。
【図12】xmlファイルのサンプルを示す図である。
【発明を実施するための形態】
【0021】
図面を参照して実施例を説明する。図1は、GUI開発装置の一例であるPC10のハードウェア構成図を示す。バス17によって各部は互いに接続されている。CPU11は、プログラムに従って様々な処理を実行する。メモリ12は、CPU11に様々な処理を実行させるためのプログラムを格納するROM、プログラムに従って処理が実行される過程で生成される各種データを一時記憶するRAM、を含む。ディスプレイコントローラ13は、CPU11が発行する描画命令に基づいて、ディスプレイ18に画面表示する。入力機器インタフェース14は、キーボード19、マウス20などの入力機器をPC10に接続する。ユーザは、キーボード19、マウス20を介してPC10に入力操作を行うことができる。ネットワークインタフェース15は、PC10をインターネットに接続する。外部機器インタフェース16は、HDD21、メディアドライブ22などの外部機器をPC10に接続する。
【0022】
図2は、上記の構成を有するPC10上で、ディスプレイを備えるプリンタ、複合機といった機器のグラフィカルユーザインタフェースの開発を行うためのアプリケーションプログラムのソフトウェア構成図を示す。本プログラムは、第1の機能として、機器のディスプレイにおける表示領域のサイズとその表示領域に表示する文字列とを格納するExcel(登録商標)のような表計算ソフトのワークシートから、表示領域のサイズと文字列とを読み取り、文字列が表示領域に収まるかチェックする構成を含む。このチェック機能は、ワークシートから読み取られた表示領域のサイズと文字列とを入力として与えられた表示ライブラリがフォントAPI(Application Programming Interface)を介してフォントデータを取得しラスタライズした結果を利用して行われる。これにより、本プログラムでは、擬似的に文字列の描画が行われ、表示領域内に収まるか否かが判定される。
【0023】
また、本プログラムは、第2の機能として、画像編集ソフトによりデザイナが機器のディスプレイのためにデザインした画面のデータから、表示領域を識別する識別情報、表示領域のサイズ、文字列が含まれる場合には文字列、をワークシートに読み込む構成を含む。この読み込み機能によってデザイン画面データの情報が読み込まれたワークシートに、翻訳者は、各言語に翻訳した文字列を記入していく。そして、上記のチェック機能を利用して、翻訳者等のユーザは、文字列が表示領域に収まるか否か確認する。
尚、本実施例では、上記表示領域を識別する識別情報、表示領域のサイズ、文字列はxml形式のファイルにより読み込んでいるが、xml形式での情報保守手段を有しない画像編集ソフト(例 Photoshop(登録商標))が対応するファイル形式のファイルを読み込むよう、本プログラムが構成されていてもよい。
また、xml形式での情報保守手段を有しない画像編集ソフトが対応するファイル形式のファイルをxml形式に変換し、変換したxml形式のファイルを読み込むよう、本プログラムが構成されていてもよい。
【0024】
図3は、複合機のGUI開発を例に、上記の構成を有する本プログラムを実行するPC10のディスプレイ18に表示される画面の一例を示す。ここで、本実施例では、表計算ソフトとしてExcelを用いた場合について説明するため、図3は、Excelで作成したxlsファイルのワークシートを示している。図3に示されるように、PC10のディスプレイ18に表示されるワークシートには、読み込みボタンB1、チェックボタンB2が含まれる。ユーザは、マウス20を用いて読み込みボタンB1を押下することにより、本プログラムの読み込み機能を利用することができる。また、ユーザは、マウス20を用いてチェックボタンB2を押下することにより、本プログラムのチェック機能を利用することができる。
【0025】
続いて、ワークシートに格納されるデータについて説明する。ST−1の行は各データのタイトル行であり、ST行目からデータ値が格納される。NAME列は、デザイン画面データから読み込んだ表示領域の識別情報を格納する。WIDTH列は、デザイン画面データから読み込んだ表示領域の幅、すなわち、横方向のサイズを格納する。HIGHT列は、デザイン画面データから読み込んだ表示領域の高さ、すなわち、縦方向のサイズを格納する。MP列目に配置されたMSG列は、基準となる言語(ここでは英語)による文字列を格納する。デザイン画面データに文字列が含まれる場合にデザイン画面データから読み込んだ文字列は、このMSG列に格納される。仏、日、独の各列は、それぞれ対応する言語(仏語、日本語、独語)による文字列を格納する。このように、ワークシートは、デザイン画面データから読み込んだ複数の表示領域について、識別情報毎に表示領域のサイズと文字列とを格納する行を有する。また、ワークシートは、複数の言語について、言語毎に文字列を格納する列を有する。
【0026】
図4は、本プログラムのメイン処理のフローチャートである。CPU11は、S1において、読み込みボタンB1が押下されたか否かを判断し、S2において、チェックボタンB2が押下されたか否かを判断する。読み込みボタンB1が押下された場合(S1:YES)、CPU11は、S3のxmlファイル読み込み処理に移行する。チェックボタンB2が押下された場合(S2:YES)、CPU11は、S4の文字列長チェック処理に移行する。
【0027】
図5、図6は、本プログラムのxmlファイル読み込み処理のフローチャートである。xmlファイル読み込み処理は、図4で説明したように、メイン処理において読み込みボタンB1が押下されると実行される。ここで、本実施例では、処理を容易にするため、デザイン画面データのファイルをxmlファイルに変換し、そのxmlファイルを読み込むという方法が取られる。
【0028】
図12を参照して、xmlファイルについて説明する。図12は、xmlファイルのサンプルを示す図である。xmlファイルは、ツリー構造を有する。<>で囲まれた部分は、タグと呼ばれる。タグには開始タグと終了タグとがあり、終了タグはタグ名の前に/が付く。開始タグ<PANEL_STRING>と終了タグ</PANEL_STRING>とで囲まれた部分に、表示領域の識別情報、表示領域の幅、表示領域の高さ、表示領域に表示する文字列、などを内容として持つ要素が、各要素をマークアップするタグに囲まれて記述される。
【0029】
図5に示されるxmlファイル読み込み処理のS11において、CPU11は、書き出し行ポインタNを0に設定する。S13において、CPU11は、読み込む対象となるxmlファイルのファイル名の入力処理を行う。ユーザは、キーボード19からファイル名を入力する。S15において、CPU11は、対象となるxmlファイルから1行読み込む。S17において、CPU11は、読み込み結果に基づいて、xmlファイルの終了と判断すると、xmlファイル読み込み処理を終了し、メイン処理のS1(図4)に戻る。一方、S17において、CPU11は、読み込み結果に基づいて、1行読み込むことに成功したと判断すると、S19に進む。
【0030】
S19において、CPU11は、読み込んだ1行が開始タグ<PANEL_STRING>を含むか否かを判断する。開始タグ<PANEL_STRING>を含まない場合(S19:NO)、CPU11は、S15に戻る。一方、開始タグ<PANEL_STRING>を含む場合(S19:YES)、CPU11は、S21において、xmlファイルからさらに1行読み込む。
【0031】
S23において、CPU11は、読み込んだ1行が終了タグ</PANEL_STRING>を含むか否かを判断する。終了タグ</PANEL_STRING>を含む場合(S23:YES)、CPU11は、S33において、書き出し行ポインタNに1を加算し、S15に戻る。一方、終了タグ</PANEL_STRING>を含まない場合(S23:NO)、S25において、CPU11は、読み込んだ1行がタグ<STRING_WIDTH>を含むか否かを判断する。
【0032】
タグ<STRING_WIDTH>は、表示領域の幅を内容として持つ要素をマークアップするタグである。タグ<STRING_WIDTH>を含む場合(S25:YES)、CPU11は、S35の文字列幅設定処理に移行する。一方、タグ<STRING_WIDTH>を含まない場合(S25:NO)、S27において、CPU11は、読み込んだ1行がタグ<STRING_HIGHT>を含むか否かを判断する。
【0033】
タグ<STRING_HIGHT>は、表示領域の高さを内容として持つ要素をマークアップするタグである。タグ<STRING_HIGHT>を含む場合(S27:YES)、CPU11は、S37の文字列高設定処理に移行する。一方、タグ<STRING_HIGHT>を含まない場合(S27:NO)、図6のS29において、CPU11は、読み込んだ1行がタグ<STRING_NAME>を含むか否かを判断する。
【0034】
タグ<STRING_NAME>は、表示領域の識別情報を内容として持つ要素をマークアップするタグである。タグ<STRING_NAME>を含む場合(S29:YES)、CPU11は、S39の文字列ID設定処理に移行する。一方、タグ<STRING_NAME>を含まない場合(S29:NO)、S31において、CPU11は、読み込んだ1行がタグ<STRING_MSG>を含むか否かを判断する。
【0035】
タグ<STRING_MSG>は、表示領域に表示する文字列を内容として持つ要素をマークアップするタグである。タグ<STRING_MSG>を含む場合(S31:YES)、CPU11は、S41の基本文字列設定処理に移行する。一方、タグ<STRING_MSG>を含まない場合(S31:NO)、CPU11は、図5のS21に戻る。
【0036】
図7は、本プログラムの文字列幅設定処理のフローチャートである。文字列幅設定処理は、図5で説明したように、xmlファイル読み込み処理のS35で実行される。S51において、CPU11は、読み込んだ1行がタグ</STRING_WIDTH>を含むか否かを判断する。タグ</STRING_WIDTH>を含まない場合(S51:NO)、CPU11は、文字列幅設定処理を終了し、xmlファイル読み込み処理のS21(図5)に戻る。一方、タグ</STRING_WIDTH>を含む場合(S51:YES)、CPU11は、S53に進む。
【0037】
S53において、CPU11は、タグ<STRING_WIDTH>とタグ</STRING_WIDTH>との間の文字列を取り出す。S55において、CPU11は、取り出した文字列が数値であるか否かを判断する。取り出した文字列が数値でない場合(S55:NO)、CPU11は、文字列幅設定処理を終了し、xmlファイル読み込み処理のS21(図5)に戻る。一方、取り出した文字列が数値である場合(S55:YES)、CPU11は、S57において、文字列を数値化して、xlsファイル(図3参照)のST+N行目のWIDTH列のセルに書き込む。その後、CPU11は、文字列幅設定処理を終了し、xmlファイル読み込み処理のS21(図5)に戻る。
【0038】
尚、xmlファイル読み込み処理のS37(図5)における文字列高設定処理は、図7の文字列幅設定処理のフローチャートにおいて、WIDTHをHIGHTと読み替えることで、同様に実行することができる。
【0039】
図8は、本プログラムの文字列ID設定処理のフローチャートである。文字列ID設定処理は、図6で説明したように、xmlファイル読み込み処理のS39で実行される。S61において、CPU11は、読み込んだ1行がタグ</STRING_NAME>を含むか否かを判断する。タグ</STRING_NAME>を含まない場合(S61:NO)、CPU11は、文字列ID設定処理を終了し、xmlファイル読み込み処理のS21(図5)に戻る。一方、タグ</STRING_NAME>を含む場合(S61:YES)、CPU11は、S63に進む。
【0040】
S63において、CPU11は、タグ<STRING_NAME>とタグ</STRING_WIDTH>との間の文字列を取り出す。S65において、CPU11は、取り出した文字列を、xlsファイル(図3参照)のST+N行目のNAME列のセルに書き込む。その後、CPU11は、文字列ID設定処理を終了し、xmlファイル読み込み処理のS21(図5)に戻る。
【0041】
尚、xmlファイル読み込み処理のS41(図6)における基本文字列設定処理は、図8の文字列ID設定処理のフローチャートにおいて、NAMEをMSGと読み替えることで、同様に実行することができる。
【0042】
続いて、図9を参照して、実機上の文字列表示手順について説明する。図9は、LCD(Liquid Crystal Display)を備える複合機における文字列の表示について説明する図である。複合機では、図9(A)に示されるように、メモリ空間上の定められた領域にデータを書き込むと、ハードウェアによって、LCDにおいてメモリアドレスに対応するドット(ピクセル)が点灯あるいは消灯する。本実施例に係る複合機では、LCDに文字列を表示する場合、LCD上のドット(ピクセル)の点灯、消灯に関係する一連の必要な処理を、以下のような引き数を有する関数として保持している。
string_display(Px,Py,W,H,*d_msg)
ここで、
PxはLCD全体における文字列を表示する表示領域の左上位置のX座標(LCDの左上を原点とした横方向の値)である。
PyはLCD全体における文字列を表示する表示領域の左上位置のY座標(LCDの左上を原点とした縦方向の値)である。
Wは文字列を表示する表示領域の幅である。
Hは文字列を表示する表示領域の高さである。
*d_msgは表示したい文字列(例えば、「COPY」等)を示すポインタである。
尚、図9(B)、(C)において斜線部は文字列を表示する表示領域を示す。
【0043】
上記の関数は、指定された表示領域に文字列を配置する(メモリ上に必要なデータを書き込む)。そして、図9(B)に示されるように、表示領域内に全ての点を書き込めた場合、上記の関数は、返り値として0を返す。また、図9(C)に示されるように、表示領域内に全ての点を書き込めなかった場合、上記の関数は、返り値として−1を返す。
【0044】
本プログラムは、文字列が表示領域に収まるかチェックする際、ワークシートから読み取られた表示領域のサイズと文字列とを表示ライブラリに入力として与え、表示ライブラリの出力を利用する、ということを図2で説明した。この表示ライブラリは、具体的には、複合機で文字列のラスタライズを行う上記の関数のソースコードをPC10用のコンパイラによって処理することで実機と共通のソースコードにより作成されたdll(dynamic link library)によって実現される。
【0045】
図10、図11は、本プログラムの文字列長チェック処理のフローチャートである。文字列長チェック処理は、図4で説明したように、メイン処理においてチェックボタンB2が押下されると実行される。S71において、CPU11は、R=0に設定する。S73において、CPU11は、ST−1の行、MP+Rの列のセル(図3参照)が空でないと判断すると、S75に進む。S75において、CPU11は、Rに1を加算し、S73に戻る。一方、S73において、CPU11は、ST−1の行、MP+Rの列のセル(図3参照)が空であると判断すると、S77に進む。図3で説明したように、ST−1の行は各データのタイトル行である。そして、MP列目から言語毎に文字列データが格納される。したがって、CPU11は、S71、S73、S75の処理を行うことにより、表示領域に収まるか否かの文字列長チェックを行うべき範囲(列)を調べることができる。
【0046】
S77において、CPU11は、C=0、RT=0に設定する。S79において、CPU11は、ST+Cの行、WIDTH列のセル(図3参照)にある数値を読み取り、変数Wに設定する。S81において、CPU11は、ST+Cの行、HIGHT列のセル(図3参照)にある数値を読み取り、変数Hに設定する。S83において、CPU11は、ST+Cの行、MP+RTの列のセル(図3参照)に設定されている文字列を変数msg[]にコピーする。
【0047】
S85において、CPU11は、変数msg[]が空でないと判断すると、S87に進む。S87において、CPU11は、前述したdllにより、以下の関数を上記S79、S81、S83で設定したパラメータで呼び出す。
string_display(0,0,W,H,*msg)
これにより、PC10のディスプレイ18に可視化はされないが、CPU11は、実機と同じ処理で文字列をラスタライズしてメモリ空間に書き込み、仮想的に描画を行う。
【0048】
図11のS91において、CPU11は、string_displayの返り値が0である(すなわち、表示領域からの文字列のはみ出しがない)と判断すると、S93に進む。S93において、CPU11は、ST+Cの行、MP+RTの列のセル(図3参照)の背景色を白色に変更し、S97に進む。また、S91において、CPU11は、string_displayの返り値が−1である(すなわち、表示領域からの文字列のはみ出しがある)と判断すると、S95に進む。S95において、CPU11は、ST+Cの行、MP+RTの列のセル(図3参照)の背景色を赤色に変更し、S97に進む。
【0049】
一方、図10のS85において、CPU11は、変数msg[]が空であると判断すると、S89に進む。S89において、CPU11は、ST+Cの行、MP+RTの列のセル(図3参照)の背景色を黄色に変更し、図11のS97に進む。
【0050】
S97において、CPU11は、RTに1を加算する。これにより、チェック対象セルが右へ1つ移動する。S99において、CPU11は、RT=Rであるか否かを判断する。RT≠Rである場合、現在の行について文字列長チェックを行うべき範囲(列)が残っていることになるので、CPU11は、図10のS83に戻る。一方、RT=Rである場合、現在の行について文字列長チェックが全て済んだことになるので、CPU11は、S101に進み、RTを0にリセットし、Cに1を加算する。これにより、チェック対象となる行が下へ1つ移動する。
【0051】
S103において、CPU11は、ST+Cの行、NAME列のセル(図3参照)の内容が空でないと判断すると、図10のS79に戻る。これにより、文字列長チェックを行うべき範囲(行)が残っている場合には、処理が続けられる。一方、S103において、CPU11は、ST+Cの行、NAME列のセル(図3参照)の内容が空であると判断すると、文字列長チェック処理を終了し、メイン処理のS1(図4)に戻る。これにより、文字列長チェックを行うべき全範囲(行、列)について、処理が行われる。
【0052】
本実施例の効果を以下に説明する。ユーザがチェックボタンB2(図3参照)を押下すると、CPU11は文字列長チェック処理を行う。その結果、文字列が表示領域からはみ出る場合には該当セルの背景色が赤色となり、文字列が設定されていない場合には該当セルの背景色が黄色となり、何れにも該当しないセルの背景色は白色となる。これにより、GUIの開発段階で、翻訳者等のユーザは、文字数から文字列を検討することができないプロポーショナルフォントによる文字列が表示領域に収まるか否かを、セルの背景色から容易に確認することができる。
【0053】
また、文字列長チェック処理のS87(図10)では、複合機で文字列のラスタライズを行う関数のソースコードをPC10用のコンパイラによって処理することで実機と共通のソースコードにより作成されたdllが利用される。これにより、PC10上で、実機と同じ処理で文字列をラスタライズしてメモリ空間に書き込み、仮想的に描画を行うことができる。文字列を実機と同様に表示させた場合のサイズと表示領域のサイズとに基づいて、文字列が表示領域のサイズを超えるか否かを検出することができる。
【0054】
また、ユーザが読み込みボタンB1(図3参照)を押下すると、CPU11はxmlファイル読み込み処理を行う。これにより、デザイン画面データから必要な情報を自動的にワークシートに読み込むことができるため、入力ミスをなくし、作業効率を向上させることができる。
【0055】
以上、本発明の実施例を詳細に説明したが、これらは例示に過ぎず、特許請求の範囲を限定するものではない。特許請求の範囲に記載の技術には、上記の実施例を様々に変形、変更したものが含まれる。
【0056】
例えば、前述のフローチャートは単なる一例であり、前述のフローチャートの処理と同等の結果を得ることできるものであれば、他のフローチャートによって処理を実現してもよい。
【0057】
上記の実施例では、表計算ソフトとしてExcelを用いた場合について説明したが、これに限られないことは言うまでもない。また、図10、図11の文字列長チェック処理において、文字列が表示領域のサイズを超えたことをユーザに報知する方法は、セルの背景色を変更することに限られず、文字列が表示領域のサイズを超えたことがユーザに分かればよい。
【0058】
尚、複合機はディスプレイを備える機器の一例である。Excelは表計算ソフトの一例である。文字列長チェック処理のS79、S81、S83(図10)を実行するCPU11によって読取ステップ(手段)が実現される。文字列長チェック処理のS87(図10)を実行するCPU11によって書込ステップ(手段)が実現される。文字列長チェック処理のS91(図11)を実行するCPU11によって検出ステップ(手段)が実現される。文字列長チェック処理のS93、S95(図11)を実行するCPU11によって編集ステップ(手段)が実現される。メイン処理のS4(図4)は第1ルーチンの一例である。xmlファイル読み込み処理のS35、S37、S39、S41(図5、図6)を実行するCPU11によって抽出ステップ、記入ステップが実現される。メイン処理のS3(図4)は第2ルーチンの一例である。セルの背景色における白色、赤色はそれぞれ第1態様、第2態様の一例である。また、PC10用のコンパイラによって変換手段が実現される。
【符号の説明】
【0059】
10 GUI開発装置(PC)
11 CPU
12 メモリ
18 ディスプレイ
19 キーボード
20 マウス
21 HDD
【技術分野】
【0001】
本発明は、ディスプレイを備える機器のグラフィカルユーザインタフェースの開発をコンピュータ上で行うためのアプリケーションプログラム、GUI開発装置、GUI開発方法に関する。
【背景技術】
【0002】
様々な機器にディスプレイが搭載され、グラフィカルユーザインタフェース(GUI)による操作が一般的になっている。GUIが主流となり、機器に搭載されるディスプレイが大型化、高解像度化するにつれ、任意のサイズの文字をディスプレイに表示することが可能になった。任意のサイズの文字を表示するためには、文字の形状をベクトル情報として持つスケーラブルフォントを採用したほうが、文字の形状をドットの組み合わせで表現するビットマップフォントに比べて必要とするデータサイズが小さくなるため、機器のメモリを節約できるというメリットがある。また、ビットマップフォントがフォントピッチが固定である等幅フォントであるのに対し、スケーラブルフォントは状況によって変化するプロポーショナルフォントであるという特徴を持つ。
【0003】
等幅フォントは文字の幅が等しいため、表示領域の幅と文字の幅とから、表示領域に収まる最大文字数が決まる。したがって、等幅フォントの場合、文字数が最大文字数以内となるように文字列を検討することができる。これに対して、プロポーショナルフォントは文字によって幅が異なり、また、その文字の隣に表示される文字に対応して文字の幅が変化するなど、文字数から文字列を検討することができない。
【0004】
これに関連して、例えば、特許文献1には、プロポーショナルフォントを用いた文字列を表示する際、文字列の幅が画面の幅を超えるようであれば改行するという技術が開示されている。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2001−100770号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
GUIの開発は、例えば、画面をデザインするデザイナ、デザイナがデザインした画面と文字列とを統合するコーディネータ、文字列を各国語に翻訳する翻訳者、等によって分担して行われることがある。このようなGUIの開発において、翻訳者は、等幅フォントの場合には文字数が最大文字数以内となるように文字列を検討することができるが、プロポーショナルフォントの場合にはそれができない。
【0007】
本発明は、GUIの開発段階で、プロポーショナルフォントによる文字列が表示領域に収まるか否かを確認することが可能なプログラム、GUI開発装置、GUI開発方法を提供することを目的とする。
【課題を解決するための手段】
【0008】
本発明のプログラムは、ディスプレイを備える機器のグラフィカルユーザインタフェースの開発をコンピュータ上で行うためのアプリケーションプログラムであって、コンピュータに、読取ステップと、書込ステップと、検出ステップと、編集ステップと、を含む第1ルーチンを実行させる。読取ステップにおいて、コンピュータは、機器のディスプレイにおける表示領域のサイズと表示領域に表示する文字列とを格納する表計算ソフトのワークシートから、表示領域のサイズと文字列とを読み取る。書込ステップにおいて、コンピュータは、読取ステップにおいて読み取られた文字列をラスタライズしてメモリ空間に書き込む。検出ステップにおいて、コンピュータは、書込ステップにおける書き込みの結果に基づいて、文字列が表示領域のサイズを超えたか否かを検出する。編集ステップにおいて、コンピュータは、検出ステップにおいて文字列が表示領域のサイズを超えたことが検出された場合に、文字列が表示領域のサイズを超えたことが分かるようにワークシートを編集する。
【0009】
これにより、GUIの開発段階で、翻訳者等のユーザは、文字数から文字列を検討することができないプロポーショナルフォントによる文字列が表示領域に収まるか否かを確認することができる。
【0010】
また、本発明のプログラムがコンピュータに実行させる書込ステップは、機器がディスプレイに文字列を表示する場合に文字列のラスタライズを行うためのソフトウェアのソースコードを、コンピュータを機能させるプログラムに変換することで作成されたプログラムによって実現されるようにしてもよい。
【0011】
これにより、コンピュータ上で、実機と同じ処理で文字列をラスタライズしてメモリ空間に書き込み、仮想的に描画を行うことができる。文字列を実機と同様に表示させた場合のサイズと表示領域のサイズとに基づいて、文字列が表示領域のサイズを超えるか否かを検出することができる。
【0012】
また、本発明のプログラムは、コンピュータに、機器のディスプレイのためにデザインされた画面のデータから、表示領域を識別する識別情報と、表示領域のサイズと、文字列が含まれる場合には文字列と、を抽出する抽出ステップと、抽出ステップにおいて抽出された識別情報と、表示領域のサイズと、文字列と、をワークシートに記入する記入ステップと、を含む第2ルーチンをさらに実行させるようにしてもよい。
【0013】
これにより、デザイン画面データから必要な情報を自動的にワークシートに読み込むことができるため、入力ミスをなくし、作業効率を向上させることができる。
【0014】
また、本発明のプログラムは、コンピュータに、ユーザの操作に基づいて選択的に第1ルーチンと第2ルーチンとを実行させるようにしてもよい。これにより、ユーザは、必要な処理を実行することができるため、使い勝手が良い。
【0015】
また、ワークシートは、複数の表示領域について、識別情報毎に表示領域のサイズと文字列とを格納する行を有し、本発明のプログラムがコンピュータに実行させる読取ステップは、ワークシートから、行毎に表示領域のサイズと文字列とを読み取るようにしてもよい。また、ワークシートは、複数の言語について、言語毎に文字列を格納する列を有し、本発明のプログラムがコンピュータに実行させる記入ステップは、画面のデータに文字列が含まれる場合に抽出ステップにおいて抽出された文字列を、ワークシートの基準となる言語の列に記入するようにしてもよい。
【0016】
これにより、ユーザは、複数の表示領域、複数の言語について、簡単に確認することができる。
【0017】
また、本発明のプログラムがコンピュータに実行させる編集ステップは、表示領域のサイズを超えなかった文字列を格納するセルの表示態様を第1態様とし、表示領域のサイズを超えた文字列を格納するセルの表示態様を第1態様と異なる第2態様にするようにしてもよい。これにより、セルの表示態様から、文字列が表示領域に収まるか否かを容易に確認することができる。
【0018】
また、本発明は、ディスプレイを備える機器のグラフィカルユーザインタフェースの開発を行うGUI開発装置、あるいは、ディスプレイを備える機器のグラフィカルユーザインタフェースの開発をコンピュータ上で行うGUI開発方法としても構成可能であり、上記のプログラムと同様の効果が得られる。
【発明の効果】
【0019】
本発明のプログラム、GUI開発装置、GUI開発方法によれば、GUIの開発段階で、実機に実装することなく、プロポーショナルフォントによる文字列が表示領域に収まるか否かを確認することができる。
【図面の簡単な説明】
【0020】
【図1】GUI開発装置(PC)のハードウェア構成図である。
【図2】プログラムのソフトウェア構成図である。
【図3】プログラムを実行するPCの表示画面の一例を示す図である。
【図4】メイン処理のフローチャートである。
【図5】xmlファイル読み込み処理のフローチャート(その1)である。
【図6】xmlファイル読み込み処理のフローチャート(その2)である。
【図7】文字列幅設定処理のフローチャートである。
【図8】文字列ID設定処理のフローチャートである。
【図9】LCDを備える複合機における文字列の表示について説明する図である。
【図10】文字列長チェック処理のフローチャート(その1)である。
【図11】文字列長チェック処理のフローチャート(その2)である。
【図12】xmlファイルのサンプルを示す図である。
【発明を実施するための形態】
【0021】
図面を参照して実施例を説明する。図1は、GUI開発装置の一例であるPC10のハードウェア構成図を示す。バス17によって各部は互いに接続されている。CPU11は、プログラムに従って様々な処理を実行する。メモリ12は、CPU11に様々な処理を実行させるためのプログラムを格納するROM、プログラムに従って処理が実行される過程で生成される各種データを一時記憶するRAM、を含む。ディスプレイコントローラ13は、CPU11が発行する描画命令に基づいて、ディスプレイ18に画面表示する。入力機器インタフェース14は、キーボード19、マウス20などの入力機器をPC10に接続する。ユーザは、キーボード19、マウス20を介してPC10に入力操作を行うことができる。ネットワークインタフェース15は、PC10をインターネットに接続する。外部機器インタフェース16は、HDD21、メディアドライブ22などの外部機器をPC10に接続する。
【0022】
図2は、上記の構成を有するPC10上で、ディスプレイを備えるプリンタ、複合機といった機器のグラフィカルユーザインタフェースの開発を行うためのアプリケーションプログラムのソフトウェア構成図を示す。本プログラムは、第1の機能として、機器のディスプレイにおける表示領域のサイズとその表示領域に表示する文字列とを格納するExcel(登録商標)のような表計算ソフトのワークシートから、表示領域のサイズと文字列とを読み取り、文字列が表示領域に収まるかチェックする構成を含む。このチェック機能は、ワークシートから読み取られた表示領域のサイズと文字列とを入力として与えられた表示ライブラリがフォントAPI(Application Programming Interface)を介してフォントデータを取得しラスタライズした結果を利用して行われる。これにより、本プログラムでは、擬似的に文字列の描画が行われ、表示領域内に収まるか否かが判定される。
【0023】
また、本プログラムは、第2の機能として、画像編集ソフトによりデザイナが機器のディスプレイのためにデザインした画面のデータから、表示領域を識別する識別情報、表示領域のサイズ、文字列が含まれる場合には文字列、をワークシートに読み込む構成を含む。この読み込み機能によってデザイン画面データの情報が読み込まれたワークシートに、翻訳者は、各言語に翻訳した文字列を記入していく。そして、上記のチェック機能を利用して、翻訳者等のユーザは、文字列が表示領域に収まるか否か確認する。
尚、本実施例では、上記表示領域を識別する識別情報、表示領域のサイズ、文字列はxml形式のファイルにより読み込んでいるが、xml形式での情報保守手段を有しない画像編集ソフト(例 Photoshop(登録商標))が対応するファイル形式のファイルを読み込むよう、本プログラムが構成されていてもよい。
また、xml形式での情報保守手段を有しない画像編集ソフトが対応するファイル形式のファイルをxml形式に変換し、変換したxml形式のファイルを読み込むよう、本プログラムが構成されていてもよい。
【0024】
図3は、複合機のGUI開発を例に、上記の構成を有する本プログラムを実行するPC10のディスプレイ18に表示される画面の一例を示す。ここで、本実施例では、表計算ソフトとしてExcelを用いた場合について説明するため、図3は、Excelで作成したxlsファイルのワークシートを示している。図3に示されるように、PC10のディスプレイ18に表示されるワークシートには、読み込みボタンB1、チェックボタンB2が含まれる。ユーザは、マウス20を用いて読み込みボタンB1を押下することにより、本プログラムの読み込み機能を利用することができる。また、ユーザは、マウス20を用いてチェックボタンB2を押下することにより、本プログラムのチェック機能を利用することができる。
【0025】
続いて、ワークシートに格納されるデータについて説明する。ST−1の行は各データのタイトル行であり、ST行目からデータ値が格納される。NAME列は、デザイン画面データから読み込んだ表示領域の識別情報を格納する。WIDTH列は、デザイン画面データから読み込んだ表示領域の幅、すなわち、横方向のサイズを格納する。HIGHT列は、デザイン画面データから読み込んだ表示領域の高さ、すなわち、縦方向のサイズを格納する。MP列目に配置されたMSG列は、基準となる言語(ここでは英語)による文字列を格納する。デザイン画面データに文字列が含まれる場合にデザイン画面データから読み込んだ文字列は、このMSG列に格納される。仏、日、独の各列は、それぞれ対応する言語(仏語、日本語、独語)による文字列を格納する。このように、ワークシートは、デザイン画面データから読み込んだ複数の表示領域について、識別情報毎に表示領域のサイズと文字列とを格納する行を有する。また、ワークシートは、複数の言語について、言語毎に文字列を格納する列を有する。
【0026】
図4は、本プログラムのメイン処理のフローチャートである。CPU11は、S1において、読み込みボタンB1が押下されたか否かを判断し、S2において、チェックボタンB2が押下されたか否かを判断する。読み込みボタンB1が押下された場合(S1:YES)、CPU11は、S3のxmlファイル読み込み処理に移行する。チェックボタンB2が押下された場合(S2:YES)、CPU11は、S4の文字列長チェック処理に移行する。
【0027】
図5、図6は、本プログラムのxmlファイル読み込み処理のフローチャートである。xmlファイル読み込み処理は、図4で説明したように、メイン処理において読み込みボタンB1が押下されると実行される。ここで、本実施例では、処理を容易にするため、デザイン画面データのファイルをxmlファイルに変換し、そのxmlファイルを読み込むという方法が取られる。
【0028】
図12を参照して、xmlファイルについて説明する。図12は、xmlファイルのサンプルを示す図である。xmlファイルは、ツリー構造を有する。<>で囲まれた部分は、タグと呼ばれる。タグには開始タグと終了タグとがあり、終了タグはタグ名の前に/が付く。開始タグ<PANEL_STRING>と終了タグ</PANEL_STRING>とで囲まれた部分に、表示領域の識別情報、表示領域の幅、表示領域の高さ、表示領域に表示する文字列、などを内容として持つ要素が、各要素をマークアップするタグに囲まれて記述される。
【0029】
図5に示されるxmlファイル読み込み処理のS11において、CPU11は、書き出し行ポインタNを0に設定する。S13において、CPU11は、読み込む対象となるxmlファイルのファイル名の入力処理を行う。ユーザは、キーボード19からファイル名を入力する。S15において、CPU11は、対象となるxmlファイルから1行読み込む。S17において、CPU11は、読み込み結果に基づいて、xmlファイルの終了と判断すると、xmlファイル読み込み処理を終了し、メイン処理のS1(図4)に戻る。一方、S17において、CPU11は、読み込み結果に基づいて、1行読み込むことに成功したと判断すると、S19に進む。
【0030】
S19において、CPU11は、読み込んだ1行が開始タグ<PANEL_STRING>を含むか否かを判断する。開始タグ<PANEL_STRING>を含まない場合(S19:NO)、CPU11は、S15に戻る。一方、開始タグ<PANEL_STRING>を含む場合(S19:YES)、CPU11は、S21において、xmlファイルからさらに1行読み込む。
【0031】
S23において、CPU11は、読み込んだ1行が終了タグ</PANEL_STRING>を含むか否かを判断する。終了タグ</PANEL_STRING>を含む場合(S23:YES)、CPU11は、S33において、書き出し行ポインタNに1を加算し、S15に戻る。一方、終了タグ</PANEL_STRING>を含まない場合(S23:NO)、S25において、CPU11は、読み込んだ1行がタグ<STRING_WIDTH>を含むか否かを判断する。
【0032】
タグ<STRING_WIDTH>は、表示領域の幅を内容として持つ要素をマークアップするタグである。タグ<STRING_WIDTH>を含む場合(S25:YES)、CPU11は、S35の文字列幅設定処理に移行する。一方、タグ<STRING_WIDTH>を含まない場合(S25:NO)、S27において、CPU11は、読み込んだ1行がタグ<STRING_HIGHT>を含むか否かを判断する。
【0033】
タグ<STRING_HIGHT>は、表示領域の高さを内容として持つ要素をマークアップするタグである。タグ<STRING_HIGHT>を含む場合(S27:YES)、CPU11は、S37の文字列高設定処理に移行する。一方、タグ<STRING_HIGHT>を含まない場合(S27:NO)、図6のS29において、CPU11は、読み込んだ1行がタグ<STRING_NAME>を含むか否かを判断する。
【0034】
タグ<STRING_NAME>は、表示領域の識別情報を内容として持つ要素をマークアップするタグである。タグ<STRING_NAME>を含む場合(S29:YES)、CPU11は、S39の文字列ID設定処理に移行する。一方、タグ<STRING_NAME>を含まない場合(S29:NO)、S31において、CPU11は、読み込んだ1行がタグ<STRING_MSG>を含むか否かを判断する。
【0035】
タグ<STRING_MSG>は、表示領域に表示する文字列を内容として持つ要素をマークアップするタグである。タグ<STRING_MSG>を含む場合(S31:YES)、CPU11は、S41の基本文字列設定処理に移行する。一方、タグ<STRING_MSG>を含まない場合(S31:NO)、CPU11は、図5のS21に戻る。
【0036】
図7は、本プログラムの文字列幅設定処理のフローチャートである。文字列幅設定処理は、図5で説明したように、xmlファイル読み込み処理のS35で実行される。S51において、CPU11は、読み込んだ1行がタグ</STRING_WIDTH>を含むか否かを判断する。タグ</STRING_WIDTH>を含まない場合(S51:NO)、CPU11は、文字列幅設定処理を終了し、xmlファイル読み込み処理のS21(図5)に戻る。一方、タグ</STRING_WIDTH>を含む場合(S51:YES)、CPU11は、S53に進む。
【0037】
S53において、CPU11は、タグ<STRING_WIDTH>とタグ</STRING_WIDTH>との間の文字列を取り出す。S55において、CPU11は、取り出した文字列が数値であるか否かを判断する。取り出した文字列が数値でない場合(S55:NO)、CPU11は、文字列幅設定処理を終了し、xmlファイル読み込み処理のS21(図5)に戻る。一方、取り出した文字列が数値である場合(S55:YES)、CPU11は、S57において、文字列を数値化して、xlsファイル(図3参照)のST+N行目のWIDTH列のセルに書き込む。その後、CPU11は、文字列幅設定処理を終了し、xmlファイル読み込み処理のS21(図5)に戻る。
【0038】
尚、xmlファイル読み込み処理のS37(図5)における文字列高設定処理は、図7の文字列幅設定処理のフローチャートにおいて、WIDTHをHIGHTと読み替えることで、同様に実行することができる。
【0039】
図8は、本プログラムの文字列ID設定処理のフローチャートである。文字列ID設定処理は、図6で説明したように、xmlファイル読み込み処理のS39で実行される。S61において、CPU11は、読み込んだ1行がタグ</STRING_NAME>を含むか否かを判断する。タグ</STRING_NAME>を含まない場合(S61:NO)、CPU11は、文字列ID設定処理を終了し、xmlファイル読み込み処理のS21(図5)に戻る。一方、タグ</STRING_NAME>を含む場合(S61:YES)、CPU11は、S63に進む。
【0040】
S63において、CPU11は、タグ<STRING_NAME>とタグ</STRING_WIDTH>との間の文字列を取り出す。S65において、CPU11は、取り出した文字列を、xlsファイル(図3参照)のST+N行目のNAME列のセルに書き込む。その後、CPU11は、文字列ID設定処理を終了し、xmlファイル読み込み処理のS21(図5)に戻る。
【0041】
尚、xmlファイル読み込み処理のS41(図6)における基本文字列設定処理は、図8の文字列ID設定処理のフローチャートにおいて、NAMEをMSGと読み替えることで、同様に実行することができる。
【0042】
続いて、図9を参照して、実機上の文字列表示手順について説明する。図9は、LCD(Liquid Crystal Display)を備える複合機における文字列の表示について説明する図である。複合機では、図9(A)に示されるように、メモリ空間上の定められた領域にデータを書き込むと、ハードウェアによって、LCDにおいてメモリアドレスに対応するドット(ピクセル)が点灯あるいは消灯する。本実施例に係る複合機では、LCDに文字列を表示する場合、LCD上のドット(ピクセル)の点灯、消灯に関係する一連の必要な処理を、以下のような引き数を有する関数として保持している。
string_display(Px,Py,W,H,*d_msg)
ここで、
PxはLCD全体における文字列を表示する表示領域の左上位置のX座標(LCDの左上を原点とした横方向の値)である。
PyはLCD全体における文字列を表示する表示領域の左上位置のY座標(LCDの左上を原点とした縦方向の値)である。
Wは文字列を表示する表示領域の幅である。
Hは文字列を表示する表示領域の高さである。
*d_msgは表示したい文字列(例えば、「COPY」等)を示すポインタである。
尚、図9(B)、(C)において斜線部は文字列を表示する表示領域を示す。
【0043】
上記の関数は、指定された表示領域に文字列を配置する(メモリ上に必要なデータを書き込む)。そして、図9(B)に示されるように、表示領域内に全ての点を書き込めた場合、上記の関数は、返り値として0を返す。また、図9(C)に示されるように、表示領域内に全ての点を書き込めなかった場合、上記の関数は、返り値として−1を返す。
【0044】
本プログラムは、文字列が表示領域に収まるかチェックする際、ワークシートから読み取られた表示領域のサイズと文字列とを表示ライブラリに入力として与え、表示ライブラリの出力を利用する、ということを図2で説明した。この表示ライブラリは、具体的には、複合機で文字列のラスタライズを行う上記の関数のソースコードをPC10用のコンパイラによって処理することで実機と共通のソースコードにより作成されたdll(dynamic link library)によって実現される。
【0045】
図10、図11は、本プログラムの文字列長チェック処理のフローチャートである。文字列長チェック処理は、図4で説明したように、メイン処理においてチェックボタンB2が押下されると実行される。S71において、CPU11は、R=0に設定する。S73において、CPU11は、ST−1の行、MP+Rの列のセル(図3参照)が空でないと判断すると、S75に進む。S75において、CPU11は、Rに1を加算し、S73に戻る。一方、S73において、CPU11は、ST−1の行、MP+Rの列のセル(図3参照)が空であると判断すると、S77に進む。図3で説明したように、ST−1の行は各データのタイトル行である。そして、MP列目から言語毎に文字列データが格納される。したがって、CPU11は、S71、S73、S75の処理を行うことにより、表示領域に収まるか否かの文字列長チェックを行うべき範囲(列)を調べることができる。
【0046】
S77において、CPU11は、C=0、RT=0に設定する。S79において、CPU11は、ST+Cの行、WIDTH列のセル(図3参照)にある数値を読み取り、変数Wに設定する。S81において、CPU11は、ST+Cの行、HIGHT列のセル(図3参照)にある数値を読み取り、変数Hに設定する。S83において、CPU11は、ST+Cの行、MP+RTの列のセル(図3参照)に設定されている文字列を変数msg[]にコピーする。
【0047】
S85において、CPU11は、変数msg[]が空でないと判断すると、S87に進む。S87において、CPU11は、前述したdllにより、以下の関数を上記S79、S81、S83で設定したパラメータで呼び出す。
string_display(0,0,W,H,*msg)
これにより、PC10のディスプレイ18に可視化はされないが、CPU11は、実機と同じ処理で文字列をラスタライズしてメモリ空間に書き込み、仮想的に描画を行う。
【0048】
図11のS91において、CPU11は、string_displayの返り値が0である(すなわち、表示領域からの文字列のはみ出しがない)と判断すると、S93に進む。S93において、CPU11は、ST+Cの行、MP+RTの列のセル(図3参照)の背景色を白色に変更し、S97に進む。また、S91において、CPU11は、string_displayの返り値が−1である(すなわち、表示領域からの文字列のはみ出しがある)と判断すると、S95に進む。S95において、CPU11は、ST+Cの行、MP+RTの列のセル(図3参照)の背景色を赤色に変更し、S97に進む。
【0049】
一方、図10のS85において、CPU11は、変数msg[]が空であると判断すると、S89に進む。S89において、CPU11は、ST+Cの行、MP+RTの列のセル(図3参照)の背景色を黄色に変更し、図11のS97に進む。
【0050】
S97において、CPU11は、RTに1を加算する。これにより、チェック対象セルが右へ1つ移動する。S99において、CPU11は、RT=Rであるか否かを判断する。RT≠Rである場合、現在の行について文字列長チェックを行うべき範囲(列)が残っていることになるので、CPU11は、図10のS83に戻る。一方、RT=Rである場合、現在の行について文字列長チェックが全て済んだことになるので、CPU11は、S101に進み、RTを0にリセットし、Cに1を加算する。これにより、チェック対象となる行が下へ1つ移動する。
【0051】
S103において、CPU11は、ST+Cの行、NAME列のセル(図3参照)の内容が空でないと判断すると、図10のS79に戻る。これにより、文字列長チェックを行うべき範囲(行)が残っている場合には、処理が続けられる。一方、S103において、CPU11は、ST+Cの行、NAME列のセル(図3参照)の内容が空であると判断すると、文字列長チェック処理を終了し、メイン処理のS1(図4)に戻る。これにより、文字列長チェックを行うべき全範囲(行、列)について、処理が行われる。
【0052】
本実施例の効果を以下に説明する。ユーザがチェックボタンB2(図3参照)を押下すると、CPU11は文字列長チェック処理を行う。その結果、文字列が表示領域からはみ出る場合には該当セルの背景色が赤色となり、文字列が設定されていない場合には該当セルの背景色が黄色となり、何れにも該当しないセルの背景色は白色となる。これにより、GUIの開発段階で、翻訳者等のユーザは、文字数から文字列を検討することができないプロポーショナルフォントによる文字列が表示領域に収まるか否かを、セルの背景色から容易に確認することができる。
【0053】
また、文字列長チェック処理のS87(図10)では、複合機で文字列のラスタライズを行う関数のソースコードをPC10用のコンパイラによって処理することで実機と共通のソースコードにより作成されたdllが利用される。これにより、PC10上で、実機と同じ処理で文字列をラスタライズしてメモリ空間に書き込み、仮想的に描画を行うことができる。文字列を実機と同様に表示させた場合のサイズと表示領域のサイズとに基づいて、文字列が表示領域のサイズを超えるか否かを検出することができる。
【0054】
また、ユーザが読み込みボタンB1(図3参照)を押下すると、CPU11はxmlファイル読み込み処理を行う。これにより、デザイン画面データから必要な情報を自動的にワークシートに読み込むことができるため、入力ミスをなくし、作業効率を向上させることができる。
【0055】
以上、本発明の実施例を詳細に説明したが、これらは例示に過ぎず、特許請求の範囲を限定するものではない。特許請求の範囲に記載の技術には、上記の実施例を様々に変形、変更したものが含まれる。
【0056】
例えば、前述のフローチャートは単なる一例であり、前述のフローチャートの処理と同等の結果を得ることできるものであれば、他のフローチャートによって処理を実現してもよい。
【0057】
上記の実施例では、表計算ソフトとしてExcelを用いた場合について説明したが、これに限られないことは言うまでもない。また、図10、図11の文字列長チェック処理において、文字列が表示領域のサイズを超えたことをユーザに報知する方法は、セルの背景色を変更することに限られず、文字列が表示領域のサイズを超えたことがユーザに分かればよい。
【0058】
尚、複合機はディスプレイを備える機器の一例である。Excelは表計算ソフトの一例である。文字列長チェック処理のS79、S81、S83(図10)を実行するCPU11によって読取ステップ(手段)が実現される。文字列長チェック処理のS87(図10)を実行するCPU11によって書込ステップ(手段)が実現される。文字列長チェック処理のS91(図11)を実行するCPU11によって検出ステップ(手段)が実現される。文字列長チェック処理のS93、S95(図11)を実行するCPU11によって編集ステップ(手段)が実現される。メイン処理のS4(図4)は第1ルーチンの一例である。xmlファイル読み込み処理のS35、S37、S39、S41(図5、図6)を実行するCPU11によって抽出ステップ、記入ステップが実現される。メイン処理のS3(図4)は第2ルーチンの一例である。セルの背景色における白色、赤色はそれぞれ第1態様、第2態様の一例である。また、PC10用のコンパイラによって変換手段が実現される。
【符号の説明】
【0059】
10 GUI開発装置(PC)
11 CPU
12 メモリ
18 ディスプレイ
19 キーボード
20 マウス
21 HDD
【特許請求の範囲】
【請求項1】
ディスプレイを備える機器のグラフィカルユーザインタフェースの開発をコンピュータ上で行うためのアプリケーションプログラムであって、前記コンピュータに、
前記機器の前記ディスプレイにおける表示領域のサイズと前記表示領域に表示する文字列とを格納する表計算ソフトのワークシートから、前記表示領域のサイズと前記文字列とを読み取る読取ステップと、
前記読取ステップにおいて読み取られた前記文字列をラスタライズしてメモリ空間に書き込む書込ステップと、
前記書込ステップにおける書き込みの結果に基づいて、前記文字列が前記表示領域のサイズを超えたか否かを検出する検出ステップと、
前記検出ステップにおいて前記文字列が前記表示領域のサイズを超えたことが検出された場合に、前記文字列が前記表示領域のサイズを超えたことが分かるように前記ワークシートを編集する編集ステップと、
を含む第1ルーチンを実行させることを特徴とするプログラム。
【請求項2】
前記書込ステップは、
前記機器が前記ディスプレイに前記文字列を表示する場合に前記文字列のラスタライズを行うためのソフトウェアのソースコードを、前記コンピュータを機能させるプログラムに変換することで作成されたプログラムによって実現される
ことを特徴とする請求項1に記載のプログラム。
【請求項3】
前記コンピュータに、
前記機器の前記ディスプレイのためにデザインされた画面のデータから、前記表示領域を識別する識別情報と、前記表示領域のサイズと、前記文字列が含まれる場合には前記文字列と、を抽出する抽出ステップと、
前記抽出ステップにおいて抽出された前記識別情報と、前記表示領域のサイズと、前記文字列と、を前記ワークシートに記入する記入ステップと、
を含む第2ルーチンをさらに実行させることを特徴とする請求項1又は2に記載のプログラム。
【請求項4】
前記コンピュータに、
ユーザの操作に基づいて選択的に前記第1ルーチンと前記第2ルーチンと
を実行させることを特徴とする請求項3に記載のプログラム。
【請求項5】
前記ワークシートは、
複数の前記表示領域について、前記識別情報毎に前記表示領域のサイズと前記文字列とを格納する行を有し、
前記読取ステップは、
前記ワークシートから、前記行毎に前記表示領域のサイズと前記文字列とを読み取る
ことを特徴とする請求項3又は4に記載のプログラム。
【請求項6】
前記ワークシートは、
複数の言語について、言語毎に前記文字列を格納する列を有し、
前記記入ステップは、
前記画面のデータに前記文字列が含まれる場合に前記抽出ステップにおいて抽出された前記文字列を、前記ワークシートの基準となる言語の列に記入する
ことを特徴とする請求項3乃至5に記載のプログラム。
【請求項7】
前記編集ステップは、
前記表示領域のサイズを超えなかった文字列を格納するセルの表示態様を第1態様とし、前記表示領域のサイズを超えた文字列を格納するセルの表示態様を前記第1態様と異なる第2態様にする
ことを特徴とする請求項1乃至6に記載のプログラム。
【請求項8】
ディスプレイを備える機器のグラフィカルユーザインタフェースの開発を行うGUI開発装置であって、
前記機器の前記ディスプレイにおける表示領域のサイズと前記表示領域に表示する文字列とを格納する表計算ソフトのワークシートから、前記表示領域のサイズと前記文字列とを読み取る読取手段と、
前記読取手段によって読み取られた前記文字列をラスタライズしてメモリ空間に書き込む書込手段と、
前記書込手段による書き込みの結果に基づいて、前記文字列が前記表示領域のサイズを超えたか否かを検出する検出手段と、
前記検出手段によって前記文字列が前記表示領域のサイズを超えたことが検出された場合に、前記文字列が前記表示領域のサイズを超えたことが分かるように前記ワークシートを編集する編集手段と、
を備えることを特徴とするGUI開発装置。
【請求項9】
ソースコードを実行可能なプログラムに変換する変換手段を備え、
前記書込手段は、
前記機器が前記ディスプレイに前記文字列を表示する場合に前記文字列のラスタライズを行うためのソフトウェアのソースコードを、前記変換手段が処理することで作成されたプログラムによって実現される
ことを特徴とする請求項8に記載のGUI開発装置。
【請求項10】
ディスプレイを備える機器のグラフィカルユーザインタフェースの開発をコンピュータ上で行うGUI開発方法であって、
前記コンピュータが、前記機器の前記ディスプレイにおける表示領域のサイズと前記表示領域に表示する文字列とを格納する表計算ソフトのワークシートから、前記表示領域のサイズと前記文字列とを読み取る読取ステップと、
前記コンピュータが、前記読取ステップにおいて読み取られた前記文字列をラスタライズしてメモリ空間に書き込む書込ステップと、
前記コンピュータが、前記書込ステップにおける書き込みの結果に基づいて、前記文字列が前記表示領域のサイズを超えたか否かを検出する検出ステップと、
前記コンピュータが、前記検出ステップにおいて前記文字列が前記表示領域のサイズを超えたことが検出された場合に、前記文字列が前記表示領域のサイズを超えたことが分かるように前記ワークシートを編集する編集ステップと、
を備えることを特徴とするGUI開発方法。
【請求項11】
前記書込ステップは、
前記機器が前記ディスプレイに前記文字列を表示する場合に前記文字列のラスタライズを行うためのソフトウェアのソースコードを、前記コンピュータを機能させるプログラムに変換することで作成されたプログラムによって実現される
ことを特徴とする請求項10に記載のGUI開発方法。
【請求項1】
ディスプレイを備える機器のグラフィカルユーザインタフェースの開発をコンピュータ上で行うためのアプリケーションプログラムであって、前記コンピュータに、
前記機器の前記ディスプレイにおける表示領域のサイズと前記表示領域に表示する文字列とを格納する表計算ソフトのワークシートから、前記表示領域のサイズと前記文字列とを読み取る読取ステップと、
前記読取ステップにおいて読み取られた前記文字列をラスタライズしてメモリ空間に書き込む書込ステップと、
前記書込ステップにおける書き込みの結果に基づいて、前記文字列が前記表示領域のサイズを超えたか否かを検出する検出ステップと、
前記検出ステップにおいて前記文字列が前記表示領域のサイズを超えたことが検出された場合に、前記文字列が前記表示領域のサイズを超えたことが分かるように前記ワークシートを編集する編集ステップと、
を含む第1ルーチンを実行させることを特徴とするプログラム。
【請求項2】
前記書込ステップは、
前記機器が前記ディスプレイに前記文字列を表示する場合に前記文字列のラスタライズを行うためのソフトウェアのソースコードを、前記コンピュータを機能させるプログラムに変換することで作成されたプログラムによって実現される
ことを特徴とする請求項1に記載のプログラム。
【請求項3】
前記コンピュータに、
前記機器の前記ディスプレイのためにデザインされた画面のデータから、前記表示領域を識別する識別情報と、前記表示領域のサイズと、前記文字列が含まれる場合には前記文字列と、を抽出する抽出ステップと、
前記抽出ステップにおいて抽出された前記識別情報と、前記表示領域のサイズと、前記文字列と、を前記ワークシートに記入する記入ステップと、
を含む第2ルーチンをさらに実行させることを特徴とする請求項1又は2に記載のプログラム。
【請求項4】
前記コンピュータに、
ユーザの操作に基づいて選択的に前記第1ルーチンと前記第2ルーチンと
を実行させることを特徴とする請求項3に記載のプログラム。
【請求項5】
前記ワークシートは、
複数の前記表示領域について、前記識別情報毎に前記表示領域のサイズと前記文字列とを格納する行を有し、
前記読取ステップは、
前記ワークシートから、前記行毎に前記表示領域のサイズと前記文字列とを読み取る
ことを特徴とする請求項3又は4に記載のプログラム。
【請求項6】
前記ワークシートは、
複数の言語について、言語毎に前記文字列を格納する列を有し、
前記記入ステップは、
前記画面のデータに前記文字列が含まれる場合に前記抽出ステップにおいて抽出された前記文字列を、前記ワークシートの基準となる言語の列に記入する
ことを特徴とする請求項3乃至5に記載のプログラム。
【請求項7】
前記編集ステップは、
前記表示領域のサイズを超えなかった文字列を格納するセルの表示態様を第1態様とし、前記表示領域のサイズを超えた文字列を格納するセルの表示態様を前記第1態様と異なる第2態様にする
ことを特徴とする請求項1乃至6に記載のプログラム。
【請求項8】
ディスプレイを備える機器のグラフィカルユーザインタフェースの開発を行うGUI開発装置であって、
前記機器の前記ディスプレイにおける表示領域のサイズと前記表示領域に表示する文字列とを格納する表計算ソフトのワークシートから、前記表示領域のサイズと前記文字列とを読み取る読取手段と、
前記読取手段によって読み取られた前記文字列をラスタライズしてメモリ空間に書き込む書込手段と、
前記書込手段による書き込みの結果に基づいて、前記文字列が前記表示領域のサイズを超えたか否かを検出する検出手段と、
前記検出手段によって前記文字列が前記表示領域のサイズを超えたことが検出された場合に、前記文字列が前記表示領域のサイズを超えたことが分かるように前記ワークシートを編集する編集手段と、
を備えることを特徴とするGUI開発装置。
【請求項9】
ソースコードを実行可能なプログラムに変換する変換手段を備え、
前記書込手段は、
前記機器が前記ディスプレイに前記文字列を表示する場合に前記文字列のラスタライズを行うためのソフトウェアのソースコードを、前記変換手段が処理することで作成されたプログラムによって実現される
ことを特徴とする請求項8に記載のGUI開発装置。
【請求項10】
ディスプレイを備える機器のグラフィカルユーザインタフェースの開発をコンピュータ上で行うGUI開発方法であって、
前記コンピュータが、前記機器の前記ディスプレイにおける表示領域のサイズと前記表示領域に表示する文字列とを格納する表計算ソフトのワークシートから、前記表示領域のサイズと前記文字列とを読み取る読取ステップと、
前記コンピュータが、前記読取ステップにおいて読み取られた前記文字列をラスタライズしてメモリ空間に書き込む書込ステップと、
前記コンピュータが、前記書込ステップにおける書き込みの結果に基づいて、前記文字列が前記表示領域のサイズを超えたか否かを検出する検出ステップと、
前記コンピュータが、前記検出ステップにおいて前記文字列が前記表示領域のサイズを超えたことが検出された場合に、前記文字列が前記表示領域のサイズを超えたことが分かるように前記ワークシートを編集する編集ステップと、
を備えることを特徴とするGUI開発方法。
【請求項11】
前記書込ステップは、
前記機器が前記ディスプレイに前記文字列を表示する場合に前記文字列のラスタライズを行うためのソフトウェアのソースコードを、前記コンピュータを機能させるプログラムに変換することで作成されたプログラムによって実現される
ことを特徴とする請求項10に記載のGUI開発方法。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【公開番号】特開2011−227725(P2011−227725A)
【公開日】平成23年11月10日(2011.11.10)
【国際特許分類】
【出願番号】特願2010−97143(P2010−97143)
【出願日】平成22年4月20日(2010.4.20)
【出願人】(000005267)ブラザー工業株式会社 (13,856)
【Fターム(参考)】
【公開日】平成23年11月10日(2011.11.10)
【国際特許分類】
【出願日】平成22年4月20日(2010.4.20)
【出願人】(000005267)ブラザー工業株式会社 (13,856)
【Fターム(参考)】
[ Back to top ]