サイトトップへ
OSASK.NET
  サイトトップへ       新掲示板(閉鎖済)   Wiki(凍結済)   旧掲示板(廃止済)   ニュース(廃止済)  
4: 2004-09-20 (月) 01:42:30 ソース 現: 2024-01-08 (月) 12:58:56 ゲスト ソース
Line 7: Line 7:
         int x_size, int y_size, int x_pos, int y_pos,          int x_size, int y_size, int x_pos, int y_pos,
         LIB_WINDOW *window, int charset, int init_char) :          LIB_WINDOW *window, int charset, int init_char) :
 + 
 機能:ウィンドウにテキストボックスを貼る。  機能:ウィンドウにテキストボックスを貼る。
 + 
   textboxを0にすると、自動的にmalloc(64 + x_size * y_size * 8)をやって、    textboxを0にすると、自動的にmalloc(64 + x_size * y_size * 8)をやって、
 そのアドレスを返す。textboxが0でなければ、返値はtextboxがそのまま返る。  そのアドレスを返す。textboxが0でなければ、返値はtextboxがそのまま返る。
 + 
 ・opt == 0x1000 のとき  ・opt == 0x1000 のとき
 + 
   ウィンドウタイトル専用のテキストボックスを作ります(ウィンドウ一つに対して一    ウィンドウタイトル専用のテキストボックスを作ります(ウィンドウ一つに対して一
 つ必要です)。backcolorとx_posとy_posとinit_charは必ず0にしてください。windowは  つ必要です)。backcolorとx_posとy_posとinit_charは必ず0にしてください。windowは
Line 22: Line 22:
 以下の値にしなければいけません。長いウィンドウタイトルを付けたければ、この条件  以下の値にしなければいけません。長いウィンドウタイトルを付けたければ、この条件
 が満たされるようにウィンドウサイズを大きくしておく必要があります。  が満たされるようにウィンドウサイズを大きくしておく必要があります。
 + 
   この関係式はもっと分かりやすくかけます。以下の不等式が成立するようにサイズを    この関係式はもっと分かりやすくかけます。以下の不等式が成立するようにサイズを
 決定してください。  決定してください。
 + 
         タイトルのx_size * 8 + 80 <= ウィンドウのx_size          タイトルのx_size * 8 + 80 <= ウィンドウのx_size
 + 
 ・opt == 0 のとき  ・opt == 0 のとき
 + 
   一般のテキストボックスを作ります。backcolorとinit_charは必ず0で、charsetは必    一般のテキストボックスを作ります。backcolorとinit_charは必ず0で、charsetは必
 ず0xc0です。x_sizeとy_sizeはテキストボックスの大きさです。単位はキャラクター単  ず0xc0です。x_sizeとy_sizeはテキストボックスの大きさです。単位はキャラクター単
Line 41: Line 41:
 クスは1つのウィンドウにいくつでも付けられますが、テキストボックスが重なること  クスは1つのウィンドウにいくつでも付けられますが、テキストボックスが重なること
 は許されません。  は許されません。
 + 
   ウィンドウタイトル用のテキストボックスでなければ、charsetで自分で作ったキャ    ウィンドウタイトル用のテキストボックスでなければ、charsetで自分で作ったキャ
 ラクタセットを指定することも可能。この場合、空白に相当する文字コードをinit_char  ラクタセットを指定することも可能。この場合、空白に相当する文字コードをinit_char
 に指定すること。  に指定すること。
 + 
 参考になるサンプル:helloc4(introa)  参考になるサンプル:helloc4(introa)
Line 51: Line 51:
 void lib_putstring1(int opt, int x, int y, struct LIB_TEXTBOX *textbox,  void lib_putstring1(int opt, int x, int y, struct LIB_TEXTBOX *textbox,
     int color, int backcolor, int base, int length, unsigned char *str) :      int color, int backcolor, int base, int length, unsigned char *str) :
 + 
 機能: テキストボックスに文字列を書き込む。改行や折り返しはまったく無い。  機能: テキストボックスに文字列を書き込む。改行や折り返しはまったく無い。
 + 
     optはビットごとに意味がある。      optはビットごとに意味がある。
     bit0 (0x0001): 0だと文字の背景色はテキストボックスのデフォルトを使う。      bit0 (0x0001): 0だと文字の背景色はテキストボックスのデフォルトを使う。
