ó «‡Uc@sádZddlZejdƒddlZddlZddlZd„Zdefd„ƒYZdefd„ƒYZ d „Z d „Z d „Z d „Z d „Zdejfd„ƒYZd„ZedkrÝeƒndS(sîStock Item and Icon Browser This source code for this demo doesn't demonstrate anything particularly useful in applications. The purpose of the "demo" is just to provide a handy place to browse the available stock icons and stock items. iÿÿÿÿNs2.0cCsh|dkrdS|jdƒrBdtjdd„|dƒ}n"tjdd„|ƒ}|d }|S( Nttgtks gtk.STOCKs-([^-]+)cSsd|jdƒjƒS(Nt_i(tgrouptupper(tm((s+/usr/lib/pygtk27/2.0/demos/stock_browser.pytsis ([^-]+)-?cSsd|jdƒjƒS(NRi(RR(R((s+/usr/lib/pygtk27/2.0/demos/stock_browser.pyRsi(t startswithtretsub(tstock_idtmacro((s+/usr/lib/pygtk27/2.0/demos/stock_browser.pyt id_to_macros   t StockItemInfocBseZdd„ZRS(RcCs7||_d|_d|_t|ƒ|_d|_dS(NR(R tNonet stock_itemt small_iconR R t accel_str(tselfR ((s+/usr/lib/pygtk27/2.0/demos/stock_browser.pyt__init__!s    (t__name__t __module__R(((s+/usr/lib/pygtk27/2.0/demos/stock_browser.pyR stStockItemDisplaycBseZd„ZRS(cCs1d|_d|_d|_d|_d|_dS(N(Rt type_labelt macro_labeltid_labeltlabel_accel_labelt icon_image(R((s+/usr/lib/pygtk27/2.0/demos/stock_browser.pyR)s     (RRR(((s+/usr/lib/pygtk27/2.0/demos/stock_browser.pyR(sc Cstj|ƒ}tj}d}|jƒ}t|ƒ}d}xZ||kr˜tj||ƒ\}}|||kr‹||}||}n|d7}q?W|S(s‡ Finds the largest size at which the given image stock id is available. This would not be useful for a normal application. ii(Rticon_factory_lookup_defaulttICON_SIZE_INVALIDt get_sizestlenticon_size_lookup( tstockidtsett best_sizet best_pixelstsizestn_sizestitwidththeight((s+/usr/lib/pygtk27/2.0/demos/stock_browser.pytget_largest_size1s     cCs)|j|dƒ}|jd|jƒdS(Nittext(t get_valuet set_propertyR (t tree_columntcelltmodeltitertinfo((s+/usr/lib/pygtk27/2.0/demos/stock_browser.pytmacro_set_func_textIscCs)|j|dƒ}|jd|jƒdS(NiR+(R,R-R (R.R/R0R1R2((s+/usr/lib/pygtk27/2.0/demos/stock_browser.pyt id_set_funcMscCs)|j|dƒ}|jd|jƒdS(NiR+(R,R-R(R.R/R0R1R2((s+/usr/lib/pygtk27/2.0/demos/stock_browser.pytaccel_set_funcQscCs-|j|dƒ}|jd|jdƒdS(NiR+i(R,R-R(R.R/R0R1R2((s+/usr/lib/pygtk27/2.0/demos/stock_browser.pytlabel_set_funcUstStockItemAndIconBrowserDemocBs&eZdd„Zd„Zd„ZRS(c Csˆtjj|ƒy|j|jƒƒWn$tk rM|jdd„ƒnX|j|jj ƒ|j ddƒ|j dƒtj t dƒ}|j|ƒtjƒ}|jtjƒ|jtjtjƒ|j|t t dƒ|jƒ}tj|ƒ}|j|ƒtjƒ}|jdƒtjƒ}|j|t ƒ|j|dd ƒtjƒ}|j|tƒ|j|tƒ|j|ƒtjƒ}|j dd |t!ƒtjƒ}|j dd |t"ƒtjƒ}|j dd |t#ƒtj$d dddƒ}|j%|t t dƒtj&dƒ} |j| ƒtj't dƒ} | j dƒ| j| ƒt(ƒ} |j)d| ƒtj*ƒ| _+tj*ƒ| _,tj*ƒ| _-tj*ƒ| _.tj/ƒ| _0| j| j+t t dƒ| j| j0t t dƒ| j| j.t t dƒ| j| j,t t dƒ| j| j-t t dƒ|j1ƒ} | j2tj3ƒ| jd|j4ƒ|j5ƒdS(NtdestroycWs tjƒS(N(Rt main_quit(tw((s+/usr/lib/pygtk27/2.0/demos/stock_browser.pyR`siÿÿÿÿiôiitMacroR itLabeltAcceltIDgà?gs Selected Itemis stock-displaytchanged(6RtWindowRt set_screent get_screentAttributeErrortconnectt set_titlet __class__Rtset_default_sizetset_border_widthtHBoxtFalsetaddtScrolledWindowtset_shadow_typetSHADOW_ETCHED_INt set_policyt POLICY_NEVERtPOLICY_AUTOMATICt pack_startt*_StockItemAndIconBrowserDemo__create_modeltTreeViewtTreeViewColumntCellRendererPixbuftset_attributestCellRendererTexttTruetset_cell_data_funcR3t append_columntinsert_column_with_data_funcR6R5R4t Alignmenttpack_endtFrametVBoxRtset_dataR<RRRRtImageRt get_selectiontset_modetSELECTION_SINGLEton_selection_changedtshow_all( RtparentthboxtswR0ttreeviewtcolumnt cell_renderertaligntframetvboxtdisplayt selection((s+/usr/lib/pygtk27/2.0/demos/stock_browser.pyR[sn                   cCsØtjtjtjƒ}tjƒ}|jƒx£|D]›}td|ƒ}tj|ƒ}|rk||_ n d|_ tj |j ƒ}|dkržd|_ nÈ|jƒ}t|ƒ}|d} d} x:| |kr|| tjkrõtj} Pn| d7} qÉW|j|j | ƒ|_ | tjkrftjtjƒ\} } |j j| | dƒ} | |_ n|j ddkr…d|_n#tj|j d|j dƒ|_|jƒ}|j|d|d|j ƒq5W|S( NR Riitbilinearii(RRiiR(Rt ListStoretgobjectt TYPE_PYOBJECTt TYPE_STRINGtstock_list_idstsortR t stock_lookupRRR RRRRtICON_SIZE_MENUt render_iconR t scale_simpleRtaccelerator_nametappendR"(RtstoretidstdataR2Rticon_setR%R&tsizeR'R:thtscaledR1((s+/usr/lib/pygtk27/2.0/demos/stock_browser.pyt__create_model¨sD              #  cCs¼|jƒ}|jdƒ}|jƒ\}}|rh|j|dƒ}|jrn|jdrn|jjdƒnL|jrŠ|jjdƒn0|jdrª|jjdƒn|jjdƒ|jj|j ƒ|j j|j ƒ|jdrd|jd|j f}|j j|ƒn|j jd ƒ|jrU|jj|j t|j ƒƒq¸|jjdƒnP|jjd ƒ|jjd ƒ|j jd ƒ|j jd ƒ|jjdƒdS( Ns stock-displayiis Icon and Items Icon Onlys Item Onlys???????s%s %sRsNo selected item(t get_tree_viewtget_datat get_selectedR,RRRtset_textRR RR RRtset_text_with_mnemonicRtset_from_stockR*tset_from_pixbufR(RRrRkRqR0R1R2ts((s+/usr/lib/pygtk27/2.0/demos/stock_browser.pyRfàs6     N(RRRRRSRf(((s+/usr/lib/pygtk27/2.0/demos/stock_browser.pyR7Zs M 8cCstƒtjƒdS(N(R7Rtmain(((s+/usr/lib/pygtk27/2.0/demos/stock_browser.pyR st__main__(t__doc__tpygtktrequireRuRRR tobjectR RR*R3R4R5R6R@R7RR(((s+/usr/lib/pygtk27/2.0/demos/stock_browser.pyts"           ±