/* Get a font style for a text input */ static inline void fb_text_font_style(fbtk_widget_t *widget, int *font_height, int *padding, plot_font_style_t *font_style) { if (widget->u.text.outline) *padding = 1; else *padding = 0; //#ifdef FB_USE_FREETYPE if (!nsoption_bool(bitmap_fonts)) { *padding += widget->height / 6; *font_height = widget->height - *padding - *padding; } else { *font_height = FB_FONT_HEIGHT; *padding = (widget->height - *padding - *font_height) / 2; } font_style->family = PLOT_FONT_FAMILY_SANS_SERIF; if (!nsoption_bool(bitmap_fonts)) #ifdef AGA font_style->size = (nsoption_int(gui_font_size))*(790-nsoption_int(browser_dpi)); #else font_style->size = nsoption_int(gui_font_size)*(790-nsoption_int(browser_dpi)); #endif else
bool ro_gui_options_content_initialise(wimp_w w) { /* set the current values */ ro_gui_set_icon_selected_state(w, CONTENT_BLOCK_ADVERTISEMENTS, nsoption_bool(block_ads)); ro_gui_set_icon_selected_state(w, CONTENT_BLOCK_POPUPS, nsoption_bool(block_popups)); ro_gui_set_icon_selected_state(w, CONTENT_NO_PLUGINS, nsoption_bool(no_plugins)); ro_gui_set_icon_selected_state(w, CONTENT_TARGET_BLANK, nsoption_bool(target_blank)); /* initialise all functions for a newly created window */ ro_gui_wimp_event_register_checkbox(w, CONTENT_BLOCK_ADVERTISEMENTS); ro_gui_wimp_event_register_checkbox(w, CONTENT_BLOCK_POPUPS); ro_gui_wimp_event_register_checkbox(w, CONTENT_NO_PLUGINS); ro_gui_wimp_event_register_checkbox(w, CONTENT_TARGET_BLANK); ro_gui_wimp_event_register_button(w, CONTENT_DEFAULT_BUTTON, ro_gui_options_content_default); ro_gui_wimp_event_register_cancel(w, CONTENT_CANCEL_BUTTON); ro_gui_wimp_event_register_ok(w, CONTENT_OK_BUTTON, ro_gui_options_content_ok); ro_gui_wimp_event_set_help_prefix(w, "HelpContentConfig"); ro_gui_wimp_event_memorise(w); return true; }
END_HANDLER BUTTON_CLICKED(setDefaultExportOptions) { nsoption_set_int(margin_top, DEFAULT_MARGIN_TOP_MM); nsoption_set_int(margin_bottom, DEFAULT_MARGIN_BOTTOM_MM); nsoption_set_int(margin_left, DEFAULT_MARGIN_LEFT_MM); nsoption_set_int(margin_right, DEFAULT_MARGIN_RIGHT_MM); nsoption_set_int(export_scale, DEFAULT_EXPORT_SCALE * 100); nsoption_set_bool(suppress_images, false); nsoption_set_bool(remove_backgrounds, false); nsoption_set_bool(enable_loosening, true); nsoption_set_bool(enable_PDF_compression, true); nsoption_set_bool(enable_PDF_password, false); SET_SPIN(spinMarginTop, nsoption_int(margin_top)); SET_SPIN(spinMarginBottom, nsoption_int(margin_bottom)); SET_SPIN(spinMarginLeft, nsoption_int(margin_left)); SET_SPIN(spinMarginRight, nsoption_int(margin_right)); SET_SPIN(spinExportScale, nsoption_int(export_scale)); SET_CHECK(checkSuppressImages, nsoption_bool(suppress_images)); SET_CHECK(checkRemoveBackgrounds, nsoption_bool(remove_backgrounds)); SET_CHECK(checkCompressPDF, nsoption_bool(enable_PDF_compression)); SET_CHECK(checkPasswordPDF, nsoption_bool(enable_PDF_password)); SET_CHECK(checkFitPage, nsoption_bool(enable_loosening)); }
void Proxy(struct Hook *h, Object *o) { int num; get(obj->CY_Proxy_type, MUIA_Cycle_Active, &var); num = (int)var; if (num == 0) { set(obj->STR_Host, MUIA_Disabled, TRUE); set(obj->STR_Port, MUIA_Disabled, TRUE); set(obj->STR_Username, MUIA_Disabled, TRUE); set(obj->STR_Password, MUIA_Disabled, TRUE); set(obj->STR_Bypass, MUIA_Disabled, TRUE); nsoption_bool(http_proxy) = false; nsoption_int(http_proxy_auth) = OPTION_HTTP_PROXY_AUTH_NONE; } else if (num == 1) { set(obj->STR_Username, MUIA_Disabled, TRUE); set(obj->STR_Password, MUIA_Disabled, TRUE); nsoption_bool(http_proxy) = true; nsoption_int(http_proxy_auth) = OPTION_HTTP_PROXY_AUTH_NONE; } else if (num == 2) { nsoption_bool(http_proxy) = true; nsoption_int(http_proxy_auth) = OPTION_HTTP_PROXY_AUTH_BASIC; } }
struct NewMenu *ami_create_menu(struct gui_window_2 *gwin) { int i; gwin->menu = AllocVecTags(sizeof(struct NewMenu) * (AMI_MENU_AREXX_MAX + 1), AVT_ClearWithValue, 0, TAG_DONE); ami_init_menulabs(gwin); ami_menu_scan(ami_tree_get_tree(hotlist_window), gwin); ami_menu_arexx_scan(gwin); gwin = ami_menu_layout(gwin); #if defined(WITH_JS) || defined(WITH_MOZJS) gwin->menu[M_JS].nm_Flags = CHECKIT | MENUTOGGLE; if(nsoption_bool(enable_javascript) == true) gwin->menu[M_JS].nm_Flags |= CHECKED; #endif gwin->menu[M_PRINT].nm_Flags = NM_ITEMDISABLED; gwin->menu[M_IMGFORE].nm_Flags = CHECKIT | MENUTOGGLE; if(nsoption_bool(foreground_images) == true) gwin->menu[M_IMGFORE].nm_Flags |= CHECKED; gwin->menu[M_IMGBACK].nm_Flags = CHECKIT | MENUTOGGLE; if(nsoption_bool(background_images) == true) gwin->menu[M_IMGBACK].nm_Flags |= CHECKED; /* Set up scheduler to refresh the hotlist menu */ if(nsoption_int(menu_refresh) > 0) schedule(nsoption_int(menu_refresh), (void *)ami_menu_refresh, gwin); return(gwin->menu); }
void ami_menu_update_checked(struct gui_window_2 *gwin) { struct Menu *menustrip; GetAttr(WINDOW_MenuStrip, gwin->objects[OID_MAIN], (ULONG *)&menustrip); if(!menustrip) return; #if defined(WITH_JS) || defined(WITH_MOZJS) if(nsoption_bool(enable_javascript) == true) { if((ItemAddress(menustrip, AMI_MENU_JS)->Flags & CHECKED) == 0) ItemAddress(menustrip, AMI_MENU_JS)->Flags ^= CHECKED; } else { if(ItemAddress(menustrip, AMI_MENU_JS)->Flags & CHECKED) ItemAddress(menustrip, AMI_MENU_JS)->Flags ^= CHECKED; } #endif if(nsoption_bool(foreground_images) == true) { if((ItemAddress(menustrip, AMI_MENU_FOREIMG)->Flags & CHECKED) == 0) ItemAddress(menustrip, AMI_MENU_FOREIMG)->Flags ^= CHECKED; } else { if(ItemAddress(menustrip, AMI_MENU_FOREIMG)->Flags & CHECKED) ItemAddress(menustrip, AMI_MENU_FOREIMG)->Flags ^= CHECKED; } if(nsoption_bool(background_images) == true) { if((ItemAddress(menustrip, AMI_MENU_BACKIMG)->Flags & CHECKED) == 0) ItemAddress(menustrip, AMI_MENU_BACKIMG)->Flags ^= CHECKED; } else { if(ItemAddress(menustrip, AMI_MENU_BACKIMG)->Flags & CHECKED) ItemAddress(menustrip, AMI_MENU_BACKIMG)->Flags ^= CHECKED; } ResetMenuStrip(gwin->win, menustrip); }
static void gui_set_clipboard(const char *buffer, size_t length, nsclipboard_styles styles[], int n_styles) { char *text; struct CSet cset = {0}; if(buffer == NULL) return; if(!(OpenIFF(iffh, IFFF_WRITE))) { if(!(PushChunk(iffh, ID_FTXT, ID_FORM, IFFSIZE_UNKNOWN))) { if(nsoption_bool(clipboard_write_utf8)) { if(!(PushChunk(iffh, 0, ID_CSET, 32))) { cset.CodeSet = 106; // UTF-8 WriteChunkBytes(iffh, &cset, 32); PopChunk(iffh); } } } else { PopChunk(iffh); } if(!(PushChunk(iffh, 0, ID_CHRS, IFFSIZE_UNKNOWN))) { if(nsoption_bool(clipboard_write_utf8)) { WriteChunkBytes(iffh, buffer, length); } else { if(utf8_to_local_encoding(buffer, length, &text) == NSERROR_OK) { char *p; p = text; while(*p != '\0') { if(*p == 0xa0) *p = 0x20; p++; } WriteChunkBytes(iffh, text, strlen(text)); ami_utf8_free(text); } } PopChunk(iffh); } else { PopChunk(iffh); } if(!(PushChunk(iffh, 0, ID_UTF8, IFFSIZE_UNKNOWN))) { WriteChunkBytes(iffh, buffer, length); PopChunk(iffh); } else { PopChunk(iffh); } CloseIFF(iffh); } }
/** * Refresh the desk menu, reflecting netsurf current state. */ void deskmenu_update(void) { menu_icheck(h_gem_menu, MAINMENU_M_DEBUG_RENDER, (html_redraw_debug) ? 1 : 0); menu_icheck(h_gem_menu, MAINMENU_M_FG_IMAGES, (nsoption_bool(foreground_images)) ? 1 : 0); menu_icheck(h_gem_menu, MAINMENU_M_BG_IMAGES, (nsoption_bool(background_images)) ? 1 : 0); }
bool ro_gui_options_home_initialise(wimp_w w) { /* set the current values */ ro_gui_set_icon_string(w, HOME_URL_FIELD, nsoption_charp(homepage_url) ? nsoption_charp(homepage_url) : "", true); ro_gui_set_icon_selected_state(w, HOME_OPEN_STARTUP, nsoption_bool(open_browser_at_startup)); ro_gui_set_icon_shaded_state(w, HOME_URL_GRIGHT, !ro_gui_url_suggest_prepare_menu()); /* initialise all functions for a newly created window */ ro_gui_wimp_event_register_menu_gright(w, HOME_URL_FIELD, HOME_URL_GRIGHT, ro_gui_url_suggest_menu); ro_gui_wimp_event_register_checkbox(w, HOME_OPEN_STARTUP); ro_gui_wimp_event_register_button(w, HOME_DEFAULT_BUTTON, ro_gui_options_home_default); ro_gui_wimp_event_register_cancel(w, HOME_CANCEL_BUTTON); ro_gui_wimp_event_register_ok(w, HOME_OK_BUTTON, ro_gui_options_home_ok); ro_gui_wimp_event_register_menu_prepare(w, ro_gui_options_home_menu_prepare); ro_gui_wimp_event_set_help_prefix(w, "HelpHomeConfig"); ro_gui_wimp_event_memorise(w); return true; }
void gui_window_stop_throbber(struct gui_window *g) { struct IBox *bbox; ULONG cur_tab = 0; if(!g) return; if(nsoption_bool(kiosk_mode)) return; if(g->tab_node && (g->shared->tabs > 1)) { GetAttr(CLICKTAB_Current, g->shared->objects[GID_TABS], (ULONG *)&cur_tab); SetClickTabNodeAttrs(g->tab_node, TNA_Flagged, FALSE, TAG_DONE); RefreshGadgets((APTR)g->shared->objects[GID_TABS], g->shared->win, NULL); } g->throbbing = false; if((cur_tab == g->tab) || (g->shared->tabs <= 1)) { GetAttr(SPACE_AreaBox, g->shared->objects[GID_THROBBER], (ULONG *)&bbox); BltBitMapRastPort(throbber, 0, 0, g->shared->win->RPort, bbox->Left, bbox->Top, throbber_width, throbber_height, 0x0C0); } // g->shared->throbber_frame = 0; }
bool ami_add_to_clipboard(const char *text, size_t length, bool space) { char *buffer; if(nsoption_bool(utf8_clipboard) || ami_utf8_clipboard) { WriteChunkBytes(iffh,text,length); } else { buffer = ami_utf8_easy(text); if(buffer) { char *p; p = buffer; while(*p != '\0') { if(*p == 0xa0) *p = 0x20; p++; } WriteChunkBytes(iffh, buffer, strlen(buffer)); ami_utf8_free(buffer); } } if(space) WriteChunkBytes(iffh," ",1); return true; }
bool gui_empty_clipboard(void) { /* Put a half-completed FTXT on the clipboard and leave it open for more additions */ struct CSet cset = {0}; if(!(OpenIFF(iffh,IFFF_WRITE))) { if(!(PushChunk(iffh,ID_FTXT,ID_FORM,IFFSIZE_UNKNOWN))) { if(nsoption_bool(utf8_clipboard) || ami_utf8_clipboard) { if(!(PushChunk(iffh,0,ID_CSET,32))) { cset.CodeSet = 106; // UTF-8 WriteChunkBytes(iffh,&cset,32); PopChunk(iffh); } } } else { PopChunk(iffh); return false; } return true; } return false; }
bool ro_gui_download_keypress(wimp_key *key) { struct gui_download_window *dw; dw = (struct gui_download_window *)ro_gui_wimp_event_get_user_data(key->w); switch (key->c) { case wimp_KEY_ESCAPE: ro_gui_download_window_destroy(dw, false); return true; case wimp_KEY_RETURN: { const char *name = ro_gui_get_icon_string(dw->window, ICON_DOWNLOAD_PATH); if (!strrchr(name, '.')) { ro_warn_user("NoPathError", NULL); return true; } ro_gui_convert_save_path(dw->path, sizeof dw->path, name); dw->send_dataload = false; if (ro_gui_download_save(dw, dw->path, !nsoption_bool(confirm_overwrite)) && !dw->ctx) { /* finished already */ riscos_schedule(2000, ro_gui_download_window_destroy_wrapper, dw); } return true; } break; } /* ignore all other keypresses (F12 etc) */ return false; }
/** * Handle OK click/keypress in the save dialog. * * \param w window handle of save dialog * \return true on success, false on failure */ bool ro_gui_save_ok(wimp_w w) { const char *name = ro_gui_get_icon_string(w, ICON_SAVE_PATH); wimp_pointer pointer; char path[256]; if (!strrchr(name, '.')) { warn_user("NoPathError", NULL); return false; } ro_gui_convert_save_path(path, sizeof path, name); gui_save_sourcew = w; saving_from_dialog = true; gui_save_send_dataload = false; gui_save_close_after = xwimp_get_pointer_info(&pointer) || !(pointer.buttons & wimp_CLICK_ADJUST); memcpy(&gui_save_message.data.data_xfer.file_name, path, 1 + strlen(path)); if (ro_gui_save_content(gui_save_content, path, !nsoption_bool(confirm_overwrite))) { ro_gui_save_done(); return true; } return false; }
/** * This function draws one page, beginning with the height offset of done_height * * \param printer The printer interface for the printer to be used * \param settings The settings for printing to use * \return true if successful, false otherwise */ bool print_draw_next_page(const struct printer *printer, struct print_settings *settings) { struct rect clip; struct content_redraw_data data; struct redraw_context ctx = { .interactive = false, .background_images = !nsoption_bool(remove_backgrounds), .plot = printer->plotter }; html_redraw_printing_top_cropped = INT_MAX; clip.x0 = 0; clip.y0 = 0; clip.x1 = page_content_width * settings->scale; clip.y1 = page_content_height * settings->scale; data.x = 0; data.y = -done_height; data.width = 0; data.height = 0; data.background_colour = 0xFFFFFF; data.scale = settings->scale; data.repeat_x = false; data.repeat_y = false; html_redraw_printing = true; html_redraw_printing_border = clip.y1; printer->print_next_page(); if (!content_redraw(printed_content, &data, &clip, &ctx)) return false; done_height += page_content_height - (html_redraw_printing_top_cropped != INT_MAX ? clip.y1 - html_redraw_printing_top_cropped : 0) / settings->scale; return true; } /** * The content passed to the function is duplicated with its boxes, font * measuring functions are being set. * * \param content The content to be printed * \param settings The settings for printing to use * \return true if successful, false otherwise */ hlcache_handle *print_init(hlcache_handle *content, struct print_settings *settings) { hlcache_handle* printed_content; hlcache_handle_clone(content, &printed_content); return printed_content; }
bool ro_gui_options_interface_initialise(wimp_w w) { /* set the current values */ ro_gui_set_icon_selected_state(w, INTERFACE_STRIP_EXTNS_OPTION, nsoption_bool(strip_extensions)); ro_gui_set_icon_selected_state(w, INTERFACE_CONFIRM_OVWR_OPTION, nsoption_bool(confirm_overwrite)); ro_gui_set_icon_selected_state(w, INTERFACE_URL_COMPLETE_OPTION, nsoption_bool(url_suggestion)); ro_gui_set_icon_selected_state(w, INTERFACE_HISTORY_TOOLTIP_OPTION, nsoption_bool(history_tooltip)); ro_gui_set_icon_selected_state(w, INTERFACE_THUMBNAIL_ICONISE_OPTION, nsoption_bool(thumbnail_iconise)); ro_gui_set_icon_selected_state(w, INTERFACE_USE_EXTERNAL_HOTLIST, nsoption_bool(external_hotlists)); ro_gui_set_icon_string(w, INTERFACE_EXTERNAL_HOTLIST_APP, (nsoption_charp(external_hotlist_app)) ? nsoption_charp(external_hotlist_app) : "", false); ro_gui_set_icon_shaded_state(w, INTERFACE_EXTERNAL_HOTLIST_APP, !nsoption_bool(external_hotlists)); /* initialise all functions for a newly created window */ ro_gui_wimp_event_register_mouse_click(w, ro_gui_options_interface_click); ro_gui_wimp_event_register_button(w, INTERFACE_DEFAULT_BUTTON, ro_gui_options_interface_default); ro_gui_wimp_event_register_cancel(w, INTERFACE_CANCEL_BUTTON); ro_gui_wimp_event_register_ok(w, INTERFACE_OK_BUTTON, ro_gui_options_interface_ok); ro_gui_wimp_event_set_help_prefix(w, "HelpInterfaceConfig"); ro_gui_wimp_event_memorise(w); return true; }
static nserror ami_history_global_create_window(struct ami_history_global_window *history_win) { struct ami_corewindow *ami_cw = (struct ami_corewindow *)&history_win->core; ULONG refresh_mode = WA_SmartRefresh; if(nsoption_bool(window_simple_refresh) == true) { refresh_mode = WA_SimpleRefresh; } ami_cw->objects[GID_CW_WIN] = WindowObj, WA_ScreenTitle, ami_gui_get_screen_title(), WA_Title, ami_cw->wintitle, WA_Activate, TRUE, WA_DepthGadget, TRUE, WA_DragBar, TRUE, WA_CloseGadget, TRUE, WA_SizeGadget, TRUE, WA_SizeBRight, TRUE, WA_Top, nsoption_int(history_window_ypos), WA_Left, nsoption_int(history_window_xpos), WA_Width, nsoption_int(history_window_xsize), WA_Height, nsoption_int(history_window_ysize), WA_PubScreen, scrn, WA_ReportMouse, TRUE, refresh_mode, TRUE, WA_IDCMP, IDCMP_MOUSEMOVE | IDCMP_MOUSEBUTTONS | IDCMP_NEWSIZE | IDCMP_RAWKEY | IDCMP_GADGETUP | IDCMP_IDCMPUPDATE | IDCMP_EXTENDEDMOUSE | IDCMP_SIZEVERIFY | IDCMP_REFRESHWINDOW, WINDOW_IDCMPHook, &ami_cw->idcmp_hook, WINDOW_IDCMPHookBits, IDCMP_IDCMPUPDATE | IDCMP_EXTENDEDMOUSE | IDCMP_SIZEVERIFY | IDCMP_REFRESHWINDOW, WINDOW_SharedPort, sport, WINDOW_HorizProp, 1, WINDOW_VertProp, 1, WINDOW_UserData, history_win, WINDOW_MenuStrip, ami_history_global_menu_create(history_win), WINDOW_MenuUserData, WGUD_HOOK, WINDOW_IconifyGadget, FALSE, WINDOW_Position, WPOS_CENTERSCREEN, WINDOW_ParentGroup, ami_cw->objects[GID_CW_MAIN] = LayoutVObj, LAYOUT_AddChild, ami_cw->objects[GID_CW_DRAW] = SpaceObj, GA_ID, GID_CW_DRAW, SPACE_Transparent, TRUE, SPACE_BevelStyle, BVS_DISPLAY, GA_RelVerify, TRUE, SpaceEnd, EndGroup, EndWindow; if(ami_cw->objects[GID_CW_WIN] == NULL) { return NSERROR_NOMEM; } return NSERROR_OK; }
bool ro_gui_options_image_initialise(wimp_w w) { int i; /* load the sprite file */ if (example_users == 0) { char pathname[256]; snprintf(pathname, 256, "%s.Resources.Image", NETSURF_DIR); pathname[255] = '\0'; example_images = ro_gui_load_sprite_file(pathname); if (!example_images) return false; } example_users++; /* set the current values */ for (i = 0; (i < 4); i++) { if ((unsigned int)nsoption_int(plot_fg_quality) == tinct_options[i]) ro_gui_set_icon_string(w, IMAGE_FOREGROUND_FIELD, image_quality_menu->entries[i]. data.indirected_text.text, true); if ((unsigned int)nsoption_int(plot_bg_quality) == tinct_options[i]) ro_gui_set_icon_string(w, IMAGE_BACKGROUND_FIELD, image_quality_menu->entries[i]. data.indirected_text.text, true); } ro_gui_set_icon_decimal(w, IMAGE_SPEED_FIELD, nsoption_int(minimum_gif_delay), 2); ro_gui_set_icon_selected_state(w, IMAGE_DISABLE_ANIMATION, !nsoption_bool(animate_images)); ro_gui_options_update_shading(w); /* register icons */ ro_gui_wimp_event_register_menu_gright(w, IMAGE_FOREGROUND_FIELD, IMAGE_FOREGROUND_MENU, image_quality_menu); ro_gui_wimp_event_register_menu_gright(w, IMAGE_BACKGROUND_FIELD, IMAGE_BACKGROUND_MENU, image_quality_menu); ro_gui_wimp_event_register_text_field(w, IMAGE_SPEED_TEXT); ro_gui_wimp_event_register_numeric_field(w, IMAGE_SPEED_FIELD, IMAGE_SPEED_INC, IMAGE_SPEED_DEC, 0, 6000, 10, 2); ro_gui_wimp_event_register_checkbox(w, IMAGE_DISABLE_ANIMATION); ro_gui_wimp_event_register_text_field(w, IMAGE_SPEED_CS); ro_gui_wimp_event_register_redraw_window(w, ro_gui_options_image_redraw); ro_gui_wimp_event_register_mouse_click(w, ro_gui_options_image_click); ro_gui_wimp_event_register_menu_selection(w, ro_gui_options_image_update); ro_gui_wimp_event_register_cancel(w, IMAGE_CANCEL_BUTTON); ro_gui_wimp_event_register_ok(w, IMAGE_OK_BUTTON, ro_gui_options_image_ok); ro_gui_wimp_event_set_help_prefix(w, "HelpImageConfig"); ro_gui_wimp_event_memorise(w); return true; }
void gui_clear_selection(struct gui_window *g) { if(!g) return; if(!g->shared->win) return; if(nsoption_bool(kiosk_mode) == true) return; OffMenu(g->shared->win, AMI_MENU_CLEAR); OffMenu(g->shared->win, AMI_MENU_CUT); OffMenu(g->shared->win, AMI_MENU_COPY); }
static void gui_download_window_done(struct gui_download_window *dw) { struct dlnode *dln,*dln2 = NULL; struct browser_window *bw; bool queuedl = false; if(!dw) return; bw = dw->bw; if((nsoption_bool(download_notify)) && (dw->result == AMINS_DLOAD_OK)) { Notify(ami_gui_get_app_id(), APPNOTIFY_Title, messages_get("amiDownloadComplete"), APPNOTIFY_PubScreenName, "FRONT", APPNOTIFY_BackMsg, dw->fname, APPNOTIFY_CloseOnDC, TRUE, APPNOTIFY_Text, dw->fname, TAG_DONE); } download_context_destroy(dw->ctx); if((dln = dw->dln)) { dln2 = (struct dlnode *)GetSucc((struct Node *)dln); if((dln!=dln2) && (dln2)) queuedl = true; free(dln->filename); Remove((struct Node *)dln); FreeVec(dln); } FClose(dw->fh); SetComment(dw->fname, dw->url); downloads_in_progress--; DisposeObject(dw->objects[OID_MAIN]); DelObject(dw->node); if(queuedl) { nsurl *url; if (nsurl_create(dln2->node.ln_Name, &url) != NSERROR_OK) { amiga_warn_user("NoMemory", 0); } else { browser_window_navigate(bw, url, NULL, BW_NAVIGATE_DOWNLOAD, NULL, NULL, NULL); nsurl_unref(url); } } ami_try_quit(); /* In case the only window open was this download */ }
void ami_drag_icon_show(struct Window *win, const char *type) { struct DiskObject *dobj = NULL; ULONG *icondata1; ULONG width, height; long format = 0; int err = 0; int deftype = WBPROJECT; drag_in_progress = TRUE; if(nsoption_bool(drag_save_icons) == false) { ami_update_pointer(win, AMI_GUI_POINTER_DRAG); return; } else { ami_update_pointer(win, GUI_POINTER_DEFAULT); } if(!strcmp(type, "drawer")) deftype = WBDRAWER; dobj = GetIconTags(NULL, ICONGETA_GetDefaultName, type, ICONGETA_GetDefaultType, deftype, TAG_DONE); err = IconControl(dobj, ICONCTRLA_GetWidth,&width, ICONCTRLA_GetHeight,&height, TAG_DONE); drag_icon_width = width; drag_icon_height = height; drag_icon = OpenWindowTags(NULL, WA_Left, scrn->MouseX - (width/2), WA_Top, scrn->MouseY - (height/2), WA_Width, width, WA_Height, height, WA_PubScreen, scrn, WA_Borderless, TRUE, WA_ToolBox, TRUE, WA_StayTop, TRUE, WA_Opaqueness, 128, WA_OverrideOpaqueness, TRUE, TAG_DONE); /* probably need layouticon and drawinfo stuff too */ DrawIconState(drag_icon->RPort, dobj, NULL, 0, 0, IDS_NORMAL, ICONDRAWA_Frameless, TRUE, ICONDRAWA_Borderless, TRUE, TAG_DONE); }
/* exported interface documented in completion.h */ gboolean nsgtk_completion_update(GtkEntry *entry) { gtk_list_store_clear(nsgtk_completion_list); if (nsoption_bool(url_suggestion) == true) { urldb_iterate_partial(gtk_entry_get_text(entry), nsgtk_completion_udb_callback); } return TRUE; }
void gui_start_selection(struct gui_window *g) { if(!g) return; if(!g->shared->win) return; if(nsoption_bool(kiosk_mode) == true) return; OnMenu(g->shared->win, AMI_MENU_CLEAR); OnMenu(g->shared->win, AMI_MENU_COPY); if (browser_window_get_editor_flags(g->shared->bw) & BW_EDITOR_CAN_CUT) OnMenu(g->shared->win, AMI_MENU_CUT); }
void gui_start_selection(struct gui_window *g) { if(!g) return; if(!g->shared->win) return; if(nsoption_bool(kiosk_mode) == true) return; OnMenu(g->shared->win, AMI_MENU_CLEAR); OnMenu(g->shared->win, AMI_MENU_COPY); if(selection_read_only(browser_window_get_selection(g->shared->bw)) == false) OnMenu(g->shared->win, AMI_MENU_CUT); }
void ami_update_pointer(struct Window *win, gui_pointer_shape shape) { if(drag_save_data) return; if(nsoption_bool(use_os_pointers)) { switch(shape) { case GUI_POINTER_DEFAULT: SetWindowPointer(win, TAG_DONE); break; case GUI_POINTER_WAIT: SetWindowPointer(win, WA_BusyPointer, TRUE, WA_PointerDelay, TRUE, TAG_DONE); break; default: if(mouseptrobj[shape]) { SetWindowPointer(win, WA_Pointer, mouseptrobj[shape], TAG_DONE); } else { SetWindowPointer(win, TAG_DONE); } break; } } else { if(mouseptrobj[shape]) { SetWindowPointer(win, WA_Pointer, mouseptrobj[shape], TAG_DONE); } else { if(shape == GUI_POINTER_WAIT) { SetWindowPointer(win, WA_BusyPointer, TRUE, WA_PointerDelay, TRUE, TAG_DONE); } else { SetWindowPointer(win, TAG_DONE); } } } }
static bool framebuffer_plot_text(int x, int y, const char *text, size_t length, const plot_font_style_t *fstyle) { if (nsoption_bool(bitmap_fonts)) { framebuffer_plot_text_internal(x, y, text, length, fstyle); } else { framebuffer_plot_text_ttf(x, y, text, length, fstyle); } }
static void gui_download_window_done(struct gui_download_window *dw) { g_io_channel_shutdown(dw->write, TRUE, &dw->error); g_io_channel_unref(dw->write); dw->speed = 0; dw->time_remaining = -1; dw->progress = 100; dw->size_total = dw->size_downloaded; nsgtk_download_change_sensitivity(dw, NSGTK_DOWNLOAD_CLEAR); nsgtk_download_change_status(dw, NSGTK_DOWNLOAD_COMPLETE); if (nsoption_bool(downloads_clear)) nsgtk_download_store_clear_item(dw); else nsgtk_download_update(TRUE); }
void ro_gui_download_datasave_ack(wimp_message *message) { struct gui_download_window *dw = download_window_current; dw->send_dataload = true; memcpy(&dw->save_message, message, sizeof(wimp_message)); if (!ro_gui_download_save(dw, message->data.data_xfer.file_name, !nsoption_bool(confirm_overwrite))) return; if (!dw->ctx) { /* Ack successful completed save with message_DATA_LOAD immediately to reduce the chance of the target app getting confused by it being delayed */ ro_gui_download_send_dataload(dw); riscos_schedule(2000, ro_gui_download_window_destroy_wrapper, dw); } }
/** * Updates the GIF bitmap to display the current frame * * \param c the content to update */ static gif_result nsgif_get_frame(nsgif_content *gif) { int previous_frame, current_frame, frame; gif_result res = GIF_OK; current_frame = gif->current_frame; if (!nsoption_bool(animate_images)) { current_frame = 0; } if (current_frame < gif->gif->decoded_frame) previous_frame = 0; else previous_frame = gif->gif->decoded_frame + 1; for (frame = previous_frame; frame <= current_frame; frame++) { res = gif_decode_frame(gif->gif, frame); } return res; }
BOOL ami_download_check_overwrite(const char *file, struct Window *win, ULONG size) { /* Return TRUE if file can be (over-)written */ int32 res = 0; BPTR lock = 0; char *overwritetext; if(nsoption_bool(ask_overwrite) == false) return TRUE; lock = Lock(file, ACCESS_READ); if(lock) { if(size) { BPTR fh; int64 oldsize = 0; if((fh = OpenFromLock(lock))) { oldsize = GetFileSize(fh); Close(fh); } overwritetext = ASPrintf("%s\n\n%s %s\n%s %s", messages_get("OverwriteFile"), messages_get("amiSizeExisting"), human_friendly_bytesize((ULONG)oldsize), messages_get("amiSizeNew"), human_friendly_bytesize(size)); } else { UnLock(lock); overwritetext = ASPrintf(messages_get("OverwriteFile")); } res = amiga_warn_user_multi(overwritetext, "Replace", "DontReplace", win); FreeVec(overwritetext); } else return TRUE; if(res == 1) return TRUE; else return FALSE; }