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
|