📄 callbacks.c
字号:
{ OSBBrowser* self = OSB_BROWSER (user_data); GtkKHTML *engine = osb_browser_get_active_engine (self); gtk_khtml_go_forward (engine); osb_browser_update_ui(self, engine);}voidon_stop_clicked (GtkButton *button, gpointer user_data){ OSBBrowser* self = OSB_BROWSER (user_data); GtkKHTML* engine = osb_browser_get_active_engine(self); gtk_khtml_stop_load (engine); osb_browser_update_ui(self, engine);}voidon_refresh_clicked (GtkButton *button, gpointer user_data){ OSBBrowser* self = OSB_BROWSER (user_data); GtkKHTML* engine = osb_browser_get_active_engine(self); const gchar * cur_url; gtk_khtml_stop_load (engine); cur_url = normalize_filename(gtk_khtml_get_location (engine)); if (cur_url) { gtk_khtml_refresh (engine); } osb_browser_update_ui (self, engine);}voidon_home_clicked (GtkButton *button, gpointer user_data){ OSBBrowser* self = OSB_BROWSER (user_data); GtkKHTML* engine = osb_browser_get_active_engine(self); gtk_khtml_load_url (engine, osb_browser_config_get_string (self, URL_HOME)); osb_browser_update_ui(self, engine);}voidon_exec_clicked (GtkButton *button, gpointer user_data){ OSBBrowser* self = OSB_BROWSER (user_data); GtkEntry *entry = GTK_ENTRY (glade_xml_get_widget (self->_priv->xml, "location")); g_signal_emit_by_name (entry, "activate", user_data);}voidon_location_activate (GtkEntry *entry, gpointer user_data){ OSBBrowser* self = OSB_BROWSER (user_data); GtkKHTML *engine = osb_browser_get_active_engine (self); gchar* loc = normalize_filename(gtk_entry_get_text (entry)); if (loc) { gtk_khtml_load_url (engine, loc); } g_free(loc);}gbooleanon_location_key_release_event (GtkWidget *widget, GdkEventKey *event, gpointer user_data){ OSBBrowser* self = OSB_BROWSER (user_data); GtkKHTML *engine = osb_browser_get_active_engine (self); if (event->keyval == GDK_Escape) osb_browser_set_location (self, gtk_khtml_get_location (engine)); return FALSE; }voidon_go_back_activate (GtkMenuItem *menuitem, gpointer user_data){ OSBBrowser* self = OSB_BROWSER (user_data); GtkKHTML *engine = osb_browser_get_active_engine (self); gtk_khtml_go_back (engine); osb_browser_update_ui(self, engine);}voidon_go_forward_activate (GtkMenuItem *menuitem, gpointer user_data){ OSBBrowser* self = OSB_BROWSER (user_data); GtkKHTML *engine = osb_browser_get_active_engine (self); gtk_khtml_go_forward (engine); osb_browser_update_ui(self, engine);}voidon_go_home_activate (GtkMenuItem *menuitem, gpointer user_data){ OSBBrowser* self = OSB_BROWSER (user_data); GtkKHTML* engine = osb_browser_get_active_engine(self); gtk_khtml_load_url (engine, osb_browser_config_get_string (self, URL_HOME)); osb_browser_update_ui(self, engine);}gbooleanon_browser_delete_event (GtkWidget *widget, GdkEvent *event, gpointer user_data){ OSBBrowser* self = OSB_BROWSER (user_data); self = self; return FALSE;}voidon_browser_destroy (GtkObject *object, gpointer user_data){ OSBBrowser* self = OSB_BROWSER (object); g_object_unref (self->_priv->xml); self->_priv->xml = 0; osb_browserglobal_browser_destroyed (self->_priv->global, self);}voidon_engine_container_switch_page (GtkNotebook *notebook, GtkNotebookPage *page, guint page_num, gpointer user_data){ OSBBrowser* self = OSB_BROWSER (user_data); GtkKHTML* engine = GTK_KHTML (gtk_notebook_get_nth_page(self->_priv->tab, page_num)); osb_browser_update_ui(self, engine); osb_browser_update_ui_local(self, engine); }voidon_rendering_tree_activate (GtkMenuItem *menuitem, gpointer user_data){ OSBBrowser* self = OSB_BROWSER (user_data); osb_browser_print_render_tree(self);}gbooleanon_location_location_key_release_event (GtkWidget *widget, GdkEventKey *event, gpointer user_data){ return FALSE;}#define TEXT_MULTIPLIER_DEF 1.0f#define TEXT_MULTIPLIER_MIN 0.3f#define TEXT_MULTIPLIER_MAX 3.0f#define TEXT_MULTIPLIER_STEP 0.2fvoidon_view_zoom_in_activate (GtkMenuItem *menuitem, gpointer user_data){ OSBBrowser* self = OSB_BROWSER (user_data); GtkKHTML* engine = osb_browser_get_active_engine(self); gfloat mult = gtk_khtml_get_text_multiplier(engine); if (mult < TEXT_MULTIPLIER_MAX) gtk_khtml_set_text_multiplier(engine, mult + TEXT_MULTIPLIER_STEP); }voidon_view_zoom_out_activate (GtkMenuItem *menuitem, gpointer user_data){ OSBBrowser* self = OSB_BROWSER (user_data); GtkKHTML* engine = osb_browser_get_active_engine(self); gfloat mult = gtk_khtml_get_text_multiplier(engine); if (mult > TEXT_MULTIPLIER_MIN) gtk_khtml_set_text_multiplier(engine, mult - TEXT_MULTIPLIER_STEP);}voidon_view_zoom_default_activate (GtkMenuItem *menuitem, gpointer user_data){ OSBBrowser* self = OSB_BROWSER (user_data); GtkKHTML* engine = osb_browser_get_active_engine(self); gtk_khtml_set_text_multiplier(engine, TEXT_MULTIPLIER_DEF);}voidon_find_close_clicked (GtkButton *button, gpointer user_data){ OSBBrowser* self = OSB_BROWSER (user_data); GtkDialog *find = GTK_DIALOG (glade_xml_get_widget (self->_priv->xml, "find")); gtk_widget_hide (GTK_WIDGET (find)); g_warning("close");}voidon_find_find_clicked (GtkButton *button, gpointer user_data){ OSBBrowser* self = OSB_BROWSER (user_data); GtkKHTML* engine = osb_browser_get_active_engine(self); gboolean found = FALSE; GtkEntry *find_entry = GTK_ENTRY (glade_xml_get_widget (self->_priv->xml, "find_entry")); GtkToggleButton *find_dir_down = GTK_TOGGLE_BUTTON (glade_xml_get_widget (self->_priv->xml, "find_dir_down")); GtkToggleButton *find_wrap = GTK_TOGGLE_BUTTON (glade_xml_get_widget (self->_priv->xml, "find_wrap")); GtkToggleButton *find_case = GTK_TOGGLE_BUTTON (glade_xml_get_widget (self->_priv->xml, "find_case")); g_warning("find"); found = gtk_khtml_find (engine, gtk_entry_get_text (find_entry), gtk_toggle_button_get_active(find_case), gtk_toggle_button_get_active(find_dir_down)); /* if wrap specified, try to find again */ if (!found && gtk_toggle_button_get_active(find_wrap)) { found = gtk_khtml_find (engine, gtk_entry_get_text (find_entry), gtk_toggle_button_get_active(find_case), gtk_toggle_button_get_active(find_dir_down)); } if (!found) { GtkDialog *msg = GTK_DIALOG (gtk_message_dialog_new (GTK_WINDOW (self), GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT, GTK_MESSAGE_INFO, GTK_BUTTONS_CLOSE, _("Searched text not found"))); gtk_dialog_set_default_response (msg, GTK_RESPONSE_CLOSE); gtk_dialog_run (msg); gtk_widget_destroy (GTK_WIDGET (msg)); }}voidon_edit_find_activate (GtkMenuItem *menuitem, gpointer user_data){ OSBBrowser* self = OSB_BROWSER (user_data); GtkDialog *find = GTK_DIALOG (glade_xml_get_widget (self->_priv->xml, "find")); gtk_widget_show (GTK_WIDGET (find));}voidon_edit_find_again_activate (GtkMenuItem *menuitem, gpointer user_data){ OSBBrowser* self = OSB_BROWSER (user_data); self = self;}gbooleanon_find_delete_event (GtkWidget *widget, GdkEvent *event, gpointer user_data){ gtk_widget_hide (widget); /* stop propagating*/ return TRUE;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -