OwbN800: owb-n800.patch
| File owb-n800.patch, 8.8 kB (added by odole, 1 year ago) |
|---|
-
WebKit/OrigynWebBrowser/OrigynLauncher/main.cpp
old new 48 48 #include "BTLogHelper.h" 49 49 #include "BTDeviceChannel.h" 50 50 #include "BTTextLogFormatter.h" 51 #include " CookieJar.h"51 #include "IntRect.h" 52 52 #include "KURL.h" 53 53 #include "wtf/RefPtr.h" 54 54 #ifdef __OWBAL_PLATFORM_MACPORT__ … … 57 57 #endif 58 58 #include <signal.h> 59 59 60 // Include for N800 port 61 #include <hildon-widgets/hildon-program.h> 62 #include <gtk/gtkmain.h> 63 #include <gtk/gtk.h> 64 #include <SDL/SDL_syswm.h> 65 #include <X11/Xlib.h> 66 60 67 /** 61 68 * Signal 11 catcher to prevent process from freezing on segfaults. 62 69 */ … … 68 75 69 76 using namespace BAL; 70 77 78 static HildonWindow *gtk_window = NULL; 79 80 GtkWidget *butt_back = NULL; 81 GtkWidget *butt_next = NULL; 82 GtkWidget *text_url = NULL; 83 84 85 //static gboolean gtkExited(void* data) 86 static void owbQuit() 87 { 88 getBIEventLoop()->PushEvent(createBIWindowEvent(BAL::BIWindowEvent::QUIT, false, WebCore::IntRect(), getBIWindowManager()->activeWindow()->widget())); 89 } 90 91 static void urlBack() 92 { 93 getBIWindowManager()->activeWindow()->goBackOrForward(-1);; 94 } 95 96 static void urlNext() 97 { 98 getBIWindowManager()->activeWindow()->goBackOrForward(1); 99 } 100 101 static void urlGo() 102 { 103 KURL url(gtk_entry_get_text(GTK_ENTRY(text_url))); 104 getBIWindowManager()->activeWindow()->setURL(url); 105 } 106 71 107 static void handle_event( BIEventLoop& aEventLoop ) { 72 108 BIEvent* aEvent = NULL; 73 109 bool isQuitCalled = false; … … 78 114 delete aEvent; 79 115 aEvent = NULL; // otherwise may be freed twice if WaitEvent returns an invalid event 80 116 } 81 117 118 gtk_widget_set_sensitive(butt_back, getBIWindowManager()->activeWindow()->canGoBackOrForward(-1)); 119 gtk_widget_set_sensitive(butt_next, getBIWindowManager()->activeWindow()->canGoBackOrForward(1)); 120 gtk_main_iteration_do(false);//FMD: call gtk iteration 121 82 122 isEventValid = aEventLoop.WaitEvent(aEvent); 83 123 if (isEventValid) { 84 124 BIKeyboardEvent* aKeyboardEvent = aEvent->queryIsKeyboardEvent(); … … 100 140 } 101 141 } 102 142 143 void GtkInitN800(int argc, char *argv[]) 144 { 145 /* Create needed variables */ 146 HildonProgram *program; 147 HildonWindow *window; 148 149 /* Initialize the GTK. */ 150 gtk_init(&argc, &argv); 151 152 /* Create the hildon program and setup the title */ 153 program = HILDON_PROGRAM(hildon_program_get_instance()); 154 g_set_application_name("Origyn Web Browser"); 155 156 /* Create HildonWindow and set it to HildonProgram */ 157 window = HILDON_WINDOW(hildon_window_new()); 158 hildon_program_add_window(program, window); 159 160 butt_back = gtk_button_new_with_label("Back"); 161 GtkWidget* img_back = gtk_image_new_from_file("/usr/share/icons/back.png"); 162 gtk_button_set_image(GTK_BUTTON(butt_back), img_back); 163 gtk_button_set_relief(GTK_BUTTON(butt_back), GTK_RELIEF_NONE); 164 165 butt_next = gtk_button_new_with_label("Next"); 166 GtkWidget* img_next = gtk_image_new_from_file("/usr/share/icons/next.png"); 167 gtk_button_set_image(GTK_BUTTON(butt_next), img_next); 168 gtk_button_set_relief(GTK_BUTTON(butt_next), GTK_RELIEF_NONE); 169 170 text_url = gtk_entry_new(); 171 gtk_entry_set_width_chars(GTK_ENTRY(text_url), 20); 172 173 GtkContainer *navbar= GTK_CONTAINER(gtk_toolbar_new()); 174 gtk_toolbar_append_widget(GTK_TOOLBAR(navbar), butt_back, "go back", "go back"); 175 gtk_toolbar_append_widget(GTK_TOOLBAR(navbar), butt_next, "go next", "go next"); 176 gtk_toolbar_append_widget(GTK_TOOLBAR(navbar), text_url , "enter url ", "enter url "); 177 hildon_window_add_toolbar(window, GTK_TOOLBAR(navbar)); 178 179 g_signal_connect(G_OBJECT(butt_back), "clicked", urlBack, NULL); 180 g_signal_connect(G_OBJECT(butt_next), "clicked", urlNext, NULL); 181 g_signal_connect(G_OBJECT(text_url), "activate", urlGo, NULL); 182 gtk_entry_set_invisible_char(GTK_ENTRY(text_url), 0); 183 184 /* Connect signal to X in the upper corner */ 185 g_signal_connect(G_OBJECT(window), "delete_event", owbQuit, NULL); 186 187 /* Begin the main application */ 188 gtk_widget_show_all(GTK_WIDGET(window)); 189 gtk_window = window; 190 } 191 192 103 193 int main(int argc, char *argv[]) 104 194 { 105 195 signal(SIGSEGV, &signalCatcher); … … 114 204 #endif 115 205 116 206 // FIXME first thing to do, because event loop may rely on GraphicsDevice (eg SDL) 117 getBIGraphicsDevice()->initialize(800, 600, 32); 207 GtkInitN800(0, NULL); 208 getBIGraphicsDevice()->initialize(690, 360, 16); 118 209 BIEventLoop* aEventLoop = getBIEventLoop(); 119 210 if( aEventLoop == NULL ) { 120 211 printf("No event loop\n"); … … 122 213 } 123 214 124 215 #if 1 125 BIWindow *window = getBIWindowManager()->openWindow( 10, 10, 780, 580);216 BIWindow *window = getBIWindowManager()->openWindow(0, 0, 690, 360); 126 217 #else // code below left as example 127 218 BIWindow *window = getBIWindowManager()->openWindow(10, 10, 385, 128 219 285); … … 138 229 } else { 139 230 window->setURL("http://www.google.com"); 140 231 } 232 233 SDL_SysWMinfo sdl_info; 234 memset (&sdl_info, 0, sizeof(sdl_info)); 235 SDL_VERSION(&sdl_info.version); 236 if (SDL_GetWMInfo(&sdl_info) <= 0 || sdl_info.subsystem != SDL_SYSWM_X11) { 237 fprintf (stderr, "This is not X11\n"); 238 memset (&sdl_info, 0, sizeof(sdl_info)); 239 } 240 241 Display *sdl_display = sdl_info.info.x11.display; 242 Window sdl_window = sdl_info.info.x11.wmwindow; 243 Window xwin = GDK_WINDOW_XWINDOW(GTK_WIDGET(gtk_window)->window); 244 XReparentWindow(sdl_display, sdl_info.info.x11.wmwindow, xwin, 10, 0); 245 XReparentWindow(sdl_display, sdl_info.info.x11.window, xwin, 10, 0); 246 XSetInputFocus(sdl_display, sdl_info.info.x11.window, RevertToParent, CurrentTime); 247 141 248 handle_event( *aEventLoop ); 142 249 getBIWindowManager()->closeWindow(window); 143 250 delete getBIWindowManager(); -
CMakeLists.txt
old new 432 432 pthread 433 433 ) 434 434 435 ADD_EXECUTABLE (testkjs JavaScriptCore/kjs/testkjs.cpp)436 TARGET_LINK_LIBRARIES (testkjs437 jscore438 bal439 )440 441 435 IF (OWBAL_PLATFORM_MACPORT) 442 436 TARGET_LINK_LIBRARIES (jscore 443 437 ${LIBICU_LIBS} … … 447 441 ) 448 442 ENDIF (OWBAL_PLATFORM_MACPORT) 449 443 450 ADD_CUSTOM_TARGET (kjstests451 COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/export_test_kjs452 COMMAND cd KjsTests/mozilla/ && ${PERL_EXECUTABLE} mklistpage.pl > menubody.html453 COMMAND cd KjsTests/mozilla/ && cat menuhead.html menubody.html menufoot.html > menu.html454 COMMAND cd KjsTests/mozilla/ && SYMROOTS=${CMAKE_CURRENT_SOURCE_DIR}/JavaScriptCore ./jsDriver.pl -e kjs -s ${CMAKE_CURRENT_BINARY_DIR}/testkjs -f results.html455 WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}456 )457 ADD_DEPENDENCIES (kjstests458 testkjs459 )460 461 444 ELSE (WEBKIT_USE_JS) 462 445 ADD_LIBRARY (wtf ${jscore_SRC}) 463 446 ENDIF (WEBKIT_USE_JS) … … 509 492 balglue 510 493 bal 511 494 ${ADDONS_LINK} 495 ${GTK_LIBRARIES} 512 496 ${LIBFREETYPE_LIBS} 513 497 ${LIBRARIES_TO_LINK} 514 498 ) … … 526 510 ############################## 527 511 ############################## 528 512 ############################## 529 #BAL_TEST530 ##############################531 ##############################532 ##############################533 534 INCLUDE_DIRECTORIES (535 ${CMAKE_CURRENT_SOURCE_DIR}/BAL/Tests/536 ${CMAKE_CURRENT_SOURCE_DIR}/BAL/Implementations/Widgets/Common/537 )538 539 INCLUDE (BAL/Tests/SourcesCMakeLists.txt)540 ADD_EXECUTABLE (testBAL ${bal_tests_SRC})541 TARGET_LINK_LIBRARIES (testBAL542 bal543 )544 545 IF (WEBKIT_USE_JS)546 TARGET_LINK_LIBRARIES (testBAL547 jscore548 )549 ELSE (WEBKIT_USE_JS)550 TARGET_LINK_LIBRARIES (testBAL551 wtf552 )553 ENDIF (WEBKIT_USE_JS)554 555 ADD_CUSTOM_TARGET (test556 COMMAND ${CMAKE_CURRENT_BINARY_DIR}/testBAL -a -p ${CMAKE_CURRENT_SOURCE_DIR}/BAL/Tests/557 WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}558 )559 ADD_DEPENDENCIES (test560 testBAL561 )562 ##############################563 ##############################564 ##############################565 513 #DUMP_RENDER_TREE 566 514 ############################## 567 515 ############################## -
BAL/CMakeConf.txt
old new 334 334 335 335 ENDIF (WEBKIT_USE_XSLT_SUPPORT) 336 336 337 337 338 ####################################### 339 #Add Hildon libraries for N800 340 ####################################### 341 342 SET (CMAKE_GTK_CXX_FLAGS "`pkg-config --cflags gtk+-2.0 hildon-libs`") 343 SET(GTK_LIBRARIES "`pkg-config --libs gtk+-2.0 hildon-libs`") 344 SET_SOURCE_FILES_PROPERTIES(WebKit/OrigynWebBrowser/OrigynLauncher/main.cpp 345 PROPERTIES COMPILE_FLAGS "`pkg-config --cflags gtk+-2.0 hildon-libs` -I${CMAKE_CURRENT_SOURCE_DIR}/WebKit/OrigynWebBrowser/Api/") 346 347 ####################################### 338 348 #Configuration for font 339 349 ####################################### 340 350
