NetSurf
gui_options.c
Go to the documentation of this file.
1/*
2 * Copyright 2009 - 2012 Chris Young <chris@unsatisfactorysoftware.co.uk>
3 *
4 * This file is part of NetSurf, http://www.netsurf-browser.org/
5 *
6 * NetSurf is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by
8 * the Free Software Foundation; version 2 of the License.
9 *
10 * NetSurf is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
14 *
15 * You should have received a copy of the GNU General Public License
16 * along with this program. If not, see <http://www.gnu.org/licenses/>.
17 */
18
19#include <stdbool.h>
20#include <string.h>
21#include <stdlib.h>
22#include <proto/exec.h>
23#include <proto/graphics.h>
24#include <proto/intuition.h>
25#include <proto/utility.h>
26#ifdef __amigaos4__
27#include <proto/application.h>
28#endif
29#include <libraries/gadtools.h>
30#include <exec/types.h>
31#include <intuition/classusr.h>
32#include <graphics/gfxbase.h>
33
34#include <proto/window.h>
35#include <proto/layout.h>
36#include <proto/button.h>
37#include <proto/clicktab.h>
38#include <proto/label.h>
39#include <proto/string.h>
40#include <proto/checkbox.h>
41#include <proto/radiobutton.h>
42#include <proto/getscreenmode.h>
43#include <proto/getfile.h>
44#include <proto/chooser.h>
45#include <proto/integer.h>
46#include <proto/getfont.h>
47#include <classes/window.h>
48#include <images/label.h>
49#include <gadgets/button.h>
50#include <gadgets/clicktab.h>
51#include <gadgets/string.h>
52#include <gadgets/checkbox.h>
53#include <gadgets/radiobutton.h>
54#include <gadgets/getscreenmode.h>
55#include <gadgets/getfile.h>
56#include <gadgets/chooser.h>
57#include <gadgets/integer.h>
58#include <gadgets/getfont.h>
59#include <reaction/reaction.h>
60#include <reaction/reaction_macros.h>
61
62#include "utils/nsurl.h"
63#include "utils/messages.h"
64#include "utils/nsoption.h"
66#include "desktop/searchweb.h"
67#include "netsurf/window.h"
68
69#include "amiga/file.h"
70#include "amiga/font.h"
71#include "amiga/font_bullet.h"
72#include "amiga/gui.h"
73#include "amiga/gui_menu.h"
74#include "amiga/gui_options.h"
75#include "amiga/help.h"
76#include "amiga/libs.h"
77#include "amiga/nsoption.h"
78#include "amiga/object.h"
79#include "amiga/selectmenu.h"
80#include "amiga/theme.h"
81#include "amiga/utf8.h"
82#include "amiga/plotters.h"
83
84enum
85{
166
167enum
168{
200
201enum
202{
213
214#define OPTS_LAST LAB_OPTS_LAST
215#define OPTS_MAX_TABS 10
216#define OPTS_MAX_SCREEN 4
217#define OPTS_MAX_THEMEPAGE 3
218#define OPTS_MAX_PROXY 5
219#define OPTS_MAX_NATIVEBM 4
220#define OPTS_MAX_DITHER 4
221
222enum {
226};
227
230 struct Window *win;
232#ifndef __amigaos4__
233 struct List clicktablist;
234 struct List screenoptslist;
235 struct List pagethemeoptslist;
236 struct List proxyoptslist;
237 struct List nativebmoptslist;
238 struct List ditheroptslist;
239 struct List fontoptslist;
240#endif
241};
242
243static BOOL ami_gui_opts_event(void *w);
244static void ami_gui_opts_close(void *w);
245
249};
250
251static struct ami_gui_opts_window *gow = NULL;
252
253static CONST_STRPTR tabs[OPTS_MAX_TABS];
256static CONST_STRPTR proxyopts[OPTS_MAX_PROXY];
257static CONST_STRPTR nativebmopts[OPTS_MAX_NATIVEBM];
258static CONST_STRPTR ditheropts[OPTS_MAX_DITHER];
259static CONST_STRPTR fontopts[6];
260static CONST_STRPTR gadlab[OPTS_LAST];
261static struct List *websearch_list;
262
263#ifndef __amigaos4__
264static void ami_gui_opts_array_to_list(struct List *list, const char *array[], int type)
265{
266 int i = 0;
267 struct Node *node;
268
269 NewList(list);
270
271 do {
272 switch(type) {
274 node = AllocClickTabNode(TNA_Text, array[i], TNA_Number, i, TAG_DONE);
275 break;
276 case NSA_LIST_CHOOSER:
277 node = AllocChooserNode(CNA_Text, array[i], TAG_DONE);
278 break;
279 case NSA_LIST_RADIO:
280 /* Note: RBNA_Labels is RBNA_Label in OS4 */
281 node = AllocRadioButtonNode(0, RBNA_Labels, array[i], TAG_DONE);
282 break;
283 default:
284 break;
285 }
286 AddTail(list, node);
287 i++;
288 } while (array[i] != 0);
289}
290
291static void ami_gui_opts_free_list(struct List *list, int type)
292{
293 struct Node *node;
294 struct Node *nnode;
295
296 if(IsListEmpty((struct List *)list)) return;
297 node = GetHead((struct List *)list);
298
299 do {
300 nnode = GetSucc(node);
301 Remove(node);
302 if(node) {
303 switch(type) {
305 FreeClickTabNode(node);
306 break;
307 case NSA_LIST_CHOOSER:
308 FreeChooserNode(node);
309 break;
310 case NSA_LIST_RADIO:
311 FreeRadioButtonNode(node);
312 break;
313 default:
314 break;
315 }
316 }
317 } while((node = nnode));
318}
319#endif
320
322{
323 tabs[0] = (char *)ami_utf8_easy((char *)messages_get("con_general"));
324 tabs[1] = (char *)ami_utf8_easy((char *)messages_get("Display"));
325 tabs[2] = (char *)ami_utf8_easy((char *)messages_get("con_connect"));
326 tabs[3] = (char *)ami_utf8_easy((char *)messages_get("con_rendering"));
327 tabs[4] = (char *)ami_utf8_easy((char *)messages_get("con_fonts"));
328 tabs[5] = (char *)ami_utf8_easy((char *)messages_get("con_cache"));
329 tabs[6] = (char *)ami_utf8_easy((char *)messages_get("Tabs"));
330 tabs[7] = (char *)ami_utf8_easy((char *)messages_get("con_advanced"));
331#ifdef WITH_PDF_EXPORT
332 tabs[8] = (char *)ami_utf8_easy((char *)messages_get("Export"));
333 tabs[9] = NULL;
334#else
335 tabs[8] = NULL;
336#endif
337
338 screenopts[0] = (char *)ami_utf8_easy((char *)messages_get("ScreenOwn"));
339 screenopts[1] = (char *)ami_utf8_easy((char *)messages_get("ScreenWB"));
340 screenopts[2] = (char *)ami_utf8_easy((char *)messages_get("ScreenPublic"));
341 screenopts[3] = NULL;
342
343 pagethemeopts[0] = (char *)ami_utf8_easy((char *)messages_get("Light"));
344 pagethemeopts[1] = (char *)ami_utf8_easy((char *)messages_get("Dark"));
345 pagethemeopts[2] = NULL;
346
347 proxyopts[0] = (char *)ami_utf8_easy((char *)messages_get("ProxyNone"));
348 proxyopts[1] = (char *)ami_utf8_easy((char *)messages_get("ProxyNoAuth"));
349 proxyopts[2] = (char *)ami_utf8_easy((char *)messages_get("ProxyBasic"));
350 proxyopts[3] = (char *)ami_utf8_easy((char *)messages_get("ProxyNTLM"));
351 proxyopts[4] = NULL;
352
353 nativebmopts[0] = (char *)ami_utf8_easy((char *)messages_get("None"));
354 nativebmopts[1] = (char *)ami_utf8_easy((char *)messages_get("Scaled"));
355 nativebmopts[2] = (char *)ami_utf8_easy((char *)messages_get("All"));
356 nativebmopts[3] = NULL;
357
358 ditheropts[0] = (char *)ami_utf8_easy((char *)messages_get("Low"));
359 ditheropts[1] = (char *)ami_utf8_easy((char *)messages_get("Medium"));
360 ditheropts[2] = (char *)ami_utf8_easy((char *)messages_get("High"));
361 ditheropts[3] = NULL;
362
364
365 gadlab[GID_OPTS_HOMEPAGE] = (char *)ami_utf8_easy((char *)messages_get("HomePageURL"));
366 gadlab[GID_OPTS_HOMEPAGE_DEFAULT] = (char *)ami_utf8_easy((char *)messages_get("HomePageDefault"));
367 gadlab[GID_OPTS_HOMEPAGE_CURRENT] = (char *)ami_utf8_easy((char *)messages_get("HomePageCurrent"));
368 gadlab[GID_OPTS_HOMEPAGE_BLANK] = (char *)ami_utf8_easy((char *)messages_get("HomePageBlank"));
369 gadlab[GID_OPTS_HIDEADS] = (char *)ami_utf8_easy((char *)messages_get("BlockAds"));
370 gadlab[GID_OPTS_FROMLOCALE] = (char *)ami_utf8_easy((char *)messages_get("LocaleLang"));
371 gadlab[GID_OPTS_HISTORY] = (char *)ami_utf8_easy((char *)messages_get("HistoryAge"));
372 gadlab[GID_OPTS_JAVASCRIPT] = (char *)ami_utf8_easy((char *)messages_get("EnableJS"));
373 gadlab[GID_OPTS_ENABLECSS] = (char *)ami_utf8_easy((char *)messages_get("EnableCSS"));
374 gadlab[GID_OPTS_REFERRAL] = (char *)ami_utf8_easy((char *)messages_get("SendReferer"));
375 gadlab[GID_OPTS_DONOTTRACK] = (char *)ami_utf8_easy((char *)messages_get("DoNotTrack"));
376 gadlab[GID_OPTS_FASTSCROLL] = (char *)ami_utf8_easy((char *)messages_get("FastScrolling"));
377 gadlab[GID_OPTS_WIN_SIMPLE] = (char *)ami_utf8_easy((char *)messages_get("SimpleRefresh"));
378 gadlab[GID_OPTS_THEME] = (char *)ami_utf8_easy((char *)messages_get("ThemeGUI"));
379 gadlab[GID_OPTS_THEMEPAGE] = (char *)ami_utf8_easy((char *)messages_get("ThemePage"));
380 gadlab[GID_OPTS_DARK] = (char *)ami_utf8_easy((char *)messages_get("Dark"));
381 gadlab[GID_OPTS_LIGHT] = (char *)ami_utf8_easy((char *)messages_get("Light"));
382 gadlab[GID_OPTS_PTRTRUE] = (char *)ami_utf8_easy((char *)messages_get("TrueColour"));
383 gadlab[GID_OPTS_PTROS] = (char *)ami_utf8_easy((char *)messages_get("OSPointers"));
384 gadlab[GID_OPTS_PROXY] = (char *)ami_utf8_easy((char *)messages_get("ProxyType"));
385 gadlab[GID_OPTS_PROXY_HOST] = (char *)ami_utf8_easy((char *)messages_get("Host"));
386 gadlab[GID_OPTS_PROXY_USER] = (char *)ami_utf8_easy((char *)messages_get("Username"));
387 gadlab[GID_OPTS_PROXY_PASS] = (char *)ami_utf8_easy((char *)messages_get("Password"));
388 gadlab[GID_OPTS_PROXY_BYPASS] = (char *)ami_utf8_easy((char *)messages_get("ProxyBypass"));
389 gadlab[GID_OPTS_FETCHMAX] = (char *)ami_utf8_easy((char *)messages_get("FetchesMax"));
390 gadlab[GID_OPTS_FETCHHOST] = (char *)ami_utf8_easy((char *)messages_get("FetchesHost"));
391 gadlab[GID_OPTS_FETCHCACHE] = (char *)ami_utf8_easy((char *)messages_get("FetchesCached"));
392 gadlab[GID_OPTS_NATIVEBM] = (char *)ami_utf8_easy((char *)messages_get("CacheNative"));
393 gadlab[GID_OPTS_SCALEQ] = (char *)ami_utf8_easy((char *)messages_get("ScaleQuality"));
394 gadlab[GID_OPTS_DITHERQ] = (char *)ami_utf8_easy((char *)messages_get("DitherQuality"));
395 gadlab[GID_OPTS_DPI_Y] = (char *)ami_utf8_easy((char *)messages_get("ResolutionY"));
396 gadlab[GID_OPTS_ANIMDISABLE] = (char *)ami_utf8_easy((char *)messages_get("AnimDisable"));
397 gadlab[GID_OPTS_FONT_SANS] = (char *)ami_utf8_easy((char *)messages_get("FontSans"));
398 gadlab[GID_OPTS_FONT_SERIF] = (char *)ami_utf8_easy((char *)messages_get("FontSerif"));
399 gadlab[GID_OPTS_FONT_MONO] = (char *)ami_utf8_easy((char *)messages_get("FontMono"));
400 gadlab[GID_OPTS_FONT_CURSIVE] = (char *)ami_utf8_easy((char *)messages_get("FontCursive"));
401 gadlab[GID_OPTS_FONT_FANTASY] = (char *)ami_utf8_easy((char *)messages_get("FontFantasy"));
402 gadlab[GID_OPTS_FONT_DEFAULT] = (char *)ami_utf8_easy((char *)messages_get("Default"));
403 gadlab[GID_OPTS_FONT_SIZE] = (char *)ami_utf8_easy((char *)messages_get("Default"));
404 gadlab[GID_OPTS_FONT_MINSIZE] = (char *)ami_utf8_easy((char *)messages_get("Minimum"));
405 gadlab[GID_OPTS_FONT_ANTIALIASING] = (char *)ami_utf8_easy((char *)messages_get("FontAntialiasing"));
406 gadlab[GID_OPTS_FONT_BITMAP] = (char *)ami_utf8_easy((char *)messages_get("FontBitmap"));
407 gadlab[GID_OPTS_CACHE_MEM] = (char *)ami_utf8_easy((char *)messages_get("Size"));
408 gadlab[GID_OPTS_CACHE_DISC] = (char *)ami_utf8_easy((char *)messages_get("Size"));
409 gadlab[GID_OPTS_OVERWRITE] = (char *)ami_utf8_easy((char *)messages_get("ConfirmOverwrite"));
410 gadlab[GID_OPTS_NOTIFY] = (char *)ami_utf8_easy((char *)messages_get("DownloadNotify"));
411 gadlab[GID_OPTS_DLDIR] = (char *)ami_utf8_easy((char *)messages_get("DownloadDir"));
412 gadlab[GID_OPTS_TAB_ACTIVE] = (char *)ami_utf8_easy((char *)messages_get("TabActive"));
413 gadlab[GID_OPTS_TAB_2] = (char *)ami_utf8_easy((char *)messages_get("TabMiddle"));
414 gadlab[GID_OPTS_TAB_LAST] = (char *)ami_utf8_easy((char *)messages_get("TabLast"));
415 gadlab[GID_OPTS_TAB_ALWAYS] = (char *)ami_utf8_easy((char *)messages_get("TabAlways"));
416 gadlab[GID_OPTS_TAB_CLOSE] = (char *)ami_utf8_easy((char *)messages_get("TabClose"));
417 gadlab[GID_OPTS_SEARCH_PROV] = (char *)ami_utf8_easy((char *)messages_get("SearchProvider"));
418 gadlab[GID_OPTS_CLIPBOARD] = (char *)ami_utf8_easy((char *)messages_get("ClipboardUTF8"));
419 gadlab[GID_OPTS_SELECTMENU] = (char *)ami_utf8_easy((char *)messages_get("PopupMenu"));
420 gadlab[GID_OPTS_STARTUP_NO_WIN] = (char *)ami_utf8_easy((char *)messages_get("OptionNoWindow"));
421 gadlab[GID_OPTS_CLOSE_NO_QUIT] = (char *)ami_utf8_easy((char *)messages_get("OptionNoQuit"));
422 gadlab[GID_OPTS_DOCKY] = (char *)ami_utf8_easy((char *)messages_get("OptionDocky"));
423 gadlab[GID_OPTS_MARGIN_TOP] = (char *)ami_utf8_easy((char *)messages_get("Top"));
424 gadlab[GID_OPTS_MARGIN_LEFT] = (char *)ami_utf8_easy((char *)messages_get("Left"));
425 gadlab[GID_OPTS_MARGIN_RIGHT] = (char *)ami_utf8_easy((char *)messages_get("Right"));
426 gadlab[GID_OPTS_MARGIN_BOTTOM] = (char *)ami_utf8_easy((char *)messages_get("Bottom"));
427 gadlab[GID_OPTS_EXPORT_SCALE] = (char *)ami_utf8_easy((char *)messages_get("Scale"));
428 gadlab[GID_OPTS_EXPORT_NOIMAGES] = (char *)ami_utf8_easy((char *)messages_get("SuppressImages"));
429 gadlab[GID_OPTS_EXPORT_NOBKG] = (char *)ami_utf8_easy((char *)messages_get("RemoveBackground"));
430 gadlab[GID_OPTS_EXPORT_LOOSEN] = (char *)ami_utf8_easy((char *)messages_get("FitPage"));
431 gadlab[GID_OPTS_EXPORT_COMPRESS] = (char *)ami_utf8_easy((char *)messages_get("CompressPDF"));
432 gadlab[GID_OPTS_EXPORT_PASSWORD] = (char *)ami_utf8_easy((char *)messages_get("SetPassword"));
433 gadlab[GID_OPTS_SAVE] = (char *)ami_utf8_easy((char *)messages_get("SelSave"));
434 gadlab[GID_OPTS_USE] = (char *)ami_utf8_easy((char *)messages_get("Use"));
435 gadlab[GID_OPTS_CANCEL] = (char *)ami_utf8_easy((char *)messages_get("Cancel"));
436
437 gadlab[LAB_OPTS_WINTITLE] = (char *)ami_utf8_easy((char *)messages_get("Preferences"));
438 gadlab[LAB_OPTS_RESTART] = (char *)ami_utf8_easy((char *)messages_get("NeedRestart"));
439 gadlab[LAB_OPTS_DAYS] = (char *)ami_utf8_easy((char *)messages_get("Days"));
440 gadlab[LAB_OPTS_PT] = (char *)ami_utf8_easy((char *)messages_get("Pt"));
441 gadlab[LAB_OPTS_MM] = (char *)ami_utf8_easy((char *)messages_get("MM"));
442 gadlab[LAB_OPTS_MB] = (char *)ami_utf8_easy((char *)messages_get("MBytes"));
443 gadlab[LAB_OPTS_DPI] = (char *)ami_utf8_easy((char *)messages_get("DPI"));
444
445 gadlab[GRP_OPTS_HOMEPAGE] = (char *)ami_utf8_easy((char *)messages_get("Home"));
446 gadlab[GRP_OPTS_CONTENTBLOCKING] = (char *)ami_utf8_easy((char *)messages_get("ContentBlocking"));
447 gadlab[GRP_OPTS_CONTENTLANGUAGE] = (char *)ami_utf8_easy((char *)messages_get("ContentLanguage"));
448 gadlab[GRP_OPTS_HISTORY] = (char *)ami_utf8_easy((char *)messages_get("History"));
449 gadlab[GRP_OPTS_SCRIPTING] = (char *)ami_utf8_easy((char *)messages_get("Scripting"));
450 gadlab[GRP_OPTS_MISC] = (char *)ami_utf8_easy((char *)messages_get("Miscellaneous"));
451 gadlab[GRP_OPTS_SCREEN] = (char *)ami_utf8_easy((char *)messages_get("Screen"));
452 gadlab[GRP_OPTS_WINDOW] = (char *)ami_utf8_easy((char *)messages_get("Window"));
453 gadlab[GRP_OPTS_THEME] = (char *)ami_utf8_easy((char *)messages_get("Theme"));
454 gadlab[GRP_OPTS_MOUSE] = (char *)ami_utf8_easy((char *)messages_get("MousePointers"));
455 gadlab[GRP_OPTS_PROXY] = (char *)ami_utf8_easy((char *)messages_get("Proxy"));
456 gadlab[GRP_OPTS_FETCHING] = (char *)ami_utf8_easy((char *)messages_get("Fetching"));
457 gadlab[GRP_OPTS_IMAGES] = (char *)ami_utf8_easy((char *)messages_get("Images"));
458 gadlab[GRP_OPTS_ANIMS] = (char *)ami_utf8_easy((char *)messages_get("Animations"));
459 gadlab[GRP_OPTS_DPI] = (char *)ami_utf8_easy((char *)messages_get("Resolution"));
460 gadlab[GRP_OPTS_FONTFACES] = (char *)ami_utf8_easy((char *)messages_get("FontFamilies"));
461 gadlab[GRP_OPTS_FONTSIZE] = (char *)ami_utf8_easy((char *)messages_get("FontSize"));
462 gadlab[GRP_OPTS_MEMCACHE] = (char *)ami_utf8_easy((char *)messages_get("CacheMemory"));
463 gadlab[GRP_OPTS_DISCCACHE] = (char *)ami_utf8_easy((char *)messages_get("CacheDisc"));
464 gadlab[GRP_OPTS_DOWNLOADS] = (char *)ami_utf8_easy((char *)messages_get("Downloads"));
465 gadlab[GRP_OPTS_TABS] = (char *)ami_utf8_easy((char *)messages_get("TabbedBrowsing"));
466 gadlab[GRP_OPTS_SEARCH] = (char *)ami_utf8_easy((char *)messages_get("SearchWeb"));
467 gadlab[GRP_OPTS_CLIPBOARD] = (char *)ami_utf8_easy((char *)messages_get("Clipboard"));
468 gadlab[GRP_OPTS_PRIVACY] = (char *)ami_utf8_easy((char *)messages_get("Privacy"));
469 gadlab[GRP_OPTS_BEHAVIOUR] = (char *)ami_utf8_easy((char *)messages_get("Behaviour"));
470 gadlab[GRP_OPTS_MARGINS] = (char *)ami_utf8_easy((char *)messages_get("Margins"));
471 gadlab[GRP_OPTS_SCALING] = (char *)ami_utf8_easy((char *)messages_get("Scaling"));
472 gadlab[GRP_OPTS_APPEARANCE] = (char *)ami_utf8_easy((char *)messages_get("Appearance"));
473 gadlab[GRP_OPTS_ADVANCED] = (char *)ami_utf8_easy((char *)messages_get("con_advanced"));
474
480 fontopts[5] = NULL;
481
482#ifndef __amigaos4__
490#endif
491}
492
494{
495 int i;
496
497 for(i = 0; i < OPTS_LAST; i++)
498 if(gadlab[i]) free((APTR)gadlab[i]);
499
500 for(i = 0; i < OPTS_MAX_TABS; i++)
501 if(tabs[i]) free((APTR)tabs[i]);
502
503 for(i = 0; i < OPTS_MAX_SCREEN; i++)
504 if(screenopts[i]) free((APTR)screenopts[i]);
505
506 for(i = 0; i < OPTS_MAX_PROXY; i++)
507 if(proxyopts[i]) free((APTR)proxyopts[i]);
508
509 for(i = 0; i < OPTS_MAX_NATIVEBM; i++)
510 if(nativebmopts[i]) free((APTR)nativebmopts[i]);
511
513
514#ifndef __amigaos4__
522#endif
523}
524
526{
527 uint16 screenoptsselected;
528 ULONG screenmodeid = 0;
529 ULONG proxytype = 0;
530 BOOL screenmodedisabled = FALSE, screennamedisabled = FALSE;
531 BOOL proxyhostdisabled = TRUE, proxyauthdisabled = TRUE, proxybypassdisabled = FALSE;
532 BOOL disableanims, acceptlangdisabled = FALSE;
533 BOOL scaleselected = nsoption_bool(scale_quality), scaledisabled = FALSE;
534 BOOL ditherdisable = TRUE;
535 BOOL download_notify_disabled = FALSE, tab_always_show_disabled = FALSE;
536 BOOL ptr_disable = FALSE;
537 char *homepage_url_lc = ami_utf8_easy(nsoption_charp(homepage_url));
538
539 struct TextAttr fontsans, fontserif, fontmono, fontcursive, fontfantasy;
540
541 if(gow && gow->win)
542 {
543 WindowToFront(gow->win);
544 ActivateWindow(gow->win);
545 return;
546 }
547
548#ifdef __amigaos4__
549 if(LIB_IS_AT_LEAST((struct Library *)IntuitionBase, 53, 42)) ptr_disable = TRUE;
550#else
551 ptr_disable = TRUE;
552#endif
553
554 if(nsoption_charp(pubscreen_name))
555 {
556 if(strcmp(nsoption_charp(pubscreen_name),"Workbench") == 0)
557 {
558 screenoptsselected = 1;
559 screennamedisabled = TRUE;
560 screenmodedisabled = TRUE;
561 }
562 else
563 {
564 screenoptsselected = 2;
565 screenmodedisabled = TRUE;
566 }
567 }
568 else
569 {
570 screenoptsselected = 0;
571 screennamedisabled = TRUE;
572 }
573
574 if((nsoption_charp(screen_modeid)) &&
575 (strncmp(nsoption_charp(screen_modeid),"0x",2) == 0))
576 {
577 screenmodeid = strtoul(nsoption_charp(screen_modeid),NULL,0);
578 }
579
581 ditherdisable = FALSE;
582 }
583
584 if(nsoption_bool(http_proxy) == true)
585 {
586 proxytype = nsoption_int(http_proxy_auth) + 1;
587 switch(nsoption_int(http_proxy_auth))
588 {
591 proxyauthdisabled = FALSE;
593 proxyhostdisabled = FALSE;
594 break;
595 }
596 } else {
597 proxybypassdisabled = TRUE;
598 }
599
600 if(nsoption_bool(animate_images))
601 {
602 disableanims = FALSE;
603 }
604 else
605 {
606 disableanims = TRUE;
607 }
608
609 if(nsoption_bool(accept_lang_locale))
610 acceptlangdisabled = TRUE;
611 else
612 acceptlangdisabled = FALSE;
613
614 if(GfxBase->LibNode.lib_Version < 53)
615 {
616 scaledisabled = TRUE;
617 scaleselected = FALSE;
618 }
619#ifdef __amigaos4__
620 if(ApplicationBase->lib_Version < 53)
621#endif
622 {
623 download_notify_disabled = TRUE;
624 nsoption_set_bool(download_notify, FALSE);
625 }
626
627 if(ClickTabBase->lib_Version < 53) {
628 tab_always_show_disabled = TRUE;
629 }
630
631 fontsans.ta_Name = ASPrintf("%s.font", nsoption_charp(font_sans));
632 fontserif.ta_Name = ASPrintf("%s.font", nsoption_charp(font_serif));
633 fontmono.ta_Name = ASPrintf("%s.font", nsoption_charp(font_mono));
634 fontcursive.ta_Name = ASPrintf("%s.font", nsoption_charp(font_cursive));
635 fontfantasy.ta_Name = ASPrintf("%s.font", nsoption_charp(font_fantasy));
636
637 fontsans.ta_Style = 0;
638 fontserif.ta_Style = 0;
639 fontmono.ta_Style = 0;
640 fontcursive.ta_Style = 0;
641 fontfantasy.ta_Style = 0;
642
643 fontsans.ta_YSize = 0;
644 fontserif.ta_YSize = 0;
645 fontmono.ta_YSize = 0;
646 fontcursive.ta_YSize = 0;
647 fontfantasy.ta_YSize = 0;
648
649 fontsans.ta_Flags = 0;
650 fontserif.ta_Flags = 0;
651 fontmono.ta_Flags = 0;
652 fontcursive.ta_Flags = 0;
653 fontfantasy.ta_Flags = 0;
654
655 if(!gow)
656 {
657 gow = calloc(1, sizeof(struct ami_gui_opts_window));
658 if(gow == NULL) return;
659
661
663 WA_ScreenTitle, ami_gui_get_screen_title(),
664 WA_Title, gadlab[LAB_OPTS_WINTITLE],
665 WA_Activate, TRUE,
666 WA_DepthGadget, TRUE,
667 WA_DragBar, TRUE,
668 WA_CloseGadget, TRUE,
669 WA_SizeGadget, FALSE,
670 WA_PubScreen, ami_gui_get_screen(),
671 WINDOW_SharedPort, ami_gui_get_shared_msgport(),
672 WINDOW_UserData,gow,
673 WINDOW_IconifyGadget, FALSE,
674 WINDOW_Position, WPOS_CENTERSCREEN,
675 WA_IDCMP, IDCMP_GADGETUP | IDCMP_CLOSEWINDOW,
676 WINDOW_ParentGroup, gow->objects[GID_OPTS_MAIN] = LayoutVObj,
677 LAYOUT_AddChild, ClickTabObj,
678 GA_RelVerify, TRUE,
679#ifdef __amigaos4__
680 GA_Text, tabs,
681#else
682 CLICKTAB_Labels, &gow->clicktablist,
683#endif
684 CLICKTAB_PageGroup, PageObj,
685 /*
686 ** General
687 */
688 PAGE_Add, LayoutVObj,
689 LAYOUT_AddChild, LayoutVObj,
690 LAYOUT_AddChild, LayoutVObj,
691 LAYOUT_SpaceOuter, TRUE,
692 LAYOUT_BevelStyle, BVS_GROUP,
693 LAYOUT_Label, gadlab[GRP_OPTS_HOMEPAGE],
694 LAYOUT_AddChild, gow->objects[GID_OPTS_HOMEPAGE] = StringObj,
695 GA_ID, GID_OPTS_HOMEPAGE,
696 GA_RelVerify, TRUE,
697 STRINGA_TextVal, homepage_url_lc,
698 STRINGA_BufferPos,0,
699 StringEnd,
700 CHILD_Label, LabelObj,
701 LABEL_Text, gadlab[GID_OPTS_HOMEPAGE],
702 LabelEnd,
703 LAYOUT_AddChild, LayoutHObj,
704 LAYOUT_AddChild, gow->objects[GID_OPTS_HOMEPAGE_DEFAULT] = ButtonObj,
707 GA_RelVerify,TRUE,
708 ButtonEnd,
709 LAYOUT_AddChild, gow->objects[GID_OPTS_HOMEPAGE_CURRENT] = ButtonObj,
712 GA_RelVerify,TRUE,
713 ButtonEnd,
714 LAYOUT_AddChild, gow->objects[GID_OPTS_HOMEPAGE_BLANK] = ButtonObj,
717 GA_RelVerify,TRUE,
718 ButtonEnd,
719 LayoutEnd,
720 LayoutEnd, //homepage
721 CHILD_WeightedHeight, 0,
722 LAYOUT_AddChild, LayoutHObj,
723 LAYOUT_AddChild, LayoutVObj,
724 LAYOUT_SpaceOuter, TRUE,
725 LAYOUT_BevelStyle, BVS_GROUP,
726 LAYOUT_Label, gadlab[GRP_OPTS_CONTENTBLOCKING],
727 LAYOUT_AddChild, gow->objects[GID_OPTS_HIDEADS] = CheckBoxObj,
728 GA_ID, GID_OPTS_HIDEADS,
729 GA_RelVerify, TRUE,
730 GA_Text, gadlab[GID_OPTS_HIDEADS],
731 GA_Selected, nsoption_bool(block_advertisements),
732 CheckBoxEnd,
733 LayoutEnd, // content blocking
734 LAYOUT_AddChild, LayoutVObj,
735 LAYOUT_SpaceOuter, TRUE,
736 LAYOUT_BevelStyle, BVS_GROUP,
737 LAYOUT_Label, gadlab[GRP_OPTS_CONTENTLANGUAGE],
738 LAYOUT_AddChild, gow->objects[GID_OPTS_CONTENTLANG] = StringObj,
740 GA_RelVerify, TRUE,
741 GA_Disabled, acceptlangdisabled,
742 STRINGA_TextVal, nsoption_charp(accept_language),
743 STRINGA_BufferPos,0,
744 StringEnd,
745 LAYOUT_AddChild, gow->objects[GID_OPTS_FROMLOCALE] = CheckBoxObj,
746 GA_ID, GID_OPTS_FROMLOCALE,
747 GA_Text, gadlab[GID_OPTS_FROMLOCALE],
748 GA_RelVerify, TRUE,
749 GA_Selected, nsoption_bool(accept_lang_locale),
750 ButtonEnd,
751 // CHILD_WeightedWidth, 0,
752 LayoutEnd, // content language
753 LayoutEnd, // content
754 LAYOUT_AddChild, LayoutHObj,
755 LAYOUT_AddChild, LayoutVObj,
756 LAYOUT_SpaceOuter, TRUE,
757 LAYOUT_BevelStyle, BVS_GROUP,
758 LAYOUT_Label, gadlab[GRP_OPTS_HISTORY],
759 LAYOUT_AddChild, LayoutHObj,
760 LAYOUT_LabelColumn, PLACETEXT_RIGHT,
761 LAYOUT_AddChild, gow->objects[GID_OPTS_HISTORY] = IntegerObj,
762 GA_ID, GID_OPTS_HISTORY,
763 GA_RelVerify, TRUE,
764 INTEGER_Number, nsoption_int(expire_url),
765 INTEGER_Minimum, 0,
766 INTEGER_Maximum, 366,
767 INTEGER_Arrows, TRUE,
768 IntegerEnd,
769 CHILD_WeightedWidth, 0,
770 CHILD_Label, LabelObj,
771 LABEL_Text, gadlab[LAB_OPTS_DAYS],
772 LabelEnd,
773 LayoutEnd,
774 CHILD_WeightedWidth, 0,
775 CHILD_Label, LabelObj,
776 LABEL_Text, gadlab[GID_OPTS_HISTORY],
777 LabelEnd,
778 LayoutEnd, // history
779 LAYOUT_AddChild, LayoutVObj,
780 LAYOUT_SpaceOuter, TRUE,
781 LAYOUT_BevelStyle, BVS_GROUP,
782 LAYOUT_Label, gadlab[GRP_OPTS_SCRIPTING],
783 LAYOUT_AddChild, gow->objects[GID_OPTS_JAVASCRIPT] = CheckBoxObj,
784 GA_ID, GID_OPTS_JAVASCRIPT,
785 GA_RelVerify, TRUE,
786 GA_Text, gadlab[GID_OPTS_JAVASCRIPT],
787 GA_Selected, nsoption_bool(enable_javascript),
788 CheckBoxEnd,
789 LayoutEnd, // scripting
790 LayoutEnd,
791 CHILD_WeightedHeight, 0,
792 LAYOUT_AddChild, LayoutVObj,
793 LAYOUT_SpaceOuter, TRUE,
794 LAYOUT_BevelStyle, BVS_GROUP,
795 LAYOUT_Label, gadlab[GRP_OPTS_PRIVACY],
796 LAYOUT_AddChild, gow->objects[GID_OPTS_REFERRAL] = CheckBoxObj,
797 GA_ID, GID_OPTS_REFERRAL,
798 GA_RelVerify, TRUE,
799 GA_Text, gadlab[GID_OPTS_REFERRAL],
800 GA_Selected, nsoption_bool(send_referer),
801 CheckBoxEnd,
802 LAYOUT_AddChild, gow->objects[GID_OPTS_DONOTTRACK] = CheckBoxObj,
803 GA_ID, GID_OPTS_DONOTTRACK,
804 GA_RelVerify, TRUE,
805 GA_Text, gadlab[GID_OPTS_DONOTTRACK],
806 GA_Selected, nsoption_bool(do_not_track),
807 CheckBoxEnd,
808 LayoutEnd, // misc
809 CHILD_WeightedHeight, 0,
810 LayoutEnd, // page vgroup
811 CHILD_WeightedHeight, 0,
812 PageEnd, // pageadd
813 /*
814 ** Display
815 */
816 PAGE_Add, LayoutVObj,
817 LAYOUT_AddChild, LayoutVObj,
818 LAYOUT_AddChild, LayoutVObj,
819 LAYOUT_SpaceOuter, TRUE,
820 LAYOUT_BevelStyle, BVS_GROUP,
821 LAYOUT_Label, gadlab[GRP_OPTS_SCREEN],
822 LAYOUT_AddChild, LayoutHObj,
823 LAYOUT_AddChild, gow->objects[GID_OPTS_SCREEN] = RadioButtonObj,
824 GA_ID, GID_OPTS_SCREEN,
825 GA_RelVerify, TRUE,
826#ifdef __amigaos4__
827 GA_Text, screenopts,
828#else
829 RADIOBUTTON_Labels, &gow->screenoptslist,
830#endif
831 RADIOBUTTON_Selected, screenoptsselected,
832 RadioButtonEnd,
833 CHILD_WeightedWidth,0,
834 LAYOUT_AddChild, LayoutVObj,
835 LAYOUT_AddChild, gow->objects[GID_OPTS_SCREENMODE] = GetScreenModeObj,
836 GA_ID, GID_OPTS_SCREENMODE,
837 GA_RelVerify, TRUE,
838 GA_Disabled,screenmodedisabled,
839 GETSCREENMODE_DisplayID,screenmodeid,
840 GETSCREENMODE_MinDepth, 0,
841 GETSCREENMODE_MaxDepth, 32,
843 LAYOUT_AddChild, gow->objects[GID_OPTS_SCREENNAME] = StringObj,
844 GA_ID, GID_OPTS_SCREENNAME,
845 GA_RelVerify, TRUE,
846 GA_Disabled,screennamedisabled,
847 STRINGA_TextVal, nsoption_charp(pubscreen_name),
848 STRINGA_BufferPos,0,
849 StringEnd,
850 LayoutEnd,
851 CHILD_WeightedHeight,0,
852 LayoutEnd,
853 LayoutEnd, // screen
854 CHILD_WeightedHeight,0,
855 LAYOUT_AddChild, LayoutVObj,
856 LAYOUT_SpaceOuter, TRUE,
857 LAYOUT_BevelStyle, BVS_GROUP,
858 LAYOUT_Label, gadlab[GRP_OPTS_WINDOW],
859 LAYOUT_AddChild, gow->objects[GID_OPTS_WIN_SIMPLE] = CheckBoxObj,
860 GA_ID, GID_OPTS_WIN_SIMPLE,
861 GA_RelVerify, TRUE,
862 GA_Text, gadlab[GID_OPTS_WIN_SIMPLE],
863 GA_Selected, nsoption_bool(window_simple_refresh),
864 CheckBoxEnd,
865 LayoutEnd, // window
866 CHILD_WeightedHeight,0,
867 LAYOUT_AddChild, LayoutVObj,
868 LAYOUT_SpaceOuter, TRUE,
869 LAYOUT_BevelStyle, BVS_GROUP,
870 LAYOUT_Label, gadlab[GRP_OPTS_THEME],
871 LAYOUT_AddChild, gow->objects[GID_OPTS_THEME] = GetFileObj,
872 GA_ID, GID_OPTS_THEME,
873 GA_RelVerify, TRUE,
874 GETFILE_Drawer, nsoption_charp(theme),
875 GETFILE_DrawersOnly, TRUE,
876 GETFILE_ReadOnly, TRUE,
877 GETFILE_FullFileExpand, FALSE,
879 CHILD_Label, LabelObj,
880 LABEL_Text, gadlab[GID_OPTS_THEME],
881 LabelEnd,
882 LAYOUT_AddChild, gow->objects[GID_OPTS_THEMEPAGE] = ChooserObj,
883 GA_ID, GID_OPTS_THEMEPAGE,
884 GA_RelVerify, TRUE,
885 CHOOSER_PopUp, TRUE,
886#ifdef __amigaos4__
887 CHOOSER_LabelArray, pagethemeopts,
888#else
889 CHOOSER_Labels, &gow->pagethemeoptslist,
890#endif
891 CHOOSER_Selected, nsoption_bool(prefer_dark_mode),
892 ChooserEnd,
893 CHILD_Label, LabelObj,
894 LABEL_Text, gadlab[GID_OPTS_THEMEPAGE],
895 LabelEnd,
896 LayoutEnd, // theme
897 CHILD_WeightedHeight, 0,
898 LAYOUT_AddChild, LayoutVObj,
899 LAYOUT_SpaceOuter, TRUE,
900 LAYOUT_BevelStyle, BVS_GROUP,
901 LAYOUT_Label, gadlab[GRP_OPTS_MOUSE],
902 LAYOUT_AddChild, gow->objects[GID_OPTS_PTRTRUE] = CheckBoxObj,
903 GA_ID, GID_OPTS_PTRTRUE,
904 GA_RelVerify, TRUE,
905 GA_Text, gadlab[GID_OPTS_PTRTRUE],
906 GA_Selected, nsoption_bool(truecolour_mouse_pointers),
907 GA_Disabled, ptr_disable,
908 CheckBoxEnd,
909 LAYOUT_AddChild, gow->objects[GID_OPTS_PTROS] = CheckBoxObj,
910 GA_ID, GID_OPTS_PTROS,
911 GA_RelVerify, TRUE,
912 GA_Text, gadlab[GID_OPTS_PTROS],
913 GA_Selected, nsoption_bool(os_mouse_pointers),
914 GA_Disabled, ptr_disable,
915 CheckBoxEnd,
916 LayoutEnd, // mouse
917 CHILD_WeightedHeight,0,
918 LAYOUT_AddImage, LabelObj,
919 LABEL_Text, gadlab[LAB_OPTS_RESTART],
920 LabelEnd,
921 LayoutEnd, // page vgroup
922 CHILD_WeightedHeight, 0,
923 PageEnd, // pageadd
924 /*
925 ** Network
926 */
927 PAGE_Add, LayoutVObj,
928 LAYOUT_AddChild, LayoutVObj,
929 LAYOUT_AddChild, LayoutVObj,
930 LAYOUT_SpaceOuter, TRUE,
931 LAYOUT_BevelStyle, BVS_GROUP,
932 LAYOUT_Label, gadlab[GRP_OPTS_PROXY],
933 LAYOUT_AddChild, gow->objects[GID_OPTS_PROXY] = ChooserObj,
934 GA_ID, GID_OPTS_PROXY,
935 GA_RelVerify, TRUE,
936 CHOOSER_PopUp, TRUE,
937#ifdef __amigaos4__
938 CHOOSER_LabelArray, proxyopts,
939#else
940 CHOOSER_Labels, &gow->proxyoptslist,
941#endif
942 CHOOSER_Selected, proxytype,
943 ChooserEnd,
944 CHILD_Label, LabelObj,
945 LABEL_Text, gadlab[GID_OPTS_PROXY],
946 LabelEnd,
947 LAYOUT_AddChild, LayoutHObj,
948 LAYOUT_AddChild, gow->objects[GID_OPTS_PROXY_HOST] = StringObj,
949 GA_ID, GID_OPTS_PROXY_HOST,
950 GA_RelVerify, TRUE,
951 GA_Disabled, proxyhostdisabled,
952 STRINGA_TextVal, nsoption_charp(http_proxy_host),
953 STRINGA_BufferPos,0,
954 StringEnd,
955 LAYOUT_AddChild, gow->objects[GID_OPTS_PROXY_PORT] = IntegerObj,
956 GA_ID, GID_OPTS_PROXY_PORT,
957 GA_RelVerify, TRUE,
958 GA_Disabled, proxyhostdisabled,
959 INTEGER_Number, nsoption_charp(http_proxy_port),
960 INTEGER_Minimum, 1,
961 INTEGER_Maximum, 65535,
962 INTEGER_Arrows, FALSE,
963 IntegerEnd,
964 CHILD_WeightedWidth, 0,
965 CHILD_Label, LabelObj,
966 LABEL_Text, ":",
967 LabelEnd,
968 LayoutEnd, //host:port group
969 CHILD_WeightedHeight, 0,
970 CHILD_Label, LabelObj,
971 LABEL_Text, gadlab[GID_OPTS_PROXY_HOST],
972 LabelEnd,
973 LAYOUT_AddChild, gow->objects[GID_OPTS_PROXY_USER] = StringObj,
974 GA_ID, GID_OPTS_PROXY_USER,
975 GA_RelVerify, TRUE,
976 GA_Disabled, proxyauthdisabled,
977 STRINGA_TextVal, nsoption_charp(http_proxy_auth_user),
978 STRINGA_BufferPos,0,
979 StringEnd,
980 CHILD_Label, LabelObj,
981 LABEL_Text, gadlab[GID_OPTS_PROXY_USER],
982 LabelEnd,
983 LAYOUT_AddChild, gow->objects[GID_OPTS_PROXY_PASS] = StringObj,
984 GA_ID, GID_OPTS_PROXY_PASS,
985 GA_RelVerify, TRUE,
986 GA_Disabled, proxyauthdisabled,
987 STRINGA_TextVal, nsoption_charp(http_proxy_auth_pass),
988 STRINGA_BufferPos,0,
989 StringEnd,
990 CHILD_Label, LabelObj,
991 LABEL_Text, gadlab[GID_OPTS_PROXY_PASS],
992 LabelEnd,
993 LAYOUT_AddChild, gow->objects[GID_OPTS_PROXY_BYPASS] = StringObj,
995 GA_RelVerify, TRUE,
996 GA_Disabled, proxybypassdisabled,
997 STRINGA_TextVal, nsoption_charp(http_proxy_noproxy),
998 STRINGA_BufferPos, 0,
999 StringEnd,
1000 CHILD_Label, LabelObj,
1001 LABEL_Text, gadlab[GID_OPTS_PROXY_BYPASS],
1002 LabelEnd,
1003 LayoutEnd, // proxy
1004 CHILD_WeightedHeight, 0,
1005 LAYOUT_AddChild, LayoutVObj,
1006 LAYOUT_SpaceOuter, TRUE,
1007 LAYOUT_BevelStyle, BVS_GROUP,
1008 LAYOUT_Label, gadlab[GRP_OPTS_FETCHING],
1009 LAYOUT_AddChild, gow->objects[GID_OPTS_FETCHMAX] = IntegerObj,
1010 GA_ID, GID_OPTS_FETCHMAX,
1011 GA_RelVerify, TRUE,
1012 INTEGER_Number, nsoption_int(max_fetchers),
1013 INTEGER_Minimum, 1,
1014 INTEGER_Maximum, 99,
1015 INTEGER_Arrows, TRUE,
1016 IntegerEnd,
1017 CHILD_WeightedWidth, 0,
1018 CHILD_Label, LabelObj,
1019 LABEL_Text, gadlab[GID_OPTS_FETCHMAX],
1020 LabelEnd,
1021 LAYOUT_AddChild, gow->objects[GID_OPTS_FETCHHOST] = IntegerObj,
1022 GA_ID, GID_OPTS_FETCHHOST,
1023 GA_RelVerify, TRUE,
1024 INTEGER_Number, nsoption_int(max_fetchers_per_host),
1025 INTEGER_Minimum, 1,
1026 INTEGER_Maximum, 99,
1027 INTEGER_Arrows, TRUE,
1028 IntegerEnd,
1029 CHILD_WeightedWidth, 0,
1030 CHILD_Label, LabelObj,
1031 LABEL_Text, gadlab[GID_OPTS_FETCHHOST],
1032 LabelEnd,
1033 LAYOUT_AddChild, gow->objects[GID_OPTS_FETCHCACHE] = IntegerObj,
1034 GA_ID, GID_OPTS_FETCHCACHE,
1035 GA_RelVerify, TRUE,
1036 INTEGER_Number, nsoption_int(max_cached_fetch_handles),
1037 INTEGER_Minimum, 1,
1038 INTEGER_Maximum, 99,
1039 INTEGER_Arrows, TRUE,
1040 IntegerEnd,
1041 CHILD_WeightedWidth, 0,
1042 CHILD_Label, LabelObj,
1043 LABEL_Text, gadlab[GID_OPTS_FETCHCACHE],
1044 LabelEnd,
1045 LayoutEnd,
1046 CHILD_WeightedHeight, 0,
1047 LayoutEnd, // page vgroup
1048 CHILD_WeightedHeight, 0,
1049 PageEnd, // page object
1050 /*
1051 ** Rendering
1052 */
1053 PAGE_Add, LayoutVObj,
1054 LAYOUT_AddChild, LayoutVObj,
1055 LAYOUT_AddChild, LayoutVObj,
1056 LAYOUT_SpaceOuter, TRUE,
1057 LAYOUT_BevelStyle, BVS_GROUP,
1058 LAYOUT_Label, gadlab[GRP_OPTS_IMAGES],
1059 LAYOUT_AddChild, gow->objects[GID_OPTS_NATIVEBM] = ChooserObj,
1060 GA_ID, GID_OPTS_NATIVEBM,
1061 GA_RelVerify, TRUE,
1062 CHOOSER_PopUp, TRUE,
1063#ifdef __amigaos4__
1064 CHOOSER_LabelArray, nativebmopts,
1065#else
1066 CHOOSER_Labels, &gow->nativebmoptslist,
1067#endif
1068 CHOOSER_Selected, nsoption_int(cache_bitmaps),
1069 ChooserEnd,
1070 CHILD_Label, LabelObj,
1071 LABEL_Text, gadlab[GID_OPTS_NATIVEBM],
1072 LabelEnd,
1073 LAYOUT_AddChild, gow->objects[GID_OPTS_DITHERQ] = ChooserObj,
1074 GA_ID, GID_OPTS_DITHERQ,
1075 GA_RelVerify, TRUE,
1076 GA_Disabled, ditherdisable,
1077 CHOOSER_PopUp, TRUE,
1078#ifdef __amigaos4__
1079 CHOOSER_LabelArray, ditheropts,
1080#else
1081 CHOOSER_Labels, &gow->ditheroptslist,
1082#endif
1083 CHOOSER_Selected, nsoption_int(dither_quality),
1084 ChooserEnd,
1085 CHILD_Label, LabelObj,
1086 LABEL_Text, gadlab[GID_OPTS_DITHERQ],
1087 LabelEnd,
1088 LAYOUT_AddChild, gow->objects[GID_OPTS_SCALEQ] = CheckBoxObj,
1089 GA_ID, GID_OPTS_SCALEQ,
1090 GA_Disabled, scaledisabled,
1091 GA_RelVerify, TRUE,
1092 GA_Text, gadlab[GID_OPTS_SCALEQ],
1093 GA_Selected, scaleselected,
1094 CheckBoxEnd,
1095 LayoutEnd, // images
1096 CHILD_WeightedHeight, 0,
1097 LAYOUT_AddChild, LayoutVObj,
1098 LAYOUT_SpaceOuter, TRUE,
1099 LAYOUT_BevelStyle, BVS_GROUP,
1100 LAYOUT_Label, gadlab[GRP_OPTS_ANIMS],
1101 LAYOUT_AddChild, gow->objects[GID_OPTS_ANIMDISABLE] = CheckBoxObj,
1102 GA_ID, GID_OPTS_ANIMDISABLE,
1103 GA_RelVerify, TRUE,
1104 GA_Text, gadlab[GID_OPTS_ANIMDISABLE],
1105 GA_Selected, disableanims,
1106 CheckBoxEnd,
1107 LayoutEnd, //animations
1108 CHILD_WeightedHeight, 0,
1109 LAYOUT_AddChild, LayoutVObj,
1110 LAYOUT_SpaceOuter, TRUE,
1111 LAYOUT_BevelStyle, BVS_GROUP,
1112 LAYOUT_Label, gadlab[GRP_OPTS_DPI],
1113 LAYOUT_AddChild, LayoutHObj,
1114 LAYOUT_LabelColumn, PLACETEXT_RIGHT,
1115 LAYOUT_AddChild, gow->objects[GID_OPTS_DPI_Y] = IntegerObj,
1116 GA_ID, GID_OPTS_DPI_Y,
1117 GA_RelVerify, TRUE,
1118 INTEGER_Number, nsoption_int(screen_ydpi),
1119 INTEGER_Minimum, 20,
1120 INTEGER_Maximum, 200,
1121 INTEGER_Arrows, TRUE,
1122 GA_Disabled, nsoption_bool(bitmap_fonts),
1123 IntegerEnd,
1124 CHILD_WeightedWidth, 0,
1125 CHILD_Label, LabelObj,
1126 LABEL_Text, gadlab[LAB_OPTS_DPI],
1127 LabelEnd,
1128 LayoutEnd,
1129 CHILD_Label, LabelObj,
1130 LABEL_Text, gadlab[GID_OPTS_DPI_Y],
1131 LabelEnd,
1132 LayoutEnd, //animations
1133 CHILD_WeightedHeight, 0,
1134 LayoutEnd, // page vgroup
1135 CHILD_WeightedHeight, 0,
1136 PageEnd, // page object
1137 /*
1138 ** Fonts
1139 */
1140 PAGE_Add, LayoutVObj,
1141 LAYOUT_AddChild, LayoutVObj,
1142 LAYOUT_AddChild, LayoutVObj,
1143 LAYOUT_SpaceOuter, TRUE,
1144 LAYOUT_BevelStyle, BVS_GROUP,
1145 LAYOUT_Label, gadlab[GRP_OPTS_FONTFACES],
1146 LAYOUT_AddChild, gow->objects[GID_OPTS_FONT_SANS] = GetFontObj,
1147 GA_ID, GID_OPTS_FONT_SANS,
1148 GA_RelVerify, TRUE,
1149 GETFONT_TextAttr, &fontsans,
1150 GETFONT_OTagOnly, TRUE,
1152 GetFontEnd,
1153 CHILD_Label, LabelObj,
1154 LABEL_Text, gadlab[GID_OPTS_FONT_SANS],
1155 LabelEnd,
1156 LAYOUT_AddChild, gow->objects[GID_OPTS_FONT_SERIF] = GetFontObj,
1157 GA_ID, GID_OPTS_FONT_SERIF,
1158 GA_RelVerify, TRUE,
1159 GETFONT_TextAttr, &fontserif,
1160 GETFONT_OTagOnly, TRUE,
1162 GetFontEnd,
1163 CHILD_Label, LabelObj,
1164 LABEL_Text, gadlab[GID_OPTS_FONT_SERIF],
1165 LabelEnd,
1166 LAYOUT_AddChild, gow->objects[GID_OPTS_FONT_MONO] = GetFontObj,
1167 GA_ID, GID_OPTS_FONT_MONO,
1168 GA_RelVerify, TRUE,
1169 GETFONT_TextAttr, &fontmono,
1170 GETFONT_OTagOnly, TRUE,
1172 GETFONT_FixedWidthOnly, TRUE,
1173 GetFontEnd,
1174 CHILD_Label, LabelObj,
1175 LABEL_Text, gadlab[GID_OPTS_FONT_MONO],
1176 LabelEnd,
1177 LAYOUT_AddChild, gow->objects[GID_OPTS_FONT_CURSIVE] = GetFontObj,
1178 GA_ID, GID_OPTS_FONT_CURSIVE,
1179 GA_RelVerify, TRUE,
1180 GETFONT_TextAttr, &fontcursive,
1181 GETFONT_OTagOnly, TRUE,
1183 GetFontEnd,
1184 CHILD_Label, LabelObj,
1185 LABEL_Text, gadlab[GID_OPTS_FONT_CURSIVE],
1186 LabelEnd,
1187 LAYOUT_AddChild, gow->objects[GID_OPTS_FONT_FANTASY] = GetFontObj,
1188 GA_ID, GID_OPTS_FONT_FANTASY,
1189 GA_RelVerify, TRUE,
1190 GETFONT_TextAttr, &fontfantasy,
1191 GETFONT_OTagOnly, TRUE,
1193 GetFontEnd,
1194 CHILD_Label, LabelObj,
1195 LABEL_Text, gadlab[GID_OPTS_FONT_FANTASY],
1196 LabelEnd,
1197 LAYOUT_AddChild, gow->objects[GID_OPTS_FONT_DEFAULT] = ChooserObj,
1198 GA_ID, GID_OPTS_FONT_DEFAULT,
1199 GA_RelVerify, TRUE,
1200 CHOOSER_PopUp, TRUE,
1201#ifdef __amigaos4__
1202 CHOOSER_LabelArray, fontopts,
1203#else
1204 CHOOSER_Labels, &gow->fontoptslist,
1205#endif
1206 CHOOSER_Selected, nsoption_int(font_default) - PLOT_FONT_FAMILY_SANS_SERIF,
1207 ChooserEnd,
1208 CHILD_Label, LabelObj,
1209 LABEL_Text, gadlab[GID_OPTS_FONT_DEFAULT],
1210 LabelEnd,
1211 LayoutEnd, // font faces
1212 CHILD_WeightedHeight, 0,
1213 LAYOUT_AddChild, LayoutHObj,
1214 LAYOUT_AddChild, LayoutVObj,
1215 LAYOUT_SpaceOuter, TRUE,
1216 LAYOUT_BevelStyle, BVS_GROUP,
1217 LAYOUT_Label, gadlab[GRP_OPTS_FONTSIZE],
1218 LAYOUT_AddChild, LayoutHObj,
1219 LAYOUT_LabelColumn, PLACETEXT_RIGHT,
1220 LAYOUT_AddChild, gow->objects[GID_OPTS_FONT_SIZE] = IntegerObj,
1221 GA_ID, GID_OPTS_FONT_SIZE,
1222 GA_RelVerify, TRUE,
1223 INTEGER_Number, nsoption_int(font_size) / 10,
1224 INTEGER_Minimum, 1,
1225 INTEGER_Maximum, 99,
1226 INTEGER_Arrows, TRUE,
1227 IntegerEnd,
1228 CHILD_WeightedWidth, 0,
1229 CHILD_Label, LabelObj,
1230 LABEL_Text, gadlab[LAB_OPTS_PT],
1231 LabelEnd,
1232 LayoutEnd,
1233 CHILD_Label, LabelObj,
1234 LABEL_Text, gadlab[GID_OPTS_FONT_SIZE],
1235 LabelEnd,
1236 LAYOUT_AddChild, LayoutHObj,
1237 LAYOUT_LabelColumn, PLACETEXT_RIGHT,
1238 LAYOUT_AddChild, gow->objects[GID_OPTS_FONT_MINSIZE] = IntegerObj,
1239 GA_ID, GID_OPTS_FONT_MINSIZE,
1240 GA_RelVerify, TRUE,
1241 INTEGER_Number, nsoption_int(font_min_size) / 10,
1242 INTEGER_Minimum, 1,
1243 INTEGER_Maximum, 99,
1244 INTEGER_Arrows, TRUE,
1245 IntegerEnd,
1246 CHILD_WeightedWidth, 0,
1247 CHILD_Label, LabelObj,
1248 LABEL_Text, gadlab[LAB_OPTS_PT],
1249 LabelEnd,
1250 LayoutEnd,
1251 CHILD_Label, LabelObj,
1252 LABEL_Text, gadlab[GID_OPTS_FONT_MINSIZE],
1253 LabelEnd,
1254 LayoutEnd,
1255 LAYOUT_AddChild, LayoutVObj,
1256 LAYOUT_SpaceOuter, TRUE,
1257 LAYOUT_BevelStyle, BVS_GROUP,
1258 LAYOUT_Label, gadlab[GRP_OPTS_MISC],
1261 GA_RelVerify, TRUE,
1263 GA_Selected, nsoption_bool(font_antialiasing),
1264#ifndef __amigaos4__
1265 GA_Disabled, TRUE,
1266#endif
1267 CheckBoxEnd,
1268#ifndef __amigaos4__
1269 LAYOUT_AddChild, gow->objects[GID_OPTS_FONT_BITMAP] = CheckBoxObj,
1270 GA_ID, GID_OPTS_FONT_BITMAP,
1271 GA_RelVerify, TRUE,
1272 GA_Text, gadlab[GID_OPTS_FONT_BITMAP],
1273 GA_Selected, nsoption_bool(bitmap_fonts),
1274 CheckBoxEnd,
1275#endif
1276 LayoutEnd,
1277 LayoutEnd,
1278 CHILD_WeightedHeight, 0,
1279 LayoutEnd, // page vgroup
1280 CHILD_WeightedHeight, 0,
1281 PageEnd, // page object
1282 /*
1283 ** Cache
1284 */
1285 PAGE_Add, LayoutVObj,
1286 LAYOUT_AddChild, LayoutVObj,
1287 LAYOUT_AddChild, LayoutVObj,
1288 LAYOUT_SpaceOuter, TRUE,
1289 LAYOUT_BevelStyle, BVS_GROUP,
1290 LAYOUT_Label, gadlab[GRP_OPTS_MEMCACHE],
1291 LAYOUT_AddChild, LayoutHObj,
1292 LAYOUT_LabelColumn, PLACETEXT_RIGHT,
1293 LAYOUT_AddChild, gow->objects[GID_OPTS_CACHE_MEM] = IntegerObj,
1294 GA_ID, GID_OPTS_CACHE_MEM,
1295 GA_RelVerify, TRUE,
1296 INTEGER_Number, nsoption_int(memory_cache_size) / 1048576,
1297 INTEGER_Minimum, 0,
1298 INTEGER_Maximum, 2048,
1299 INTEGER_Arrows, TRUE,
1300 IntegerEnd,
1301 CHILD_WeightedWidth, 0,
1302 CHILD_Label, LabelObj,
1303 LABEL_Text, gadlab[LAB_OPTS_MB],
1304 LabelEnd,
1305 LayoutEnd,
1306 CHILD_Label, LabelObj,
1307 LABEL_Text, gadlab[GID_OPTS_CACHE_MEM],
1308 LabelEnd,
1309 LayoutEnd, // memory cache
1310 CHILD_WeightedHeight, 0,
1311 LAYOUT_AddChild, LayoutVObj,
1312 LAYOUT_SpaceOuter, TRUE,
1313 LAYOUT_BevelStyle, BVS_GROUP,
1314 LAYOUT_Label, gadlab[GRP_OPTS_DISCCACHE],
1315 LAYOUT_AddChild, LayoutHObj,
1316 LAYOUT_LabelColumn, PLACETEXT_RIGHT,
1317 LAYOUT_AddChild, gow->objects[GID_OPTS_CACHE_DISC] = IntegerObj,
1318 GA_ID, GID_OPTS_CACHE_DISC,
1319 GA_RelVerify, TRUE,
1320 INTEGER_Number, nsoption_uint(disc_cache_size) / 1048576,
1321 INTEGER_Minimum, 0,
1322 INTEGER_Maximum, 4096,
1323 INTEGER_Arrows, TRUE,
1324 IntegerEnd,
1325 CHILD_WeightedWidth, 0,
1326 CHILD_Label, LabelObj,
1327 LABEL_Text, gadlab[LAB_OPTS_MB],
1328 LabelEnd,
1329 LayoutEnd,
1330 CHILD_Label, LabelObj,
1331 LABEL_Text, gadlab[GID_OPTS_CACHE_DISC],
1332 LabelEnd,
1333 LayoutEnd, // disc cache
1334 CHILD_WeightedHeight, 0,
1335 LayoutEnd, // page vgroup
1336 CHILD_WeightedHeight, 0,
1337 PageEnd, // page object
1338 /*
1339 ** Tabs
1340 */
1341 PAGE_Add, LayoutVObj,
1342 LAYOUT_AddChild, LayoutVObj,
1343 LAYOUT_AddChild, LayoutHObj,
1344 LAYOUT_AddChild, LayoutVObj,
1345 LAYOUT_SpaceOuter, TRUE,
1346 LAYOUT_BevelStyle, BVS_GROUP,
1347 LAYOUT_Label, gadlab[GRP_OPTS_TABS],
1348 LAYOUT_AddChild, gow->objects[GID_OPTS_TAB_ACTIVE] = CheckBoxObj,
1349 GA_ID, GID_OPTS_TAB_ACTIVE,
1350 GA_RelVerify, TRUE,
1351 GA_Text, gadlab[GID_OPTS_TAB_ACTIVE],
1352 GA_Selected, !nsoption_bool(new_tab_is_active),
1353 CheckBoxEnd,
1354 LAYOUT_AddChild, gow->objects[GID_OPTS_TAB_LAST] = CheckBoxObj,
1355 GA_ID, GID_OPTS_TAB_LAST,
1356 GA_RelVerify, TRUE,
1357 GA_Text, gadlab[GID_OPTS_TAB_LAST],
1358 GA_Selected, nsoption_bool(new_tab_last),
1359 CheckBoxEnd,
1360 LAYOUT_AddChild, gow->objects[GID_OPTS_TAB_2] = CheckBoxObj,
1361 GA_ID, GID_OPTS_TAB_2,
1362 GA_RelVerify, TRUE,
1363 GA_Text, gadlab[GID_OPTS_TAB_2],
1364 GA_Selected, nsoption_bool(button_2_tab),
1365 CheckBoxEnd,
1366 LAYOUT_AddChild, gow->objects[GID_OPTS_TAB_ALWAYS] = CheckBoxObj,
1367 GA_ID, GID_OPTS_TAB_ALWAYS,
1368 GA_RelVerify, TRUE,
1369 GA_Text, gadlab[GID_OPTS_TAB_ALWAYS],
1370 GA_Selected, nsoption_bool(tab_always_show),
1371 GA_Disabled, tab_always_show_disabled,
1372 CheckBoxEnd,
1373 LAYOUT_AddChild, gow->objects[GID_OPTS_TAB_CLOSE] = CheckBoxObj,
1374 GA_ID, GID_OPTS_TAB_CLOSE,
1375 GA_RelVerify, TRUE,
1376 GA_Text, gadlab[GID_OPTS_TAB_CLOSE],
1377 GA_Selected, nsoption_bool(tab_close_warn),
1378 CheckBoxEnd,
1379 LayoutEnd, // tabbed browsing
1380 LayoutEnd,
1381 LayoutEnd, // page vgroup
1382 CHILD_WeightedHeight, 0,
1383 PageEnd, // page object
1384 /*
1385 ** Advanced
1386 */
1387 PAGE_Add, LayoutVObj,
1388 LAYOUT_AddChild, LayoutVObj,
1389 LAYOUT_AddChild, LayoutVObj,
1390 LAYOUT_SpaceOuter, TRUE,
1391 LAYOUT_BevelStyle, BVS_GROUP,
1392 LAYOUT_Label, gadlab[GRP_OPTS_DOWNLOADS],
1393 LAYOUT_AddChild, LayoutHObj,
1394 LAYOUT_AddChild, gow->objects[GID_OPTS_OVERWRITE] = CheckBoxObj,
1395 GA_ID, GID_OPTS_OVERWRITE,
1396 GA_RelVerify, TRUE,
1397 GA_Disabled, FALSE,
1398 GA_Text, gadlab[GID_OPTS_OVERWRITE],
1399 GA_Selected, nsoption_bool(ask_overwrite),
1400 CheckBoxEnd,
1401 LAYOUT_AddChild, gow->objects[GID_OPTS_NOTIFY] = CheckBoxObj,
1402 GA_ID, GID_OPTS_NOTIFY,
1403 GA_RelVerify, TRUE,
1404 GA_Disabled, download_notify_disabled,
1405 GA_Text, gadlab[GID_OPTS_NOTIFY],
1406 GA_Selected, nsoption_bool(download_notify),
1407#ifndef __amigaos4__
1408 GA_Disabled, TRUE,
1409#endif
1410 CheckBoxEnd,
1411 LayoutEnd,
1412 LAYOUT_AddChild, gow->objects[GID_OPTS_DLDIR] = GetFileObj,
1413 GA_ID, GID_OPTS_DLDIR,
1414 GA_RelVerify, TRUE,
1415 GETFILE_Drawer, nsoption_charp(download_dir),
1416 GETFILE_DrawersOnly, TRUE,
1417 GETFILE_ReadOnly, TRUE,
1418 GETFILE_FullFileExpand, FALSE,
1419 GetFileEnd,
1420 CHILD_Label, LabelObj,
1421 LABEL_Text, gadlab[GID_OPTS_DLDIR],
1422 LabelEnd,
1423 LayoutEnd, // downloads
1424 CHILD_WeightedHeight, 0,
1425 LAYOUT_AddChild, LayoutHObj,
1426 LAYOUT_AddChild, LayoutVObj,
1427 LAYOUT_SpaceOuter, TRUE,
1428 LAYOUT_BevelStyle, BVS_GROUP,
1429 LAYOUT_Label, gadlab[GRP_OPTS_BEHAVIOUR],
1430 LAYOUT_AddChild, gow->objects[GID_OPTS_STARTUP_NO_WIN] = CheckBoxObj,
1432 GA_RelVerify, TRUE,
1434 GA_Selected, nsoption_bool(startup_no_window),
1435 CheckBoxEnd,
1436 LAYOUT_AddChild, gow->objects[GID_OPTS_CLOSE_NO_QUIT] = CheckBoxObj,
1438 GA_RelVerify, TRUE,
1440 GA_Selected, nsoption_bool(close_no_quit),
1441 CheckBoxEnd,
1442 LAYOUT_AddChild, gow->objects[GID_OPTS_DOCKY] = CheckBoxObj,
1443 GA_ID, GID_OPTS_DOCKY,
1444 GA_RelVerify, TRUE,
1445 GA_Text, gadlab[GID_OPTS_DOCKY],
1446 GA_Selected, !nsoption_bool(hide_docky_icon),
1447#ifndef __amigaos4__
1448 GA_Disabled, TRUE,
1449#endif
1450 CheckBoxEnd,
1451 LayoutEnd, // behaviour
1452 CHILD_WeightedHeight, 0,
1453 LayoutEnd, // hgroup
1454 CHILD_WeightedHeight, 0,
1455 LAYOUT_AddChild, LayoutHObj,
1456 LAYOUT_AddChild, LayoutHObj,
1457 LAYOUT_SpaceOuter, TRUE,
1458 LAYOUT_BevelStyle, BVS_GROUP,
1459 LAYOUT_Label, gadlab[GRP_OPTS_CLIPBOARD],
1460 LAYOUT_AddChild, gow->objects[GID_OPTS_CLIPBOARD] = CheckBoxObj,
1461 GA_ID, GID_OPTS_CLIPBOARD,
1462 GA_RelVerify, TRUE,
1463 GA_Text, gadlab[GID_OPTS_CLIPBOARD],
1464 GA_Selected, nsoption_bool(clipboard_write_utf8),
1465 CheckBoxEnd,
1466 LayoutEnd, // clipboard
1467 CHILD_WeightedHeight, 0,
1468 LAYOUT_AddChild, LayoutHObj,
1469 LAYOUT_SpaceOuter, TRUE,
1470 LAYOUT_BevelStyle, BVS_GROUP,
1471 LAYOUT_Label, gadlab[GRP_OPTS_SEARCH],
1472 LAYOUT_AddChild, gow->objects[GID_OPTS_SEARCH_PROV] = ChooserObj,
1473 GA_ID, GID_OPTS_SEARCH_PROV,
1474 GA_RelVerify, TRUE,
1475 CHOOSER_PopUp, TRUE,
1476 CHOOSER_Labels, websearch_list,
1477 CHOOSER_Selected, nsoption_int(search_provider),
1478 CHOOSER_MaxLabels, 40,
1479 ChooserEnd,
1480 CHILD_Label, LabelObj,
1481 LABEL_Text, gadlab[GID_OPTS_SEARCH_PROV],
1482 LabelEnd,
1483 LayoutEnd, // search
1484 CHILD_WeightedHeight, 0,
1485 LayoutEnd, // hgroup
1486 CHILD_WeightedHeight, 0,
1487 LAYOUT_AddChild, LayoutHObj,
1488 LAYOUT_BevelStyle, BVS_GROUP,
1489 LAYOUT_Label, gadlab[GRP_OPTS_MISC],
1490 LAYOUT_SpaceOuter, TRUE,
1491 LAYOUT_AddChild, gow->objects[GID_OPTS_FASTSCROLL] = CheckBoxObj,
1492 GA_ID, GID_OPTS_FASTSCROLL,
1493 GA_RelVerify, TRUE,
1494 GA_Text, gadlab[GID_OPTS_FASTSCROLL],
1495 GA_Selected, nsoption_bool(faster_scroll),
1496 CheckBoxEnd,
1497 LAYOUT_AddChild, gow->objects[GID_OPTS_SELECTMENU] = CheckBoxObj,
1498 GA_ID, GID_OPTS_SELECTMENU,
1499 GA_RelVerify, TRUE,
1500 GA_Text, gadlab[GID_OPTS_SELECTMENU],
1501 GA_Selected, !nsoption_bool(core_select_menu),
1502 GA_Disabled, !ami_selectmenu_is_safe(),
1503 CheckBoxEnd,
1504 LAYOUT_AddChild, gow->objects[GID_OPTS_ENABLECSS] = CheckBoxObj,
1505 GA_ID, GID_OPTS_ENABLECSS,
1506 GA_RelVerify, TRUE,
1507 GA_Text, gadlab[GID_OPTS_ENABLECSS],
1508 GA_Selected, nsoption_bool(author_level_css),
1509 CheckBoxEnd,
1510 LayoutEnd, // misc
1511 CHILD_WeightedHeight, 0,
1512
1513 LayoutEnd, // page vgroup
1514 CHILD_WeightedHeight, 0,
1515 PageEnd, // page object
1516 /*
1517 ** Export
1518 */
1519#ifdef WITH_PDF_EXPORT
1520 PAGE_Add, LayoutVObj,
1521 LAYOUT_AddChild, LayoutVObj,
1522 LAYOUT_AddChild, LayoutHObj,
1523 LAYOUT_SpaceOuter, TRUE,
1524 LAYOUT_BevelStyle, BVS_GROUP,
1525 LAYOUT_Label, gadlab[GRP_OPTS_MARGINS],
1526 LAYOUT_AddChild, LayoutHObj,
1527 LAYOUT_LabelColumn, PLACETEXT_RIGHT,
1528 LAYOUT_AddChild, gow->objects[GID_OPTS_MARGIN_TOP] = IntegerObj,
1529 GA_ID, GID_OPTS_MARGIN_TOP,
1530 GA_RelVerify, TRUE,
1531 INTEGER_Number, nsoption_int(margin_top),
1532 INTEGER_Minimum, 0,
1533 INTEGER_Maximum, 99,
1534 INTEGER_Arrows, TRUE,
1535 IntegerEnd,
1536 CHILD_WeightedWidth, 0,
1537 CHILD_Label, LabelObj,
1538 LABEL_Text, gadlab[LAB_OPTS_MM],
1539 LabelEnd,
1540 LayoutEnd,
1541 CHILD_Label, LabelObj,
1542 LABEL_Text, gadlab[GID_OPTS_MARGIN_TOP],
1543 LabelEnd,
1544 LAYOUT_AddChild, LayoutHObj,
1545 LAYOUT_LabelColumn, PLACETEXT_RIGHT,
1546 LAYOUT_AddChild, gow->objects[GID_OPTS_MARGIN_LEFT] = IntegerObj,
1547 GA_ID, GID_OPTS_MARGIN_LEFT,
1548 GA_RelVerify, TRUE,
1549 INTEGER_Number, nsoption_int(margin_left),
1550 INTEGER_Minimum, 0,
1551 INTEGER_Maximum, 99,
1552 INTEGER_Arrows, TRUE,
1553 IntegerEnd,
1554 CHILD_WeightedWidth, 0,
1555 CHILD_Label, LabelObj,
1556 LABEL_Text, gadlab[LAB_OPTS_MM],
1557 LabelEnd,
1558 LayoutEnd,
1559 CHILD_Label, LabelObj,
1560 LABEL_Text, gadlab[GID_OPTS_MARGIN_LEFT],
1561 LabelEnd,
1562 LAYOUT_AddChild, LayoutHObj,
1563 LAYOUT_LabelColumn, PLACETEXT_RIGHT,
1564 LAYOUT_AddChild, gow->objects[GID_OPTS_MARGIN_BOTTOM] = IntegerObj,
1566 GA_RelVerify, TRUE,
1567 INTEGER_Number, nsoption_int(margin_bottom),
1568 INTEGER_Minimum, 0,
1569 INTEGER_Maximum, 99,
1570 INTEGER_Arrows, TRUE,
1571 IntegerEnd,
1572 CHILD_WeightedWidth, 0,
1573 CHILD_Label, LabelObj,
1574 LABEL_Text, gadlab[LAB_OPTS_MM],
1575 LabelEnd,
1576 LayoutEnd,
1577 CHILD_Label, LabelObj,
1578 LABEL_Text, gadlab[GID_OPTS_MARGIN_BOTTOM],
1579 LabelEnd,
1580 LAYOUT_AddChild, LayoutHObj,
1581 LAYOUT_LabelColumn, PLACETEXT_RIGHT,
1582 LAYOUT_AddChild, gow->objects[GID_OPTS_MARGIN_RIGHT] = IntegerObj,
1583 GA_ID, GID_OPTS_MARGIN_RIGHT,
1584 GA_RelVerify, TRUE,
1585 INTEGER_Number, nsoption_int(margin_right),
1586 INTEGER_Minimum, 0,
1587 INTEGER_Maximum, 99,
1588 INTEGER_Arrows, TRUE,
1589 IntegerEnd,
1590 CHILD_WeightedWidth, 0,
1591 CHILD_Label, LabelObj,
1592 LABEL_Text, gadlab[LAB_OPTS_MM],
1593 LabelEnd,
1594 LayoutEnd,
1595 CHILD_Label, LabelObj,
1596 LABEL_Text, gadlab[GID_OPTS_MARGIN_RIGHT],
1597 LabelEnd,
1598 LayoutEnd, // margins
1599 CHILD_WeightedHeight, 0,
1600 LAYOUT_AddChild, LayoutVObj,
1601 LAYOUT_SpaceOuter, TRUE,
1602 LAYOUT_BevelStyle, BVS_GROUP,
1603 LAYOUT_Label, gadlab[GRP_OPTS_SCALING],
1604 LAYOUT_AddChild, LayoutHObj,
1605 LAYOUT_LabelColumn, PLACETEXT_RIGHT,
1606 LAYOUT_AddChild, gow->objects[GID_OPTS_EXPORT_SCALE] = IntegerObj,
1607 GA_ID, GID_OPTS_EXPORT_SCALE,
1608 GA_RelVerify, TRUE,
1609 INTEGER_Number, nsoption_int(export_scale),
1610 INTEGER_Minimum, 0,
1611 INTEGER_Maximum, 100,
1612 INTEGER_Arrows, TRUE,
1613 IntegerEnd,
1614 CHILD_WeightedWidth, 0,
1615 CHILD_Label, LabelObj,
1616 LABEL_Text, "%",
1617 LabelEnd,
1618 LayoutEnd,
1619 CHILD_Label, LabelObj,
1620 LABEL_Text, gadlab[GID_OPTS_EXPORT_SCALE],
1621 LabelEnd,
1622 LayoutEnd, // scaling
1623 CHILD_WeightedHeight, 0,
1624 LAYOUT_AddChild, LayoutVObj,
1625 LAYOUT_SpaceOuter, TRUE,
1626 LAYOUT_BevelStyle, BVS_GROUP,
1627 LAYOUT_Label, gadlab[GRP_OPTS_APPEARANCE],
1628 LAYOUT_AddChild, gow->objects[GID_OPTS_EXPORT_NOIMAGES] = CheckBoxObj,
1630 GA_RelVerify, TRUE,
1632 GA_Selected, nsoption_bool(suppress_images),
1633 CheckBoxEnd,
1634 LAYOUT_AddChild, gow->objects[GID_OPTS_EXPORT_NOBKG] = CheckBoxObj,
1635 GA_ID, GID_OPTS_EXPORT_NOBKG,
1636 GA_RelVerify, TRUE,
1637 GA_Text, gadlab[GID_OPTS_EXPORT_NOBKG],
1638 GA_Selected, nsoption_bool(remove_backgrounds),
1639 CheckBoxEnd,
1640 LAYOUT_AddChild, gow->objects[GID_OPTS_EXPORT_LOOSEN] = CheckBoxObj,
1642 GA_RelVerify, TRUE,
1644 GA_Selected, nsoption_bool(enable_loosening),
1645 CheckBoxEnd,
1646 LayoutEnd, // appearance
1647 CHILD_WeightedHeight, 0,
1648 LAYOUT_AddChild, LayoutVObj,
1649 LAYOUT_SpaceOuter, TRUE,
1650 LAYOUT_BevelStyle, BVS_GROUP,
1651 LAYOUT_Label, gadlab[GRP_OPTS_ADVANCED],
1652 LAYOUT_AddChild, gow->objects[GID_OPTS_EXPORT_COMPRESS] = CheckBoxObj,
1654 GA_RelVerify, TRUE,
1656 GA_Selected, nsoption_bool(enable_PDF_compression),
1657 CheckBoxEnd,
1658 LAYOUT_AddChild, gow->objects[GID_OPTS_EXPORT_PASSWORD] = CheckBoxObj,
1660 GA_RelVerify, TRUE,
1661 GA_Disabled, TRUE,
1663 GA_Selected, nsoption_bool(enable_PDF_password),
1664 CheckBoxEnd,
1665 LayoutEnd, // export
1666 CHILD_WeightedHeight, 0,
1667 LayoutEnd, // page vgroup
1668 CHILD_WeightedHeight, 0,
1669 PageEnd, // page object
1670#endif
1671 End, // pagegroup
1672 ClickTabEnd,
1673 LAYOUT_AddChild, LayoutHObj,
1674 LAYOUT_AddChild, gow->objects[GID_OPTS_SAVE] = ButtonObj,
1675 GA_ID,GID_OPTS_SAVE,
1676 GA_Text,gadlab[GID_OPTS_SAVE],
1677 GA_RelVerify,TRUE,
1678 ButtonEnd,
1679 LAYOUT_AddChild, gow->objects[GID_OPTS_USE] = ButtonObj,
1680 GA_ID,GID_OPTS_USE,
1681 GA_Text,gadlab[GID_OPTS_USE],
1682 GA_RelVerify,TRUE,
1683 ButtonEnd,
1684 LAYOUT_AddChild, gow->objects[GID_OPTS_CANCEL] = ButtonObj,
1685 GA_ID,GID_OPTS_CANCEL,
1686 GA_Text,gadlab[GID_OPTS_CANCEL],
1687 GA_RelVerify,TRUE,
1688 ButtonEnd,
1689 EndGroup, // save/use/cancel
1690 EndGroup, // main
1691 EndWindow;
1692
1693 gow->win = (struct Window *)RA_OpenWindow(gow->objects[OID_MAIN]);
1695 }
1696 ami_utf8_free(homepage_url_lc);
1697}
1698
1699static void ami_gui_opts_use(bool save)
1700{
1701 ULONG data, id = 0;
1702 struct TextAttr *tattr;
1703 char *dot;
1704 bool rescan_fonts = false;
1705 bool old_tab_always_show;
1706
1708
1709 GetAttr(STRINGA_TextVal,gow->objects[GID_OPTS_HOMEPAGE],(ULONG *)&data);
1710 nsoption_set_charp(homepage_url, (char *)ami_to_utf8_easy((char *)data));
1711
1712 GetAttr(STRINGA_TextVal,gow->objects[GID_OPTS_CONTENTLANG],(ULONG *)&data);
1713 nsoption_set_charp(accept_language, (char *)strdup((char *)data));
1714
1715 GetAttr(GA_Selected, gow->objects[GID_OPTS_FROMLOCALE],(ULONG *)&data);
1716 if (data) {
1717 nsoption_set_bool(accept_lang_locale, true);
1718 } else {
1719 nsoption_set_bool(accept_lang_locale, false);
1720 }
1721
1722 GetAttr(GA_Selected,gow->objects[GID_OPTS_HIDEADS],(ULONG *)&data);
1723 if (data) {
1724 nsoption_set_bool(block_advertisements, true);
1725 } else {
1726 nsoption_set_bool(block_advertisements, false);
1727 }
1728
1729 GetAttr(INTEGER_Number,gow->objects[GID_OPTS_HISTORY],(ULONG *)&nsoption_int(expire_url));
1730
1731 GetAttr(GA_Selected,gow->objects[GID_OPTS_REFERRAL],(ULONG *)&data);
1732 if (data) {
1733 nsoption_set_bool(send_referer, true);
1734 } else {
1735 nsoption_set_bool(send_referer, false);
1736 }
1737
1738 GetAttr(GA_Selected,gow->objects[GID_OPTS_JAVASCRIPT],(ULONG *)&data);
1739 if (data) {
1740 nsoption_set_bool(enable_javascript, true);
1741 } else {
1742 nsoption_set_bool(enable_javascript, false);
1743 }
1744
1745 ami_gui_menu_set_checked(NULL, M_JS, nsoption_bool(enable_javascript));
1746
1747 GetAttr(GA_Selected,gow->objects[GID_OPTS_DONOTTRACK],(ULONG *)&data);
1748 if (data) {
1749 nsoption_set_bool(do_not_track, true);
1750 } else {
1751 nsoption_set_bool(do_not_track, false);
1752 }
1753
1754 GetAttr(GA_Selected,gow->objects[GID_OPTS_ENABLECSS],(ULONG *)&data);
1755 if (data) {
1756 nsoption_set_bool(author_level_css, true);
1757 } else {
1758 nsoption_set_bool(author_level_css, false);
1759 }
1760
1761 ami_gui_menu_set_checked(NULL, M_CSS, nsoption_bool(author_level_css));
1762
1763 GetAttr(GA_Selected,gow->objects[GID_OPTS_FASTSCROLL],(ULONG *)&data);
1764 if (data) {
1765 nsoption_set_bool(faster_scroll, true);
1766 } else {
1767 nsoption_set_bool(faster_scroll, false);
1768 }
1769
1770 GetAttr(RADIOBUTTON_Selected,gow->objects[GID_OPTS_SCREEN],(ULONG *)&data);
1771 switch(data)
1772 {
1773 case 0:
1774 nsoption_set_charp(pubscreen_name, NULL);
1775 break;
1776
1777 case 1:
1778 nsoption_set_charp(pubscreen_name, (char *)strdup("Workbench"));
1779 break;
1780
1781 case 2:
1782 GetAttr(STRINGA_TextVal,gow->objects[GID_OPTS_SCREENNAME],(ULONG *)&data);
1783 nsoption_set_charp(pubscreen_name, (char *)strdup((char *)data));
1784 break;
1785 }
1786
1787 GetAttr(GETSCREENMODE_DisplayID, gow->objects[GID_OPTS_SCREENMODE], (ULONG *)&id);
1788 if(id)
1789 {
1790 char *modeid = malloc(20);
1791 sprintf(modeid,"0x%lx", id);
1792 nsoption_set_charp(screen_modeid, modeid);
1793 }
1794
1795 GetAttr(GA_Selected,gow->objects[GID_OPTS_WIN_SIMPLE],(ULONG *)&data);
1796 if ((data == TRUE) && (nsoption_bool(window_simple_refresh) == false)) {
1797 nsoption_set_bool(window_simple_refresh, true);
1798 nsoption_set_int(screen_compositing, 0);
1799 } else if ((data == FALSE) && (nsoption_bool(window_simple_refresh) == true)) {
1800 nsoption_set_bool(window_simple_refresh, false);
1801 nsoption_set_int(screen_compositing, -1);
1802 }
1803
1804 GetAttr(GETFILE_Drawer,gow->objects[GID_OPTS_THEME],(ULONG *)&data);
1805 nsoption_set_charp(theme, (char *)strdup((char *)data));
1806
1807 GetAttr(CHOOSER_Selected,gow->objects[GID_OPTS_THEMEPAGE],(ULONG *)&data);
1808 if(data) {
1809 nsoption_set_bool(prefer_dark_mode, true);
1810 } else {
1811 nsoption_set_bool(prefer_dark_mode, false);
1812 }
1813
1814 GetAttr(GA_Selected,gow->objects[GID_OPTS_PTRTRUE],(ULONG *)&data);
1815 if (data) {
1816 nsoption_set_bool(truecolour_mouse_pointers, true);
1817 } else {
1818 nsoption_set_bool(truecolour_mouse_pointers, false);
1819 }
1820
1821 GetAttr(GA_Selected,gow->objects[GID_OPTS_PTROS],(ULONG *)&data);
1822 if (data) {
1823 nsoption_set_bool(os_mouse_pointers, true);
1824 } else {
1825 nsoption_set_bool(os_mouse_pointers, false);
1826 }
1827
1828 GetAttr(CHOOSER_Selected,gow->objects[GID_OPTS_PROXY],(ULONG *)&data);
1829 if(data)
1830 {
1831 nsoption_set_bool(http_proxy, true);
1832 nsoption_set_int(http_proxy_auth, data - 1);
1833 }
1834 else
1835 {
1836 nsoption_set_bool(http_proxy, false);
1837 }
1838
1839 GetAttr(STRINGA_TextVal,gow->objects[GID_OPTS_PROXY_HOST],(ULONG *)&data);
1840 nsoption_set_charp(http_proxy_host, (char *)strdup((char *)data));
1841
1842 GetAttr(INTEGER_Number,gow->objects[GID_OPTS_PROXY_PORT],(ULONG *)&nsoption_int(http_proxy_port));
1843
1844 GetAttr(STRINGA_TextVal,gow->objects[GID_OPTS_PROXY_USER],(ULONG *)&data);
1845 nsoption_set_charp(http_proxy_auth_user, (char *)strdup((char *)data));
1846
1847 GetAttr(STRINGA_TextVal,gow->objects[GID_OPTS_PROXY_PASS],(ULONG *)&data);
1848 nsoption_set_charp(http_proxy_auth_pass, (char *)strdup((char *)data));
1849
1850 GetAttr(STRINGA_TextVal,gow->objects[GID_OPTS_PROXY_BYPASS],(ULONG *)&data);
1851 nsoption_set_charp(http_proxy_noproxy, (char *)strdup((char *)data));
1852
1853 GetAttr(INTEGER_Number,gow->objects[GID_OPTS_FETCHMAX],(ULONG *)&nsoption_int(max_fetchers));
1854 GetAttr(INTEGER_Number,gow->objects[GID_OPTS_FETCHHOST],(ULONG *)&nsoption_int(max_fetchers_per_host));
1855 GetAttr(INTEGER_Number,gow->objects[GID_OPTS_FETCHCACHE],(ULONG *)&nsoption_int(max_cached_fetch_handles));
1856
1857 GetAttr(CHOOSER_Selected,gow->objects[GID_OPTS_NATIVEBM],(ULONG *)&nsoption_int(cache_bitmaps));
1858
1859 GetAttr(GA_Selected,gow->objects[GID_OPTS_SCALEQ],(ULONG *)&data);
1860 if (data) {
1861 nsoption_set_bool(scale_quality, true);
1862 } else {
1863 nsoption_set_bool(scale_quality, false);
1864 }
1865
1866 GetAttr(CHOOSER_Selected,gow->objects[GID_OPTS_DITHERQ],(ULONG *)&nsoption_int(dither_quality));
1867
1868 GetAttr(GA_Selected,gow->objects[GID_OPTS_ANIMDISABLE],(ULONG *)&data);
1869 if(data) {
1870 nsoption_set_bool(animate_images, false);
1871 } else {
1872 nsoption_set_bool(animate_images, true);
1873 }
1874
1875 GetAttr(INTEGER_Number,gow->objects[GID_OPTS_DPI_Y],(ULONG *)&nsoption_int(screen_ydpi));
1876 ami_font_setdevicedpi(id); // id set above
1877
1878 GetAttr(GETFONT_TextAttr,gow->objects[GID_OPTS_FONT_SANS],(ULONG *)&data);
1879 tattr = (struct TextAttr *)data;
1880
1881 if((dot = strrchr(tattr->ta_Name,'.'))) *dot = '\0';
1882 nsoption_set_charp(font_sans, (char *)strdup((char *)tattr->ta_Name));
1883
1884 GetAttr(GETFONT_TextAttr,gow->objects[GID_OPTS_FONT_SERIF],(ULONG *)&data);
1885 tattr = (struct TextAttr *)data;
1886
1887 if((dot = strrchr(tattr->ta_Name,'.'))) *dot = '\0';
1888 nsoption_set_charp(font_serif, (char *)strdup((char *)tattr->ta_Name));
1889
1890 GetAttr(GETFONT_TextAttr,gow->objects[GID_OPTS_FONT_MONO],(ULONG *)&data);
1891 tattr = (struct TextAttr *)data;
1892
1893 if((dot = strrchr(tattr->ta_Name,'.'))) *dot = '\0';
1894 nsoption_set_charp(font_mono, (char *)strdup((char *)tattr->ta_Name));
1895
1896 GetAttr(GETFONT_TextAttr,gow->objects[GID_OPTS_FONT_CURSIVE],(ULONG *)&data);
1897 tattr = (struct TextAttr *)data;
1898
1899 if((dot = strrchr(tattr->ta_Name,'.'))) *dot = '\0';
1900 nsoption_set_charp(font_cursive, (char *)strdup((char *)tattr->ta_Name));
1901
1902 GetAttr(GETFONT_TextAttr,gow->objects[GID_OPTS_FONT_FANTASY],(ULONG *)&data);
1903 tattr = (struct TextAttr *)data;
1904
1905 if((dot = strrchr(tattr->ta_Name,'.'))) *dot = '\0';
1906 nsoption_set_charp(font_fantasy, (char *)strdup((char *)tattr->ta_Name));
1907
1908 GetAttr(CHOOSER_Selected,gow->objects[GID_OPTS_FONT_DEFAULT],(ULONG *)&nsoption_int(font_default));
1909 nsoption_set_int(font_default, nsoption_int(font_default) + PLOT_FONT_FAMILY_SANS_SERIF);
1910
1911 GetAttr(INTEGER_Number,gow->objects[GID_OPTS_FONT_SIZE],(ULONG *)&nsoption_int(font_size));
1912 nsoption_set_int(font_size, nsoption_int(font_size) * 10);
1913
1914 GetAttr(INTEGER_Number,gow->objects[GID_OPTS_FONT_MINSIZE],(ULONG *)&nsoption_int(font_min_size));
1915 nsoption_set_int(font_min_size, nsoption_int(font_min_size) * 10);
1916
1917 GetAttr(GA_Selected, gow->objects[GID_OPTS_FONT_ANTIALIASING], (ULONG *)&data);
1918 if(data) {
1919 nsoption_set_bool(font_antialiasing, true);
1920 } else {
1921 nsoption_set_bool(font_antialiasing, false);
1922 }
1923
1924#ifndef __amigaos4__
1925 GetAttr(GA_Selected, gow->objects[GID_OPTS_FONT_BITMAP], (ULONG *)&data);
1926 ami_font_fini();
1927
1928 if((nsoption_bool(bitmap_fonts) == true) && (data == false)) {
1929 nsoption_set_charp(font_sans, (char *)strdup("CGTriumvirate"));
1930 nsoption_set_charp(font_serif, (char *)strdup("CGTimes"));
1931 nsoption_set_charp(font_mono, (char *)strdup("LetterGothic"));
1932 nsoption_set_charp(font_cursive, (char *)strdup("CGTriumvirate"));
1933 nsoption_set_charp(font_fantasy, (char *)strdup("CGTimes"));
1934 }
1935
1936 if(data) {
1937 nsoption_set_bool(bitmap_fonts, true);
1938 } else {
1939 nsoption_set_bool(bitmap_fonts, false);
1940 }
1941 ami_font_init();
1942#endif
1943
1944 GetAttr(INTEGER_Number,gow->objects[GID_OPTS_CACHE_MEM],(ULONG *)&nsoption_int(memory_cache_size));
1945 nsoption_set_int(memory_cache_size, nsoption_int(memory_cache_size) * 1048576);
1946
1947 GetAttr(INTEGER_Number,gow->objects[GID_OPTS_CACHE_DISC],(ULONG *)&nsoption_uint(disc_cache_size));
1948 nsoption_set_uint(disc_cache_size, nsoption_uint(disc_cache_size) * 1048576);
1949
1950 GetAttr(GA_Selected,gow->objects[GID_OPTS_OVERWRITE],(ULONG *)&data);
1951 if (data) {
1952 nsoption_set_bool(ask_overwrite, true);
1953 } else {
1954 nsoption_set_bool(ask_overwrite, false);
1955 }
1956
1957 GetAttr(GA_Selected,gow->objects[GID_OPTS_NOTIFY],(ULONG *)&data);
1958 if (data) {
1959 nsoption_set_bool(download_notify, true);
1960 } else {
1961 nsoption_set_bool(download_notify, false);
1962 }
1963
1964 GetAttr(GETFILE_Drawer,gow->objects[GID_OPTS_DLDIR],(ULONG *)&data);
1965 if((nsoption_charp(download_dir) == NULL) ||
1966 (strcmp((char *)data, nsoption_charp(download_dir)) != 0)) {
1967 nsoption_set_charp(download_dir, (char *)strdup((char *)data));
1970 }
1971
1972 GetAttr(GA_Selected,gow->objects[GID_OPTS_TAB_ACTIVE],(ULONG *)&data);
1973 if (data) {
1974 nsoption_set_bool(new_tab_is_active, false);
1975 } else {
1976 nsoption_set_bool(new_tab_is_active, true);
1977 }
1978
1979 GetAttr(GA_Selected,gow->objects[GID_OPTS_TAB_LAST],(ULONG *)&data);
1980 if (data) {
1981 nsoption_set_bool(new_tab_last, true);
1982 } else {
1983 nsoption_set_bool(new_tab_last, false);
1984 }
1985
1986 GetAttr(GA_Selected,gow->objects[GID_OPTS_TAB_2],(ULONG *)&data);
1987 if (data) {
1988 nsoption_set_bool(button_2_tab, true);
1989 } else {
1990 nsoption_set_bool(button_2_tab, false);
1991 }
1992
1993 GetAttr(GA_Selected,gow->objects[GID_OPTS_TAB_CLOSE],(ULONG *)&data);
1994 if (data) {
1995 nsoption_set_bool(tab_close_warn, true);
1996 } else {
1997 nsoption_set_bool(tab_close_warn, false);
1998 }
1999
2000 GetAttr(GA_Selected,gow->objects[GID_OPTS_TAB_ALWAYS],(ULONG *)&data);
2001 old_tab_always_show = nsoption_bool(tab_always_show);
2002
2003 if (data) {
2004 nsoption_set_bool(tab_always_show, true);
2005 } else {
2006 nsoption_set_bool(tab_always_show, false);
2007 }
2008
2009 if(old_tab_always_show != nsoption_bool(tab_always_show))
2011
2012 GetAttr(CHOOSER_Selected,gow->objects[GID_OPTS_SEARCH_PROV],(ULONG *)&nsoption_int(search_provider));
2014
2015 GetAttr(GA_Selected,gow->objects[GID_OPTS_CLIPBOARD],(ULONG *)&data);
2016 if (data) {
2017 nsoption_set_bool(clipboard_write_utf8, true);
2018 } else {
2019 nsoption_set_bool(clipboard_write_utf8, false);
2020 }
2021
2022 GetAttr(GA_Selected,gow->objects[GID_OPTS_SELECTMENU],(ULONG *)&data);
2023 if (data) {
2024 nsoption_set_bool(core_select_menu, false);
2025 } else {
2026 nsoption_set_bool(core_select_menu, true);
2027 }
2028
2029 GetAttr(GA_Selected,gow->objects[GID_OPTS_STARTUP_NO_WIN],(ULONG *)&data);
2030 if (data) {
2031 nsoption_set_bool(startup_no_window, true);
2032 } else {
2033 nsoption_set_bool(startup_no_window, false);
2034 }
2035
2036 GetAttr(GA_Selected,gow->objects[GID_OPTS_CLOSE_NO_QUIT],(ULONG *)&data);
2037 if (data) {
2038 nsoption_set_bool(close_no_quit, true);
2039 } else {
2040 nsoption_set_bool(close_no_quit, false);
2041 }
2042
2043 GetAttr(GA_Selected,gow->objects[GID_OPTS_DOCKY],(ULONG *)&data);
2044 if (data) {
2045 nsoption_set_bool(hide_docky_icon, false);
2046 } else {
2047 nsoption_set_bool(hide_docky_icon, true);
2048 }
2049
2050#ifdef WITH_PDF_EXPORT
2051 GetAttr(INTEGER_Number,gow->objects[GID_OPTS_MARGIN_TOP],(ULONG *)&nsoption_int(margin_top));
2052
2053 GetAttr(INTEGER_Number,gow->objects[GID_OPTS_MARGIN_LEFT],(ULONG *)&nsoption_int(margin_left));
2054
2055 GetAttr(INTEGER_Number,gow->objects[GID_OPTS_MARGIN_BOTTOM],(ULONG *)&nsoption_int(margin_bottom));
2056
2057 GetAttr(INTEGER_Number,gow->objects[GID_OPTS_MARGIN_RIGHT],(ULONG *)&nsoption_int(margin_right));
2058
2059 GetAttr(INTEGER_Number,gow->objects[GID_OPTS_EXPORT_SCALE],(ULONG *)&nsoption_int(export_scale));
2060
2061 GetAttr(GA_Selected,gow->objects[GID_OPTS_EXPORT_NOIMAGES],(ULONG *)&data);
2062 if (data) {
2063 nsoption_set_bool(suppress_images, true);
2064 } else {
2065 nsoption_set_bool(suppress_images, false);
2066 }
2067
2068 GetAttr(GA_Selected,gow->objects[GID_OPTS_EXPORT_NOBKG],(ULONG *)&data);
2069 if (data) {
2070 nsoption_set_bool(remove_backgrounds, true);
2071 } else {
2072 nsoption_set_bool(remove_backgrounds, false);
2073 }
2074
2075 GetAttr(GA_Selected,gow->objects[GID_OPTS_EXPORT_LOOSEN],(ULONG *)&data);
2076 if (data) {
2077 nsoption_set_bool(enable_loosening, true);
2078 } else {
2079 nsoption_set_bool(enable_loosening, false);
2080 }
2081
2082 GetAttr(GA_Selected,gow->objects[GID_OPTS_EXPORT_COMPRESS],(ULONG *)&data);
2083 if (data) {
2084 nsoption_set_bool(enable_PDF_compression, true);
2085 } else {
2086 nsoption_set_bool(enable_PDF_compression, false);
2087 }
2088
2089 GetAttr(GA_Selected,gow->objects[GID_OPTS_EXPORT_PASSWORD],(ULONG *)&data);
2090 if (data) {
2091 nsoption_set_bool(enable_PDF_password, true);
2092 } else {
2093 nsoption_set_bool(enable_PDF_password, false);
2094 }
2095#endif
2096
2097 if(rescan_fonts == true) {
2099 ami_font_initscanner(true, false);
2100 }
2101
2102 if(save == true) {
2104 ami_font_savescanner(); /* just in case it has changed and been used only */
2105 }
2106
2109}
2110
2111static void ami_gui_opts_close(void *w)
2112{
2113 DisposeObject(gow->objects[OID_MAIN]);
2116 gow = NULL;
2117}
2118
2119static BOOL ami_gui_opts_event(void *w)
2120{
2121 /* return TRUE if window destroyed */
2122 ULONG result,data = 0;
2123 uint16 code;
2124 STRPTR text;
2125
2126 while((result = RA_HandleInput(gow->objects[OID_MAIN],&code)) != WMHI_LASTMSG)
2127 {
2128 switch(result & WMHI_CLASSMASK) // class
2129 {
2130 case WMHI_CLOSEWINDOW:
2132 return TRUE;
2133 break;
2134
2135 case WMHI_GADGETHELP:
2136 if((result & WMHI_GADGETMASK) == 0) {
2137 /* Pointer not over our window */
2139 } else {
2140 /* TODO: Make this sensitive to the tab the user is currently on */
2142 }
2143 break;
2144
2145 case WMHI_GADGETUP:
2146 switch(result & WMHI_GADGETMASK)
2147 {
2148 case GID_OPTS_SAVE:
2149 ami_gui_opts_use(true);
2151 return TRUE;
2152 break;
2153
2154 case GID_OPTS_USE:
2155 ami_gui_opts_use(false);
2156 // fall through
2157
2158 case GID_OPTS_CANCEL:
2160 return TRUE;
2161 break;
2162
2165 gow->win,NULL,STRINGA_TextVal,NETSURF_HOMEPAGE,
2166 TAG_DONE);
2167 break;
2168
2171 gow->win, NULL, STRINGA_TextVal,
2173 break;
2174
2177 gow->win, NULL, STRINGA_TextVal,
2178 "about:blank", TAG_DONE);
2179 break;
2180
2183 gow->win, NULL, GA_Disabled, code, TAG_DONE);
2184
2185 if(code && (text = ami_locale_langs(NULL)))
2186 {
2188 gow->win, NULL, STRINGA_TextVal, text, TAG_DONE);
2189 FreeVec(text);
2190 }
2191 break;
2192
2193 case GID_OPTS_SCREEN:
2194 GetAttr(RADIOBUTTON_Selected,gow->objects[GID_OPTS_SCREEN],(ULONG *)&data);
2195 switch(data)
2196 {
2197 case 0:
2199 gow->win,NULL, GA_Disabled, FALSE, TAG_DONE);
2201 gow->win,NULL, GA_Disabled, TRUE, TAG_DONE);
2202 break;
2203
2204 case 1:
2206 gow->win,NULL, GA_Disabled, TRUE, TAG_DONE);
2208 gow->win,NULL, GA_Disabled, TRUE, TAG_DONE);
2209 break;
2210
2211 case 2:
2213 gow->win,NULL, GA_Disabled, TRUE, TAG_DONE);
2215 gow->win,NULL, GA_Disabled, FALSE, TAG_DONE);
2216 break;
2217 }
2218 break;
2219
2222 GSM_REQUEST,gow->win);
2223 break;
2224
2225 case GID_OPTS_THEME:
2227 GFILE_REQUEST,gow->win);
2228 break;
2229
2230 case GID_OPTS_PROXY:
2231 GetAttr(CHOOSER_Selected,gow->objects[GID_OPTS_PROXY],(ULONG *)&data);
2232 switch(data)
2233 {
2234 case 0:
2236 gow->win,NULL, GA_Disabled, TRUE, TAG_DONE);
2238 gow->win,NULL, GA_Disabled, TRUE, TAG_DONE);
2239
2241 gow->win,NULL, GA_Disabled, TRUE, TAG_DONE);
2243 gow->win,NULL, GA_Disabled, TRUE, TAG_DONE);
2245 gow->win,NULL, GA_Disabled, TRUE, TAG_DONE);
2246 break;
2247 case 1:
2249 gow->win,NULL, GA_Disabled, FALSE, TAG_DONE);
2251 gow->win,NULL, GA_Disabled, FALSE, TAG_DONE);
2252
2254 gow->win,NULL, GA_Disabled, TRUE, TAG_DONE);
2256 gow->win,NULL, GA_Disabled, TRUE, TAG_DONE);
2258 gow->win,NULL, GA_Disabled, FALSE, TAG_DONE);
2259 break;
2260
2261 case 2:
2262 case 3:
2264 gow->win,NULL, GA_Disabled, FALSE, TAG_DONE);
2266 gow->win,NULL, GA_Disabled, FALSE, TAG_DONE);
2267
2269 gow->win,NULL, GA_Disabled, FALSE, TAG_DONE);
2271 gow->win,NULL, GA_Disabled, FALSE, TAG_DONE);
2273 gow->win,NULL, GA_Disabled, FALSE, TAG_DONE);
2274 break;
2275 }
2276 break;
2277
2279 break;
2280
2281 case GID_OPTS_FONT_SANS:
2283 GFONT_REQUEST,gow->win);
2284 break;
2285
2288 GFONT_REQUEST,gow->win);
2289 break;
2290
2291 case GID_OPTS_FONT_MONO:
2293 GFONT_REQUEST,gow->win);
2294 break;
2295
2298 GFONT_REQUEST,gow->win);
2299 break;
2300
2303 GFONT_REQUEST,gow->win);
2304 break;
2305#ifndef __amigaos4__
2308 gow->win, NULL, GA_Disabled, code, TAG_DONE);
2309 break;
2310#endif
2311 case GID_OPTS_DLDIR:
2313 GFILE_REQUEST,gow->win);
2314 break;
2315 }
2316 break;
2317 }
2318 }
2319 return FALSE;
2320}
2321
2322struct List *ami_gui_opts_websearch(void)
2323{
2324 struct List *list;
2325 struct Node *node;
2326 const char *name;
2327 int iter;
2328
2329 list = malloc(sizeof(struct List));
2330 NewList(list);
2331
2332 if (nsoption_charp(search_engines_file) == NULL) return list;
2333
2334 for (iter = search_web_iterate_providers(0, &name);
2335 iter != -1;
2336 iter = search_web_iterate_providers(iter, &name)) {
2337 node = AllocChooserNode(CNA_Text, name, TAG_DONE);
2338 AddTail(list, node);
2339 }
2340
2341 return list;
2342}
2343
2344void ami_gui_opts_websearch_free(struct List *websearchlist)
2345{
2346 struct Node *node;
2347 struct Node *nnode;
2348
2349 if(websearchlist == NULL) return;
2350 if(IsListEmpty(websearchlist)) return;
2351 node = GetHead(websearchlist);
2352
2353 do {
2354 nnode = GetSucc(node);
2355 Remove(node);
2356 FreeChooserNode(node);
2357 } while((node = nnode));
2358
2359 free(websearchlist);
2360}
2361
struct Screen * ami_gui_get_screen(void)
Get a pointer to the screen NetSurf is running on.
Definition: gui.c:403
nserror ami_gui_win_list_add(void *win, int type, const struct ami_win_event_table *table)
Add a window to the NetSurf window list (to enable event processing)
Definition: gui.c:4668
struct gui_window * ami_gui_get_active_gw(void)
Get a pointer to the gui_window which NetSurf considers to be the current/active one.
Definition: gui.c:398
STRPTR ami_gui_get_screen_title(void)
Get the string for NetSurf's screen titlebar.
Definition: gui.c:974
STRPTR ami_locale_langs(int *codeset)
Definition: gui.c:702
void ami_gui_win_list_remove(void *win)
Remove a window from the NetSurf window list.
Definition: gui.c:4682
struct browser_window * ami_gui_get_browser_window(struct gui_window *gw)
Get browser window from gui_window.
Definition: gui.c:419
void ami_gui_tabs_toggle_all(void)
Definition: gui.c:4292
struct MsgPort * ami_gui_get_shared_msgport(void)
Get shared message port.
void ami_help_open(ULONG node, struct Screen *screen)
Definition: help.c:50
@ AMI_HELP_PREFS
Definition: help.h:27
@ AMI_HELP_MAIN
Definition: help.h:25
bool ami_plot_screen_is_palettemapped(void)
Definition: plotters.c:610
void ami_update_pointer(struct Window *win, gui_pointer_shape shape)
Definition: theme.c:221
STATIC char result[100]
Definition: arexx.c:77
Browser window creation and manipulation interface.
struct nsurl * browser_window_access_url(const struct browser_window *bw)
Access a browser window's URL.
ssize_t search_web_iterate_providers(ssize_t from, const char **name)
Iterate the search providers, returning their names.
Definition: searchweb.c:502
nserror search_web_select_provider(int selection)
Change the currently selected web search provider.
Definition: searchweb.c:397
const char * type
Definition: filetype.cpp:44
void ami_font_finiscanner(void)
Definition: font_bullet.c:912
void ami_font_initscanner(bool force, bool save)
Definition: font_bullet.c:907
void ami_font_savescanner(void)
Definition: font_bullet.c:917
void ami_file_req_free(void)
Definition: file.c:300
void ami_file_req_init(void)
Definition: file.c:281
void ami_font_init(void)
Definition: font.c:113
void ami_font_setdevicedpi(int id)
Definition: font.c:48
void ami_font_fini(void)
Definition: font.c:122
nserror ami_nsoption_write(void)
Definition: nsoption.c:34
@ AMINS_GUIOPTSWINDOW
Definition: object.h:34
void ami_utf8_free(char *ptr)
Definition: utf8.c:104
char * ami_to_utf8_easy(const char *string)
Definition: utf8.c:119
char * ami_utf8_easy(const char *string)
Definition: utf8.c:109
static char * download_dir
Current download directory.
Definition: download.c:144
void ami_gui_menu_set_check_toggled(void)
Sets that an item linked to a toggle menu item has been changed.
Definition: gui_menu.c:808
void ami_gui_menu_set_checked(struct Menu *menu, int item, bool check)
Set checked state of a menu item almost generic, but not quite.
Definition: gui_menu.c:644
@ M_JS
Definition: gui_menu.h:80
@ M_CSS
Definition: gui_menu.h:81
@ GID_OPTS_HOMEPAGE
Definition: gui_options.c:88
@ GID_OPTS_FROMLOCALE
Definition: gui_options.c:94
@ GID_OPTS_DOCKY
Definition: gui_options.c:150
@ GID_OPTS_FONT_CURSIVE
Definition: gui_options.c:128
@ GID_OPTS_CONTENTLANG
Definition: gui_options.c:93
@ GID_OPTS_FONT_FANTASY
Definition: gui_options.c:129
@ GID_OPTS_PROXY_BYPASS
Definition: gui_options.c:116
@ GID_OPTS_MARGIN_BOTTOM
Definition: gui_options.c:153
@ GID_OPTS_SCREENNAME
Definition: gui_options.c:103
@ GID_OPTS_HISTORY
Definition: gui_options.c:95
@ GID_OPTS_NOTIFY
Definition: gui_options.c:138
@ GID_OPTS_SELECTMENU
Definition: gui_options.c:147
@ GID_OPTS_TAB_ALWAYS
Definition: gui_options.c:143
@ GID_OPTS_OVERWRITE
Definition: gui_options.c:137
@ GID_OPTS_SCREENMODE
Definition: gui_options.c:102
@ GID_OPTS_TAB_CLOSE
Definition: gui_options.c:144
@ GID_OPTS_MARGIN_TOP
Definition: gui_options.c:151
@ GID_OPTS_FONT_MINSIZE
Definition: gui_options.c:132
@ GID_OPTS_PROXY
Definition: gui_options.c:111
@ GID_OPTS_STARTUP_NO_WIN
Definition: gui_options.c:148
@ GID_OPTS_FONT_SANS
Definition: gui_options.c:125
@ OID_MAIN
Definition: gui_options.c:86
@ GID_OPTS_PTROS
Definition: gui_options.c:110
@ GID_OPTS_PROXY_PORT
Definition: gui_options.c:113
@ GID_OPTS_FETCHHOST
Definition: gui_options.c:118
@ GID_OPTS_FETCHCACHE
Definition: gui_options.c:119
@ GID_OPTS_THEMEPAGE
Definition: gui_options.c:106
@ GID_OPTS_FONT_ANTIALIASING
Definition: gui_options.c:133
@ GID_OPTS_LIGHT
Definition: gui_options.c:108
@ GID_OPTS_HOMEPAGE_CURRENT
Definition: gui_options.c:90
@ GID_OPTS_FETCHMAX
Definition: gui_options.c:117
@ GID_OPTS_DLDIR
Definition: gui_options.c:139
@ GID_OPTS_NATIVEBM
Definition: gui_options.c:120
@ GID_OPTS_SEARCH_PROV
Definition: gui_options.c:145
@ GID_OPTS_EXPORT_LOOSEN
Definition: gui_options.c:158
@ GID_OPTS_DPI_Y
Definition: gui_options.c:124
@ GID_OPTS_MARGIN_LEFT
Definition: gui_options.c:152
@ GID_OPTS_REFERRAL
Definition: gui_options.c:98
@ GID_OPTS_HIDEADS
Definition: gui_options.c:92
@ GID_OPTS_HOMEPAGE_DEFAULT
Definition: gui_options.c:89
@ GID_OPTS_EXPORT_PASSWORD
Definition: gui_options.c:160
@ GID_OPTS_FONT_DEFAULT
Definition: gui_options.c:130
@ GID_OPTS_TAB_2
Definition: gui_options.c:141
@ GID_OPTS_DITHERQ
Definition: gui_options.c:122
@ GID_OPTS_SCALEQ
Definition: gui_options.c:121
@ GID_OPTS_JAVASCRIPT
Definition: gui_options.c:96
@ GID_OPTS_EXPORT_NOIMAGES
Definition: gui_options.c:156
@ GID_OPTS_SAVE
Definition: gui_options.c:161
@ GID_OPTS_ENABLECSS
Definition: gui_options.c:97
@ GID_OPTS_FONT_SERIF
Definition: gui_options.c:126
@ GID_OPTS_TAB_ACTIVE
Definition: gui_options.c:140
@ GID_OPTS_CLIPBOARD
Definition: gui_options.c:146
@ GID_OPTS_ANIMDISABLE
Definition: gui_options.c:123
@ GID_OPTS_EXPORT_SCALE
Definition: gui_options.c:155
@ GID_OPTS_EXPORT_COMPRESS
Definition: gui_options.c:159
@ GID_OPTS_DARK
Definition: gui_options.c:107
@ GID_OPTS_EXPORT_NOBKG
Definition: gui_options.c:157
@ GID_OPTS_TAB_LAST
Definition: gui_options.c:142
@ GID_OPTS_FONT_BITMAP
Definition: gui_options.c:134
@ GID_OPTS_SCREEN
Definition: gui_options.c:101
@ GID_OPTS_PROXY_HOST
Definition: gui_options.c:112
@ GID_OPTS_CACHE_MEM
Definition: gui_options.c:135
@ GID_OPTS_USE
Definition: gui_options.c:162
@ GID_OPTS_CANCEL
Definition: gui_options.c:163
@ GID_OPTS_CACHE_DISC
Definition: gui_options.c:136
@ GID_OPTS_WIN_SIMPLE
Definition: gui_options.c:104
@ GID_OPTS_DONOTTRACK
Definition: gui_options.c:99
@ GID_OPTS_PTRTRUE
Definition: gui_options.c:109
@ GID_OPTS_FASTSCROLL
Definition: gui_options.c:100
@ GID_OPTS_MAIN
Definition: gui_options.c:87
@ GID_OPTS_THEME
Definition: gui_options.c:105
@ GID_OPTS_CLOSE_NO_QUIT
Definition: gui_options.c:149
@ GID_OPTS_FONT_SIZE
Definition: gui_options.c:131
@ GID_OPTS_PROXY_PASS
Definition: gui_options.c:115
@ GID_OPTS_HOMEPAGE_BLANK
Definition: gui_options.c:91
@ GID_OPTS_PROXY_USER
Definition: gui_options.c:114
@ GID_OPTS_FONT_MONO
Definition: gui_options.c:127
@ GID_OPTS_MARGIN_RIGHT
Definition: gui_options.c:154
@ GID_OPTS_LAST
Definition: gui_options.c:164
static CONST_STRPTR ditheropts[OPTS_MAX_DITHER]
Definition: gui_options.c:258
@ GRP_OPTS_IMAGES
Definition: gui_options.c:182
@ GRP_OPTS_SCRIPTING
Definition: gui_options.c:173
@ GRP_OPTS_SCALING
Definition: gui_options.c:195
@ GRP_OPTS_FETCHING
Definition: gui_options.c:181
@ GRP_OPTS_LAST
Definition: gui_options.c:198
@ GRP_OPTS_SEARCH
Definition: gui_options.c:191
@ GRP_OPTS_TABS
Definition: gui_options.c:190
@ GRP_OPTS_MARGINS
Definition: gui_options.c:194
@ GRP_OPTS_MEMCACHE
Definition: gui_options.c:187
@ GRP_OPTS_THEME
Definition: gui_options.c:178
@ GRP_OPTS_DPI
Definition: gui_options.c:184
@ GRP_OPTS_APPEARANCE
Definition: gui_options.c:196
@ GRP_OPTS_BEHAVIOUR
Definition: gui_options.c:193
@ GRP_OPTS_PROXY
Definition: gui_options.c:180
@ GRP_OPTS_WINDOW
Definition: gui_options.c:177
@ GRP_OPTS_CLIPBOARD
Definition: gui_options.c:192
@ GRP_OPTS_ADVANCED
Definition: gui_options.c:197
@ GRP_OPTS_MOUSE
Definition: gui_options.c:179
@ GRP_OPTS_CONTENTBLOCKING
Definition: gui_options.c:170
@ GRP_OPTS_SCREEN
Definition: gui_options.c:176
@ GRP_OPTS_DISCCACHE
Definition: gui_options.c:188
@ GRP_OPTS_PRIVACY
Definition: gui_options.c:174
@ GRP_OPTS_CONTENTLANGUAGE
Definition: gui_options.c:171
@ GRP_OPTS_HISTORY
Definition: gui_options.c:172
@ GRP_OPTS_FONTFACES
Definition: gui_options.c:185
@ GRP_OPTS_DOWNLOADS
Definition: gui_options.c:189
@ GRP_OPTS_ANIMS
Definition: gui_options.c:183
@ GRP_OPTS_FONTSIZE
Definition: gui_options.c:186
@ GRP_OPTS_HOMEPAGE
Definition: gui_options.c:169
@ GRP_OPTS_MISC
Definition: gui_options.c:175
#define OPTS_MAX_DITHER
Definition: gui_options.c:220
#define OPTS_LAST
Definition: gui_options.c:214
static CONST_STRPTR proxyopts[OPTS_MAX_PROXY]
Definition: gui_options.c:256
static void ami_gui_opts_array_to_list(struct List *list, const char *array[], int type)
Definition: gui_options.c:264
static CONST_STRPTR tabs[OPTS_MAX_TABS]
Definition: gui_options.c:253
static void ami_gui_opts_close(void *w)
Definition: gui_options.c:2111
#define OPTS_MAX_THEMEPAGE
Definition: gui_options.c:217
static STRPTR screenopts[OPTS_MAX_SCREEN]
Definition: gui_options.c:254
static struct ami_gui_opts_window * gow
Definition: gui_options.c:251
static void ami_gui_opts_free(struct ami_gui_opts_window *gow)
Definition: gui_options.c:493
#define OPTS_MAX_TABS
Definition: gui_options.c:215
void ami_gui_opts_websearch_free(struct List *websearchlist)
Definition: gui_options.c:2344
struct List * ami_gui_opts_websearch(void)
Definition: gui_options.c:2322
static void ami_gui_opts_use(bool save)
Definition: gui_options.c:1699
#define OPTS_MAX_SCREEN
Definition: gui_options.c:216
static BOOL ami_gui_opts_event(void *w)
Definition: gui_options.c:2119
static void ami_gui_opts_setup(struct ami_gui_opts_window *gow)
Definition: gui_options.c:321
static CONST_STRPTR nativebmopts[OPTS_MAX_NATIVEBM]
Definition: gui_options.c:257
@ NSA_LIST_CLICKTAB
Definition: gui_options.c:223
@ NSA_LIST_CHOOSER
Definition: gui_options.c:224
@ NSA_LIST_RADIO
Definition: gui_options.c:225
static CONST_STRPTR pagethemeopts[OPTS_MAX_THEMEPAGE]
Definition: gui_options.c:255
@ LAB_OPTS_WINTITLE
Definition: gui_options.c:203
@ LAB_OPTS_MM
Definition: gui_options.c:209
@ LAB_OPTS_DAYS
Definition: gui_options.c:205
@ LAB_OPTS_SECS
Definition: gui_options.c:206
@ LAB_OPTS_RESTART
Definition: gui_options.c:204
@ LAB_OPTS_DPI
Definition: gui_options.c:210
@ LAB_OPTS_LAST
Definition: gui_options.c:211
@ LAB_OPTS_PT
Definition: gui_options.c:207
@ LAB_OPTS_MB
Definition: gui_options.c:208
static const struct ami_win_event_table ami_guiopts_table
Definition: gui_options.c:246
static CONST_STRPTR gadlab[OPTS_LAST]
Definition: gui_options.c:260
static void ami_gui_opts_free_list(struct List *list, int type)
Definition: gui_options.c:291
static struct List * websearch_list
Definition: gui_options.c:261
#define OPTS_MAX_NATIVEBM
Definition: gui_options.c:219
static CONST_STRPTR fontopts[6]
Definition: gui_options.c:259
void ami_gui_opts_open(void)
Definition: gui_options.c:525
#define OPTS_MAX_PROXY
Definition: gui_options.c:218
@ GUI_POINTER_WAIT
Definition: mouse.h:104
@ GUI_POINTER_DEFAULT
Definition: mouse.h:90
Interface to platform-specific graphical user interface window operations.
#define LayoutHObj
Definition: libs.h:64
#define CheckBoxObj
Definition: libs.h:55
#define IntegerObj
Definition: libs.h:62
#define PageObj
Definition: libs.h:70
#define GetFileObj
Definition: libs.h:59
#define LabelObj
Definition: libs.h:63
#define WindowObj
Definition: libs.h:77
#define GetFontObj
Definition: libs.h:60
#define ChooserObj
Definition: libs.h:56
#define LayoutVObj
Definition: libs.h:65
#define GetScreenModeObj
Definition: libs.h:61
#define ButtonObj
Definition: libs.h:54
#define RadioButtonObj
Definition: libs.h:72
#define StringObj
Definition: libs.h:76
#define ClickTabObj
Definition: libs.h:57
const char * messages_get(const char *key)
Fast lookup of a message by key from the standard Messages hash.
Definition: messages.c:241
Localised message support (interface).
NetSurf URL handling (interface).
const char * nsurl_access(const nsurl *url)
Access a NetSurf URL object as a string.
char * ASPrintf(const char *fmt,...)
Definition: os3support.c:139
struct Node * GetHead(struct List *list)
Definition: os3support.c:364
ULONG RefreshSetGadgetAttrs(struct Gadget *g, struct Window *w, struct Requester *r, Tag tag1,...)
Definition: os3support.c:429
struct Node * GetSucc(struct Node *node)
Definition: os3support.c:381
#define GetFileEnd
Definition: os3support.h:134
#define LIB_IS_AT_LEAST(B, V, R)
Definition: os3support.h:55
#define GetFontEnd
Definition: os3support.h:135
#define IDoMethod
Definition: os3support.h:169
#define GETFONT_OTagOnly
Definition: os3support.h:73
#define GETFONT_ScalableOnly
Definition: os3support.h:74
uint16_t uint16
Definition: os3support.h:182
#define GetScreenModeEnd
Definition: os3support.h:136
@ PLOT_FONT_FAMILY_SANS_SERIF
Definition: plot_style.h:89
core web search facilities interface.
BOOL ami_selectmenu_is_safe()
Opens popupmenu.library to check the version.
Definition: selectmenu.c:194
Interface to utility string handling.
Object * objects[GID_OPTS_LAST]
Definition: gui_options.c:231
struct List proxyoptslist
Definition: gui_options.c:236
struct List nativebmoptslist
Definition: gui_options.c:237
struct List pagethemeoptslist
Definition: gui_options.c:235
struct Window * win
Definition: gui_options.c:230
struct List clicktablist
Definition: gui_options.c:233
struct List ditheroptslist
Definition: gui_options.c:238
struct ami_generic_window w
Definition: gui_options.c:229
struct List fontoptslist
Definition: gui_options.c:239
struct List screenoptslist
Definition: gui_options.c:234
Definition: theme.h:64
Option reading and saving interface.
#define nsoption_charp(OPTION)
Get the value of a string option.
Definition: nsoption.h:297
#define nsoption_int(OPTION)
Get the value of an integer option.
Definition: nsoption.h:279
#define nsoption_set_int(OPTION, VALUE)
set an integer option in the default table
Definition: nsoption.h:314
#define nsoption_set_bool(OPTION, VALUE)
set a boolean option in the default table
Definition: nsoption.h:310
#define nsoption_set_charp(OPTION, VALUE)
set string option in default table
Definition: nsoption.h:338
#define nsoption_uint(OPTION)
Get the value of an unsigned integer option.
Definition: nsoption.h:288
@ OPTION_HTTP_PROXY_AUTH_NONE
Definition: nsoption.h:86
@ OPTION_HTTP_PROXY_AUTH_NTLM
Definition: nsoption.h:88
@ OPTION_HTTP_PROXY_AUTH_BASIC
Definition: nsoption.h:87
#define nsoption_bool(OPTION)
Get the value of a boolean option.
Definition: nsoption.h:270
#define nsoption_set_uint(OPTION, VALUE)
set an unsigned integer option in the default table
Definition: nsoption.h:317
static nserror text(const struct redraw_context *ctx, const struct plot_font_style *fstyle, int x, int y, const char *text, size_t length)
Text plotting.
Definition: plot.c:978