WMArray class is almost ready.
[wmaker-crm.git] / WPrefs.app / editmenu.h
blobe7349a4b17040ee73ec50de772d92a43062c4b2e
1 /* editmenu.h - editable menus
2 *
3 * WPrefs - Window Maker Preferences Program
4 *
5 * Copyright (c) 2000 Alfredo K. Kojima
6 *
7 * This program is free software; you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License as published by
9 * the Free Software Foundation; either version 2 of the License, or
10 * (at your option) any later version.
12 * This program is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU General Public License for more details.
17 * You should have received a copy of the GNU General Public License
18 * along with this program; if not, write to the Free Software
19 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
20 * USA.
24 typedef struct W_EditMenu WEditMenu;
25 typedef struct W_EditMenuItem WEditMenuItem;
28 typedef struct WEditMenuDelegate {
29 void *data;
31 void (*itemCloned)(struct WEditMenuDelegate*, WEditMenu*,
32 WEditMenuItem*, WEditMenuItem *);
33 void (*itemEdited)(struct WEditMenuDelegate*, WEditMenu*,
34 WEditMenuItem*);
35 void (*itemSelected)(struct WEditMenuDelegate*, WEditMenu*,
36 WEditMenuItem*);
37 void (*itemDeselected)(struct WEditMenuDelegate*, WEditMenu*,
38 WEditMenuItem*);
39 Bool (*shouldRemoveItem)(struct WEditMenuDelegate*, WEditMenu*,
40 WEditMenuItem*);
41 } WEditMenuDelegate;
46 WEditMenuItem *WCreateEditMenuItem(WMWidget *parent, char *title,
47 Bool isTitle);
50 char *WGetEditMenuItemTitle(WEditMenuItem *item);
52 void *WGetEditMenuItemData(WEditMenuItem *item);
54 void WSetEditMenuItemData(WEditMenuItem *item, void *data,
55 WMCallback *destroyer);
57 void WSetEditMenuItemImage(WEditMenuItem *item, WMPixmap *pixmap);
59 WEditMenu *WCreateEditMenu(WMScreen *scr, char *title);
61 WEditMenu *WCreateEditMenuPad(WMWidget *parent);
63 void WSetEditMenuDelegate(WEditMenu *mPtr, WEditMenuDelegate *delegate);
65 WEditMenuItem *WInsertMenuItemWithTitle(WEditMenu *mPtr, int index,
66 char *title);
68 WEditMenuItem *WAddMenuItemWithTitle(WEditMenu *mPtr, char *title);
70 WEditMenuItem *WGetEditMenuItem(WEditMenu *mPtr, int index);
72 void WSetEditMenuTitle(WEditMenu *mPtr, char *title);
74 char *WGetEditMenuTitle(WEditMenu *mPtr);
76 void WSetEditMenuAcceptsDrop(WEditMenu *mPtr, Bool flag);
78 void WSetEditMenuSubmenu(WEditMenu *mPtr, WEditMenuItem *item,
79 WEditMenu *submenu);
82 WEditMenu *WGetEditMenuSubmenu(WEditMenu *mPtr, WEditMenuItem *item);
84 void WRemoveEditMenuItem(WEditMenu *mPtr, WEditMenuItem *item);
86 void WSetEditMenuSelectable(WEditMenu *mPtr, Bool flag);
88 void WSetEditMenuEditable(WEditMenu *mPtr, Bool flag);
90 void WSetEditMenuIsFactory(WEditMenu *mPtr, Bool flag);
92 void WSetEditMenuMinSize(WEditMenu *mPtr, WMSize size);
94 void WSetEditMenuMaxSize(WEditMenu *mPtr, WMSize size);
96 WMPoint WGetEditMenuLocationForSubmenu(WEditMenu *mPtr, WEditMenu *submenu);
98 void WTearOffEditMenu(WEditMenu *menu, WEditMenu *submenu);
100 Bool WEditMenuIsTornOff(WEditMenu *mPtr);