前へ 次へ 目次 文書セット ホーム


付録 C

getter と setter


はじめに

値または状態を保持できるウィジェットには getter と setter のルーチンが用意されています。この付録では、ウィジェットごとに使用できる getter と setter を一覧します。これらのルーチンはツールキットに依存しません。getter と setter を使用するには、最初にウィジェットを含んでいるグループを定義し、次にスマートコードのコールバック を設定する必要があります。この処理の詳細については、以下の章を参照してください。

  1. 第 15 章「グループ」
  2. 第 16 章「取得と設定用のスマートコード」
  3. 第 17 章「thin クライアント用スマートコード」
  4. 第 18 章「インターネット用スマートコード」

この付録で取り上げるウィジェットは次のとおりです。

この情報の使い方

getter と setter でアクセスできる X リソースの名前が、ウィジェットごとに表形式で示されています。表中のリソースのうち、1 つはデフォルトです。これは、サーバーからアクセスされるリソースです。サーバーは、ウィジェットの「 値」の取得や設定を行うだけですが、デフォルトとはこの「値」のことです。

C、C++、および Java コードに対して getter と setter を使用する例も、ウィジェットごとに示されています。

詳細について

広範囲に渡るオンラインドキュメントが用意されています。内容の一覧を見るには 、HTML ブラウザで次のファイルを開いてください。

$VISUROOT/lib/locale/<YourLocale>/sc/index.html

ここで、VISUROOT は Sun WorkShop Visual のインストールディレクトリであり、<YourLocale> はユーザーが使用しているロケールです。自分のロケールがわからない場合には、端末ウィンドウに locale と入力してみてください。これによってロケール情報が出力されます。出力された内容のうち、LANG に割り当てられた文字列を使用します。ロケールの例を次に示します。

また、いったんコードを生成すると、コードが生成されたディレクトリに index.html というファイルが作られます。このファイルにはハイパーテキストリンクが含まれており、このリンクから オンライン資料にアクセスできます。

ラベルとボタン

表 C-1 ラベルとボタンに使用できる getter と setter

リソース名

 

Value

char *

デフォルト

Sensitive

int

 

C のコード例

C のコードでは、SC_GET と SC_SET のマクロを使用します。これらのマクロは、最初の引数としてリソース名 (つまり、取得/設定しているもの) を受け取り、2 番目の引数としてグループコンポーネントを受け取ります。SC_SET の場合には、3 番目の引数は新しく設定する値になります。詳細については、第 16 章「取得と設定用のスマートコード」を参照してください。

次の例では、ラベルの値を取得および設定します。「label1」はグループ mygroup のメンバーです。

char * val = SC_GET(Value,mygroup->label1);
SC_SET(Value,mygroup->label1,"my label");

C++ のコード例

C++ では、グループはクラスです。グループメンバーは、このクラスの変数であり、クラスでもあります。gett er と setter は、グループメンバーのクラスのメソッドです。

次の例は、上述の C のコード例と同様にラベルの値を取得および設定します。「label1」はグループ mygroup のメンバーです。

mygroup_c * g = (mygroup_c *) getGroup();
char * val = g->label1->getValue();
g->label1->setValue("my label");

Java のコード例

Java では、グループはクラスです。グループメンバーは、このクラスの変数であり、クラスでもあります。gett er と setter は、グループメンバーのクラスのメソッドです。

次の例は、上述の C のコード例と同様にラベルの値を取得および設定します。「label1」はグループ mygroup のメンバーです。

mygroup_c g = (mygroup_c ) getGroup();
String val = g.label1.getValue();
g.label1.setValue("my label");

トグル

表 C-2 トグルに使用できる getter と setter

リソース名

 

State

int1

デフォルト

Sensitive

int

 

C のコード例

C のコードでは、SC_GET と SC_SET のマクロを使用します。これらのマクロは、最初の引数としてリソース名 (つまり、取得/設定しているもの) を受け取り、2 番目の引数としてグループコンポーネントを受け取ります。SC_SET の場合には、3 番目の引数は新しく設定する値になります。詳細については、第 16 章「取得と設定用のスマートコード」を参照してください。

次の例では、トグルの状態 (オンまたはオフ) を取得および設定します。「toggle1」と「toggle2」は、グループ mygroup のメンバーです。

int state = SC_GET(State,mygroup->toggle1);
SC_SET(State,mygroup->toggle2, state);

C++ のコード例

C++ では、グループはクラスです。グループメンバーは、このクラスの変数であり、クラスでもあります。gett er と setter は、グループメンバーのクラスのメソッドです。

次の例は、上述の C のコード例と同様に一方のトグルの状態を取得し、他方のトグルの状態を設定します。「toggle1」と「tog gle2」は、グループ mygroup のメンバーです。

mygroup_c * g = (mygroup_c *) getGroup();
int state = g->toggle1->getState();
g->toggle2->setState(state);

Java のコード例

Java では、グループはクラスです。グループメンバーは、このクラスの変数であり、クラスでもあります。gett er と setter は、グループメンバーのクラスのメソッドです。

次の例は、上述の C のコード例と同様にトグルの状態を取得および設定します。「toggle1」と「toggle2」は、グループ mygroup のメンバーです。

mygroup_c g = (mygroup_c ) getGroup();
boolean state = g.toggle1.getState();
g.toggle2.setState(state);

ここでは「state」はブール値です。C と C++ では int になります。

テキストフィールド、テキスト、スクロールテキスト

テキスト制御用の getter と setter は、 groups_c/sc_types.h で定義された SC_GET() マクロと SC_SET() マクロを介して使用できます。

表 C-3 テキストに使用できる getter と setter

リソース名

 

Value

char *

デフォルト

Sensitive

int

 

C のコード例

C のコードでは、SC_GET と SC_SET のマクロを使用します。これらのマクロは、最初の引数としてリソース名 (つまり、取得/設定しているもの) を受け取り、2 番目の引数としてグループコンポーネントを受け取ります。SC_SET の場合には、3 番目の引数は新しく設定する値になります。詳細については、第 16 章「取得と設定用のスマートコード」を参照してください。

次の例では、テキストの値 (つまり、内容) を取得および設定します。「text1」はグループ mygroup のメンバーです。

char * contents = SC_GET(Value,mygroup->text1);
SC_SET(Value,mygroup->text1,"a new string");

C++ のコード例

C++ では、グループはクラスです。グループメンバーは、このクラスの変数であり、クラスでもあります。gett er と setter は、グループメンバーのクラスのメソッドです。

次の例は、上述の C のコード例と同様にテキストの内容を取得および設定します。「text1」はグループ mygroup のメンバーです。

mygroup_c * g = (mygroup_c *) getGroup();
char * contents = g->text1->getValue();
g->text1->setValue("a new string");

Java のコード例

Java では、グループはクラスです。グループメンバーは、このクラスの変数であり、クラス自身でもあります。 getter と setter は、グループメンバーのクラスのメソッドです。

次の例は、上述の C のコード例と同様にテキストの内容を取得および設定します。「text1」はグループ mygroup のメンバーです。

mygroup_c g = (mygroup_c ) getGroup();
String contents = g.text1.getValue();
g.text1.setValue("a new string");

スケール

表 C-4 スケールに使用できる getter と setter

リソース名

 

Value

int

デフォルト

Sensitive

int

 

C のコード例

C のコードでは、SC_GET と SC_SET のマクロを使用します。これらのマクロは、最初の引数としてリソース名 (つまり、取得または設定しているもの) を受け取り、2 番目の引数としてグループコンポーネントを受け取ります。SC_SET の場合には、3 番目の引数は新しく設定する値になります。詳細については、第 16 章「取得と設定用のスマートコード」を参照してください。

次の例では、スケールウィジェットの値 (つまり、スケール上の数値) を取得および設定します。「scale1」はグループ mygroup のメンバーです。

int val = SC_GET(Value,mygroup->scale1);
SC_SET(Value,mygroup->scale1, 1);

C++ のコード例

C++ では、グループはクラスです。グループメンバーは、このクラスの変数であり、クラス自身でもあります。 getter と setter は、グループメンバーのクラスのメソッドです。

次の例は、上述の C のコード例と同様にスケールウィジェットのスケール値を取得および設定します。「scale1」はグループ mygroup のメンバーです。

mygroup_c * g = (mygroup_c *) getGroup();
int scaleValue = g->scale1->getValue();
g->scale1->setValue(1);

Java のコード例

Java では、グループはクラスです。グループメンバーは、このクラスの変数であり、クラスでもあります。gett er と setter は、グループメンバーのクラスのメソッドです。

次の例は、上述の C のコード例と同様にスケールウィジェットのスケール値を取得および設定します。「scale1」はグループ mygroup のメンバーです。

mygroup_c g = (mygroup_c ) getGroup();
int scaleValue = g.scale1.getValue();
g.scale1.setValue(1);

リストとスクロールリスト

表 C-5 リストに使用できる getter と setter

リソース名

 

Items

char **

 

Sensitive

int

 

SelectedItems

char **

デフォルト

C のコード例

C のコードでは、SC_GET と SC_SET のマクロを使用します。これらのマクロは、最初の引数としてリソース名 (つまり、取得/設定しているもの) を受け取り、2 番目の引数としてグループコンポーネントを受け取ります。SC_SET の場合には、3 番目の引数は新しく設定する値になります。詳細については、第 16 章「取得と設定用のスマートコード」を参照してください。

次の例では、リストウィジェットの選択した項目のリストを取得および設定します 。「list1」はグループ mygroup のメンバーです。選択した項目のリストは、ヌルで終わっている文字列配列です。

char ** my_stringlist = SC_GET(SelectedItems,mygroup->list1);
SC_SET(SelectedItems,mygroup->list1,a_new_stringlist);

C++ のコード例

C++ では、グループはクラスです。グループメンバーは、このクラスの変数であり、クラスでもあります。gett er と setter は、グループメンバーのクラスのメソッドです。

