summaryrefslogtreecommitdiff
path: root/riscos/configure
diff options
context:
space:
mode:
authorRichard Wilson <rjw@netsurf-browser.org>2006-01-02 02:21:08 +0000
committerRichard Wilson <rjw@netsurf-browser.org>2006-01-02 02:21:08 +0000
commit0f2982b674b17057c59e935bc396b39015e370e8 (patch)
treeef4cea11cb8fa2e8c968ec00a7e892e66df86d73 /riscos/configure
parent62f5ce138a90db72989209fc9bc2561961e8e05e (diff)
downloadnetsurf-0f2982b674b17057c59e935bc396b39015e370e8.tar.gz
netsurf-0f2982b674b17057c59e935bc396b39015e370e8.tar.bz2
[project @ 2006-01-02 02:21:08 by rjw]
Memory configuration tool. svn path=/import/netsurf/; revision=1936
Diffstat (limited to 'riscos/configure')
-rw-r--r--riscos/configure/con_memory.c130
-rw-r--r--riscos/configure/configure.h1
2 files changed, 131 insertions, 0 deletions
diff --git a/riscos/configure/con_memory.c b/riscos/configure/con_memory.c
new file mode 100644
index 000000000..971c06be4
--- /dev/null
+++ b/riscos/configure/con_memory.c
@@ -0,0 +1,130 @@
+/*
+ * This file is part of NetSurf, http://netsurf.sourceforge.net/
+ * Licensed under the GNU General Public License,
+ * http://www.opensource.org/licenses/gpl-license
+ * Copyright 2006 Richard Wilson <info@tinct.net>
+ */
+
+#include "netsurf/desktop/options.h"
+#include "netsurf/riscos/bitmap.h"
+#include "netsurf/riscos/options.h"
+#include "netsurf/riscos/wimp.h"
+#include "netsurf/riscos/wimp_event.h"
+#include "netsurf/riscos/dialog.h"
+#include "netsurf/riscos/configure/configure.h"
+
+
+#define MEMORY_DIRECT_FIELD 3
+#define MEMORY_DIRECT_DEC 4
+#define MEMORY_DIRECT_INC 5
+#define MEMORY_DIRECT_TEXT 6
+#define MEMORY_DIRECT_AUTO 7
+#define MEMORY_COMPRESSED_FIELD 9
+#define MEMORY_COMPRESSED_DEC 10
+#define MEMORY_COMPRESSED_INC 11
+#define MEMORY_COMPRESSED_TEXT 12
+#define MEMORY_COMPRESSED_AUTO 13
+#define MEMORY_DEFAULT_BUTTON 14
+#define MEMORY_CANCEL_BUTTON 15
+#define MEMORY_OK_BUTTON 16
+
+static bool ro_gui_options_memory_click(wimp_pointer *pointer);
+static bool ro_gui_options_memory_ok(wimp_w w);
+static void ro_gui_options_update_shading(wimp_w w);
+
+bool ro_gui_options_memory_initialise(wimp_w w) {
+ /* set the current values */
+ ro_gui_set_icon_decimal(w, MEMORY_DIRECT_FIELD,
+ (bitmap_direct_size * 10) >> 20, 1);
+ ro_gui_set_icon_decimal(w, MEMORY_COMPRESSED_FIELD,
+ (bitmap_compressed_size * 10) >> 20, 1);
+ ro_gui_set_icon_selected_state(w, MEMORY_DIRECT_AUTO,
+ (option_image_memory_direct == -1));
+ ro_gui_set_icon_selected_state(w, MEMORY_COMPRESSED_AUTO,
+ (option_image_memory_compressed == -1));
+ ro_gui_options_update_shading(w);
+
+ /* register icons */
+ ro_gui_wimp_event_register_checkbox(w, MEMORY_DIRECT_AUTO);
+ ro_gui_wimp_event_register_checkbox(w, MEMORY_COMPRESSED_AUTO);
+ ro_gui_wimp_event_register_text_field(w, MEMORY_DIRECT_TEXT);
+ ro_gui_wimp_event_register_text_field(w, MEMORY_COMPRESSED_TEXT);
+ ro_gui_wimp_event_register_numeric_field(w, MEMORY_DIRECT_FIELD,
+ MEMORY_DIRECT_INC, MEMORY_DIRECT_DEC,
+ 10, 5120, 10, 1);
+ ro_gui_wimp_event_register_numeric_field(w, MEMORY_COMPRESSED_FIELD,
+ MEMORY_COMPRESSED_INC, MEMORY_COMPRESSED_DEC,
+ 10, 5120, 10, 1);
+ ro_gui_wimp_event_register_mouse_click(w,
+ ro_gui_options_memory_click);
+ ro_gui_wimp_event_register_cancel(w, MEMORY_CANCEL_BUTTON);
+ ro_gui_wimp_event_register_ok(w, MEMORY_OK_BUTTON,
+ ro_gui_options_memory_ok);
+ ro_gui_wimp_event_set_help_prefix(w, "HelpMemoryConfig");
+ ro_gui_wimp_event_memorise(w);
+ return true;
+
+}
+
+bool ro_gui_options_memory_click(wimp_pointer *pointer) {
+ switch (pointer->i) {
+ case MEMORY_DIRECT_AUTO:
+ ro_gui_options_update_shading(pointer->w);
+ return false;
+ case MEMORY_COMPRESSED_AUTO:
+ ro_gui_options_update_shading(pointer->w);
+ return false;
+ case MEMORY_DEFAULT_BUTTON:
+ ro_gui_set_icon_decimal(pointer->w, MEMORY_DIRECT_FIELD,
+ (bitmap_direct_size * 10) >> 20, 1);
+ ro_gui_set_icon_decimal(pointer->w, MEMORY_COMPRESSED_FIELD,
+ (bitmap_compressed_size * 10) >> 20, 1);
+ ro_gui_set_icon_selected_state(pointer->w,
+ MEMORY_DIRECT_AUTO, true);
+ ro_gui_set_icon_selected_state(pointer->w,
+ MEMORY_COMPRESSED_AUTO, true);
+ ro_gui_options_update_shading(pointer->w);
+ return true;
+ }
+ return false;
+}
+
+void ro_gui_options_update_shading(wimp_w w) {
+ bool shaded;
+
+ shaded = ro_gui_get_icon_selected_state(w, MEMORY_DIRECT_AUTO);
+ ro_gui_set_icon_shaded_state(w, MEMORY_DIRECT_FIELD, shaded);
+ ro_gui_set_icon_shaded_state(w, MEMORY_DIRECT_INC, shaded);
+ ro_gui_set_icon_shaded_state(w, MEMORY_DIRECT_DEC, shaded);
+ ro_gui_set_icon_shaded_state(w, MEMORY_DIRECT_TEXT, shaded);
+ shaded = ro_gui_get_icon_selected_state(w, MEMORY_COMPRESSED_AUTO);
+ ro_gui_set_icon_shaded_state(w, MEMORY_COMPRESSED_FIELD, shaded);
+ ro_gui_set_icon_shaded_state(w, MEMORY_COMPRESSED_INC, shaded);
+ ro_gui_set_icon_shaded_state(w, MEMORY_COMPRESSED_DEC, shaded);
+ ro_gui_set_icon_shaded_state(w, MEMORY_COMPRESSED_TEXT, shaded);
+}
+
+bool ro_gui_options_memory_ok(wimp_w w) {
+ /* set the option values */
+ if (ro_gui_get_icon_selected_state(w, MEMORY_DIRECT_AUTO))
+ option_image_memory_direct = -1;
+ else
+ option_image_memory_direct =
+ (((ro_gui_get_icon_decimal(w, MEMORY_DIRECT_FIELD, 1)
+ << 10) + 1023) / 10);
+ if (ro_gui_get_icon_selected_state(w, MEMORY_COMPRESSED_AUTO))
+ option_image_memory_compressed = -1;
+ else
+ option_image_memory_compressed =
+ (((ro_gui_get_icon_decimal(w, MEMORY_COMPRESSED_FIELD, 1)
+ << 10) + 1023) / 10);
+ /* update the memory usage */
+ bitmap_initialise_memory();
+ ro_gui_set_icon_decimal(w, MEMORY_DIRECT_FIELD,
+ (bitmap_direct_size * 10) >> 20, 1);
+ ro_gui_set_icon_decimal(w, MEMORY_COMPRESSED_FIELD,
+ (bitmap_compressed_size * 10) >> 20, 1);
+ /* save the options */
+ ro_gui_save_options();
+ return true;
+}
diff --git a/riscos/configure/configure.h b/riscos/configure/configure.h
index ff2c463e2..5dd146649 100644
--- a/riscos/configure/configure.h
+++ b/riscos/configure/configure.h
@@ -16,5 +16,6 @@
#include <stdbool.h>
bool ro_gui_options_fonts_initialise(wimp_w w);
+bool ro_gui_options_memory_initialise(wimp_w w);
#endif