Minimo Linux changes from INDT.
** it removes 'icons.h' , 'preference.h' and 'history.h' -> they were not being used anymore. ** it restrutures Minimo.cpp , minimo_callbacks files -> In some places of the source code, there were methods in the wrong file, and so on. ** it changes the varibles and methods naming in all files (gFILENAME_NAME e.g. gPreferenceStruct) ** it creates a new file (minimo_support), and add the respective line in the Makefile.in file. ** it improves the bookmark manager, and also adds the FIND feature into its gtk_tree_view. ** it fixes some small bugs. r=antonio.gomes@indt.org.br. git-svn-id: svn://10.0.0.236/trunk@177874 18797224-902f-48f8-a5cc-f745e15eee43
This commit is contained in:
parent
3cfc488a7b
commit
22fb22a1b9
@ -79,6 +79,7 @@ REQUIRES += tracemalloc
|
||||
endif
|
||||
|
||||
CPPSRCS = Minimo.cpp \
|
||||
minimo_support.cpp \
|
||||
minimo_bookmark.cpp \
|
||||
minimo_history.cpp \
|
||||
minimo_callbacks.cpp \
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
66
mozilla/embedding/minimo/app/Minimo.h
Normal file
66
mozilla/embedding/minimo/app/Minimo.h
Normal file
@ -0,0 +1,66 @@
|
||||
/* ***** BEGIN LICENSE BLOCK *****
|
||||
* Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
*
|
||||
* The contents of this file are subject to the Mozilla Public License Version
|
||||
* 1.1 (the "License"); you may not use this file except in compliance with
|
||||
* the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/MPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS" basis,
|
||||
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
||||
* for the specific language governing rights and limitations under the
|
||||
* License.
|
||||
*
|
||||
* The Original Code is mozilla.org code.
|
||||
*
|
||||
* The Initial Developer of the Original Code is
|
||||
* Christopher Blizzard. Portions created by Christopher Blizzard are Copyright (C) Christopher Blizzard. All Rights Reserved.
|
||||
* Portions created by the Initial Developer are Copyright (C) 2001
|
||||
* the Initial Developer. All Rights Reserved.
|
||||
*
|
||||
* Contributor(s):
|
||||
* Christopher Blizzard <blizzard@mozilla.org>
|
||||
* Doug Turner <dougt@meer.net> Branched from TestGtkEmbed.cpp
|
||||
*
|
||||
* The 10LE Team (in alphabetical order)
|
||||
* -------------------------------------
|
||||
*
|
||||
* Ilias Biris <ext-ilias.biris@indt.org.br> - Coordinator
|
||||
* Afonso Costa <afonso.costa@indt.org.br>
|
||||
* Antonio Gomes <antonio.gomes@indt.org.br>
|
||||
* Diego Gonzalez <diego.gonzalez@indt.org.br>
|
||||
* Raoni Novellino <raoni.novellino@indt.org.br>
|
||||
* Andre Pedralho <andre.pedralho@indt.org.br>
|
||||
*
|
||||
*
|
||||
* Alternatively, the contents of this file may be used under the terms of
|
||||
* either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
* in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
* of those above. If you wish to allow use of your version of this file only
|
||||
* under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
* use your version of this file under the terms of the MPL, indicate your
|
||||
* decision by deleting the provisions above and replace them with the notice
|
||||
* and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
* the provisions above, a recipient may use your version of this file under
|
||||
* the terms of any one of the MPL, the GPL or the LGPL.
|
||||
*
|
||||
* ***** END LICENSE BLOCK ***** */
|
||||
|
||||
/* METHODS HEADERS */
|
||||
|
||||
/* Minimo's global types */
|
||||
#include "minimo_types.h"
|
||||
|
||||
GtkWidget* create_minimo_progress (MinimoBrowser* browser);
|
||||
|
||||
/* Building the Minimo Browser */
|
||||
MinimoBrowser *new_gtk_browser(guint32 chromeMask);
|
||||
//void new_window_cb(GtkMozEmbed *embed, GtkMozEmbed **retval, guint chromemask, MinimoBrowser *browser);
|
||||
void setup_toolbar(MinimoBrowser* browser);
|
||||
|
||||
GtkWidget *get_active_tab (MinimoBrowser *browser);
|
||||
|
||||
/* callbacks from the widget */
|
||||
void update_ui (MinimoBrowser *browser);
|
||||
void destroy_cb(GtkWidget *widget, MinimoBrowser *browser);
|
||||
File diff suppressed because it is too large
Load Diff
@ -62,30 +62,41 @@
|
||||
|
||||
#include "gtkmozembed.h"
|
||||
|
||||
/* Callbacks from the UI */
|
||||
void initialize_bookmark(GtkWidget *embed);
|
||||
void open_bookmark(void);
|
||||
void show_bookmark(void);
|
||||
void read_bookmark(void);
|
||||
void generate_bookmark_ctree(GNode *node, BookmarkCTreeData *ctree_data);
|
||||
void add_bookmark_cb(GtkWidget *menu_item,GtkWidget *min);
|
||||
void on_bookmark_add_button_clicked(GtkWidget *button,BookmarkWindow *bwin);
|
||||
void on_bookmark_edit_button_clicked(GtkWidget *button,BookmarkWindow *bwin);
|
||||
void on_bookmark_ok_button_clicked(GtkWidget *button,BookmarkWindow *bwin);
|
||||
void on_bookmark_cancel_button_clicked(GtkWidget *button,BookmarkWindow *bwin);
|
||||
void on_bookmark_go_button_clicked(GtkButton *button,BookmarkWindow *bwin);
|
||||
void on_bookmark_remove_button_clicked(GtkWidget *button,BookmarkWindow *bwin);
|
||||
void export_bookmarks(GtkButton *button,BookmarkWindow *bwin);
|
||||
typedef enum
|
||||
{
|
||||
NS_SITE,
|
||||
NS_NOTES,
|
||||
NS_FOLDER,
|
||||
NS_FOLDER_END,
|
||||
NS_SEPARATOR,
|
||||
NS_UNKNOWN
|
||||
} NSItemType;
|
||||
|
||||
/* Callbacks from widgets*/
|
||||
void on_bookmark_ctree_select_row(GtkWidget *ctree,GtkCTreeNode *node,gint col,BookmarkWindow *bwin);
|
||||
void on_bookmark_ctree_unselect_row(GtkWidget *ctree,GtkCTreeNode *node,gint col,BookmarkWindow *bwin);
|
||||
void on_bookmark_ctree_move(GtkWidget *ctree,GtkCTreeNode *node,GtkCTreeNode *parent,GtkCTreeNode *sibling,BookmarkWindow *bwin);
|
||||
void move_folder(GNode *old_node, GNode *new_parent_node);
|
||||
void print_bookmarks ();
|
||||
void print_node_data (GNode *node,FILE *file);
|
||||
void clear_entries(BookmarkWindow *bwin);
|
||||
void close_bookmark_window(BookmarkWindow *bwin);
|
||||
gboolean url_exists(BookmarkData *data);
|
||||
void bookmark_moz_embed_initialize (GtkWidget *);
|
||||
void bookmark_create_dialog ();
|
||||
void bookmark_open_file ();
|
||||
void bookmark_load_from_file (BookmarkTreeVData *);
|
||||
gboolean bookmark_search_function(GtkTreeModel *, gint, const gchar *, GtkTreeIter *,void *);
|
||||
void bookmark_insert_folder_on_treeview (BookmarkData *, BookmarkTreeVData *);
|
||||
void bookmark_insert_item_on_treeview (BookmarkData *, BookmarkTreeVData *);
|
||||
void bookmark_on_treev_select_row_cb (GtkTreeView *, BookmarkWindow *);
|
||||
void bookmark_add_button_cb (GtkWidget *,BookmarkWindow *);
|
||||
void bookmark_edit_button_cb (GtkWidget * ,BookmarkWindow *);
|
||||
void bookmark_go_button_cb (GtkButton * ,BookmarkWindow *);
|
||||
void bookmark_ok_button_cb (GtkWidget * ,BookmarkWindow *);
|
||||
void bookmark_cancel_button_cb (GtkWidget * ,BookmarkWindow *);
|
||||
void bookmark_remove_button_cb (GtkWidget * ,BookmarkWindow *);
|
||||
void bookmark_write_on_file (BookmarkWindow *);
|
||||
void bookmark_write_node_data_on_file (GtkTreeModel *, GtkTreeIter *);
|
||||
void bookmark_clear_all_entries (BookmarkWindow *);
|
||||
void bookmark_close_dialog (BookmarkWindow *);
|
||||
void bookmark_import_cb (GtkButton *,BookmarkWindow *);
|
||||
NSItemType bookmark_get_ns_item (FILE *, GString *, GString *);
|
||||
gchar * bookmark_read_line_from_html_file (FILE *);
|
||||
const gchar *bookmark_string_strcasestr (const gchar *, const gchar *);
|
||||
char * bookmark_ns_parse_item (GString *);
|
||||
void bookmark_export_cb (GtkButton *,BookmarkWindow *);
|
||||
void bookmark_export_items (FILE *, BookmarkData *, gboolean );
|
||||
void bookmark_add_url_directly_cb (GtkWidget *,GtkWidget *);
|
||||
|
||||
#endif
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@ -54,39 +54,53 @@
|
||||
#include "minimo_types.h"
|
||||
#include "minimo_preference.h"
|
||||
#include "minimo_bookmark.h"
|
||||
#include "Minimo.h"
|
||||
|
||||
/* context menu callbacks */
|
||||
void browse_in_window_from_popup(GtkWidget *menuitem, MinimoBrowser *browser);
|
||||
void download_link_from_popup(GtkWidget *menuitem, MinimoBrowser *browser);
|
||||
void minimo_load_url(gchar *url, MinimoBrowser *browser);
|
||||
void make_tab_from_popup(GtkWidget *menuitem, MinimoBrowser *browser);
|
||||
void open_new_tab_cb (GtkMenuItem *button, MinimoBrowser *browser);
|
||||
void close_current_tab_cb (GtkMenuItem *button, MinimoBrowser *browser);
|
||||
void browse_in_window_from_popup(GtkWidget *, MinimoBrowser *);
|
||||
void download_link_from_popup(GtkWidget *, MinimoBrowser *);
|
||||
void minimo_load_url(gchar *, MinimoBrowser *);
|
||||
void make_tab_from_popup(GtkWidget *, MinimoBrowser *);
|
||||
void open_new_tab_cb (GtkMenuItem *, MinimoBrowser *);
|
||||
void close_current_tab_cb (GtkMenuItem *, MinimoBrowser *);
|
||||
/* menu bar callbacks */
|
||||
void open_bookmark_window_cb (GtkMenuItem *button,MinimoBrowser *browser);
|
||||
void back_clicked_cb(GtkButton *button, MinimoBrowser *browser);
|
||||
void reload_clicked_cb(GtkButton *button, MinimoBrowser *browser);
|
||||
void forward_clicked_cb(GtkButton *button, MinimoBrowser *browser);
|
||||
void stop_clicked_cb(GtkButton *button, MinimoBrowser *browser);
|
||||
void open_bookmark_window_cb (GtkMenuItem *,MinimoBrowser *);
|
||||
void back_clicked_cb(GtkButton *, MinimoBrowser *);
|
||||
void reload_clicked_cb(GtkButton *, MinimoBrowser *);
|
||||
void forward_clicked_cb(GtkButton *, MinimoBrowser *);
|
||||
void stop_clicked_cb(GtkButton *, MinimoBrowser *);
|
||||
/* callbacks from the UI */
|
||||
gboolean delete_cb(GtkWidget *widget, GdkEventAny *event, MinimoBrowser *browser);
|
||||
gboolean delete_cb(GtkWidget *, GdkEventAny *, MinimoBrowser *);
|
||||
/* callbacks from the widget */
|
||||
void pref_clicked_cb(GtkButton *button, MinimoBrowser *browser);
|
||||
void quick_message(gchar* message);
|
||||
GtkWidget* create_minimo_progress (MinimoBrowser* browser);
|
||||
void net_state_change_cb(GtkMozEmbed *embed, gint flags, guint status, GtkLabel* label);
|
||||
void progress_change_cb(GtkMozEmbed *embed, gint cur, gint max, MinimoBrowser* browser);
|
||||
void title_changed_cb(GtkMozEmbed *embed, MinimoBrowser *browser);
|
||||
void load_started_cb(GtkMozEmbed *embed, MinimoBrowser *browser);
|
||||
void load_finished_cb(GtkMozEmbed *embed, MinimoBrowser *browser);
|
||||
void location_changed_cb(GtkMozEmbed *embed, GtkLabel* label);
|
||||
void create_save_document(GtkMenuItem *button, MinimoBrowser *browser, gchar *location);
|
||||
void on_save_ok_cb(GtkWidget *button, OpenDialogParams *fs);
|
||||
void save_image_from_popup(GtkWidget *menuitem, MinimoBrowser *browser);
|
||||
void visibility_cb(GtkMozEmbed *embed, gboolean visibility, MinimoBrowser *browser);
|
||||
void set_browser_visibility(MinimoBrowser *browser, gboolean visibility);
|
||||
gint open_uri_cb(GtkMozEmbed *embed, const char *uri, MinimoBrowser *browser);
|
||||
void size_to_cb(GtkMozEmbed *embed, gint width, gint height, MinimoBrowser *browser);
|
||||
void pref_clicked_cb(GtkButton *, MinimoBrowser *);
|
||||
void quick_message(gchar* );
|
||||
|
||||
/*callbacks from the menuToolButton */
|
||||
void show_hide_tabs_cb (GtkMenuItem *, MinimoBrowser *);
|
||||
void open_history_window (GtkButton *, MinimoBrowser *);
|
||||
void create_find_dialog (GtkWidget *, MinimoBrowser *);
|
||||
void create_open_document_from_file (GtkMenuItem *, MinimoBrowser *);
|
||||
void increase_font_size_cb (GtkMenuItem *, MinimoBrowser *);
|
||||
void decrease_font_size_cb (GtkMenuItem *, MinimoBrowser *);
|
||||
void full_screen_cb (GtkMenuItem *, MinimoBrowser *);
|
||||
void unfull_screen_cb (GtkMenuItem *, MinimoBrowser *);
|
||||
|
||||
void info_clicked_cb(GtkButton *, MinimoBrowser *);
|
||||
void open_url_dialog_input_cb (GtkButton *, MinimoBrowser *);
|
||||
|
||||
void net_state_change_cb(GtkMozEmbed *, gint , guint , GtkLabel* label);
|
||||
void progress_change_cb(GtkMozEmbed *, gint , gint , MinimoBrowser* );
|
||||
void title_changed_cb(GtkMozEmbed *, MinimoBrowser *);
|
||||
void load_started_cb(GtkMozEmbed *, MinimoBrowser *);
|
||||
void load_finished_cb(GtkMozEmbed *, MinimoBrowser *);
|
||||
void location_changed_cb(GtkMozEmbed *embed, GtkLabel *);
|
||||
void create_save_document_dialog (GtkMenuItem *, MinimoBrowser *, gchar *);
|
||||
void on_save_ok_cb(GtkWidget *, OpenDialogParams *);
|
||||
void save_image_from_popup(GtkWidget *, MinimoBrowser *);
|
||||
void visibility_cb(GtkMozEmbed *, gboolean , MinimoBrowser *);
|
||||
void set_browser_visibility(MinimoBrowser *, gboolean );
|
||||
gint open_uri_cb(GtkMozEmbed *, const char *, MinimoBrowser *);
|
||||
void size_to_cb(GtkMozEmbed *, gint , gint , MinimoBrowser *);
|
||||
void link_message_cb (GtkWidget *, MinimoBrowser *);
|
||||
|
||||
/* callbacks from buttons (mouse or stylus) clicks */
|
||||
@ -95,3 +109,4 @@ gint on_button_pressed_cb(GtkWidget *, MinimoBrowser *);
|
||||
gint on_button_released_cb(GtkWidget *, gpointer *, MinimoBrowser *);
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
@ -51,251 +51,262 @@
|
||||
#include "minimo_callbacks.h"
|
||||
#include "minimo_bookmark.h"
|
||||
|
||||
void on_menu_destroy(GtkWidget *menu, gchar *name)
|
||||
RightButtonClick *gContextRightButtonClick; /* Emulating right button clicks */
|
||||
|
||||
void context_initialize_timer()
|
||||
{
|
||||
gchar *free_href, *free_img, *free_linktext, *free_name;
|
||||
|
||||
free_href = (gchar *) g_object_get_data(G_OBJECT(menu), "freehref");
|
||||
if (free_href) g_free(free_href);
|
||||
free_img = (gchar *) g_object_get_data(G_OBJECT(menu), "freeimg");
|
||||
if (free_img) g_free(free_img);
|
||||
free_linktext = (gchar *) g_object_get_data(G_OBJECT(menu), "freelinktext");
|
||||
if (free_linktext) g_free(free_linktext);
|
||||
free_name = (gchar *) g_object_get_data(G_OBJECT(menu), "freename");
|
||||
if (free_name) g_free(free_name);
|
||||
return;
|
||||
/* right button click emulation initialization */
|
||||
gContextRightButtonClick = g_new0(RightButtonClick,1);
|
||||
gContextRightButtonClick->sig_handler= 0;
|
||||
gContextRightButtonClick->pressing_timer= g_timer_new();
|
||||
g_timer_reset(gContextRightButtonClick->pressing_timer);
|
||||
}
|
||||
|
||||
GtkWidget * get_link_popup_menu (MinimoBrowser *browser, gchar *href, gchar *linktext)
|
||||
GtkWidget * context_click_on_link (MinimoBrowser *browser, gchar *href, gchar *linktext)
|
||||
{
|
||||
GtkWidget *menu, *m1, *m2, *m3;
|
||||
|
||||
if (browser->link_menu) gtk_widget_destroy(browser->link_menu);
|
||||
menu = gtk_menu_new();
|
||||
g_object_set_data(G_OBJECT(menu), "freehref", href);
|
||||
g_object_set_data(G_OBJECT(menu), "freelinktext", linktext);
|
||||
|
||||
/* Open in this Window */
|
||||
m1 = gtk_image_menu_item_new_with_mnemonic("_Open link ...");
|
||||
gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(m1),
|
||||
gtk_image_new_from_stock(GTK_STOCK_OPEN,GTK_ICON_SIZE_MENU));
|
||||
g_signal_connect(G_OBJECT(m1), "activate", G_CALLBACK(browse_in_window_from_popup), browser);
|
||||
g_object_set_data(G_OBJECT(m1), "link", href);
|
||||
gtk_menu_append(GTK_MENU(menu), m1);
|
||||
|
||||
/* Open in a new Tab */
|
||||
m2 = gtk_image_menu_item_new_with_mnemonic("Open in a new _tab");
|
||||
gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(m2),
|
||||
gtk_image_new_from_stock(GTK_STOCK_NEW,GTK_ICON_SIZE_MENU));
|
||||
gtk_menu_append(GTK_MENU(menu), m2);
|
||||
g_object_set_data(G_OBJECT(m2), "link", href);
|
||||
g_signal_connect(G_OBJECT(m2), "activate", G_CALLBACK(make_tab_from_popup), browser);
|
||||
|
||||
/* Download link */
|
||||
m3 = gtk_image_menu_item_new_with_mnemonic("_Save link as ...");
|
||||
gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(m3),
|
||||
gtk_image_new_from_stock(GTK_STOCK_SAVE, GTK_ICON_SIZE_MENU));
|
||||
g_signal_connect(G_OBJECT(m3), "activate", G_CALLBACK(download_link_from_popup), browser);
|
||||
g_object_set_data(G_OBJECT(m3), "link", href);
|
||||
gtk_menu_append(GTK_MENU(menu), m3);
|
||||
|
||||
gtk_widget_show_all(menu);
|
||||
browser->link_menu = menu;
|
||||
return (menu);
|
||||
GtkWidget *menu, *m1, *m2, *m3;
|
||||
|
||||
if (browser->link_menu) gtk_widget_destroy(browser->link_menu);
|
||||
menu = gtk_menu_new();
|
||||
g_object_set_data(G_OBJECT(menu), "freehref", href);
|
||||
g_object_set_data(G_OBJECT(menu), "freelinktext", linktext);
|
||||
|
||||
/* Open in this Window */
|
||||
m1 = gtk_image_menu_item_new_with_mnemonic("_Open link ...");
|
||||
gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(m1),
|
||||
gtk_image_new_from_stock(GTK_STOCK_OPEN,GTK_ICON_SIZE_MENU));
|
||||
g_signal_connect(G_OBJECT(m1), "activate", G_CALLBACK(browse_in_window_from_popup), browser);
|
||||
g_object_set_data(G_OBJECT(m1), "link", href);
|
||||
gtk_menu_append(GTK_MENU(menu), m1);
|
||||
|
||||
/* Open in a new Tab */
|
||||
m2 = gtk_image_menu_item_new_with_mnemonic("Open in a new _tab");
|
||||
gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(m2),
|
||||
gtk_image_new_from_stock(GTK_STOCK_NEW,GTK_ICON_SIZE_MENU));
|
||||
gtk_menu_append(GTK_MENU(menu), m2);
|
||||
g_object_set_data(G_OBJECT(m2), "link", href);
|
||||
g_signal_connect(G_OBJECT(m2), "activate", G_CALLBACK(make_tab_from_popup), browser);
|
||||
|
||||
/* Download link */
|
||||
m3 = gtk_image_menu_item_new_with_mnemonic("_Save link as ...");
|
||||
gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(m3),
|
||||
gtk_image_new_from_stock(GTK_STOCK_SAVE, GTK_ICON_SIZE_MENU));
|
||||
g_signal_connect(G_OBJECT(m3), "activate", G_CALLBACK(download_link_from_popup), browser);
|
||||
g_object_set_data(G_OBJECT(m3), "link", href);
|
||||
gtk_menu_append(GTK_MENU(menu), m3);
|
||||
|
||||
gtk_widget_show_all(menu);
|
||||
browser->link_menu = menu;
|
||||
return (menu);
|
||||
|
||||
}
|
||||
|
||||
GtkWidget * get_image_popup_menu(MinimoBrowser *browser, gchar *img)
|
||||
GtkWidget * context_click_on_image (MinimoBrowser *browser, gchar *img)
|
||||
{
|
||||
GtkWidget *menu, *m1, *m2, *m3, *m4, *sep;
|
||||
gchar *lbl, *name, *aux_string;
|
||||
G_CONST_RETURN gchar *img_basename;
|
||||
|
||||
if (browser->image_menu)
|
||||
gtk_widget_destroy(browser->image_menu);
|
||||
|
||||
aux_string = (gchar *)g_malloc(1024);
|
||||
strcpy (aux_string, "");
|
||||
img_basename = g_basename(img);
|
||||
name = g_strdup(img_basename);
|
||||
menu = gtk_menu_new();
|
||||
g_object_set_data(G_OBJECT(menu), "freeimg", img);
|
||||
g_object_set_data(G_OBJECT(menu), "freename", name);
|
||||
|
||||
/* View Image */
|
||||
m1 = gtk_image_menu_item_new_with_mnemonic ("_View image");
|
||||
gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(m1),
|
||||
gtk_image_new_from_stock(GTK_STOCK_OPEN, GTK_ICON_SIZE_MENU));
|
||||
g_signal_connect(G_OBJECT(m1), "activate", G_CALLBACK(browse_in_window_from_popup), browser);
|
||||
g_object_set_data(G_OBJECT(m1), "link", img);
|
||||
gtk_menu_append(GTK_MENU(menu), m1);
|
||||
|
||||
/* Separator */
|
||||
sep = gtk_menu_item_new();
|
||||
gtk_menu_append(GTK_MENU(menu), sep);
|
||||
|
||||
/* Save as */
|
||||
m2 = gtk_image_menu_item_new_with_mnemonic ("_Save image as ...");
|
||||
gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(m2),
|
||||
gtk_image_new_from_stock(GTK_STOCK_SAVE, GTK_ICON_SIZE_MENU));
|
||||
g_signal_connect(G_OBJECT(m2), "activate", G_CALLBACK(download_link_from_popup), browser);
|
||||
g_object_set_data(G_OBJECT(m2), "link", img);
|
||||
g_object_set_data(G_OBJECT(m2), "name", aux_string);
|
||||
gtk_menu_append(GTK_MENU(menu), m2);
|
||||
|
||||
/* Save */
|
||||
lbl = g_strdup_printf("%s %s","Sa_ve image as ",img_basename);
|
||||
m3 = gtk_image_menu_item_new_with_mnemonic (lbl);
|
||||
gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(m3),
|
||||
gtk_image_new_from_stock(GTK_STOCK_SAVE, GTK_ICON_SIZE_MENU));
|
||||
g_signal_connect(G_OBJECT(m3), "activate", G_CALLBACK(save_image_from_popup), browser);
|
||||
g_object_set_data(G_OBJECT(m3), "link", img);
|
||||
g_object_set_data(G_OBJECT(m3), "name", name);
|
||||
gtk_menu_append(GTK_MENU(menu), m3);
|
||||
|
||||
/* Separator */
|
||||
sep = gtk_menu_item_new();
|
||||
gtk_menu_append(GTK_MENU(menu), sep);
|
||||
|
||||
/* Save page as */
|
||||
m4 = gtk_image_menu_item_new_with_mnemonic("Save page _as ... ");
|
||||
gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(m4),
|
||||
gtk_image_new_from_stock(GTK_STOCK_COPY, GTK_ICON_SIZE_MENU));
|
||||
g_signal_connect(G_OBJECT(m4), "activate", G_CALLBACK(download_link_from_popup), browser);
|
||||
g_object_set_data(G_OBJECT(m4), "link", gtk_moz_embed_get_location(GTK_MOZ_EMBED (browser->mozEmbed)));
|
||||
gtk_menu_append(GTK_MENU(menu), m4);
|
||||
gtk_widget_show_all(menu);
|
||||
|
||||
gtk_widget_show_all(menu);
|
||||
|
||||
g_free(aux_string);
|
||||
g_free(lbl);
|
||||
|
||||
browser->image_menu = menu;
|
||||
return (menu);
|
||||
GtkWidget *menu, *m1, *m2, *m3, *m4, *sep;
|
||||
gchar *lbl, *name, *aux_string;
|
||||
G_CONST_RETURN gchar *img_basename;
|
||||
|
||||
if (browser->image_menu)
|
||||
gtk_widget_destroy(browser->image_menu);
|
||||
|
||||
aux_string = (gchar *)g_malloc(1024);
|
||||
strcpy (aux_string, "");
|
||||
img_basename = g_basename(img);
|
||||
name = g_strdup(img_basename);
|
||||
menu = gtk_menu_new();
|
||||
g_object_set_data(G_OBJECT(menu), "freeimg", img);
|
||||
g_object_set_data(G_OBJECT(menu), "freename", name);
|
||||
|
||||
/* View Image */
|
||||
m1 = gtk_image_menu_item_new_with_mnemonic ("_View image");
|
||||
gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(m1),
|
||||
gtk_image_new_from_stock(GTK_STOCK_OPEN, GTK_ICON_SIZE_MENU));
|
||||
g_signal_connect(G_OBJECT(m1), "activate", G_CALLBACK(browse_in_window_from_popup), browser);
|
||||
g_object_set_data(G_OBJECT(m1), "link", img);
|
||||
gtk_menu_append(GTK_MENU(menu), m1);
|
||||
|
||||
/* Separator */
|
||||
sep = gtk_menu_item_new();
|
||||
gtk_menu_append(GTK_MENU(menu), sep);
|
||||
|
||||
/* Save as */
|
||||
m2 = gtk_image_menu_item_new_with_mnemonic ("_Save image as ...");
|
||||
gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(m2),
|
||||
gtk_image_new_from_stock(GTK_STOCK_SAVE, GTK_ICON_SIZE_MENU));
|
||||
g_signal_connect(G_OBJECT(m2), "activate", G_CALLBACK(download_link_from_popup), browser);
|
||||
g_object_set_data(G_OBJECT(m2), "link", img);
|
||||
g_object_set_data(G_OBJECT(m2), "name", aux_string);
|
||||
gtk_menu_append(GTK_MENU(menu), m2);
|
||||
|
||||
/* Save */
|
||||
lbl = g_strdup_printf("%s %s","Sa_ve image as ",img_basename);
|
||||
m3 = gtk_image_menu_item_new_with_mnemonic (lbl);
|
||||
gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(m3),
|
||||
gtk_image_new_from_stock(GTK_STOCK_SAVE, GTK_ICON_SIZE_MENU));
|
||||
g_signal_connect(G_OBJECT(m3), "activate", G_CALLBACK(save_image_from_popup), browser);
|
||||
g_object_set_data(G_OBJECT(m3), "link", img);
|
||||
g_object_set_data(G_OBJECT(m3), "name", name);
|
||||
gtk_menu_append(GTK_MENU(menu), m3);
|
||||
|
||||
/* Separator */
|
||||
sep = gtk_menu_item_new();
|
||||
gtk_menu_append(GTK_MENU(menu), sep);
|
||||
|
||||
/* Save page as */
|
||||
m4 = gtk_image_menu_item_new_with_mnemonic("Save page _as ... ");
|
||||
gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(m4),
|
||||
gtk_image_new_from_stock(GTK_STOCK_COPY, GTK_ICON_SIZE_MENU));
|
||||
g_signal_connect(G_OBJECT(m4), "activate", G_CALLBACK(download_link_from_popup), browser);
|
||||
g_object_set_data(G_OBJECT(m4), "link", gtk_moz_embed_get_location(GTK_MOZ_EMBED (browser->mozEmbed)));
|
||||
gtk_menu_append(GTK_MENU(menu), m4);
|
||||
gtk_widget_show_all(menu);
|
||||
|
||||
gtk_widget_show_all(menu);
|
||||
|
||||
g_free(aux_string);
|
||||
g_free(lbl);
|
||||
|
||||
browser->image_menu = menu;
|
||||
return (menu);
|
||||
}
|
||||
|
||||
GtkWidget * get_doc_popup_menu(MinimoBrowser *browser, gchar *href)
|
||||
GtkWidget * context_click_doc (MinimoBrowser *browser, gchar *href)
|
||||
{
|
||||
GtkWidget *menu, *m1,*m2,*m3, *m4, *m5, *m6, *sep;
|
||||
|
||||
if (browser->doc_menu) gtk_widget_destroy(browser->doc_menu);
|
||||
menu = gtk_menu_new();
|
||||
g_object_set_data(G_OBJECT(menu), "freehref", href);
|
||||
|
||||
m1 = gtk_image_menu_item_new_from_stock(GTK_STOCK_GO_BACK,NULL);
|
||||
g_signal_connect(G_OBJECT(m1), "activate", G_CALLBACK(back_clicked_cb), browser);
|
||||
gtk_widget_set_sensitive(m1, gtk_moz_embed_can_go_back(GTK_MOZ_EMBED(browser->mozEmbed)));
|
||||
gtk_menu_append(GTK_MENU(menu), m1);
|
||||
|
||||
m2 = gtk_image_menu_item_new_from_stock(GTK_STOCK_GO_FORWARD,NULL);
|
||||
gtk_menu_append(GTK_MENU(menu), m2);
|
||||
g_signal_connect(G_OBJECT(m2), "activate", G_CALLBACK(forward_clicked_cb), browser);
|
||||
gtk_widget_set_sensitive(m2, gtk_moz_embed_can_go_forward(GTK_MOZ_EMBED(browser->mozEmbed)));
|
||||
|
||||
m3 = gtk_image_menu_item_new_from_stock(GTK_STOCK_REFRESH,NULL);
|
||||
g_signal_connect(G_OBJECT(m3), "activate", G_CALLBACK(reload_clicked_cb), browser);
|
||||
gtk_menu_append(GTK_MENU(menu), m3);
|
||||
|
||||
m4 = gtk_image_menu_item_new_from_stock(GTK_STOCK_STOP,NULL);
|
||||
g_signal_connect(G_OBJECT(m4), "activate", G_CALLBACK(stop_clicked_cb), browser);
|
||||
gtk_menu_append(GTK_MENU(menu), m4);
|
||||
|
||||
/* Separator */
|
||||
sep = gtk_menu_item_new();
|
||||
gtk_menu_append(GTK_MENU(menu), sep);
|
||||
|
||||
m5 = gtk_image_menu_item_new_with_mnemonic ("_Save page as ... ");
|
||||
gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(m5),
|
||||
gtk_image_new_from_stock(GTK_STOCK_SAVE, GTK_ICON_SIZE_MENU));
|
||||
g_signal_connect(G_OBJECT(m5), "activate", G_CALLBACK(download_link_from_popup), browser);
|
||||
g_object_set_data(G_OBJECT(m5), "link", gtk_moz_embed_get_location(GTK_MOZ_EMBED (browser->mozEmbed)));
|
||||
gtk_menu_append(GTK_MENU(menu), m5);
|
||||
|
||||
m6 = gtk_image_menu_item_new_with_mnemonic ("_Bookmark this page");
|
||||
gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(m6),
|
||||
gtk_image_new_from_stock(GTK_STOCK_ADD, GTK_ICON_SIZE_MENU));
|
||||
g_signal_connect(G_OBJECT(m6), "activate", G_CALLBACK(add_bookmark_cb), browser);
|
||||
gtk_menu_append(GTK_MENU(menu), m6);
|
||||
|
||||
gtk_widget_show_all(menu);
|
||||
browser->doc_menu = menu;
|
||||
|
||||
return ( menu );
|
||||
GtkWidget *menu, *m1,*m2,*m3, *m4, *m5, *m6, *sep;
|
||||
|
||||
if (browser->doc_menu) gtk_widget_destroy(browser->doc_menu);
|
||||
menu = gtk_menu_new();
|
||||
g_object_set_data(G_OBJECT(menu), "freehref", href);
|
||||
|
||||
m1 = gtk_image_menu_item_new_from_stock(GTK_STOCK_GO_BACK,NULL);
|
||||
g_signal_connect(G_OBJECT(m1), "activate", G_CALLBACK(back_clicked_cb), browser);
|
||||
gtk_widget_set_sensitive(m1, gtk_moz_embed_can_go_back(GTK_MOZ_EMBED(browser->mozEmbed)));
|
||||
gtk_menu_append(GTK_MENU(menu), m1);
|
||||
|
||||
m2 = gtk_image_menu_item_new_from_stock(GTK_STOCK_GO_FORWARD,NULL);
|
||||
gtk_menu_append(GTK_MENU(menu), m2);
|
||||
g_signal_connect(G_OBJECT(m2), "activate", G_CALLBACK(forward_clicked_cb), browser);
|
||||
gtk_widget_set_sensitive(m2, gtk_moz_embed_can_go_forward(GTK_MOZ_EMBED(browser->mozEmbed)));
|
||||
|
||||
m3 = gtk_image_menu_item_new_from_stock(GTK_STOCK_REFRESH,NULL);
|
||||
g_signal_connect(G_OBJECT(m3), "activate", G_CALLBACK(reload_clicked_cb), browser);
|
||||
gtk_menu_append(GTK_MENU(menu), m3);
|
||||
|
||||
m4 = gtk_image_menu_item_new_from_stock(GTK_STOCK_STOP,NULL);
|
||||
g_signal_connect(G_OBJECT(m4), "activate", G_CALLBACK(stop_clicked_cb), browser);
|
||||
gtk_menu_append(GTK_MENU(menu), m4);
|
||||
|
||||
/* Separator */
|
||||
sep = gtk_menu_item_new();
|
||||
gtk_menu_append(GTK_MENU(menu), sep);
|
||||
|
||||
m5 = gtk_image_menu_item_new_with_mnemonic ("_Save page as ... ");
|
||||
gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(m5),
|
||||
gtk_image_new_from_stock(GTK_STOCK_SAVE, GTK_ICON_SIZE_MENU));
|
||||
g_signal_connect(G_OBJECT(m5), "activate", G_CALLBACK(download_link_from_popup), browser);
|
||||
g_object_set_data(G_OBJECT(m5), "link", gtk_moz_embed_get_location(GTK_MOZ_EMBED (browser->mozEmbed)));
|
||||
gtk_menu_append(GTK_MENU(menu), m5);
|
||||
|
||||
m6 = gtk_image_menu_item_new_with_mnemonic ("_Bookmark this page");
|
||||
gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(m6),
|
||||
gtk_image_new_from_stock(GTK_STOCK_ADD, GTK_ICON_SIZE_MENU));
|
||||
g_signal_connect(G_OBJECT(m6), "activate", G_CALLBACK(bookmark_add_url_directly_cb), browser);
|
||||
gtk_menu_append(GTK_MENU(menu), m6);
|
||||
|
||||
gtk_widget_show_all(menu);
|
||||
browser->doc_menu = menu;
|
||||
|
||||
return ( menu );
|
||||
}
|
||||
|
||||
GtkWidget * get_link_image_popup_menu(MinimoBrowser *browser, gchar *img, gchar *href)
|
||||
GtkWidget * context_click_link_image (MinimoBrowser *browser, gchar *img, gchar *href)
|
||||
{
|
||||
GtkWidget *menu, *m1, *m2, *m3, *m4, *m5, *sep;
|
||||
gchar *lbl, *name, *aux_string;
|
||||
G_CONST_RETURN gchar *img_basename;
|
||||
|
||||
if (browser->image_link_menu)
|
||||
gtk_widget_destroy(browser->image_link_menu);
|
||||
|
||||
aux_string= (gchar *)g_malloc(1024);
|
||||
strcpy (aux_string, "link image menu");
|
||||
|
||||
img_basename = g_basename(img);
|
||||
menu = gtk_menu_new();
|
||||
name = g_strdup(img_basename);
|
||||
g_object_set_data(G_OBJECT(menu), "freehref", href);
|
||||
g_object_set_data(G_OBJECT(menu), "freeimg", img);
|
||||
g_object_set_data(G_OBJECT(menu), "freename", name);
|
||||
g_signal_connect(G_OBJECT(menu), "destroy", G_CALLBACK(on_menu_destroy), aux_string);
|
||||
|
||||
/* Open Link in the current Window */
|
||||
m1 = gtk_image_menu_item_new_with_mnemonic ("_Open link ...");
|
||||
gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM(m1),gtk_image_new_from_stock(GTK_STOCK_OPEN, GTK_ICON_SIZE_MENU));
|
||||
g_signal_connect(G_OBJECT(m1), "activate", G_CALLBACK(browse_in_window_from_popup), browser);
|
||||
g_object_set_data(G_OBJECT(m1), "link", href);
|
||||
gtk_menu_append(GTK_MENU(menu), m1);
|
||||
|
||||
/* Open Link in a new tab */
|
||||
m2 = gtk_image_menu_item_new_with_mnemonic ("Open link in a new _Tab");
|
||||
gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM(m2),
|
||||
gtk_image_new_from_stock(GTK_STOCK_NEW, GTK_ICON_SIZE_MENU));
|
||||
gtk_menu_append(GTK_MENU(menu), m2);
|
||||
g_object_set_data(G_OBJECT(m2), "link", href);
|
||||
g_signal_connect(G_OBJECT(m2), "activate", G_CALLBACK(make_tab_from_popup), browser);
|
||||
|
||||
/* Separator */
|
||||
sep = gtk_menu_item_new();
|
||||
gtk_menu_append(GTK_MENU(menu), sep);
|
||||
|
||||
/* View Image */
|
||||
m3 = gtk_image_menu_item_new_with_mnemonic ("_View image");
|
||||
gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(m3),
|
||||
gtk_image_new_from_stock(GTK_STOCK_OPEN, GTK_ICON_SIZE_MENU));
|
||||
g_signal_connect(G_OBJECT(m3), "activate", G_CALLBACK(browse_in_window_from_popup), browser);
|
||||
g_object_set_data(G_OBJECT(m3), "link", img);
|
||||
gtk_menu_append(GTK_MENU(menu), m3);
|
||||
|
||||
/* Separator */
|
||||
sep = gtk_menu_item_new();
|
||||
gtk_menu_append(GTK_MENU(menu), sep);
|
||||
|
||||
m4 = gtk_image_menu_item_new_with_mnemonic ("_Save link as ...");
|
||||
gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(m4),gtk_image_new_from_stock(GTK_STOCK_SAVE,
|
||||
GTK_ICON_SIZE_MENU));
|
||||
g_signal_connect(G_OBJECT(m4), "activate", G_CALLBACK(download_link_from_popup), browser);
|
||||
g_object_set_data(G_OBJECT(m4), "link", href);
|
||||
gtk_menu_append(GTK_MENU(menu), m4);
|
||||
|
||||
lbl = g_strdup_printf("%s %s","Save image _as ",img_basename);
|
||||
m5 = gtk_image_menu_item_new_with_mnemonic (lbl);
|
||||
gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(m5),gtk_image_new_from_stock(GTK_STOCK_SAVE,
|
||||
GTK_ICON_SIZE_MENU));
|
||||
g_signal_connect(G_OBJECT(m5), "activate", G_CALLBACK(save_image_from_popup), browser);
|
||||
g_object_set_data(G_OBJECT(m5), "link", img);
|
||||
g_object_set_data(G_OBJECT(m5), "name", name);
|
||||
gtk_menu_append(GTK_MENU(menu), m5);
|
||||
|
||||
gtk_widget_show_all(menu);
|
||||
browser->image_link_menu = menu;
|
||||
|
||||
g_free(aux_string);
|
||||
|
||||
return ( menu );
|
||||
GtkWidget *menu, *m1, *m2, *m3, *m4, *m5, *sep;
|
||||
gchar *lbl, *name, *aux_string;
|
||||
G_CONST_RETURN gchar *img_basename;
|
||||
|
||||
if (browser->image_link_menu)
|
||||
gtk_widget_destroy(browser->image_link_menu);
|
||||
|
||||
aux_string= (gchar *)g_malloc(1024);
|
||||
strcpy (aux_string, "link image menu");
|
||||
|
||||
img_basename = g_basename(img);
|
||||
menu = gtk_menu_new();
|
||||
name = g_strdup(img_basename);
|
||||
g_object_set_data(G_OBJECT(menu), "freehref", href);
|
||||
g_object_set_data(G_OBJECT(menu), "freeimg", img);
|
||||
g_object_set_data(G_OBJECT(menu), "freename", name);
|
||||
g_signal_connect(G_OBJECT(menu), "destroy", G_CALLBACK(context_destroy_popup), aux_string);
|
||||
|
||||
/* Open Link in the current Window */
|
||||
m1 = gtk_image_menu_item_new_with_mnemonic ("_Open link ...");
|
||||
gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM(m1),gtk_image_new_from_stock(GTK_STOCK_OPEN, GTK_ICON_SIZE_MENU));
|
||||
g_signal_connect(G_OBJECT(m1), "activate", G_CALLBACK(browse_in_window_from_popup), browser);
|
||||
g_object_set_data(G_OBJECT(m1), "link", href);
|
||||
gtk_menu_append(GTK_MENU(menu), m1);
|
||||
|
||||
/* Open Link in a new tab */
|
||||
m2 = gtk_image_menu_item_new_with_mnemonic ("Open link in a new _Tab");
|
||||
gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM(m2),
|
||||
gtk_image_new_from_stock(GTK_STOCK_NEW, GTK_ICON_SIZE_MENU));
|
||||
gtk_menu_append(GTK_MENU(menu), m2);
|
||||
g_object_set_data(G_OBJECT(m2), "link", href);
|
||||
g_signal_connect(G_OBJECT(m2), "activate", G_CALLBACK(make_tab_from_popup), browser);
|
||||
|
||||
/* Separator */
|
||||
sep = gtk_menu_item_new();
|
||||
gtk_menu_append(GTK_MENU(menu), sep);
|
||||
|
||||
/* View Image */
|
||||
m3 = gtk_image_menu_item_new_with_mnemonic ("_View image");
|
||||
gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(m3),
|
||||
gtk_image_new_from_stock(GTK_STOCK_OPEN, GTK_ICON_SIZE_MENU));
|
||||
g_signal_connect(G_OBJECT(m3), "activate", G_CALLBACK(browse_in_window_from_popup), browser);
|
||||
g_object_set_data(G_OBJECT(m3), "link", img);
|
||||
gtk_menu_append(GTK_MENU(menu), m3);
|
||||
|
||||
/* Separator */
|
||||
sep = gtk_menu_item_new();
|
||||
gtk_menu_append(GTK_MENU(menu), sep);
|
||||
|
||||
m4 = gtk_image_menu_item_new_with_mnemonic ("_Save link as ...");
|
||||
gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(m4),gtk_image_new_from_stock(GTK_STOCK_SAVE,
|
||||
GTK_ICON_SIZE_MENU));
|
||||
g_signal_connect(G_OBJECT(m4), "activate", G_CALLBACK(download_link_from_popup), browser);
|
||||
g_object_set_data(G_OBJECT(m4), "link", href);
|
||||
gtk_menu_append(GTK_MENU(menu), m4);
|
||||
|
||||
lbl = g_strdup_printf("%s %s","Save image _as ",img_basename);
|
||||
m5 = gtk_image_menu_item_new_with_mnemonic (lbl);
|
||||
gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(m5),gtk_image_new_from_stock(GTK_STOCK_SAVE,
|
||||
GTK_ICON_SIZE_MENU));
|
||||
g_signal_connect(G_OBJECT(m5), "activate", G_CALLBACK(save_image_from_popup), browser);
|
||||
g_object_set_data(G_OBJECT(m5), "link", img);
|
||||
g_object_set_data(G_OBJECT(m5), "name", name);
|
||||
gtk_menu_append(GTK_MENU(menu), m5);
|
||||
|
||||
gtk_widget_show_all(menu);
|
||||
browser->image_link_menu = menu;
|
||||
|
||||
g_free(aux_string);
|
||||
|
||||
return ( menu );
|
||||
}
|
||||
|
||||
void context_destroy_popup (GtkWidget *menu, gchar *name)
|
||||
{
|
||||
gchar *free_href, *free_img, *free_linktext, *free_name;
|
||||
|
||||
free_href = (gchar *) g_object_get_data(G_OBJECT(menu), "freehref");
|
||||
|
||||
if (free_href) g_free(free_href);
|
||||
free_img = (gchar *) g_object_get_data(G_OBJECT(menu), "freeimg");
|
||||
if (free_img) g_free(free_img);
|
||||
free_linktext = (gchar *) g_object_get_data(G_OBJECT(menu), "freelinktext");
|
||||
if (free_linktext) g_free(free_linktext);
|
||||
free_name = (gchar *) g_object_get_data(G_OBJECT(menu), "freename");
|
||||
if (free_name) g_free(free_name);
|
||||
return;
|
||||
}
|
||||
|
||||
@ -52,10 +52,13 @@
|
||||
|
||||
#include "minimo_types.h"
|
||||
|
||||
void on_menu_destroy(GtkWidget *menu, gchar *name);
|
||||
GtkWidget * get_link_popup_menu (MinimoBrowser *browser, gchar *href, gchar *linktext);
|
||||
GtkWidget * get_image_popup_menu(MinimoBrowser *browser, gchar *img);
|
||||
GtkWidget * get_doc_popup_menu(MinimoBrowser *browser, gchar *href);
|
||||
GtkWidget * get_link_image_popup_menu(MinimoBrowser *browser, gchar *img, gchar *href);
|
||||
void context_initialize_timer ();
|
||||
|
||||
GtkWidget * context_click_on_link (MinimoBrowser *, gchar *, gchar *);
|
||||
GtkWidget * context_click_on_image (MinimoBrowser *, gchar *);
|
||||
GtkWidget * context_click_doc (MinimoBrowser *, gchar *);
|
||||
GtkWidget * context_click_link_image (MinimoBrowser *, gchar *, gchar *);
|
||||
|
||||
void context_destroy_popup (GtkWidget *, gchar *);
|
||||
|
||||
#endif
|
||||
|
||||
@ -58,7 +58,7 @@ void add_to_history(const gchar *url) {
|
||||
GSList *list;
|
||||
gint equals = 0;
|
||||
|
||||
read_history();
|
||||
history_read_from_file();
|
||||
|
||||
if (!url || url == NULL) return ;
|
||||
if (!g_strncasecmp(url,"about:",6) || !g_strcasecmp(url,"")) return;
|
||||
@ -76,15 +76,14 @@ void add_to_history(const gchar *url) {
|
||||
}
|
||||
if (equals == 0) {
|
||||
gHistoryList = g_slist_prepend(gHistoryList,g_strdup(url));
|
||||
write_history();
|
||||
history_write_in_file();
|
||||
}
|
||||
gHistoryProt = 0;
|
||||
|
||||
|
||||
}
|
||||
|
||||
/* Create and show the History Window*/
|
||||
void view_history(GtkWidget *embed) {
|
||||
void history_create_dialog (GtkWidget *embed) {
|
||||
|
||||
HistoryWindow *hwin;
|
||||
GSList *list;
|
||||
@ -92,7 +91,7 @@ void view_history(GtkWidget *embed) {
|
||||
|
||||
hwin = g_new0(HistoryWindow,1);
|
||||
|
||||
read_history();
|
||||
history_read_from_file();
|
||||
|
||||
//hwin->window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
|
||||
hwin->window = gtk_dialog_new();
|
||||
@ -104,7 +103,7 @@ void view_history(GtkWidget *embed) {
|
||||
gtk_window_set_modal (GTK_WINDOW (hwin->window), TRUE);
|
||||
gtk_window_set_keep_above(GTK_WINDOW (hwin->window), TRUE);
|
||||
|
||||
g_signal_connect(G_OBJECT(hwin->window),"destroy", G_CALLBACK(on_history_destroy), NULL);
|
||||
g_signal_connect(G_OBJECT(hwin->window),"destroy", G_CALLBACK(history_destroy_cb), NULL);
|
||||
hwin->title = g_strdup_printf(("Minimo - History (%d) items"), g_slist_length(gHistoryList));
|
||||
g_free(hwin->title);
|
||||
|
||||
@ -135,8 +134,8 @@ void view_history(GtkWidget *embed) {
|
||||
|
||||
hwin->embed = embed;
|
||||
|
||||
g_signal_connect(G_OBJECT(hwin->search_button), "clicked", G_CALLBACK(on_search_button_cb), hwin);
|
||||
g_signal_connect(G_OBJECT(hwin->go_button), "clicked", G_CALLBACK(on_history_clist_button_go_cb), hwin);
|
||||
g_signal_connect(G_OBJECT(hwin->search_button), "clicked", G_CALLBACK(history_search_cb), hwin);
|
||||
g_signal_connect(G_OBJECT(hwin->go_button), "clicked", G_CALLBACK(history_go_cb), hwin);
|
||||
|
||||
gtk_box_pack_start(GTK_BOX(hwin->search_box), hwin->search_label, FALSE, FALSE, 0);
|
||||
gtk_box_pack_start(GTK_BOX(hwin->search_box), hwin->search_entry, TRUE, TRUE, 0);
|
||||
@ -144,13 +143,13 @@ void view_history(GtkWidget *embed) {
|
||||
gtk_box_pack_start(GTK_BOX(hwin->search_box), hwin->go_button, FALSE, FALSE, 0);
|
||||
|
||||
hwin->remove = gtk_button_new_from_stock(GTK_STOCK_REMOVE);
|
||||
g_signal_connect(G_OBJECT(hwin->remove), "clicked", G_CALLBACK(remove_from_history), hwin);
|
||||
g_signal_connect(G_OBJECT(hwin->remove), "clicked", G_CALLBACK(history_remove_item_cb), hwin);
|
||||
|
||||
hwin->clear = gtk_button_new_from_stock(GTK_STOCK_CLEAR);
|
||||
g_signal_connect(G_OBJECT(hwin->clear), "clicked", G_CALLBACK(clear_history), hwin);
|
||||
g_signal_connect(G_OBJECT(hwin->clear), "clicked", G_CALLBACK(history_cleanup_cb), hwin);
|
||||
|
||||
hwin->close = gtk_button_new_from_stock(GTK_STOCK_CLOSE);
|
||||
g_signal_connect(G_OBJECT(hwin->close), "clicked", G_CALLBACK(close_history_win), hwin);
|
||||
g_signal_connect(G_OBJECT(hwin->close), "clicked", G_CALLBACK(history_close_dialog_cb), hwin);
|
||||
|
||||
hwin->btnbox = gtk_hbox_new(0,0);
|
||||
gtk_box_pack_start(GTK_BOX(hwin->vbox), hwin->search_box, FALSE, FALSE, 0);
|
||||
@ -174,7 +173,7 @@ void view_history(GtkWidget *embed) {
|
||||
}
|
||||
|
||||
/* Go to URL selected in the history list */
|
||||
void on_history_clist_button_go_cb(GtkWidget *button, HistoryWindow *hwin) {
|
||||
void history_go_cb(GtkWidget *button, HistoryWindow *hwin) {
|
||||
GList *selection;
|
||||
gchar *location;
|
||||
gint row;
|
||||
@ -190,13 +189,13 @@ void on_history_clist_button_go_cb(GtkWidget *button, HistoryWindow *hwin) {
|
||||
}
|
||||
|
||||
/* Close history window */
|
||||
void close_history_win(GtkWidget *button, HistoryWindow *hwin)
|
||||
void history_close_dialog_cb (GtkWidget *button, HistoryWindow *hwin)
|
||||
{
|
||||
gtk_widget_destroy(hwin->window);
|
||||
}
|
||||
|
||||
/* Remove an URL from history list */
|
||||
void remove_from_history(GtkWidget *button, HistoryWindow *hwin)
|
||||
void history_remove_item_cb (GtkWidget *button, HistoryWindow *hwin)
|
||||
{
|
||||
GList *selection = GTK_CLIST(hwin->clist)->selection;
|
||||
gchar *text;
|
||||
@ -232,7 +231,7 @@ void remove_from_list(gchar *text)
|
||||
}
|
||||
|
||||
/* Remove all URL from history list */
|
||||
void clear_history(GtkWidget *b, HistoryWindow *hwin)
|
||||
void history_cleanup_cb (GtkWidget *b, HistoryWindow *hwin)
|
||||
{
|
||||
gtk_clist_clear(GTK_CLIST(hwin->clist));
|
||||
g_slist_free(gHistoryList);
|
||||
@ -241,7 +240,7 @@ void clear_history(GtkWidget *b, HistoryWindow *hwin)
|
||||
}
|
||||
|
||||
/* Search an URL in the history list */
|
||||
void on_search_button_cb(GtkWidget *button, HistoryWindow *hwin)
|
||||
void history_search_cb(GtkWidget *button, HistoryWindow *hwin)
|
||||
{
|
||||
gint rows, i;
|
||||
G_CONST_RETURN gchar *search_text;
|
||||
@ -264,18 +263,17 @@ void on_search_button_cb(GtkWidget *button, HistoryWindow *hwin)
|
||||
GTK_CLIST(hwin->clist)->focus_row = i;
|
||||
search_pos = i;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
/* Close history window */
|
||||
void on_history_destroy(GtkWidget *window)
|
||||
void history_destroy_cb(GtkWidget *window)
|
||||
{
|
||||
write_history();
|
||||
history_write_in_file();
|
||||
}
|
||||
|
||||
/* Read the history file */
|
||||
void read_history(void) {
|
||||
void history_read_from_file (void) {
|
||||
gchar *line;
|
||||
gchar *url;
|
||||
gchar *user_home = NULL;
|
||||
@ -312,7 +310,7 @@ void read_history(void) {
|
||||
}
|
||||
|
||||
/* Write the history file */
|
||||
void write_history(void) {
|
||||
void history_write_in_file(void) {
|
||||
GSList *list;
|
||||
gchar *user_home= NULL;
|
||||
FILE *g_history_file = NULL;
|
||||
|
||||
@ -52,21 +52,19 @@
|
||||
|
||||
#include "minimo_types.h"
|
||||
|
||||
#include "gtkmozembed.h"
|
||||
/* History functions*/
|
||||
void history_write_in_file (void);
|
||||
void history_read_from_file (void);
|
||||
void add_to_history (const gchar *);
|
||||
|
||||
/* History callbacks */
|
||||
void view_history(GtkWidget *embed);
|
||||
void clear_history(GtkWidget *b, HistoryWindow *hwin);
|
||||
void close_history_win(GtkWidget *button, HistoryWindow *hwin);
|
||||
void on_history_clist_button_go_cb(GtkWidget *button, HistoryWindow *hwin);
|
||||
void remove_from_history(GtkWidget *button, HistoryWindow *hwin);
|
||||
void remove_from_list(gchar *text);
|
||||
void on_history_destroy(GtkWidget *window);
|
||||
void on_search_button_cb(GtkWidget *button, HistoryWindow *hwin);
|
||||
|
||||
/* History functions*/
|
||||
void add_to_history(const gchar *url);
|
||||
void write_history(void);
|
||||
void read_history(void);
|
||||
void history_create_dialog (GtkWidget *);
|
||||
void history_go_cb (GtkWidget *, HistoryWindow *);
|
||||
void history_close_dialog_cb (GtkWidget *, HistoryWindow *);
|
||||
void history_remove_item_cb (GtkWidget *, HistoryWindow *);
|
||||
void remove_from_list (gchar *);
|
||||
void history_cleanup_cb (GtkWidget *, HistoryWindow *);
|
||||
void history_search_cb (GtkWidget *, HistoryWindow *);
|
||||
void history_destroy_cb (GtkWidget *);
|
||||
|
||||
#endif
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@ -54,18 +54,16 @@
|
||||
#include "minimo_types.h"
|
||||
|
||||
/* Callbacks */
|
||||
void close_preferences_cb (GtkButton *button, PrefWindow *pref);
|
||||
void ok_preferences_cb (GtkButton *button, PrefWindow *pref);
|
||||
void preferences_close_cb (GtkButton *, PrefWindow *);
|
||||
void preferences_ok_cb (GtkButton *, PrefWindow *);
|
||||
|
||||
/* Support methods */
|
||||
void read_minimo_config(void);
|
||||
void write_minimo_config(void);
|
||||
void set_mozilla_prefs(void);
|
||||
void minimo_set_proxy_prefs(void);
|
||||
void preferences_read_config (void);
|
||||
void preferences_write_config (void);
|
||||
void preferences_set_mozilla_config (void);
|
||||
void preferences_set_mozilla_proxy_config(void);
|
||||
|
||||
/* UI Methods */
|
||||
PrefWindow * build_pref_window (GtkWidget *topLevelWindow);
|
||||
|
||||
PangoFontDescription* getOrCreateDefaultMinimoFont();
|
||||
PrefWindow * preferences_build_dialog (GtkWidget *);
|
||||
|
||||
#endif
|
||||
|
||||
260
mozilla/embedding/minimo/app/minimo_support.cpp
Normal file
260
mozilla/embedding/minimo/app/minimo_support.cpp
Normal file
@ -0,0 +1,260 @@
|
||||
/* ***** BEGIN LICENSE BLOCK *****
|
||||
* Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
*
|
||||
* The contents of this file are subject to the Mozilla Public License Version
|
||||
* 1.1 (the "License"); you may not use this file except in compliance with
|
||||
* the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/MPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS" basis,
|
||||
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
||||
* for the specific language governing rights and limitations under the
|
||||
* License.
|
||||
*
|
||||
* The Original Code is mozilla.org code.
|
||||
*
|
||||
* The Initial Developer of the Original Code is
|
||||
* Christopher Blizzard. Portions created by Christopher Blizzard are Copyright (C) Christopher Blizzard. All Rights Reserved.
|
||||
* Portions created by the Initial Developer are Copyright (C) 2001
|
||||
* the Initial Developer. All Rights Reserved.
|
||||
*
|
||||
* Contributor(s):
|
||||
* Christopher Blizzard <blizzard@mozilla.org>
|
||||
* Doug Turner <dougt@meer.net> Branched from TestGtkEmbed.cpp
|
||||
*
|
||||
* The 10LE Team (in alphabetical order)
|
||||
* -------------------------------------
|
||||
*
|
||||
* Ilias Biris <ext-ilias.biris@indt.org.br> - Coordinator
|
||||
* Afonso Costa <afonso.costa@indt.org.br>
|
||||
* Antonio Gomes <antonio.gomes@indt.org.br>
|
||||
* Diego Gonzalez <diego.gonzalez@indt.org.br>
|
||||
* Raoni Novellino <raoni.novellino@indt.org.br>
|
||||
* Andre Pedralho <andre.pedralho@indt.org.br>
|
||||
*
|
||||
*
|
||||
* Alternatively, the contents of this file may be used under the terms of
|
||||
* either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
* in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
* of those above. If you wish to allow use of your version of this file only
|
||||
* under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
* use your version of this file under the terms of the MPL, indicate your
|
||||
* decision by deleting the provisions above and replace them with the notice
|
||||
* and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
* the provisions above, a recipient may use your version of this file under
|
||||
* the terms of any one of the MPL, the GPL or the LGPL.
|
||||
*
|
||||
* ***** END LICENSE BLOCK ***** */
|
||||
|
||||
#include "minimo_support.h"
|
||||
#include "Minimo.h"
|
||||
#include "minimo_callbacks.h"
|
||||
|
||||
extern GList *gMinimoBrowserList; /* the list of browser windows
|
||||
currently open */
|
||||
extern gchar *gMinimoProfilePath;
|
||||
|
||||
/* Variable to enable pango settings */
|
||||
static PangoFontDescription* gDefaultMinimoFont = NULL;
|
||||
|
||||
/* Data Struct for make possible the real autocomplete */
|
||||
GList *gAutoCompleteList = g_list_alloc(); /* Auto Complete List */
|
||||
GtkEntryCompletion *gMinimoEntryCompletion;
|
||||
GtkListStore *gMinimoAutoCompleteListStore;
|
||||
GtkTreeIter gMinimoAutoCompleteIter;
|
||||
|
||||
/* body */
|
||||
void support_handle_remote(int sig) {
|
||||
|
||||
FILE *fp;
|
||||
char url[256];
|
||||
|
||||
sprintf(url, "/tmp/Mosaic.%d", getpid());
|
||||
if ((fp = fopen(url, "r"))) {
|
||||
|
||||
if (fgets(url, sizeof(url) - 1, fp)) {
|
||||
MinimoBrowser *bw = NULL;
|
||||
if (strncmp(url, "goto", 4) == 0 &&
|
||||
fgets(url, sizeof(url) - 1, fp)) {
|
||||
GList *tmp_list = gMinimoBrowserList;
|
||||
bw =(MinimoBrowser *)tmp_list->data;
|
||||
if(!bw) return;
|
||||
|
||||
} else if (strncmp(url, "newwin", 6) == 0 &&
|
||||
fgets(url, sizeof(url) - 1, fp)) {
|
||||
|
||||
bw = new_gtk_browser(GTK_MOZ_EMBED_FLAG_DEFAULTCHROME);
|
||||
gtk_widget_set_usize(bw->mozEmbed, 240, 320);
|
||||
set_browser_visibility(bw, TRUE);
|
||||
}
|
||||
|
||||
if (bw)
|
||||
gtk_moz_embed_load_url(GTK_MOZ_EMBED(bw->mozEmbed), url);
|
||||
fclose(fp);
|
||||
}
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
void support_init_remote() {
|
||||
gchar *file;
|
||||
FILE *fp;
|
||||
|
||||
signal(SIGUSR1, SIG_IGN);
|
||||
|
||||
/* Write the pidfile : would be useful for automation process*/
|
||||
file = g_strconcat(g_get_home_dir(), "/", ".mosaicpid", NULL);
|
||||
if((fp = fopen(file, "w"))) {
|
||||
fprintf (fp, "%d\n", getpid());
|
||||
fclose (fp);
|
||||
signal(SIGUSR1, support_handle_remote);
|
||||
}
|
||||
g_free(file);
|
||||
}
|
||||
|
||||
void support_cleanup_remote() {
|
||||
|
||||
gchar *file;
|
||||
|
||||
signal(SIGUSR1, SIG_IGN);
|
||||
|
||||
file = g_strconcat(g_get_home_dir(), "/", ".mosaicpid", NULL);
|
||||
unlink(file);
|
||||
g_free(file);
|
||||
}
|
||||
|
||||
void support_autocomplete_populate(gpointer data, gpointer combobox) {
|
||||
|
||||
if (!data || !combobox)
|
||||
return;
|
||||
|
||||
gtk_combo_set_popdown_strings (GTK_COMBO (combobox), gAutoCompleteList);
|
||||
}
|
||||
|
||||
void support_populate_autocomplete(GtkCombo *comboBox) {
|
||||
|
||||
g_list_foreach(gAutoCompleteList, support_autocomplete_populate, comboBox);
|
||||
}
|
||||
|
||||
gint support_autocomplete_list_cmp(gconstpointer a, gconstpointer b) {
|
||||
|
||||
if (!a)
|
||||
return -1;
|
||||
if (!b)
|
||||
return 1;
|
||||
|
||||
return strcmp((char*)a, (char*)b);
|
||||
}
|
||||
|
||||
void support_init_autocomplete() {
|
||||
if (!gAutoCompleteList)
|
||||
return;
|
||||
|
||||
char* full_path = g_strdup_printf("%s/%s", gMinimoProfilePath, "autocomplete.txt");
|
||||
|
||||
FILE *fp;
|
||||
char url[255];
|
||||
|
||||
gMinimoAutoCompleteListStore = gtk_list_store_new (1, G_TYPE_STRING);
|
||||
|
||||
if((fp = fopen(full_path, "r+"))) {
|
||||
while(fgets(url, sizeof(url) - 1, fp)) {
|
||||
int length = strlen(url);
|
||||
if (url[length-1] == '\n')
|
||||
url[length-1] = '\0';
|
||||
gAutoCompleteList = g_list_append(gAutoCompleteList, g_strdup(url));
|
||||
/* Append url's to autocompletion feature */
|
||||
gtk_list_store_append (gMinimoAutoCompleteListStore, &gMinimoAutoCompleteIter);
|
||||
gtk_list_store_set (gMinimoAutoCompleteListStore, &gMinimoAutoCompleteIter, 0, url, -1);
|
||||
}
|
||||
fclose(fp);
|
||||
}
|
||||
|
||||
gAutoCompleteList = g_list_sort(gAutoCompleteList, support_autocomplete_list_cmp);
|
||||
}
|
||||
|
||||
void support_autocomplete_writer(gpointer data, gpointer fp) {
|
||||
|
||||
FILE* file = (FILE*) fp;
|
||||
char* url = (char*) data;
|
||||
|
||||
if (!url || !fp)
|
||||
return;
|
||||
|
||||
fwrite(url, strlen(url), 1, file);
|
||||
fputc('\n', file);
|
||||
}
|
||||
|
||||
void support_autocomplete_destroy(gpointer data, gpointer dummy) {
|
||||
|
||||
g_free(data);
|
||||
}
|
||||
|
||||
void support_cleanup_autocomplete() {
|
||||
char* full_path = g_strdup_printf("%s/%s", gMinimoProfilePath, "autocomplete.txt");
|
||||
FILE *fp;
|
||||
|
||||
if((fp = fopen(full_path, "w"))) {
|
||||
g_list_foreach(gAutoCompleteList, support_autocomplete_writer, fp);
|
||||
fclose(fp);
|
||||
}
|
||||
|
||||
g_free(full_path);
|
||||
g_list_foreach(gAutoCompleteList, support_autocomplete_destroy, NULL);
|
||||
}
|
||||
|
||||
void support_add_autocomplete(const char* value, OpenDialogParams* params) {
|
||||
|
||||
GList* found = g_list_find_custom(gAutoCompleteList, value, support_autocomplete_list_cmp);
|
||||
|
||||
if (!found) {
|
||||
gAutoCompleteList = g_list_insert_sorted(gAutoCompleteList, g_strdup(value), support_autocomplete_list_cmp);
|
||||
/* Append url's to autocompletion*/
|
||||
gtk_list_store_append (gMinimoAutoCompleteListStore, &gMinimoAutoCompleteIter);
|
||||
gtk_list_store_set (gMinimoAutoCompleteListStore, &gMinimoAutoCompleteIter, 0, value, -1);
|
||||
}
|
||||
gtk_combo_set_popdown_strings (GTK_COMBO (params->dialog_combo), gAutoCompleteList);
|
||||
}
|
||||
|
||||
/* Method that build the entry completion */
|
||||
void support_build_entry_completion (MinimoBrowser* browser)
|
||||
{
|
||||
/* Minimo entry completion */
|
||||
gMinimoEntryCompletion = gtk_entry_completion_new ();
|
||||
|
||||
gtk_entry_completion_set_model (gMinimoEntryCompletion, GTK_TREE_MODEL (gMinimoAutoCompleteListStore));
|
||||
gtk_entry_completion_set_text_column (gMinimoEntryCompletion, 0);
|
||||
}
|
||||
|
||||
/* Method to sep up the escape key handler */
|
||||
void support_setup_escape_key_handler(GtkWidget *window)
|
||||
{
|
||||
g_signal_connect(G_OBJECT(window), "key_press_event", G_CALLBACK(support_escape_key_handler), NULL);
|
||||
}
|
||||
|
||||
/* Method to handler the escape key */
|
||||
gint support_escape_key_handler(GtkWidget *window, GdkEventKey *ev)
|
||||
{
|
||||
g_return_val_if_fail(window != NULL, FALSE);
|
||||
|
||||
if (ev->keyval == GDK_Escape) {
|
||||
gtk_widget_destroy(window);
|
||||
return (1);
|
||||
}
|
||||
return (0);
|
||||
}
|
||||
|
||||
PangoFontDescription* getOrCreateDefaultMinimoFont()
|
||||
{
|
||||
if (gDefaultMinimoFont)
|
||||
return gDefaultMinimoFont;
|
||||
|
||||
gDefaultMinimoFont = pango_font_description_from_string("sans 8");
|
||||
return gDefaultMinimoFont;
|
||||
}
|
||||
|
||||
void support_destroy_dialog_params_cb(GtkWidget *widget, OpenDialogParams* params)
|
||||
{
|
||||
free(params);
|
||||
}
|
||||
77
mozilla/embedding/minimo/app/minimo_support.h
Normal file
77
mozilla/embedding/minimo/app/minimo_support.h
Normal file
@ -0,0 +1,77 @@
|
||||
/* ***** BEGIN LICENSE BLOCK *****
|
||||
* Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
*
|
||||
* The contents of this file are subject to the Mozilla Public License Version
|
||||
* 1.1 (the "License"); you may not use this file except in compliance with
|
||||
* the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/MPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS" basis,
|
||||
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
||||
* for the specific language governing rights and limitations under the
|
||||
* License.
|
||||
*
|
||||
* The Original Code is mozilla.org code.
|
||||
*
|
||||
* The Initial Developer of the Original Code is
|
||||
* Christopher Blizzard. Portions created by Christopher Blizzard are Copyright (C) Christopher Blizzard. All Rights Reserved.
|
||||
* Portions created by the Initial Developer are Copyright (C) 2001
|
||||
* the Initial Developer. All Rights Reserved.
|
||||
*
|
||||
* Contributor(s):
|
||||
* Christopher Blizzard <blizzard@mozilla.org>
|
||||
* Doug Turner <dougt@meer.net> Branched from TestGtkEmbed.cpp
|
||||
*
|
||||
* The 10LE Team (in alphabetical order)
|
||||
* -------------------------------------
|
||||
*
|
||||
* Ilias Biris <ext-ilias.biris@indt.org.br> - Coordinator
|
||||
* Afonso Costa <afonso.costa@indt.org.br>
|
||||
* Antonio Gomes <antonio.gomes@indt.org.br>
|
||||
* Diego Gonzalez <diego.gonzalez@indt.org.br>
|
||||
* Raoni Novellino <raoni.novellino@indt.org.br>
|
||||
* Andre Pedralho <andre.pedralho@indt.org.br>
|
||||
*
|
||||
*
|
||||
* Alternatively, the contents of this file may be used under the terms of
|
||||
* either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
* in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
* of those above. If you wish to allow use of your version of this file only
|
||||
* under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
* use your version of this file under the terms of the MPL, indicate your
|
||||
* decision by deleting the provisions above and replace them with the notice
|
||||
* and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
* the provisions above, a recipient may use your version of this file under
|
||||
* the terms of any one of the MPL, the GPL or the LGPL.
|
||||
*
|
||||
* ***** END LICENSE BLOCK ***** */
|
||||
|
||||
#ifndef minimo_support_h
|
||||
#define minimo_support_h
|
||||
|
||||
#include "minimo_types.h"
|
||||
|
||||
void support_handle_remote (int );
|
||||
void support_init_remote ();
|
||||
void support_cleanup_remote ();
|
||||
|
||||
void support_destroy_dialog_params_cb (GtkWidget *, OpenDialogParams* );
|
||||
|
||||
void support_build_entry_completion (MinimoBrowser* );
|
||||
|
||||
void support_autocomplete_populate (gpointer , gpointer );
|
||||
void support_populate_autocomplete (GtkCombo *);
|
||||
gint support_autocomplete_list_cmp (gconstpointer , gconstpointer );
|
||||
void support_init_autocomplete ();
|
||||
void support_autocomplete_writer (gpointer , gpointer );
|
||||
void support_autocomplete_destroy (gpointer , gpointer );
|
||||
void support_cleanup_autocomplete ();
|
||||
void support_add_autocomplete (const char* , OpenDialogParams* );
|
||||
|
||||
void support_setup_escape_key_handler(GtkWidget *);
|
||||
gint support_escape_key_handler(GtkWidget *, GdkEventKey *);
|
||||
|
||||
PangoFontDescription* getOrCreateDefaultMinimoFont();
|
||||
|
||||
#endif
|
||||
@ -70,104 +70,103 @@
|
||||
|
||||
/* MINIMO TOOLBAR STRUCT */
|
||||
typedef struct _MinimoToolBar {
|
||||
GtkWidget *toolbar;
|
||||
|
||||
GtkWidget *OpenButton;
|
||||
GtkWidget *BackButton;
|
||||
GtkWidget *ReloadButton;
|
||||
GtkWidget *ForwardButton;
|
||||
GtkWidget *StopButton;
|
||||
GtkWidget *PrefsButton;
|
||||
GtkWidget *InfoButton;
|
||||
GtkWidget *QuitButton;
|
||||
GtkWidget *toolbar;
|
||||
|
||||
GtkWidget *OpenButton;
|
||||
GtkWidget *BackButton;
|
||||
GtkWidget *ReloadButton;
|
||||
GtkWidget *ForwardButton;
|
||||
GtkWidget *StopButton;
|
||||
GtkWidget *PrefsButton;
|
||||
GtkWidget *InfoButton;
|
||||
GtkWidget *QuitButton;
|
||||
} MinimoToolbar;
|
||||
|
||||
/* MINIMO STRUCT */
|
||||
typedef struct _MinimoBrowser {
|
||||
|
||||
GtkWidget *topLevelWindow;
|
||||
GtkWidget *topLevelVBox;
|
||||
GtkWidget *mozEmbed;
|
||||
|
||||
MinimoToolbar toolbar;
|
||||
|
||||
gboolean show_tabs;
|
||||
GtkWidget *notebook;
|
||||
GtkWidget *label_notebook;
|
||||
GtkWidget *active_page;
|
||||
|
||||
GtkWidget *progressPopup;
|
||||
GtkWidget *progressBar;
|
||||
gint totalBytes;
|
||||
|
||||
GtkWidget *link_menu;
|
||||
GtkWidget *image_menu;
|
||||
GtkWidget *doc_menu;
|
||||
GtkWidget *image_link_menu;
|
||||
GtkWidget *reload_menu;
|
||||
|
||||
gboolean didFind;
|
||||
GtkWidget *topLevelWindow;
|
||||
GtkWidget *topLevelVBox;
|
||||
GtkWidget *mozEmbed;
|
||||
|
||||
MinimoToolbar toolbar;
|
||||
|
||||
gboolean show_tabs;
|
||||
GtkWidget *notebook;
|
||||
GtkWidget *label_notebook;
|
||||
GtkWidget *active_page;
|
||||
|
||||
GtkWidget *progressPopup;
|
||||
GtkWidget *progressBar;
|
||||
gint totalBytes;
|
||||
|
||||
GtkWidget *link_menu;
|
||||
GtkWidget *image_menu;
|
||||
GtkWidget *doc_menu;
|
||||
GtkWidget *image_link_menu;
|
||||
GtkWidget *reload_menu;
|
||||
|
||||
gboolean didFind;
|
||||
|
||||
} MinimoBrowser;
|
||||
|
||||
typedef struct _PrefWindow /* configuration data struct */
|
||||
{
|
||||
GtkWidget *dialog;
|
||||
GtkWidget *okbutton;
|
||||
GtkWidget *cancelbutton;
|
||||
GtkWidget *applybutton;
|
||||
GtkWidget *block_popup;
|
||||
GtkWidget *vbox_popup;
|
||||
GtkWidget *fr_connection;
|
||||
GtkWidget *vbox_connection;
|
||||
GtkWidget *hbox_connection;
|
||||
GtkWidget *hbox_direct_connection;
|
||||
GtkWidget *fr_popup;
|
||||
GtkWidget *lb_popup;
|
||||
|
||||
GtkWidget *vbox_manual;
|
||||
GtkWidget *rb_manual_connection;
|
||||
GtkWidget *hbox_http;
|
||||
GtkWidget *lb_http;
|
||||
GtkWidget *en_http_proxy;
|
||||
GtkWidget *box_popup;
|
||||
|
||||
GtkWidget *lb_port_http;
|
||||
GtkWidget *en_http_port;
|
||||
GtkWidget *hbox_ssl;
|
||||
GtkWidget *lb_ssl;
|
||||
GtkWidget *en_ssl;
|
||||
GtkWidget *lb_ssl_port;
|
||||
GtkWidget *en_ssl_port;
|
||||
GtkWidget *hbox_ftp;
|
||||
|
||||
GtkWidget *lb_ftp;
|
||||
GtkWidget *en_ftp_proxy;
|
||||
GtkWidget *lb_ftp_port;
|
||||
GtkWidget *en_ftp_port;
|
||||
GtkWidget *hbox_noproxy;
|
||||
GtkWidget *lb_connection;
|
||||
|
||||
GSList *rb_direct_connection_group;
|
||||
GSList *rb_manual_connection_group;
|
||||
GtkWidget *hbox_manual_connection;
|
||||
GtkWidget *rb_direct_connection;
|
||||
|
||||
GtkWidget *dialog;
|
||||
GtkWidget *okbutton;
|
||||
GtkWidget *cancelbutton;
|
||||
GtkWidget *applybutton;
|
||||
GtkWidget *block_popup;
|
||||
GtkWidget *vbox_popup;
|
||||
GtkWidget *fr_connection;
|
||||
GtkWidget *vbox_connection;
|
||||
GtkWidget *hbox_connection;
|
||||
GtkWidget *hbox_direct_connection;
|
||||
GtkWidget *fr_popup;
|
||||
GtkWidget *lb_popup;
|
||||
|
||||
GtkWidget *vbox_manual;
|
||||
GtkWidget *rb_manual_connection;
|
||||
GtkWidget *hbox_http;
|
||||
GtkWidget *lb_http;
|
||||
GtkWidget *en_http_proxy;
|
||||
GtkWidget *box_popup;
|
||||
|
||||
GtkWidget *lb_port_http;
|
||||
GtkWidget *en_http_port;
|
||||
GtkWidget *hbox_ssl;
|
||||
GtkWidget *lb_ssl;
|
||||
GtkWidget *en_ssl;
|
||||
GtkWidget *lb_ssl_port;
|
||||
GtkWidget *en_ssl_port;
|
||||
GtkWidget *hbox_ftp;
|
||||
|
||||
GtkWidget *lb_ftp;
|
||||
GtkWidget *en_ftp_proxy;
|
||||
GtkWidget *lb_ftp_port;
|
||||
GtkWidget *en_ftp_port;
|
||||
GtkWidget *hbox_noproxy;
|
||||
GtkWidget *lb_connection;
|
||||
|
||||
GSList *rb_direct_connection_group;
|
||||
GSList *rb_manual_connection_group;
|
||||
GtkWidget *hbox_manual_connection;
|
||||
GtkWidget *rb_direct_connection;
|
||||
|
||||
} PrefWindow;
|
||||
|
||||
/* SPECIFIC STRUCT FOR SPECIFY SOME PARAMETERS OF '_open_dialog_params' METHOD */
|
||||
typedef struct _open_dialog_params
|
||||
{
|
||||
GtkWidget* dialog_combo;
|
||||
GtkWidget* main_combo;
|
||||
GtkWidget* dialog_combo;
|
||||
GtkWidget* main_combo;
|
||||
} OpenDialogParams;
|
||||
|
||||
/* SPECIFIC STRUCT FOR THE RIGHT CLICK BUTTON EMULATION */
|
||||
typedef struct _right_button_click
|
||||
{
|
||||
GTimer *pressing_timer;
|
||||
gulong sig_handler;
|
||||
gboolean is_connected;
|
||||
GTimer *pressing_timer;
|
||||
gulong sig_handler;
|
||||
} RightButtonClick;
|
||||
|
||||
|
||||
@ -185,56 +184,56 @@ typedef struct _right_button_click
|
||||
#define DEFAULT_MONOSPACE_FONT "-adobe-times-medium-r-normal-*-14-*-*-*-p-*-iso8859-1"
|
||||
|
||||
static const char *lang_font_item [LANG_FONT_NUM] =
|
||||
{
|
||||
"x-western",
|
||||
"x-central-euro",
|
||||
"ja",
|
||||
"zh-TW",
|
||||
"zh-CN",
|
||||
"ko",
|
||||
"x-cyrillic",
|
||||
"x-baltic",
|
||||
"el",
|
||||
"tr",
|
||||
"x-unicode",
|
||||
"x-user-def",
|
||||
"th",
|
||||
"he",
|
||||
"ar"
|
||||
};
|
||||
{
|
||||
"x-western",
|
||||
"x-central-euro",
|
||||
"ja",
|
||||
"zh-TW",
|
||||
"zh-CN",
|
||||
"ko",
|
||||
"x-cyrillic",
|
||||
"x-baltic",
|
||||
"el",
|
||||
"tr",
|
||||
"x-unicode",
|
||||
"x-user-def",
|
||||
"th",
|
||||
"he",
|
||||
"ar"
|
||||
};
|
||||
|
||||
/**
|
||||
* configuration data struct
|
||||
*/
|
||||
* configuration data struct
|
||||
*/
|
||||
typedef struct _ConfigData /* configuration data struct */
|
||||
{
|
||||
/* minimo prefs */
|
||||
gchar *home;
|
||||
gchar *mailer;
|
||||
gint xsize;
|
||||
gint ysize;
|
||||
gint layout;
|
||||
gint maxpopupitems;
|
||||
gint max_go;
|
||||
/* mozilla prefs */
|
||||
gchar *http_proxy;
|
||||
gchar *http_proxy_port;
|
||||
gchar *ftp_proxy;
|
||||
gchar *ftp_proxy_port;
|
||||
gchar *ssl_proxy;
|
||||
gchar *ssl_proxy_port;
|
||||
gint font_size[LANG_FONT_NUM];
|
||||
gint min_font_size[LANG_FONT_NUM];
|
||||
gint current_font_size;
|
||||
gboolean java;
|
||||
gboolean javascript;
|
||||
gboolean underline_links;
|
||||
gchar *no_proxy_for;
|
||||
gint direct_connection;
|
||||
gint popup_in_new_window;
|
||||
gint disable_popups;
|
||||
gint tab_text_length;
|
||||
|
||||
/* minimo prefs */
|
||||
gchar *home;
|
||||
gchar *mailer;
|
||||
gint xsize;
|
||||
gint ysize;
|
||||
gint layout;
|
||||
gint maxpopupitems;
|
||||
gint max_go;
|
||||
/* mozilla prefs */
|
||||
gchar *http_proxy;
|
||||
gchar *http_proxy_port;
|
||||
gchar *ftp_proxy;
|
||||
gchar *ftp_proxy_port;
|
||||
gchar *ssl_proxy;
|
||||
gchar *ssl_proxy_port;
|
||||
gint font_size[LANG_FONT_NUM];
|
||||
gint min_font_size[LANG_FONT_NUM];
|
||||
gint current_font_size;
|
||||
gboolean java;
|
||||
gboolean javascript;
|
||||
gboolean underline_links;
|
||||
gchar *no_proxy_for;
|
||||
gint direct_connection;
|
||||
gint popup_in_new_window;
|
||||
gint disable_popups;
|
||||
gint tab_text_length;
|
||||
|
||||
} ConfigData;
|
||||
|
||||
/****************/
|
||||
@ -243,21 +242,21 @@ typedef struct _ConfigData /* configuration data struct */
|
||||
|
||||
/* History Window Structure */
|
||||
typedef struct _HistoryWindow{
|
||||
GtkWidget *window;
|
||||
GtkWidget *scrolled_window;
|
||||
GtkWidget *clist;
|
||||
GtkWidget *vbox;
|
||||
GtkWidget *remove;
|
||||
GtkWidget *close;
|
||||
GtkWidget *btnbox;
|
||||
GtkWidget *clear;
|
||||
GtkWidget *search_label;
|
||||
GtkWidget *search_entry;
|
||||
GtkWidget *search_box;
|
||||
GtkWidget *search_button;
|
||||
GtkWidget *go_button;
|
||||
GtkWidget *embed;
|
||||
gchar *title;
|
||||
GtkWidget *window;
|
||||
GtkWidget *scrolled_window;
|
||||
GtkWidget *clist;
|
||||
GtkWidget *vbox;
|
||||
GtkWidget *remove;
|
||||
GtkWidget *close;
|
||||
GtkWidget *btnbox;
|
||||
GtkWidget *clear;
|
||||
GtkWidget *search_label;
|
||||
GtkWidget *search_entry;
|
||||
GtkWidget *search_box;
|
||||
GtkWidget *search_button;
|
||||
GtkWidget *go_button;
|
||||
GtkWidget *embed;
|
||||
gchar *title;
|
||||
}HistoryWindow;
|
||||
|
||||
/****************/
|
||||
@ -267,48 +266,47 @@ typedef struct _HistoryWindow{
|
||||
|
||||
/* represent a bookmark item */
|
||||
typedef struct _BookmarkData {
|
||||
gchar *label;
|
||||
gchar *url;
|
||||
gchar *label;
|
||||
gchar *url;
|
||||
} BookmarkData;
|
||||
|
||||
/* Represents Bookmarks List View*/
|
||||
typedef struct _BookmarkCTreeData {
|
||||
GtkWidget *ctree;
|
||||
GtkCTreeNode *parent;
|
||||
} BookmarkCTreeData;
|
||||
/* Represents Bookmarks Tree View*/
|
||||
typedef struct _BookmarkTreeVData {
|
||||
GtkTreeModel *treeStore;
|
||||
GtkTreeIter *parentIter;
|
||||
} BookmarkTreeVData;
|
||||
|
||||
/* Bookmarks Window Structure */
|
||||
typedef struct _BookmarkWindow {
|
||||
GtkWidget *window;
|
||||
GtkWidget *scrolled_window;
|
||||
GtkWidget *vbox1;
|
||||
GtkWidget *hbox1;
|
||||
GtkWidget *hbox2;
|
||||
GtkWidget *hbox3;
|
||||
GtkWidget *text_label;
|
||||
GtkWidget *text_entry;
|
||||
GtkWidget *url_label;
|
||||
GtkWidget *url_entry;
|
||||
GtkWidget *add_button;
|
||||
GtkWidget *edit_button;
|
||||
GtkWidget *folder_entry;
|
||||
GtkWidget *remove_button;
|
||||
GtkWidget *ok_button;
|
||||
GtkWidget *go_button;
|
||||
GtkWidget *cancel_button;
|
||||
GtkWidget *ctree;
|
||||
GNode *temp_node;
|
||||
GNode *parent_node;
|
||||
GtkCTreeNode *menu_node;
|
||||
BookmarkData *menu_node_data;
|
||||
BookmarkCTreeData ctree_data;
|
||||
|
||||
GtkWidget *reload_menu; /* context menu for reload flags */
|
||||
GtkWidget *doc_menu; /* pointer to document popup menu */
|
||||
GtkWidget *image_menu; /* pointer to image popup menu */
|
||||
GtkWidget *link_menu; /* pointer to link popup menu */
|
||||
GtkWidget *image_link_menu; /* pointer to image link popup menu */
|
||||
|
||||
FILE *bookmark_file;
|
||||
GtkWidget *window;
|
||||
GtkWidget *menubar;
|
||||
GtkWidget *menu_item_tools;
|
||||
GtkWidget *menu_tools;
|
||||
GtkWidget *menu_import;
|
||||
GtkWidget *menu_export;
|
||||
GtkWidget *scrolled_window;
|
||||
GtkWidget *vbox1;
|
||||
GtkWidget *hbox4;
|
||||
GtkWidget *hbox1;
|
||||
GtkWidget *hbox2;
|
||||
GtkWidget *hbox3;
|
||||
GtkWidget *text_label;
|
||||
GtkWidget *text_entry;
|
||||
GtkWidget *url_label;
|
||||
GtkWidget *url_entry;
|
||||
GtkWidget *add_button;
|
||||
GtkWidget *edit_button;
|
||||
GtkWidget *folder_entry;
|
||||
GtkWidget *remove_button;
|
||||
GtkWidget *ok_button;
|
||||
GtkWidget *go_button;
|
||||
GtkWidget *cancel_button;
|
||||
GtkWidget *treev;
|
||||
GtkTreeIter iter;
|
||||
GtkTreeSelection *selection;
|
||||
BookmarkTreeVData *treev_data;
|
||||
|
||||
} BookmarkWindow;
|
||||
|
||||
#endif
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user