/******************************************************************************* * Copyright (c) 2013-2017, Andrés Martinelli . * * 4. Neither the name of the Andrés Martinelli nor the * * names of other contributors may be used to endorse or promote products * * derived from this software without specific prior written permission. * * * * THIS SOFTWARE IS PROVIDED BY ANDRES MARTINELLI ''AS IS'' AND ANY * * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED * * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * * DISCLAIMED. IN NO EVENT SHALL ANDRES MARTINELLI BE LIABLE FOR ANY * * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES * * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;* * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND * * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE * * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * *******************************************************************************/ /** * \file freeze.c * \author Andrés Martinelli * \date 2017-07-18 * \brief TODO Write a tbrief file description. */ #include #include "freeze.h" #include "macros.h" #include "tui.h" struct frange * freeze_ranges = NULL; /** * \brief TODO Document add_frange() * * \details type = 'r' -> freeze a row * \details type = 'c' -> freeze a col * \details type = 'a' -> freeze an area * * \param[in] tl_ent * \param[in] br_ent * \param[in] type * * \return none */ void add_frange(struct ent * tl_ent, struct ent * br_ent, char type) { struct frange * f = (struct frange *) malloc(sizeof(struct frange)); f->tl = tl_ent; f->br = br_ent; f->type = type; f->next = freeze_ranges; freeze_ranges = f; //sc_debug("freeze range: %d %d %d %d - type:%c", freeze_ranges->tl->row, freeze_ranges->tl->col, freeze_ranges->br->row, freeze_ranges->br->col, type); return; } /** * \brief TODO Document remove_frange() * * \return none */ void remove_frange() { extern int center_hidden_rows; extern int center_hidden_cols; free(freeze_ranges); freeze_ranges = NULL; center_hidden_rows = 0; center_hidden_cols = 0; ui_update(TRUE); return; }