1 /* Copyright 2007-2012 Fredrik Wikstrom. All rights reserved.
3 ** Redistribution and use in source and binary forms, with or without
4 ** modification, are permitted provided that the following conditions
7 ** 1. Redistributions of source code must retain the above copyright
8 ** notice, this list of conditions and the following disclaimer.
10 ** 2. Redistributions in binary form must reproduce the above copyright
11 ** notice, this list of conditions and the following disclaimer in the
12 ** documentation and/or other materials provided with the distribution.
14 ** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS `AS IS'
15 ** AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
16 ** IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
17 ** ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
18 ** LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
19 ** CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
20 ** SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
21 ** INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
22 ** CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
23 ** ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
24 ** POSSIBILITY OF SUCH DAMAGE.
27 #include "diskimagegui.h"
28 #include <proto/intuition.h>
30 static void GetWindowSize (Object
*window
, LONG
*w
, LONG
*h
) {
31 struct Window
*winptr
= NULL
;
32 GetAttr(WINDOW_Window
, window
, (Tag
*)&winptr
);
39 void RestoreWindowSize (Object
*window
, CONST_STRPTR name
) {
40 PrefsObject
*window_prefs
;
45 window_prefs
= DictGetObjectForKey(ApplicationPrefs
, name
);
46 w
= DictGetIntegerForKey(window_prefs
, "width", 320);
47 h
= DictGetIntegerForKey(window_prefs
, "height", 200);
49 SetAttrs(window
, WA_Width
, w
, WA_Height
, h
, TAG_END
);
53 void SaveWindowSize (Object
*window
, CONST_STRPTR name
, BOOL envarc
) {
59 GetWindowSize(window
, &w
, &h
);
61 PrefsObject
*env_prefs
= ApplicationPrefs
;
62 PrefsObject
*window_prefs
;
63 window_prefs
= AllocPrefsDictionary();
64 if (!DictSetObjectForKey(window_prefs
, AllocPrefsInteger(w
), "width") ||
65 !DictSetObjectForKey(window_prefs
, AllocPrefsInteger(h
), "height"))
67 FreePrefsObject(window_prefs
);
70 if (!DictSetObjectForKey(env_prefs
, window_prefs
, name
)) {
73 WritePrefs(env_prefs
, "ENV:"PROGNAME
".a500.org.xml");
75 PrefsObject
*envarc_prefs
;
76 envarc_prefs
= AllocPrefsDictionary();
80 ReadPrefs(envarc_prefs
, "ENVARC:"PROGNAME
".a500.org.xml");
81 window_prefs
= AllocPrefsDictionary();
82 if (!DictSetObjectForKey(window_prefs
, AllocPrefsInteger(w
), "width") ||
83 !DictSetObjectForKey(window_prefs
, AllocPrefsInteger(h
), "height"))
85 FreePrefsObject(window_prefs
);
88 if (!DictSetObjectForKey(envarc_prefs
, window_prefs
, name
)) {
91 WritePrefs(envarc_prefs
, "ENVARC:"PROGNAME
".a500.org.xml");
92 FreePrefsObject(envarc_prefs
);