[minimo only] Minimo app vanity clean up. Merging stop and reload buttons. Autosizing URL entry bar on focus. Fixed chrome lite library so that it doesn't require any linking to necko. Adding ipkg build stuff.

git-svn-id: svn://10.0.0.236/trunk@151879 18797224-902f-48f8-a5cc-f745e15eee43
This commit is contained in:
dougt%meer.net 2004-01-27 01:46:05 +00:00
parent 931856198b
commit 99c65dfc70
14 changed files with 282 additions and 180 deletions

View File

@ -42,7 +42,7 @@ VPATH = @srcdir@
include $(DEPTH)/config/autoconf.mk
DIRS = chromelite app
DIRS = chromelite ../browser/gtk/src app
include $(topsrcdir)/config/rules.mk

View File

@ -1 +1,4 @@
See mozilla.org/projects/minimo for more info.
patches included 136507, 136508, 136509

View File

@ -47,6 +47,8 @@ LIBS += \
include $(topsrcdir)/config/config.mk
ifdef BUILD_STATIC_LIBS
FINAL_LINK_COMPS=$(topsrcdir)/embedding/minimo/app/minimo-link-comps
include $(topsrcdir)/config/static-config.mk
@ -54,6 +56,8 @@ include $(topsrcdir)/config/static-config.mk
EXTRA_DEPS += $(STATIC_EXTRA_DEPS)
EXTRA_DSO_LIBS += $(STATIC_EXTRA_DSO_LIBS)
endif
EXTRA_LIBS += -L$(DEPTH)/dist/lib/components \
$(EXTRA_DSO_LIBS) \
$(STATIC_EXTRA_LIBS) \

View File

