ó «‡Uc@sÊdZddlZejdƒddlZddlZedƒ\ZZZdde gdde gdd e gd d e gd d e ggZ dej fd„ƒYZ d„Z edkrÆe ƒndS(s¿Tree View/Editable Cells This demo demonstrates the use of editable cells in a GtkTreeView. If you're new to the GtkTreeView widgets and associates, look into the GtkListStore example first.iÿÿÿÿNs2.0isbottles of cokeispackages of noodlesis"packages of chocolate chip cookiesiscan vanilla ice creamiteggstEditableCellsDemocBsAeZdd„Zd„Zd„Zd„Zd„Zd„ZRS(c Csùtjj|ƒy|j|jƒƒWn$tk rM|jdd„ƒnX|j|jj ƒ|j dƒ|j ddƒtj t dƒ}|j|ƒtjdƒ}|j|t t ƒtjƒ}|jtjƒ|jtjtjƒ|j|ƒ|jƒ}tj|ƒ}|jtƒ|jƒjtjƒ|j|ƒ|j|ƒtjtdƒ}|j|t t ƒtjdtj ƒ}|jd |j!|ƒ|j|ƒtjdtj"ƒ}|jd |j#|ƒ|j|ƒ|j$ƒdS( NtdestroycWs tjƒS(N(tgtkt main_quit(tw((s,/usr/lib/pygtk27/2.0/demos/editable_cells.pyt$sii@iÈs'Shopping list (you can edit the cells!)itstocktclicked(%RtWindowt__init__t set_screent get_screentAttributeErrortconnectt set_titlet __class__t__name__tset_border_widthtset_default_sizetVBoxtFalsetaddtLabelt pack_starttScrolledWindowtset_shadow_typetSHADOW_ETCHED_INt set_policytPOLICY_AUTOMATICt _EditableCellsDemo__create_modeltTreeViewtset_rules_hinttTruet get_selectiontset_modetSELECTION_SINGLEt_EditableCellsDemo__add_columnstHBoxtButtont STOCK_ADDton_add_item_clickedt STOCK_REMOVEton_remove_item_clickedtshow_all( tselftparenttvboxtlabeltswtmodelttreeviewthboxtbutton((s,/usr/lib/pygtk27/2.0/demos/editable_cells.pyR s>           c Csjtjtjtjtjƒ}xEtD]=}|jƒ}|j|t |t t |t t |t ƒq%W|S(N( Rt ListStoretgobjecttTYPE_INTt TYPE_STRINGt TYPE_BOOLEANtarticlestappendtsett COLUMN_NUMBERtCOLUMN_PRODUCTtCOLUMN_EDITABLE(R-R2titemtiter((s,/usr/lib/pygtk27/2.0/demos/editable_cells.pyt__create_modelNs      cCsÊ|jƒ}tjƒ}|jd|j|ƒ|jdtƒtjd|dtdtƒ}|j |ƒtjƒ}|jd|j|ƒ|jdt ƒtjd|dt dtƒ}|j |ƒdS(NteditedtcolumntNumberttextteditabletProduct( t get_modelRtCellRendererTextRton_cell_editedtset_dataR>tTreeViewColumnR@t append_columnR?(R-R3R2trendererRE((s,/usr/lib/pygtk27/2.0/demos/editable_cells.pyt __add_columnscs      c CsWddtg}tj|ƒ|jƒ}|j|t|tt|tt|tƒdS(NisDescription here(R!R;R<R=R>R?R@(R-R5R2tnew_itemRB((s,/usr/lib/pygtk27/2.0/demos/editable_cells.pyR)zs     cCsR|jƒ}|jƒ\}}|rN|j|ƒd}|j|ƒt|=ndS(Ni(R"t get_selectedtget_pathtremoveR;(R-R5R3t selectionR2RBtpath((s,/usr/lib/pygtk27/2.0/demos/editable_cells.pyR+†s   c Cs½|j|ƒ}|j|ƒd}|jdƒ}|tkrot|ƒt|t<|j||t|tƒnJ|tkr¹|j||ƒ}|t|t<|j||t|tƒndS(NiRE( tget_iter_from_stringRTtget_dataR>tintR;R=R?t get_value( R-tcellt path_stringtnew_textR2RBRWREtold_text((s,/usr/lib/pygtk27/2.0/demos/editable_cells.pyRL’s  N( Rt __module__tNoneR RR%R)R+RL(((s,/usr/lib/pygtk27/2.0/demos/editable_cells.pyRs  /   cCstƒtjƒdS(N(RRtmain(((s,/usr/lib/pygtk27/2.0/demos/editable_cells.pyRb£st__main__(t__doc__tpygtktrequireR7RtrangeR>R?R@R!R;R RRbR(((s,/usr/lib/pygtk27/2.0/demos/editable_cells.pyts        …