Advertisement
Guest User

Untitled

a guest
Dec 24th, 2015
112
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.47 KB | None | 0 0
  1. From b185fc84df4ea90363fa49540ba400cf5cba0052 Mon Sep 17 00:00:00 2001
  2. From: =?UTF-8?q?Adri=C3=A1n=20Arroyo=20Calle?=
  3. <adrian.arroyocalle@gmail.com>
  4. Date: Thu, 24 Dec 2015 14:12:42 +0100
  5. Subject: [PATCH 1/3] WebSearch bar for Haiku
  6.  
  7. ---
  8. beos/Makefile.target | 3 ++-
  9. beos/gui.cpp | 4 +++-
  10. beos/gui.h | 2 ++
  11. beos/scaffolding.cpp | 58 ++++++++++++++++++++++++++++++++++++++++++++++++++++
  12. 4 files changed, 65 insertions(+), 2 deletions(-)
  13.  
  14. diff --git a/beos/Makefile.target b/beos/Makefile.target
  15. index 8759d08..d762c52 100644
  16. --- a/beos/Makefile.target
  17. +++ b/beos/Makefile.target
  18. @@ -99,7 +99,7 @@ RDEF_IMP_BEOS := $(addprefix $(OBJROOT)/,$(subst /,_,$(RDEF_IMP_BEOS)))
  19. RDEP_BEOS := \
  20. adblock.css beosdefault.css default.css internal.css quirks.css \
  21. netsurf.png favicon.png ca-bundle.txt \
  22. - credits.html licence.html welcome.html maps.html
  23. + credits.html licence.html welcome.html maps.html SearchEngines
  24. RDEP_BEOS := $(addprefix beos/res/,$(RDEP_BEOS)) \
  25. $(wildcard beos/res/icons/*.png) \
  26. $(wildcard beos/res/??/*) \
  27. @@ -147,6 +147,7 @@ install-beos:
  28. @cp -vRL beos/res/default.css $(DESTDIR)$(NETSURF_BEOS_RESOURCES)
  29. @cp -vRL beos/res/beosdefault.css $(DESTDIR)$(NETSURF_BEOS_RESOURCES)
  30. @cp -vRL gtk/res/license $(DESTDIR)$(NETSURF_BEOS_RESOURCES)
  31. + @cp -vRL beos/res/SearchEngines $(DESTDIR)$(NETSURF_BEOS_RESOURCES)
  32. # @cp -vRL beos/res/throbber/*.png $(DESTDIR)$(NETSURF_BEOS_RESOURCES)throbber
  33.  
  34. # ----------------------------------------------------------------------------
  35. diff --git a/beos/gui.cpp b/beos/gui.cpp
  36. index cfd026b..1e653a0 100644
  37. --- a/beos/gui.cpp
  38. +++ b/beos/gui.cpp
  39. @@ -1,4 +1,5 @@
  40. /*
  41. + * Copyright 2015 Adrián Arroyo Calle <adrian.arroyocalle@gmail.com>
  42. * Copyright 2008 François Revol <mmu_man@users.sourceforge.net>
  43. * Copyright 2005 James Bursa <bursa@users.sourceforge.net>
  44. *
  45. @@ -137,6 +138,7 @@ NSBrowserApplication::MessageReceived(BMessage *message)
  46. case 'home':
  47. case 'urlc':
  48. case 'urle':
  49. + case 'sear':
  50. case 'menu':
  51. // NetPositive messages
  52. case B_NETPOSITIVE_OPEN_URL:
  53. @@ -254,7 +256,7 @@ image_id nsbeos_find_app_path(char *path)
  54. * \param def default to return if file not found
  55. * \return path to resource.
  56. */
  57. -static char *find_resource(char *buf, const char *filename, const char *def)
  58. +char *find_resource(char *buf, const char *filename, const char *def)
  59. {
  60. const char *cdir = NULL;
  61. status_t err;
  62. diff --git a/beos/gui.h b/beos/gui.h
  63. index 215cda8..b9f560e 100644
  64. --- a/beos/gui.h
  65. +++ b/beos/gui.h
  66. @@ -1,4 +1,5 @@
  67. /*
  68. + * Copyright 2015 Adrián Arroyo Calle <adrian.arroyocalle@gmail.com>
  69. * Copyright 2008 François Revol <mmu_man@users.sourceforge.net>
  70. * Copyright 2005 James Bursa <bursa@users.sourceforge.net>
  71. *
  72. @@ -65,6 +66,7 @@ void nsbeos_pipe_message_top(BMessage *message, BWindow *_this, struct beos_scaf
  73.  
  74. void nsbeos_gui_view_source(struct hlcache_handle *content);
  75. image_id nsbeos_find_app_path(char *path);
  76. +char *find_resource(char *buf, const char *filename, const char *def);
  77.  
  78. void nsbeos_update_system_ui_colors(void);
  79.  
  80. diff --git a/beos/scaffolding.cpp b/beos/scaffolding.cpp
  81. index 2c5d4e9..392bfde 100644
  82. --- a/beos/scaffolding.cpp
  83. +++ b/beos/scaffolding.cpp
  84. @@ -1,4 +1,5 @@
  85. /*
  86. + * Copyright 2015 Adrián Arroyo Calle <adrian.arroyocalle@gmail.com>
  87. * Copyright 2008 François Revol <mmu_man@users.sourceforge.net>
  88. * Copyright 2006 Rob Kendrick <rjek@rjek.com>
  89. *
  90. @@ -56,6 +57,8 @@ extern "C" {
  91. #include "desktop/browser.h"
  92. #include "desktop/netsurf.h"
  93. #include "desktop/version.h"
  94. +#include "desktop/searchweb.h"
  95. +#include "desktop/search.h"
  96. #include "desktop/plotters.h"
  97. #include "utils/nsoption.h"
  98. #include "desktop/textinput.h"
  99. @@ -111,6 +114,7 @@ struct beos_scaffolding {
  100. BControl *home_button;
  101.  
  102. NSIconTextControl *url_bar;
  103. + NSIconTextControl *search_bar;
  104. //BMenuField *url_bar_completion;
  105.  
  106. NSThrobber *throbber;
  107. @@ -478,6 +482,7 @@ NSBaseView::MessageReceived(BMessage *message)
  108. case 'home':
  109. case 'urlc':
  110. case 'urle':
  111. + case 'sear':
  112. case 'menu':
  113. case NO_ACTION:
  114. case HELP_OPEN_CONTENTS:
  115. @@ -653,6 +658,7 @@ NSBaseView::AllAttached()
  116. g->home_button->SetTarget(this);
  117.  
  118. g->url_bar->SetTarget(this);
  119. + g->search_bar->SetTarget(this);
  120.  
  121. rgb_color c = ui_color(B_PANEL_BACKGROUND_COLOR);
  122. SetViewColor(c);
  123. @@ -669,6 +675,7 @@ NSBaseView::AllAttached()
  124. g->home_button->SetViewColor(c);
  125. g->home_button->SetLowColor(c);
  126. g->url_bar->SetViewColor(c);
  127. + g->search_bar->SetViewColor(c);
  128. g->throbber->SetViewColor(c);
  129. g->scroll_view->SetViewColor(c);
  130.  
  131. @@ -806,6 +813,7 @@ static void nsbeos_scaffolding_update_colors(nsbeos_scaffolding *g)
  132. g->reload_button->SetViewColor(c);
  133. g->home_button->SetViewColor(c);
  134. g->url_bar->SetViewColor(c);
  135. + g->search_bar->SetViewColor(c);
  136. g->throbber->SetViewColor(c);
  137. g->scroll_view->SetViewColor(c);
  138.  
  139. @@ -1073,6 +1081,41 @@ void nsbeos_scaffolding_dispatch_event(nsbeos_scaffolding *scaffold, BMessage *m
  140. //nsbeos_completion_update(text.String());
  141. break;
  142. }
  143. + case 'sear':
  144. + {
  145. + nserror ret;
  146. + nsurl* url;
  147. + BString text;
  148. + if (!scaffold->search_bar->LockLooper())
  149. + break;
  150. + text = scaffold->search_bar->Text();
  151. + scaffold->search_bar->UnlockLooper();
  152. +
  153. + char t[PATH_MAX];
  154. + find_resource(t,"SearchEngines","./beos/res/SearchEngines");
  155. +
  156. + search_web_init();
  157. +
  158. + ret = search_web_omni(text.String(),SEARCH_WEB_OMNI_SEARCHONLY
  159. + ,&url);
  160. + if (ret == NSERROR_OK) {
  161. + ret = browser_window_create(
  162. + (browser_window_create_flags)(BW_CREATE_HISTORY | BW_CREATE_TAB),
  163. + url,
  164. + NULL,
  165. + bw,
  166. + NULL);
  167. + nsurl_unref(url);
  168. + }
  169. +
  170. + if (ret != NSERROR_OK) {
  171. + warn_user(messages_get_errorcode(ret), 0);
  172. + }
  173. +
  174. + search_web_finalise();
  175. +
  176. + break;
  177. + }
  178. /*
  179. case 'menu':
  180. {
  181. @@ -2113,6 +2156,21 @@ nsbeos_scaffolding *nsbeos_new_scaffolding(struct gui_window *toplevel)
  182. g->url_bar->TextView()->SetTextRect(rect);
  183. g->tool_bar->AddChild(g->url_bar);
  184.  
  185. + // search bar
  186. +
  187. + rect = g->tool_bar->Bounds();
  188. + rect.left += TOOLBAR_HEIGHT * nButtons + (g->url_bar->Bounds().right - g->url_bar->Bounds().left);
  189. + rect.right -= TOOLBAR_HEIGHT * 1;
  190. + rect.InsetBy(5,5);
  191. + message = new BMessage('sear');
  192. + message->AddPointer("scaffolding", g);
  193. + g->search_bar = new NSIconTextControl(rect,"search_bar","","Search...",message,
  194. + B_FOLLOW_RIGHT);
  195. + g->search_bar->SetDivider(0);
  196. + rect = g->search_bar->TextView()->TextRect();
  197. + rect.left += 0;
  198. + g->search_bar->TextView()->TextRect();
  199. + g->tool_bar->AddChild(g->search_bar);
  200.  
  201. // throbber
  202. rect.Set(0, 0, 24, 24);
  203. --
  204. 2.6.4
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement