GTK: implement right-click menu
This commit is contained in:
parent
d184b82648
commit
e639405d7f
@ -2,6 +2,70 @@
|
|||||||
<!-- Generated with glade 3.19.0 -->
|
<!-- Generated with glade 3.19.0 -->
|
||||||
<interface>
|
<interface>
|
||||||
<requires lib="gtk+" version="3.16"/>
|
<requires lib="gtk+" version="3.16"/>
|
||||||
|
<object class="GtkMenu" id="rcMenu">
|
||||||
|
<property name="visible">True</property>
|
||||||
|
<property name="can_focus">False</property>
|
||||||
|
<child>
|
||||||
|
<object class="GtkImageMenuItem" id="rcFileOpen">
|
||||||
|
<property name="label">gtk-open</property>
|
||||||
|
<property name="visible">True</property>
|
||||||
|
<property name="can_focus">False</property>
|
||||||
|
<property name="use_underline">True</property>
|
||||||
|
<property name="use_stock">True</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkImageMenuItem" id="rcFileExecute">
|
||||||
|
<property name="label">gtk-execute</property>
|
||||||
|
<property name="visible">True</property>
|
||||||
|
<property name="can_focus">False</property>
|
||||||
|
<property name="use_underline">True</property>
|
||||||
|
<property name="use_stock">True</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkSeparatorMenuItem" id="separatormenuitem2">
|
||||||
|
<property name="visible">True</property>
|
||||||
|
<property name="can_focus">False</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkImageMenuItem" id="rcFileCut">
|
||||||
|
<property name="label">gtk-cut</property>
|
||||||
|
<property name="visible">True</property>
|
||||||
|
<property name="can_focus">False</property>
|
||||||
|
<property name="use_underline">True</property>
|
||||||
|
<property name="use_stock">True</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkImageMenuItem" id="rcFileCopy">
|
||||||
|
<property name="label">gtk-copy</property>
|
||||||
|
<property name="visible">True</property>
|
||||||
|
<property name="can_focus">False</property>
|
||||||
|
<property name="use_underline">True</property>
|
||||||
|
<property name="use_stock">True</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkImageMenuItem" id="rcFilePaste">
|
||||||
|
<property name="label">gtk-paste</property>
|
||||||
|
<property name="visible">True</property>
|
||||||
|
<property name="can_focus">False</property>
|
||||||
|
<property name="use_underline">True</property>
|
||||||
|
<property name="use_stock">True</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
<child>
|
||||||
|
<object class="GtkImageMenuItem" id="rcFileDelete">
|
||||||
|
<property name="label">gtk-delete</property>
|
||||||
|
<property name="visible">True</property>
|
||||||
|
<property name="can_focus">False</property>
|
||||||
|
<property name="use_underline">True</property>
|
||||||
|
<property name="use_stock">True</property>
|
||||||
|
</object>
|
||||||
|
</child>
|
||||||
|
</object>
|
||||||
<object class="GtkApplicationWindow" id="rootWin">
|
<object class="GtkApplicationWindow" id="rootWin">
|
||||||
<property name="can_focus">False</property>
|
<property name="can_focus">False</property>
|
||||||
<child>
|
<child>
|
||||||
|
@ -167,6 +167,20 @@ startMainWindow startdir = do
|
|||||||
"urlBar"
|
"urlBar"
|
||||||
statusBar <- builderGetObject builder castToStatusbar
|
statusBar <- builderGetObject builder castToStatusbar
|
||||||
"statusBar"
|
"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
|
-- create initial list store model with unsorted data
|
||||||
rawModel <- newTVarIO =<< listStoreNew
|
rawModel <- newTVarIO =<< listStoreNew
|
||||||
|
@ -110,6 +110,28 @@ setCallbacks mygui myview = do
|
|||||||
_ <- menubarEditCut mygui `on` menuItemActivated $
|
_ <- menubarEditCut mygui `on` menuItemActivated $
|
||||||
liftIO $ withRow mygui myview moveInit
|
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 ()
|
return ()
|
||||||
|
|
||||||
|
|
||||||
|
@ -34,6 +34,13 @@ data MyGUI = MkMyGUI {
|
|||||||
, menubarEditPaste :: ImageMenuItem
|
, menubarEditPaste :: ImageMenuItem
|
||||||
, menubarEditDelete :: ImageMenuItem
|
, menubarEditDelete :: ImageMenuItem
|
||||||
, menubarHelpAbout :: ImageMenuItem
|
, menubarHelpAbout :: ImageMenuItem
|
||||||
|
, rcMenu :: Menu
|
||||||
|
, rcFileOpen :: ImageMenuItem
|
||||||
|
, rcFileExecute :: ImageMenuItem
|
||||||
|
, rcFileCut :: ImageMenuItem
|
||||||
|
, rcFileCopy :: ImageMenuItem
|
||||||
|
, rcFilePaste :: ImageMenuItem
|
||||||
|
, rcFileDelete :: ImageMenuItem
|
||||||
, urlBar :: Entry
|
, urlBar :: Entry
|
||||||
, statusBar :: Statusbar
|
, statusBar :: Statusbar
|
||||||
, treeView :: TreeView
|
, treeView :: TreeView
|
||||||
|
Loading…
Reference in New Issue
Block a user