/*
 * Copyright 2003 Sun Microsystems Inc.
 *
 * This is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public
 * License as published by the Free Software Foundation; either
 * version 2 of the License, or (at your option) any later version.
 *
 * This library 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
 * Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public
 * License along with this library; if not, write to the
 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
 * Boston, MA 02111-1307, USA.
 *
 * Authors: Karl Park <karl.park@sun.com>
 */


#ifndef _PALETTEAUX_H_
#define _PALETTEAUX_H_


#include "vkb_aux.h"

#if 0
typedef struct _PaletteAuxInfo {
  INPUT_MODE_T info_input_mode;
  KEYBOARD_T   keyboard_type;
} PaletteAuxInfo;
#endif

typedef struct {
  GdkDisplay *pdisplay;
  GdkScreen *pscreen;
  GtkWidget *ppalette;
  GtkWidget *pbutton_input_mode;
  GtkWidget *ppopup_input_mode;
  GtkWidget *pbutton_keyboard;
  GtkWidget *ppopup_keyboard;
  GtkWidget *pbutton_option;
  GtkWidget *ppopup_option;
  GtkTooltips *ptooltip;
  GtkWidget *about_dialog;

  int pos_x, pos_y;
  int i_width, i_height;

  vkb_layout_t **vkb_layout_list;
  vkb_layout_t *current_vkb_layout;
  vkb_window_t *vkb_window;
  gboolean     vkb_show_status;
}PaletteInfoRecord, *PaletteInfo;


enum button_type {
  FIXBTN_MOVEAREA = 0,		
  FIXBTN_IMENAME,
  FIXBTN_CHARTYPE,		
  FIXBTN_PUNCTTYPE,	
  FIXBTN_KEYBOARD,	
  FIXBTN_OPTIONS,	
  FIXBTN_NUM,
};

enum char_type {
  HALFWIDTH_CHAR = 0,
  FULLWIDTH_CHAR,
  CHAR_TYPE_NUM
};

enum punct_type {
  ENGLISH_PUNCT = 0,
  CHINESE_PUNCT,
  PUNCT_TYPE_NUM
};

enum keyboardbutton_type {
  KEYBOARD_PMP = 0,
  KEYBOARD_PMP_NUM
};

enum optionsbutton_type {
  OPTIONS_PMP = 0,
  OPTIONS_PMP_NUM
};

typedef struct _paletteauxdata PaletteAuxData;

struct tag_paletteauxdata {
  int 		bPixmapsInited;
  GdkPixmap	*arrCharTypePmp[CHAR_TYPE_NUM];    
  GdkPixmap	*arrPunctTypePmp[PUNCT_TYPE_NUM];    
  GdkPixmap	*arrKeyboardPmp[KEYBOARD_PMP_NUM];    
  GdkPixmap	*arrOptionsPmp[OPTIONS_PMP_NUM];    

  int 		nHeight;
  char 		*pIME_Name;

  int 		x;
  int		y;
  int		on;
  int		qjbj;
  int		punct;
  int 		engine_id;
};

/* public methods */
void aux_palette_redrdaw_self (gboolean isibility);
#endif // _PALETTEAUX_H_
