summaryrefslogtreecommitdiff
path: root/src/linux/Menu.h
blob: 024c9e0defc565f09b3968bd2c26fc30028e3dd7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
/*
 * Copyright 2011  Alex Merry <alex.merry@kdemail.net>
 *
 * Stuff stolen from glade-window.c in Glade:
 *     Copyright (C) 2001 Ximian, Inc.
 *     Copyright (C) 2007 Vincent Geddes.
 *
 * This program is free software; you can redistribute it and/or
 * modify it under the terms of the GNU General Public License as
 * published by the Free Software Foundation; either version 2 of
 * the License, or (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */

#import "TZFoundation.h"
#import <gtk/gtk.h>

@class MainWindow;
@class PickSupport;

/**
 * Manages the menu and toolbar for the main window.
 */
@interface Menu: NSObject {
    MainWindow     *mainWindow;
    GtkUIManager   *ui;
    GtkActionGroup *staticActions;
    GtkActionGroup *documentActions;
//  GtkActionGroup *documents_list_menu_actions;
    GtkAction      *undoAction;
    GtkAction      *redoAction;
    GtkAction      *pasteAction;
    GtkAction     **nodeSelBasedActions;
    guint           nodeSelBasedActionCount;
    GtkAction     **selBasedActions;
    guint           selBasedActionCount;
}

/**
 * Constructs the menu and toolbar for @p window
 *
 * @param window  the mainwindow that will be acted upon by the various
 * menu items and toolbar buttons.
 */
- (id) initForMainWindow:(MainWindow*)window;

/**
 * The menubar widget, to be inserted into the main window
 */
- (GtkWidget*) menubar;
/**
 * The toolbar widget, to be inserted into the main window
 */
- (GtkWidget*) toolbar;
/**
 * The main window object passed to initForMainWindow
 */
- (MainWindow*) mainWindow;

/**
 * Enables or disables the undo action
 */
- (void) setUndoActionEnabled:(BOOL)enabled;
/**
 * Sets the text that describes what action will be undone
 *
 * @param detail  a text description of the action, or nil
 */
- (void) setUndoActionDetail:(NSString*)detail;
/**
 * Enables or disables the redo action
 */
- (void) setRedoActionEnabled:(BOOL)enabled;
/**
 * Sets the text that describes what action will be redone
 *
 * @param detail  a text description of the action, or nil
 */
- (void) setRedoActionDetail:(NSString*)detail;

/**
 * Gets the paste action
 */
- (GtkAction*) pasteAction;

/**
 * Enables or disables the actions that act on a selection
 */
- (void) notifySelectionChanged:(PickSupport*)pickSupport;
@end

// vim:ft=objc:ts=8:et:sts=4:sw=4