/[enigma]/enigma/src/menus.cc
ViewVC logotype

Diff of /enigma/src/menus.cc

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

revision 1.43 by reallysoft, Tue Jun 24 20:42:31 2003 UTC revision 1.44 by reallysoft, Wed Jun 25 15:38:34 2003 UTC
# Line 86  namespace Line 86  namespace
86              return (ifirst << 4) | (iselected-ifirst);              return (ifirst << 4) | (iselected-ifirst);
87          }          }
88          void set_position(int pos) {          void set_position(int pos) {
89              int first = pos >> 4;              int new_first = pos >> 4;
90              set_selected(first, first+(pos & 0xf));              int off       = pos&0xf;
91                int new_sel   = new_first+off;
92                assert(off >= 0 && off < 12); // 12 levels per page
93                set_selected(new_first, new_sel);
94          }          }
95    
96      private:      private:
# Line 370  void Line 373  void
373  LevelWidget::set_selected (int newfirst, int newsel)  LevelWidget::set_selected (int newfirst, int newsel)
374  {  {
375      int numlevels = static_cast<int>(level_pack->size());      int numlevels = static_cast<int>(level_pack->size());
376      newsel        = Clamp(newsel, 0, numlevels-1);      newsel = Clamp(newsel, 0, numlevels-1);
377    
378      if (newsel < newfirst)      if (newsel < newfirst)
379          newfirst  = (newsel/width)*width;          newfirst = (newsel/width)*width;
380      if (newsel >= newfirst+width*height)      if (newsel >= newfirst+width*height)
381          newfirst  = (newsel/width-2)*width;          newfirst = (newsel/width-2)*width;
382    
383      newfirst = Clamp(newfirst, 0, numlevels-1);      newfirst = Clamp(newfirst, 0, numlevels-1);
384    
385        int oldsel = iselected;
386      if (newfirst != ifirst) {      if (newfirst != ifirst) {
         sound::PlaySound("menumove");  
         if (iselected != newsel) sound::PlaySound("menuswitch");  
387          ifirst    = newfirst;          ifirst    = newfirst;
388          iselected = newsel;          iselected = newsel;
389          redraw();  
390            if (!areas.empty()) {
391                sound::PlaySound("menumove");
392                if (oldsel != newsel) sound::PlaySound("menuswitch");
393                redraw();
394            }
395      }      }
396      else if (newsel != iselected) {      else if (newsel != iselected) {
397          sound::PlaySound("menuswitch");          iselected = newsel;
         int oldsel = iselected;  
         iselected  = newsel;  
398    
399          redraw(areas[oldsel-ifirst]); // old selection          if (!areas.empty()) {
400          redraw(areas[iselected-ifirst]); // new selection              sound::PlaySound("menuswitch");
401                redraw(areas[oldsel-ifirst]); // old selection
402                redraw(areas[iselected-ifirst]); // new selection
403            }
404      }      }
405  }  }
406    
# Line 1015  LevelMenu::LevelMenu(LevelPack *lp, unsi Line 1023  LevelMenu::LevelMenu(LevelPack *lp, unsi
1023      levelwidget->set_listener(this);      levelwidget->set_listener(this);
1024    
1025      set_position(pos);      set_position(pos);
1026  //     set_levelpack (ilevel_pack);      update_info();
1027  }  }
1028    
1029  bool  bool

Legend:
Removed from v.1.43  
changed lines
  Added in v.1.44

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26