Mercurial > emacs
annotate src/msdos.h @ 109581:06384b3caebf
Add ability to put Gtk+ tool bar on the left/right/bottom or top. Default top.
* lisp/menu-bar.el (menu-bar-showhide-tool-bar-menu-customize-enable-left)
(menu-bar-showhide-tool-bar-menu-customize-disable)
(menu-bar-showhide-tool-bar-menu-customize-enable-right)
(menu-bar-showhide-tool-bar-menu-customize-enable-top)
(menu-bar-showhide-tool-bar-menu-customize-enable-bottom): New functions
(menu-bar-showhide-tool-bar-menu): If tool bar is moveable,
make a menu for Options => toolbar that can move it.
* src/frame.c (Qtool_bar_position): New variable.
(make_frame): Set tool_bar_position to Qtop.
(frame_parms): Add tool-bar-position.
(x_report_frame_params): Store tool_bar_position.
(x_set_fringe_width): Reset wm size hint after fringe changes.
* src/frame.h (struct frame): Add tool_bar_position.
(Qbottom): Declare.
* src/gtkutil.c (FRAME_TOTAL_PIXEL_WIDTH): New macro.
(xg_frame_set_char_size): Add FRAME_TOOLBAR_WIDTH to pixelwidth.
(xg_height_or_width_changed): Use FRAME_TOTAL_PIXEL_WIDTH.
(xg_create_frame_widgets): Create a hobox for placing widgets
vertically. Use gtk_box_pack_start.
(xg_height_or_width_changed): Renamed from xg_height_changed.
(x_wm_set_size_hint): Add FRAME_TOOLBAR_WIDTH to base_width.
(xg_update_frame_menubar, free_frame_menubar): Change to
xg_height_or_width_changed.
(xg_tool_bar_detach_callback): Update left/right/top/bottom tool bar
size correctly. Remove hardcoded 4, instead use handlebox size -
toolbar size.
(xg_tool_bar_attach_callback): Update left/right/top/bottom tool bar
size correctly. Use handlebox size + toolbar size as additional
size.
(xg_pack_tool_bar): POS is a new parameter.
Set orientation of tool bar based on pos.
Only make handlebox_widget if NULL.
Check if tool bar goes to vbox or hbox depending on pos.
(xg_update_tool_bar_sizes): New function.
(update_frame_tool_bar): Remove old_req, new_req. Do not get tool bar
height, call xg_update_tool_bar_sizes instead.
(free_frame_tool_bar): Remove from hbox or vbox depending on
toolbar_in_hbox, Set all FRAME_TOOLBAR_*_(WIDTH|HEIGHT) to zero.
(xg_change_toolbar_position): New function.
* src/gtkutil.h (xg_change_toolbar_position): Declare.
* src/window.c (calc_absolute_offset): Check for FRAME_TOOLBAR_TOP_HEIGHT
and FRAME_TOOLBAR_LEFT_WIDTH.
* src/xfns.c (x_set_tool_bar_position): New function.
(xic_set_statusarea): Use FRAME_TOOLBAR_TOP_HEIGHT.
(x_frame_parm_handlers): Add x_set_tool_bar_position.
(syms_of_xfns): if USE_GTK, provide move-toolbar.
* src/xterm.c (x_set_window_size_1): Add FRAME_TOOLBAR_WIDTH to pixelwidth.
* src/xterm.h (struct x_output): Add toolbar_top_height,
toolbar_bottom_height, toolbar_left_width, toolbar_right_width. Remove
toolbar_height.
if USE_GTK: Add hbox_widget and toolbar_in_hbox.
(FRAME_TOOLBAR_TOP_HEIGHT, FRAME_TOOLBAR_BOTTOM_HEIGHT)
(FRAME_TOOLBAR_LEFT_WIDTH, FRAME_TOOLBAR_RIGHT_WIDTH): New macros.
(FRAME_TOOLBAR_HEIGHT): Is now TOP_HEIGHT + BOTTOM_HEIGHT.
| author | Jan D. <jan.h.d@swipnet.se> |
|---|---|
| date | Thu, 29 Jul 2010 18:49:59 +0200 |
| parents | 8efd6d04c47a |
| children | e302712538dc |
| rev | line source |
|---|---|
| 5503 | 1 /* MS-DOS specific C utilities, interface. |
|
64770
a0d1312ede66
Update years in copyright notice; nfc.
Thien-Thi Nguyen <ttn@gnuvola.org>
parents:
64084
diff
changeset
|
2 Copyright (C) 1993, 2001, 2002, 2003, 2004, |
| 106815 | 3 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. |
| 5503 | 4 |
| 5 This file is part of GNU Emacs. | |
| 6 | |
|
94994
29adfc9354e7
Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents:
87649
diff
changeset
|
7 GNU Emacs is free software: you can redistribute it and/or modify |
| 5503 | 8 it under the terms of the GNU General Public License as published by |
|
94994
29adfc9354e7
Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents:
87649
diff
changeset
|
9 the Free Software Foundation, either version 3 of the License, or |
|
29adfc9354e7
Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents:
87649
diff
changeset
|
10 (at your option) any later version. |
| 5503 | 11 |
| 12 GNU Emacs 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. | |
| 16 | |
| 17 You should have received a copy of the GNU General Public License | |
|
94994
29adfc9354e7
Switch to recommended form of GPLv3 permissions notice.
Glenn Morris <rgm@gnu.org>
parents:
87649
diff
changeset
|
18 along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */ |
| 5503 | 19 |
|
29611
f39e60352427
(EMACS_MSDOS_H): Renamed from MSDOS_H_.
Eli Zaretskii <eliz@gnu.org>
parents:
29557
diff
changeset
|
20 #ifndef EMACS_MSDOS_H |
|
f39e60352427
(EMACS_MSDOS_H): Renamed from MSDOS_H_.
Eli Zaretskii <eliz@gnu.org>
parents:
29557
diff
changeset
|
21 #define EMACS_MSDOS_H |
| 9572 | 22 |
| 5503 | 23 #include <dpmi.h> |
| 24 | |
|
97661
e4a283c4bc1c
Remove definition of struct x_display_info and struct x_output.
Eli Zaretskii <eliz@gnu.org>
parents:
94994
diff
changeset
|
25 int dos_ttraw (struct tty_display_info *); |
|
109162
8efd6d04c47a
Convert function definitions in MS-DOS sources to ANSI C.
Eli Zaretskii <eliz@gnu.org>
parents:
109104
diff
changeset
|
26 int dos_ttcooked (void); |
| 13178 | 27 int dos_get_saved_screen (char **, int *, int *); |
| 28 int dos_set_keyboard (int, int); | |
|
14285
6081221167de
(dos_set_window_size): Prototype for a new function.
Karl Heuer <kwzh@gnu.org>
parents:
14186
diff
changeset
|
29 void dos_set_window_size (int *, int *); |
| 13178 | 30 |
| 5503 | 31 int getdefdir (int, char*); |
| 32 void unixtodos_filename (char *); | |
| 33 void dostounix_filename (char *); | |
|
7822
17b96e349369
Add template for rootrelativepath.
Richard M. Stallman <rms@gnu.org>
parents:
7604
diff
changeset
|
34 char *rootrelativepath (char *); |
|
109162
8efd6d04c47a
Convert function definitions in MS-DOS sources to ANSI C.
Eli Zaretskii <eliz@gnu.org>
parents:
109104
diff
changeset
|
35 void init_environment (int, char **, int); |
|
8efd6d04c47a
Convert function definitions in MS-DOS sources to ANSI C.
Eli Zaretskii <eliz@gnu.org>
parents:
109104
diff
changeset
|
36 void internal_terminal_init (void); |
| 5503 | 37 |
| 38 extern int have_mouse; | |
|
109162
8efd6d04c47a
Convert function definitions in MS-DOS sources to ANSI C.
Eli Zaretskii <eliz@gnu.org>
parents:
109104
diff
changeset
|
39 void mouse_init (void); |
|
8efd6d04c47a
Convert function definitions in MS-DOS sources to ANSI C.
Eli Zaretskii <eliz@gnu.org>
parents:
109104
diff
changeset
|
40 void mouse_on (void); |
|
8efd6d04c47a
Convert function definitions in MS-DOS sources to ANSI C.
Eli Zaretskii <eliz@gnu.org>
parents:
109104
diff
changeset
|
41 void mouse_off (void); |
| 5503 | 42 void mouse_moveto (int, int); |
| 9572 | 43 |
| 44 #ifndef HAVE_X_WINDOWS | |
| 45 /* Dummy types. */ | |
| 46 typedef int XFontStruct; | |
| 47 typedef int GC; | |
| 48 typedef int Pixmap; | |
| 49 typedef int Display; | |
| 50 typedef int Window; | |
|
21784
8de4e2a8cc62
[!HAVE_X_WINDOWS]: Add a dummy typedef for XRectangle
Eli Zaretskii <eliz@gnu.org>
parents:
15386
diff
changeset
|
51 typedef int XRectangle; |
|
74497
07c34c917584
(PIX_TYPE): Redefine as `unsigned long'.
Eli Zaretskii <eliz@gnu.org>
parents:
68651
diff
changeset
|
52 #define PIX_TYPE unsigned long |
| 9572 | 53 #define XDISPLAY |
| 54 | |
|
97661
e4a283c4bc1c
Remove definition of struct x_display_info and struct x_output.
Eli Zaretskii <eliz@gnu.org>
parents:
94994
diff
changeset
|
55 typedef struct tty_display_info Display_Info; |
| 27018 | 56 |
|
97661
e4a283c4bc1c
Remove definition of struct x_display_info and struct x_output.
Eli Zaretskii <eliz@gnu.org>
parents:
94994
diff
changeset
|
57 extern struct tty_display_info the_only_display_info; |
| 9572 | 58 |
| 59 #define FRAME_X_DISPLAY(f) ((Display *) 0) | |
|
97661
e4a283c4bc1c
Remove definition of struct x_display_info and struct x_output.
Eli Zaretskii <eliz@gnu.org>
parents:
94994
diff
changeset
|
60 #define FRAME_FONT(f) ((f)->output_data.tty->font) |
|
e4a283c4bc1c
Remove definition of struct x_display_info and struct x_output.
Eli Zaretskii <eliz@gnu.org>
parents:
94994
diff
changeset
|
61 #define FRAME_X_DISPLAY_INFO(f) (&the_only_display_info) |
|
27957
5210a97b3ac7
(FRAME_INTERNAL_BORDER_WIDTH): Define to zero.
Eli Zaretskii <eliz@gnu.org>
parents:
27463
diff
changeset
|
62 |
|
21784
8de4e2a8cc62
[!HAVE_X_WINDOWS]: Add a dummy typedef for XRectangle
Eli Zaretskii <eliz@gnu.org>
parents:
15386
diff
changeset
|
63 /* Prototypes. */ |
|
8de4e2a8cc62
[!HAVE_X_WINDOWS]: Add a dummy typedef for XRectangle
Eli Zaretskii <eliz@gnu.org>
parents:
15386
diff
changeset
|
64 |
|
8de4e2a8cc62
[!HAVE_X_WINDOWS]: Add a dummy typedef for XRectangle
Eli Zaretskii <eliz@gnu.org>
parents:
15386
diff
changeset
|
65 /* Forward declarations for prototypes. */ |
|
8de4e2a8cc62
[!HAVE_X_WINDOWS]: Add a dummy typedef for XRectangle
Eli Zaretskii <eliz@gnu.org>
parents:
15386
diff
changeset
|
66 struct frame; |
|
8de4e2a8cc62
[!HAVE_X_WINDOWS]: Add a dummy typedef for XRectangle
Eli Zaretskii <eliz@gnu.org>
parents:
15386
diff
changeset
|
67 struct window; |
|
25111
36169f5d88da
Remove redundant declarations (most of them are now in
Eli Zaretskii <eliz@gnu.org>
parents:
21784
diff
changeset
|
68 |
|
36169f5d88da
Remove redundant declarations (most of them are now in
Eli Zaretskii <eliz@gnu.org>
parents:
21784
diff
changeset
|
69 /* Defined in xfns.c; emulated on msdos.c */ |
|
21784
8de4e2a8cc62
[!HAVE_X_WINDOWS]: Add a dummy typedef for XRectangle
Eli Zaretskii <eliz@gnu.org>
parents:
15386
diff
changeset
|
70 |
| 109099 | 71 extern void x_set_menu_bar_lines (struct frame *, Lisp_Object, Lisp_Object); |
| 72 extern int x_pixel_width (struct frame *); | |
| 73 extern int x_pixel_height (struct frame *); | |
|
21784
8de4e2a8cc62
[!HAVE_X_WINDOWS]: Add a dummy typedef for XRectangle
Eli Zaretskii <eliz@gnu.org>
parents:
15386
diff
changeset
|
74 |
| 9572 | 75 #define XFreeGC (void) |
| 76 #define x_destroy_bitmap(p1,p2) | |
| 77 #define XGetGeometry(p1,p2,p3,p4,p5,p6,p7,p8,p9) | |
|
51202
62a7506ec831
(struct x_output): Remove members left_pos, top_pos,
Kim F. Storm <storm@cua.dk>
parents:
50247
diff
changeset
|
78 #define DisplayWidth(p1,p2) (SELECTED_FRAME()->text_cols) |
|
62a7506ec831
(struct x_output): Remove members left_pos, top_pos,
Kim F. Storm <storm@cua.dk>
parents:
50247
diff
changeset
|
79 #define DisplayHeight(p1,p2) (SELECTED_FRAME()->text_lines) |
| 9572 | 80 #define XMenuSetAEQ (void) |
| 81 #define XMenuSetFreeze (void) | |
| 82 #define XMenuRecompute (void) | |
| 83 #define FONT_WIDTH(foo) 1 | |
| 84 #define XM_FAILURE -1 | |
| 85 #define XM_SUCCESS 1 | |
| 86 #define XM_NO_SELECT 2 | |
| 87 #define XM_IA_SELECT 3 | |
| 88 #define ButtonReleaseMask 0 | |
| 89 | |
| 90 typedef struct x_menu_struct | |
| 91 { | |
| 92 int count; | |
| 93 char **text; | |
| 94 struct x_menu_struct **submenu; | |
| 95 int *panenumber; /* Also used as enable. */ | |
| 96 int allocated; | |
| 97 int panecount; | |
| 98 int width; | |
|
27463
6e3d60350319
Change prototypes of XMenuAddSelection and XMenuActivate.
Eli Zaretskii <eliz@gnu.org>
parents:
27018
diff
changeset
|
99 char **help_text; |
| 9572 | 100 } XMenu; |
| 101 | |
|
10503
4d94f31dc555
(x_mouse_leave): Add neutralizing define.
Richard M. Stallman <rms@gnu.org>
parents:
9572
diff
changeset
|
102 XMenu *XMenuCreate (Display *, Window, char *); |
|
4d94f31dc555
(x_mouse_leave): Add neutralizing define.
Richard M. Stallman <rms@gnu.org>
parents:
9572
diff
changeset
|
103 int XMenuAddPane (Display *, XMenu *, char *, int); |
|
27463
6e3d60350319
Change prototypes of XMenuAddSelection and XMenuActivate.
Eli Zaretskii <eliz@gnu.org>
parents:
27018
diff
changeset
|
104 int XMenuAddSelection (Display *, XMenu *, int, int, char *, int, char *); |
|
10503
4d94f31dc555
(x_mouse_leave): Add neutralizing define.
Richard M. Stallman <rms@gnu.org>
parents:
9572
diff
changeset
|
105 void XMenuLocate (Display *, XMenu *, int, int, int, int, |
|
4d94f31dc555
(x_mouse_leave): Add neutralizing define.
Richard M. Stallman <rms@gnu.org>
parents:
9572
diff
changeset
|
106 int *, int *, int *, int *); |
|
27463
6e3d60350319
Change prototypes of XMenuAddSelection and XMenuActivate.
Eli Zaretskii <eliz@gnu.org>
parents:
27018
diff
changeset
|
107 int XMenuActivate (Display *, XMenu *, int *, int *, int, int, unsigned, |
|
30340
be29e15ece0e
(XMenuActivate): Update prototype.
Eli Zaretskii <eliz@gnu.org>
parents:
29611
diff
changeset
|
108 char **, void (*callback)(char *, int, int)); |
|
10503
4d94f31dc555
(x_mouse_leave): Add neutralizing define.
Richard M. Stallman <rms@gnu.org>
parents:
9572
diff
changeset
|
109 void XMenuDestroy (Display *, XMenu *); |
|
4d94f31dc555
(x_mouse_leave): Add neutralizing define.
Richard M. Stallman <rms@gnu.org>
parents:
9572
diff
changeset
|
110 |
| 9572 | 111 #endif /* not HAVE_X_WINDOWS */ |
| 112 | |
|
29611
f39e60352427
(EMACS_MSDOS_H): Renamed from MSDOS_H_.
Eli Zaretskii <eliz@gnu.org>
parents:
29557
diff
changeset
|
113 #endif /* not EMACS_MSDOS_H */ |
| 52401 | 114 |
| 115 /* arch-tag: ad21eeed-8fdb-4357-8007-36368a6bdbf3 | |
| 116 (do not change this comment) */ |
