/[cebix]/Frodo4/Src/Prefs_Be.h
ViewVC logotype

Diff of /Frodo4/Src/Prefs_Be.h

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.2 by cebix, Tue Jul 1 17:51:17 2003 UTC revision 1.3 by cebix, Wed Jul 9 13:51:13 2003 UTC
# Line 34  const uint32 MSG_OK = 'okok'; Line 34  const uint32 MSG_OK = 'okok';
34  const uint32 MSG_CANCEL = 'cncl';  const uint32 MSG_CANCEL = 'cncl';
35  const uint32 MSG_SPRITES_ON = 'spon';  const uint32 MSG_SPRITES_ON = 'spon';
36  const uint32 MSG_SPRITE_COLLISIONS = 'scol';  const uint32 MSG_SPRITE_COLLISIONS = 'scol';
37  const uint32 MSG_JOYSTICK_1_ON = 'joy1';  const uint32 MSG_JOYSTICK_1_PORT = 'joy1';
38  const uint32 MSG_JOYSTICK_2_ON = 'joy2';  const uint32 MSG_JOYSTICK_2_PORT = 'joy2';
39  const uint32 MSG_JOYSTICK_SWAP = 'jswp';  const uint32 MSG_JOYSTICK_SWAP = 'jswp';
40  const uint32 MSG_LIMIT_SPEED = 'lmit';  const uint32 MSG_LIMIT_SPEED = 'lmit';
41  const uint32 MSG_FAST_RESET = 'frst';  const uint32 MSG_FAST_RESET = 'frst';
# Line 87  private: Line 87  private:
87          BPopUpMenu *make_sidtype_popup(BRect frame, char *label_text, uint32 what, BView *parent);          BPopUpMenu *make_sidtype_popup(BRect frame, char *label_text, uint32 what, BView *parent);
88          BPopUpMenu *make_reusize_popup(BRect frame, char *label_text, uint32 what, BView *parent);          BPopUpMenu *make_reusize_popup(BRect frame, char *label_text, uint32 what, BView *parent);
89          BPopUpMenu *make_disptype_popup(BRect frame, char *label_text, uint32 what, BView *parent);          BPopUpMenu *make_disptype_popup(BRect frame, char *label_text, uint32 what, BView *parent);
90            BPopUpMenu *make_joystick_popup(BRect frame, char *label_text, uint32 what, BView *parent);
91          void set_values(void);          void set_values(void);
92          void get_values(void);          void get_values(void);
93          void ghost_controls(void);          void ghost_controls(void);
# Line 107  private: Line 108  private:
108          NumberControl *g_cia_cycles;          NumberControl *g_cia_cycles;
109          NumberControl *g_floppy_cycles;          NumberControl *g_floppy_cycles;
110          NumberControl *g_skip_frames;          NumberControl *g_skip_frames;
         BPopUpMenu *g_drive_type[4];  
111          PathControl *g_drive_path[4];          PathControl *g_drive_path[4];
112            BPopUpMenu *g_drive_type[4];
113          BPopUpMenu *g_sid_type;          BPopUpMenu *g_sid_type;
114          BPopUpMenu *g_reu_size;          BPopUpMenu *g_reu_size;
115          BPopUpMenu *g_display_type;          BPopUpMenu *g_display_type;
116            BPopUpMenu *g_joystick_1_port;
117            BPopUpMenu *g_joystick_2_port;
118          BCheckBox *g_sprites_on;          BCheckBox *g_sprites_on;
119          BCheckBox *g_sprite_collisions;          BCheckBox *g_sprite_collisions;
         BCheckBox *g_joystick_1_on;  
         BCheckBox *g_joystick_2_on;  
120          BCheckBox *g_joystick_swap;          BCheckBox *g_joystick_swap;
121          BCheckBox *g_limit_speed;          BCheckBox *g_limit_speed;
122          BCheckBox *g_fast_reset;          BCheckBox *g_fast_reset;
# Line 259  PrefsWindow::PrefsWindow(Prefs *p, bool Line 260  PrefsWindow::PrefsWindow(Prefs *p, bool
260          bar->AddItem(menu);          bar->AddItem(menu);
261          AddChild(bar);          AddChild(bar);
262          SetKeyMenuBar(bar);          SetKeyMenuBar(bar);
263          int mbar_height = bar->Frame().bottom + 1;          int mbar_height = int(bar->Frame().bottom) + 1;
264    
265          // Resize window to fit menu bar          // Resize window to fit menu bar
266          ResizeBy(0, mbar_height);          ResizeBy(0, mbar_height);
# Line 271  PrefsWindow::PrefsWindow(Prefs *p, bool Line 272  PrefsWindow::PrefsWindow(Prefs *p, bool
272          top->SetViewColor(fill_color);          top->SetViewColor(fill_color);
273    
274          // Checkboxes          // Checkboxes
275          g_sprites_on = make_checkbox(BRect(10, 10, 160, 21), "Sprite display", MSG_SPRITES_ON, top);          g_sprites_on = make_checkbox(BRect(10, 10, 180, 21), "Sprite display", MSG_SPRITES_ON, top);
276          g_sprite_collisions = make_checkbox(BRect(10, 25, 160, 36), "Sprite collisions", MSG_SPRITE_COLLISIONS, top);          g_sprite_collisions = make_checkbox(BRect(10, 25, 180, 36), "Sprite collisions", MSG_SPRITE_COLLISIONS, top);
277          g_joystick_1_on = make_checkbox(BRect(10, 40, 160, 51), "Joystick on port 1", MSG_JOYSTICK_1_ON, top);          g_limit_speed = make_checkbox(BRect(10, 40, 180, 51), "Limit speed", MSG_LIMIT_SPEED, top);
278          g_joystick_2_on = make_checkbox(BRect(10, 55, 160, 66), "Joystick on port 2", MSG_JOYSTICK_2_ON, top);          g_fast_reset = make_checkbox(BRect(10, 55, 180, 66), "Fast reset", MSG_FAST_RESET, top);
279          g_joystick_swap = make_checkbox(BRect(10, 70, 160, 81), "Swap joysticks", MSG_JOYSTICK_SWAP, top);          g_cia_irq_hack = make_checkbox(BRect(10, 70, 180, 81), "Clear CIA ICR on write", MSG_CIA_IRQ_HACK, top);
280          g_limit_speed = make_checkbox(BRect(10, 85, 160, 96), "Limit speed", MSG_LIMIT_SPEED, top);          g_sid_filters = make_checkbox(BRect(10, 85, 180, 96), "SID filters", MSG_SID_FILTERS, top);
281          g_fast_reset = make_checkbox(BRect(10, 100, 160, 111), "Fast reset", MSG_FAST_RESET, top);          g_double_scan = make_checkbox(BRect(10, 100, 180, 111), "Doublescan lines", MSG_DOUBLE_SCAN, top);
282          g_cia_irq_hack = make_checkbox(BRect(10, 115, 160, 126), "Clear CIA ICR on write", MSG_CIA_IRQ_HACK, top);          g_joystick_swap = make_checkbox(BRect(10, 115, 180, 126), "Swap joysticks", MSG_JOYSTICK_SWAP, top);
283          g_sid_filters = make_checkbox(BRect(10, 130, 160, 141), "SID filters", MSG_SID_FILTERS, top);          g_joystick_1_port = make_joystick_popup(BRect(10, 130, 180, 145), "Joystick 1", MSG_JOYSTICK_1_PORT, top);
284          g_double_scan = make_checkbox(BRect(10, 145, 160, 156), "Doublescan lines", MSG_DOUBLE_SCAN, top);          g_joystick_2_port = make_joystick_popup(BRect(10, 150, 180, 165), "Joystick 2", MSG_JOYSTICK_2_PORT, top);
285    
286          // Number entry fields          // Number entry fields
287          g_normal_cycles = make_number_entry(BRect(160, 10, 390, 26), "Cycles per line (CPU)", top);          g_normal_cycles = make_number_entry(BRect(180, 10, 390, 26), "Cycles per line (CPU)", top);
288          g_bad_line_cycles = make_number_entry(BRect(160, 30, 390, 46), "Cycles per Bad Line (CPU)", top);          g_bad_line_cycles = make_number_entry(BRect(180, 30, 390, 46), "Cycles per Bad Line (CPU)", top);
289          g_cia_cycles = make_number_entry(BRect(160, 50, 390, 66), "Cycles per line (CIA)", top);          g_cia_cycles = make_number_entry(BRect(180, 50, 390, 66), "Cycles per line (CIA)", top);
290          g_floppy_cycles = make_number_entry(BRect(160, 70, 390, 86), "Cycles per line (1541)", top);          g_floppy_cycles = make_number_entry(BRect(180, 70, 390, 86), "Cycles per line (1541)", top);
291          g_skip_frames = make_number_entry(BRect(160, 90, 390, 106), "Draw every n-th frame", top);          g_skip_frames = make_number_entry(BRect(180, 90, 390, 106), "Draw every n-th frame", top);
292    
293          // Popup fields          // Popup fields
294          g_display_type = make_disptype_popup(BRect(160, 110, 390, 126), "Display type", MSG_DISPLAY_TYPE, top);          g_display_type = make_disptype_popup(BRect(180, 110, 390, 126), "Display type", MSG_DISPLAY_TYPE, top);
295          g_sid_type = make_sidtype_popup(BRect(160, 130, 390, 146), "SID emulation type", MSG_SID_TYPE, top);          g_sid_type = make_sidtype_popup(BRect(180, 130, 390, 146), "SID emulation type", MSG_SID_TYPE, top);
296          g_reu_size = make_reusize_popup(BRect(160, 150, 390, 166), "REU size", MSG_REU_SIZE, top);          g_reu_size = make_reusize_popup(BRect(180, 150, 390, 166), "REU size", MSG_REU_SIZE, top);
297    
298          // Prepare on/off pictures for file panel buttons          // Prepare on/off pictures for file panel buttons
299          BView *view = new BView(BRect(0, 0, 19, 15), "", B_FOLLOW_NONE, 0);          BView *view = new BView(BRect(0, 0, 19, 15), "", B_FOLLOW_NONE, 0);
# Line 455  BPopUpMenu *PrefsWindow::make_disptype_p Line 456  BPopUpMenu *PrefsWindow::make_disptype_p
456          popup->AddItem(new BMenuItem("Screen", new BMessage(what)));          popup->AddItem(new BMenuItem("Screen", new BMessage(what)));
457          popup->SetTargetForItems(this);          popup->SetTargetForItems(this);
458          BMenuField *menu_field = new BMenuField(frame, "display_type", label_text, popup);          BMenuField *menu_field = new BMenuField(frame, "display_type", label_text, popup);
459          menu_field->SetDivider(frame.Width()-55);          menu_field->SetDivider(frame.Width()-75);
460          menu_field->SetAlignment(B_ALIGN_RIGHT);          menu_field->SetAlignment(B_ALIGN_RIGHT);
461          parent->AddChild(menu_field);          parent->AddChild(menu_field);
462          return popup;          return popup;
# Line 473  BPopUpMenu *PrefsWindow::make_sidtype_po Line 474  BPopUpMenu *PrefsWindow::make_sidtype_po
474          popup->AddItem(new BMenuItem("Digital", new BMessage(what)));          popup->AddItem(new BMenuItem("Digital", new BMessage(what)));
475          popup->SetTargetForItems(this);          popup->SetTargetForItems(this);
476          BMenuField *menu_field = new BMenuField(frame, "sid_type", label_text, popup);          BMenuField *menu_field = new BMenuField(frame, "sid_type", label_text, popup);
477          menu_field->SetDivider(frame.Width()-55);          menu_field->SetDivider(frame.Width()-75);
478          menu_field->SetAlignment(B_ALIGN_RIGHT);          menu_field->SetAlignment(B_ALIGN_RIGHT);
479          parent->AddChild(menu_field);          parent->AddChild(menu_field);
480          return popup;          return popup;
# Line 493  BPopUpMenu *PrefsWindow::make_reusize_po Line 494  BPopUpMenu *PrefsWindow::make_reusize_po
494          popup->AddItem(new BMenuItem("512K", new BMessage(what)));          popup->AddItem(new BMenuItem("512K", new BMessage(what)));
495          popup->SetTargetForItems(this);          popup->SetTargetForItems(this);
496          BMenuField *menu_field = new BMenuField(frame, "reu_size", label_text, popup);          BMenuField *menu_field = new BMenuField(frame, "reu_size", label_text, popup);
497          menu_field->SetDivider(frame.Width()-55);          menu_field->SetDivider(frame.Width()-75);
498            menu_field->SetAlignment(B_ALIGN_RIGHT);
499            parent->AddChild(menu_field);
500            return popup;
501    }
502    
503    
504    /*
505     *  Create joystick port popup
506     */
507    
508    BPopUpMenu *PrefsWindow::make_joystick_popup(BRect frame, char *label_text, uint32 what, BView *parent)
509    {
510            BPopUpMenu *popup = new BPopUpMenu("joystick popup", true, true);
511            popup->AddItem(new BMenuItem("None", new BMessage(what)));
512            popup->AddItem(new BMenuItem("Joystick Port 1", new BMessage(what)));
513            popup->AddItem(new BMenuItem("Joystick Port 2", new BMessage(what)));
514            popup->AddItem(new BMenuItem("GeekPort A", new BMessage(what)));
515            popup->AddItem(new BMenuItem("GeekPort B", new BMessage(what)));
516            popup->SetTargetForItems(this);
517            BMenuField *menu_field = new BMenuField(frame, "joystick", label_text, popup);
518            menu_field->SetDivider(60);
519          menu_field->SetAlignment(B_ALIGN_RIGHT);          menu_field->SetAlignment(B_ALIGN_RIGHT);
520          parent->AddChild(menu_field);          parent->AddChild(menu_field);
521          return popup;          return popup;
# Line 525  void PrefsWindow::set_values(void) Line 547  void PrefsWindow::set_values(void)
547    
548          g_sprites_on->SetValue(prefs->SpritesOn ? B_CONTROL_ON : B_CONTROL_OFF);          g_sprites_on->SetValue(prefs->SpritesOn ? B_CONTROL_ON : B_CONTROL_OFF);
549          g_sprite_collisions->SetValue(prefs->SpriteCollisions ? B_CONTROL_ON : B_CONTROL_OFF);          g_sprite_collisions->SetValue(prefs->SpriteCollisions ? B_CONTROL_ON : B_CONTROL_OFF);
550          g_joystick_1_on->SetValue(prefs->Joystick1On ? B_CONTROL_ON : B_CONTROL_OFF);          g_joystick_1_port->ItemAt(prefs->Joystick1Port)->SetMarked(true);
551          g_joystick_2_on->SetValue(prefs->Joystick2On ? B_CONTROL_ON : B_CONTROL_OFF);          g_joystick_2_port->ItemAt(prefs->Joystick2Port)->SetMarked(true);
552          g_joystick_swap->SetValue(prefs->JoystickSwap ? B_CONTROL_ON : B_CONTROL_OFF);          g_joystick_swap->SetValue(prefs->JoystickSwap ? B_CONTROL_ON : B_CONTROL_OFF);
553          g_limit_speed->SetValue(prefs->LimitSpeed ? B_CONTROL_ON : B_CONTROL_OFF);          g_limit_speed->SetValue(prefs->LimitSpeed ? B_CONTROL_ON : B_CONTROL_OFF);
554          g_fast_reset->SetValue(prefs->FastReset ? B_CONTROL_ON : B_CONTROL_OFF);          g_fast_reset->SetValue(prefs->FastReset ? B_CONTROL_ON : B_CONTROL_OFF);
# Line 615  void PrefsWindow::MessageReceived(BMessa Line 637  void PrefsWindow::MessageReceived(BMessa
637                          prefs->SpriteCollisions = !prefs->SpriteCollisions;                          prefs->SpriteCollisions = !prefs->SpriteCollisions;
638                          break;                          break;
639    
640                  case MSG_JOYSTICK_1_ON:                  case MSG_JOYSTICK_1_PORT:
641                          prefs->Joystick1On = !prefs->Joystick1On;                          prefs->Joystick1Port = msg->FindInt32("index");
642                          break;                          break;
643    
644                  case MSG_JOYSTICK_2_ON:                  case MSG_JOYSTICK_2_PORT:
645                          prefs->Joystick2On = !prefs->Joystick2On;                          prefs->Joystick2Port = msg->FindInt32("index");
646                          break;                          break;
647    
648                  case MSG_JOYSTICK_SWAP:                  case MSG_JOYSTICK_SWAP:
# Line 775  bool PrefsWindow::FilterKeyDown(uint32 * Line 797  bool PrefsWindow::FilterKeyDown(uint32 *
797          if (*aChar == B_ESCAPE) {          if (*aChar == B_ESCAPE) {
798                  // Flash Cancel button                  // Flash Cancel button
799                  g_cancel->SetValue(B_CONTROL_ON);                  g_cancel->SetValue(B_CONTROL_ON);
800                  snooze(100000.0);                  snooze(100000);
801                  PostMessage(MSG_CANCEL);                  PostMessage(MSG_CANCEL);
802          }          }
803          return true;          return true;

Legend:
Removed from v.1.2  
changed lines
  Added in v.1.3

Christian Bauer">Christian Bauer
ViewVC Help
Powered by ViewVC 1.1.15