@ -43,15 +43,14 @@
#define MINIMO_HOME_URL "http://www.mozilla.org/projects/minimo/home.html"
typedef struct _TestGtkBrowser {
typedef struct _MinimoBrowser {
GtkWidget *topLevelWindow;
GtkWidget *topLevelVBox;
GtkWidget *toolbarHBox;
GtkWidget *toolbar;
GtkWidget *backButton;
GtkWidget *stopButton;
GtkWidget *stopReloadButton;
GtkWidget *forwardButton;
GtkWidget *reloadButton;
GtkWidget *homeButton;
GtkWidget *urlEntry;
GtkWidget *mozEmbed;
@ -64,6 +63,8 @@ typedef struct _TestGtkBrowser {
GtkWidget *homeIcon;
GtkWidget *reloadIcon;
GtkWidget *stopIcon;
GtkWidget *stopReloadIcon;
const char *statusMessage;
int loadPercent;
int bytesLoaded;
@ -72,94 +73,110 @@ typedef struct _TestGtkBrowser {
gboolean toolBarOn;
gboolean locationBarOn;
gboolean statusBarOn;
} TestGtkBrowser;
gboolean loading;
} MinimoBrowser;
// the list of browser windows currently open
GList *browser_list = g_list_alloc();
static TestGtkBrowser *new_gtk_browser (guint32 chromeMask);
static void set_browser_visibility (TestGtkBrowser *browser,
static MinimoBrowser *new_gtk_browser (guint32 chromeMask);
static void set_browser_visibility (MinimoBrowser *browser,
gboolean visibility);
static int num_browsers = 0;
// callbacks from the UI
static void back_clicked_cb (GtkButton *button,
TestGtkBrowser *browser);
static void stop_clicked_cb (GtkButton *button,
TestGtkBrowser *browser);
MinimoBrowser *browser);
static void forward_clicked_cb (GtkButton *button,
TestGtkBrowser *browser);
static void reload_clicked_cb (GtkButton *button,
TestGtkBrowser *browser);
MinimoBrowser *browser);
static void stop_reload_clicked_cb (GtkButton *button,
MinimoBrowser *browser);
static void home_clicked_cb (GtkButton *button,
TestGtkBrowser *browser);
MinimoBrowser *browser);
static void url_activate_cb (GtkEditable *widget,
TestGtkBrowser *browser);
MinimoBrowser *browser);
static gboolean delete_cb (GtkWidget *widget, GdkEventAny *event,
TestGtkBrowser *browser);
MinimoBrowser *browser);
static void destroy_cb (GtkWidget *widget,
TestGtkBrowser *browser);
MinimoBrowser *browser);
// callbacks from the widget
static void location_changed_cb (GtkMozEmbed *embed, TestGtkBrowser *browser);
static void title_changed_cb (GtkMozEmbed *embed, TestGtkBrowser *browser);
static void load_started_cb (GtkMozEmbed *embed, TestGtkBrowser *browser);
static void load_finished_cb (GtkMozEmbed *embed, TestGtkBrowser *browser);
static void location_changed_cb (GtkMozEmbed *embed, MinimoBrowser *browser);
static void title_changed_cb (GtkMozEmbed *embed, MinimoBrowser *browser);
static void load_started_cb (GtkMozEmbed *embed, MinimoBrowser *browser);
static void load_finished_cb (GtkMozEmbed *embed, MinimoBrowser *browser);
static void net_state_change_cb (GtkMozEmbed *embed, gint flags,
guint status, TestGtkBrowser *browser);
guint status, MinimoBrowser *browser);
static void net_state_change_all_cb (GtkMozEmbed *embed, const char *uri,
gint flags, guint status,
TestGtkBrowser *browser);
MinimoBrowser *browser);
static void progress_change_cb (GtkMozEmbed *embed, gint cur, gint max,
TestGtkBrowser *browser);
MinimoBrowser *browser);
static void progress_change_all_cb (GtkMozEmbed *embed, const char *uri,
gint cur, gint max,
TestGtkBrowser *browser);
static void link_message_cb (GtkMozEmbed *embed, TestGtkBrowser *browser);
static void js_status_cb (GtkMozEmbed *embed, TestGtkBrowser *browser);
MinimoBrowser *browser);
static void link_message_cb (GtkMozEmbed *embed, MinimoBrowser *browser);
static void js_status_cb (GtkMozEmbed *embed, MinimoBrowser *browser);
static void new_window_cb (GtkMozEmbed *embed,
GtkMozEmbed **retval, guint chromemask,
TestGtkBrowser *browser);
MinimoBrowser *browser);
static void visibility_cb (GtkMozEmbed *embed,
gboolean visibility,
TestGtkBrowser *browser);
static void destroy_brsr_cb (GtkMozEmbed *embed, TestGtkBrowser *browser);
MinimoBrowser *browser);
static void destroy_brsr_cb (GtkMozEmbed *embed, MinimoBrowser *browser);
static gint open_uri_cb (GtkMozEmbed *embed, const char *uri,
TestGtkBrowser *browser);
MinimoBrowser *browser);
static void size_to_cb (GtkMozEmbed *embed, gint width,
gint height, TestGtkBrowser *browser);
gint height, MinimoBrowser *browser);
static gint dom_key_down_cb (GtkMozEmbed *embed, nsIDOMKeyEvent *event,
TestGtkBrowser *browser);
MinimoBrowser *browser);
static gint dom_key_press_cb (GtkMozEmbed *embed, nsIDOMKeyEvent *event,
TestGtkBrowser *browser);
MinimoBrowser *browser);
static gint dom_key_up_cb (GtkMozEmbed *embed, nsIDOMKeyEvent *event,
TestGtkBrowser *browser);
MinimoBrowser *browser);
static gint dom_mouse_down_cb (GtkMozEmbed *embed, nsIDOMMouseEvent *event,
TestGtkBrowser *browser);
MinimoBrowser *browser);
static gint dom_mouse_up_cb (GtkMozEmbed *embed, nsIDOMMouseEvent *event,
TestGtkBrowser *browser);
MinimoBrowser *browser);
static gint dom_mouse_click_cb (GtkMozEmbed *embed, nsIDOMMouseEvent *event,
TestGtkBrowser *browser);
MinimoBrowser *browser);
static gint dom_mouse_dbl_click_cb (GtkMozEmbed *embed,
nsIDOMMouseEvent *event,
TestGtkBrowser *browser);
MinimoBrowser *browser);
static gint dom_mouse_over_cb (GtkMozEmbed *embed, nsIDOMMouseEvent *event,
TestGtkBrowser *browser);
MinimoBrowser *browser);
static gint dom_mouse_out_cb (GtkMozEmbed *embed, nsIDOMMouseEvent *event,
TestGtkBrowser *browser);
MinimoBrowser *browser);
// callbacks from the singleton object
static void new_window_orphan_cb (GtkMozEmbedSingle *embed,
GtkMozEmbed **retval, guint chromemask,
gpointer data);
static gboolean urlEntry_focus_in (GtkWidget *entry, GdkEventFocus *event,
gpointer user_data)
{
MinimoBrowser* browser = (MinimoBrowser*) user_data;
if (!browser->loading)
gtk_widget_hide(browser->toolbar);
return 0;
}
static gboolean urlEntry_focus_out (GtkWidget *entry, GdkEventFocus *event,
gpointer user_data)
{
MinimoBrowser* browser = (MinimoBrowser*) user_data;
gtk_widget_show(browser->toolbar);
return 0;
}
// some utility functions
static void update_status_bar_text (TestGtkBrowser *browser);
static void update_temp_message (TestGtkBrowser *browser,
static void update_toolbar (MinimoBrowser *browser);
static void update_status_bar_text (MinimoBrowser *browser);
static void update_temp_message (MinimoBrowser *browser,
const char *message);
static void update_nav_buttons (TestGtkBrowser *browser);
static void update_nav_buttons (MinimoBrowser *browser);
int
main(int argc, char **argv)
@ -171,10 +188,6 @@ main(int argc, char **argv)
gtk_set_locale();
gtk_init(&argc, &argv);
#ifdef MOZ_JPROF
setupProfilingStuff();
#endif
char *home_path;
char *full_path;
home_path = PR_GetEnv("HOME");
@ -183,11 +196,11 @@ main(int argc, char **argv)
exit(1);
}
full_path = g_strdup_printf("%s/%s", home_path, ".TestGtkEmbed");
full_path = g_strdup_printf("%s/%s", home_path, ".Minimo");
gtk_moz_embed_set_profile_path(full_path, "TestGtkEmbed");
gtk_moz_embed_set_profile_path(full_path, "Minimo");
TestGtkBrowser *browser = new_gtk_browser(GTK_MOZ_EMBED_FLAG_DEFAULTCHROME);
MinimoBrowser *browser = new_gtk_browser(GTK_MOZ_EMBED_FLAG_DEFAULTCHROME);
// set our minimum size
gtk_widget_set_usize(browser->mozEmbed, 240, 320);
@ -230,21 +243,22 @@ NewIconFromXPM(GtkWidget *toolbar, gchar** icon_xpm)
return icon;
}
static TestGtkBrowser *
static MinimoBrowser *
new_gtk_browser(guint32 chromeMask)
{
guint32 actualChromeMask = chromeMask;
TestGtkBrowser *browser = 0;
MinimoBrowser *browser = 0;
num_browsers++;
browser = g_new0(TestGtkBrowser, 1);
browser = g_new0(MinimoBrowser, 1);
browser_list = g_list_prepend(browser_list, browser);
browser->toolBarOn = FALSE;
browser->locationBarOn = FALSE;
browser->statusBarOn = FALSE;
browser->loading = TRUE;
g_print("new_gtk_browser\n");
@ -305,6 +319,9 @@ new_gtk_browser(guint32 chromeMask)
browser->reloadIcon = NewIconFromXPM(browser->toolbar, reload_xpm);
browser->stopIcon = NewIconFromXPM(browser->toolbar, stop_xpm);
// This is really just an allocation
browser->stopReloadIcon = NewIconFromXPM(browser->toolbar, stop_xpm);
// add it to the hbox
gtk_box_pack_start(GTK_BOX(browser->toolbarHBox), browser->toolbar,
FALSE, // expand
@ -328,24 +345,19 @@ new_gtk_browser(guint32 chromeMask)
browser->forwardIcon,
GTK_SIGNAL_FUNC(forward_clicked_cb),
browser);
// new stop button
browser->stopButton =
// new stop and reload button
// gtk_pixmap_get(GTK_PIXMAP(browser->stopIcon), &val, &mask);
// gtk_pixmap_set(GTK_PIXMAP(browser->stopReloadIcon), val, mask);
browser->stopReloadButton =
gtk_toolbar_append_item(GTK_TOOLBAR(browser->toolbar),
"Stop",
"Stop",
"Stop",
browser->stopIcon,
GTK_SIGNAL_FUNC(stop_clicked_cb),
browser);
// new reload button
browser->reloadButton =
gtk_toolbar_append_item(GTK_TOOLBAR(browser->toolbar),
"Reload",
"Reload",
"Reload",
browser->reloadIcon,
GTK_SIGNAL_FUNC(reload_clicked_cb),
"Stop/Reload",
"Stop/Reload",
"Stop/Reload",
browser->stopReloadIcon,
GTK_SIGNAL_FUNC(stop_reload_clicked_cb),
browser);
update_toolbar(browser);
// new home button
browser->homeButton =
gtk_toolbar_append_item(GTK_TOOLBAR(browser->toolbar),
@ -358,6 +370,11 @@ new_gtk_browser(guint32 chromeMask)
// create the url text entry
browser->urlEntry = gtk_entry_new();
g_signal_connect(G_OBJECT(browser->urlEntry), "focus-in-event",
G_CALLBACK(urlEntry_focus_in), browser);
g_signal_connect(G_OBJECT(browser->urlEntry), "focus-out-event",
G_CALLBACK(urlEntry_focus_out), browser);
// add it to the hbox
gtk_box_pack_start(GTK_BOX(browser->toolbarHBox), browser->urlEntry,
TRUE, // expand
@ -373,14 +390,6 @@ new_gtk_browser(guint32 chromeMask)
// create the new hbox for the progress area
browser->progressAreaHBox = gtk_hbox_new(FALSE, 0);
#if 0
// add it to the vbox
gtk_box_pack_start(GTK_BOX(browser->topLevelVBox), browser->progressAreaHBox,
FALSE, // expand
FALSE, // fill
0); // padding
#endif
// create our new progress bar
browser->progressBar = gtk_progress_bar_new();
@ -405,9 +414,7 @@ new_gtk_browser(guint32 chromeMask)
0); // padding
// by default none of the buttons are marked as sensitive.
gtk_widget_set_sensitive(browser->backButton, FALSE);
gtk_widget_set_sensitive(browser->stopButton, FALSE);
gtk_widget_set_sensitive(browser->forwardButton, FALSE);
gtk_widget_set_sensitive(browser->reloadButton, FALSE);
// catch the destruction of the toplevel window
gtk_signal_connect(GTK_OBJECT(browser->topLevelWindow), "delete_event",
@ -494,7 +501,7 @@ new_gtk_browser(guint32 chromeMask)
}
void
set_browser_visibility (TestGtkBrowser *browser, gboolean visibility)
set_browser_visibility (MinimoBrowser *browser, gboolean visibility)
{
if (!visibility)
{
@ -519,28 +526,19 @@ set_browser_visibility (TestGtkBrowser *browser, gboolean visibility)
}
void
back_clicked_cb (GtkButton *button, TestGtkBrowser *browser)
back_clicked_cb (GtkButton *button, MinimoBrowser *browser)
{
gtk_moz_embed_go_back(GTK_MOZ_EMBED(browser->mozEmbed));
}
void
stop_clicked_cb (GtkButton *button, TestGtkBrowser *browser)
void stop_reload_clicked_cb (GtkButton *button, MinimoBrowser *browser)
{
g_print("stop_clicked_cb\n");
gtk_moz_embed_stop_load(GTK_MOZ_EMBED(browser->mozEmbed));
}
if (browser->loading) {
g_print("stop_clicked_cb\n");
gtk_moz_embed_stop_load(GTK_MOZ_EMBED(browser->mozEmbed));
return;
}
void
forward_clicked_cb (GtkButton *button, TestGtkBrowser *browser)
{
g_print("forward_clicked_cb\n");
gtk_moz_embed_go_forward(GTK_MOZ_EMBED(browser->mozEmbed));
}
void
reload_clicked_cb (GtkButton *button, TestGtkBrowser *browser)
{
g_print("reload_clicked_cb\n");
GdkModifierType state = (GdkModifierType)0;
gint x, y;
@ -553,53 +551,28 @@ reload_clicked_cb (GtkButton *button, TestGtkBrowser *browser)
}
void
home_clicked_cb (GtkButton *button, TestGtkBrowser *browser)
forward_clicked_cb (GtkButton *button, MinimoBrowser *browser)
{
g_print("home_clicked_cb\n");
gtk_moz_embed_load_url(GTK_MOZ_EMBED(browser->mozEmbed), MINIMO_HOME_URL);
}
void
stream_clicked_cb (GtkButton *button, TestGtkBrowser *browser)
{
const char *data;
const char *data2;
data = "<html>Hi";
data2 = " there</html>\n";
g_print("stream_clicked_cb\n");
gtk_moz_embed_open_stream(GTK_MOZ_EMBED(browser->mozEmbed),
"file://", "text/html");
gtk_moz_embed_append_data(GTK_MOZ_EMBED(browser->mozEmbed),
data, strlen(data));
gtk_moz_embed_append_data(GTK_MOZ_EMBED(browser->mozEmbed),
data2, strlen(data2));
gtk_moz_embed_close_stream(GTK_MOZ_EMBED(browser->mozEmbed));
g_print("forward_clicked_cb\n");
gtk_moz_embed_go_forward(GTK_MOZ_EMBED(browser->mozEmbed));
}
void
url_activate_cb (GtkEditable *widget, TestGtkBrowser *browser)
home_clicked_cb (GtkButton *button, MinimoBrowser *browser)
{
g_print("home_clicked_cb\n");
gtk_moz_embed_load_url(GTK_MOZ_EMBED(browser->mozEmbed), MINIMO_HOME_URL);
}
void
url_activate_cb (GtkEditable *widget, MinimoBrowser *browser)
{
gchar *text = gtk_editable_get_chars(widget, 0, -1);
g_print("loading url %s\n", text);
gtk_moz_embed_load_url(GTK_MOZ_EMBED(browser->mozEmbed), text);
g_free(text);
}
void
quit_cb (GtkMenuItem *menuitem, TestGtkBrowser *browser)
{
TestGtkBrowser *tmpBrowser;
GList *tmp_list = browser_list;
tmpBrowser = (TestGtkBrowser *)tmp_list->data;
while (tmpBrowser) {
tmp_list = tmp_list->next;
gtk_widget_destroy(tmpBrowser->topLevelWindow);
tmpBrowser = (TestGtkBrowser *)tmp_list->data;
}
}
gboolean
delete_cb(GtkWidget *widget, GdkEventAny *event, TestGtkBrowser *browser)
delete_cb(GtkWidget *widget, GdkEventAny *event, MinimoBrowser *browser)
{
g_print("delete_cb\n");
gtk_widget_destroy(widget);
@ -607,7 +580,7 @@ delete_cb(GtkWidget *widget, GdkEventAny *event, TestGtkBrowser *browser)
}
void
destroy_cb (GtkWidget *widget, TestGtkBrowser *browser)
destroy_cb (GtkWidget *widget, MinimoBrowser *browser)
{
GList *tmp_list;
g_print("destroy_cb\n");
@ -621,7 +594,7 @@ destroy_cb (GtkWidget *widget, TestGtkBrowser *browser)
}
void
location_changed_cb (GtkMozEmbed *embed, TestGtkBrowser *browser)
location_changed_cb (GtkMozEmbed *embed, MinimoBrowser *browser)
{
char *newLocation;
int newPosition = 0;
@ -645,7 +618,7 @@ location_changed_cb (GtkMozEmbed *embed, TestGtkBrowser *browser)
}
void
title_changed_cb (GtkMozEmbed *embed, TestGtkBrowser *browser)
title_changed_cb (GtkMozEmbed *embed, MinimoBrowser *browser)
{
char *newTitle;
g_print("title_changed_cb\n");
@ -659,26 +632,26 @@ title_changed_cb (GtkMozEmbed *embed, TestGtkBrowser *browser)
}
void
load_started_cb (GtkMozEmbed *embed, TestGtkBrowser *browser)
load_started_cb (GtkMozEmbed *embed, MinimoBrowser *browser)
{
g_print("load_started_cb\n");
gtk_widget_set_sensitive(browser->stopButton, TRUE);
gtk_widget_set_sensitive(browser->reloadButton, FALSE);
browser->loadPercent = 0;
browser->bytesLoaded = 0;
browser->maxBytesLoaded = 0;
browser->loading = true;
update_toolbar(browser);
update_status_bar_text(browser);
}
void
load_finished_cb (GtkMozEmbed *embed, TestGtkBrowser *browser)
load_finished_cb (GtkMozEmbed *embed, MinimoBrowser *browser)
{
g_print("load_finished_cb\n");
gtk_widget_set_sensitive(browser->stopButton, FALSE);
gtk_widget_set_sensitive(browser->reloadButton, TRUE);
browser->loadPercent = 0;
browser->bytesLoaded = 0;
browser->maxBytesLoaded = 0;
browser->loading = false;
update_toolbar(browser);
update_status_bar_text(browser);
gtk_progress_set_percentage(GTK_PROGRESS(browser->progressBar), 0);
}
@ -686,7 +659,7 @@ load_finished_cb (GtkMozEmbed *embed, TestGtkBrowser *browser)
void
net_state_change_cb (GtkMozEmbed *embed, gint flags, guint status,
TestGtkBrowser *browser)
MinimoBrowser *browser)
{
g_print("net_state_change_cb %d\n", flags);
if (flags & GTK_MOZ_EMBED_FLAG_IS_REQUEST) {
@ -720,13 +693,13 @@ net_state_change_cb (GtkMozEmbed *embed, gint flags, guint status,
void net_state_change_all_cb (GtkMozEmbed *embed, const char *uri,
gint flags, guint status,
TestGtkBrowser *browser)
MinimoBrowser *browser)
{
// g_print("net_state_change_all_cb %s %d %d\n", uri, flags, status);
}
void progress_change_cb (GtkMozEmbed *embed, gint cur, gint max,
TestGtkBrowser *browser)
MinimoBrowser *browser)
{
g_print("progress_change_cb cur %d max %d\n", cur, max);
@ -755,13 +728,13 @@ void progress_change_cb (GtkMozEmbed *embed, gint cur, gint max,
void progress_change_all_cb (GtkMozEmbed *embed, const char *uri,
gint cur, gint max,
TestGtkBrowser *browser)
MinimoBrowser *browser)
{
//g_print("progress_change_all_cb %s cur %d max %d\n", uri, cur, max);
}
void
link_message_cb (GtkMozEmbed *embed, TestGtkBrowser *browser)
link_message_cb (GtkMozEmbed *embed, MinimoBrowser *browser)
{
char *message;
g_print("link_message_cb\n");
@ -775,7 +748,7 @@ link_message_cb (GtkMozEmbed *embed, TestGtkBrowser *browser)
}
void
js_status_cb (GtkMozEmbed *embed, TestGtkBrowser *browser)
js_status_cb (GtkMozEmbed *embed, MinimoBrowser *browser)
{
char *message;
g_print("js_status_cb\n");
@ -789,32 +762,32 @@ js_status_cb (GtkMozEmbed *embed, TestGtkBrowser *browser)
}
void
new_window_cb (GtkMozEmbed *embed, GtkMozEmbed **newEmbed, guint chromemask, TestGtkBrowser *browser)
new_window_cb (GtkMozEmbed *embed, GtkMozEmbed **newEmbed, guint chromemask, MinimoBrowser *browser)
{
g_print("new_window_cb\n");
g_print("embed is %p chromemask is %d\n", (void *)embed, chromemask);
TestGtkBrowser *newBrowser = new_gtk_browser(chromemask);
MinimoBrowser *newBrowser = new_gtk_browser(chromemask);
gtk_widget_set_usize(newBrowser->mozEmbed, 400, 400);
*newEmbed = GTK_MOZ_EMBED(newBrowser->mozEmbed);
g_print("new browser is %p\n", (void *)*newEmbed);
}
void
visibility_cb (GtkMozEmbed *embed, gboolean visibility, TestGtkBrowser *browser)
visibility_cb (GtkMozEmbed *embed, gboolean visibility, MinimoBrowser *browser)
{
g_print("visibility_cb %d\n", visibility);
set_browser_visibility(browser, visibility);
}
void
destroy_brsr_cb (GtkMozEmbed *embed, TestGtkBrowser *browser)
destroy_brsr_cb (GtkMozEmbed *embed, MinimoBrowser *browser)
{
g_print("destroy_brsr_cb\n");
gtk_widget_destroy(browser->topLevelWindow);
}
gint
open_uri_cb (GtkMozEmbed *embed, const char *uri, TestGtkBrowser *browser)
open_uri_cb (GtkMozEmbed *embed, const char *uri, MinimoBrowser *browser)
{
g_print("open_uri_cb %s\n", uri);
@ -827,14 +800,14 @@ open_uri_cb (GtkMozEmbed *embed, const char *uri, TestGtkBrowser *brows
void
size_to_cb (GtkMozEmbed *embed, gint width, gint height,
TestGtkBrowser *browser)
MinimoBrowser *browser)
{
g_print("*** size_to_cb %d %d\n", width, height);
gtk_widget_set_usize(browser->mozEmbed, width, height);
}
gint dom_key_down_cb (GtkMozEmbed *embed, nsIDOMKeyEvent *event,
TestGtkBrowser *browser)
MinimoBrowser *browser)
{
PRUint32 keyCode = 0;
// g_print("dom_key_down_cb\n");
@ -844,7 +817,7 @@ gint dom_key_down_cb (GtkMozEmbed *embed, nsIDOMKeyEvent *event,
}
gint dom_key_press_cb (GtkMozEmbed *embed, nsIDOMKeyEvent *event,
TestGtkBrowser *browser)
MinimoBrowser *browser)
{
PRUint32 keyCode = 0;
// g_print("dom_key_press_cb\n");
@ -854,7 +827,7 @@ gint dom_key_press_cb (GtkMozEmbed *embed, nsIDOMKeyEvent *event,
}
gint dom_key_up_cb (GtkMozEmbed *embed, nsIDOMKeyEvent *event,
TestGtkBrowser *browser)
MinimoBrowser *browser)
{
PRUint32 keyCode = 0;
// g_print("dom_key_up_cb\n");
@ -864,21 +837,21 @@ gint dom_key_up_cb (GtkMozEmbed *embed, nsIDOMKeyEvent *event,
}
gint dom_mouse_down_cb (GtkMozEmbed *embed, nsIDOMMouseEvent *event,
TestGtkBrowser *browser)
MinimoBrowser *browser)
{
// g_print("dom_mouse_down_cb\n");
return NS_OK;
}
gint dom_mouse_up_cb (GtkMozEmbed *embed, nsIDOMMouseEvent *event,
TestGtkBrowser *browser)
MinimoBrowser *browser)
{
// g_print("dom_mouse_up_cb\n");
return NS_OK;
}
gint dom_mouse_click_cb (GtkMozEmbed *embed, nsIDOMMouseEvent *event,
TestGtkBrowser *browser)
MinimoBrowser *browser)
{
// g_print("dom_mouse_click_cb\n");
PRUint16 button;
@ -888,21 +861,21 @@ gint dom_mouse_click_cb (GtkMozEmbed *embed, nsIDOMMouseEvent *event,
}
gint dom_mouse_dbl_click_cb (GtkMozEmbed *embed, nsIDOMMouseEvent *event,
TestGtkBrowser *browser)
MinimoBrowser *browser)
{
// g_print("dom_mouse_dbl_click_cb\n");
return NS_OK;
}
gint dom_mouse_over_cb (GtkMozEmbed *embed, nsIDOMMouseEvent *event,
TestGtkBrowser *browser)
MinimoBrowser *browser)
{
//g_print("dom_mouse_over_cb\n");
return NS_OK;
}
gint dom_mouse_out_cb (GtkMozEmbed *embed, nsIDOMMouseEvent *event,
TestGtkBrowser *browser)
MinimoBrowser *browser)
{
//g_print("dom_mouse_out_cb\n");
return NS_OK;
@ -914,15 +887,35 @@ void new_window_orphan_cb (GtkMozEmbedSingle *embed,
{
g_print("new_window_orphan_cb\n");
g_print("chromemask is %d\n", chromemask);
TestGtkBrowser *newBrowser = new_gtk_browser(chromemask);
MinimoBrowser *newBrowser = new_gtk_browser(chromemask);
*retval = GTK_MOZ_EMBED(newBrowser->mozEmbed);
g_print("new browser is %p\n", (void *)*retval);
}
// utility functions
void
update_toolbar(MinimoBrowser *browser)
{
GdkPixmap *val;
GdkBitmap *mask;
g_print("updating toolbar: %s\n",
browser->loading ? "setting stop icon" : "setting reload icon");
if (browser->loading)
gtk_pixmap_get(GTK_PIXMAP(browser->stopIcon), &val, &mask);
else
gtk_pixmap_get(GTK_PIXMAP(browser->reloadIcon), &val, &mask);
gtk_pixmap_set(GTK_PIXMAP(browser->stopReloadIcon), val, mask);
gtk_widget_queue_draw(browser->stopReloadIcon);
gtk_widget_show_now(browser->toolbar);
gtk_main_iteration_do(false);
}
void
update_status_bar_text(TestGtkBrowser *browser)
update_status_bar_text(MinimoBrowser *browser)
{
gchar message[256];
@ -952,7 +945,7 @@ update_status_bar_text(TestGtkBrowser *browser)
}
void
update_temp_message(TestGtkBrowser *browser, const char *message)
update_temp_message(MinimoBrowser *browser, const char *message)
{
if (browser->tempMessage)
g_free(browser->tempMessage);
@ -966,7 +959,7 @@ update_temp_message(TestGtkBrowser *browser, const char *message)
void
update_nav_buttons (TestGtkBrowser *browser)
update_nav_buttons (MinimoBrowser *browser)
{
gboolean can_go_back;
gboolean can_go_forward;

View File

@ -63,7 +63,7 @@ CPPSRCS = \
nsSimpleChromeRegistry.cpp \
$(NULL)
EXTRA_DSO_LDOPTS += $(MOZ_COMPONENT_LIBS) -L$(DIST)/bin/components -lnecko
EXTRA_DSO_LDOPTS += $(MOZ_COMPONENT_LIBS)
LOCAL_INCLUDES = \
-I$(topsrcdir)/netwerk/base/src \

View File

@ -54,17 +54,64 @@
#include "nsURLHelper.h"
#include "nsStandardURL.h"
class nsSimpleChromeURL : public nsStandardURL
class nsSimpleChromeURL : public nsIFileURL
{
public:
nsSimpleChromeURL(nsIFile* file) : nsStandardURL(PR_TRUE), mChromeDir(file)
{
}
NS_IMETHOD GetFile(nsIFile **);
nsSimpleChromeURL(nsIFile* file);
nsresult Init(PRUint32 urlType,
PRInt32 defaultPort,
const nsACString &spec,
const char *charset,
nsIURI *baseURI);
NS_DECL_ISUPPORTS
NS_DECL_NSIFILEURL
NS_FORWARD_SAFE_NSIURI(mStandardURL)
NS_FORWARD_SAFE_NSIURL(mStandardURL)
private:
nsCOMPtr<nsIFile> mChromeDir;
nsCOMPtr<nsIURL> mStandardURL;
};
nsSimpleChromeURL::nsSimpleChromeURL(nsIFile *file) : mChromeDir(file)
{
}
nsresult
nsSimpleChromeURL::Init(PRUint32 urlType,
PRInt32 defaultPort,
const nsACString &spec,
const char *charset,
nsIURI *baseURI)
{
nsresult rv;
static NS_DEFINE_CID(kStandardURLCID, NS_STANDARDURL_CID);
mStandardURL = do_CreateInstance(kStandardURLCID, &rv);
NS_ASSERTION(mStandardURL, "Could not create a Standard URL");
if (NS_FAILED(rv)) return rv;
nsCOMPtr<nsIStandardURL> surl = do_QueryInterface(mStandardURL);
return surl->Init(urlType, defaultPort, spec, charset, baseURI);
}
NS_IMPL_ADDREF(nsSimpleChromeURL)
NS_IMPL_RELEASE(nsSimpleChromeURL)
// DO we need to implements a QI for equals?
NS_INTERFACE_MAP_BEGIN(nsSimpleChromeURL)
NS_INTERFACE_MAP_ENTRY(nsIURI)
NS_INTERFACE_MAP_ENTRY(nsIURL)
NS_INTERFACE_MAP_ENTRY_CONDITIONAL(nsIFileURL, mChromeDir)
NS_INTERFACE_MAP_END
NS_IMETHODIMP
nsSimpleChromeURL::SetFile(nsIFile * aFile) { return NS_ERROR_FAILURE; }
NS_IMETHODIMP
nsSimpleChromeURL::GetFile(nsIFile **result)
{

View File

@ -94,12 +94,18 @@ nsSimpleChromeRegistry::LoadStyleSheet(nsICSSStyleSheet** aSheet, const nsACStri
NS_ENSURE_SUCCESS(rv, rv);
}
if (mCSSLoader) {
if (mCSSLoader)
rv = mCSSLoader->LoadAgentSheet(uri, aSheet);
NS_ENSURE_SUCCESS(rv, rv);
#ifdef DEBUG
if (NS_FAILED(rv)) {
nsXPIDLCString spec;
uri->GetSpec(spec);
printf("chrome: failed to load: %s\n", spec.get());
}
return NS_OK;
#endif
return rv;
}
NS_IMETHODIMP

View File

@ -0,0 +1,11 @@
Package: minimo
Section: x11
Priority: optional
Version: 0.1
Source: http://mozilla.org/projects/minimo/
Architecture: arm
Priority: optional
Maintainer: Doug Turner <dougt@meer.net>
Depends: libgtk2.0-0, libxt
Description: Minimo (Mini Mozilla) is a lightweight branch of the mozilla web browser targeting embedded devices
.

View File

@ -0,0 +1,8 @@
#!/bin/sh
#
# This is a very simple wrapper script for minimo
cd /usr/lib/mozilla-minimo
export LD_LIBRARY_PATH=/usr/lib/mozilla-minimo
exec ./Minimo http://www.mozilla.org/projects/minimo/home.html

View File

@ -0,0 +1,9 @@
[Desktop Entry]
Name=Minimo
Comment=Minimo web browser
Exec=minimo http://www.mozilla.org/projects/minimo/home.html
Terminal=0
Type=Application
Icon=minimo.png
Categories=Application;PIM
StartupNotify=True

Binary file not shown.

After

Width:  |  Height:  |  Size: 844 B

View File

@ -0,0 +1,18 @@
#!/bin/sh
rm -rf build
mkdir -p build/usr/lib/mozilla-minimo
mkdir -p build/usr/share/applications
mkdir -p build/usr/share/pixmaps
mkdir -p build/usr/bin
cp -a $MOZ_OBJDIR/dist/Embed/* build/usr/lib/mozilla-minimo/
cp minimo build/usr/bin/
cp minimo.desktop build/usr/share/applications/
cp minimo.png build/usr/share/pixmaps/
mkdir -p build/CONTROL
cp control.in build/CONTROL/control

View File

@ -51,6 +51,5 @@ find . -type f -exec cp '{}' . \;
rm -rf skin content locale
popd
cp all.js $MOZ_OBJDIR/dist/Embed/greprefs/all.js
cp README $MOZ_OBJDIR/dist/Embed/

View File

@ -0,0 +1,4 @@
cd /usr/bin/minimo
export LD_LIBRARY_PATH=/usr/bin/minimo
./TestGtkEmbed http://www.mozilla.org/projects/minimo/home.html