Line 60: Line 60:
     bit1 (0x0002): 0だとフォントは二色。      bit1 (0x0002): 0だとフォントは二色。
                     1だとフォントはカラー。このときcolorもbackcolorも0を渡す。                      1だとフォントはカラー。このときcolorもbackcolorも0を渡す。
-     bit12-13      0x1000にすると、32bitベース+符号なし8ビットのストリングを+     bit12-13      0x1000にすると、32bitのbase値+符号なし8ビットのストリングを
                     使うという意味。ほかはCでは使いにくそうなので省略。                      使うという意味。ほかはCでは使いにくそうなので省略。
                     'むやみに0x0000にしないこと!'                      'むやみに0x0000にしないこと!'
     bit14(0x4000): guigui00.hでは1に固定されている (マクロに書いてある)。      bit14(0x4000): guigui00.hでは1に固定されている (マクロに書いてある)。
 + 
     x,yはテキストボックス中での座標。キャラクタ単位。      x,yはテキストボックス中での座標。キャラクタ単位。
     textboxはテキストボックスのポインタ。      textboxはテキストボックスのポインタ。
Line 71: Line 71:
     strは符号なし8ビット整数の配列へのポインタ。これにbaseを足したものが      strは符号なし8ビット整数の配列へのポインタ。これにbaseを足したものが
   テキストボックスにずらずらと書き込まれる。    テキストボックスにずらずらと書き込まれる。
 + 
 基本: base=0, strにASCII文字列。  基本: base=0, strにASCII文字列。
   例:lib_putstring1(0x1000, 0, 0, wtitle, 0, 0, 0, 8, "wintitle");    例:lib_putstring1(0x1000, 0, 0, wtitle, 0, 0, 0, 8, "wintitle");
Line 80: Line 80:
***lib_loadfontset ***lib_loadfontset
 void lib_loadfontset(int opt, int slot, int len, void *font) :  void lib_loadfontset(int opt, int slot, int len, void *font) :
 + 
 機能: ユーザ定義のフォント集合をスロットに割り当てる。  機能: ユーザ定義のフォント集合をスロットに割り当てる。
 + 
     フォントは8x16 (または8x8) のドットパターンであり、これを羅列したものを      フォントは8x16 (または8x8) のドットパターンであり、これを羅列したものを
   フォントセットと呼ぶ。    フォントセットと呼ぶ。
 + 
     slotはフォントセットを割り当てるスロット。一つ消費する。      slotはフォントセットを割り当てるスロット。一つ消費する。
     numはフォント数。      numはフォント数。
     fontはフォントセットのポインタ。      fontはフォントセットのポインタ。
 + 
   ・opt==1    ・opt==1
     フォントは8x16のモノクロパターンである。1のビットが文字色、0のビットが      フォントは8x16のモノクロパターンである。1のビットが文字色、0のビットが
   背景色となる。1バイト中では上位のビットが左。    背景色となる。1バイト中では上位のビットが左。
 + 
 (以下未完成)  (以下未完成)
 参考になるプログラム: introc/fnttstc0.c  参考になるプログラム: introc/fnttstc0.c
Line 99: Line 99:
***lib_loadfontset0 ***lib_loadfontset0
 void lib_loadfontset0(int opt, int slot) :  void lib_loadfontset0(int opt, int slot) :
 + 
 機能: システム内蔵フォントをスロットに割り当てる。  機能: システム内蔵フォントをスロットに割り当てる。
 + 
   ・opt=0x80000001    ・opt=0x80000001
     slotにANKフォントセットを割り当てる……というのが公式見解だが、その      slotにANKフォントセットを割り当てる……というのが公式見解だが、その
   フォントセットはどう見てもANKのK (Kana) が含まれていない。IBMのターミナル    フォントセットはどう見てもANKのK (Kana) が含まれていない。IBMのターミナル
   フォントが256個入ったフォントセットが割り当てられる。    フォントが256個入ったフォントセットが割り当てられる。
 + 
 (以下未完成)  (以下未完成)
 参考になるプログラム: introc/fnttstc0.c  参考になるプログラム: introc/fnttstc0.c
Line 112: Line 112:
***lib_makecharset ***lib_makecharset
 void lib_makecharset(int opt, int charset, int fontset, int len, int from, int base) :  void lib_makecharset(int opt, int charset, int fontset, int len, int from, int base) :
 + 
 機能: フォントセットに含まれるフォントを文字集合空間にマッピングする。  機能: フォントセットに含まれるフォントを文字集合空間にマッピングする。
 + 
     フォントセットに含まれるフォントの一部を文字集合空間にマッピングして、      フォントセットに含まれるフォントの一部を文字集合空間にマッピングして、
   実際にテキストボックスで使えるようにする。複数のフォントセットをあわせて    実際にテキストボックスで使えるようにする。複数のフォントセットをあわせて
   使う場合は、一連のスロットでマッピングして最後に終端を定義し、最初の    使う場合は、一連のスロットでマッピングして最後に終端を定義し、最初の
   スロットを文字集合のスロットとしてopentextboxに与える。    スロットを文字集合のスロットとしてopentextboxに与える。
 + 
     optは0。fontset, charsetはスロット。      optは0。fontset, charsetはスロット。
     fontsetのfrom番からlen個のフォントを、文字集合charsetのbase番から      fontsetのfrom番からlen個のフォントを、文字集合charsetのbase番から
   割り当てる。    割り当てる。
 + 
     fontset = len = from = base = 0 にすると終端の定義となる。      fontset = len = from = base = 0 にすると終端の定義となる。
Line 135: Line 135:
***lib_loadfontset1 ***lib_loadfontset1
 void lib_loadfontset1(0xc0ffffff, 0, int sig) :  void lib_loadfontset1(0xc0ffffff, 0, int sig) :
 + 
 機能:OSASKで拡張フォント(日本語全角とか、韓国語など)を使う準備を要請します。  機能:OSASKで拡張フォント(日本語全角とか、韓国語など)を使う準備を要請します。
 + 
   結局はフォントを読み込んでいるだけです。読み込みが完了するとsigを返しますので、    結局はフォントを読み込んでいるだけです。読み込みが完了するとsigを返しますので、
 フォントの利用はsigがくるまで待っていてください。成功するとsig、失敗するとsig+1~sig+15を返します。  フォントの利用はsigがくるまで待っていてください。成功するとsig、失敗するとsig+1~sig+15を返します。
 しかし失敗は原則としてないので気にすることはありません(OSがフォントを読めなくても失敗にはならない)。  しかし失敗は原則としてないので気にすることはありません(OSがフォントを読めなくても失敗にはならない)。
 + 
   sigが返ってきたら、    sigが返ってきたら、
     lib_makecharset(0, slot, 0x0021, 0x1000000, 0, 0);      lib_makecharset(0, slot, 0x0021, 0x1000000, 0, 0);
Line 149: Line 149:
 が必要です。文字コード(フォントコード)0~0xffffffは拡張フォントが使っていますが、  が必要です。文字コード(フォントコード)0~0xffffffは拡張フォントが使っていますが、
 それ以降は自由に使えます。使わない場合も上記のターミネータをお忘れなく。  それ以降は自由に使えます。使わない場合も上記のターミネータをお忘れなく。
 + 
 参考になるプログラム:tviewc5cとか  参考になるプログラム:tviewc5cとか
   (tviewc5cは http://koya.marokun.net/osask/download.html のtviewc/teditcパックから入手できます)    (tviewc5cは http://koya.marokun.net/osask/download.html のtviewc/teditcパックから入手できます)

トップ   差分 バックアップ 複製 名前変更 リロード印刷に適した表示   ページ新規作成 全ページ一覧 単語検索 最新ページの一覧   ヘルプ
新着

目次
メンバー一覧


最新の20件
2016-10-01 2016-09-08
  • @MenuBar.
2016-09-07 2016-09-04 2016-08-15 2015-09-23 2014-07-30 2014-07-04 2014-02-04 2013-10-26 2013-06-21 2013-06-17 2013-06-15 2013-04-02 2013-02-09 2013-02-04 2012-12-25 2012-12-01 2012-05-28 2012-03-31

トピック一覧
一般用コメント最新
新掲示板lina
2016/9/5 20:58
SandBoxゲスト
2016/9/4 12:01
RecentDeletedlina
2015/6/2 19:29
Old-OSASK-MLlina
2014/6/29 9:14
hideyosi/メールhideyosi
2014/1/6 20:17
hideyosi/募集中lina
2013/11/8 19:56

このサイトは川合秀実から委託を受けて、OSASKコミュニティによって管理・運営されています。