Logo Search packages:      
Sourcecode: skkinput version File versions  Download package

OverWinP.h

/* # skkinput (Simple Kana-Kanji Input)
 * OverWinP.h --- Over The Spot Window Style
 * This file is part of skkinput.
 * Copyright (C) 1997
 * Takashi SAKAMOTO (sakamoto@yajima.kuis.kyoto-u.ac.jp)
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2, or (at your option)
 * any later version.
 * 
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 * 
 * You should have received a copy of the GNU General Public License
 * along with skkinput; see the file COPYING.  If not, write to
 * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
 */
#ifndef OverWinP_h
#define OverWinP_h

#include "commondef.h"
#include "buffers.h"
#include "skkbuf.h"
#include "skkkey.h"
#include "OverWin.h"
#include "HistMgr.h"
#include "FontMgr.h"
#include "attrs.h"
#include <X11/CoreP.h>

typedef struct {
      Pixel       puppixel ;  /* foreground pixel */
      /* fontset の名前が入る文字列。こいつを convert して fontset に叩き
       * 込むことになる。 */
      String      fontset_string ;
      String      minibuf_fontset_string ;
      /* 利用しているフォント。補助漢字も入れるのかなあ? */
      struct skkinputManagedFont    *fontset[ NUMBER_OF_CHARSET ] ;
      struct skkinputManagedFont    *minibuf_fontset[ NUMBER_OF_CHARSET ] ;
      /* 画面を描画するのに用いる GC */
      GC          gc, rgc ;
      GC          minibuf_gc, minibuf_rgc ;
      /* フォントの情報…毎回抜き出しているのはしんどいので。*/
      int         font_height, font_ascent ;
      int         mfont_height, mfont_ascent ;
      /* カーソルの大きさ。下に文字があるときは、その文字の大きさにあわせ
       * るが、それが無かった場合にどの程度の幅にするのかを指定。 */
      int         cursor_width ;
      /* minibuffer の横幅。*/
      Dimension   minibuf_width ;
      /* 反転表示するか否か */
      Boolean     reverse_video ;
      /* kterm などのフォントのサイズ変更によりミニバッファのフォントサイ *
       * ズも修正するか否か。*/
      Boolean     change_minibuffer_font ;
      Boolean     overthespotLikeInput ;
      Colormap    colormap ;
      Pixel       foreground, background ;
      Pixel       oforeground, obackground ;
      Boolean     clearMinibuffer ;
      Boolean     south_cursor ;
      
      Window      client_window ;
      /* フォーカスの当たっているウィンドウ。*/
      Window      focus_window ;
      Window      input_focus_window ;
      Window      probe_window ;
      
      /* テキストを表示開始すべき位置(ただし、フォーカスウィンドウ内での *
       * 相対位置である。*/
      Position    spot_x, spot_y ;
      /* 変換クライアントの表示領域。*/
      XRectangle  client_area ;
      /* 変換クライアントのステータスエリアの領域。*/
      XRectangle  status_area ;
      /* 変換クライアントのルートウィンドウでの絶対位置…ということにし *
       * ておく。*/
      Position    focus_offset_x, focus_offset_y ;
      Position    client_x, client_y ;
      unsigned long attribute_mask ;
      int         conversion_set_focus, conversion_unset_focus ;

      /* 文字列(バッファの中身)を表示するのに使う Window。形は長方形を3つ *
       * 組み合わせた形になるので、上/真中/下の三種必要になる。*/
      Window      topline_win, midline_win, botline_win ;
      int         topline_probe, midline_probe, botline_probe ;
      int         topline_width, botline_width ;
      int         canvas_lines ;
      struct myChar *topline_text, *midline_text, *botline_text ;
      int         topline_pos, botline_pos, midline_pos ;
      int         topline_x ;
      
      /* modeshell 「かな--」 */
      Window      modeshell_win ;
      int         modeshell_probe ;
      int         modeshell_width, modeshell_height ;
      int         modeshell_border_width ;
      int         fixed_modeshell ;
      int         modeshell_x, modeshell_y;
      String      modeshell_geometry;     
      unsigned long     prevModeStatus ;
      
      /* 現在の漢字入力モードを表示するウィンドウ。*/
      Widget      minibuffer_popup, minibuffer_canvas ;
      int         minibuffer_probe ;
      
      Window      minibuffer_win ;
      int         minibuffer_ofstx ;

      Boolean           m_fInputFocus ;

      /* 表示位置、サイズの初期化が必要か否か。*/
      int         iposflag ;
      /* フォーカスが合っているかどうか。*/
      int         is_focus ;

      /* クライアントから送られてきた情報を受ける変数。*/
      struct ConvAttrsMesg *camsg ;

      /* Callback …こんなに一杯ある…。*/
      /* Widget を破壊する時に利用。*/
      XtCallbackList endcallback ;
      /* 変換後の文字列を送るのに利用。*/
      XtCallbackList fixcallback ;
      /* キーを押し戻すのに利用。*/
      XtCallbackList keybackcallback ;
      XtCallbackList    m_lstTextCallback ;

      /* 履歴情報の受渡しに使う変数(ポインタ)。*/
      HistoryListNode *historyAttribute ;

      /* skkinput の buffer */
      struct skkinputBuffer   buffer ;
} OverthespotWinPart ;

typedef struct _OverthespotWinRec {
  CorePart        core ;
  OverthespotWinPart    overthespotWin ;
} OverthespotWinRec ;

/* New fields for the My widget class record */
typedef struct {
  int dummy ;
} OverthespotWinClassPart ;

typedef struct _OverthespotWinClassRec {
  CoreClassPart               core_class ;
  OverthespotWinClassPart     overthespotWin_class ;
} OverthespotWinClassRec ;

extern OverthespotWinClassRec overthespotWinClassRec ;

#endif

Generated by  Doxygen 1.6.0   Back to index