亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? cellwidget.c

?? 添加系統調用。。。在LINUX下添加一個新的系統調用。在文件中添加自己的系統調用的源代碼
?? C
?? 第 1 頁 / 共 5 頁
字號:
{        int width;        /* The key widget is slaved so we need to update all of the pointers           to the objects derived from our drawing area */        key_widget->pixmap = pixmap;        key_widget->cairo = cairo;        key_widget->pixmap_gc = pixmap_gc;        key_widget->pango = pango;        /* Right-to-left mode affects keyboard placement */        width = cell_width * KEY_WIDGET_COLS - KEY_WIDGET_BORDER;        if (!right_to_left)                key_widget_configure(key_widget, cell_cols * cell_width - width,                                     1, width, cell_height);        else                key_widget_configure(key_widget, 0, 1, width, cell_height);}static gboolean configure_event(void)/* Create a new backing pixmap of the appropriate size */{        int new_cols;        /* Do nothing if we are not visible */        if (!drawing_area || !drawing_area->window ||            !GTK_WIDGET_VISIBLE(drawing_area))                return TRUE;        /* Backing pixmap */        if (pixmap) {                int old_width, old_height;                /* Do not update if the size has not changed */                gdk_drawable_get_size(key_widget->pixmap,                                      &old_width, &old_height);                if (old_width == drawing_area->allocation.width &&                    old_height == drawing_area->allocation.height)                        return TRUE;                g_object_unref(pixmap);        }        pixmap = gdk_pixmap_new(drawing_area->window,                                drawing_area->allocation.width,                                drawing_area->allocation.height, -1);        trace("%dx%d", drawing_area->allocation.width,              drawing_area->allocation.height);        /* GDK graphics context */        if (pixmap_gc)                g_object_unref(pixmap_gc);        pixmap_gc = gdk_gc_new(GDK_DRAWABLE(pixmap));        /* Cairo context */        if (cairo)                cairo_destroy(cairo);        cairo = gdk_cairo_create(GDK_DRAWABLE(pixmap));        /* Set font size */        pango_font_description_set_absolute_size(pango_font_desc, PANGO_SCALE *                                                 (cell_height -                                                  CELL_BASELINE - 2));        /* Get the background color */        color_bg = window->style->bg[0];        color_bg_dark = window->style->bg[1];        /* Cursor */        cell_widget_set_cursor(TRUE);        /* If the cell dimensions changed, repack */        if (window_embedded) {                new_cols = (drawing_area->allocation.width -                            cell_widget_scrollbar_width() - 6) / cell_width;                if (new_cols != cell_cols)                        pack_cells(1, new_cols);        }        /* If we are embedded we won't be able to resize the window so we           can't honor the maximum rows preference */        if (window_embedded)                cell_rows_pref = drawing_area->allocation.height / cell_height;        /* Update the key widget with new values */        configure_keys();        /* Render the cells */        cell_widget_render();        return TRUE;}static gboolean expose_event(GtkWidget *widget, GdkEventExpose *event)/* Redraw the drawing area from the backing pixmap */{        if (!pixmap)                return FALSE;        gdk_draw_drawable(widget->window,                          widget->style->fg_gc[GTK_WIDGET_STATE(widget)],                          pixmap, event->area.x, event->area.y, event->area.x,                          event->area.y, event->area.width, event->area.height);        return FALSE;}static gboolean enter_notify_event(GtkWidget *widget, GdkEventCrossing *event){        check_cell(event->x, event->y, NULL);        return FALSE;}static gboolean leave_notify_event(GtkWidget *widget, GdkEventCrossing *event){        /* Tablet PC gets grab leave-notify event when starting to draw.           Ignore this if we are still drawing. */        if (event->mode == GDK_CROSSING_GRAB || drawing || cross_out)                return FALSE;        old_cc = current_cell;        current_cell = -1;        finish_cell(old_cc);        if (inserting) {                inserting = FALSE;                dirty_cell(old_cc);                dirty_cell(old_cc - 1);        }        invalid = TRUE;        cell_widget_set_cursor(FALSE);        render_dirty();        start_timeout();        return FALSE;}static void scrollbar_value_changed(void)/* The cell widget has been scrolled */{        double value;        value = gtk_range_get_value(GTK_RANGE(scrollbar));        if ((int)value == cell_row_view)                return;        cell_row_view = value;        cell_widget_render();}/*        Widget*/void cell_widget_enable_xinput(int on)/* Enable Xinput devices. We set everything to screen mode despite the fact   that we actually want window coordinates. Window mode just seems to break   everything and we get window coords with screen mode anyway! */{        GList *list;        GdkDevice *device;        int i, mode;        gtk_widget_set_extension_events(drawing_area,                                        on ? GDK_EXTENSION_EVENTS_ALL :                                             GDK_EXTENSION_EVENTS_NONE);        mode = on ? GDK_MODE_SCREEN : GDK_MODE_DISABLED;        list = gdk_devices_list();        for (i = 0; (device = (GdkDevice*)g_list_nth_data(list, i)); i++)                gdk_device_set_mode(device, mode);        xinput_enabled = on;        g_debug(on ? "Xinput events enabled" : "Xinput events disabled");}int cell_widget_update_colors(void){        GdkColor old_active, old_inactive, old_ink, old_select;        old_active = color_active;        old_inactive = color_inactive;        old_ink = color_ink;        old_select = color_select;        color_active = custom_active_color;        color_inactive = custom_inactive_color;        color_ink = custom_ink_color;        color_select = custom_select_color;        if (style_colors) {                color_active = window->style->base[0];                color_ink = window->style->text[0];                color_inactive = window->style->bg[1];        }        return !gdk_colors_equal(&old_active, &color_active) ||               !gdk_colors_equal(&old_inactive, &color_inactive) ||               !gdk_colors_equal(&old_ink, &color_ink) ||               !gdk_colors_equal(&old_select, &color_select);}const char *cell_widget_word(void)/* Return the current word and the current cell's position in that word   FIXME this function ignores wide chars */{        static char buf[64];        int i, min, max;        memset(buf, 0, sizeof (buf));        if (cell_offscreen(old_cc))                return buf;        /* Find the start of the word */        for (min = old_cc - 1; min >= 0 && cells[min].ch &&             g_ascii_isalnum(cells[min].ch) && cells[min].ch < 0x7f; min--);        /* Find the end of the word */        for (max = old_cc + 1; max < cell_rows * cell_cols && cells[max].ch &&             g_ascii_isalnum(cells[max].ch) && cells[max].ch < 0x7f; max++);        /* Copy the word to a buffer */        for (++min, i = 0; i < max - min && i < (int)sizeof (buf) - 1; i++)                buf[i] = cells[min + i].ch;        buf[old_cc - min] = 0;        buf[i] = 0;        return buf;}void cell_widget_clear(void){        int resized;        stop_timeout();        free_cells();        /* Restore cells if we just finished training */        if (training) {                cells = cells_saved;                cell_rows = cell_rows_saved;                cell_cols = cell_cols_saved;                cell_row_view = cell_row_view_saved;                training = FALSE;                resized = pack_cells(cell_rows, cell_cols);                /* Show the on-screen keyboard */                if (check_clear()) {                        show_keys = keyboard_enabled;                        is_clear = TRUE;                }        }        /* Clear cells otherwise */        else {                resized = pack_cells(1, cell_cols);                /* Show the on-screen keyboard */                show_keys = keyboard_enabled;                is_clear = TRUE;        }        /* Only re-render when we aren't going to get a configure event */        if (!resized)                cell_widget_render();}void cell_widget_train(void){        UnicodeBlock *block;        int i, pos, range;        stop_timeout();        /* Save cells */        if (!training) {                cells_saved = cells;                cell_rows_saved = cell_rows;                cell_cols_saved = cell_cols;                cell_row_view_saved = cell_row_view;                cells = NULL;                cell_row_view = 0;        }        /* Clear if not training any block */        if (training_block < 0) {                free_cells();                pack_cells(1, cell_cols);                cell_widget_render();                return;        }        /* Pack the Unicode block's characters into the cell grid */        block = unicode_blocks + training_block;        range = block->end - block->start + 1;        training = TRUE;        pack_cells((range + cell_cols - 1) / cell_cols, cell_cols);        /* Preset all of the characters for training */        for (i = 0, pos = 0; i < range; i++) {                short ch;                ch = block->start + i;                if (char_disabled(ch))                        continue;                cells[pos].ch = ch;                cells[pos].alts[0] = NULL;                cells[pos++].flags = 0;        }        range = pos;        for (; pos < cell_rows * cell_cols; pos++)                clear_cell(pos);        pack_cells(1, cell_cols);        unclear(FALSE);        cell_widget_render();}void cell_widget_pack(void){        int cols;        if (training) {                cell_widget_train();                return;        }        cols = cell_cols_pref;        if (window_docked) {                GdkScreen *screen;                screen = gtk_window_get_screen(GTK_WINDOW(window));                cols = (gdk_screen_get_width(screen) -                        cell_widget_scrollbar_width() - 6) / cell_width;        }        if (!pack_cells(0, cols))                set_size_request(TRUE);        if (is_clear)                show_keys = keyboard_enabled;        /* Right-to-left mode may have changed so we need to reconfigure the           on-screen keyboard */        configure_keys();        cell_widget_render();        trace("%dx%d, scrollbar %d",               cell_cols, cell_rows, cell_widget_scrollbar_width());}int cell_widget_insert(void){        gunichar2 *utf16;        int i, j, slot, chars;        if (training)                return FALSE;        chars = 0;        /* Prepare for sending key events */        key_event_update_mappings();        /* Need to send the keys out in reverse order for right_to_left mode           because the cells are displayed with columns reversed */        if (right_to_left)                for (i = cell_cols - 1; i < cell_rows * cell_cols; i--) {                        if (cells[i].ch) {                                chars++;                                send_cell_key(i);                        }                        if (i % cell_cols == 0)                                i += cell_cols * 2;                }        else                for (i = 0; i < cell_rows * cell_cols; i++) {                        if (!cells[i].ch)                                continue;                        chars++;                        send_cell_key(i);                }        /* If nothing was entered, send Enter key event */        if (!chars) {                key_event_send_enter();                return FALSE;        }        /* Create a UTF-16 string representation */        utf16 = g_malloc(sizeof (**history) * (chars + 1));        for (i = 0, j = 0; i < cell_rows * cell_cols; i++)                if (cells[i].ch)                  

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产亚洲欧美日韩俺去了| 国产精品护士白丝一区av| 久久久久久**毛片大全| 亚洲午夜三级在线| 国产成人精品三级| 69av一区二区三区| 亚洲精品网站在线观看| 国产一区三区三区| 91精品国产一区二区三区香蕉| 日本一区二区三区久久久久久久久不| 视频一区二区三区中文字幕| 成人aa视频在线观看| 精品国产免费视频| 日韩精品一区第一页| 色哟哟国产精品免费观看| 欧美国产一区二区在线观看| 六月丁香婷婷色狠狠久久| 欧美亚洲日本国产| 亚洲视频资源在线| 99久久国产综合精品女不卡| 国产欧美一区二区三区网站| 韩国毛片一区二区三区| 制服.丝袜.亚洲.另类.中文| 亚洲一区二区三区视频在线| 99re6这里只有精品视频在线观看| 久久女同互慰一区二区三区| 精品一区二区成人精品| 91精品国产综合久久香蕉的特点| 一区二区三区免费| 色婷婷久久99综合精品jk白丝| 欧美激情在线一区二区| 国产+成+人+亚洲欧洲自线| 2021国产精品久久精品| 国内久久婷婷综合| 久久毛片高清国产| 成人妖精视频yjsp地址| 国产精品午夜免费| www.亚洲色图.com| 中文字幕在线一区免费| 99riav久久精品riav| 中文字幕亚洲电影| 色婷婷综合久久久中文字幕| 亚洲日本va在线观看| 色琪琪一区二区三区亚洲区| 亚洲午夜在线电影| 欧美日本韩国一区二区三区视频 | 欧美精品tushy高清| 午夜精品免费在线| 欧美一级理论性理论a| 蜜桃av一区二区| 久久久久国色av免费看影院| 成人精品在线视频观看| 亚洲一区二区欧美| 制服.丝袜.亚洲.中文.综合| 国内外精品视频| 国产精品久久久久久久久免费桃花| 色呦呦网站一区| 日韩电影在线免费观看| 日韩精品中文字幕一区| 国产馆精品极品| 亚洲精品日韩综合观看成人91| 欧美久久一二三四区| 国产麻豆精品theporn| 中文字幕一区二区5566日韩| 欧美电影影音先锋| 国产成人三级在线观看| 一区二区三区欧美日| 精品国产一区二区国模嫣然| av福利精品导航| 视频一区在线播放| √…a在线天堂一区| 91精品国产麻豆国产自产在线| 岛国av在线一区| 日韩精品一二三四| 国产精品美女久久久久aⅴ| 欧美日韩综合在线免费观看| 国产成人免费在线| 亚洲成人手机在线| 国产亚洲女人久久久久毛片| 欧美精品丝袜中出| 99视频精品在线| 麻豆精品视频在线| 亚洲一本大道在线| 中文字幕 久热精品 视频在线| 51精品国自产在线| 波多野结衣在线一区| 蜜桃久久久久久| 亚洲成av人片观看| 亚洲天堂网中文字| 国产三级欧美三级日产三级99 | 成人污污视频在线观看| 亚洲电影一区二区| 中文字幕在线播放不卡一区| 日韩欧美国产一区在线观看| 日本久久一区二区| 成人永久免费视频| 精彩视频一区二区三区| 亚洲18色成人| 亚洲免费三区一区二区| 国产欧美一区二区三区在线看蜜臀 | 夜夜揉揉日日人人青青一国产精品 | 91精品国产综合久久久久| 91在线丨porny丨国产| 国产在线精品一区二区夜色| 婷婷综合在线观看| 亚洲精品免费在线观看| 国产精品不卡在线| 国产精品免费观看视频| 精品国产乱码久久久久久牛牛| 欧美视频在线观看一区二区| 91在线观看地址| 成人中文字幕电影| 成人av动漫在线| 国产69精品久久久久777| 国产麻豆日韩欧美久久| 国产在线精品免费| 韩国在线一区二区| 国模套图日韩精品一区二区| 国精产品一区一区三区mba桃花| 久久精品免费观看| 日本不卡一二三| 美女一区二区视频| 精品一区二区日韩| 国产成人欧美日韩在线电影| 国产a视频精品免费观看| 国产成人aaaa| 99久久久久久| 欧美视频精品在线| 欧美一区二区三区视频| 日韩欧美一级二级三级| 欧美电视剧免费观看| 国产清纯美女被跳蛋高潮一区二区久久w| 久久久99精品免费观看不卡| 中文字幕一区二区三区在线观看 | 成人久久视频在线观看| av日韩在线网站| 欧美性感一类影片在线播放| 91精品国产色综合久久久蜜香臀| 日韩欧美色综合网站| 国产视频一区二区在线| 亚洲精品高清在线| 日本在线观看不卡视频| 国产成人av影院| 91九色最新地址| 日韩三级免费观看| 欧美国产国产综合| 亚洲国产婷婷综合在线精品| 久久99精品久久久久| 91亚洲精品乱码久久久久久蜜桃| 欧美日韩国产在线观看| 久久综合色天天久久综合图片| 国产精品欧美一区二区三区| 一个色综合网站| 国产a级毛片一区| 欧美日韩黄色影视| 国产欧美日韩一区二区三区在线观看| 亚洲天堂精品在线观看| 美女视频一区二区三区| 色综合天天做天天爱| 日韩一区二区不卡| 一个色综合av| 国产精品一二一区| 在线播放欧美女士性生活| 久久久精品tv| 日韩精品电影在线观看| 成人18视频在线播放| 欧美电影免费观看高清完整版在线| 成人免费小视频| 久草中文综合在线| 欧美乱熟臀69xxxxxx| 国产精品国产三级国产aⅴ入口| 日本不卡在线视频| 91视频91自| 国产精品色在线观看| 国产综合久久久久久久久久久久| 欧美色国产精品| 亚洲美女视频一区| 处破女av一区二区| 日韩一区二区在线看片| 亚洲mv在线观看| 色网站国产精品| 欧美国产日本视频| 国产精品一区二区无线| 日韩欧美视频在线| 日韩高清不卡在线| 欧美调教femdomvk| 亚洲欧洲日产国产综合网| 国产一区二区三区国产| 精品理论电影在线| 蜜桃av一区二区| 欧美一级xxx| 亚洲成年人网站在线观看| 色欧美88888久久久久久影院| 中文成人综合网| 国产99久久久国产精品| 中日韩免费视频中文字幕| 久久精品国产精品亚洲红杏| 欧美一区二区三区爱爱| 天天亚洲美女在线视频| 337p亚洲精品色噜噜噜|