monomer-flatpak-example 0.0.2.6 → 0.0.3.0
raw patch · 3 files changed
+34/−16 lines, 3 files
Files
- app/Main.hs +32/−15
- assets/io.github.Dretch.MonomerFlatpakExample.metainfo.xml +1/−0
- monomer-flatpak-example.cabal +1/−1
app/Main.hs view
@@ -2,15 +2,17 @@ import Data.Sequence (Seq) import qualified Data.Sequence as Seq-import Data.Text (Text, pack, unpack, unwords)+import Data.Text (Text, pack, unpack) import Monomer import Monomer.Hagrid import Paths_monomer_flatpak_example (getDataFileName) import System.Directory (getCurrentDirectory, getHomeDirectory, listDirectory)+import System.Environment (getEnvironment) import Prelude hiding (unwords) data AppModel = AppModel- { environmentInfos :: Seq EnvironmentInfo+ { fileSystem :: Seq EnvironmentInfo,+ environmentVariables :: Seq EnvironmentInfo } deriving (Eq, Show) @@ -22,7 +24,7 @@ data AppEvent = AppInit- | AppInitFinish (Seq EnvironmentInfo)+ | AppInitFinish (Seq EnvironmentInfo) (Seq EnvironmentInfo) main :: IO () main = do@@ -30,11 +32,12 @@ iconPath <- pack <$> getDataFileName "/io.github.Dretch.MonomerFlatpakExample.png" startApp initialModel handleEvent buildUI (config regularFontPath iconPath) where- initialModel = AppModel {environmentInfos = mempty}+ initialModel = AppModel {fileSystem = mempty, environmentVariables = mempty} config regularFontPath iconPath = [ appTheme darkTheme, appWindowTitle "Monomer Flatpak Example", appWindowIcon iconPath,+ appWindowState (MainWindowNormal (1000, 800)), appFontDef "Regular" regularFontPath, appDisableAutoScale True, appInitEvent AppInit@@ -42,25 +45,38 @@ buildUI :: UIBuilder AppModel AppEvent buildUI _wenv model =- vstack- [ label "This is a demo of the monomer framework running inside the Flatpak sandbox."- `styleBasic` [padding 10],+ vstack_+ [childSpacing_ 5]+ [ label "Monomer Flatpak Example"+ `styleBasic` [textSize 40, paddingL 5, paddingT 10, paddingR 10],+ label "This is a demo of the monomer framework running inside the Flatpak sandbox."+ `styleBasic` [padding 5], hagrid- [ (textColumn "Environment Property" (.key)) {initialWidth = 200},- (textColumn "Value" (.value)) {initialWidth = 600}+ [ (textColumn "File System Info" (.key)) {initialWidth = 300},+ (widgetColumn "" valueColumn) {initialWidth = 700} ]- model.environmentInfos+ model.fileSystem,+ hagrid+ [ (textColumn "Environment Variable" (.key)) {initialWidth = 300},+ (widgetColumn "" valueColumn) {initialWidth = 700}+ ]+ model.environmentVariables ] +valueColumn :: Int -> EnvironmentInfo -> WidgetNode s e+valueColumn _ix model =+ label_ model.value [multiline, ellipsis]+ handleEvent :: EventHandler AppModel AppEvent sp ep handleEvent _wenv _node model = \case AppInit -> [ Task $ do curDir <- pack <$> getCurrentDirectory homeDir <- pack <$> getHomeDirectory- lsRoot <- unwords . fmap pack <$> listDirectory "/"- lsCurDir <- unwords . fmap pack <$> listDirectory (unpack curDir)- lsHomeDir <- unwords . fmap pack <$> listDirectory (unpack homeDir)+ lsRoot <- pack . unlines <$> listDirectory "/"+ lsCurDir <- pack . unlines <$> listDirectory (unpack curDir)+ lsHomeDir <- pack . unlines <$> listDirectory (unpack homeDir)+ envVars <- Seq.fromList . map (\(k, v) -> EnvironmentInfo (pack k) (pack v)) <$> getEnvironment pure $ AppInitFinish ( Seq.fromList@@ -71,6 +87,7 @@ EnvironmentInfo ("ls " <> homeDir) lsHomeDir ] )+ envVars ]- AppInitFinish environmentInfos ->- [Model model {environmentInfos}]+ AppInitFinish fileSystem environmentVariables ->+ [Model model {fileSystem, environmentVariables}]
assets/io.github.Dretch.MonomerFlatpakExample.metainfo.xml view
@@ -17,6 +17,7 @@ <url type="homepage">https://github.com/Dretch/monomer-flatpak-example#readme</url> <releases>+ <release version="0.0.3.0" date="2023-03-10"/> <release version="0.0.2.6" date="2023-02-25"/> </releases>
monomer-flatpak-example.cabal view
@@ -1,6 +1,6 @@ cabal-version: 1.12 name: monomer-flatpak-example-version: 0.0.2.6+version: 0.0.3.0 license: MIT license-file: LICENSE maintainer: garethdanielsmith@gmail.com