File: gcin-common.c

package info (click to toggle)
gcin 1.4.0-1
  • links: PTS
  • area: main
  • in suites: lenny
  • size: 7,488 kB
  • ctags: 3,272
  • sloc: ansic: 25,634; makefile: 524; sh: 411; cpp: 231
file content (142 lines) | stat: -rw-r--r-- 2,706 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
#include "gcin.h"
#include "pho.h"

#if USE_TSIN
int find_match();
extern gboolean flush_tsin_buffer();
#endif

PIN_JUYIN *pin_juyin;

char file_pin_float[] = GCIN_ICON_DIR"/pin-float16.png";

int c_len;
int text_pho_N=3;
int ts_gtabN;

gboolean b_use_full_space = TRUE;

static char text_pho[6][CH_SZ];

void bell()
{
#if 1
  XBell(dpy, -97);
#else
  gdk_beep();
#endif
//  abort();
}

void case_inverse(int *xkey, int shift_m)
{
  if (shift_m) {
    if (islower(*xkey))
      *xkey-=0x20;
  } else
  if (isupper(*xkey))
    *xkey+=0x20;
}

gint64 current_time()
{
  struct timeval tval;

  gettimeofday(&tval, NULL);
  return (gint64)tval.tv_sec * 1000000 + tval.tv_usec;
}

void disp_pho_sub(GtkWidget *label, int index, char *pho)
{
  if (index>=text_pho_N)
    return;


  if (pho[0]==' ' && !pin_juyin) {
    u8cpy(text_pho[index], "\xe3\x80\x80");
  }
  else {
    u8cpy(text_pho[index], pho);
  }

  char s[text_pho_N * CH_SZ+1];


  int tn = 0;
  int i;
  for(i=0; i < text_pho_N; i++) {
    int n = utf8cpy(s + tn, text_pho[i]);
    tn += n;
  }

  gtk_label_set_text(label, s);
}

void exec_gcin_setup()
{
#if DEBUG
  dbg("exec gcin\n");
#endif

  char pidstr[32];
  sprintf(pidstr, "GCIN_PID=%d",getpid());
  putenv(pidstr);
  system(GCIN_BIN_DIR"/gcin-setup &");
}

void set_label_font_size(GtkWidget *label, int size)
{
  if (!label)
    return;

  PangoContext *pango_context = gtk_widget_get_pango_context (label);
  PangoFontDescription* font=pango_context_get_font_description
       (pango_context);
  pango_font_description_set_family(font, gcin_font_name);
  pango_font_description_set_size(font, PANGO_SCALE * size);
  gtk_widget_modify_font(label, font);
}

// the width of ascii space in firefly song
void set_label_space(GtkWidget *label)
{
  gtk_label_set_text(GTK_LABEL(label), "\xe3\x80\x80");
  return;
}

void set_no_focus(GtkWidget *win)
{
  gdk_window_set_override_redirect(win->window, TRUE);
#if GTK_MAJOR_VERSION >=2 && GTK_MINOR_VERSION >= 6
  gtk_window_set_accept_focus(win, FALSE);
#endif
#if GTK_MAJOR_VERSION >=2 && GTK_MINOR_VERSION >= 6
  gtk_window_set_focus_on_map (win, FALSE);
#endif
}

#if !USE_TSIN
// len is in CH_SZ
int find_match(char *str, int len, char *match_chars, int match_chars_max)
{
}

void add_to_tsin_buf(){}
void add_to_tsin_buf_str(){}
void build_ts_gtab(){}
void change_tsin_color(){}
void change_tsin_font_size(){}
void change_win0_style(){}
void clear_ch_buf_sel_area(){}
void clear_tsin_buffer(){}
void destroy_win0(){}
void destroy_win1(){}
void free_tsin(){}
void load_ts_gtab(){}
void load_tsin_db(){}
void putbuf(){}
void tsin_remove_last(){}
void tsin_reset_in_pho(){}
void tsin_set_eng_ch(){}
void tsin_toggle_half_full(){}
#endif