mirror of
https://gitlab.com/sheaf/metabrush.git
synced 2024-11-05 14:53:37 +00:00
file selection bar
This commit is contained in:
parent
4e41b5c294
commit
267b91cee8
32
app/Main.hs
32
app/Main.hs
|
@ -8,6 +8,8 @@ module Main
|
|||
where
|
||||
|
||||
-- base
|
||||
import Data.Foldable
|
||||
( for_ )
|
||||
import Data.Int
|
||||
( Int32 )
|
||||
import System.Exit
|
||||
|
@ -95,23 +97,24 @@ main = do
|
|||
logo <- GTK.boxNew GTK.OrientationVertical 0
|
||||
titleBar <- GTK.boxNew GTK.OrientationHorizontal 0
|
||||
toolBar <- GTK.boxNew GTK.OrientationVertical 0
|
||||
fileBar <- GTK.boxNew GTK.OrientationHorizontal 0
|
||||
mainPane <- GTK.panedNew GTK.OrientationHorizontal
|
||||
panelGrid <- GTK.gridNew
|
||||
|
||||
GTK.gridAttach uiGrid logo 0 0 1 2
|
||||
GTK.gridAttach uiGrid titleBar 1 0 3 1
|
||||
GTK.gridAttach uiGrid toolBar 0 2 2 2
|
||||
GTK.gridAttach uiGrid fileBar 2 1 1 1
|
||||
GTK.gridAttach uiGrid mainPane 2 2 2 3
|
||||
GTK.gridAttach uiGrid mainPane 2 1 2 4
|
||||
|
||||
mainView <- GTK.boxNew GTK.OrientationVertical 0
|
||||
viewportGrid <- GTK.gridNew
|
||||
infoBar <- GTK.boxNew GTK.OrientationHorizontal 0
|
||||
|
||||
GTK.panedPack1 mainPane mainView True False
|
||||
GTK.panedPack2 mainPane panelGrid False False
|
||||
|
||||
fileBar <- GTK.scrolledWindowNew ( Nothing @GTK.Adjustment ) ( Nothing @GTK.Adjustment )
|
||||
viewportGrid <- GTK.gridNew
|
||||
infoBar <- GTK.boxNew GTK.OrientationHorizontal 0
|
||||
|
||||
GTK.boxPackStart mainView fileBar False False 0
|
||||
GTK.boxPackStart mainView viewportGrid True True 0
|
||||
GTK.boxPackStart mainView infoBar False False 0
|
||||
|
||||
|
@ -138,14 +141,14 @@ main = do
|
|||
widgetAddClass titleBar "titleBar"
|
||||
|
||||
( menuBar, _menu ) <- newMenuBar
|
||||
widgetAddClasses menuBar [ "text", "plain" ]
|
||||
widgetAddClasses menuBar [ "menuBar", "text", "plain" ]
|
||||
GTK.boxPackStart titleBar menuBar False False 0
|
||||
|
||||
windowIcons <- GTK.boxNew GTK.OrientationHorizontal 0
|
||||
widgetAddClasses windowIcons [ "windowIcon" ]
|
||||
GTK.boxPackEnd titleBar windowIcons False False 0
|
||||
|
||||
title <- GTK.labelNew ( Just "● New Document – MetaBrush" )
|
||||
title <- GTK.labelNew ( Just "● New Document (1) – MetaBrush" )
|
||||
widgetAddClasses title [ "text", "title", "plain" ]
|
||||
GTK.boxSetCenterWidget titleBar ( Just title )
|
||||
|
||||
|
@ -162,6 +165,21 @@ main = do
|
|||
---------------------------------------------------------
|
||||
-- Main viewport
|
||||
|
||||
fileTabs <- GTK.boxNew GTK.OrientationHorizontal 0
|
||||
GTK.containerAdd fileBar fileTabs
|
||||
widgetAddClasses fileTabs [ "fileBar", "plain", "text" ]
|
||||
|
||||
phantomRadioButton <- GTK.radioButtonNew ( [] @GTK.RadioButton )
|
||||
|
||||
for_ [ 1 .. 12 ] \ i -> do
|
||||
pgButton <- GTK.radioButtonNewWithLabelFromWidget ( Just phantomRadioButton ) ( "● New Document (" <> Text.pack ( show i ) <> ")" )
|
||||
GTK.toggleButtonSetMode pgButton False -- don't display radio indicator
|
||||
widgetAddClasses pgButton [ "fileBarTab" ]
|
||||
GTK.boxPackStart fileTabs pgButton False False 0
|
||||
|
||||
GTK.scrolledWindowSetPolicy fileBar GTK.PolicyTypeAutomatic GTK.PolicyTypeNever
|
||||
GTK.scrolledWindowSetOverlayScrolling fileBar True
|
||||
|
||||
widgetAddClass viewportGrid "viewport_bg"
|
||||
|
||||
rvRulerCorner <- GTK.revealerNew
|
||||
|
|
|
@ -14,8 +14,8 @@
|
|||
/* Viewport background colour */
|
||||
.viewport_bg {
|
||||
background-color: rgb(236, 223, 210);
|
||||
min-width: 20px;
|
||||
min-height: 20px;
|
||||
min-width: 60px;
|
||||
min-height: 40px;
|
||||
}
|
||||
|
||||
/* Basic text colour */
|
||||
|
@ -45,8 +45,7 @@
|
|||
|
||||
/* Logo area */
|
||||
.logo {
|
||||
padding-left: 2px;
|
||||
padding-top: 0px;
|
||||
margin-left: 4px;
|
||||
}
|
||||
|
||||
/* Logo base colour */
|
||||
|
@ -104,7 +103,7 @@
|
|||
|
||||
/* Title bar */
|
||||
.titleBar {
|
||||
min-height: 20px;
|
||||
min-height: 24px;
|
||||
font-size: 12px;
|
||||
}
|
||||
|
||||
|
@ -116,17 +115,20 @@
|
|||
border-top: 2px solid rgb(41, 40, 40);
|
||||
}
|
||||
|
||||
.menuBar {
|
||||
padding-left: 4px;
|
||||
}
|
||||
|
||||
.menuItem {
|
||||
background-color: rgb(41, 40, 40);
|
||||
margin-left: 2px;
|
||||
padding-left: 6px;
|
||||
padding-right: 6px;
|
||||
padding-left: 8px;
|
||||
padding-right: 8px;
|
||||
margin-left: 0px;
|
||||
border-top: 2px solid rgb(41, 40, 40);
|
||||
}
|
||||
|
||||
.menuItem:hover {
|
||||
border-top: 2px solid rgb(234,223,204);
|
||||
border-color: rgb(234,223,204);
|
||||
background-color: rgb(72,70,61);
|
||||
}
|
||||
|
||||
|
@ -140,8 +142,8 @@
|
|||
.submenuItem {
|
||||
padding-top: 4px;
|
||||
padding-bottom: 4px;
|
||||
padding-left: 8px;
|
||||
padding-right: 8px;
|
||||
padding-left: 10px;
|
||||
padding-right: 10px;
|
||||
background-color: rgb(41, 40, 40);
|
||||
border-left: 2px solid rgb(41, 40, 40);
|
||||
}
|
||||
|
@ -152,7 +154,7 @@
|
|||
}
|
||||
|
||||
.submenuItem:hover {
|
||||
border-left: 2px solid rgb(234,223,204);
|
||||
border-color: rgb(234,223,204);
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -167,13 +169,29 @@
|
|||
|
||||
/* File bar */
|
||||
.fileBar {
|
||||
min-height: 25px;
|
||||
font-size: 10px;
|
||||
min-height: 24px;
|
||||
font-size: 12px;
|
||||
margin-top: 2px;
|
||||
}
|
||||
|
||||
.fileBarTab {
|
||||
border-top: 3px solid rgb(41, 40, 40);
|
||||
padding-left: 8px;
|
||||
padding-right: 8px;
|
||||
}
|
||||
|
||||
.fileBarTab:hover {
|
||||
border-color: rgb(72,70,61);
|
||||
}
|
||||
|
||||
.fileBarTab:active, .fileBarTab:checked {
|
||||
border-color: rgb(234,223,204);
|
||||
background-color: rgb(72,70,61);
|
||||
}
|
||||
|
||||
/* Panels */
|
||||
.panels {
|
||||
min-width: 160px;
|
||||
min-width: 120px;
|
||||
font-size: 12px;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue