Esempio n. 1
0
/* 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
Esempio n. 2
0
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;

}
Esempio n. 3
0
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));
}
Esempio n. 4
0
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;
	}
	
}
Esempio n. 5
0
File: menu.c Progetto: ysei/NetSurf
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);
}
Esempio n. 6
0
File: menu.c Progetto: ysei/NetSurf
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);
}
Esempio n. 7
0
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);
	}
}
Esempio n. 8
0
/**
*	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);
}
Esempio n. 9
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;

}
Esempio n. 10
0
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;
}
Esempio n. 11
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;
}
Esempio n. 12
0
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;
}
Esempio n. 13
0
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;
}
Esempio n. 14
0
/**
 * 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;
}
Esempio n. 15
0
/**
 * 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;
}
Esempio n. 16
0
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;

}
Esempio n. 17
0
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;
}
Esempio n. 18
0
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;
}
Esempio n. 19
0
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);
}
Esempio n. 20
0
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 */
}
Esempio n. 21
0
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);
}
Esempio n. 22
0
/* 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;
}
Esempio n. 23
0
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);
}
Esempio n. 24
0
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);
}
Esempio n. 25
0
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);
			}
		}
	}
}
Esempio n. 26
0
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);
    }

}
Esempio n. 27
0
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);
}
Esempio n. 28
0
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);
	}
}
Esempio n. 29
0
/**
 * 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;
}
Esempio n. 30
0
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;
}