⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 maingengui.hs

📁 HTK系列的
💻 HS
📖 第 1 页 / 共 5 页
字号:
    foldnm <- newEntry [pad Vertical 5, pad Horizontal 5, width 30,                        background "white", parent foldnmbox,                        text "(default)"] :: IO (Entry String)    foldimgbox <- newHBox [parent foldentries]    folderImg' <- folderImg    standardfoldimg <- newButton [size (18, 18),                                  pad Horizontal 3, photo folderImg',                                  parent foldimgbox,                                  command (\ () -> return ())]                         :: IO (Button String)    setRef lastactiveref standardfoldimg    imgfolderImg' <- imgfolderImg    imgfoldimg <- newButton [size (18, 18),                             pad Horizontal 3, relief Sunken,                             photo imgfolderImg', parent foldimgbox,                             command (\ () -> return ())]                    :: IO (Button String)    txtfolderImg' <- txtfolderImg    txtfoldimg <- newButton [size (18, 18),                             pad Horizontal 3, relief Sunken,                             photo txtfolderImg', parent foldimgbox,                             command (\ () -> return ())]                    :: IO (Button String)    colorfolderImg' <- colorfolderImg    colfoldimg <- newButton [size (18, 18),                             pad Horizontal 3, relief Sunken,                             photo colorfolderImg', parent foldimgbox,                             command (\ () -> return ())]                    :: IO (Button String)    numfolderImg' <- numfolderImg    numfoldimg <- newButton [size (18, 18),                             pad Horizontal 3, relief Sunken,                             photo numfolderImg', parent foldimgbox,                             command (\ () -> return ())]                    :: IO (Button String)-}    export <- newButton main [text "Export state"]    pack export [PadX 10, PadY 5, Fill X, Expand On]    clickedexport <- clicked export    quit <- newButton main [text "Quit"]    pack quit [PadX 10, PadY 5, Fill X, Expand On]    clickedquit <- clicked quit    (gui_ev, _) <- bindGenGUIEv gui    let --react :: GenGUIEvent c -> IO ()        react (SelectTreeList mitem) = selectedTl foldlab mitem        react (Doubleclick item) = doubleClickNp item        react _ = done    spawnEvent (forever (clickedexport >>> exportState gui +>                         clickedquit >>> destroy main +>                         gui_ev >>>= react)){-                         selectedItemInTreeList gui >>>=                           selectedTl foldlab +>                         doubleClickInNotepad gui >>>= doubleClickNp))-}{-    interactor (\i -> (triggered addimg >>> do                                              nm <- getText imgnm                                              val <- getRef imgpathref                                              addImg nm val) +>                      (triggered addtxt >>> do                                              nm <- getText txtnm                                              val <- getText txtval                                              addTxt nm val                                              done) +>                      (triggered addnum >>> do                                              nm <- getText numnm                                              --val <- getText numval                                              {-addNum nm val-}                                              done) +>                      (triggered addcol >>> do                                              nm <- getText colnm                                              val <- getText colmenu                                              addCol nm val                                              done) +>                      (triggered imgbutton >>> chooseImageFile                                                 imgbutton) +>                      (triggered addfold >>> do                                               nm <- getText foldnm                                               addFolder nm                                               done) +>                      (triggered standardfoldimg >>>                         imgSelected standardfoldimg folderImg) +>                      (triggered imgfoldimg >>>                         imgSelected imgfoldimg imgfolderImg) +>                      (triggered txtfoldimg >>>                         imgSelected txtfoldimg txtfolderImg) +>                      (triggered colfoldimg >>>                         imgSelected colfoldimg colorfolderImg) +>                      (triggered numfoldimg >>>                         imgSelected numfoldimg numfolderImg) +>                      (triggered quit >>> destroy tk) +>                      (selectedItemInTreeList gui >>>=                         selectedTl foldlab) +>                      (doubleClickInNotepad gui >>>= doubleClickNp))-}{-    spawnEvent (forever ((selectedItemInTreeList gui >>>=                            selectedTl foldlab) +>                         (doubleClickInNotepad gui >>>=                            doubleClickNp)))-}    addExampleFolders newID gui    finishHTkimgSelected :: Button -> IO Image -> IO ()imgSelected but img =  do    but' <- getRef lastactiveref    if but' == but then done else      do        but' # relief Sunken        but # relief Raised        setRef lastactiveref but        setRef imgref imgselectedTl :: Label -> Maybe (Item Obj) -> IO ()selectedTl foldlab mitem =  case mitem of    Nothing -> foldlab # text "no folder selected" >> done    Just item -> let val = content item                     (nm, _, _) = val                 in do                      foldlab # text ("'" ++ full nm ++ "'")                      setRef foldref (Just item)doubleClickNp :: Item Obj -> IO ()doubleClickNp item =  let (_, _, myobj) = content item  in case myobj of       MyImage _ ioimg -> do                            main <- createToplevel [text "Image"]                            img <- ioimg                            lab <- newLabel main [anchor Center,                                                  photo img]                            pack lab []                            quit <- newButton main [text "Close"]                            pack quit []                            clickedquit <- clicked quit                            spawnEvent (clickedquit >>> destroy main)                            done       MyTxt _ str -> do                        main <- createToplevel [text "Text"]                        lab <- newLabel main                                 [anchor Center,                                  text ("     " ++ str ++ "     "),                                  height 5, relief Sunken,                                  font (Helvetica, 12 :: Int)]                        pack lab []                        quit <- newButton main [text "Close"]                        pack quit []                        clickedquit <- clicked quit                        spawnEvent (clickedquit >>> destroy main)                        done       MyColor _ mycol -> do                            main <- createToplevel [text "Color"]                            lab <- newLabel main                                     [relief Sunken, size (20,8),                                      anchor Center,                                      font (Helvetica, 18 :: Int),                                      bg (case mycol of                                            Red -> "red"                                            Green -> "green"                                            Blue -> "blue"                                            Yellow -> "yellow"),                                      text (case mycol of                                               Red -> "Red"                                               Green -> "Green"                                               Blue -> "Blue"                                               Yellow -> "Yellow")]                            pack lab []                            quit <- newButton main [text "Close"]                            pack quit []                            clickedquit <- clicked quit                            spawnEvent (clickedquit >>> destroy main)                            done       MyNum _ n -> do                      main <- createToplevel [text "Number"]                      lab <- newLabel main                               [anchor Center, text (show n),                                relief Sunken, size (20,8),                                font (Helvetica, 18 :: Int)]                      pack lab []                      quit <- newButton main [text "Close"]                      pack quit []                      clickedquit <- clicked quit                      spawnEvent (clickedquit >>> destroy main)                      doneexportState :: GenGUI Obj -> IO ()exportState gui =  do    st <- exportGenGUIState gui    putStrLn "state exported"    gui_clone <- newGenGUI (Just st) True    putStrLn "state imported"-------------- images --------------yellowImg = newImage [imgData GIF "R0lGODlhDAAMAIQAAOfkFuTgHOHdId3aJtrXLNbTMdPQNtDNPMzKQcnGRsXDS8LAUb+9Vru5W7i2YbSzZrGva62scKqpdqeme6OigKCfhpyci5aWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWliH+FUNyZWF0ZWQgd2l0aCBUaGUgR0lNUAAh+QQBCgAfACwAAAAADAAMAAAFPyAQCANRGAeSKMtYnum6MKSJqizTvLesO7ZYruF4wHAz4gPSGxYhEWHyGZEgf8vqxKeESiYUZ/ZLqUzH4IolBAA7"]greenImg = newImage [imgData GIF "R0lGODlhDAAMAIQAAAD/IQb6Jgz2KxLxMBntNR/pOiXkPyvgQzLcSDjXTT7TUkTOV0vKXFHGYFfBZV29amS4b2q0dHCweXarfX2ngoOjh4mejJaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWliH+FUNyZWF0ZWQgd2l0aCBUaGUgR0lNUAAh+QQBCgAfACwAAAAADAAMAAAFPyAQCANRGAeSKMtYnum6MKSJqizTvLesO7ZYruF4wHAz4gPSGxYhEWHyGZEgf8vqxKeESiYUZ/ZLqUzH4IolBAA7"]blueImg = newImage [imgData GIF "R0lGODlhDAAMAIQAAAA//wZC+gxG9hJJ8RlN7R9R6SVU5CtY4DJc3Dhf1z5j00RmzktqylFuxldxwV11vWR5uGp8tHCAsHaDq32Hp4OLo4mOnpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWliH+FUNyZWF0ZWQgd2l0aCBUaGUgR0lNUAAh+QQBCgAfACwAAAAADAAMAAAFPyAQCANRGAeSKMtYnum6MKSJqizTvLesO7ZYruF4wHAz4gPSGxYhEWHyGZEgf8vqxKeESiYUZ/ZLqUzH4IolBAA7"]redImg = newImage [imgData GIF "R0lGODlhDAAMAIQAAP8UAPoaBvYfDPElEu0qGekvH+Q1JeA6K9xAMtdFONNKPs5QRMpVS8ZaUcFgV71lXbhrZLRwarB1cKt7dqeAfaOFg56LiZaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWliH+FUNyZWF0ZWQgd2l0aCBUaGUgR0lNUAAh+QQBCgAfACwAAAAADAAMAAAFPyAQCANRGAeSKMtYnum6MKSJqizTvLesO7ZYruF4wHAz4gPSGxYhEWHyGZEgf8vqxKeESiYUZ/ZLqUzH4IolBAA7"]txtImg = newImage [imgData GIF "R0lGODlhDAAMAKEAAAAAAP///9jY2NjY2CH5BAEKAAIALAAAAAAMAAwAAAIjlIEJduEflgAwxUXhQ/Pa22kORyEemIlk5JWYOErKLE00UgAAOw=="]numImg = newImage [imgData GIF "R0lGODlhDAAMAKUAAP////v7+/j4+PX19fHx8e7u7uvr6+jo6OXl5eHh4d7e3tvb2/ba2vWgoPOenvGcnOTIyOWtrfw2Nvs1Nf8AAO21teuWlvRKSv03N/LW1vkzM/vf3/tRUfdNTfNmZumUlPynp/sZGfVLS/e/v/KBge59feKqqv0bG/S8vPOCguqysu5hYfjc3PptbflPT+rOzueSktjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2CH5BAEKAD8ALAAAAAAMAAwAAAZlQEBAMCAUDAdEQrEQChgNxyMJiTSHkomDUkFYLleMJHPUIChgwIbCMRo6HsqnCaIUjwdKyAqo35EUIkx9FCNuJBQlg3VtRx2BCiZCFCcoBSkUKiEXK0IsLScuFC9eFDBOf0lLC0EAOw=="]imgImg = newImage [imgData GIF "R0lGODlhDAAMAMIAAHq86Oz8FP///wAAAHqk/yrMS1XRYP///yH+FUNyZWF0ZWQgd2l0aCBUaGUgR0lNUAAh+QQBCgAHACwAAAAADAAMAAADL3i6vPAwKhjimyBoIQ8YBCEI4nUMYCiAZlGgMNEWRl0Pra3jiuvqhkHPR3Q1jooEADs="]

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -