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

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

?? maingenericbrowser.hs

?? HTK系列的
?? HS
字號:
-- --------------------------------------------------------------------------- $Source: /repository/uni/htk/examples/gengui/MaingenericBrowser.hs,v $---- HTk - a GUI toolkit for Haskell  -  (c) Universitaet Bremen---- $Revision: 1.3 $ from $Date: 2002/05/30 15:00:17 $  -- Last modification by $Author: ger $---- -----------------------------------------------------------------------module Main(main) whereimport HTkimport Nameimport CItemimport ReferenceVariablesimport GenericBrowserimport Directoryimport IOExts(unsafePerformIO)import Posiximport Char(toLower)-- ------------------------------------------------------------------------- file types-- -----------------------------------------------------------------------type FileType = (String,          -- comment                 String)          -- image filenamefileTypes :: [([String], FileType)]fileTypes = [(["hs", "lhs"], ("Haskell source file", "haskell.gif")),             (["hi"], ("Haskell Interface File", "haskelli.gif")),             (["gif"], ("GIF image", "image.gif")),             (["jpg"], ("JPG image", "image.gif")),             (["png"], ("PNG image", "image.gif")),             (["tif", "tiff"], ("TIFF image", "image.gif")),             (["bmp"], ("BMP image", "image.gif")),             (["tex"], ("TeX file", "tex.gif")),             (["bib"], ("BibTeX file", "bib.gif")),             (["ps"], ("PostScript", "postscript.gif")),             (["tar"], ("TAR archive", "archive.gif")),             (["gz"], ("GZ archive", "archive.gif")),             (["zip"], ("ZIP archive", "archive.gif")),             (["rar"], ("RAR archive", "archive.gif")),             (["html", "htm"], ("Hypertext document", "html.gif"))]unknown :: FileTypeunknown = ("Unknown", "unknown.gif")folder :: FileTypefolder = ("Folder", "folder.gif")getFileTypeByExtension :: String -> FileTypegetFileTypeByExtension ext =  let getFileTypeByExtension' ((exts, ft) : tps) =        if any ((==) ext) exts then ft else getFileTypeByExtension' tps      getFileTypeByExtension' _ = unknown  in getFileTypeByExtension' fileTypes-- ------------------------------------------------------------------------- util-- -----------------------------------------------------------------------type Id = Intidref = unsafePerformIO (newRef 0){-# NOINLINE idref #-} newID :: IO IdnewID = do id <- getRef idref           setRef idref (id + 1)           return id-- ------------------------------------------------------------------------- filesystem functionality-- -----------------------------------------------------------------------readDir :: FilePath -> IO [FileObject]readDir dir =  do     ret <- try (do dc <- getDirectoryContents dir                    let dc' = filter (\f -> f /= "." && f /= ".." &&                                      not (hidden f)) dc                    mapM (toFileObject dir) dc')     case ret of Right objs -> return objs                 Left _ -> return []hidden :: FilePath -> Boolhidden ('.':_) = Truehidden _ = FalseisFolder :: FilePath -> FilePath -> IO BoolisFolder dir nm = doesDirectoryExist (dir ++ "/" ++ nm)getFileType :: FilePath -> FileTypegetFileType nm =  let extension nm = if any ((==) '.') nm then                       reverse (extension' (reverse nm))                     else ""      extension' (c : cs) = if c == '.' then [] else c : extension' cs      extension' _ = ""      ext = map toLower (extension nm)  in getFileTypeByExtension exttoFileObject :: FilePath -> FilePath -> IO FileObjecttoFileObject dir nm =  do obj_fid <- newID     obj_fname <- newRef nm     obj_fdir <- newRef dir     obj_is_folder <- isFolder dir nm     let ft@(_, img_path) = if obj_is_folder then folder                            else getFileType nm     obj_filetype <- newRef ft     icon <- newImage [filename ("images/" ++ img_path)]     obj_icon <- newRef icon     return (FileObject { fid       = obj_fid,                          fname     = obj_fname,                          fdir      = obj_fdir,                          filetype  = obj_filetype,                          icon      = obj_icon,                          is_folder = obj_is_folder })-- ------------------------------------------------------------------------- file objects-- -----------------------------------------------------------------------data FileObject = FileObject { fid       :: Id,                               fname     :: Ref FilePath,                               fdir      :: Ref FilePath,                               filetype  :: Ref FileType,                               icon      :: Ref Image,                               is_folder :: Bool }instance Eq FileObject where  obj1 == obj2 = fid obj1 == fid obj2instance CItem FileObject where  getName obj = getFileObjectName obj  getIcon obj = getFileObjectIcon objinstance GBObject FileObject where  isObjectNode = return . is_folder  getChildren obj = do                       path <- getFileObjectFullPath obj                       readDir path-- ------------------------------------------------------------------------- selectors-- -----------------------------------------------------------------------getFileObjectId :: FileObject -> IdgetFileObjectId obj = fid objgetFileObjectFileName :: FileObject -> IO FilePathgetFileObjectFileName obj = getRef (fname obj)getFileObjectDirectory :: FileObject -> IO FilePathgetFileObjectDirectory obj = getRef (fdir obj)getFileObjectFullPath :: FileObject -> IO FilePathgetFileObjectFullPath obj =  do dir <- getFileObjectDirectory obj     nm <- getFileObjectFileName obj     return (dir ++ "/" ++ nm)getFileObjectName :: FileObject -> IO NamegetFileObjectName obj =  do nm <- getFileObjectFileName obj     return (createName nm)getFileObjectIcon :: FileObject -> IO ImagegetFileObjectIcon obj = getRef (icon obj)getFileObjectFileType :: FileObject -> IO FileTypegetFileObjectFileType obj = getRef (filetype obj)isFileObjectFolder :: FileObject -> BoolisFileObjectFolder obj = is_folder obj-- ------------------------------------------------------------------------- main-- -----------------------------------------------------------------------getRootObjects :: IO [FileObject]getRootObjects = readDir "/"main :: IO ()main = do htk <- initHTk [size(800, 500), text "GenericBrowser example"]          root_objs <- getRootObjects          (gb :: GenericBrowser FileObject) <-            newGenericBrowser htk root_objs []          (action, _) <- bindGenericBrowserEv gb          spawnEvent (forever (do ev <- action                                  always (printEv ev)))          pack gb [Fill Both, Expand On]          bottom <- newFrame htk []          quit <- newButton bottom [text "Quit"]          clicked_quit <- clicked quit          spawnEvent (clicked_quit >>> destroy htk)          pack quit [Side AtBottom, Fill X, PadY 5, PadX 50]          pack bottom [Side AtBottom, Fill X]          finishHTkprintEv :: GenericBrowserEvent FileObject -> IO ()printEv ev = case ev of               SelectedInTreeList Nothing -> putStrLn "no selection (treelist)"               SelectedInTreeList _ -> putStrLn "selection (treelist)"               FocusedInTreeList _ -> putStrLn "focus (treelist)"               Dropped _ -> putStrLn "drop (notepad)"               SelectedInNotepad _ -> putStrLn "selection (notepad)"               DeselectedInNotepad _ -> putStrLn "deselection (notepad)"               Doubleclick _ -> putStrLn "doubleclick (notepad)"               Rightclick _ -> putStrLn "rightclick (notepad)"               _ -> done

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
一二三四社区欧美黄| 久久久不卡网国产精品一区| 国产精品天天看| 五月天国产精品| 欧美日韩一卡二卡| 亚洲小说春色综合另类电影| 91蜜桃网址入口| 亚洲女爱视频在线| 91国产免费观看| 亚洲小说春色综合另类电影| 欧美视频一二三区| 日本午夜精品一区二区三区电影| 欧美日韩国产影片| 蜜臀av性久久久久蜜臀aⅴ四虎| 欧美二区在线观看| 蜜芽一区二区三区| 精品国内二区三区| 国产成人午夜视频| 中文字幕一区二区三区不卡在线| aaa亚洲精品| 亚洲成人动漫在线免费观看| 欧美二区三区的天堂| 精品在线观看视频| 国产精品美女久久久久高潮| 9人人澡人人爽人人精品| 亚洲一区二区三区免费视频| 欧美一区二区三区影视| 国产精品伊人色| 中文字幕一区二区5566日韩| 欧美亚洲丝袜传媒另类| 久久99精品国产麻豆婷婷洗澡| 国产日韩综合av| 一本到三区不卡视频| 日韩国产一二三区| 国产欧美日韩在线观看| 色爱区综合激月婷婷| 日本欧美韩国一区三区| 国产三级一区二区| 欧美探花视频资源| 国产精品一二三在| 亚洲综合色在线| 久久久久国产成人精品亚洲午夜| 91影视在线播放| 日本不卡的三区四区五区| 久久色在线观看| 日韩国产高清影视| 国产成人免费在线观看| 亚洲一区二区不卡免费| 99re成人在线| 捆绑变态av一区二区三区| 欧美经典一区二区三区| 欧美精品vⅰdeose4hd| 高清国产午夜精品久久久久久| 国产精品久久久久久久久久免费看| fc2成人免费人成在线观看播放| 樱桃国产成人精品视频| 欧美高清视频在线高清观看mv色露露十八| 国产一区二区三区黄视频 | www.久久精品| 亚洲成av人**亚洲成av**| 精品久久久久久久久久久久久久久| 99久久精品免费观看| 日日欢夜夜爽一区| 一区二区三区日韩精品| 精品人在线二区三区| 欧洲一区二区三区在线| 99视频精品免费视频| 国产一区二区三区高清播放| 丝袜a∨在线一区二区三区不卡| 日韩美女啊v在线免费观看| 久久影院视频免费| 欧美videos中文字幕| 欧美日韩国产精品成人| 色吧成人激情小说| 91香蕉视频mp4| 成人免费观看av| 国产精一区二区三区| 精品无码三级在线观看视频| 日韩高清不卡在线| 天天色 色综合| 婷婷久久综合九色综合绿巨人| 亚洲女与黑人做爰| 亚洲欧洲av在线| 中文字幕av一区 二区| 久久久精品黄色| 欧美精品一区男女天堂| 欧美mv和日韩mv的网站| 欧美一二三区在线观看| 欧美一区二区三区在线观看视频| 欧美日韩国产一区二区三区地区| 欧美体内she精高潮| 欧美三级一区二区| 欧美日韩亚洲综合一区二区三区| 欧美吻胸吃奶大尺度电影| 91福利在线导航| 欧美在线不卡视频| 欧美亚洲国产一区二区三区| 欧美最猛黑人xxxxx猛交| 色系网站成人免费| 欧美三级三级三级爽爽爽| 欧美日韩在线一区二区| 欧美日韩成人综合天天影院| 91精品国产综合久久精品app| 欧美精品v日韩精品v韩国精品v| 欧美另类videos死尸| 欧美一级久久久| 久久婷婷综合激情| 一色屋精品亚洲香蕉网站| 亚洲美腿欧美偷拍| 亚洲一区二区三区四区不卡| 日韩二区在线观看| 国精品**一区二区三区在线蜜桃| 国产成人综合在线| 97久久超碰精品国产| 欧美偷拍一区二区| 欧美不卡123| 国产精品无圣光一区二区| 亚洲综合在线免费观看| 日韩国产欧美在线视频| 裸体健美xxxx欧美裸体表演| 国产乱色国产精品免费视频| 99精品视频中文字幕| 欧美亚洲禁片免费| 精品国产a毛片| 中文字幕一区二区在线观看| 视频在线观看91| 国产成人福利片| 欧美日韩一区中文字幕| 欧美精品一区二区三区在线 | 黄色成人免费在线| www.66久久| 91麻豆精品国产91久久久使用方法| xfplay精品久久| 悠悠色在线精品| 狠狠色丁香久久婷婷综| 91香蕉视频在线| 精品99999| 亚洲精品亚洲人成人网| 久久成人麻豆午夜电影| 一道本成人在线| 久久久久久久久久久久久女国产乱| 亚洲免费观看高清完整版在线观看 | 久久精品亚洲精品国产欧美| 玉足女爽爽91| 人妖欧美一区二区| 国产一区二区三区四区五区入口| 成人小视频在线观看| 69精品人人人人| 久久免费国产精品| 亚洲成人免费看| 国产白丝网站精品污在线入口| 欧美巨大另类极品videosbest | 北条麻妃国产九九精品视频| 国产精品乱人伦一区二区| 五月天久久比比资源色| 国产精品网站一区| 亚洲色图.com| 国产资源在线一区| 欧美在线短视频| 国产精品欧美久久久久无广告| 一区二区在线免费观看| 国产成人亚洲精品青草天美 | 亚洲三级电影网站| 91精品国产一区二区三区香蕉| 国产精品伦一区二区三级视频| 天堂在线亚洲视频| 欧洲亚洲精品在线| 日韩理论电影院| 成人一道本在线| 欧美成人r级一区二区三区| 亚洲韩国一区二区三区| 国模一区二区三区白浆| 日韩欧美一区二区在线视频| 亚洲1区2区3区4区| 欧美亚洲综合在线| 一区二区三区欧美| 色八戒一区二区三区| 国产精品美女久久久久久久网站| 国产精品 日产精品 欧美精品| 欧美影片第一页| 一区二区三区在线播| 91免费看片在线观看| 亚洲欧美综合在线精品| 国产在线播放一区| 久久久久久9999| 日韩精品乱码免费| 91精品国产色综合久久不卡蜜臀| 亚洲综合视频在线观看| 成人丝袜视频网| 国产精品久久久久久久午夜片| 国产69精品久久久久777| 国产精品视频yy9299一区| 成人精品电影在线观看| 亚洲欧美偷拍另类a∨色屁股| av亚洲精华国产精华| 久久精品网站免费观看| 99riav久久精品riav| 天堂一区二区在线| 中文子幕无线码一区tr| 欧美影院精品一区|