Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- From b185fc84df4ea90363fa49540ba400cf5cba0052 Mon Sep 17 00:00:00 2001
- From: =?UTF-8?q?Adri=C3=A1n=20Arroyo=20Calle?=
- <adrian.arroyocalle@gmail.com>
- Date: Thu, 24 Dec 2015 14:12:42 +0100
- Subject: [PATCH 1/3] WebSearch bar for Haiku
- ---
- beos/Makefile.target | 3 ++-
- beos/gui.cpp | 4 +++-
- beos/gui.h | 2 ++
- beos/scaffolding.cpp | 58 ++++++++++++++++++++++++++++++++++++++++++++++++++++
- 4 files changed, 65 insertions(+), 2 deletions(-)
- diff --git a/beos/Makefile.target b/beos/Makefile.target
- index 8759d08..d762c52 100644
- --- a/beos/Makefile.target
- +++ b/beos/Makefile.target
- @@ -99,7 +99,7 @@ RDEF_IMP_BEOS := $(addprefix $(OBJROOT)/,$(subst /,_,$(RDEF_IMP_BEOS)))
- RDEP_BEOS := \
- adblock.css beosdefault.css default.css internal.css quirks.css \
- netsurf.png favicon.png ca-bundle.txt \
- - credits.html licence.html welcome.html maps.html
- + credits.html licence.html welcome.html maps.html SearchEngines
- RDEP_BEOS := $(addprefix beos/res/,$(RDEP_BEOS)) \
- $(wildcard beos/res/icons/*.png) \
- $(wildcard beos/res/??/*) \
- @@ -147,6 +147,7 @@ install-beos:
- @cp -vRL beos/res/default.css $(DESTDIR)$(NETSURF_BEOS_RESOURCES)
- @cp -vRL beos/res/beosdefault.css $(DESTDIR)$(NETSURF_BEOS_RESOURCES)
- @cp -vRL gtk/res/license $(DESTDIR)$(NETSURF_BEOS_RESOURCES)
- + @cp -vRL beos/res/SearchEngines $(DESTDIR)$(NETSURF_BEOS_RESOURCES)
- # @cp -vRL beos/res/throbber/*.png $(DESTDIR)$(NETSURF_BEOS_RESOURCES)throbber
- # ----------------------------------------------------------------------------
- diff --git a/beos/gui.cpp b/beos/gui.cpp
- index cfd026b..1e653a0 100644
- --- a/beos/gui.cpp
- +++ b/beos/gui.cpp
- @@ -1,4 +1,5 @@
- /*
- + * Copyright 2015 Adrián Arroyo Calle <adrian.arroyocalle@gmail.com>
- * Copyright 2008 François Revol <mmu_man@users.sourceforge.net>
- * Copyright 2005 James Bursa <bursa@users.sourceforge.net>
- *
- @@ -137,6 +138,7 @@ NSBrowserApplication::MessageReceived(BMessage *message)
- case 'home':
- case 'urlc':
- case 'urle':
- + case 'sear':
- case 'menu':
- // NetPositive messages
- case B_NETPOSITIVE_OPEN_URL:
- @@ -254,7 +256,7 @@ image_id nsbeos_find_app_path(char *path)
- * \param def default to return if file not found
- * \return path to resource.
- */
- -static char *find_resource(char *buf, const char *filename, const char *def)
- +char *find_resource(char *buf, const char *filename, const char *def)
- {
- const char *cdir = NULL;
- status_t err;
- diff --git a/beos/gui.h b/beos/gui.h
- index 215cda8..b9f560e 100644
- --- a/beos/gui.h
- +++ b/beos/gui.h
- @@ -1,4 +1,5 @@
- /*
- + * Copyright 2015 Adrián Arroyo Calle <adrian.arroyocalle@gmail.com>
- * Copyright 2008 François Revol <mmu_man@users.sourceforge.net>
- * Copyright 2005 James Bursa <bursa@users.sourceforge.net>
- *
- @@ -65,6 +66,7 @@ void nsbeos_pipe_message_top(BMessage *message, BWindow *_this, struct beos_scaf
- void nsbeos_gui_view_source(struct hlcache_handle *content);
- image_id nsbeos_find_app_path(char *path);
- +char *find_resource(char *buf, const char *filename, const char *def);
- void nsbeos_update_system_ui_colors(void);
- diff --git a/beos/scaffolding.cpp b/beos/scaffolding.cpp
- index 2c5d4e9..392bfde 100644
- --- a/beos/scaffolding.cpp
- +++ b/beos/scaffolding.cpp
- @@ -1,4 +1,5 @@
- /*
- + * Copyright 2015 Adrián Arroyo Calle <adrian.arroyocalle@gmail.com>
- * Copyright 2008 François Revol <mmu_man@users.sourceforge.net>
- * Copyright 2006 Rob Kendrick <rjek@rjek.com>
- *
- @@ -56,6 +57,8 @@ extern "C" {
- #include "desktop/browser.h"
- #include "desktop/netsurf.h"
- #include "desktop/version.h"
- +#include "desktop/searchweb.h"
- +#include "desktop/search.h"
- #include "desktop/plotters.h"
- #include "utils/nsoption.h"
- #include "desktop/textinput.h"
- @@ -111,6 +114,7 @@ struct beos_scaffolding {
- BControl *home_button;
- NSIconTextControl *url_bar;
- + NSIconTextControl *search_bar;
- //BMenuField *url_bar_completion;
- NSThrobber *throbber;
- @@ -478,6 +482,7 @@ NSBaseView::MessageReceived(BMessage *message)
- case 'home':
- case 'urlc':
- case 'urle':
- + case 'sear':
- case 'menu':
- case NO_ACTION:
- case HELP_OPEN_CONTENTS:
- @@ -653,6 +658,7 @@ NSBaseView::AllAttached()
- g->home_button->SetTarget(this);
- g->url_bar->SetTarget(this);
- + g->search_bar->SetTarget(this);
- rgb_color c = ui_color(B_PANEL_BACKGROUND_COLOR);
- SetViewColor(c);
- @@ -669,6 +675,7 @@ NSBaseView::AllAttached()
- g->home_button->SetViewColor(c);
- g->home_button->SetLowColor(c);
- g->url_bar->SetViewColor(c);
- + g->search_bar->SetViewColor(c);
- g->throbber->SetViewColor(c);
- g->scroll_view->SetViewColor(c);
- @@ -806,6 +813,7 @@ static void nsbeos_scaffolding_update_colors(nsbeos_scaffolding *g)
- g->reload_button->SetViewColor(c);
- g->home_button->SetViewColor(c);
- g->url_bar->SetViewColor(c);
- + g->search_bar->SetViewColor(c);
- g->throbber->SetViewColor(c);
- g->scroll_view->SetViewColor(c);
- @@ -1073,6 +1081,41 @@ void nsbeos_scaffolding_dispatch_event(nsbeos_scaffolding *scaffold, BMessage *m
- //nsbeos_completion_update(text.String());
- break;
- }
- + case 'sear':
- + {
- + nserror ret;
- + nsurl* url;
- + BString text;
- + if (!scaffold->search_bar->LockLooper())
- + break;
- + text = scaffold->search_bar->Text();
- + scaffold->search_bar->UnlockLooper();
- +
- + char t[PATH_MAX];
- + find_resource(t,"SearchEngines","./beos/res/SearchEngines");
- +
- + search_web_init();
- +
- + ret = search_web_omni(text.String(),SEARCH_WEB_OMNI_SEARCHONLY
- + ,&url);
- + if (ret == NSERROR_OK) {
- + ret = browser_window_create(
- + (browser_window_create_flags)(BW_CREATE_HISTORY | BW_CREATE_TAB),
- + url,
- + NULL,
- + bw,
- + NULL);
- + nsurl_unref(url);
- + }
- +
- + if (ret != NSERROR_OK) {
- + warn_user(messages_get_errorcode(ret), 0);
- + }
- +
- + search_web_finalise();
- +
- + break;
- + }
- /*
- case 'menu':
- {
- @@ -2113,6 +2156,21 @@ nsbeos_scaffolding *nsbeos_new_scaffolding(struct gui_window *toplevel)
- g->url_bar->TextView()->SetTextRect(rect);
- g->tool_bar->AddChild(g->url_bar);
- + // search bar
- +
- + rect = g->tool_bar->Bounds();
- + rect.left += TOOLBAR_HEIGHT * nButtons + (g->url_bar->Bounds().right - g->url_bar->Bounds().left);
- + rect.right -= TOOLBAR_HEIGHT * 1;
- + rect.InsetBy(5,5);
- + message = new BMessage('sear');
- + message->AddPointer("scaffolding", g);
- + g->search_bar = new NSIconTextControl(rect,"search_bar","","Search...",message,
- + B_FOLLOW_RIGHT);
- + g->search_bar->SetDivider(0);
- + rect = g->search_bar->TextView()->TextRect();
- + rect.left += 0;
- + g->search_bar->TextView()->TextRect();
- + g->tool_bar->AddChild(g->search_bar);
- // throbber
- rect.Set(0, 0, 24, 24);
- --
- 2.6.4
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement