/[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.57 by dheck, Mon Aug 4 21:58:16 2003 UTC revision 1.58 by mhawlisch, Thu Aug 28 14:12:51 2003 UTC
# Line 135  namespace Line 135  namespace
135              listener = al;              listener = al;
136          }          }
137          void trigger_action() {          void trigger_action() {
138              cache.clear();              if( (iselected) < (max_available)) {
139              if (listener) listener->on_action(this);                  cache.clear();
140                    if (listener) listener->on_action(this);
141                    recalc_availavle();
142                }
143          }          }
144    
145          void change_levelpack (LevelPack *lp);          void change_levelpack (LevelPack *lp);
# Line 169  namespace Line 172  namespace
172          void scroll_up(int lines);          void scroll_up(int lines);
173          void scroll_down(int lines);          void scroll_down(int lines);
174          void set_selected (int newfirst, int newsel);          void set_selected (int newfirst, int newsel);
175            void recalc_availavle ();
176    
177          // Event handling.          // Event handling.
178          bool handle_keydown (const SDL_Event *e);          bool handle_keydown (const SDL_Event *e);
# Line 183  namespace Line 187  namespace
187    
188          int               ifirst; // Index of "upper left" level          int               ifirst; // Index of "upper left" level
189          int               iselected; // Index of selected level          int               iselected; // Index of selected level
190            int               max_available; // Index of the last available level (one can coose out of x unsolved levels)
191          int               width, height;          int               width, height;
192          vector<px::Rect>  m_areas; // Screen areas occupied by level previews          vector<px::Rect>  m_areas; // Screen areas occupied by level previews
193          ActionListener   *listener;          ActionListener   *listener;
# Line 325  void LevelWidget::page_down() { Line 330  void LevelWidget::page_down() {
330      set_selected (ifirst + width*height, iselected + width*height);      set_selected (ifirst + width*height, iselected + width*height);
331  }  }
332    
333    void
334    LevelWidget::recalc_availavle()
335    {
336        max_available = HighestAvailableLevel( level_pack);
337    }
338    
339  void  void
340  LevelWidget::change_levelpack (LevelPack *lp)  LevelWidget::change_levelpack (LevelPack *lp)
# Line 335  LevelWidget::change_levelpack (LevelPack Line 345  LevelWidget::change_levelpack (LevelPack
345      oxyd::ChangeSoundset(options::SoundSet, level_pack->get_default_SoundSet());      oxyd::ChangeSoundset(options::SoundSet, level_pack->get_default_SoundSet());
346      cache.clear();      cache.clear();
347      preview_cache.clear();      preview_cache.clear();
348        recalc_availavle();
349      redraw();      redraw();
350      sound::PlaySound("menumove");      sound::PlaySound("menumove");
351  }  }
# Line 405  LevelWidget::draw (px::GC &gc, const px: Line 416  LevelWidget::draw (px::GC &gc, const px:
416                      string fname = string("levels/") + levelinfo->filename + ".png";                      string fname = string("levels/") + levelinfo->filename + ".png";
417                      img          = cache.get(enigma::FindDataFile(fname));                      img          = cache.get(enigma::FindDataFile(fname));
418                  }                  }
419                    if( i >= (max_available))
420                  if (!img && !Nozoom) {                  {
421                        img = cache.get(enigma::FindDataFile("levels/unavailable.png"));
422                    } else if (!img && !Nozoom) {
423                      img     = preview_cache.getPreview(level_pack, i);                      img     = preview_cache.getPreview(level_pack, i);
424                      if (!img)                      if (!img)
425                          img = cache.get(enigma::FindDataFile("levels/error.png"));                          img = cache.get(enigma::FindDataFile("levels/error.png"));

Legend:
Removed from v.1.57  
changed lines
  Added in v.1.58

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