锘??xml version="1.0" encoding="utf-8" standalone="yes"?>久久青草国产精品一区,浪潮AV色综合久久天堂,久久美女网站免费http://www.shnenglu.com/dfghj44444/category/13470.html浠涔堥兘鎳備竴鐐癸紝鐢熸椿灝辨湁瓚d竴浜?/description>zh-cnThu, 16 Dec 2010 17:02:38 GMTThu, 16 Dec 2010 17:02:38 GMT60鐢℅tkTreeView瀹炵幇checkButton http://www.shnenglu.com/dfghj44444/archive/2010/10/18/130270.html鍙垜鑰佺帇鍚?/dc:creator>鍙垜鑰佺帇鍚?/author>Mon, 18 Oct 2010 07:20:00 GMThttp://www.shnenglu.com/dfghj44444/archive/2010/10/18/130270.htmlhttp://www.shnenglu.com/dfghj44444/comments/130270.htmlhttp://www.shnenglu.com/dfghj44444/archive/2010/10/18/130270.html#Feedback0http://www.shnenglu.com/dfghj44444/comments/commentRss/130270.htmlhttp://www.shnenglu.com/dfghj44444/services/trackbacks/130270.html浠婂ぉ姝eソ鏈夎繖涓渶姹傦紝欏烘墜鎼滀簡涓涓嬶紝鍙堜笉鏄偅涔堢鍚堟垜鐨勯渶瑕侊紝浜庢槸鑷繁闅忔墜鍐欎簡涓柊鐨勶紝鎶婁唬鐮佹渶灝忓寲浜?br>
 1
 2  GtkListStore *list_store = gtk_list_store_new (2, GTK_TYPE_POINTER,G_TYPE_STRING);//鏂板緩涓涓狶ISTSTORE
 3
 4  GtkWidget *tree_view = gtk_tree_view_new_with_model (GTK_TREE_MODEL (list_store));//鏂板緩涓涓猅REEVIEW
 5
 6  GtkCellRenderer *cell = gtk_cell_renderer_toggle_new ();//瀹氫箟CHECKBOX綾誨瀷
 7  g_signal_connect (cell, "toggled", G_CALLBACK (channel_toggled_cb),
 8            list_store);//緇戝畾鐐瑰嚮浜嬩歡錛堝惁鍒欑偣浜嗘病鏈夊嬀錛?/span>
 9  gtk_tree_view_insert_column(GTK_TREE_VIEW (tree_view),
10                          -1"record",
11                          cell);//鍦ㄦ渶宸﹁竟鎻掑叆涓鍒桟HECKBOX
鑷充簬鍏蜂綋鐨勭偣鍑諱簨浠訛紝鎴戝氨涓嶈創浜嗭紝姣旇緝綆鍗?br>


]]>
GTK瀛︿範絎旇100624---閬嶅巻GTK TreeViewhttp://www.shnenglu.com/dfghj44444/archive/2010/06/25/118699.html鍙垜鑰佺帇鍚?/dc:creator>鍙垜鑰佺帇鍚?/author>Fri, 25 Jun 2010 03:57:00 GMThttp://www.shnenglu.com/dfghj44444/archive/2010/06/25/118699.htmlhttp://www.shnenglu.com/dfghj44444/comments/118699.htmlhttp://www.shnenglu.com/dfghj44444/archive/2010/06/25/118699.html#Feedback0http://www.shnenglu.com/dfghj44444/comments/commentRss/118699.htmlhttp://www.shnenglu.com/dfghj44444/services/trackbacks/118699.html 1GtkTreeIter iter;//瀹氫箟涓涓凱浠e櫒
 2    GtkTreeModel *pmodel;
 3    char* pitem;
 4    pmodel=gtk_tree_view_get_model(GTK_TREE_VIEW1));//寰楀埌TREEVIEW鐨刴odel
 5    gtk_tree_model_get_iter_first(pmodel,&iter);//榪唬鍣ㄥ畾浣嶅埌絎竴琛?/span>
 6    int columns=gtk_tree_model_get_n_columns(pmodel);//鑾峰彇琛屾暟
 7    
 8    //鑾峰彇鍒楀悕
 9    for(int i=0;i<columns;i++)
10    {
11        GtkTreeViewColumn *column = gtk_tree_view_get_column(GTK_TREE_VIEW(control),i);//閬嶅巻header
12        string coltitle(__(gtk_tree_view_column_get_title(column),1));
13        cout<<coltitle;//杈撳嚭鍒楀悕
14    }
            
15        
16    do//寮濮嬮亶鍘嗗唴瀹?/span>
17    {
18        for(int i=0;i<columns;i++)
19            {
20                gtk_tree_model_get (GTK_TREE_MODEL(pmodel),&iter,
21                i,        &pitem,
22                -1);//灝嗘寚瀹氬崟鍏冩牸鐨勫間紶緇檖item
23                try
24                {
25                    cout<<pitem;//杈撳嚭鍗曞厓鏍肩殑鍊?/span>
26                }
catch{}
27            }

28    }
while(gtk_tree_model_iter_next(pmodel,&iter)); 鍞夛紝緗戜笂鎵句簡鍗婂ぉ錛屾病鎵懼埌鎬濊礬錛屽彧鏈夎嚜宸辨參鎱㈠晝浜嗭紝鍐欏畬鍙戜竴涓嬶紝緇欓渶瑕佺殑鏈嬪弸涓浜涘熼壌



]]>
Cairo 鍥懼艦鎸囧崡 (4) 鈥斺?鍩烘湰緇樺浘http://www.shnenglu.com/dfghj44444/archive/2010/04/08/111958.html鍙垜鑰佺帇鍚?/dc:creator>鍙垜鑰佺帇鍚?/author>Thu, 08 Apr 2010 06:15:00 GMThttp://www.shnenglu.com/dfghj44444/archive/2010/04/08/111958.htmlhttp://www.shnenglu.com/dfghj44444/comments/111958.htmlhttp://www.shnenglu.com/dfghj44444/archive/2010/04/08/111958.html#Feedback0http://www.shnenglu.com/dfghj44444/comments/commentRss/111958.htmlhttp://www.shnenglu.com/dfghj44444/services/trackbacks/111958.html  
榪欎竴閮ㄥ垎璁茶堪濡備綍緇樺埗涓浜涚畝鍗曠殑鍥懼厓錛屽寘鎷洿綰褲佸~鍏呬笌絎旂敾鎿嶄綔銆佽櫄綰褲佺嚎绔紙Cap錛変笌綰跨殑浜ゅ悎絳夊浘褰㈢殑緇樺埗鏂規硶銆?br>鐩寸嚎孌?br>鐩寸嚎孌墊槸闈炲父鍩虹鐨勭煝閲忓浘褰㈠璞°傜敾涓鏉$洿綰挎錛岄渶瑕佽皟鐢ㄤ袱涓嚱鏁幫細cairo_move_to() 鍑芥暟錛岀敤浜庤緗嚎孌佃搗鐐癸紱cairo_line_to() 鐢ㄤ簬璁懼畾綰挎緇堢偣銆?br>#include
#include
double coordx[100];
double coordy[100];
int count = 0;
static gboolean
on_expose_event(GtkWidget *widget,
                GdkEventExpose *event,
                gpointer data)
{
        cairo_t *cr;
        
        cr = gdk_cairo_create(widget->window);
        
        cairo_set_source_rgb(cr, 0, 0, 0);
        cairo_set_line_width (cr, 0.5);
        
        int i, j;
        for ( i = 0; i 1; i++ ) {
                for ( j  = 0; j -1; j++ ) {
                        cairo_move_to(cr, coordx, coordy);
                        cairo_line_to(cr, coordx[j], coordy[j]);
                }
        }
        
        count = 0;
        cairo_stroke(cr);
        cairo_destroy(cr);
        
        return FALSE;
}
gboolean clicked(GtkWidget *widget, GdkEventButton *event,
                 gpointer user_data)
{
        if (event->button == 1) {
                coordx[count] = event->x;
                coordy[count++] = event->y;
        }
        
        if (event->button == 3) {
                gtk_widget_queue_draw(widget);
        }
        
        return TRUE;
}
int
main (int argc, char *argv[])
{
        
        GtkWidget *window;
        
        gtk_init(&argc, &argv);
        
        window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
        
        gtk_widget_add_events (window, GDK_BUTTON_PRESS_MASK);
        
        g_signal_connect(window, "expose-event",
                         G_CALLBACK(on_expose_event), NULL);
        g_signal_connect(window, "destroy",
                         G_CALLBACK(gtk_main_quit), NULL);
        g_signal_connect(window, "button-press-event",
                         G_CALLBACK(clicked), NULL);
        
        gtk_window_set_position(GTK_WINDOW(window), GTK_WIN_POS_CENTER);
        gtk_window_set_title(GTK_WINDOW(window), "lines");
        gtk_window_set_default_size(GTK_WINDOW(window), 400, 300);
        gtk_widget_set_app_paintable(window, TRUE);
        
        gtk_widget_show_all(window);
        
        gtk_main();
        
        return 0;
}
璇ョず渚嬩細鍒涘緩涓涓敮鎸侀紶鏍囦氦浜掔粯鍒剁洿綰挎鐨?GTK+ 紿楀彛銆傚湪紿楀彛涓嬌鐢ㄩ紶鏍囧乏閿殢渚跨偣鍑犱笅錛屾瘡涓嬈$偣鍑繪椂錛屽厜鏍囦綅緗殑鍧愭爣閮戒細琚鍏ラ暱搴︿負 100 鐨勬暟緇勶紱鐒跺悗鐐瑰嚮榧犳爣鍙抽敭錛屾墍鏈夌敱榧犳爣宸﹂敭鐐瑰嚮鎵寰楀埌鐨勭偣浼氳褰兼榪炴帴褰㈡垚鐩寸嚎孌碉紱鍦ㄧ獥鍙d腑鍐嶆鐐瑰嚮榧犳爣鍙抽敭鏃訛紝浼氬紿楀彛緇樺浘鍖哄煙榪涜娓呴櫎銆?br>涓嬮潰瀵硅紺轟緥紼嬪簭浠g爜榪涜鍒嗘瀽錛?br>        cairo_set_source_rgb(cr, 0, 0, 0);
        cairo_set_line_width (cr, 0.5);
璁劇疆棰滆壊涓洪粦鑹詫紝綰垮涓?0.5pt 涓哄弬鏁幫紝緇樺埗鐩寸嚎孌點?br>        int i, j;
        for ( i = 0; i 1; i++ ) {
                for ( j  = 0; j -1; j++ ) {
                        cairo_move_to(cr, coordx, coordy);
                        cairo_line_to(cr, coordx[j], coordy[j]);
                }
        }
鐢?cairo_move_to() 鍜?cairo_line_to() 鍑芥暟鍦?cr 涓畾涔夌粯鍥捐礬寰?(path)錛岃繛鎺? coordx[] 鍜?coordy[] 鎵璁板綍鐨勬瘡涓偣銆?br>        cairo_stroke(cr);
cairo_stroke() 鍑芥暟浼氬皢 cr 涓殑璺緞緇樺埗鍑烘潵銆?br>        g_signal_connect(window, "button-press-event",
                         G_CALLBACK(clicked), NULL);
璁懼畾 button-press-event 浜嬩歡鐨勫洖璋冨嚱鏁頒負 clicked ()銆?br>        if (event->button == 1) {
                coordx[count] = event->x;
                coordy[count++] = event->y;
        }
鍦?clicked () 鍑芥暟涓紝褰撻紶鏍囧乏閿偣鍑諱簨浠跺彂鐢熸椂錛岃鍏夋爣鎵鍦ㄤ綅緗殑 x 鍜?y 鍧愭爣鍒嗗埆璁板叆鏁扮粍 coordx 鍜?coordy銆?br>        if (event->button == 3) {
                gtk_widget_queue_draw(widget);
        }
鍦?clicked () 鍑芥暟涓紝褰撻紶鏍囧彸閿崟鍑繪椂錛岃皟鐢?gtk_widget_queue_draw () 鍑芥暟閲嶇粯紿楀彛鍖哄煙銆?br>
鎻忕粯 (Stroke) 涓庡~鍏?(Fill)
鎻忕粯 (Stroke) 鍙互緇樺埗褰㈢姸鐨勮疆寤擄紝濉厖 (Fill) 鍒欑敤浜庡悜褰㈢姸鍐呴儴鐏屾敞棰滆壊銆?
#include
#include
#include
static gboolean
on_expose_event (GtkWidget * widget,
                 GdkEventExpose * event, gpointer data)
{
        cairo_t *cr;
        cr = gdk_cairo_create (widget->window);
        int width, height;
        gtk_window_get_size (GTK_WINDOW (widget), &width, &height);
        cairo_set_line_width (cr, 9);
        cairo_set_source_rgb (cr, 0.69, 0.19, 0);
        cairo_arc (cr, width / 2, height / 2,
                   (width ) / 2 - 10, 0,
                   2 * M_PI);
        cairo_stroke_preserve (cr);
        cairo_set_source_rgb (cr, 0.3, 0.4, 0.6);
        cairo_fill (cr);
        cairo_destroy (cr);
        return FALSE;
}
int
main (int argc, char *argv[])
{
        GtkWidget *window;
        gtk_init (&argc, &argv);
        window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
        g_signal_connect (G_OBJECT (window), "expose-event",
                          G_CALLBACK (on_expose_event), NULL);
        g_signal_connect (G_OBJECT (window), "destroy",
                          G_CALLBACK (gtk_main_quit), NULL);
        gtk_window_set_position (GTK_WINDOW (window),
                                 GTK_WIN_POS_CENTER);
        gtk_window_set_default_size (GTK_WINDOW (window), 200, 150);
        gtk_widget_set_app_paintable (window, TRUE);
        gtk_widget_show_all (window);
        gtk_main ();
        return 0;
}
榪欎釜紺轟緥緇樺埗涓涓唴閮ㄥ~鍏呯伆鑹茬殑鍦嗐?br>涓嬮潰瀵逛唬鐮佽繘琛岃В鏋愶細
#include
涔嬫墍浠ュ紩鍏ヨ繖涓ご鏂囦歡錛屾槸鍥犱負紼嬪簭涓嬌鐢ㄤ簡鍦嗗懆鐜囧父閲?M_PI銆?br>        int width, height;
        gtk_window_get_size (GTK_WINDOW (widget), &width, &height);
鑾峰彇紿楀彛鐨勫搴︿笌楂樺害灝哄銆傜▼搴忎腑灝嗕嬌鐢ㄨ繖浜涘間綔涓虹粯鍒跺渾褰㈢殑鍙傝冨昂瀵革紝浠ュ疄鐜扮獥鍙e昂瀵稿彉鍖栨椂錛屾墍緇樺埗鐨勫渾鐨勫昂瀵鎬篃浼氱浉搴斿彉鍖栥?br>        cairo_set_source_rgb (cr, 0.69, 0.19, 0);
        cairo_arc (cr, width / 2, height / 2,
                   (width ) / 2 - 10, 0,
                   2 * M_PI);
        cairo_stroke_preserve (cr);
鎻忕粯鍦嗙殑杞粨銆傝繖閲岃娉ㄦ剰涓涓? cairo_stroke_preserve () 鍑芥暟涓?cairo_stroke () 鍑芥暟鐨勫尯鍒紙鏈濂界殑鍔炴硶鏄敤鍚庤呮浛鎹竴涓嬪墠鑰咃紝鐪嬬湅紼嬪簭鎵ц鏁堟灉錛夈俢airo_stroke_preserve () 鍑芥暟浼氬皢瀹冪粯鍒剁殑璺緞渚濈劧淇濆瓨鍦?cairo 鐜涓紝鑰?cairo_stroke () 鎵緇樺埗鐨勮礬寰勶紝鍦ㄧ粯鍒跺畬鎴愬悗錛屽氨浠?cairo鐨勭幆澧冧腑娓呴櫎浜嗐?br>        cairo_set_source_rgb (cr, 0.3, 0.4, 0.6);
        cairo_fill (cr);
瀵逛嬌鐢? cairo_stroke_preserve () 鍑芥暟緇樺埗鐨勮礬寰勮繘琛岃摑鑹插~鍏呫?br>
铏氱嚎 (Dash)
姣忔潯綰塊兘鍙互鐢ㄤ笉鍚岀殑铏氱嚎絎?(dash pen) 鏉ョ敾銆傝櫄綰挎ā寮忔槸閫氳繃 cairo_set_dash () 鍑芥暟鏉ヨ瀹氥傛ā寮忕被鍨嬮氳繃涓涓暟緇勬潵瀹氫箟錛屾暟緇勪腑鐨勫煎潎涓烘鏁幫紝瀹冧滑鐢ㄤ簬璁劇疆铏氱嚎鐨勮櫄閮ㄥ垎涓庡疄閮ㄥ垎銆傛暟緇勭殑闀垮害涓庡亸縐婚噺鍙互鍦ㄧ▼搴忎腑璁懼畾銆傚鏋滄暟緇勭殑闀垮害 涓? 0錛岃櫄綰挎ā寮忓氨鏄紱佹浜嗭紝閭f墍緇樺埗鐨勭嚎鏄疄綰褲傚鏋滄暟緇勯暱搴︿負 1錛屽垯瀵瑰簲鐫铏氬疄鍧囧寑鍒嗗竷鐨勮櫄綰挎ā寮忋傚亸縐婚噺鏄敤鏉ヨ緗湪铏氱嚎鐨勫绔湪涓涓櫄綰垮懆鏈燂紙鍖呭惈涓涓疄閮ㄥ崟鍏冨拰涓涓櫄閮ㄥ崟鍏冿級鍐呯殑璧峰浣嶇疆銆?br>#include
#include
static gboolean
on_expose_event (GtkWidget * widget,
                 GdkEventExpose * event, gpointer data)
{
        cairo_t *cr;
        cr = gdk_cairo_create (widget->window);
        cairo_set_source_rgba (cr, 0, 0, 0, 1);
        static const double dashed1[] = { 4.0, 1.0 };
        static int len1 = sizeof (dashed1) / sizeof (dashed1[0]);
        static const double dashed2[] = { 4.0, 10.0, 4.0 };
        static int len2 = sizeof (dashed2) / sizeof (dashed2[0]);
        static const double dashed3[] = { 1.0 };
        cairo_set_line_width (cr, 1.5);
        cairo_set_dash (cr, dashed1, len1, 0);
        cairo_move_to (cr, 40, 60);
        cairo_line_to (cr, 360, 60);
        cairo_stroke (cr);
        cairo_set_dash (cr, dashed2, len2, 10);
        cairo_move_to (cr, 40, 120);
        cairo_line_to (cr, 360, 120);
        cairo_stroke (cr);
        cairo_set_dash (cr, dashed3, 1, 0);
        cairo_move_to (cr, 40, 180);
        cairo_line_to (cr, 360, 180);
        cairo_stroke (cr);
        cairo_destroy (cr);
        return FALSE;
}
int
main (int argc, char *argv[])
{
        GtkWidget *window;
        GtkWidget *darea;
        gtk_init (&argc, &argv);
        window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
        darea = gtk_drawing_area_new ();
        gtk_container_add (GTK_CONTAINER (window), darea);
        g_signal_connect (darea, "expose-event",
                          G_CALLBACK (on_expose_event), NULL);
        g_signal_connect (window, "destroy",
                          G_CALLBACK (gtk_main_quit), NULL);
        gtk_window_set_position (GTK_WINDOW (window),
                                 GTK_WIN_POS_CENTER);
        gtk_window_set_default_size (GTK_WINDOW (window), 400, 300);
        gtk_widget_show_all (window);
        gtk_main ();
        return 0;
}
璇ョず渚嬫紨紺轟簡涓夌铏氱嚎妯″紡鐨勮緗強緇樺埗銆?br>涓嬮潰鍒嗘瀽涓涓嬪叧閿唬鐮併?br>        static const double dashed1[] = { 4.0, 1.0 };
璁懼畾絎竴鏉¤櫄綰跨殑妯″紡錛屽畠鐨勫疄閮ㄦ槸 4 涓儚绱狅紝铏氶儴鏄?1 涓儚绱犮?br>        static int len1 = sizeof (dashed1) / sizeof (dashed1[0]);
璁$畻鏁扮粍 dashed1 鐨勯暱搴︺?br>        cairo_set_dash (cr, dashed1, len1, 0);
璁劇疆铏氱嚎妯″紡銆?br>        darea = gtk_drawing_area_new ();
        gtk_container_add (GTK_CONTAINER (window), darea);
榪欐錛屾垜浠槸鍦?drawing_area 閮ㄤ歡涓婄粯鍥撅紝涓嶅啀鏄獥鍙e尯鍩熶簡銆?br>
綰垮附 (Line caps)
綰垮附鏄拡瀵圭洿綰挎鐨勭鐐瑰艦鐘惰岃█鐨勶紝鍒嗕負涓夌錛?br>

  • CAIRO_LINE_CAP_SQUARE
  • CAIRO_LINE_CAP_ROUND
  • CAIRO_LINE_CAP_BUTT

瀵瑰簲褰㈢姸濡備笅鍥炬墍紺猴細

鍚屼竴鏉$洿綰挎錛孋AIRO_LINE_CAP_SQUARE 綰垮附涓?CAIRO_LINE_CAP_BUTT 綰垮附浼氬鑷寸洿綰挎闀垮害鏈夋墍宸埆錛屽墠鑰呬細姣斿悗鑰呴暱涓涓嚎瀹藉昂瀵搞?br>#include
#include
static gboolean
on_expose_event (GtkWidget * widget,
                 GdkEventExpose * event, gpointer data)
{
        cairo_t *cr;
        cr = gdk_cairo_create (widget->window);
        cairo_set_source_rgba (cr, 0, 0, 0, 1);
        cairo_set_line_width (cr, 10);
        cairo_set_line_cap (cr, CAIRO_LINE_CAP_BUTT);
        cairo_move_to (cr, 40, 60);
        cairo_line_to (cr, 360, 60);
        cairo_stroke (cr);
        cairo_set_line_cap (cr, CAIRO_LINE_CAP_ROUND);
        cairo_move_to (cr, 40, 150);
        cairo_line_to (cr, 360, 150);
        cairo_stroke (cr);
        cairo_set_line_cap (cr, CAIRO_LINE_CAP_SQUARE);
        cairo_move_to (cr, 40, 240);
        cairo_line_to (cr, 360, 240);
        cairo_stroke (cr);
        cairo_set_line_width (cr, 1.5);
        cairo_move_to (cr, 40, 40);
        cairo_line_to (cr, 40, 260);
        cairo_stroke (cr);
        cairo_move_to (cr, 360, 40);
        cairo_line_to (cr, 360, 260);
        cairo_stroke (cr);
        cairo_move_to (cr, 365, 40);
        cairo_line_to (cr, 365, 260);
        cairo_stroke (cr);
        cairo_destroy (cr);
        return FALSE;
}
璇ョず渚嬬粯鍒朵笁鏉″叿鏈変笉鍚岀嚎甯界殑鐩寸嚎孌碉紝鍚屾椂涔熷睍紺轟簡涓嶅悓綰垮附瀵圭嚎鐨勯暱搴︾殑褰卞搷銆?br>涓嬮潰瀵瑰叧閿唬鐮佽繘琛岀畝鍗曞垎鏋愶細
        cairo_set_line_width (cr, 10);
璁劇疆綰跨殑瀹藉害涓?10px銆?br>        cairo_set_line_cap (cr, CAIRO_LINE_CAP_ROUND);
        cairo_move_to (cr, 40, 150);
        cairo_line_to (cr, 360, 150);
        cairo_stroke (cr);
鐢諱簡涓鏉$嚎甯戒負 CAIRO_LINE_CAP_ROUND 鐨勭洿綰挎銆?br>        cairo_move_to (cr, 40, 40);
        cairo_line_to (cr, 40, 260);
        cairo_stroke (cr);
榪欐槸涓夋潯绔栫嚎涔嬩竴錛岀敤浜庤〃鐜扮嚎甯藉綰跨殑闀垮害鐨勫獎鍝嶃?br>
綰跨殑浜ゅ悎 (Line joins)
綰跨殑浜ゅ悎瀛樺湪浠ヤ笅涓夌椋庢牸錛?br>

  • CAIRO_LINE_JOIN_MITER
  • CAIRO_LINE_JOIN_BEVEL
  • CAIRO_LINE_JOIN_ROUND

瀵瑰簲褰㈢姸濡備笅鍥炬墍紺恒?br>
#include
#include
static gboolean
on_expose_event (GtkWidget * widget,
                 GdkEventExpose * event, gpointer data)
{
        cairo_t *cr;
        cr = gdk_cairo_create (widget->window);
        cairo_set_source_rgb (cr, 0.1, 0, 0);
        cairo_rectangle (cr, 30, 30, 100, 100);
        cairo_set_line_width (cr, 14);
        cairo_set_line_join (cr, CAIRO_LINE_JOIN_MITER);
        cairo_stroke (cr);
        cairo_rectangle (cr, 160, 30, 100, 100);
        cairo_set_line_width (cr, 14);
        cairo_set_line_join (cr, CAIRO_LINE_JOIN_BEVEL);
        cairo_stroke (cr);
        cairo_rectangle (cr, 100, 160, 100, 100);
        cairo_set_line_width (cr, 14);
        cairo_set_line_join (cr, CAIRO_LINE_JOIN_ROUND);
        cairo_stroke (cr);
        cairo_destroy (cr);
        return FALSE;
}
int
main (int argc, char *argv[])
{
        GtkWidget *window;
        GtkWidget *darea;
        gtk_init (&argc, &argv);
        window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
        darea = gtk_drawing_area_new ();
        gtk_container_add (GTK_CONTAINER (window), darea);
        g_signal_connect (darea, "expose-event",
                          G_CALLBACK (on_expose_event), NULL);
        g_signal_connect (window, "destroy",
                          G_CALLBACK (gtk_main_quit), NULL);
        gtk_window_set_position (GTK_WINDOW (window),
                                 GTK_WIN_POS_CENTER);
        gtk_window_set_default_size (GTK_WINDOW (window), 300, 280);
        gtk_widget_show_all (window);
        gtk_main ();
        return 0;
}

璇ョず渚嬮噰鐢ㄤ笉鍚岀殑浜ゅ悎綾誨瀷緇樺埗浜嗕笁涓煩褰€?br>涓嬮潰瀵瑰叧閿唬鐮佽繘琛岀畝鍗曞垎鏋愶細
        cairo_rectangle (cr, 30, 30, 100, 100);
        cairo_set_line_width (cr, 14);
        cairo_set_line_join (cr, CAIRO_LINE_JOIN_MITER);
        cairo_stroke (cr);
緇樺埗浜嗕竴涓嚎瀹戒負 14px錛屼氦鍚堢被鍨嬩負 CAIRO_LINE_JOIN_MITER 鐨勭煩褰€?br>


鏈枃鏉ヨ嚜ChinaUnix鍗氬錛屽鏋滄煡鐪嬪師鏂囪鐐癸細


]]>
久久91精品国产91| 中文成人久久久久影院免费观看| 伊人久久精品无码av一区| 久久久久高潮综合影院| 精品无码久久久久国产| 狠色狠色狠狠色综合久久 | 青青青国产成人久久111网站| 久久综合综合久久97色| 亚洲欧洲精品成人久久奇米网| 久久99国产综合精品免费| 精品国产综合区久久久久久| 2021国产精品久久精品| 99久久精品国产一区二区三区| 一本久道久久综合狠狠躁AV| 99精品国产在热久久无毒不卡| 久久亚洲精品国产亚洲老地址| 97精品久久天干天天天按摩| 一本色道久久88综合日韩精品| 97r久久精品国产99国产精| 开心久久婷婷综合中文字幕| 久久精品国产亚洲精品2020| 久久精品国产清自在天天线| 国产成人精品久久一区二区三区 | 伊人久久综合精品无码AV专区| 99久久精品九九亚洲精品| 色偷偷88888欧美精品久久久| 久久久久久久久久免免费精品| 精品久久久久中文字幕日本| 久久99精品国产麻豆宅宅| 久久久久久一区国产精品| 国产一区二区三精品久久久无广告| a高清免费毛片久久| 国产69精品久久久久777| 久久久久无码精品国产| 久久精品国产亚洲精品2020 | 久久精品国产黑森林| 91精品国产91久久| 国产成人久久精品二区三区| 久久精品这里热有精品| www亚洲欲色成人久久精品| 久久激情亚洲精品无码?V|