次の例は、上述の C のコード例と同様にリストウィジェットの選択項目を取得および設定します。「list1」はグループ mygroup のメンバーです。選択した項目のリストは、ヌルで終わっている文字列配列です。

mygroup_c * g = (mygroup_c *) getGroup();
char ** my_stringlist = g->list1->getSelectedItems();
g->list1->setSelectedItems(a_new_stringlist);

Java のコード例

Java では、グループはクラスです。グループメンバーは、このクラスの変数であり、クラスでもあります。gett er と setter は、グループメンバーのクラスのメソッドです。

次の例は、上述の C のコード例と同様にリストウィジェットの選択項目を取得および設定します。「list1」はグループ mygroup のメンバーです。配列内に存在する文字列の数を調べるには、Java に内蔵されている「<配列>.length」を使用してください。

mygroup_c g = (mygroup_c ) getGroup();
String [] my_stringlist = g.list1.getSelectedItems();
int how_many = my_stringlist.length;
g.list1.setSelectedItems(a_new_stringlist);

オプションメニュー

表 C-6 オプションメニューに使用できる getter と setter

リソース名

 

Label

char *

 

Sensitive

int

 

SelectionByName2

char *

 

SelectionByIndex

int

デフォルト

C のコード例

C のコードでは、SC_GET と SC_SET のマクロを使用します。これらのマクロは、最初の引数としてリソース名 (つまり、取得/設定しているもの) を受け取り、2 番目の引数としてグループコンポーネントを受け取ります。SC_SET の場合には、3 番目の引数は新しく設定する値になります。詳細については、第 16 章「取得と設定用のスマートコード」を参照してください。

次の例では、オプションメニューの選択項目を取得および設定します。「optionMen u1」はグループ mygroup のメンバーです。

char * val = SC_GET(SelectionByName, mygroup->optionMenu1);
SC_SET(SelectionByName,mygroup->optionMenu1, "Option 1");

C++ のコード例

C++ では、グループはクラスです。グループメンバーは、このクラスの変数であり、クラスでもあります。gett er と setter は、グループメンバーのクラスのメソッドです。

次の例は、上述の C のコード例と同様にオプションメニューの選択項目を取得および設定します。「optionMenu1」はグループ mygroup のメンバーです。

mygroup_c * g = (mygroup_c *) getGroup();
char * val = g->optionMenu1->getSelectionByName();
g->optionMenu1->setSelectionByName("Option 2");

Java のコード例

Java では、グループはクラスです。グループメンバーは、このクラスの変数であり、クラスでもあります。gett er と setter は、グループメンバーのクラスのメソッドです。

次の例は、上述の C のコード例と同様にオプションメニューの選択項目を取得および設定します。「optionMenu1」はグループ mygroup のメンバーです。

mygroup_c g = (mygroup_c ) getGroup();
String val = g.optionMenu1.getSelectionByName();
g.optionMenu1.setSelectionByName("Option 3");

ラジオボックス

表 C-7 ラジオボックスに使用できる getter と setter

リソース名

 

Label

char *

 

Sensitive

int

 

SelectionByName3

char *

 

SelectionByIndex

int

デフォルト

C のコード例

C のコードでは、SC_GET と SC_SET のマクロを使用します。これらのマクロは、最初の引数としてリソース名 (つまり、取得/設定しているもの) を受け取り、2 番目の引数としてグループコンポーネントを受け取ります。SC_SET の場合には、3 番目の引数は新しく設定する値になります。詳細については、第 16 章「取得と設定用のスマートコード」を参照してください。

次の例では、ラジオボックスウィジェットの選択項目のラベルを取得および設定し ます。「radiobox1」はグループ mygroup のメンバーです。

char * str = SC_GET(SelectionByName, mygroup->radiobox1);
SC_SET(SelectionByName,mygroup->radiobox1, "The text to show");

C++ のコード例

C++ では、グループはクラスです。グループメンバーは、このクラスの変数であり、クラスでもあります。gett er と setter は、グループメンバーのクラスのメソッドです。

次の例は、上述の C のコード例と同様にラジオボックスウィジェットの選択項目のラベルを取得および設定します。「radiobox 1」はグループ mygroup のメンバーです。

mygroup_c * g = (mygroup_c *) getGroup();
char * str = g->radiobox1->getSelectionByName();
g->radiobox1->setSelectionByName("The text to show");

Java のコード例

Java では、グループはクラスです。グループメンバーは、このクラスの変数であり、クラスでもあります。gett er と setter は、グループメンバーのクラスのメソッドです。

次の例は、上述の C のコード例と同様にラジオボックスウィジェットの選択項目のラベルを取得および設定します。「radiobox 1」はグループ mygroup のメンバーです。

mygroup_c g = (mygroup_c ) getGroup();
String str = g.radiobox1.getSelectionByName();
g.radiobox1.setSelectionByName("The text to show");

1. Java の場合、State はブール値です。

2. これは表示される文字列であり、ウィジェット名ではありません。

3. これは表示される文字列であり、ウィジェット名ではありません。


前へ 次へ 目次 文書セット ホーム

サン・マイクロシステムズ株式会社
Copyright information. All rights reserved.