BeOS graphics support, use with: ./configure --prefix=$HOME/config --without-x --enable-utf-8 --enable-graphics beres -o links-beos.rsrc links-beos.rdef make && xres -o links links-beos.rsrc && mimeset links Francois Revol, revol@free.fr diff -urN links-2.1pre33.org/Makefile.am links-2.1pre33/Makefile.am --- links-2.1pre33.org/Makefile.am Tue Dec 25 02:43:02 2007 +++ links-2.1pre33/Makefile.am Sat May 3 21:32:48 2008 @@ -4,7 +4,7 @@ man_MANS=links.1 -EXTRA_DIST=atheos.cpp $(man_MANS) BRAILLE_HOWTO KEYS BUGS TODO SITES PATCH-gpm-1.20.0-smooth-cursor PATCH-libpng-1.2.18 mailcap.pl rebuild Links_logo.png Unicode/*.cp Unicode/[!C]* intl/[!C]* graphics/*.c graphics/arrow.png graphics/gen graphics/system_font/*.png graphics/font/century_school-medium-roman-serif-vari/*.png graphics/font/century_school-bold-roman-serif-vari/*.png graphics/font/symbol-medium-roman-sans-vari/*.png graphics/font/courier-medium-roman-serif-mono/*.png graphics/font/japanese-medium-roman-sans-mono/*.png graphics/font/century_school-bold-roman-serif-vari/aliases graphics/font/century_school-medium-roman-serif-vari/aliases graphics/font/symbol-medium-roman-sans-vari/aliases doc/links_cal/*.png doc/links_cal/*.html graphics/Makefile graphics/Fontmap graphics/clip.c graphics/links.xpm graphics/makefont graphics/pdf2html graphics/spacer.png links_16x16_1.xpm links_16x16_2.xpm links_32x32.xpm links.nsi +EXTRA_DIST=atheos.cpp beosgui.cpp $(man_MANS) BRAILLE_HOWTO KEYS BUGS TODO SITES PATCH-gpm-1.20.0-smooth-cursor PATCH-libpng-1.2.18 mailcap.pl rebuild Links_logo.png Unicode/*.cp Unicode/[!C]* intl/[!C]* graphics/*.c graphics/arrow.png graphics/gen graphics/system_font/*.png graphics/font/century_school-medium-roman-serif-vari/*.png graphics/font/century_school-bold-roman-serif-vari/*.png graphics/font/symbol-medium-roman-sans-vari/*.png graphics/font/courier-medium-roman-serif-mono/*.png graphics/font/japanese-medium-roman-sans-mono/*.png graphics/font/century_school-bold-roman-serif-vari/aliases graphics/font/century_school-medium-roman-serif-vari/aliases graphics/font/symbol-medium-roman-sans-vari/aliases doc/links_cal/*.png doc/links_cal/*.html graphics/Makefile graphics/Fontmap graphics/clip.c graphics/links.xpm graphics/makefont graphics/pdf2html graphics/spacer.png links_16x16_1.xpm links_16x16_2.xpm links_32x32.xpm links.nsi links-beos.rdef bin_PROGRAMS=links @@ -13,6 +13,11 @@ else endif +if BEOS_GR +links_LDADD=beosgui.o -lbe +else +endif + links_SOURCES=af_unix.c auth.c beos.c bfu.c block.c bookmarks.c cache.c charsets.c connect.c cookies.c default.c dip.c directfb.c directfb_cursors.h dither.c dns.c drivers.c error.c file.c finger.c font_include.c framebuffer.c ftp.c gif.c html.c html_gr.c html_r.c html_tbl.c http.c https.c img.c imgcache.c jpeg.c jsint.c kbd.c language.c links_icon.c listedit.c lru.c mailto.c main.c menu.c memory.c objreq.c os_dep.c pmshell.c png.c sched.c select.c session.c smb.c svgalib.c terminal.c tiff.c types.c url.c view.c view_gr.c x.c xbm.c links.h cfg.h os_dep.h os_depx.h setup.h codepage.h language.h codepage.inc entity.inc uni_7b.inc language.inc upcase.inc arrow.inc bits.h dist-hook: @@ -31,7 +36,12 @@ CXXFLAGS=@CXXFLAGS@ atheos.o: atheos.cpp - $(CXX) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -c atheos.cpp + $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -o $@ -c $< + +beosgui.o: beosgui.cpp + $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) -o $@ -c $< + + datadir = $(prefix)/@DATADIRNAME@ LIBS = @LIBS@ diff -urN links-2.1pre33.org/acconfig.h links-2.1pre33/acconfig.h --- links-2.1pre33.org/acconfig.h Wed Mar 21 17:20:21 2007 +++ links-2.1pre33/acconfig.h Sat May 3 18:30:26 2008 @@ -113,6 +113,9 @@ #undef GRDRV_ATHEOS /* */ +#undef GRDRV_BEOS + +/* */ #undef DONT_INCLUDE_SETJMP /* Tiff by Brain */ diff -urN links-2.1pre33.org/atheos.cpp links-2.1pre33/atheos.cpp --- links-2.1pre33.org/atheos.cpp Fri Oct 22 21:11:31 2004 +++ links-2.1pre33/atheos.cpp Sat May 3 18:30:27 2008 @@ -207,7 +207,7 @@ win->Unlock(); ath_lock->Lock(); win->Lock(); - if (dev) dev->mouse_handler(dev, last_x = (int)p.x, last_y = (int)p.y, B_DOWN | (b == 2 ? B_RIGHT : b == 3 ? B_MIDDLE : B_LEFT)); + if (dev) dev->mouse_handler(dev, last_x = (int)p.x, last_y = (int)p.y, BTN_DOWN | (b == 2 ? BTN_RIGHT : b == 3 ? BTN_MIDDLE : BTN_LEFT)); ath_lock->Unlock(); write(wpipe, " ", 1); } @@ -217,7 +217,7 @@ win->Unlock(); ath_lock->Lock(); win->Lock(); - if (dev) dev->mouse_handler(dev, last_x = (int)p.x, last_y = (int)p.y, B_UP | (b == 2 ? B_RIGHT : b == 3 ? B_MIDDLE : B_LEFT)); + if (dev) dev->mouse_handler(dev, last_x = (int)p.x, last_y = (int)p.y, BTN_UP | (b == 2 ? BTN_RIGHT : b == 3 ? BTN_MIDDLE : BTN_LEFT)); ath_lock->Unlock(); write(wpipe, " ", 1); } @@ -227,7 +227,7 @@ win->Unlock(); ath_lock->Lock(); win->Lock(); - if (dev) dev->mouse_handler(dev, last_x = (int)p.x, last_y = (int)p.y, !b ? B_MOVE : B_DRAG | (b & 1 ? B_LEFT : b & 2 ? B_RIGHT : b & 4 ? B_MIDDLE : B_LEFT)); + if (dev) dev->mouse_handler(dev, last_x = (int)p.x, last_y = (int)p.y, !b ? BTN_MOVE : BTN_DRAG | (b & 1 ? BTN_LEFT : b & 2 ? BTN_RIGHT : b & 4 ? BTN_MIDDLE : BTN_LEFT)); ath_lock->Unlock(); write(wpipe, " ", 1); } @@ -237,8 +237,8 @@ win->Unlock(); ath_lock->Lock(); win->Lock(); - if (d.y) if (dev) dev->mouse_handler(dev, last_x, last_y, B_MOVE | (d.y > 0 ? B_WHEELDOWN : B_WHEELUP)); - if (d.x) if (dev) dev->mouse_handler(dev, last_x, last_y, B_MOVE | (d.x < 0 ? B_WHEELLEFT : B_WHEELRIGHT)); + if (d.y) if (dev) dev->mouse_handler(dev, last_x, last_y, BTN_MOVE | (d.y > 0 ? BTN_WHEELDOWN : BTN_WHEELUP)); + if (d.x) if (dev) dev->mouse_handler(dev, last_x, last_y, BTN_MOVE | (d.x < 0 ? BTN_WHEELLEFT : BTN_WHEELRIGHT)); ath_lock->Unlock(); write(wpipe, " ", 1); } diff -urN links-2.1pre33.org/beos.c links-2.1pre33/beos.c --- links-2.1pre33.org/beos.c Mon Sep 11 04:39:14 2006 +++ links-2.1pre33/beos.c Sat May 3 21:08:27 2008 @@ -11,8 +11,9 @@ #include #include #include +#include #include -#include +#include #define SHS 128 @@ -20,6 +21,42 @@ #define MAXINT 0x7fffffff #endif +extern int ggr; + +#ifdef __cplusplus +extern "C" { +int get_input_handle(); +void unblock_stdin(); +void block_stdin(); +} +#endif + +void maybe_force_gr(void) +{ + struct stat stn, stin, stout; + /* + * if stdin and out are /dev/null it's likely + * we have been started from the gui... + */ + if (lstat("/dev/null", &stn) < 0) + return; + if (fstat(0, &stin) < 0) + return; + if (fstat(1, &stout) < 0) + return; + if (stin.st_dev != stn.st_dev) + return; + if (stout.st_dev != stn.st_dev) + return; + if (stin.st_ino != stn.st_ino) + return; + if (stout.st_ino != stn.st_ino) + return; + ggr = 1; +} + +#if IPPROTO_TCP != 6 + int be_read(int s, void *ptr, int len) { if (s >= SHS) return recv(s - SHS, ptr, len, 0); @@ -90,6 +127,10 @@ #define PIPE_RETRIES 10 +#ifndef PF_INET +#define PF_INET AF_INET +#endif + int be_pipe(int *fd) { int s1, s2, s3, l; @@ -249,5 +290,22 @@ } return h = ohpipe[1]; }*/ + +#else /* IPPROTO_TCP != 6 */ + +void block_stdin() +{ +} + +void unblock_stdin() +{ +} + +int get_input_handle() +{ + return 0; +} + +#endif #endif diff -urN links-2.1pre33.org/beosgui.cpp links-2.1pre33/beosgui.cpp --- links-2.1pre33.org/beosgui.cpp Thu Jan 1 01:00:00 1970 +++ links-2.1pre33/beosgui.cpp Sat May 3 23:27:52 2008 @@ -0,0 +1,884 @@ +/* beos.c + * (c) 2007 François Revol + * This file is a part of the Links program, released under GPL + */ + +#ifdef __BEOS__ + +#include +#include +#include +#include +#include +#include +#include +#include + +/* + * GUI code + */ + +/* + * TODO: + * - BeOS doesn't handle BView::DrawBitmap() with RGB24, and links doesn't seem to handle RGB32, + * so the colorspace is forced into 16bpp for now. + * - more paste handling ? + * - more DnD (maybe check if in menu or not and prepend "g" ?) + * - handle DnD of Net+ bookmarks + */ + +#include "cfg.h" + +#ifdef GRDRV_BEOS + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +extern "C" { +#include "links.h" +} + +//#define DBG(l...) fprintf(stderr, l); +#define DBG(l...) {} + +/* +#ifdef debug +#undef debug +#endif +#define debug(x) +#define fprintf(x, y) +*/ + +extern struct graphics_driver beos_driver; + +class LinksApplication : public BApplication { + public: + LinksApplication():BApplication("application/x-vnd.links"){} + virtual void RefsReceived(BMessage *message); + virtual bool QuitRequested(); +}; + +class LinksView; + +class LinksWindow : public BWindow { + public: + LinksWindow(BRect r); + ~LinksWindow(); + virtual void FrameResized(float width, float height); + virtual bool QuitRequested(); + int resized; + LinksView *view; +}; + +class LinksView : public BView { + public: + LinksView(LinksWindow *w); + ~LinksView(); + virtual void Draw(BRect r); + virtual void MouseDown(BPoint p); + virtual void MouseUp(BPoint p); + virtual void MouseMoved(BPoint p, uint32 transit, const BMessage *dragmsg); + virtual void KeyDown(const char *s, int32 numBytes); + virtual void MessageReceived(BMessage *msg); + LinksWindow *win; + struct graphics_device *dev; + void d_flush(); + int flushing; + int last_x, last_y; +}; + +#define lv(dev) ((LinksView *)(dev)->driver_data) + +#define lock_dev(dev) do { if (!lv(dev)->win->Lock()) return; } while (0) +#define lock_dev0(dev) do { if (!lv(dev)->win->Lock()) return 0; } while (0) +#define unlock_dev(dev) do { lv(dev)->win->Unlock(); } while (0) + +void be_get_size(struct graphics_device *dev); + +#define detach_message(dev) \ + BMessage *current = Looper()->DetachCurrentMessage(); \ + if (current) { \ + current->AddPointer("linksdev", dev); \ + } + +#define pipe_message(dev) \ + if (current) { \ + write(wpipe, ¤t, sizeof(current)); \ + } + +#define detach_and_pipe_message(dev) do { \ + BMessage *current = Looper()->DetachCurrentMessage(); \ + if (current) { \ + current->AddPointer("linksdev", dev); \ + write(wpipe, ¤t, sizeof(current)); \ + } \ +} while (0) + +LinksApplication *be_links_app; +BLocker *be_lock = NULL; + +int msg_pipe[2]; + +thread_id be_app_thread_id; + +#define rpipe (msg_pipe[0]) +#define wpipe (msg_pipe[1]) + +#define small_color (sizeof(rgb_color) <= sizeof(long)) +#define get_color32(c, rgb) rgb_color c((rgb_color){(rgb >> 16) & 255, (rgb >> 8) & 255, rgb & 255, 255}) + +color_space be_cs_desktop, be_cs_bmp; + +int be_x_size, be_y_size; + +int be_win_x_size, be_win_y_size; +int be_win_x_pos, be_win_y_pos; + +static BMessage *initial_refs_msg; + +void LinksApplication::RefsReceived(BMessage *message) +{ + entry_ref ref; + //if (!IsLaunching()) + // return; + BMessenger msgr(WindowAt(0)); + BMessage *m = new BMessage(*message); + m->AddSpecifier("View", (long)0); + //m->what = B_SIMPLE_DATA; + if (msgr.IsValid()) { + msgr.SendMessage(m); + } else + initial_refs_msg = m; +} + +bool LinksApplication::QuitRequested() +{ + BApplication::QuitRequested(); + //printf("qc: %ld\n", CountWindows()); + return true; +} + +LinksWindow::LinksWindow(BRect r):BWindow(r, "Links", B_DOCUMENT_WINDOW, 0) +{ + DBG("LINKSWINDOW\n"); + resized = 0; + view = NULL; +} + +LinksWindow::~LinksWindow() +{ + view = NULL; + DBG("~LINKSWINDOW\n"); +} + +void LinksWindow::FrameResized(float width, float height) +{ + resized = 1; +} + +bool LinksWindow::QuitRequested() +{ + detach_and_pipe_message(view->dev); + return false; +} + +void do_flush(void *p_dev) +{ + struct graphics_device *dev = (struct graphics_device *)p_dev; + LinksView *v = lv(dev); + v->win->Lock(); + v->win->Flush(); + v->win->Unlock(); + v->flushing = 0; +} + +LinksView::LinksView(LinksWindow *w):BView(w->Bounds(), "Links", B_FOLLOW_ALL, B_WILL_DRAW | B_FULL_UPDATE_ON_RESIZE | B_NAVIGABLE) +{ + DBG("LINKSVIEW\n"); + (win = w)->AddChild(this); + SetViewColor(B_TRANSPARENT_32_BIT); + MakeFocus(); + w->view = this; + flushing = 0; + last_x = last_y = 0; +} + +LinksView::~LinksView() +{ + win->view = NULL; + DBG("~LINKSVIEW\n"); +} + +void LinksView::d_flush() +{ + if (flushing) return; + register_bottom_half(do_flush, this->dev); + flushing = 1; +} + +#undef select + +int be_loop_select(int n, fd_set *r, fd_set *w, fd_set *e, struct timeval *t) +{ + int v; + v = select(n, r, w, e, t); + check_bottom_halves(); + return v; +} + +void be_paste_string(struct graphics_device *dev, const char *str) +{ + unsigned char *s = (unsigned char *)str; + int c, i; + while (s && *s) { + GET_UTF_8(s, c); + if (dev) dev->keyboard_handler(dev, c, 0); + } +} + +void be_get_event(void *dummy) +{ + BMessage *msg; + LinksView *view = NULL; + LinksWindow *win = NULL; + struct graphics_device *dev; + read(rpipe, &msg, sizeof(msg)); + DBG("GETE\n"); + if (!msg) + return; + if (msg->FindPointer("linksdev", (void **)&dev) < B_OK) + return; + if (dev) { + view = lv(dev); + if (view) + win = dynamic_cast(view->Window()); + } + switch (msg->what) { + case B_QUIT_REQUESTED: + if (dev) + dev->keyboard_handler(dev, KBD_CTRL_C, 0); + break; + case _UPDATE_: + { + BRect r; + if (msg->FindRect("updateRect", &r) < B_OK) + return; + struct rect rr; + rr.x1 = (int)r.left; + rr.x2 = (int)r.right + 1; + rr.y1 = (int)r.top; + rr.y2 = (int)r.bottom + 1; + /*DBG("paint: %d %d %d %d\n", rr.x1, rr.x2, rr.y1, rr.y2);*/ + if (dev) { + if (!win->resized) dev->redraw_handler(dev, &rr); + else { + be_get_size(dev); + win->resized = 0; + dev->resize_handler(dev); + } + } + check_bottom_halves(); + } + break; + case B_MOUSE_DOWN: + { + BPoint where; + int32 buttons; + int btn = BTN_LEFT; + if (msg->FindInt32("buttons", &buttons) != B_OK) + return; + if (msg->FindPoint("where", &where) != B_OK) + return; + if (buttons & B_PRIMARY_MOUSE_BUTTON) + btn = BTN_LEFT; + else if (buttons & B_SECONDARY_MOUSE_BUTTON) + btn = BTN_RIGHT; + else if (buttons & B_TERTIARY_MOUSE_BUTTON) + btn = BTN_MIDDLE; + else if (buttons & (B_TERTIARY_MOUSE_BUTTON << 1)) + btn = BTN_FOURTH; + else if (buttons & (B_TERTIARY_MOUSE_BUTTON << 2)) + btn = BTN_FIFTH; + else if (buttons & (B_TERTIARY_MOUSE_BUTTON << 3)) + btn = BTN_SIXTH; + if (dev) dev->mouse_handler(dev, view->last_x = (int)where.x, view->last_y = (int)where.y, BTN_DOWN | btn); + } + break; + case B_MOUSE_UP: + { + BPoint where; + int32 buttons; + int btn = BTN_LEFT; + if (msg->FindInt32("buttons", &buttons) != B_OK) + return; + if (msg->FindPoint("where", &where) != B_OK) + return; + if (buttons & ~B_PRIMARY_MOUSE_BUTTON == 0) + btn = BTN_LEFT; + else if (buttons & ~B_SECONDARY_MOUSE_BUTTON == 0) + btn = BTN_RIGHT; + else if (buttons & ~B_TERTIARY_MOUSE_BUTTON == 0) + btn = BTN_MIDDLE; + else if (buttons & ~(B_TERTIARY_MOUSE_BUTTON << 1) == 0) + btn = BTN_FOURTH; + else if (buttons & ~(B_TERTIARY_MOUSE_BUTTON << 2) == 0) + btn = BTN_FIFTH; + else if (buttons & ~(B_TERTIARY_MOUSE_BUTTON << 3) == 0) + btn = BTN_SIXTH; + if (dev) dev->mouse_handler(dev, view->last_x = (int)where.x, view->last_y = (int)where.y, BTN_UP | btn); + } + break; + case B_MOUSE_MOVED: + { + BPoint where; + int32 buttons; + int btn = BTN_LEFT; + if (msg->FindInt32("buttons", &buttons) != B_OK) + return; + if (msg->FindPoint("where", &where) != B_OK) + return; + if (buttons & B_PRIMARY_MOUSE_BUTTON) + btn = BTN_LEFT; + else if (buttons & B_SECONDARY_MOUSE_BUTTON) + btn = BTN_RIGHT; + else if (buttons & B_TERTIARY_MOUSE_BUTTON) + btn = BTN_MIDDLE; + else if (buttons & (B_TERTIARY_MOUSE_BUTTON << 1)) + btn = BTN_FOURTH; + else if (buttons & (B_TERTIARY_MOUSE_BUTTON << 2)) + btn = BTN_FIFTH; + else if (buttons & (B_TERTIARY_MOUSE_BUTTON << 3)) + btn = BTN_SIXTH; + if (dev) dev->mouse_handler(dev, view->last_x = (int)where.x, view->last_y = (int)where.y, !buttons ? BTN_MOVE : BTN_DRAG | btn); + } + break; + case B_KEY_DOWN: + { + int32 modifiers; + int32 numBytes; + const char *bytes; + int c; + int mods = 0; + if (msg->FindInt32("modifiers", &modifiers) != B_OK) + return; + if (msg->FindString("bytes", &bytes) != B_OK) + return; + unsigned char buf[4] = { 0, 0, 0, 0 }; + unsigned char *ss; + if (modifiers & (B_LEFT_CONTROL_KEY | B_RIGHT_CONTROL_KEY | B_LEFT_COMMAND_KEY | B_RIGHT_COMMAND_KEY)) { + int32 raw; + if (msg->FindInt32("raw_char", &raw) != B_OK) + return; + buf[0] = (unsigned char)raw; + ss = buf; + } else + ss = (unsigned char *)bytes; + + GET_UTF_8(ss, c); + switch (c) { + case B_BACKSPACE: c = KBD_BS; break; + case B_ENTER: c = KBD_ENTER; break; + case B_SPACE: c = ' '; break; + case B_TAB: c = KBD_TAB; break; + case B_ESCAPE: c = KBD_ESC; break; + case B_LEFT_ARROW: c = KBD_LEFT; break; + case B_RIGHT_ARROW: c = KBD_RIGHT; break; + case B_UP_ARROW: c = KBD_UP; break; + case B_DOWN_ARROW: c = KBD_DOWN; break; + case B_INSERT: c = KBD_INS; break; + case B_DELETE: c = KBD_DEL; break; + case B_HOME: c = KBD_HOME; break; + case B_END: c = KBD_END; break; + case B_PAGE_UP: c = KBD_PAGE_UP; break; + case B_PAGE_DOWN: c = KBD_PAGE_DOWN; break; + default: if (c < 32) c = 0; + else modifiers &= ~(B_LEFT_SHIFT_KEY|B_RIGHT_SHIFT_KEY); + break; + } + if (modifiers & (B_LEFT_SHIFT_KEY|B_RIGHT_SHIFT_KEY)) + mods |= KBD_SHIFT; + if (modifiers & (B_LEFT_CONTROL_KEY|B_RIGHT_CONTROL_KEY)) + mods |= KBD_CTRL; + if (modifiers & (B_LEFT_COMMAND_KEY|B_RIGHT_COMMAND_KEY)) + mods |= KBD_ALT; + if (c) if (dev) dev->keyboard_handler(dev, c, mods); + } + break; + case B_MOUSE_WHEEL_CHANGED: + { + float delta_x, delta_y; + if (msg->FindFloat("be:wheel_delta_x", &delta_x) != B_OK) + delta_x = 0; + if (msg->FindFloat("be:wheel_delta_y", &delta_y) != B_OK) + delta_y = 0; + if (delta_y) if (dev) dev->mouse_handler(dev, view->last_x, view->last_y, BTN_MOVE | (delta_y > 0 ? BTN_WHEELDOWN : BTN_WHEELUP)); + if (delta_x) if (dev) dev->mouse_handler(dev, view->last_x, view->last_y, BTN_MOVE | (delta_x < 0 ? BTN_WHEELLEFT : BTN_WHEELRIGHT)); + } + break; + case B_PASTE: + if (be_clipboard->Lock()) { + BMessage *data = be_clipboard->Data(); + if (data) { + const char *text_plain; + ssize_t len; + //data->PrintToStream(); + if (data->FindData("text/plain", B_MIME_TYPE, (const void **)&text_plain, &len) == B_OK) { + be_paste_string(dev, text_plain); + } + } + be_clipboard->Unlock(); + } + break; + case B_REFS_RECEIVED: + if (dev) + be_paste_string(dev, "\033\ng"); + /* FALLTHROUGH */ + case B_SIMPLE_DATA: + { + /* something got dropped */ + entry_ref ref; + const char *text_plain; + ssize_t len; + //msg->PrintToStream(); + /* try find a file path to paste */ + if (msg->FindRef("refs", &ref) == B_OK) { + BPath path(&ref); + if (path.InitCheck() == B_OK) { + BFile f(path.Path(), B_READ_ONLY); + BString url; + if (f.InitCheck() == B_OK && f.ReadAttrString("META:url", &url) >= B_OK) { + be_paste_string(dev, url.String()); + } else + be_paste_string(dev, path.Path()); + } + } else if (msg->FindData("text/plain", B_MIME_TYPE, (const void **)&text_plain, &len) == B_OK) { + be_paste_string(dev, text_plain); + } + } + break; + default: + msg->PrintToStream(); + break; + } + delete msg; +} + +void be_get_size(struct graphics_device *dev) +{ + BRect r; + lock_dev(dev); + r = lv(dev)->Bounds(); + unlock_dev(dev); + dev->size.x1 = dev->size.y1 = 0; + dev->size.x2 = (int)r.Width() + 1; + dev->size.y2 = (int)r.Height() + 1; +} + +void LinksView::Draw(BRect r) +{ + detach_message(dev); + current->AddRect("updateRect", r); + pipe_message(dev); +} + + +void LinksView::MouseDown(BPoint p) +{ + detach_and_pipe_message(dev); +} + +void LinksView::MouseUp(BPoint p) +{ + detach_and_pipe_message(dev); +} + +void LinksView::MouseMoved(BPoint p, uint32 transit, const BMessage *dragmsg) +{ + detach_and_pipe_message(dev); +} + +void LinksView::MessageReceived(BMessage *msg) +{ + switch (msg->what) { + case B_REFS_RECEIVED: + case B_MOUSE_WHEEL_CHANGED: + case B_PASTE: + case B_SIMPLE_DATA: + detach_and_pipe_message(dev); + break; + default: + BView::MessageReceived(msg); + } +} + +void LinksView::KeyDown(const char *s, int32 numBytes) +{ + detach_and_pipe_message(dev); +} + +unsigned char *be_get_driver_param(void) +{ + return NULL; +} + +int32 be_app_thread(void *p) +{ + be_links_app->Lock(); + be_links_app->Run(); + delete be_links_app; + return 0; +} + +unsigned char *be_init_driver(unsigned char *param, unsigned char *display) +{ + be_links_app = new LinksApplication(); + if (!be_links_app) { + return stracpy((unsigned char *)"Unable to allocate Application object.\n"); + } + if (c_pipe(msg_pipe)) { + delete be_links_app; + return stracpy((unsigned char *)"Could not create pipe.\n"); + } + fcntl(rpipe, F_SETFL, O_NONBLOCK); + fcntl(wpipe, F_SETFL, O_NONBLOCK); + set_handlers(rpipe, be_get_event, NULL, NULL, NULL); + be_app_thread_id = spawn_thread(be_app_thread, "links_app", B_NORMAL_PRIORITY, NULL); + resume_thread(be_app_thread_id); + be_links_app->Unlock(); + be_cs_desktop = B_NO_COLOR_SPACE; + be_x_size = 640; + be_y_size = 480; + BScreen d; + if (d.IsValid()) { + be_cs_desktop = d.ColorSpace(); + be_x_size = (int)d.Frame().Width() + 1; + be_y_size = (int)d.Frame().Height() + 1; + } + be_win_y_size = be_y_size * 9 / 10; + be_win_x_size = be_win_y_size; + /* + DBG("%d %d\n", be_x_size, be_y_size); + DBG("%d %d\n", be_win_x_size, be_win_y_size); + */ + be_win_y_pos = (be_y_size - be_win_y_size) / 2; + be_win_x_pos = be_x_size - be_win_x_size - be_win_y_pos; + if (/*be_cs_desktop == B_RGB32 ||*/ be_cs_desktop == B_RGB24 || be_cs_desktop == B_RGB16 || be_cs_desktop == B_RGB15) + be_cs_bmp = be_cs_desktop; + else if (be_cs_desktop == B_RGB32 || be_cs_desktop == B_RGBA32) be_cs_bmp = B_RGB24; + else be_cs_bmp = B_RGB15; + be_cs_bmp = B_RGB16; // XXX: DEBUG + switch (be_cs_bmp) { + case B_RGB24: + beos_driver.depth = 0xc3; + break; + case B_RGB16: + beos_driver.depth = 0x82; + break; + case B_RGB15: + beos_driver.depth = 0x7a; + break; + default: + internal((unsigned char *)"unknown depth"); + } + return NULL; +} + +void be_shutdown_driver() +{ + status_t ret; + //debug((unsigned char *)"D"); + close(rpipe); + close(wpipe); + set_handlers(rpipe, NULL, NULL, NULL, NULL); + //debug((unsigned char *)"DD"); + be_links_app->PostMessage(B_QUIT_REQUESTED); + //debug((unsigned char *)"E"); + wait_for_thread(be_app_thread_id, &ret); + //debug((unsigned char *)"F"); +} + +struct graphics_device *be_init_device() +{ + LinksView *view; + LinksWindow *win; + struct graphics_device *dev = (struct graphics_device *)mem_calloc(sizeof(struct graphics_device)); + if (!dev) return NULL; + dev->drv = &beos_driver; + //debug((unsigned char *)"1"); + win = new LinksWindow(BRect(be_win_x_pos, be_win_y_pos, be_win_x_pos + be_win_x_size, be_win_y_pos + be_win_y_size)); + //debug((unsigned char *)"2"); + if (!win) { + mem_free(dev); + return NULL; + } + //debug((unsigned char *)"3"); + view = new LinksView(win); + if (!view) { + delete win; + mem_free(dev); + return NULL; + } + view->dev = dev; + dev->driver_data = view; + be_get_size(dev); + memcpy(&dev->clip, &dev->size, sizeof(struct rect)); + //debug((unsigned char *)"4"); + win->Show(); + win->Lock(); + view->MakeFocus(); + win->Unlock(); + //debug((unsigned char *)"5"); + if (initial_refs_msg) { + BMessenger msgr(win); + if (msgr.IsValid()) { + msgr.SendMessage(initial_refs_msg); + initial_refs_msg = NULL; + } + } + return dev; +} + +void be_shutdown_device(struct graphics_device *dev) +{ + LinksWindow *win = lv(dev)->win; + unregister_bottom_half(do_flush, dev); + lv(dev)->dev = NULL; + win->PostMessage(B_QUIT_REQUESTED); + mem_free(dev); +} + +void be_set_title(struct graphics_device *dev, unsigned char *title) +{ + LinksWindow *win = lv(dev)->win; + lock_dev(dev); + win->SetTitle((const char *)title); + lv(dev)->d_flush(); + unlock_dev(dev); +} + +/* +int be_get_filled_bitmap(struct bitmap *bmp, long color) +{ + internal((unsigned char *)"nedopsano"); + return 0; +} +*/ + +int be_get_empty_bitmap(struct bitmap *bmp) +{ + DBG("bmp\n"); +//DBG("bmp (%d, %d) cs %08x\n", bmp->x, bmp->y, be_cs_bmp); + BRect r(0, 0, bmp->x - 1, bmp->y - 1); + BBitmap *b = new BBitmap(r, /*B_RGB32*/be_cs_bmp); + if (!b) { + bmp->data = NULL; +DBG("%s: error 1\n", __FUNCTION__); + return 0; + } + if (!b->IsValid()) { + bmp->data = NULL; + delete b; +DBG("%s: error 2\n", __FUNCTION__); + return 0; + } + if (b->LockBits() < B_OK) { + bmp->data = NULL; + delete b; +DBG("%s: error 3\n", __FUNCTION__); + return 0; + } + bmp->data = b->Bits(); + bmp->skip = b->BytesPerRow(); + bmp->flags = b; +//DBG("bmp: data %p, skip %d, flags %p\n", bmp->data, bmp->skip, bmp->flags); + return 0; +} + +void be_register_bitmap(struct bitmap *bmp) +{ + BBitmap *b = (BBitmap *)bmp->flags; + b->UnlockBits(); +} + +void *be_prepare_strip(struct bitmap *bmp, int top, int lines) +{ + DBG("preps\n"); + BBitmap *b = (BBitmap *)bmp->flags; + if (b->LockBits() < B_OK) + return NULL; + bmp->data = b->Bits(); + bmp->skip = b->BytesPerRow(); + return ((char *)bmp->data) + bmp->skip * top; +} + +void be_commit_strip(struct bitmap *bmp, int top, int lines) +{ + BBitmap *b = (BBitmap *)bmp->flags; + b->UnlockBits(); +} + +void be_unregister_bitmap(struct bitmap *bmp) +{ + DBG("unb\n"); + BBitmap *b = (BBitmap *)bmp->flags; + delete b; +} + +void be_draw_bitmap(struct graphics_device *dev, struct bitmap *bmp, int x, int y) +{ + DBG("drawb\n"); + BBitmap *b = (BBitmap *)bmp->flags; + lock_dev(dev); + lv(dev)->DrawBitmap(b, b->Bounds(), BRect(x, y, x + bmp->x - 1, y + bmp->y - 1)); + lv(dev)->d_flush(); + unlock_dev(dev); +} + +void be_draw_bitmaps(struct graphics_device *dev, struct bitmap **bmp, int n, int x, int y) +{ + LinksView *lvv = lv(dev); + lock_dev(dev); + while (n--) { + BBitmap *b = (BBitmap *)(*bmp)->flags; + lvv->DrawBitmap(b, b->Bounds(), BRect(x, y, x + (*bmp)->x, y + (*bmp)->y)); + x += (*bmp)->x; + bmp++; + } + lv(dev)->d_flush(); + unlock_dev(dev); +} + +long be_get_color(int rgb) +{ + if (small_color) { + get_color32(c, rgb); + return *(long *)(void *)&c; + } else return rgb & 0xffffff; +} + +void be_fill_area(struct graphics_device *dev, int x1, int y1, int x2, int y2, long color) +{ + DBG("fill\n"); + if (x1 >= x2 || y1 >= y2) return; + lock_dev(dev); + if (small_color) + lv(dev)->SetHighColor(*(rgb_color *)(void *)&color); + else + lv(dev)->SetHighColor(get_color32(, color)); + lv(dev)->FillRect(BRect(x1, y1, x2 - 1, y2 - 1)); + lv(dev)->d_flush(); + unlock_dev(dev); +} + +void be_draw_hline(struct graphics_device *dev, int x1, int y, int x2, long color) +{ + DBG("hline\n"); + if (x1 >= x2) return; + lock_dev(dev); + if (small_color) + lv(dev)->SetHighColor(*(rgb_color *)(void *)&color); + else + lv(dev)->SetHighColor(get_color32(, color)); + lv(dev)->StrokeLine(BPoint(x1, y), BPoint(x2 - 1, y)); + lv(dev)->d_flush(); + unlock_dev(dev); +} + +void be_draw_vline(struct graphics_device *dev, int x, int y1, int y2, long color) +{ + DBG("vline\n"); + if (y1 >= y2) return; + lock_dev(dev); + if (small_color) + lv(dev)->SetHighColor(*(rgb_color *)(void *)&color); + else + lv(dev)->SetHighColor(get_color32(, color)); + lv(dev)->StrokeLine(BPoint(x, y1), BPoint(x, y2 - 1)); + lv(dev)->d_flush(); + unlock_dev(dev); +} + +int be_hscroll(struct graphics_device *dev, struct rect_set **ignore, int sc) +{ + DBG("hscroll\n"); + if (dev->clip.x1 >= dev->clip.x2 || dev->clip.y1 >= dev->clip.y2) return 0; + if (sc <= dev->clip.x1 - dev->clip.x2) return 1; + if (sc >= dev->clip.x2 - dev->clip.x1) return 1; + lock_dev0(dev); + if (sc > 0) lv(dev)->CopyBits(BRect(dev->clip.x1, dev->clip.y1, dev->clip.x2 - sc - 1, dev->clip.y2 - 1), BRect(dev->clip.x1 + sc, dev->clip.y1, dev->clip.x2 - 1, dev->clip.y2 - 1)); + else lv(dev)->CopyBits(BRect(dev->clip.x1 - sc, dev->clip.y1, dev->clip.x2 - 1, dev->clip.y2 - 1), BRect(dev->clip.x1, dev->clip.y1, dev->clip.x2 + sc - 1, dev->clip.y2 - 1)); + lv(dev)->d_flush(); + unlock_dev(dev); + return 1; +} + +int be_vscroll(struct graphics_device *dev, struct rect_set **ignore, int sc) +{ + DBG("vscroll\n"); + if (!sc || dev->clip.x1 >= dev->clip.x2 || dev->clip.y1 >= dev->clip.y2) return 0; + if (sc <= dev->clip.y1 - dev->clip.y2) return 1; + if (sc >= dev->clip.y2 - dev->clip.y1) return 1; + lock_dev0(dev); + if (sc > 0) lv(dev)->CopyBits(BRect(dev->clip.x1, dev->clip.y1, dev->clip.x2 - 1, dev->clip.y2 - sc - 1), BRect(dev->clip.x1, dev->clip.y1 + sc, dev->clip.x2 - 1, dev->clip.y2 - 1)); + else lv(dev)->CopyBits(BRect(dev->clip.x1, dev->clip.y1 - sc, dev->clip.x2 - 1, dev->clip.y2 - 1), BRect(dev->clip.x1, dev->clip.y1, dev->clip.x2 - 1, dev->clip.y2 + sc - 1)); + lv(dev)->d_flush(); + unlock_dev(dev); + return 1; +} + +void be_set_clip_area(struct graphics_device *dev, struct rect *r) +{ + DBG("setc\n"); + memcpy(&dev->clip, r, sizeof(struct rect)); + lock_dev(dev); + BRegion clip(BRect(r->x1, r->y1, r->x2 - 1, r->y2 - 1)); + lv(dev)->ConstrainClippingRegion(&clip); + unlock_dev(dev); +} + +struct graphics_driver beos_driver = { + (unsigned char *)"beos", + be_init_driver, + be_init_device, + be_shutdown_device, + be_shutdown_driver, + be_get_driver_param, + be_get_empty_bitmap, + /*be_get_filled_bitmap,*/ + be_register_bitmap, + be_prepare_strip, + be_commit_strip, + be_unregister_bitmap, + be_draw_bitmap, + be_draw_bitmaps, + be_get_color, + be_fill_area, + be_draw_hline, + be_draw_vline, + be_hscroll, + be_vscroll, + be_set_clip_area, + dummy_block, + dummy_unblock, + be_set_title, + NULL, /* exec */ + 0, /* depth */ + 0, 0, /* size */ + 0, /* flags */ + 0, /* codepage */ + NULL, /* shell */ +}; + +#endif /* GRDRV_BEOS */ + +#endif diff -urN links-2.1pre33.org/bfu.c links-2.1pre33/bfu.c --- links-2.1pre33.org/bfu.c Fri Dec 28 07:39:58 2007 +++ links-2.1pre33/bfu.c Sat May 3 18:30:29 2008 @@ -466,7 +466,7 @@ draw_to_window(win, (void (*)(struct terminal *, void *))gf_val(display_menu_txt, display_menu_gfx), menu); break; case EV_MOUSE: - if ((ev->b & BM_ACT) == B_MOVE) break; + if ((ev->b & BM_ACT) == BTN_MOVE) break; if (ev->x < menu->x || ev->x >= menu->x+menu->xw || ev->y < menu->y || ev->y >= menu->y+menu->yw) { int f = 1; for (w1 = win; (void *)w1 != &win->term->windows; w1 = w1->next) { @@ -490,7 +490,7 @@ if (ev->x > m1->x && ev->x < m1->x+m1->xw-1 && ev->y > m1->y && ev->y < m1->y+m1->yw-1) goto del; f--; } - if ((ev->b & BM_ACT) == B_DOWN) goto del; + if ((ev->b & BM_ACT) == BTN_DOWN) goto del; bbb:; } else { if (!(ev->x < menu->x || ev->x >= menu->x+menu->xw || ev->y < menu->y + gf_val(1, G_MENU_TOP_BORDER) || ev->y >= menu->y + menu->yw - gf_val(1, G_MENU_TOP_BORDER))) { @@ -502,7 +502,7 @@ scroll_menu(menu, 0); draw_to_window(win, (void (*)(struct terminal *, void *))gf_val(display_menu_txt, display_menu_gfx), menu); menu_oldview = menu_oldsel = -1; - if ((ev->b & BM_ACT) == B_UP/* || menu->items[s].in_m*/) select_menu(win->term, menu); + if ((ev->b & BM_ACT) == BTN_UP/* || menu->items[s].in_m*/) select_menu(win->term, menu); } } } @@ -686,8 +686,8 @@ draw_to_window(win, (void (*)(struct terminal *, void *))display_mainmenu, menu); break; case EV_MOUSE: - if ((ev->b & BM_ACT) == B_MOVE) break; - if ((ev->b & BM_ACT) == B_DOWN && ev->y >= gf_val(1, G_BFU_FONT_SIZE)) delete_window_ev(win, ev); + if ((ev->b & BM_ACT) == BTN_MOVE) break; + if ((ev->b & BM_ACT) == BTN_DOWN && ev->y >= gf_val(1, G_BFU_FONT_SIZE)) delete_window_ev(win, ev); else if (ev->y < gf_val(1, G_BFU_FONT_SIZE)) { int i; int p = gf_val(2, G_MAINMENU_LEFT_BORDER); @@ -698,7 +698,7 @@ if (ev->x >= o && ev->x < p) { menu->selected = i; draw_to_window(win, (void (*)(struct terminal *, void *))display_mainmenu, menu); - if ((ev->b & BM_ACT) == B_UP || menu->items[s].in_m) select_mainmenu(win->term, menu); + if ((ev->b & BM_ACT) == BTN_UP || menu->items[s].in_m) select_mainmenu(win->term, menu); break; } } @@ -1019,7 +1019,7 @@ dlg->selected = di - dlg->items; x_display_dlg_item(dlg, di, 1); } - if ((ev->b & BM_ACT) == B_UP) dlg_select_item(dlg, di); + if ((ev->b & BM_ACT) == BTN_UP) dlg_select_item(dlg, di); return 1; case D_FIELD: case D_FIELD_PASS: @@ -1054,7 +1054,7 @@ dlg->selected = di - dlg->items; x_display_dlg_item(dlg, di, 1); } - if ((ev->b & BM_ACT) == B_UP) dlg_select_item(dlg, di); + if ((ev->b & BM_ACT) == BTN_UP) dlg_select_item(dlg, di); return 1; } return 0; @@ -1193,9 +1193,9 @@ draw_to_window(dlg->win, (void (*)(struct terminal *, void *))redraw_dialog, dlg); break; case EV_MOUSE: - if ((ev->b & BM_ACT) == B_MOVE) break; + if ((ev->b & BM_ACT) == BTN_MOVE) break; for (i = 0; i < dlg->n; i++) if (dlg_mouse(dlg, &dlg->items[i], ev)) break; - if ((ev->b & BM_ACT) == B_DOWN && (ev->b & BM_BUTT) == B_MIDDLE) { + if ((ev->b & BM_ACT) == BTN_DOWN && (ev->b & BM_BUTT) == BTN_MIDDLE) { di = &dlg->items[dlg->selected]; /* don't delete this!!! it's here because of jump from mouse event */ if (di->item->type == D_FIELD || di->item->type == D_FIELD_PASS) goto clipbd_paste; } @@ -1388,9 +1388,9 @@ goto bla; } if (ev->x == KBD_ENTER) for (i = 0; i < dlg->n; i++) - if (dlg->dlg->items[i].type == D_BUTTON && dlg->dlg->items[i].gid & B_ENTER) goto sel; + if (dlg->dlg->items[i].type == D_BUTTON && dlg->dlg->items[i].gid & BTN_ENTER) goto sel; if (ev->x == KBD_ESC) for (i = 0; i < dlg->n; i++) - if (dlg->dlg->items[i].type == D_BUTTON && dlg->dlg->items[i].gid & B_ESC) goto sel; + if (dlg->dlg->items[i].type == D_BUTTON && dlg->dlg->items[i].gid & BTN_ESC) goto sel; if (((ev->x == KBD_TAB && !ev->y) || ev->x == KBD_DOWN || ev->x == KBD_RIGHT) && (dlg->n > 1 || term->spec->braille)) { if (term->spec->braille) dlg->brl_y = dlg->items[0].y - 3; x_display_dlg_item(dlg, &dlg->items[dlg->selected], 0); @@ -1426,11 +1426,11 @@ unsigned char *end; double d = strtod(di->cdata, (char **)(void *)&end); if (!*di->cdata || *end) { - msg_box(dlg->win->term, NULL, TEXT(T_BAD_NUMBER), AL_CENTER, TEXT(T_NUMBER_EXPECTED), NULL, 1, TEXT(T_CANCEL), NULL, B_ENTER | B_ESC); + msg_box(dlg->win->term, NULL, TEXT(T_BAD_NUMBER), AL_CENTER, TEXT(T_NUMBER_EXPECTED), NULL, 1, TEXT(T_CANCEL), NULL, BTN_ENTER | BTN_ESC); return 1; } if (100*d < di->item->gid || 100*d > di->item->gnum) { - msg_box(dlg->win->term, NULL, TEXT(T_BAD_NUMBER), AL_CENTER, TEXT(T_NUMBER_OUT_OF_RANGE), NULL, 1, TEXT(T_CANCEL), NULL, B_ENTER | B_ESC); + msg_box(dlg->win->term, NULL, TEXT(T_BAD_NUMBER), AL_CENTER, TEXT(T_NUMBER_OUT_OF_RANGE), NULL, 1, TEXT(T_CANCEL), NULL, BTN_ENTER | BTN_ESC); return 1; } return 0; @@ -1441,11 +1441,11 @@ unsigned char *end; long l = strtol(di->cdata, (char **)(void *)&end, 10); if (!*di->cdata || *end) { - msg_box(dlg->win->term, NULL, TEXT(T_BAD_NUMBER), AL_CENTER, TEXT(T_NUMBER_EXPECTED), NULL, 1, TEXT(T_CANCEL), NULL, B_ENTER | B_ESC); + msg_box(dlg->win->term, NULL, TEXT(T_BAD_NUMBER), AL_CENTER, TEXT(T_NUMBER_EXPECTED), NULL, 1, TEXT(T_CANCEL), NULL, BTN_ENTER | BTN_ESC); return 1; } if (l < di->item->gid || l > di->item->gnum) { - msg_box(dlg->win->term, NULL, TEXT(T_BAD_NUMBER), AL_CENTER, TEXT(T_NUMBER_OUT_OF_RANGE), NULL, 1, TEXT(T_CANCEL), NULL, B_ENTER | B_ESC); + msg_box(dlg->win->term, NULL, TEXT(T_BAD_NUMBER), AL_CENTER, TEXT(T_NUMBER_OUT_OF_RANGE), NULL, 1, TEXT(T_CANCEL), NULL, BTN_ENTER | BTN_ESC); return 1; } return 0; @@ -1456,11 +1456,11 @@ unsigned char *end; long l = strtol(di->cdata, (char **)(void *)&end, 16); if (!*di->cdata || *end) { - msg_box(dlg->win->term, NULL, TEXT(T_BAD_NUMBER), AL_CENTER, TEXT(T_NUMBER_EXPECTED), NULL, 1, TEXT(T_CANCEL), NULL, B_ENTER | B_ESC); + msg_box(dlg->win->term, NULL, TEXT(T_BAD_NUMBER), AL_CENTER, TEXT(T_NUMBER_EXPECTED), NULL, 1, TEXT(T_CANCEL), NULL, BTN_ENTER | BTN_ESC); return 1; } if (l < di->item->gid || l > di->item->gnum) { - msg_box(dlg->win->term, NULL, TEXT(T_BAD_NUMBER), AL_CENTER, TEXT(T_NUMBER_OUT_OF_RANGE), NULL, 1, TEXT(T_CANCEL), NULL, B_ENTER | B_ESC); + msg_box(dlg->win->term, NULL, TEXT(T_BAD_NUMBER), AL_CENTER, TEXT(T_NUMBER_OUT_OF_RANGE), NULL, 1, TEXT(T_CANCEL), NULL, BTN_ENTER | BTN_ESC); return 1; } return 0; @@ -1470,7 +1470,7 @@ { unsigned char *p; for (p = di->cdata; *p; p++) if (*p > ' ') return 0; - msg_box(dlg->win->term, NULL, TEXT(T_BAD_STRING), AL_CENTER, TEXT(T_EMPTY_STRING_NOT_ALLOWED), NULL, 1, TEXT(T_CANCEL), NULL, B_ENTER | B_ESC); + msg_box(dlg->win->term, NULL, TEXT(T_BAD_STRING), AL_CENTER, TEXT(T_EMPTY_STRING_NOT_ALLOWED), NULL, 1, TEXT(T_CANCEL), NULL, BTN_ENTER | BTN_ESC); return 1; } @@ -2218,7 +2218,7 @@ va_start(va, check); for (i = 1; i <= n; i++) { dlg->items[i].type = D_BUTTON; - dlg->items[i].gid = i == 1 ? B_ENTER : i == n ? B_ESC : 0; + dlg->items[i].gid = i == 1 ? BTN_ENTER : i == n ? BTN_ESC : 0; dlg->items[i].fn = i != n || n == 1 ? input_field_ok : input_field_cancel; dlg->items[i].dlen = 0; dlg->items[i].text = va_arg(va, unsigned char *); diff -urN links-2.1pre33.org/block.c links-2.1pre33/block.c --- links-2.1pre33.org/block.c Sat Dec 31 07:31:01 2005 +++ links-2.1pre33/block.c Sat May 3 18:30:30 2008 @@ -227,11 +227,11 @@ d->items[0].data = url; d->items[0].fn = check_nonempty; d->items[1].type = D_BUTTON; - d->items[1].gid = B_ENTER; + d->items[1].gid = BTN_ENTER; d->items[1].fn = ok_dialog; d->items[1].text = TEXT(T_OK); d->items[2].type = D_BUTTON; - d->items[2].gid = B_ESC; + d->items[2].gid = BTN_ESC; d->items[2].text = TEXT(T_CANCEL); d->items[2].fn = cancel_dialog; d->items[3].type = D_END; diff -urN links-2.1pre33.org/bookmarks.c links-2.1pre33/bookmarks.c --- links-2.1pre33.org/bookmarks.c Thu Oct 26 17:06:32 2006 +++ links-2.1pre33/bookmarks.c Sat May 3 18:30:31 2008 @@ -378,12 +378,12 @@ } d->items[a+1].type = D_BUTTON; - d->items[a+1].gid = B_ENTER; + d->items[a+1].gid = BTN_ENTER; d->items[a+1].fn = ok_dialog; d->items[a+1].text = TEXT(T_OK); d->items[a+2].type = D_BUTTON; - d->items[a+2].gid = B_ESC; + d->items[a+2].gid = BTN_ESC; d->items[a+2].text = TEXT(T_CANCEL); d->items[a+2].fn = cancel_dialog; diff -urN links-2.1pre33.org/configure.in links-2.1pre33/configure.in --- links-2.1pre33.org/configure.in Wed Dec 26 07:00:48 2007 +++ links-2.1pre33/configure.in Sat May 3 18:30:33 2008 @@ -18,7 +18,7 @@ dnl Checks for programs. AC_PROG_CC -#AC_PROG_CXX +AC_PROG_CXX #AC_PROG_AWK #AM_PROG_LEX #AC_PROG_YACC @@ -221,7 +221,10 @@ if test "$ac_cv_lib_socket_gethostbyname" = no; then AC_CHECK_LIB(nsl, gethostbyname) if test "$ac_cv_lib_nsl_gethostbyname" = no; then - AC_ERROR([gethostbyname function not present]) + AC_CHECK_LIB(bind, gethostbyname) + if test "$ac_cv_lib_bind_gethostbyname" = no; then + AC_ERROR([gethostbyname function not present]) + fi fi fi fi @@ -321,6 +324,7 @@ fi #AC_CHECK_FUNC(clone, AC_DEFINE(HAVE_CLONE)) AC_CHECK_HEADERS(atheos/threads.h) +AC_CHECK_HEADERS(kernel/OS.h) AC_HAVE_FUNCS(spawn_thread) AC_HAVE_FUNCS(resume_thread) @@ -422,6 +426,7 @@ cf_have_atheos=no +cf_have_beos=no if test "$cf_use_graphics" = yes; then AC_DEFINE(G) @@ -433,6 +438,7 @@ dnl AC_ARG_WITH(sdl, [ --without-sdl compile without SDL graphics driver],[if test "$withval" = no; then disable_sdl=yes; else disable_sdl=no; fi]) AC_ARG_WITH(pmshell, [ --without-pmshell compile without PMShell graphics driver],[if test "$withval" = no; then disable_pmshell=yes; else disable_pmshell=no; fi]) AC_ARG_WITH(atheos, [ --without-atheos compile without Atheos graphics driver],[if test "$withval" = no; then disable_atheos=yes; else disable_atheos; fi]) +AC_ARG_WITH(beos, [ --without-beos compile without BeOS/Haiku graphics driver],[if test "$withval" = no; then disable_beos=yes; else disable_beos; fi]) drivers="" @@ -568,6 +574,31 @@ fi fi +if test "$disable_beos" != yes ; then + old_ext="$ac_ext" + ac_ext=cpp + AC_CHECK_HEADERS(interface/View.h) + AC_CHECK_HEADERS(interface/Window.h) + AC_CHECK_HEADERS(interface/Screen.h) + AC_CHECK_HEADERS(interface/Bitmap.h) + AC_CHECK_HEADERS(support/Locker.h) + AC_CHECK_HEADERS(app/Application.h) + ac_ext="$old_ext" + + if test "$ac_cv_header_kernel_OS_h" = yes && + test "$ac_cv_header_interface_View_h" = yes && + test "$ac_cv_header_interface_Window_h" = yes && + test "$ac_cv_header_interface_Screen_h" = yes && + test "$ac_cv_header_interface_Bitmap_h" = yes && + test "$ac_cv_header_support_Locker_h" = yes && + test "$ac_cv_header_app_Application_h" = yes; then + AC_PROG_CXX + AC_DEFINE(GRDRV_BEOS) + drivers="$drivers BEOS" + cf_have_beos=yes + fi +fi + AC_CHECK_LIB(z, inflate) PKG_CHECK_MODULES(LIBPNG,libpng >= 1.0.0,pkgconfig_libpng=yes,pkgconfig_libpng=no) if test "$pkgconfig_libpng" = "yes"; then @@ -645,6 +676,7 @@ AM_CONDITIONAL(ATHEOS_GR, test "$cf_have_atheos" = yes) +AM_CONDITIONAL(BEOS_GR, test "$cf_have_beos" = yes) test "$ac_cv_have_emx" = yes && LDFLAGS="$LDFLAGS -Zexe" diff -urN links-2.1pre33.org/default.c links-2.1pre33/default.c --- links-2.1pre33.org/default.c Mon Dec 24 23:33:44 2007 +++ links-2.1pre33/default.c Sat May 3 18:30:34 2008 @@ -452,7 +452,7 @@ } add_to_strn(&config_file, name); if ((err = write_to_config_file(config_file, c))) { - if (term) msg_box(term, NULL, TEXT(T_CONFIG_ERROR), AL_CENTER | AL_EXTD_TEXT, TEXT(T_UNABLE_TO_WRITE_TO_CONFIG_FILE), ": ", get_err_msg(-err), NULL, NULL, 1, TEXT(T_CANCEL), NULL, B_ENTER | B_ESC); + if (term) msg_box(term, NULL, TEXT(T_CONFIG_ERROR), AL_CENTER | AL_EXTD_TEXT, TEXT(T_UNABLE_TO_WRITE_TO_CONFIG_FILE), ": ", get_err_msg(-err), NULL, NULL, 1, TEXT(T_CANCEL), NULL, BTN_ENTER | BTN_ESC); mem_free(c); mem_free(config_file); return -1; diff -urN links-2.1pre33.org/directfb.c links-2.1pre33/directfb.c --- links-2.1pre33.org/directfb.c Wed Nov 22 23:55:03 2006 +++ links-2.1pre33/directfb.c Sat May 3 18:30:35 2008 @@ -651,25 +651,25 @@ if (event.type == DWET_BUTTONUP) { - flags = B_UP; + flags = BTN_UP; data->window->UngrabPointer (data->window); } else { - flags = B_DOWN; + flags = BTN_DOWN; data->window->GrabPointer (data->window); } switch (event.button) { case DIBI_LEFT: - flags |= B_LEFT; + flags |= BTN_LEFT; break; case DIBI_RIGHT: - flags |= B_RIGHT; + flags |= BTN_RIGHT; break; case DIBI_MIDDLE: - flags |= B_MIDDLE; + flags |= BTN_MIDDLE; break; default: continue; @@ -681,8 +681,8 @@ case DWET_WHEEL: gd->mouse_handler (gd, event.x, event.y, - B_MOVE | - (event.step > 0 ? B_WHEELUP : B_WHEELDOWN)); + BTN_MOVE | + (event.step > 0 ? BTN_WHEELUP : BTN_WHEELDOWN)); break; case DWET_MOTION: @@ -697,16 +697,16 @@ switch (event.buttons) { case DIBM_LEFT: - flags = B_DRAG | B_LEFT; + flags = BTN_DRAG | BTN_LEFT; break; case DIBM_RIGHT: - flags = B_DRAG | B_RIGHT; + flags = BTN_DRAG | BTN_RIGHT; break; case DIBM_MIDDLE: - flags = B_DRAG | B_MIDDLE; + flags = BTN_DRAG | BTN_MIDDLE; break; default: - flags = B_MOVE; + flags = BTN_MOVE; break; } diff -urN links-2.1pre33.org/drivers.c links-2.1pre33/drivers.c --- links-2.1pre33.org/drivers.c Mon Dec 24 23:33:44 2007 +++ links-2.1pre33/drivers.c Sat May 3 18:30:36 2008 @@ -31,6 +31,9 @@ #ifdef GRDRV_ATHEOS extern struct graphics_driver atheos_driver; #endif +#ifdef GRDRV_BEOS +extern struct graphics_driver beos_driver; +#endif #ifdef GRDRV_SDL extern struct graphics_driver sdl_driver; #endif @@ -47,6 +50,9 @@ #endif #ifdef GRDRV_ATHEOS &atheos_driver, +#endif +#ifdef GRDRV_BEOS + &beos_driver, #endif #ifndef SPAD #ifdef GRDRV_X diff -urN links-2.1pre33.org/framebuffer.c links-2.1pre33/framebuffer.c --- links-2.1pre33.org/framebuffer.c Sat Oct 27 05:36:22 2007 +++ links-2.1pre33/framebuffer.c Sat May 3 18:30:38 2008 @@ -322,7 +322,7 @@ if (mouse_y < 0) mouse_y = 0; ev.x = mouse_x; ev.y = mouse_y; - ev.b = B_MOVE; + ev.b = BTN_MOVE; if (!current_virtual_device) return; if (current_virtual_device->mouse_handler) current_virtual_device->mouse_handler(current_virtual_device, ev.x, ev.y, ev.b); redraw_mouse(); @@ -956,26 +956,26 @@ ev.x = mouse_x; ev.y = mouse_y; - if (gev.buttons & GPM_B_LEFT) ev.b = B_LEFT; - else if (gev.buttons & GPM_B_MIDDLE) ev.b = B_MIDDLE; - else if (gev.buttons & GPM_B_RIGHT) ev.b = B_RIGHT; + if (gev.buttons & GPM_B_LEFT) ev.b = BTN_LEFT; + else if (gev.buttons & GPM_B_MIDDLE) ev.b = BTN_MIDDLE; + else if (gev.buttons & GPM_B_RIGHT) ev.b = BTN_RIGHT; else ev.b = 0; - if (gev.type & GPM_DOWN) ev.b |= B_DOWN; - else if (gev.type & GPM_UP) ev.b |= B_UP; - else if (gev.type & GPM_DRAG) ev.b |= B_DRAG; - else ev.b |= B_MOVE; + if (gev.type & GPM_DOWN) ev.b |= BTN_DOWN; + else if (gev.type & GPM_UP) ev.b |= BTN_UP; + else if (gev.type & GPM_DRAG) ev.b |= BTN_DRAG; + else ev.b |= BTN_MOVE; #ifndef USE_GPM_DX if (fb_msetsize < 0) { } else if (fb_msetsize < 10) { fb_msetsize++; - } else if ((ev.b & BM_ACT) == B_MOVE && !(ev.b & BM_BUTT)) { + } else if ((ev.b & BM_ACT) == BTN_MOVE && !(ev.b & BM_BUTT)) { fb_mouse_setsize(); fb_msetsize = -1; } #endif - if (((ev.b & BM_ACT) == B_MOVE && !(ev.b & BM_BUTT)) || (ev.b & BM_ACT) == B_DRAG) { + if (((ev.b & BM_ACT) == BTN_MOVE && !(ev.b & BM_BUTT)) || (ev.b & BM_ACT) == BTN_DRAG) { if (can_read(fb_hgpm)) goto again; } diff -urN links-2.1pre33.org/jsint.c links-2.1pre33/jsint.c --- links-2.1pre33.org/jsint.c Sun May 27 14:23:48 2007 +++ links-2.1pre33/jsint.c Sat May 3 18:30:39 2008 @@ -1272,8 +1272,8 @@ txt, /* message */ jsid, /* data for button functions */ 3, /* # of buttons */ - TEXT(T_OK),js_upcall_confirm_ok_pressed,B_ENTER, /* first button */ - TEXT(T_CANCEL),js_upcall_confirm_cancel_pressed,B_ESC, /* second button */ + TEXT(T_OK),js_upcall_confirm_ok_pressed,BTN_ENTER, /* first button */ + TEXT(T_CANCEL),js_upcall_confirm_cancel_pressed,BTN_ESC, /* second button */ TEXT(T_KILL_SCRIPT), js_kill_script_pressed,NULL ); @@ -1342,7 +1342,7 @@ txt, /* message */ jsid, /* data for button functions */ 2, /* # of buttons */ - TEXT(T_OK),js_upcall_alert_ok_pressed,B_ENTER|B_ESC, + TEXT(T_OK),js_upcall_alert_ok_pressed,BTN_ENTER|BTN_ESC, TEXT(T_KILL_SCRIPT), js_kill_script_pressed,NULL ); @@ -2933,8 +2933,8 @@ jsid->n?TEXT(T_JS_IS_ATTEMPTING_TO_OPEN_NEW_WINDOW_WITH_URL):TEXT(T_JS_IS_ATTEMPTING_TO_GO_TO_URL), " \"",jsid->string,"\".",NULL, /* message */ jsid, /* data for button functions */ 3, /* # of buttons */ - TEXT(T_ALLOW),js_upcall_goto_url_ok_pressed,B_ENTER, - TEXT(T_REJECT),js_upcall_goto_url_cancel_pressed,B_ESC, + TEXT(T_ALLOW),js_upcall_goto_url_ok_pressed,BTN_ENTER, + TEXT(T_REJECT),js_upcall_goto_url_cancel_pressed,BTN_ESC, TEXT(T_KILL_SCRIPT), js_kill_script_pressed,NULL /* dirty trick: gimme_js_id_string and gimme_js_id begins with the same long */ ); js_mem_free(s); @@ -3089,8 +3089,8 @@ TEXT(T_JS_IS_ATTEMPTING_TO_GO_INTO_HISTORY), txt, TEXT(T_TO_URL), " \"",url,"\".",NULL, /* message */ jsid, /* data for button functions */ 3, /* # of buttons */ - TEXT(T_ALLOW),js_upcall_goto_history_ok_pressed,B_ENTER, - TEXT(T_REJECT),js_upcall_goto_url_cancel_pressed,B_ESC, + TEXT(T_ALLOW),js_upcall_goto_history_ok_pressed,BTN_ENTER, + TEXT(T_REJECT),js_upcall_goto_url_cancel_pressed,BTN_ESC, TEXT(T_KILL_SCRIPT), js_kill_script_pressed,NULL /* dirty trick: gimme_js_id_string and gimme_js_id begins with the same long */ ); js_mem_free(s); diff -urN links-2.1pre33.org/kbd.c links-2.1pre33/kbd.c --- links-2.1pre33.org/kbd.c Thu Jan 31 21:48:26 2008 +++ links-2.1pre33/kbd.c Sat May 3 18:30:40 2008 @@ -848,10 +848,10 @@ ev.y = (unsigned char)(itrm->kqueue[el+3]) - ' ' - 1 + ((int)((unsigned char)(itrm->kqueue[el+4]) - ' ' - 1) << 7); if ( ev.y & (1 << 13)) ev.y = 0; /* ev.y |= ~0 << 14; */ switch ((itrm->kqueue[el] - ' ') ^ xterm_button) { /* Every event changhes only one bit */ - case TW_BUTT_LEFT: ev.b = B_LEFT | ( (xterm_button & TW_BUTT_LEFT) ? B_UP : B_DOWN ); break; - case TW_BUTT_MIDDLE: ev.b = B_MIDDLE | ( (xterm_button & TW_BUTT_MIDDLE) ? B_UP : B_DOWN ); break; - case TW_BUTT_RIGHT: ev.b = B_RIGHT | ( (xterm_button & TW_BUTT_RIGHT) ? B_UP : B_DOWN ); break; - case 0: ev.b = B_DRAG; + case TW_BUTT_LEFT: ev.b = BTN_LEFT | ( (xterm_button & TW_BUTT_LEFT) ? BTN_UP : BTN_DOWN ); break; + case TW_BUTT_MIDDLE: ev.b = BTN_MIDDLE | ( (xterm_button & TW_BUTT_MIDDLE) ? BTN_UP : BTN_DOWN ); break; + case TW_BUTT_RIGHT: ev.b = BTN_RIGHT | ( (xterm_button & TW_BUTT_RIGHT) ? BTN_UP : BTN_DOWN ); break; + case 0: ev.b = BTN_DRAG; /* default : Twin protocol error */ } xterm_button = itrm->kqueue[el] - ' '; @@ -859,15 +859,15 @@ } else { ev.x = itrm->kqueue[el+1] - ' ' - 1; ev.y = itrm->kqueue[el+2] - ' ' - 1; - ev.b = B_DOWN; - if (itrm->kqueue[el] & 4) ev.b = B_DRAG; - if ((ev.b |= (itrm->kqueue[el] & BM_BUTT) | B_DOWN) == 3) { - ev.b = B_UP; + ev.b = BTN_DOWN; + if (itrm->kqueue[el] & 4) ev.b = BTN_DRAG; + if ((ev.b |= (itrm->kqueue[el] & BM_BUTT) | BTN_DOWN) == 3) { + ev.b = BTN_UP; if (xterm_button != -1) ev.b |= xterm_button; } - /*if ((itrm->kqueue[el] & 4) && ev.b != B_UP) ev.b |= B_DRAG;*/ + /*if ((itrm->kqueue[el] & 4) && ev.b != BTN_UP) ev.b |= BTN_DRAG;*/ xterm_button = -1; - if ((ev.b & BM_ACT) == B_DOWN) xterm_button = ev.b & BM_BUTT; + if ((ev.b & BM_ACT) == BTN_DOWN) xterm_button = ev.b & BM_BUTT; el += 3; } ev.ev = EV_MOUSE; diff -urN links-2.1pre33.org/links-beos.rdef links-2.1pre33/links-beos.rdef --- links-2.1pre33.org/links-beos.rdef Thu Jan 1 01:00:00 1970 +++ links-2.1pre33/links-beos.rdef Sat May 3 23:50:16 2008 @@ -0,0 +1,97 @@ +/* +** links-beos.rdef +** +** Automatically generated by BResourceParser on +** Thursday, December 13, 2007 at 23:46:45. +** +*/ + +resource(1, "BEOS:APP_FLAGS") (#'APPF') $"01000000"; + +resource(1, "BEOS:APP_VERSION") #'APPV' array { + $"02000000010000000000000000000000210000006C696E6B7320322E31707265" + $"3333000000000000000000000000000000000000000000000000000000000000" + $"00000000000000000000000000000000000000004C696E6B732062726F777365" + $"7220322E31707265333300000000000000000000000000000000000000000000" + $"0000000000000000000000000000000000000000000000000000000000000000" + $"0000000000000000000000000000000000000000000000000000000000000000" + $"0000000000000000000000000000000000000000000000000000000000000000" + $"0000000000000000000000000000000000000000000000000000000000000000" + $"0000000000000000000000000000000000000000000000000000000000000000" + $"0000000000000000000000000000000000000000000000000000000000000000" + $"0000000000000000000000000000000000000000000000000000000000000000" + $"0000000000000000000000000000000000000000000000000000000000000000" + $"0000000000000000000000000000000000000000000000000000000000000000" + $"0000000000000000000000000000000000000000000000000000000000000000" + $"0000000000000000000000000000000000000000000000000000000000000000" + $"0000000000000000000000000000000000000000000000000000000000000000" + $"0000000000000000000000000000000000000000000000000000000000000000" + $"0000000000000000000000000000000000000000000000000000000000000000" + $"0000000000000000000000000000000000000000000000000000000000000000" + $"0000000000000000000000000000000000000000000000000000000000000000" + $"0000000000000000000000000000000000000000000000000000000000000000" + $"0000000000000000" +}; + +resource(101, "BEOS:L:STD_ICON") #'ICON' array { + $"2A2A2A2A2A2A2A2A2A2A2A2A2A2A2C0000363434343434343434343434343434" + $"2A2A2A2A2A2A2A2A2A2A2A2A2A2A2C0000363434343434343434343434343434" + $"2A2A2A2B2B2B2B2B2B2B2B2B2B2B2C0000363434343434343434343434343434" + $"2A2A2A3200000000000000000000000000363434343434343434343434343434" + $"2A2A2A2FF1313200000000000131310000363434343434343434343434343434" + $"2A2A2A2A2A2A2A30000000002B2A2C0000363434343434343434343434343434" + $"2A2A2A2A2A2A2A2F000000002A2A2C0000363434343434343434343434343434" + $"2A2A2A2A2A2A2A2F000000002A2A2C0000363434343434343434343434343434" + $"2A2A2A2A2A2A2A2F000000002A2A2C0000363434343434343434343434343434" + $"2A2A2A2A2A2A2A2F000000002A2A2C0000363434343434343434343434343434" + $"2A2A2A2A2A2A2A2F000000002A2A2C0000363434343434343434343434343434" + $"2A2A2A2A2A2A2A2F000000002A2A2C0000363434343434343434343434343434" + $"2A2A2A2A2A2A2A2F000000002A2A2C0000363434343434343434343434343434" + $"2A2A2A2A2A2A2A2F000000002A2A2C0000363434343434343434343434343434" + $"2C2C2C2C2C2C2C30000000002C2C2D0000373636363636363636363636363636" + $"0000000000000000000000000000000000000000000000000000000000000000" + $"0000000000000000000000000000000000000000000000000000000000000000" + $"2222222222222226000000002222230000151A1A1A1A1A1A1A1A1A1A1A1A1A1A" + $"20202020202020250000000020202200001A3F3F3F3F3F3F3F3F3F3F3F3F3F3F" + $"20202020202020250000000020202200001A3F3F3F3F3F3F3F1501113F3F3F3F" + $"20202020202020250000000020202200001A3F3F3F3F3F3F3F0E00133F3F3F3F" + $"20202020202020250000000020202200001A3F3F3F3F3F3F3F0500163F3F3F3F" + $"20202020202020250000000020202200001A3F3F3F3F3F3F1A0000193F3F3F3F" + $"20202020202020250000000020202200001A3F3F3F3F3F3F0C00001B3F3F3F3F" + $"20202020202020250000000020202200001A3F3F3F3F3F190000001E3F3F3F3F" + $"20202020202020250000000020202200001A3F3F3F3F1A030000013F3F3F3F3F" + $"20202020202020270000000023202200001A3F1E170C00000000043F3F3F3F3F" + $"2020202628292900000000000029290000040300000000000000063F3F3F3F3F" + $"20202027292929292929292929292900000203030303030303030B3F3F3F3F3F" + $"20202020202020202020202020202200001A3F3F3F3F3F3F3F3F3F3F3F3F3F3F" + $"20202020202020202020202020202200001A3F3F3F3F3F3F3F3F3F3F3F3F3F3F" + $"20202020202020202020202020202200001A3F3F3F3F3F3F3F3F3F3F3F3F3F3F" +}; + +resource(101, "BEOS:M:STD_ICON") #'MICN' array { + $"2A2A2A2A2A2A2A303A34343434343434" + $"2A2C3030303030F73A34343434343434" + $"2A2B2D300000EB323A34343434343434" + $"2A2A2A2C00002A303A34343434343434" + $"2A2A2A2C00002A303A34343434343434" + $"2A2A2A2C00002A303A34343434343434" + $"2A2A2A2C00002A303A34343434343434" + $"303030310000F1333D3A3A3A3A3A3A3A" + $"2626262700002629050D0D0D0D0D0D0D" + $"20202022000020260D3F3F3F1D143F3F" + $"20202022000020260D3F3F3F140A3F3F" + $"20202022000020260D3F3F3F090D3F3F" + $"20202022000020260D3F3F16000F3F3F" + $"20222427000026280710090000123F3F" + $"202225252525252807111111111A3F3F" + $"20202020202020260D3F3F3F3F3F3F3F" +}; + +resource(1, "BEOS:APP_SIG") (#'MIMS') "application/x-vnd.links"; + +resource(1, "BEOS:FILE_TYPES") message { + "types" = "text/html", + "types" = "application/x-vnd.Be-bookmark", + "types" = "application/x-vnd.Be.URL.http" +}; + diff -urN links-2.1pre33.org/links.h links-2.1pre33/links.h --- links-2.1pre33.org/links.h Thu Jan 31 21:50:40 2008 +++ links-2.1pre33/links.h Sat May 3 18:30:41 2008 @@ -1295,26 +1295,26 @@ /* kbd.c */ #define BM_BUTT 15 -#define B_LEFT 0 -#define B_MIDDLE 1 -#define B_RIGHT 2 -#define B_FOURTH 3 -#define B_FIFTH 4 -#define B_SIXTH 5 -#define B_WHEELUP 8 -#define B_WHEELDOWN 9 -#define B_WHEELUP1 10 -#define B_WHEELDOWN1 11 -#define B_WHEELLEFT 12 -#define B_WHEELRIGHT 13 -#define B_WHEELLEFT1 14 -#define B_WHEELRIGHT1 15 +#define BTN_LEFT 0 +#define BTN_MIDDLE 1 +#define BTN_RIGHT 2 +#define BTN_FOURTH 3 +#define BTN_FIFTH 4 +#define BTN_SIXTH 5 +#define BTN_WHEELUP 8 +#define BTN_WHEELDOWN 9 +#define BTN_WHEELUP1 10 +#define BTN_WHEELDOWN1 11 +#define BTN_WHEELLEFT 12 +#define BTN_WHEELRIGHT 13 +#define BTN_WHEELLEFT1 14 +#define BTN_WHEELRIGHT1 15 #define BM_ACT 48 -#define B_DOWN 0 -#define B_UP 16 -#define B_DRAG 32 -#define B_MOVE 48 +#define BTN_DOWN 0 +#define BTN_UP 16 +#define BTN_DRAG 32 +#define BTN_MOVE 48 #define KBD_ENTER -0x100 #define KBD_BS -0x101 @@ -3302,15 +3302,15 @@ #define D_FIELD_PASS 3 #define D_BUTTON 4 -#define B_ENTER 1 -#define B_ESC 2 +#define BTN_ENTER 1 +#define BTN_ESC 2 struct dialog_item_data; struct dialog_data; struct dialog_item { int type; - int gid, gnum; /* for buttons: gid - flags B_XXX */ /* for fields: min/max */ /* for box: gid is box height */ + int gid, gnum; /* for buttons: gid - flags BTN_XXX */ /* for fields: min/max */ /* for box: gid is box height */ int (*fn)(struct dialog_data *, struct dialog_item_data *); struct history *history; int dlen; diff -urN links-2.1pre33.org/listedit.c links-2.1pre33/listedit.c --- links-2.1pre33.org/listedit.c Sun Jul 8 01:23:40 2007 +++ links-2.1pre33/listedit.c Sat May 3 18:30:43 2008 @@ -754,7 +754,7 @@ TEXT(T_NO_ITEMS_SELECTED), /* text */ NULL, /* data */ 1, /* # of buttons */ - TEXT(T_OK),NULL,B_ESC|B_ENTER /* button1 */ + TEXT(T_OK),NULL,BTN_ESC|BTN_ENTER /* button1 */ ); else { @@ -936,8 +936,8 @@ TEXT(T_FOLDER)," \"",txt,"\" ",TEXT(T_NOT_EMPTY_SURE_DELETE),NULL, /* text */ narez, /* data for ld->delete_item */ 2, /* # of buttons */ - TEXT(T_NO),NULL,B_ESC, /* button1 */ - TEXT(T_YES),delete_folder_recursively,B_ENTER /* button2 */ + TEXT(T_NO),NULL,BTN_ESC, /* button1 */ + TEXT(T_YES),delete_folder_recursively,BTN_ENTER /* button2 */ ); else msg_box( @@ -948,8 +948,8 @@ TEXT(T_SURE_DELETE)," ",TEXT(T_fOLDER)," \"",txt,"\"?",NULL, /* null-terminated text */ narez, /* data for ld->delete_item */ 2, /* # of buttons */ - TEXT(T_YES),delete_ok,B_ENTER, /* button1 */ - TEXT(T_NO),NULL,B_ESC /* button2 */ + TEXT(T_YES),delete_ok,BTN_ENTER, /* button1 */ + TEXT(T_NO),NULL,BTN_ESC /* button2 */ ); } else /* item */ @@ -961,8 +961,8 @@ TEXT(T_SURE_DELETE)," ",TEXT(ld->item_description)," \"",txt,"\"?",NULL, /* null-terminated text */ narez, /* data for ld->delete_item */ 2, /* # of buttons */ - TEXT(T_YES),delete_ok,B_ENTER, /* button1 */ - TEXT(T_NO),NULL,B_ESC /* button2 */ + TEXT(T_YES),delete_ok,BTN_ENTER, /* button1 */ + TEXT(T_NO),NULL,BTN_ESC /* button2 */ ); return 0; } @@ -1507,7 +1507,7 @@ struct session *ses=(struct session *)(dlg->dlg->udata); struct list* item; - if (!ld->search_word) {msg_box(ses->term, NULL, TEXT(T_SEARCH), AL_CENTER, TEXT(T_NO_PREVIOUS_SEARCH), NULL, 1, TEXT(T_CANCEL), NULL, B_ENTER | B_ESC); return;} + if (!ld->search_word) {msg_box(ses->term, NULL, TEXT(T_SEARCH), AL_CENTER, TEXT(T_NO_PREVIOUS_SEARCH), NULL, 1, TEXT(T_CANCEL), NULL, BTN_ENTER | BTN_ESC); return;} if ((item=ld->find_item(ld->current_pos,ld->search_word,direction))) { @@ -1523,7 +1523,7 @@ if (!F) if (!ses->term->spec->block_cursor || ses->term->spec->braille) set_cursor(ses->term, dlg->x + DIALOG_LB, dlg->y+DIALOG_TB+ld->win_pos, dlg->x + DIALOG_LB, dlg->y+DIALOG_TB+ld->win_pos); } else - msg_box(ses->term, NULL, TEXT(T_SEARCH), AL_CENTER, TEXT(T_SEARCH_STRING_NOT_FOUND), NULL, 1, TEXT(T_CANCEL), NULL, B_ENTER | B_ESC); + msg_box(ses->term, NULL, TEXT(T_SEARCH), AL_CENTER, TEXT(T_SEARCH_STRING_NOT_FOUND), NULL, 1, TEXT(T_CANCEL), NULL, BTN_ENTER | BTN_ESC); } @@ -1761,7 +1761,7 @@ case EV_MOUSE: /* toggle select item */ - if ((ev->b&BM_ACT)==B_DOWN&&(ev->b&BM_BUTT)==B_RIGHT) + if ((ev->b&BM_ACT)==BTN_DOWN&&(ev->b&BM_BUTT)==BTN_RIGHT) { int n,a; struct list *l=ld->win_offset; @@ -1793,7 +1793,7 @@ return EVENT_PROCESSED; } /* click on item */ - if ((ev->b&BM_ACT)==B_DOWN&&(ev->b&BM_BUTT)==B_LEFT) + if ((ev->b&BM_ACT)==BTN_DOWN&&(ev->b&BM_BUTT)==BTN_LEFT) { int n,a; struct list *l=ld->win_offset; @@ -1832,7 +1832,7 @@ } /* scroll with the bar */ #ifdef G - if (F&&((ev->b&BM_ACT)==B_DRAG&&(ev->b&BM_BUTT)==B_LEFT)) + if (F&&((ev->b&BM_ACT)==BTN_DRAG&&(ev->b&BM_BUTT)==BTN_LEFT)) { int total=get_total_items(ld); int scroll_pos=get_scroll_pos(ld); @@ -1876,7 +1876,7 @@ } #endif - if ((ev->b&BM_ACT)==B_DRAG&&(ev->b&BM_BUTT)==B_MIDDLE) + if ((ev->b&BM_ACT)==BTN_DRAG&&(ev->b&BM_BUTT)==BTN_MIDDLE) { long delta=(ev->y-last_mouse_y)/MOUSE_SCROLL_DIVIDER; @@ -1913,12 +1913,12 @@ } /* mouse wheel */ - if ((ev->b&BM_ACT)==B_MOVE&&((ev->b&BM_BUTT)==B_WHEELUP||(ev->b&BM_BUTT)==B_WHEELDOWN||(ev->b&BM_BUTT)==B_WHEELDOWN1||(ev->b&BM_BUTT)==B_WHEELUP1)) + if ((ev->b&BM_ACT)==BTN_MOVE&&((ev->b&BM_BUTT)==BTN_WHEELUP||(ev->b&BM_BUTT)==BTN_WHEELDOWN||(ev->b&BM_BUTT)==BTN_WHEELDOWN1||(ev->b&BM_BUTT)==BTN_WHEELUP1)) { int button=(ev->b)&BM_BUTT; last_mouse_y=ev->y; - if (button==B_WHEELDOWN||button==B_WHEELDOWN1) /* scroll down */ + if (button==BTN_WHEELDOWN||button==BTN_WHEELDOWN1) /* scroll down */ { if (next_in_tree(ld,ld->current_pos)==ld->list)return EVENT_PROCESSED; /* already at the bottom */ ld->current_pos=next_in_tree(ld,ld->current_pos); @@ -1932,7 +1932,7 @@ } draw_to_window(dlg->win,redraw_list_line,&rd); } - if (button==B_WHEELUP||button==B_WHEELUP1) /* scroll up */ + if (button==BTN_WHEELUP||button==BTN_WHEELUP1) /* scroll up */ { if (ld->current_pos==ld->list)return EVENT_PROCESSED; /* already on the top */ ld->current_pos=prev_in_tree(ld,ld->current_pos); @@ -2043,7 +2043,7 @@ TEXT(ld->already_in_use), NULL, 1, - TEXT(T_OK),NULL,B_ENTER|B_ESC + TEXT(T_OK),NULL,BTN_ENTER|BTN_ESC ); return 1; } @@ -2108,7 +2108,7 @@ d->items[a+4].fn=list_item_unselect; d->items[a+5].type=D_BUTTON; - d->items[a+5].gid=B_ESC; + d->items[a+5].gid=BTN_ESC; d->items[a+5].fn=cancel_dialog; d->items[a+5].text=TEXT(T_CLOSE); diff -urN links-2.1pre33.org/mailto.c links-2.1pre33/mailto.c --- links-2.1pre33.org/mailto.c Mon Dec 24 23:33:46 2007 +++ links-2.1pre33/mailto.c Sat May 3 18:37:06 2008 @@ -15,7 +15,7 @@ { unsigned char *prog, *cmd; if (!(prog = get_prog(list)) || !*prog) { - msg_box(term, NULL, TEXT(T_NO_PROGRAM), AL_CENTER | AL_EXTD_TEXT, TEXT(T_NO_PROGRAM_SPECIFIED_FOR), " ", name, ".", NULL, NULL, 1, TEXT(T_CANCEL), NULL, B_ENTER | B_ESC); + msg_box(term, NULL, TEXT(T_NO_PROGRAM), AL_CENTER | AL_EXTD_TEXT, TEXT(T_NO_PROGRAM_SPECIFIED_FOR), " ", name, ".", NULL, NULL, 1, TEXT(T_CANCEL), NULL, BTN_ENTER | BTN_ESC); return; } if ((cmd = subst_file(prog, param, 0))) { @@ -42,7 +42,7 @@ fail1: mem_free(user); fail: - if (f) msg_box(ses->term, NULL, TEXT(T_BAD_URL_SYNTAX), AL_CENTER, TEXT(T_BAD_MAILTO_URL), NULL, 1, TEXT(T_CANCEL), NULL, B_ENTER | B_ESC); + if (f) msg_box(ses->term, NULL, TEXT(T_BAD_URL_SYNTAX), AL_CENTER, TEXT(T_BAD_MAILTO_URL), NULL, 1, TEXT(T_CANCEL), NULL, BTN_ENTER | BTN_ESC); } void tn_func(struct session *ses, unsigned char *url, struct list_head *prog, unsigned char *t1, unsigned char *t2) @@ -71,7 +71,7 @@ fail1: mem_free(hh); fail: - if (f) msg_box(ses->term, NULL, TEXT(T_BAD_URL_SYNTAX), AL_CENTER, t2, NULL, 1, TEXT(T_CANCEL), NULL, B_ENTER | B_ESC); + if (f) msg_box(ses->term, NULL, TEXT(T_BAD_URL_SYNTAX), AL_CENTER, t2, NULL, 1, TEXT(T_CANCEL), NULL, BTN_ENTER | BTN_ESC); } @@ -88,7 +88,7 @@ void mms_func(struct session *ses, unsigned char *url) { if (check_shell_url(url)) { - msg_box(ses->term, NULL, TEXT(T_BAD_URL_SYNTAX), AL_CENTER, TEXT(T_MMS_URL_CONTAINS_INACCEPTABLE_CHARACTERS), NULL, 1, TEXT(T_CANCEL), NULL, B_ENTER | B_ESC); + msg_box(ses->term, NULL, TEXT(T_BAD_URL_SYNTAX), AL_CENTER, TEXT(T_MMS_URL_CONTAINS_INACCEPTABLE_CHARACTERS), NULL, 1, TEXT(T_CANCEL), NULL, BTN_ENTER | BTN_ESC); return; } prog_func(ses->term, &mms_prog, url, TEXT(T_MMS)); diff -urN links-2.1pre33.org/main.c links-2.1pre33/main.c --- links-2.1pre33.org/main.c Tue Dec 11 19:45:38 2007 +++ links-2.1pre33/main.c Sat May 3 18:30:43 2008 @@ -277,6 +277,7 @@ void initialize_all_subsystems(void); void initialize_all_subsystems_2(void); +extern void maybe_force_gr(void); void init(void) { @@ -294,6 +295,9 @@ retval = RET_FATAL; goto ttt; } +#if defined(G) && defined(BEOS) + maybe_force_gr(); +#endif if (!(u = parse_options(g_argc - 1, g_argv + 1))) { retval = RET_SYNTAX; goto ttt; diff -urN links-2.1pre33.org/menu.c links-2.1pre33/menu.c --- links-2.1pre33.org/menu.c Mon Dec 24 23:33:46 2007 +++ links-2.1pre33/menu.c Sat May 3 18:38:44 2008 @@ -86,17 +86,17 @@ void menu_about(struct terminal *term, void *d, struct session *ses) { - msg_box(term, NULL, TEXT(T_ABOUT), AL_CENTER, TEXT(T_LINKS__LYNX_LIKE), NULL, 1, TEXT(T_OK), NULL, B_ENTER | B_ESC); + msg_box(term, NULL, TEXT(T_ABOUT), AL_CENTER, TEXT(T_LINKS__LYNX_LIKE), NULL, 1, TEXT(T_OK), NULL, BTN_ENTER | BTN_ESC); } void menu_keys(struct terminal *term, void *d, struct session *ses) { - msg_box(term, NULL, TEXT(T_KEYS), AL_LEFT | AL_MONO, TEXT(T_KEYS_DESC), NULL, 1, TEXT(T_OK), NULL, B_ENTER | B_ESC); + msg_box(term, NULL, TEXT(T_KEYS), AL_LEFT | AL_MONO, TEXT(T_KEYS_DESC), NULL, 1, TEXT(T_OK), NULL, BTN_ENTER | BTN_ESC); } void menu_copying(struct terminal *term, void *d, struct session *ses) { - msg_box(term, NULL, TEXT(T_COPYING), AL_CENTER, TEXT(T_COPYING_DESC), NULL, 1, TEXT(T_OK), NULL, B_ENTER | B_ESC); + msg_box(term, NULL, TEXT(T_COPYING), AL_CENTER, TEXT(T_COPYING_DESC), NULL, 1, TEXT(T_OK), NULL, BTN_ENTER | BTN_ESC); } void menu_manual(struct terminal *term, void *d, struct session *ses) @@ -157,7 +157,7 @@ void query_exit(struct session *ses) { ses->exit_query = 1; - msg_box(ses->term, NULL, TEXT(T_EXIT_LINKS), AL_CENTER, (ses->term->next == ses->term->prev && are_there_downloads()) ? TEXT(T_DO_YOU_REALLY_WANT_TO_EXIT_LINKS_AND_TERMINATE_ALL_DOWNLOADS) : (!F || ses->term->next == ses->term->prev) ? TEXT(T_DO_YOU_REALLY_WANT_TO_EXIT_LINKS) : TEXT(T_DO_YOU_REALLY_WANT_TO_CLOSE_WINDOW), ses, 2, TEXT(T_YES), (void (*)(void *))really_exit_prog, B_ENTER, TEXT(T_NO), dont_exit_prog, B_ESC); + msg_box(ses->term, NULL, TEXT(T_EXIT_LINKS), AL_CENTER, (ses->term->next == ses->term->prev && are_there_downloads()) ? TEXT(T_DO_YOU_REALLY_WANT_TO_EXIT_LINKS_AND_TERMINATE_ALL_DOWNLOADS) : (!F || ses->term->next == ses->term->prev) ? TEXT(T_DO_YOU_REALLY_WANT_TO_EXIT_LINKS) : TEXT(T_DO_YOU_REALLY_WANT_TO_CLOSE_WINDOW), ses, 2, TEXT(T_YES), (void (*)(void *))really_exit_prog, BTN_ENTER, TEXT(T_NO), dont_exit_prog, BTN_ESC); } void exit_prog(struct terminal *term, void *d, struct session *ses) @@ -284,7 +284,7 @@ l = 0, a15 = init_str(); add_to_str(&a15, &l, ", "); add_num_to_str(&a15, &l, formatted_info(CI_LOCKED));add_to_str(&a15, &l, " "); l = 0, a16 = init_str(); add_to_str(&a16, &l, "."); - if (!F) msg_box(term, getml(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, NULL), TEXT(T_RESOURCES), AL_LEFT | AL_EXTD_TEXT, TEXT(T_RESOURCES), a1, TEXT(T_HANDLES), a2, TEXT(T_TIMERS), a3, TEXT(T_CONNECTIONS), a4, TEXT(T_cONNECTIONS), a5, TEXT(T_CONNECTING), a6, TEXT(T_tRANSFERRING), a7, TEXT(T_KEEPALIVE), a8, TEXT(T_MEMORY_CACHE), a9, TEXT(T_BYTES), a10, TEXT(T_FILES), a11, TEXT(T_LOCKED), a12, TEXT(T_LOADING), a13, TEXT(T_FORMATTED_DOCUMENT_CACHE), a14, TEXT(T_DOCUMENTS), a15, TEXT(T_LOCKED), a16, NULL, r, 1, TEXT(T_OK), NULL, B_ENTER | B_ESC); + if (!F) msg_box(term, getml(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, a14, a15, a16, NULL), TEXT(T_RESOURCES), AL_LEFT | AL_EXTD_TEXT, TEXT(T_RESOURCES), a1, TEXT(T_HANDLES), a2, TEXT(T_TIMERS), a3, TEXT(T_CONNECTIONS), a4, TEXT(T_cONNECTIONS), a5, TEXT(T_CONNECTING), a6, TEXT(T_tRANSFERRING), a7, TEXT(T_KEEPALIVE), a8, TEXT(T_MEMORY_CACHE), a9, TEXT(T_BYTES), a10, TEXT(T_FILES), a11, TEXT(T_LOCKED), a12, TEXT(T_LOADING), a13, TEXT(T_FORMATTED_DOCUMENT_CACHE), a14, TEXT(T_DOCUMENTS), a15, TEXT(T_LOCKED), a16, NULL, r, 1, TEXT(T_OK), NULL, BTN_ENTER | BTN_ESC); #ifdef G else msg_box(term, getml(a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13, b14, b15, b16, b17, a14, a15, a16, @@ -299,7 +299,7 @@ TEXT(T_BYTES), b15, TEXT(T_IMAGES), b16, TEXT(T_LOCKED), b17, TEXT(T_FONT_CACHE), c14, TEXT(T_BYTES), c15, TEXT(T_BYTES_MAX), c16, TEXT(T_LETTERS), c17, - TEXT(T_FORMATTED_DOCUMENT_CACHE), a14, TEXT(T_DOCUMENTS), a15, TEXT(T_LOCKED), a16, NULL, r, 1, TEXT(T_OK), NULL, B_ENTER | B_ESC); + TEXT(T_FORMATTED_DOCUMENT_CACHE), a14, TEXT(T_DOCUMENTS), a15, TEXT(T_LOCKED), a16, NULL, r, 1, TEXT(T_OK), NULL, BTN_ENTER | BTN_ESC); #endif r->win = term->windows.next; ((struct dialog_data *)r->win->data)->dlg->abort = refresh_abort; @@ -328,7 +328,7 @@ add_to_str(&a, &l, "\n"); add_to_str(&a, &l, ce->url); } - msg_box(term, getml(a, NULL), TEXT(T_CACHE_INFO), AL_LEFT | AL_EXTD_TEXT, TEXT(T_CACHE_CONTENT), a, NULL, r, 1, TEXT(T_OK), end_refresh, B_ENTER | B_ESC); + msg_box(term, getml(a, NULL), TEXT(T_CACHE_INFO), AL_LEFT | AL_EXTD_TEXT, TEXT(T_CACHE_CONTENT), a, NULL, r, 1, TEXT(T_OK), end_refresh, BTN_ENTER | BTN_ESC); r->win = term->windows.next; r->timer = install_timer(RESOURCE_INFO_REFRESH, (void (*)(void *))refresh, r); /* !!! the refresh here is buggy */ @@ -385,7 +385,7 @@ } #endif p = stracpy(message); - msg_box(term, getml(p, NULL), TEXT(T_MEMORY_INFO), AL_CENTER, p, r, 1, TEXT(T_OK), NULL, B_ENTER | B_ESC); + msg_box(term, getml(p, NULL), TEXT(T_MEMORY_INFO), AL_CENTER, p, r, 1, TEXT(T_OK), NULL, BTN_ENTER | BTN_ESC); r->win = term->windows.next; ((struct dialog_data *)r->win->data)->dlg->abort = refresh_abort; r->timer = install_timer(RESOURCE_INFO_REFRESH, (void (*)(void *))refresh, r); @@ -596,11 +596,11 @@ d->items[9].dlen = sizeof(int); d->items[9].data = (void *)&ts->braille; d->items[10].type = D_BUTTON; - d->items[10].gid = B_ENTER; + d->items[10].gid = BTN_ENTER; d->items[10].fn = ok_dialog; d->items[10].text = TEXT(T_OK); d->items[11].type = D_BUTTON; - d->items[11].gid = B_ESC; + d->items[11].gid = BTN_ESC; d->items[11].fn = cancel_dialog; d->items[11].text = TEXT(T_CANCEL); d->items[12].type = D_END; @@ -707,11 +707,11 @@ d->items[8].gid = 1024; d->items[8].gnum = 30*1024; d->items[9].type = D_BUTTON; - d->items[9].gid = B_ENTER; + d->items[9].gid = BTN_ENTER; d->items[9].fn = ok_dialog; d->items[9].text = TEXT(T_OK); d->items[10].type = D_BUTTON; - d->items[10].gid = B_ESC; + d->items[10].gid = BTN_ESC; d->items[10].fn = cancel_dialog; d->items[10].text = TEXT(T_CANCEL); d->items[11].type = D_END; @@ -832,11 +832,11 @@ d->items[13].dlen = MAX_STR_LEN; d->items[13].data = bugs->fake_referer; d->items[14].type = D_BUTTON; - d->items[14].gid = B_ENTER; + d->items[14].gid = BTN_ENTER; d->items[14].fn = ok_dialog; d->items[14].text = TEXT(T_OK); d->items[15].type = D_BUTTON; - d->items[15].gid = B_ESC; + d->items[15].gid = BTN_ESC; d->items[15].fn = cancel_dialog; d->items[15].text = TEXT(T_CANCEL); d->items[16].type = D_END; @@ -911,12 +911,12 @@ a = 3; #endif d->items[a].type = D_BUTTON; - d->items[a].gid = B_ENTER; + d->items[a].gid = BTN_ENTER; d->items[a].fn = ok_dialog; d->items[a].text = TEXT(T_OK); a++; d->items[a].type = D_BUTTON; - d->items[a].gid = B_ESC; + d->items[a].gid = BTN_ESC; d->items[a].fn = cancel_dialog; d->items[a].text = TEXT(T_CANCEL); a++; @@ -1134,11 +1134,11 @@ d->items[13].dlen = sizeof(int); d->items[13].data = (void *)&gamma_bits; d->items[14].type = D_BUTTON; - d->items[14].gid = B_ENTER; + d->items[14].gid = BTN_ENTER; d->items[14].fn = ok_dialog; d->items[14].text = TEXT(T_OK); d->items[15].type = D_BUTTON; - d->items[15].gid = B_ESC; + d->items[15].gid = BTN_ESC; d->items[15].fn = cancel_dialog; d->items[15].text = TEXT(T_CANCEL); d->items[16].type = D_END; @@ -1250,11 +1250,11 @@ d->items[3].data = (unsigned char *)&p->only_proxies; d->items[3].dlen = sizeof(int); d->items[4].type = D_BUTTON; - d->items[4].gid = B_ENTER; + d->items[4].gid = BTN_ENTER; d->items[4].fn = ok_dialog; d->items[4].text = TEXT(T_OK); d->items[5].type = D_BUTTON; - d->items[5].gid = B_ESC; + d->items[5].gid = BTN_ESC; d->items[5].fn = cancel_dialog; d->items[5].text = TEXT(T_CANCEL); d->items[6].type = D_END; @@ -1343,11 +1343,11 @@ d->items[9].data = (unsigned char *)&ftp_options; d->items[9].dlen = sizeof(struct ftp_options); d->items[10].type = D_BUTTON; - d->items[10].gid = B_ENTER; + d->items[10].gid = BTN_ENTER; d->items[10].fn = ok_dialog; d->items[10].text = TEXT(T_OK); d->items[11].type = D_BUTTON; - d->items[11].gid = B_ESC; + d->items[11].gid = BTN_ESC; d->items[11].fn = cancel_dialog; d->items[11].text = TEXT(T_CANCEL); d->items[12].type = D_END; @@ -1481,11 +1481,11 @@ } #endif d->items[a].type = D_BUTTON; - d->items[a].gid = B_ENTER; + d->items[a].gid = BTN_ENTER; d->items[a].fn = ok_dialog; d->items[a++].text = TEXT(T_OK); d->items[a].type = D_BUTTON; - d->items[a].gid = B_ESC; + d->items[a].gid = BTN_ESC; d->items[a].fn = cancel_dialog; d->items[a++].text = TEXT(T_CANCEL); d->items[a].type = D_END; @@ -1498,7 +1498,7 @@ net_options(term, xxx, yyy); return; } - msg_box(term, NULL, _("Network options"), AL_CENTER, _("Warning: configuring network will terminate all running downloads. Do you really want to configure network?"), term, 2, _("Yes"), (void (*)(void *))net_options, B_ENTER, _("No"), NULL, B_ESC); + msg_box(term, NULL, _("Network options"), AL_CENTER, _("Warning: configuring network will terminate all running downloads. Do you really want to configure network?"), term, 2, _("Yes"), (void (*)(void *))net_options, BTN_ENTER, _("No"), NULL, BTN_ESC); }*/ unsigned char mc_str[8]; @@ -1581,12 +1581,12 @@ d->items[a].data = (void *)&http_bugs.aggressive_cache; a++; d->items[a].type = D_BUTTON; - d->items[a].gid = B_ENTER; + d->items[a].gid = BTN_ENTER; d->items[a].fn = ok_dialog; d->items[a].text = TEXT(T_OK); a++; d->items[a].type = D_BUTTON; - d->items[a].gid = B_ESC; + d->items[a].gid = BTN_ESC; d->items[a].fn = cancel_dialog; d->items[a].text = TEXT(T_CANCEL); a++; @@ -1746,12 +1746,12 @@ a++; if (!F){ d->items[a].type = D_BUTTON; - d->items[a].gid = B_ENTER; + d->items[a].gid = BTN_ENTER; d->items[a].fn = ok_dialog; d->items[a].text = TEXT(T_OK); a++; d->items[a].type = D_BUTTON; - d->items[a].gid = B_ESC; + d->items[a].gid = BTN_ESC; d->items[a].fn = cancel_dialog; d->items[a].text = TEXT(T_CANCEL); a++; @@ -1777,12 +1777,12 @@ d->items[a].dlen = sizeof(int); a++; d->items[a].type = D_BUTTON; - d->items[a].gid = B_ENTER; + d->items[a].gid = BTN_ENTER; d->items[a].fn = ok_dialog; d->items[a].text = TEXT(T_OK); a++; d->items[a].type = D_BUTTON; - d->items[a].gid = B_ESC; + d->items[a].gid = BTN_ESC; d->items[a].fn = cancel_dialog; d->items[a].text = TEXT(T_CANCEL); a++; @@ -2038,12 +2038,12 @@ } #endif d->items[a].type = D_BUTTON; - d->items[a].gid = B_ENTER; + d->items[a].gid = BTN_ENTER; d->items[a].fn = ok_dialog; d->items[a].text = TEXT(T_OK); a++; d->items[a].type = D_BUTTON; - d->items[a].gid = B_ESC; + d->items[a].gid = BTN_ESC; d->items[a].fn = cancel_dialog; d->items[a].text = TEXT(T_CANCEL); a++; @@ -2111,11 +2111,11 @@ d->items[1].gid = 1; d->items[1].gnum = 999; d->items[2].type = D_BUTTON; - d->items[2].gid = B_ENTER; + d->items[2].gid = BTN_ENTER; d->items[2].fn = ok_dialog; d->items[2].text = TEXT(T_OK); d->items[3].type = D_BUTTON; - d->items[3].gid = B_ESC; + d->items[3].gid = BTN_ESC; d->items[3].fn = cancel_dialog; d->items[3].text = TEXT(T_CANCEL); d->items[4].type = D_END; @@ -2510,8 +2510,8 @@ TEXT(T_FILE), " ", h->file, " ", TEXT(T_ALREADY_EXISTS_AS_DOWNLOAD), " ", TEXT(T_DO_YOU_WISH_TO_OVERWRITE), NULL, h, 3, - TEXT(T_OVERWRITE), does_file_exist_ok, B_ENTER, - TEXT(T_CANCEL), does_file_exist_cancel, B_ESC, + TEXT(T_OVERWRITE), does_file_exist_ok, BTN_ENTER, + TEXT(T_CANCEL), does_file_exist_cancel, BTN_ESC, TEXT(T_RENAME), does_file_exist_rename, NULL ); return; @@ -2537,8 +2537,8 @@ TEXT(T_FILE), " ", h->file, " ", TEXT(T_ALREADY_EXISTS), " ", TEXT(T_DO_YOU_WISH_TO_OVERWRITE), NULL, h, 3, - TEXT(T_OVERWRITE), does_file_exist_ok, B_ENTER, - TEXT(T_CANCEL), does_file_exist_cancel, B_ESC, + TEXT(T_OVERWRITE), does_file_exist_ok, BTN_ENTER, + TEXT(T_CANCEL), does_file_exist_cancel, BTN_ESC, TEXT(T_RENAME), does_file_exist_rename, NULL ); } diff -urN links-2.1pre33.org/objreq.c links-2.1pre33/objreq.c --- links-2.1pre33.org/objreq.c Mon Dec 24 23:33:46 2007 +++ links-2.1pre33/objreq.c Sat May 3 18:30:44 2008 @@ -167,12 +167,12 @@ d->items[1].data = a->passwd; d->items[2].type = D_BUTTON; - d->items[2].gid = B_ENTER; + d->items[2].gid = BTN_ENTER; d->items[2].fn = auth_ok; d->items[2].text = TEXT(T_OK); d->items[3].type = D_BUTTON; - d->items[3].gid = B_ESC; + d->items[3].gid = BTN_ESC; d->items[3].fn = auth_cancel; d->items[3].text = TEXT(T_CANCEL); diff -urN links-2.1pre33.org/os_dep.c links-2.1pre33/os_dep.c --- links-2.1pre33.org/os_dep.c Fri Dec 28 07:40:31 2007 +++ links-2.1pre33/os_dep.c Sat May 3 21:08:57 2008 @@ -1071,7 +1071,7 @@ #if defined(BEOS) -#include +#include int thr_sem_init = 0; sem_id thr_sem; @@ -1263,16 +1263,16 @@ ev.x = ms->col; ev.y = ms->row; /*debug("status: %d %d %d", ms->col, ms->row, ms->fs);*/ - if (ms->fs & (MOUSE_BN1_DOWN | MOUSE_BN2_DOWN | MOUSE_BN3_DOWN)) ev.b = status = B_DOWN | (ms->fs & MOUSE_BN1_DOWN ? B_LEFT : ms->fs & MOUSE_BN2_DOWN ? B_MIDDLE : B_RIGHT); + if (ms->fs & (MOUSE_BN1_DOWN | MOUSE_BN2_DOWN | MOUSE_BN3_DOWN)) ev.b = status = BTN_DOWN | (ms->fs & MOUSE_BN1_DOWN ? BTN_LEFT : ms->fs & MOUSE_BN2_DOWN ? BTN_MIDDLE : BTN_RIGHT); else if (ms->fs & (MOUSE_MOTION_WITH_BN1_DOWN | MOUSE_MOTION_WITH_BN2_DOWN | MOUSE_MOTION_WITH_BN3_DOWN)) { - int b = ms->fs & MOUSE_MOTION_WITH_BN1_DOWN ? B_LEFT : ms->fs & MOUSE_MOTION_WITH_BN2_DOWN ? B_MIDDLE : B_RIGHT; - if (status == -1) b |= B_DOWN; - else b |= B_DRAG; + int b = ms->fs & MOUSE_MOTION_WITH_BN1_DOWN ? BTN_LEFT : ms->fs & MOUSE_MOTION_WITH_BN2_DOWN ? BTN_MIDDLE : BTN_RIGHT; + if (status == -1) b |= BTN_DOWN; + else b |= BTN_DRAG; ev.b = status = b; } else { if (status == -1) continue; - ev.b = (status & BM_BUTT) | B_UP; + ev.b = (status & BM_BUTT) | BTN_UP; status = -1; } if (hard_write(oms->p[1], (unsigned char *)&ev, sizeof(struct event)) != sizeof(struct event)) break; @@ -1598,13 +1598,13 @@ ev.y = gev.y - 1; if (ev.x < 0) ev.x = 0; if (ev.y < 0) ev.y = 0; - if (gev.buttons & GPM_B_LEFT) ev.b = B_LEFT; - else if (gev.buttons & GPM_B_MIDDLE) ev.b = B_MIDDLE; - else if (gev.buttons & GPM_B_RIGHT) ev.b = B_RIGHT; + if (gev.buttons & GPM_B_LEFT) ev.b = BTN_LEFT; + else if (gev.buttons & GPM_B_MIDDLE) ev.b = BTN_MIDDLE; + else if (gev.buttons & GPM_B_RIGHT) ev.b = BTN_RIGHT; else return; - if (gev.type & GPM_DOWN) ev.b |= B_DOWN; - else if (gev.type & GPM_UP) ev.b |= B_UP; - else if (gev.type & GPM_DRAG) ev.b |= B_DRAG; + if (gev.type & GPM_DOWN) ev.b |= BTN_DOWN; + else if (gev.type & GPM_UP) ev.b |= BTN_UP; + else if (gev.type & GPM_DRAG) ev.b |= BTN_DRAG; else return; gms->fn(gms->data, (char *)&ev, sizeof(struct event)); } diff -urN links-2.1pre33.org/os_dep.h links-2.1pre33/os_dep.h --- links-2.1pre33.org/os_dep.h Wed Dec 26 07:00:48 2007 +++ links-2.1pre33/os_dep.h Sat May 3 18:30:45 2008 @@ -111,11 +111,15 @@ #define SHARED_CONFIG_DIR "/etc/" #define NO_FORK_ON_EXIT #define ASSOC_BLOCK +#define SET_WINDOW_TITLE_UTF_8 #include #include -#include +#include +#ifdef __cplusplus +extern "C" { +#endif int be_socket(int, int, int); int be_connect(int, struct sockaddr *, int); int be_getpeername(int, struct sockaddr *, int *); @@ -129,6 +133,9 @@ int be_close(int); int be_select(int, struct fd_set *, struct fd_set *, struct fd_set *, struct timeval *); int be_getsockopt(int, int, int, void *, int *); +#ifdef __cplusplus +} +#endif #elif defined(RISCOS) diff -urN links-2.1pre33.org/os_depx.h links-2.1pre33/os_depx.h --- links-2.1pre33.org/os_depx.h Sun Jul 8 01:23:40 2007 +++ links-2.1pre33/os_depx.h Sat May 3 18:30:46 2008 @@ -45,6 +45,8 @@ #endif #ifdef BEOS +#if IPPROTO_TCP != 6 +/* net_server */ #define socket be_socket #define connect be_connect #define getpeername be_getpeername @@ -58,16 +60,22 @@ #define close be_close #define select be_select #define getsockopt be_getsockopt +/* +#ifdef errno +#undef errno +#endif +#define errno 1 +*/ +#endif #ifndef PF_INET #define PF_INET AF_INET #endif #ifndef SO_ERROR #define SO_ERROR 10001 #endif -#ifdef errno -#undef errno +#ifndef FDSETSIZE +#define FDSETSIZE FD_SETSIZE #endif -#define errno 1 #endif #if defined(O_SIZE) && defined(__EMX__) @@ -83,6 +91,9 @@ #elif defined(GRDRV_ATHEOS) #define loop_select ath_select int ath_select(int n, fd_set *r, fd_set *w, fd_set *e, struct timeval *t); +#elif defined(GRDRV_BEOS) +#define loop_select be_loop_select +int be_loop_select(int n, fd_set *r, fd_set *w, fd_set *e, struct timeval *t); #else #define loop_select select #endif diff -urN links-2.1pre33.org/pmshell.c links-2.1pre33/pmshell.c --- links-2.1pre33.org/pmshell.c Fri Dec 28 07:40:31 2007 +++ links-2.1pre33/pmshell.c Sat May 3 18:30:46 2008 @@ -287,33 +287,33 @@ case WM_BUTTON1DOWN: pm_lock; if (!(win = pm_lookup_window(hwnd))) { pm_unlock; break; } - win->button |= 1 << B_LEFT; + win->button |= 1 << BTN_LEFT; win->lastpos = (unsigned)mp1; - pm_send_event(win, E_MOUSE, (unsigned)mp1 & 0xffff, win->y - ((unsigned)mp1 >> 16), B_DOWN | B_LEFT, 0); + pm_send_event(win, E_MOUSE, (unsigned)mp1 & 0xffff, win->y - ((unsigned)mp1 >> 16), BTN_DOWN | BTN_LEFT, 0); pm_unlock; break; case WM_BUTTON2DOWN: pm_lock; if (!(win = pm_lookup_window(hwnd))) { pm_unlock; break; } - win->button |= 1 << B_RIGHT; + win->button |= 1 << BTN_RIGHT; win->lastpos = (unsigned)mp1; - pm_send_event(win, E_MOUSE, (unsigned)mp1 & 0xffff, win->y - ((unsigned)mp1 >> 16), B_DOWN | B_RIGHT, 0); + pm_send_event(win, E_MOUSE, (unsigned)mp1 & 0xffff, win->y - ((unsigned)mp1 >> 16), BTN_DOWN | BTN_RIGHT, 0); pm_unlock; break; case WM_BUTTON3DOWN: pm_lock; if (!(win = pm_lookup_window(hwnd))) { pm_unlock; break; } - win->button |= 1 << B_MIDDLE; + win->button |= 1 << BTN_MIDDLE; win->lastpos = (unsigned)mp1; - pm_send_event(win, E_MOUSE, (unsigned)mp1 & 0xffff, win->y - ((unsigned)mp1 >> 16), B_DOWN | B_MIDDLE, 0); + pm_send_event(win, E_MOUSE, (unsigned)mp1 & 0xffff, win->y - ((unsigned)mp1 >> 16), BTN_DOWN | BTN_MIDDLE, 0); pm_unlock; break; case WM_BUTTON1UP: case WM_BUTTON1MOTIONEND: pm_lock; if (!(win = pm_lookup_window(hwnd))) { pm_unlock; break; } - if (win->button & (1 << B_LEFT)) pm_send_event(win, E_MOUSE, (unsigned)mp1 & 0xffff, win->y - ((unsigned)mp1 >> 16), B_UP | B_LEFT, 0); - win->button &= ~(1 << B_LEFT); + if (win->button & (1 << BTN_LEFT)) pm_send_event(win, E_MOUSE, (unsigned)mp1 & 0xffff, win->y - ((unsigned)mp1 >> 16), BTN_UP | BTN_LEFT, 0); + win->button &= ~(1 << BTN_LEFT); win->lastpos = (unsigned)mp1; pm_unlock; break; @@ -321,8 +321,8 @@ case WM_BUTTON2MOTIONEND: pm_lock; if (!(win = pm_lookup_window(hwnd))) { pm_unlock; break; } - if (win->button & (1 << B_RIGHT)) pm_send_event(win, E_MOUSE, (unsigned)mp1 & 0xffff, win->y - ((unsigned)mp1 >> 16), B_UP | B_RIGHT, 0); - win->button &= ~(1 << B_RIGHT); + if (win->button & (1 << BTN_RIGHT)) pm_send_event(win, E_MOUSE, (unsigned)mp1 & 0xffff, win->y - ((unsigned)mp1 >> 16), BTN_UP | BTN_RIGHT, 0); + win->button &= ~(1 << BTN_RIGHT); win->lastpos = (unsigned)mp1; pm_unlock; break; @@ -330,8 +330,8 @@ case WM_BUTTON3MOTIONEND: pm_lock; if (!(win = pm_lookup_window(hwnd))) { pm_unlock; break; } - if (win->button & (1 << B_MIDDLE)) pm_send_event(win, E_MOUSE, (unsigned)mp1 & 0xffff, win->y - ((unsigned)mp1 >> 16), B_UP | B_MIDDLE, 0); - win->button &= ~(1 << B_MIDDLE); + if (win->button & (1 << BTN_MIDDLE)) pm_send_event(win, E_MOUSE, (unsigned)mp1 & 0xffff, win->y - ((unsigned)mp1 >> 16), BTN_UP | BTN_MIDDLE, 0); + win->button &= ~(1 << BTN_MIDDLE); win->lastpos = (unsigned)mp1; pm_unlock; break; @@ -340,19 +340,19 @@ if (!(win = pm_lookup_window(hwnd))) { pm_unlock; break; } if (win->lastpos == (unsigned)mp1) { pm_unlock; break; } win->lastpos = (unsigned)mp1; - pm_send_mouse_event(win, (unsigned)mp1 & 0xffff, win->y - ((unsigned)mp1 >> 16), (win->button ? B_DRAG : B_MOVE) | (win->button & (1 << B_LEFT) ? B_LEFT : win->button & (1 << B_MIDDLE) ? B_MIDDLE : win->button & (1 << B_RIGHT) ? B_RIGHT : 0)); + pm_send_mouse_event(win, (unsigned)mp1 & 0xffff, win->y - ((unsigned)mp1 >> 16), (win->button ? BTN_DRAG : BTN_MOVE) | (win->button & (1 << BTN_LEFT) ? BTN_LEFT : win->button & (1 << BTN_MIDDLE) ? BTN_MIDDLE : win->button & (1 << BTN_RIGHT) ? BTN_RIGHT : 0)); pm_unlock; break; case WM_VSCROLL: pm_lock; if (!(win = pm_lookup_window(hwnd))) { pm_unlock; break; } - if ((unsigned)mp2 == SB_LINEUP << 16 || (unsigned)mp2 == SB_LINEDOWN << 16) pm_send_event(win, E_MOUSE, win->lastpos & 0xffff, win->y - (win->lastpos >> 16), ((unsigned)mp2 == SB_LINEUP << 16 ? B_WHEELUP1 : B_WHEELDOWN1) | B_MOVE, 0); + if ((unsigned)mp2 == SB_LINEUP << 16 || (unsigned)mp2 == SB_LINEDOWN << 16) pm_send_event(win, E_MOUSE, win->lastpos & 0xffff, win->y - (win->lastpos >> 16), ((unsigned)mp2 == SB_LINEUP << 16 ? BTN_WHEELUP1 : BTN_WHEELDOWN1) | BTN_MOVE, 0); pm_unlock; break; case WM_HSCROLL: pm_lock; if (!(win = pm_lookup_window(hwnd))) { pm_unlock; break; } - if ((unsigned)mp2 == SB_LINELEFT << 16 || (unsigned)mp2 == SB_LINERIGHT << 16) pm_send_event(win, E_MOUSE, win->lastpos & 0xffff, win->y - (win->lastpos >> 16), ((unsigned)mp2 == SB_LINELEFT << 16 ? B_WHEELLEFT1 : B_WHEELRIGHT1) | B_MOVE, 0); + if ((unsigned)mp2 == SB_LINELEFT << 16 || (unsigned)mp2 == SB_LINERIGHT << 16) pm_send_event(win, E_MOUSE, win->lastpos & 0xffff, win->y - (win->lastpos >> 16), ((unsigned)mp2 == SB_LINELEFT << 16 ? BTN_WHEELLEFT1 : BTN_WHEELRIGHT1) | BTN_MOVE, 0); pm_unlock; break; } diff -urN links-2.1pre33.org/session.c links-2.1pre33/session.c --- links-2.1pre33.org/session.c Thu Jan 31 21:48:26 2008 +++ links-2.1pre33/session.c Sat May 3 18:40:32 2008 @@ -250,7 +250,7 @@ unsigned char *u = stracpy(title); if (strchr(u, POST_CHAR)) *strchr(u, POST_CHAR) = 0; if (!t) return; - msg_box(ses->term, getml(u, NULL), TEXT(T_ERROR), AL_CENTER | AL_EXTD_TEXT, TEXT(T_ERROR_LOADING), " ", u, ":\n\n", t, NULL, ses, 1, TEXT(T_CANCEL), NULL, B_ENTER | B_ESC/*, _("Retry"), NULL, 0 !!! FIXME: retry */); + msg_box(ses->term, getml(u, NULL), TEXT(T_ERROR), AL_CENTER | AL_EXTD_TEXT, TEXT(T_ERROR_LOADING), " ", u, ":\n\n", t, NULL, ses, 1, TEXT(T_CANCEL), NULL, BTN_ENTER | BTN_ESC/*, _("Retry"), NULL, 0 !!! FIXME: retry */); } static inline unsigned char hx(int a) @@ -520,7 +520,7 @@ dlg->udata = down; dlg->align = AL_CENTER; dlg->items[0].type = D_BUTTON; - dlg->items[0].gid = B_ENTER | B_ESC; + dlg->items[0].gid = BTN_ENTER | BTN_ESC; dlg->items[0].fn = dlg_undisplay_download; dlg->items[0].text = TEXT(T_BACKGROUND); dlg->items[1].type = D_BUTTON; @@ -668,7 +668,7 @@ if (get_download_ses(down)) { unsigned char *emsg = stracpy(errno ? strerror(errno) : "Zero returned"); unsigned char *msg = stracpy(down->file); - msg_box(get_download_ses(down)->term, getml(msg, emsg, NULL), TEXT(T_DOWNLOAD_ERROR), AL_CENTER | AL_EXTD_TEXT, TEXT(T_COULD_NOT_WRITE_TO_FILE), " ", msg, ": ", emsg, NULL, NULL, 1, TEXT(T_CANCEL), NULL, B_ENTER | B_ESC); + msg_box(get_download_ses(down)->term, getml(msg, emsg, NULL), TEXT(T_DOWNLOAD_ERROR), AL_CENTER | AL_EXTD_TEXT, TEXT(T_COULD_NOT_WRITE_TO_FILE), " ", msg, ": ", emsg, NULL, NULL, 1, TEXT(T_CANCEL), NULL, BTN_ENTER | BTN_ESC); } return -1; } @@ -758,7 +758,7 @@ if (t) { unsigned char *tt = stracpy(down->url); if (strchr(tt, POST_CHAR)) *strchr(tt, POST_CHAR) = 0; - msg_box(get_download_ses(down)->term, getml(tt, NULL), TEXT(T_DOWNLOAD_ERROR), AL_CENTER | AL_EXTD_TEXT, TEXT(T_ERROR_DOWNLOADING), " ", tt, ":\n\n", t, NULL, get_download_ses(down), 1, TEXT(T_CANCEL), NULL, B_ENTER | B_ESC/*, TEXT(T_RETRY), NULL, 0 !!! FIXME: retry */); + msg_box(get_download_ses(down)->term, getml(tt, NULL), TEXT(T_DOWNLOAD_ERROR), AL_CENTER | AL_EXTD_TEXT, TEXT(T_ERROR_DOWNLOADING), " ", tt, ":\n\n", t, NULL, get_download_ses(down), 1, TEXT(T_CANCEL), NULL, BTN_ENTER | BTN_ESC/*, TEXT(T_RETRY), NULL, 0 !!! FIXME: retry */); } } else { if (down->prog) { @@ -835,7 +835,7 @@ if (!ses) goto x; msg = stracpy(file); msge = stracpy(strerror(errno)); - msg_box(ses->term, getml(msg, msge, NULL), TEXT(T_DOWNLOAD_ERROR), AL_CENTER | AL_EXTD_TEXT, TEXT(T_COULD_NOT_CREATE_FILE), " ", msg, ": ", msge, NULL, NULL, 1, TEXT(T_CANCEL), NULL, B_ENTER | B_ESC); + msg_box(ses->term, getml(msg, msge, NULL), TEXT(T_DOWNLOAD_ERROR), AL_CENTER | AL_EXTD_TEXT, TEXT(T_COULD_NOT_CREATE_FILE), " ", msg, ": ", msge, NULL, NULL, 1, TEXT(T_CANCEL), NULL, BTN_ENTER | BTN_ESC); goto x; } set_bin(h); @@ -1580,7 +1580,7 @@ } u = stracpy(ce->url); if ((uu = strchr(u, POST_CHAR))) *uu = 0; - msg_box(term, getml(u, NULL), TEXT(T_DECOMPRESSION_ERROR), AL_CENTER | AL_EXTD_TEXT, TEXT(T_ERROR_DECOMPRESSING_), u, TEXT(T__wITH_), lib, ": ", msg, NULL, NULL, 1, TEXT(T_CANCEL), NULL, B_ENTER | B_ESC); + msg_box(term, getml(u, NULL), TEXT(T_DECOMPRESSION_ERROR), AL_CENTER | AL_EXTD_TEXT, TEXT(T_ERROR_DECOMPRESSING_), u, TEXT(T__wITH_), lib, ": ", msg, NULL, NULL, 1, TEXT(T_CANCEL), NULL, BTN_ENTER | BTN_ESC); } #endif @@ -2230,7 +2230,7 @@ mem_free(file); goto new_name; } - msg_box(ses->term, NULL, TEXT(T_DOWNLOAD_ERROR), AL_CENTER | AL_EXTD_TEXT, TEXT(T_COULD_NOT_CREATE_TEMPORARY_FILE), NULL, NULL, 1, TEXT(T_CANCEL), NULL, B_ENTER | B_ESC); + msg_box(ses->term, NULL, TEXT(T_DOWNLOAD_ERROR), AL_CENTER | AL_EXTD_TEXT, TEXT(T_COULD_NOT_CREATE_TEMPORARY_FILE), NULL, NULL, 1, TEXT(T_CANCEL), NULL, BTN_ENTER | BTN_ESC); } if (ses->tq_prog) mem_free(file); tp_cancel(ses); @@ -2452,7 +2452,7 @@ i++; d->items[i].type = D_BUTTON; d->items[i].fn = prog_sel_cancel; - d->items[i].gid = B_ESC; + d->items[i].gid = BTN_ESC; d->items[i].text = TEXT(T_CANCEL); d->items[i+1].type = D_END; do_dialog(ses->term, d, ml); @@ -2478,12 +2478,12 @@ } m1 = stracpy(ct); if (!a) { - if (!anonymous) msg_box(ses->term, getml(m1, NULL), TEXT(T_UNKNOWN_TYPE), AL_CENTER | AL_EXTD_TEXT, TEXT(T_CONTEN_TYPE_IS), " ", m1, ".\n", TEXT(T_DO_YOU_WANT_TO_SAVE_OR_DISLPAY_THIS_FILE), NULL, ses, 3, TEXT(T_SAVE), tp_save, B_ENTER, TEXT(T_DISPLAY), tp_display, 0, TEXT(T_CANCEL), tp_cancel, B_ESC); - else msg_box(ses->term, getml(m1, NULL), TEXT(T_UNKNOWN_TYPE), AL_CENTER | AL_EXTD_TEXT, TEXT(T_CONTEN_TYPE_IS), " ", m1, ".\n", TEXT(T_DO_YOU_WANT_TO_SAVE_OR_DISLPAY_THIS_FILE), NULL, ses, 2, TEXT(T_DISPLAY), tp_display, B_ENTER, TEXT(T_CANCEL), tp_cancel, B_ESC); + if (!anonymous) msg_box(ses->term, getml(m1, NULL), TEXT(T_UNKNOWN_TYPE), AL_CENTER | AL_EXTD_TEXT, TEXT(T_CONTEN_TYPE_IS), " ", m1, ".\n", TEXT(T_DO_YOU_WANT_TO_SAVE_OR_DISLPAY_THIS_FILE), NULL, ses, 3, TEXT(T_SAVE), tp_save, BTN_ENTER, TEXT(T_DISPLAY), tp_display, 0, TEXT(T_CANCEL), tp_cancel, BTN_ESC); + else msg_box(ses->term, getml(m1, NULL), TEXT(T_UNKNOWN_TYPE), AL_CENTER | AL_EXTD_TEXT, TEXT(T_CONTEN_TYPE_IS), " ", m1, ".\n", TEXT(T_DO_YOU_WANT_TO_SAVE_OR_DISLPAY_THIS_FILE), NULL, ses, 2, TEXT(T_DISPLAY), tp_display, BTN_ENTER, TEXT(T_CANCEL), tp_cancel, BTN_ESC); } else { m2 = stracpy(a[0].label ? a[0].label : (unsigned char *)""); - if (!anonymous) msg_box(ses->term, getml(m1, m2, NULL), TEXT(T_WHAT_TO_DO), AL_CENTER | AL_EXTD_TEXT, TEXT(T_CONTEN_TYPE_IS), " ", m1, ".\n", TEXT(T_DO_YOU_WANT_TO_OPEN_FILE_WITH), " ", m2, ", ", TEXT(T_SAVE_IT_OR_DISPLAY_IT), NULL, ses, 4, TEXT(T_OPEN), tp_open, B_ENTER, TEXT(T_SAVE), tp_save, 0, TEXT(T_DISPLAY), tp_display, 0, TEXT(T_CANCEL), tp_cancel, B_ESC); - else msg_box(ses->term, getml(m1, m2, NULL), TEXT(T_WHAT_TO_DO), AL_CENTER | AL_EXTD_TEXT, TEXT(T_CONTEN_TYPE_IS), " ", m1, ".\n", TEXT(T_DO_YOU_WANT_TO_OPEN_FILE_WITH), " ", m2, ", ", TEXT(T_SAVE_IT_OR_DISPLAY_IT), NULL, ses, 3, TEXT(T_OPEN), tp_open, B_ENTER, TEXT(T_DISPLAY), tp_display, 0, TEXT(T_CANCEL), tp_cancel, B_ESC); + if (!anonymous) msg_box(ses->term, getml(m1, m2, NULL), TEXT(T_WHAT_TO_DO), AL_CENTER | AL_EXTD_TEXT, TEXT(T_CONTEN_TYPE_IS), " ", m1, ".\n", TEXT(T_DO_YOU_WANT_TO_OPEN_FILE_WITH), " ", m2, ", ", TEXT(T_SAVE_IT_OR_DISPLAY_IT), NULL, ses, 4, TEXT(T_OPEN), tp_open, BTN_ENTER, TEXT(T_SAVE), tp_save, 0, TEXT(T_DISPLAY), tp_display, 0, TEXT(T_CANCEL), tp_cancel, BTN_ESC); + else msg_box(ses->term, getml(m1, m2, NULL), TEXT(T_WHAT_TO_DO), AL_CENTER | AL_EXTD_TEXT, TEXT(T_CONTEN_TYPE_IS), " ", m1, ".\n", TEXT(T_DO_YOU_WANT_TO_OPEN_FILE_WITH), " ", m2, ", ", TEXT(T_SAVE_IT_OR_DISPLAY_IT), NULL, ses, 3, TEXT(T_OPEN), tp_open, BTN_ENTER, TEXT(T_DISPLAY), tp_display, 0, TEXT(T_CANCEL), tp_cancel, BTN_ESC); } if (n)mem_free(a); if (ct)mem_free(ct); @@ -2579,7 +2579,7 @@ ses_destroy_defered_jump(ses); if ((fn = get_external_protocol_function(url))) { if (proxies.only_proxies && url_bypasses_socks(url)) { - msg_box(ses->term, NULL, TEXT(T_ERROR), AL_CENTER, TEXT(T_NO_PROXY), NULL, 1, TEXT(T_CANCEL), NULL, B_ENTER | B_ESC); + msg_box(ses->term, NULL, TEXT(T_ERROR), AL_CENTER, TEXT(T_NO_PROXY), NULL, 1, TEXT(T_CANCEL), NULL, BTN_ENTER | BTN_ESC); return; } fn(ses, url); @@ -2751,7 +2751,7 @@ add_to_list(sessions, ses); if (first_use) { first_use = 0; - msg_box(term, NULL, TEXT(T_WELCOME), AL_CENTER | AL_EXTD_TEXT, TEXT(T_WELCOME_TO_LINKS), "\n\n", TEXT(T_BASIC_HELP), NULL, NULL, 1, TEXT(T_OK), NULL, B_ENTER | B_ESC); + msg_box(term, NULL, TEXT(T_WELCOME), AL_CENTER | AL_EXTD_TEXT, TEXT(T_WELCOME_TO_LINKS), "\n\n", TEXT(T_BASIC_HELP), NULL, NULL, 1, TEXT(T_OK), NULL, BTN_ENTER | BTN_ESC); } return ses; } diff -urN links-2.1pre33.org/svgalib.c links-2.1pre33/svgalib.c --- links-2.1pre33.org/svgalib.c Sun Oct 28 02:06:25 2007 +++ links-2.1pre33/svgalib.c Sat May 3 18:30:48 2008 @@ -1892,80 +1892,80 @@ /* Test movement without buttons */ if (!(mouse_buttons & BUTTON_MASK) && moved) { mouse_aggregate_flag=1; - mouse_aggregate_action=B_MOVE; + mouse_aggregate_action=BTN_MOVE; } /* Test presses */ if ((button&MOUSE_LEFTBUTTON)&&!(mouse_buttons&MOUSE_LEFTBUTTON)){ mouse_aggregate_flush(); - if (mh) mh(cd,mouse_x, mouse_y,B_LEFT|B_DOWN); + if (mh) mh(cd,mouse_x, mouse_y,BTN_LEFT|BTN_DOWN); } if ((button&MOUSE_MIDDLEBUTTON)&&!(mouse_buttons&MOUSE_MIDDLEBUTTON)){ mouse_aggregate_flush(); - if (mh) mh(cd,mouse_x, mouse_y,B_MIDDLE|B_DOWN); + if (mh) mh(cd,mouse_x, mouse_y,BTN_MIDDLE|BTN_DOWN); } if ((button&MOUSE_RIGHTBUTTON)&&!(mouse_buttons&MOUSE_RIGHTBUTTON)){ mouse_aggregate_flush(); - if (mh) mh(cd,mouse_x, mouse_y,B_RIGHT|B_DOWN); + if (mh) mh(cd,mouse_x, mouse_y,BTN_RIGHT|BTN_DOWN); } if ((button&MOUSE_FOURTHBUTTON)&&!(mouse_buttons&MOUSE_FOURTHBUTTON)){ mouse_aggregate_flush(); - if (mh) mh(cd,mouse_x, mouse_y,B_RIGHT|B_FOURTH); + if (mh) mh(cd,mouse_x, mouse_y,BTN_RIGHT|BTN_FOURTH); } if ((button&MOUSE_FIFTHBUTTON)&&!(mouse_buttons&MOUSE_FIFTHBUTTON)){ mouse_aggregate_flush(); - if (mh) mh(cd,mouse_x, mouse_y,B_RIGHT|B_FIFTH); + if (mh) mh(cd,mouse_x, mouse_y,BTN_RIGHT|BTN_FIFTH); } if ((button&MOUSE_SIXTHBUTTON)&&!(mouse_buttons&MOUSE_SIXTHBUTTON)){ mouse_aggregate_flush(); - /*if (mh) mh(cd,mouse_x, mouse_y,B_RIGHT|B_SIXTH);*/ + /*if (mh) mh(cd,mouse_x, mouse_y,BTN_RIGHT|BTN_SIXTH);*/ switch_virtual_device(VD_NEXT); } /* Test releases */ if (!(button&MOUSE_LEFTBUTTON)&&(mouse_buttons&MOUSE_LEFTBUTTON)){ mouse_aggregate_flush(); - if (mh) mh(cd,mouse_x, mouse_y,B_LEFT|B_UP); + if (mh) mh(cd,mouse_x, mouse_y,BTN_LEFT|BTN_UP); } if (!(button&MOUSE_MIDDLEBUTTON)&&(mouse_buttons&MOUSE_MIDDLEBUTTON)){ mouse_aggregate_flush(); - if (mh) mh(cd,mouse_x, mouse_y,B_MIDDLE|B_UP); + if (mh) mh(cd,mouse_x, mouse_y,BTN_MIDDLE|BTN_UP); } if (!(button&MOUSE_RIGHTBUTTON)&&(mouse_buttons&MOUSE_RIGHTBUTTON)){ mouse_aggregate_flush(); - if (mh) mh(cd,mouse_x, mouse_y,B_RIGHT|B_UP); + if (mh) mh(cd,mouse_x, mouse_y,BTN_RIGHT|BTN_UP); } if (!(button&MOUSE_FOURTHBUTTON)&&(mouse_buttons&MOUSE_FOURTHBUTTON)){ mouse_aggregate_flush(); - if (mh) mh(cd,mouse_x, mouse_y,B_FOURTH|B_UP); + if (mh) mh(cd,mouse_x, mouse_y,BTN_FOURTH|BTN_UP); } if (!(button&MOUSE_FIFTHBUTTON)&&(mouse_buttons&MOUSE_FIFTHBUTTON)){ mouse_aggregate_flush(); - if (mh) mh(cd,mouse_x, mouse_y,B_FIFTH|B_UP); + if (mh) mh(cd,mouse_x, mouse_y,BTN_FIFTH|BTN_UP); } if (!(button&MOUSE_SIXTHBUTTON)&&(mouse_buttons&MOUSE_SIXTHBUTTON)){ mouse_aggregate_flush(); - /*if (mh) mh(cd,mouse_x, mouse_y,B_SIXTH|B_UP);*/ + /*if (mh) mh(cd,mouse_x, mouse_y,BTN_SIXTH|BTN_UP);*/ } - if (drx < 0 && mh) mh(cd, mouse_x, mouse_y, B_MOVE | B_WHEELUP); - if (drx > 0 && mh) mh(cd, mouse_x, mouse_y, B_MOVE | B_WHEELDOWN); + if (drx < 0 && mh) mh(cd, mouse_x, mouse_y, BTN_MOVE | BTN_WHEELUP); + if (drx > 0 && mh) mh(cd, mouse_x, mouse_y, BTN_MOVE | BTN_WHEELDOWN); - if (dry < 0 && mh) mh(cd, mouse_x, mouse_y, B_MOVE | B_WHEELLEFT); - if (dry > 0 && mh) mh(cd, mouse_x, mouse_y, B_MOVE | B_WHEELRIGHT); + if (dry < 0 && mh) mh(cd, mouse_x, mouse_y, BTN_MOVE | BTN_WHEELLEFT); + if (dry > 0 && mh) mh(cd, mouse_x, mouse_y, BTN_MOVE | BTN_WHEELRIGHT); /* Test drag */ if (! ((button^mouse_buttons) & BUTTON_MASK ) && moved && (button & BUTTON_MASK)){ mouse_aggregate_flag=1; mouse_aggregate_action=( - button&MOUSE_LEFTBUTTON?B_LEFT: - button&MOUSE_RIGHTBUTTON?B_RIGHT: - button&MOUSE_MIDDLEBUTTON?B_MIDDLE: - button&MOUSE_FOURTHBUTTON?B_FOURTH: - button&MOUSE_FIFTHBUTTON?B_FIFTH: - /*button&MOUSE_SIXTHBUTTON?B_SIXTH:*/ - 0) | B_DRAG; + button&MOUSE_LEFTBUTTON?BTN_LEFT: + button&MOUSE_RIGHTBUTTON?BTN_RIGHT: + button&MOUSE_MIDDLEBUTTON?BTN_MIDDLE: + button&MOUSE_FOURTHBUTTON?BTN_FOURTH: + button&MOUSE_FIFTHBUTTON?BTN_FIFTH: + /*button&MOUSE_SIXTHBUTTON?BTN_SIXTH:*/ + 0) | BTN_DRAG; } mouse_buttons=button; } diff -urN links-2.1pre33.org/types.c links-2.1pre33/types.c --- links-2.1pre33.org/types.c Tue Dec 11 19:45:39 2007 +++ links-2.1pre33/types.c Sat May 3 18:30:50 2008 @@ -350,11 +350,11 @@ d->items[p].data = (unsigned char *)&new->accept_ftp; d->items[p++].dlen = sizeof(int); d->items[p].type = D_BUTTON; - d->items[p].gid = B_ENTER; + d->items[p].gid = BTN_ENTER; d->items[p].fn = ok_dialog; d->items[p++].text = TEXT(T_OK); d->items[p].type = D_BUTTON; - d->items[p].gid = B_ESC; + d->items[p].gid = BTN_ESC; d->items[p].text = TEXT(T_CANCEL); d->items[p++].fn = cancel_dialog; d->items[p++].type = D_END; @@ -668,11 +668,11 @@ d->items[1].data = ct; d->items[1].fn = check_nonempty; d->items[2].type = D_BUTTON; - d->items[2].gid = B_ENTER; + d->items[2].gid = BTN_ENTER; d->items[2].fn = ok_dialog; d->items[2].text = TEXT(T_OK); d->items[3].type = D_BUTTON; - d->items[3].gid = B_ESC; + d->items[3].gid = BTN_ESC; d->items[3].text = TEXT(T_CANCEL); d->items[3].fn = cancel_dialog; d->items[4].type = D_END; diff -urN links-2.1pre33.org/view.c links-2.1pre33/view.c --- links-2.1pre33.org/view.c Mon Dec 24 23:33:47 2007 +++ links-2.1pre33/view.c Sat May 3 18:30:51 2008 @@ -2028,7 +2028,7 @@ *data = NULL; m1 = stracpy(sv->value); m2 = stracpy(strerror(errno)); - msg_box(ses->term, getml(m1, m2, NULL), TEXT(T_ERROR_WHILE_POSTING_FORM), AL_CENTER | AL_EXTD_TEXT, TEXT(T_COULD_NOT_GET_FILE), " ", m1, ": ", m2, NULL, ses, 1, TEXT(T_CANCEL), NULL, B_ENTER | B_ESC); + msg_box(ses->term, getml(m1, m2, NULL), TEXT(T_ERROR_WHILE_POSTING_FORM), AL_CENTER | AL_EXTD_TEXT, TEXT(T_COULD_NOT_GET_FILE), " ", m1, ": ", m2, NULL, ses, 1, TEXT(T_CANCEL), NULL, BTN_ENTER | BTN_ESC); } void reset_form(struct f_data_c *f, int form_num) @@ -2878,7 +2878,7 @@ if (!ses->search_word) { if (!ses->last_search_word) { no: - msg_box(ses->term, NULL, TEXT(T_SEARCH), AL_CENTER, TEXT(T_NO_PREVIOUS_SEARCH), NULL, 1, TEXT(T_CANCEL), NULL, B_ENTER | B_ESC); + msg_box(ses->term, NULL, TEXT(T_SEARCH), AL_CENTER, TEXT(T_NO_PREVIOUS_SEARCH), NULL, 1, TEXT(T_CANCEL), NULL, BTN_ENTER | BTN_ESC); return; } ses->search_word = stracpy(ses->last_search_word); @@ -2910,7 +2910,7 @@ p -= f->yw; } } while ((c += f->yw ? f->yw : 1) < f->f_data->y + f->yw); - msg_box(ses->term, NULL, TEXT(T_SEARCH), AL_CENTER, TEXT(T_SEARCH_STRING_NOT_FOUND), NULL, 1, TEXT(T_CANCEL), NULL, B_ENTER | B_ESC); + msg_box(ses->term, NULL, TEXT(T_SEARCH), AL_CENTER, TEXT(T_SEARCH_STRING_NOT_FOUND), NULL, 1, TEXT(T_CANCEL), NULL, BTN_ENTER | BTN_ESC); } void find_next_back(struct session *ses, struct f_data_c *f, int a) @@ -3081,12 +3081,12 @@ x = 1; fd->vs->current_link = l - fd->f_data->links; fd->vs->orig_link = fd->vs->current_link; - if (l->type == L_LINK || l->type == L_BUTTON || l->type == L_CHECKBOX || l->type == L_SELECT) if ((ev->b & BM_ACT) == B_UP) { + if (l->type == L_LINK || l->type == L_BUTTON || l->type == L_CHECKBOX || l->type == L_SELECT) if ((ev->b & BM_ACT) == BTN_UP) { fd->active = 1; draw_to_window(ses->win, (void (*)(struct terminal *, void *))draw_doc_c, fd); change_screen_status(ses); print_screen_status(ses); - if ((ev->b & BM_BUTT) < B_MIDDLE) x = enter(ses, fd, 0); + if ((ev->b & BM_BUTT) < BTN_MIDDLE) x = enter(ses, fd, 0); else link_menu(ses->term, NULL, ses); } @@ -3481,13 +3481,13 @@ } } if (ev->ev == EV_MOUSE) { - if (ev->b == (B_DOWN | B_FOURTH)) { + if (ev->b == (BTN_DOWN | BTN_FOURTH)) { go_back(ses); goto x; } #ifdef G if (ses->locked_link) { - if ((ev->b & BM_ACT) != B_MOVE) { + if ((ev->b & BM_ACT) != BTN_MOVE) { ses->locked_link = 0; #ifdef JS /* process onblur handler of current link */ @@ -3510,7 +3510,7 @@ } else return; } #endif - if (ev->y < gf_val(1, G_BFU_FONT_SIZE) && (ev->b & BM_ACT) == B_DOWN) { + if (ev->y < gf_val(1, G_BFU_FONT_SIZE) && (ev->b & BM_ACT) == BTN_DOWN) { #ifdef G if (F && ev->x < ses->back_size) { go_back(ses); @@ -3790,7 +3790,7 @@ struct f_data_c *f; if (!(f = current_frame(ses)) || !f->f_data) return; if ((h = create_download_file(ses, ses->term->cwd, file, 0, 0)) < 0) return; - if (dump_to_file(f->f_data, h)) msg_box(ses->term, NULL, TEXT(T_SAVE_ERROR), AL_CENTER, TEXT(T_ERROR_WRITING_TO_FILE), NULL, 1, TEXT(T_CANCEL), NULL, B_ENTER | B_ESC); + if (dump_to_file(f->f_data, h)) msg_box(ses->term, NULL, TEXT(T_SAVE_ERROR), AL_CENTER, TEXT(T_ERROR_WRITING_TO_FILE), NULL, 1, TEXT(T_CANCEL), NULL, BTN_ENTER | BTN_ESC); close(h); } @@ -4160,7 +4160,7 @@ int l = 0; unsigned char *a; if (!lo || !frame || !frame->vs || !frame->f_data) { - msg_box(term, NULL, TEXT(T_INFO), AL_LEFT, TEXT(T_YOU_ARE_NOWHERE), NULL, 1, TEXT(T_OK), NULL, B_ENTER | B_ESC); + msg_box(term, NULL, TEXT(T_INFO), AL_LEFT, TEXT(T_YOU_ARE_NOWHERE), NULL, 1, TEXT(T_OK), NULL, BTN_ENTER | BTN_ESC); return; } s = init_str(); @@ -4226,7 +4226,7 @@ add_to_str(&s, &l, a); mem_free(a); } - msg_box(term, getml(s, NULL), TEXT(T_INFO), AL_LEFT, s, NULL, 1, TEXT(T_OK), NULL, B_ENTER | B_ESC); + msg_box(term, getml(s, NULL), TEXT(T_INFO), AL_LEFT, s, NULL, 1, TEXT(T_OK), NULL, BTN_ENTER | BTN_ESC); } void state_msg(struct session *ses) @@ -4241,7 +4241,7 @@ unsigned char *s, *ss; int len; if (list_empty(ses->history)) { - msg_box(ses->term, NULL, TEXT(T_HEADER_INFO), AL_LEFT, TEXT(T_YOU_ARE_NOWHERE), NULL, 1, TEXT(T_OK), NULL, B_ENTER | B_ESC); + msg_box(ses->term, NULL, TEXT(T_HEADER_INFO), AL_LEFT, TEXT(T_YOU_ARE_NOWHERE), NULL, 1, TEXT(T_OK), NULL, BTN_ENTER | BTN_ESC); return; } if (!find_in_cache(cur_loc(ses)->url, &ce)) { @@ -4252,6 +4252,6 @@ while ((ss = strstr(s, "\r\n"))) memmove(ss, ss + 1, strlen(ss)); while (*s && s[strlen(s) - 1] == '\n') s[strlen(s) - 1] = 0; } - msg_box(ses->term, getml(s, NULL), TEXT(T_HEADER_INFO), AL_LEFT, s, NULL, 1, TEXT(T_OK), NULL, B_ENTER | B_ESC); + msg_box(ses->term, getml(s, NULL), TEXT(T_HEADER_INFO), AL_LEFT, s, NULL, 1, TEXT(T_OK), NULL, BTN_ENTER | BTN_ESC); } } diff -urN links-2.1pre33.org/view_gr.c links-2.1pre33/view_gr.c --- links-2.1pre33.org/view_gr.c Mon Dec 24 23:33:47 2007 +++ links-2.1pre33/view_gr.c Sat May 3 18:30:52 2008 @@ -826,7 +826,7 @@ void g_text_mouse(struct f_data_c *fd, struct g_object_text *a, int x, int y, int b) { int e; - g_set_current_link(fd, a, x, y, (b == (B_UP | B_LEFT))); + g_set_current_link(fd, a, x, y, (b == (BTN_UP | BTN_LEFT))); #ifdef JS if (fd->vs&&fd->f_data&&fd->vs->current_link>=0&&fd->vs->current_linkf_data->nlinks) @@ -835,16 +835,16 @@ struct link *l=&(fd->f_data->links[fd->vs->current_link]); - if (l->js_event&&l->js_event->up_code&&(b&BM_ACT)==B_UP) + if (l->js_event&&l->js_event->up_code&&(b&BM_ACT)==BTN_UP) jsint_execute_code(fd,l->js_event->up_code,strlen(l->js_event->up_code),-1,-1,-1, NULL); - if (l->js_event&&l->js_event->down_code&&(b&BM_ACT)==B_DOWN) + if (l->js_event&&l->js_event->down_code&&(b&BM_ACT)==BTN_DOWN) jsint_execute_code(fd,l->js_event->down_code,strlen(l->js_event->down_code),-1,-1,-1, NULL); } #endif - if (b == (B_UP | B_LEFT)) { + if (b == (BTN_UP | BTN_LEFT)) { int ix = ismap_x, iy = ismap_y, il = ismap_link; ismap_x = x; ismap_y = y; @@ -861,7 +861,7 @@ if (e == 2) fd->f_data->locked_on = (struct g_object *)a; return; } - if (b == (B_UP | B_RIGHT)) { + if (b == (BTN_UP | BTN_RIGHT)) { if (fd->vs->current_link != -1) link_menu(fd->ses->term, NULL, fd->ses); } } @@ -1021,17 +1021,17 @@ if (!fd->f_data) return 0; switch (ev->ev) { case EV_MOUSE: - if ((ev->b & BM_BUTT) == B_WHEELUP) goto up; - if ((ev->b & BM_BUTT) == B_WHEELDOWN) goto down; - if ((ev->b & BM_BUTT) == B_WHEELUP1) goto up1; - if ((ev->b & BM_BUTT) == B_WHEELDOWN1) goto down1; - if ((ev->b & BM_BUTT) == B_WHEELLEFT) goto left; - if ((ev->b & BM_BUTT) == B_WHEELRIGHT) goto right; - if ((ev->b & BM_BUTT) == B_WHEELLEFT1) goto left1; - if ((ev->b & BM_BUTT) == B_WHEELRIGHT1) goto right1; + if ((ev->b & BM_BUTT) == BTN_WHEELUP) goto up; + if ((ev->b & BM_BUTT) == BTN_WHEELDOWN) goto down; + if ((ev->b & BM_BUTT) == BTN_WHEELUP1) goto up1; + if ((ev->b & BM_BUTT) == BTN_WHEELDOWN1) goto down1; + if ((ev->b & BM_BUTT) == BTN_WHEELLEFT) goto left; + if ((ev->b & BM_BUTT) == BTN_WHEELRIGHT) goto right; + if ((ev->b & BM_BUTT) == BTN_WHEELLEFT1) goto left1; + if ((ev->b & BM_BUTT) == BTN_WHEELRIGHT1) goto right1; x = ev->x; y = ev->y; - if ((ev->b & BM_ACT) == B_MOVE) ses->scrolling = 0; + if ((ev->b & BM_ACT) == BTN_MOVE) ses->scrolling = 0; if (ses->scrolling == 1) process_sb_move(fd, ses->scrolltype ? ev->x : ev->y); if (ses->scrolling == 2) { fd->vs->view_pos = -ev->y + ses->scrolloff; @@ -1039,31 +1039,31 @@ fd->vs->orig_view_pos = fd->vs->view_pos; fd->vs->orig_view_posx = fd->vs->view_posx; draw_graphical_doc(fd->ses->term, fd, 1); - if ((ev->b & BM_ACT) == B_UP) { + if ((ev->b & BM_ACT) == BTN_UP) { ses->scrolling = 0; } break; } if (ses->scrolling) { - if ((ev->b & BM_ACT) == B_UP) { + if ((ev->b & BM_ACT) == BTN_UP) { ses->scrolling = 0; } break; } - if ((ev->b & BM_ACT) == B_DOWN && fd->f_data->vsb && ev_in_rect(ev, fd->xw - G_SCROLL_BAR_WIDTH, 0, fd->xw, fd->yw - fd->f_data->hsb * G_SCROLL_BAR_WIDTH)) { + if ((ev->b & BM_ACT) == BTN_DOWN && fd->f_data->vsb && ev_in_rect(ev, fd->xw - G_SCROLL_BAR_WIDTH, 0, fd->xw, fd->yw - fd->f_data->hsb * G_SCROLL_BAR_WIDTH)) { process_sb_event(fd, ev->y, 0); break; } - if ((ev->b & BM_ACT) == B_DOWN && fd->f_data->hsb && ev_in_rect(ev, 0, fd->yw - G_SCROLL_BAR_WIDTH, fd->xw - fd->f_data->vsb * G_SCROLL_BAR_WIDTH, fd->yw)) { + if ((ev->b & BM_ACT) == BTN_DOWN && fd->f_data->hsb && ev_in_rect(ev, 0, fd->yw - G_SCROLL_BAR_WIDTH, fd->xw - fd->f_data->vsb * G_SCROLL_BAR_WIDTH, fd->yw)) { process_sb_event(fd, ev->x, 1); break; } if (fd->f_data->vsb && ev_in_rect(ev, fd->xw - G_SCROLL_BAR_WIDTH, 0, fd->xw, fd->yw)) return 0; if (fd->f_data->hsb && ev_in_rect(ev, 0, fd->yw - G_SCROLL_BAR_WIDTH, fd->xw, fd->yw)) return 0; - if ((ev->b & BM_ACT) == B_DOWN && (ev->b & BM_BUTT) == B_MIDDLE) { + if ((ev->b & BM_ACT) == BTN_DOWN && (ev->b & BM_BUTT) == BTN_MIDDLE) { scrll: ses->scrolltype = ev->x + fd->vs->view_posx; ses->scrolloff = ev->y + fd->vs->view_pos; @@ -1076,7 +1076,7 @@ fd->vs->g_display_link = 0; if (fd->vs->current_link >= 0 && fd->vs->current_link < fd->f_data->nlinks) redraw_link(fd, fd->vs->current_link); } - if (!(ev->b == (B_LEFT | B_UP) && fd->f_data->hlt_len && fd->f_data->start_highlight_x == -1)) { + if (!(ev->b == (BTN_LEFT | BTN_UP) && fd->f_data->hlt_len && fd->f_data->start_highlight_x == -1)) { fd->vs->current_link = -1; fd->vs->orig_link = fd->vs->current_link; fd->f_data->root->mouse_event(fd, fd->f_data->root, ev->x + fd->vs->view_posx, ev->y + fd->vs->view_pos, ev->b); @@ -1086,14 +1086,14 @@ } /* highlight text */ - if ((ev->b & BM_ACT) == B_DOWN && (ev->b & BM_BUTT) == B_LEFT) { /* start highlighting */ + if ((ev->b & BM_ACT) == BTN_DOWN && (ev->b & BM_BUTT) == BTN_LEFT) { /* start highlighting */ fd->f_data->start_highlight_x = ev->x; fd->f_data->start_highlight_y = ev->y; fd->f_data->hlt_len = 0; fd->f_data->hlt_pos = -1; return 1; } - if (((ev->b & BM_ACT) == B_DRAG || (ev->b & BM_ACT) == B_UP) && (ev->b & BM_BUTT) == B_LEFT) { /* stop highlighting */ + if (((ev->b & BM_ACT) == BTN_DRAG || (ev->b & BM_ACT) == BTN_UP) && (ev->b & BM_BUTT) == BTN_LEFT) { /* stop highlighting */ struct g_object_text *t; if (fd->f_data->start_highlight_x != -1) { if (abs(ev->x - fd->f_data->start_highlight_x) < 8 && abs(ev->y - fd->f_data->start_highlight_y) < 8) goto skip_hl; @@ -1117,7 +1117,7 @@ g_get_search_data(fd->f_data); end=t->srch_pos+g_find_text_pos(t, ev->x+fd->vs->view_posx); fd->f_data->hlt_len=end-fd->f_data->hlt_pos; - if ((ev->b & BM_ACT) == B_UP || (ev->b & BM_ACT) == B_DRAG) { + if ((ev->b & BM_ACT) == BTN_UP || (ev->b & BM_ACT) == BTN_DRAG) { unsigned char *m = memacpy(fd->f_data->srch_string + fd->f_data->hlt_pos + (fd->f_data->hlt_len > 0 ? 0 : fd->f_data->hlt_len), fd->f_data->hlt_len > 0 ? fd->f_data->hlt_len : -fd->f_data->hlt_len); if (m) { unsigned char *p = m; @@ -1147,7 +1147,7 @@ } #endif - if ((ev->b & BM_ACT) == B_DOWN && (ev->b & BM_BUTT) == B_RIGHT && fd->vs->current_link == -1) goto scrll; + if ((ev->b & BM_ACT) == BTN_DOWN && (ev->b & BM_BUTT) == BTN_RIGHT && fd->vs->current_link == -1) goto scrll; break; case EV_KBD: if (ses->locked_link && fd->vs->current_link >= 0 && fd->vs->current_link < fd->f_data->nlinks && (fd->f_data->links[fd->vs->current_link].type == L_FIELD || fd->f_data->links[fd->vs->current_link].type == L_AREA)) { @@ -1537,7 +1537,7 @@ g_get_search_data(f->f_data); g_get_search(f->f_data, f->ses->search_word); search_word = f->ses->search_word; - if (!f->f_data->n_search_positions) msg_box(f->ses->term, NULL, TEXT(T_SEARCH), AL_CENTER, TEXT(T_SEARCH_STRING_NOT_FOUND), NULL, 1, TEXT(T_CANCEL), NULL, B_ENTER | B_ESC); + if (!f->f_data->n_search_positions) msg_box(f->ses->term, NULL, TEXT(T_SEARCH), AL_CENTER, TEXT(T_SEARCH_STRING_NOT_FOUND), NULL, 1, TEXT(T_CANCEL), NULL, BTN_ENTER | BTN_ESC); highlight_positions = f->f_data->search_positions; highlight_lengths = f->f_data->search_lengths; diff -urN links-2.1pre33.org/x.c links-2.1pre33/x.c --- links-2.1pre33.org/x.c Sun Jul 8 02:04:50 2007 +++ links-2.1pre33/x.c Sat May 3 18:30:52 2008 @@ -552,28 +552,28 @@ #endif gd=x_find_gd(&(last_event.xmotion.window)); if (!gd)break; - a=B_LEFT; - b=B_MOVE; + a=BTN_LEFT; + b=BTN_MOVE; if ((last_event.xmotion.state)&Button1Mask) { - a=B_LEFT; - b=B_DRAG; + a=BTN_LEFT; + b=BTN_DRAG; #ifdef X_DEBUG MESSAGE("left button/drag\n"); #endif } if ((last_event.xmotion.state)&Button2Mask) { - a=B_MIDDLE; - b=B_DRAG; + a=BTN_MIDDLE; + b=BTN_DRAG; #ifdef X_DEBUG MESSAGE("middle button/drag\n"); #endif } if ((last_event.xmotion.state)&Button3Mask) { - a=B_RIGHT; - b=B_DRAG; + a=BTN_RIGHT; + b=BTN_DRAG; #ifdef X_DEBUG MESSAGE("right button/drag\n"); #endif @@ -699,15 +699,15 @@ switch(event.xbutton.button) { case 1: - a=B_LEFT; + a=BTN_LEFT; break; case 3: - a=B_RIGHT; + a=BTN_RIGHT; break; case 2: - a=B_MIDDLE; + a=BTN_MIDDLE; break; default: @@ -716,7 +716,7 @@ } x_clip_number(&(event.xmotion.x),gd->size.x1,gd->size.x2); x_clip_number(&(event.xmotion.y),gd->size.y1,gd->size.y2); - gd->mouse_handler(gd,event.xbutton.x,event.xbutton.y,a|B_UP); + gd->mouse_handler(gd,event.xbutton.x,event.xbutton.y,a|BTN_UP); r_xx:; } break; @@ -738,31 +738,31 @@ switch(event.xbutton.button) { case 1: - a=B_LEFT; + a=BTN_LEFT; break; case 3: - a=B_RIGHT; + a=BTN_RIGHT; break; case 2: - a=B_MIDDLE; + a=BTN_MIDDLE; break; case 4: - a=B_WHEELUP; + a=BTN_WHEELUP; break; case 5: - a=B_WHEELDOWN; + a=BTN_WHEELDOWN; break; case 6: - a=B_WHEELLEFT; + a=BTN_WHEELLEFT; break; case 7: - a=B_WHEELRIGHT; + a=BTN_WHEELRIGHT; break; default: @@ -770,7 +770,7 @@ } x_clip_number(&(event.xmotion.x),gd->size.x1,gd->size.x2); x_clip_number(&(event.xmotion.y),gd->size.y1,gd->size.y2); - gd->mouse_handler(gd,event.xbutton.x,event.xbutton.y,a|(a != B_WHEELDOWN && a != B_WHEELUP && a != B_WHEELLEFT && a != B_WHEELRIGHT ? B_DOWN : B_MOVE)); + gd->mouse_handler(gd,event.xbutton.x,event.xbutton.y,a|(a != BTN_WHEELDOWN && a != BTN_WHEELUP && a != BTN_WHEELLEFT && a != BTN_WHEELRIGHT ? BTN_DOWN : BTN_MOVE)); p_xx:; } break; @@ -839,28 +839,28 @@ #endif gd=x_find_gd(&(last_event.xmotion.window)); if (!gd)goto ret; - a=B_LEFT; - b=B_MOVE; + a=BTN_LEFT; + b=BTN_MOVE; if ((last_event.xmotion.state)&Button1Mask) { - a=B_LEFT; - b=B_DRAG; + a=BTN_LEFT; + b=BTN_DRAG; #ifdef X_DEBUG MESSAGE("left button/drag\n"); #endif } if ((last_event.xmotion.state)&Button2Mask) { - a=B_MIDDLE; - b=B_DRAG; + a=BTN_MIDDLE; + b=BTN_DRAG; #ifdef X_DEBUG MESSAGE("middle button/drag\n"); #endif } if ((last_event.xmotion.state)&Button3Mask) { - a=B_RIGHT; - b=B_DRAG; + a=BTN_RIGHT; + b=BTN_DRAG; #ifdef X_DEBUG MESSAGE("right button/drag\n"); #endif