ViewVC Help
View File | Revision Log | Show Annotations | Revision Graph | Root Listing
root/cebix/BasiliskII/src/AmigaOS/prefs_editor_amiga.cpp
(Generate patch)

Comparing BasiliskII/src/AmigaOS/prefs_editor_amiga.cpp (file contents):
Revision 1.7 by cebix, 2000-07-06T16:04:24Z vs.
Revision 1.14 by cebix, 2001-01-04T19:50:22Z

# Line 1 | Line 1
1   /*
2   *  prefs_editor_amiga.cpp - Preferences editor, AmigaOS implementation (using gtlayout.library)
3   *
4 < *  Basilisk II (C) 1997-2000 Christian Bauer
4 > *  Basilisk II (C) 1997-1999 Christian Bauer
5   *
6   *  This program is free software; you can redistribute it and/or modify
7   *  it under the terms of the GNU General Public License as published by
# Line 27 | Line 27
27   #include <libraries/asl.h>
28   #include <libraries/gtlayout.h>
29   #include <libraries/Picasso96.h>
30 < #include <cybergraphx/cybergraphics.h>
30 > #include <cybergraphics/cybergraphics.h>
31   #include <graphics/displayinfo.h>
32   #include <devices/ahi.h>
33   #include <proto/exec.h>
# Line 354 | Line 354 | bool PrefsEditor(void)
354                                                  case GAD_BOOTDRIVER:
355                                                          switch (code) {
356                                                                  case 0:
357 <                                                                        PrefsReplaceInt16("bootdriver", 0);
357 >                                                                        PrefsReplaceInt32("bootdriver", 0);
358                                                                          break;
359                                                                  case 1:
360 <                                                                        PrefsReplaceInt16("bootdriver", CDROMRefNum);
360 >                                                                        PrefsReplaceInt32("bootdriver", CDROMRefNum);
361                                                                          break;
362                                                          }
363                                                          break;
# Line 428 | Line 428 | bool PrefsEditor(void)
428                                                  case GAD_SCSI6_DEVICE:
429                                                  case GAD_SERIALA_DEVICE:
430                                                  case GAD_SERIALB_DEVICE:
431 +                                                        if (dev_request) {
432 +                                                                LT_LockWindow(win);
433 +                                                                BOOL result = AslRequestTags(dev_request,
434 +                                                                        ASLFR_Window, (ULONG)win,
435 +                                                                        ASLFR_InitialDrawer, (ULONG) "Devs:",
436 +                                                                        TAG_END);
437 +                                                                LT_UnlockWindow(win);
438 +                                                                if (result) {
439 +                                                                        char *str;
440 +                                                                        GT_GetGadgetAttrs(gad, win, NULL, GTST_String, (ULONG)&str, TAG_END);
441 +                                                                        strncpy(str, dev_request->rf_File, 255);        // Don't copy the directory part. This is usually "DEVS:" and we don't need that.
442 +                                                                        str[255] = 0;
443 +                                                                        LT_SetAttributes(h, gad->GadgetID, GTST_String, (ULONG)str, TAG_END);
444 +                                                                }
445 +                                                        }
446 +                                                        break;
447 +
448                                                  case GAD_ETHER_DEVICE:
449                                                          if (dev_request) {
450                                                                  LT_LockWindow(win);
451 <                                                                BOOL result = AslRequestTags(dev_request, ASLFR_Window, (ULONG)win, TAG_END);
451 >                                                                BOOL result = AslRequestTags(dev_request,
452 >                                                                        ASLFR_Window, (ULONG)win,
453 >                                                                        ASLFR_InitialDrawer, (ULONG) "Devs:Networks",
454 >                                                                        TAG_END);
455                                                                  LT_UnlockWindow(win);
456                                                                  if (result) {
457                                                                          char *str;
# Line 513 | Line 533 | quit:
533          FreeAslRequest(dev_request);
534          FreeAslRequest(file_request);
535  
536 +        // Delete Menus
537 +        LT_DisposeMenu(menu);
538 +
539          // Delete handle
540          LT_DeleteHandle(h);
541  
# Line 551 | Line 574 | static void parse_volumes_prefs(void)
574  
575          bootdriver_num = 0;
576  
577 <        int bootdriver = PrefsFindInt16("bootdriver");
577 >        int bootdriver = PrefsFindInt32("bootdriver");
578          switch (bootdriver) {
579                  case 0:
580                          bootdriver_num = 0;
# Line 873 | Line 896 | do_req:                                                if (req) {
896                  }
897          } while (!done);
898  
876        // Delete handle
877        LT_DeleteHandle(h);
878
899          // Update preferences and list view
900          if (ok_clicked) {
901                  char str[256];
# Line 913 | Line 933 | do_req:                                                if (req) {
933                  LT_SetAttributes(h2, GAD_DISK_LIST, GTLV_Labels, (ULONG)&disk_list, TAG_END);
934                  ghost_volumes_gadgets(h2);
935          }
936 +
937 +        // Delete handle
938 +        LT_DeleteHandle(h);
939   }
940  
941   // Remove volume from list
# Line 1248 | Line 1271 | static void screen_mode_req(struct Windo
1271  
1272          ULONG id;
1273  
1274 <        if (CyberGfxBase) {
1275 <                UWORD model_array[] = {PIXFMT_LUT8, PIXFMT_RGB16, PIXFMT_ARGB32, 0, ~0};
1253 <                id = (ULONG) CModeRequestTags(NULL,
1254 <                        CYBRMREQ_MinDepth, 8,
1255 <                        CYBRMREQ_CModelArray, (ULONG)model_array,
1256 <                        TAG_END
1257 <                );
1258 <        } else {
1274 >        // Try P96 first, because it also provides a (fake) cybergraphics.library
1275 >        if (P96Base) {
1276                  id = p96RequestModeIDTags(
1277                          P96MA_MinDepth, 8,
1278                          P96MA_FormatsAllowed, RGBFF_CLUT | RGBFF_R5G5B5 | RGBFF_A8R8G8B8,
1279                          TAG_END
1280                  );
1281 +        } else {
1282 +                UWORD ModelArray[] = { PIXFMT_LUT8, PIXFMT_RGB15, PIXFMT_ARGB32, 0, ~0 };
1283 +                id = (ULONG) CModeRequestTags(NULL,
1284 +                        CYBRMREQ_MinDepth, 8,
1285 +                        CYBRMREQ_CModelArray, (ULONG) ModelArray,
1286 +                        TAG_END
1287 +                );
1288          }
1289          LT_UnlockWindow(win);
1290  
# Line 1442 | Line 1466 | static void parse_serial_prefs(void)
1466          ether_unit = 0;
1467  
1468          const char *str = PrefsFindString("ether");
1469 <        if (str)
1470 <                sscanf(str, "%[^/]/%ld", ether_dev, &ether_unit);
1469 >        if (str) {
1470 >                const char *FirstSlash = strchr(str, '/');
1471 >                const char *LastSlash = strrchr(str, '/');
1472 >
1473 >                if (FirstSlash && FirstSlash && FirstSlash != LastSlash) {
1474 >                        // Device name contains path, i.e. "Networks/xyzzy.device"
1475 >                        const char *lp = str;
1476 >                        char *dp = ether_dev;
1477 >
1478 >                        while (lp != LastSlash)
1479 >                                *dp++ = *lp++;
1480 >                        *dp = '\0';
1481 >
1482 >                        sscanf(LastSlash, "/%ld", &ether_unit);
1483 >
1484 > //                      printf("dev=<%s> unit=%d\n", ether_dev, ether_unit);
1485 >                } else {
1486 >                        sscanf(str, "%[^/]/%ld", ether_dev, &ether_unit);
1487 >                }
1488 >        }
1489   }
1490  
1491   // Set serial preference item
# Line 1465 | Line 1507 | static void read_serial_settings(void)
1507  
1508          if (strlen(ether_dev)) {
1509                  char str[256];
1510 +
1511                  sprintf(str, "%s/%ld", ether_dev, ether_unit);
1512                  PrefsReplaceString("ether", str);
1513          } else

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines