GTK: implement right-click menu
This commit is contained in:
@@ -167,6 +167,20 @@ startMainWindow startdir = do
|
||||
"urlBar"
|
||||
statusBar <- builderGetObject builder castToStatusbar
|
||||
"statusBar"
|
||||
rcMenu <- builderGetObject builder castToMenu
|
||||
"rcMenu"
|
||||
rcFileOpen <- builderGetObject builder castToImageMenuItem
|
||||
"rcFileOpen"
|
||||
rcFileExecute <- builderGetObject builder castToImageMenuItem
|
||||
"rcFileExecute"
|
||||
rcFileCut <- builderGetObject builder castToImageMenuItem
|
||||
"rcFileCut"
|
||||
rcFileCopy <- builderGetObject builder castToImageMenuItem
|
||||
"rcFileCopy"
|
||||
rcFilePaste <- builderGetObject builder castToImageMenuItem
|
||||
"rcFilePaste"
|
||||
rcFileDelete <- builderGetObject builder castToImageMenuItem
|
||||
"rcFileDelete"
|
||||
|
||||
-- create initial list store model with unsorted data
|
||||
rawModel <- newTVarIO =<< listStoreNew
|
||||
|
||||
@@ -110,6 +110,28 @@ setCallbacks mygui myview = do
|
||||
_ <- menubarEditCut mygui `on` menuItemActivated $
|
||||
liftIO $ withRow mygui myview moveInit
|
||||
|
||||
-- righ-click
|
||||
_ <- treeView mygui `on` buttonPressEvent $ do
|
||||
eb <- eventButton
|
||||
t <- eventTime
|
||||
case eb of
|
||||
RightButton -> liftIO $ menuPopup (rcMenu mygui) $ Just (RightButton, t)
|
||||
_ -> return ()
|
||||
return False
|
||||
_ <- rcFileOpen mygui `on` menuItemActivated $
|
||||
liftIO $ withRow mygui myview open
|
||||
_ <- rcFileExecute mygui `on` menuItemActivated $
|
||||
liftIO $ withRow mygui myview execute
|
||||
_ <- rcFileCopy mygui `on` menuItemActivated $
|
||||
liftIO $ withRow mygui myview copyInit
|
||||
_ <- rcFilePaste mygui `on` menuItemActivated $
|
||||
liftIO $ operationFinal mygui myview
|
||||
_ <- rcFileDelete mygui `on` menuItemActivated $
|
||||
liftIO $ withRow mygui myview del
|
||||
_ <- rcFileCut mygui `on` menuItemActivated $
|
||||
liftIO $ withRow mygui myview moveInit
|
||||
|
||||
|
||||
return ()
|
||||
|
||||
|
||||
|
||||
@@ -34,6 +34,13 @@ data MyGUI = MkMyGUI {
|
||||
, menubarEditPaste :: ImageMenuItem
|
||||
, menubarEditDelete :: ImageMenuItem
|
||||
, menubarHelpAbout :: ImageMenuItem
|
||||
, rcMenu :: Menu
|
||||
, rcFileOpen :: ImageMenuItem
|
||||
, rcFileExecute :: ImageMenuItem
|
||||
, rcFileCut :: ImageMenuItem
|
||||
, rcFileCopy :: ImageMenuItem
|
||||
, rcFilePaste :: ImageMenuItem
|
||||
, rcFileDelete :: ImageMenuItem
|
||||
, urlBar :: Entry
|
||||
, statusBar :: Statusbar
|
||||
, treeView :: TreeView
|
||||
|
||||
Reference in New Issue
Block a user