/[svn]/gigedit/trunk/src/gigedit/dimregionchooser.cpp
ViewVC logotype

Diff of /gigedit/trunk/src/gigedit/dimregionchooser.cpp

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

revision 2627 by schoenebeck, Thu Jun 12 16:12:55 2014 UTC revision 2695 by schoenebeck, Tue Jan 6 18:11:27 2015 UTC
# Line 1  Line 1 
1  /*  /*
2   * Copyright (C) 2006-2014 Andreas Persson   * Copyright (C) 2006-2015 Andreas Persson
3   *   *
4   * This program is free software; you can redistribute it and/or   * This program is free software; you can redistribute it and/or
5   * modify it under the terms of the GNU General Public License as   * modify it under the terms of the GNU General Public License as
# Line 933  bool DimRegionChooser::onKeyReleased(Gdk Line 933  bool DimRegionChooser::onKeyReleased(Gdk
933          multiSelectKeyDown = false;          multiSelectKeyDown = false;
934  }  }
935    
936    void DimRegionChooser::resetSelectedZones() {
937        this->dimzones.clear();
938        if (!region) {
939            queue_draw(); // redraw required parts
940            return;
941        }
942        if (maindimregno < 0 || maindimregno >= region->DimensionRegions) {
943            queue_draw(); // redraw required parts
944            return;
945        }
946        if (!region->pDimensionRegions[maindimregno]) {
947            queue_draw(); // redraw required parts
948            return;
949        }
950        gig::DimensionRegion* dimrgn = region->pDimensionRegions[maindimregno];
951    
952        bool isValidZone;
953        this->maindimcase = caseOfDimRegion(dimrgn, &isValidZone);
954        if (!isValidZone) {
955            queue_draw(); // redraw required parts
956            return;
957        }
958    
959        for (std::map<gig::dimension_t,int>::const_iterator it = this->maindimcase.begin();
960             it != this->maindimcase.end(); ++it)
961        {
962            this->dimzones[it->first].insert(it->second);
963        }
964    
965        // redraw required parts
966        queue_draw();
967    }
968    
969    bool DimRegionChooser::select_dimregion(gig::DimensionRegion* dimrgn) {
970        if (!region) return false; //.selection failed
971    
972        for (int dr = 0; dr < region->DimensionRegions && region->pDimensionRegions[dr]; ++dr) {
973            if (region->pDimensionRegions[dr] == dimrgn) {
974                // reset dim region zone selection to the requested specific dim region case
975                maindimregno = dr;
976                resetSelectedZones();
977    
978                // emit signal that dimregion selection has changed, for external entities
979                dimregion_selected();
980    
981                return true; // selection success
982            }
983        }
984    
985        return false; //.selection failed
986    }
987    
988  gig::DimensionRegion* DimRegionChooser::get_main_dimregion() const {  gig::DimensionRegion* DimRegionChooser::get_main_dimregion() const {
989      if (!region) return NULL;      if (!region) return NULL;
990      return region->pDimensionRegions[maindimregno];      return region->pDimensionRegions[maindimregno];

Legend:
Removed from v.2627  
changed lines
  Added in v.2695

  ViewVC Help
Powered by ViewVC